Skip to content

feat(arcade-core): add WEB_SEARCH service domain#871

Open
TheMostlyGreat wants to merge 2 commits into
mainfrom
alex/web-search-service-domain
Open

feat(arcade-core): add WEB_SEARCH service domain#871
TheMostlyGreat wants to merge 2 commits into
mainfrom
alex/web-search-service-domain

Conversation

@TheMostlyGreat

Copy link
Copy Markdown
Contributor

What

Adds ServiceDomain.WEB_SEARCH for web search engines and search APIs, with a decorator test mirroring the existing domain tests. Bumps arcade-core to 4.9.0 (minor, same shape as #866).

Why

Web-search services have no ServiceDomain that passes the 10/10 consistency test, so every search toolkit ships with classification None and gets no category scoring boost:

  • Shipped today: google_search, exa (ArcadeAI/monorepo#1646)
  • Queued: Brave Search, Tavily, Perplexity

That's five services validating the boundary — past the "deferred until more toolkits validate the boundary" bar.

Naming

WEB_SEARCH over SEARCH / SEARCH_ENGINE:

  • SEARCH fails 10/10 — invites in-app search misclassification (a tool that searches Slack is MESSAGING) and would ambiguously absorb site-search services like Algolia, which is a different market category deserving its own value.
  • SEARCH_ENGINE reads as the consumer SERP product; "Is Perplexity a search engine?" splits the room.
  • WEB_SEARCH passes 10/10 for all five target services, and is the natural sibling of WEB_SCRAPING — the docstring pivots on query → ranked results from a web index, which extraction services (Firecrawl, Apify) don't do, keeping the scraping boundary crisp.

Vendor self-identification checked 2026-06-12: Tavily "the real-time search engine for AI agents"; Exa semantic web search; Brave "independent index of the Web".

Testing

  • libs/tests/tool + libs/tests/core + metadata serialization: 625 passed
  • New test: test_decorator_accepts_web_search_domain

🤖 Generated with Claude Code

Web-search services (Google Search, Exa, Brave Search, Tavily) currently
have no ServiceDomain that passes the 10/10 consistency test and ship
with classification None. WEB_SEARCH covers search engines and search
APIs that query an index of the public web and return ranked results —
distinct from WEB_SCRAPING, which extracts content from caller-supplied
URLs rather than answering queries against an index.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
libs/arcade-core/arcade_core/metadata.py 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

This pull request has been automatically marked as stale because it has had no activity for 14 days. It will be closed in 14 days if no further activity occurs. If this is still relevant, please leave a comment or remove the stale label.

@github-actions github-actions Bot added the stale label Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant