# Conflicts: # docs/AGENTS.md # docs/config-catalog.md # packages/bash/bash-sandbox/src/index.ts # packages/bash/bash/src/session-mode.ts # packages/bash/tool-bash/README.md # packages/code-runtime/code-runtime-worker/README.md # packages/compact/compact/src/index.ts # packages/core/agent-core/README.md # packages/hooks/hooks-claude/src/config.ts # packages/hooks/hooks-claude/src/index.ts # packages/hooks/hooks-codex/src/config.ts # packages/hooks/hooks-codex/src/index.ts # packages/llm/llm/README.md # packages/session-persistence/session-persistence-jsonl/README.md # packages/session-persistence/session-persistence/README.md # packages/skill/skill-local/README.md # packages/support/acp-snapshot/README.md # packages/support/invariants/src/index.ts # packages/ui/acp/README.md # packages/ui/jsonrpc-agent/README.md # packages/ui/jsonrpc/README.md # packages/ui/permission/README.md # packages/ui/user-approval/README.md # packages/ui/user-interaction/README.md # packages/web/web-search-deepseek/README.md
web/ - web capability family
The web access capability seam: an abstract web interface, search/fetch provider implementations, and the model-facing web tools. All product packages.
| Package | Role | ctx key |
|---|---|---|
web/ |
Abstract web seam (search/fetch provider registries + selection + vocabulary + WebError) |
ctx.web |
web-search-exa/ |
Exa-backed WebSearchProvider |
(registers on ctx.web) |
web-search-perplexity/ |
Perplexity-backed WebSearchProvider |
(registers on ctx.web) |
web-search-deepseek/ |
DeepSeek-backed WebSearchProvider using native web_search through the Anthropic-compatible API |
(registers on ctx.web) |
web-fetch-local/ |
Anonymous public HTTP(S) WebFetchProvider |
(registers on ctx.web) |
tool-web/ |
Model-facing web_search/web_fetch tool schemas |
(registers on ctx.tools) |
The interface lives at web/web/. Unlike bash/fs, the seam spans two capabilities (search and fetch) with potentially multiple providers each: ctx.web is one web-access middle layer with one provider-selection policy, one abort/error vocabulary, and one product-facing "how this harness reaches the web" config surface. Providers register capabilities, not tools; tool-web is the only owner of model-facing names, schemas, prompt guidance, and presentation. A search provider swap does not change how the model asks for a query, and a fetch implementation swap does not change how the model asks for a URL.
See the web capability seam RFC for the design rationale, including why search and fetch are deliberately one seam and why web_fetch's SSRF protection is deferred.