Skip to content

feat(web): back web_search/web_fetch with selected web plugin provider - #1327

Closed
TheGreatAxios wants to merge 3 commits into
mainfrom
cl-9885-web-kind
Closed

TheGreatAxios wants to merge 3 commits into
mainfrom
cl-9885-web-kind

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Collaborator

Closes CL-9885.

Decision: wired (not deleted). resolveWebProviderFromPlugins used to end at setActiveWebProviderBrand with the WebProvider discarded; the active provider is now injected into createWebSearchTool/createWebFetchTool via createAgentToolset({ webProvider }). No web plugin selected keeps the always-on core backends (keyless Exa/Parallel MCP search, native SSRF-guarded fetch) unchanged.

Tests: src/web/web-provider-tools.test.ts — provider backs both tools plus a toolset-level run through dynamicRunner. Targeted suites (src/web, web-search, web-fetch, loader, tool-plugins, web-brand): 63 pass. typecheck + lint clean.

resolveWebProviderFromPlugins no longer ends at brand display: the active WebProvider is injected into createWebSearchTool/createWebFetchTool via createAgentToolset({ webProvider }). With no plugin selected the always-on core backends (keyless Exa/Parallel MCP search, native SSRF-guarded fetch) serve the tools unchanged. Docs (PLUGINS, ARCHITECTURE, IMPLEMENTATION) agree.
@linear-code

linear-code Bot commented Oct 5, 2026

Copy link
Copy Markdown

CL-9885

- Strip URL.hostname brackets before isIP so [::1] classifies as
  private directly instead of failing closed via DNS.
- Decode hex ::ffff: tails (WHATWG URL normalizes ::ffff:127.0.0.1
  to ::ffff:7f00:1) for the mapped-IPv4 private check.
- Permanent test: bracketed loopback/mapped refuse as private, not DNS error.
- Document that WebProvider.fetch is opaque: pre-checked URL in,
  server-side redirects are provider trust (no per-hop re-check,
  unlike core runWebFetch).
@TheGreatAxios

TheGreatAxios commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator Author

Closing as stale — superseded by ongoing work. Reopen if still wanted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant