The Harness-home exemption matched every name case-insensitively, so a home `.env` line such as `deepseek_base_url=...` passed the check and landed in `process.env` under that spelling. The launch snapshot looks names up exactly on POSIX, so llm-deepseek, web-search-deepseek, and web-deepseek-api never saw it: the launch succeeded with the official endpoint, where it used to fail. Proxy names keep matching in any letter case because proxy clients read both spellings; the two endpoint names now match only as `DEEPSEEK_BASE_URL` and `DEEPSEEK_SEARCH_BASE_URL`, and another spelling fails the launch with the exact name to use. The home-layer refusal case now covers `SSL_CERT_FILE`, `NODE_TLS_REJECT_UNAUTHORIZED`, and `DSH_HOME`. The web-deepseek-api README states where `DEEPSEEK_BASE_URL` may come from; the launch-environment README, the development guide, and the configuration source Agent Note no longer overstate which file is refused, which Vitest configurations load the root `.env`, or what a checkout may carry. Refs #8138
description, kind
| description | kind |
|---|---|
| Package map for the web access capability family: the search/fetch service, its provider backends, and the model-facing tools that consume them. | package-group |
web/ — web access capability family
English | 中文
Summary
The web/ packages let models search the public web and fetch HTTP(S) pages through the web_search and web_fetch tools. Deployments can choose DeepSeek for search and anonymous HTTP(S) or DeepSeek for fetch, or mount another provider plugin; availability and resource limits depend on the configured provider. Use this family for search and page retrieval, not interactive browsing, content extraction, or per-URL policy enforcement. Models receive consistent tool behavior, cancellation, and error reporting when providers change.
Table of Contents
Packages
Five packages play the web roles; the subsystem reference owns the exhaustive vocabulary and contracts.
| Package | Role | ctx key |
|---|---|---|
web/ |
Search/fetch service: search and fetch URLs through interchangeable backends, one selection and error policy | ctx.web |
web-search-deepseek/ |
Searches through DeepSeek Messages | registers on ctx.web |
web-deepseek-api/ |
Searches and fetches pages through the DeepSeek Search and Fetch APIs | registers on ctx.web |
web-fetch-http/ |
Fetches HTTP(S) pages anonymously | registers on ctx.web |
tool-web/ |
Exposes web_search and web_fetch to the model |
registers on ctx.tools |
Related documentation
Start with the subsystem reference for the shared vocabulary, then the design decision behind the single provider-selection service.
- Web subsystem — the search/fetch requests and results, provider availability,
WebError, and the fetch network policy. - Web capability seam decision — why search and fetch share one provider-selection service.
Dev Note
Working context for maintainers — click to expand
None.