web-access-cli 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +67 -10
  2. package/README_CN.md +67 -10
  3. package/THIRD_PARTY_NOTICES.md +0 -13
  4. package/dist/config/config.js +10 -2
  5. package/dist/config/config.js.map +1 -1
  6. package/dist/core/router.js +4 -2
  7. package/dist/core/router.js.map +1 -1
  8. package/dist/core/schema.js +1 -1
  9. package/dist/core/types.js +1 -0
  10. package/dist/core/types.js.map +1 -1
  11. package/dist/gateway/panel.js +791 -0
  12. package/dist/gateway/panel.js.map +1 -0
  13. package/dist/gateway/records.js +87 -0
  14. package/dist/gateway/records.js.map +1 -0
  15. package/dist/gateway/schema.js +115 -0
  16. package/dist/gateway/schema.js.map +1 -0
  17. package/dist/gateway/server.js +497 -0
  18. package/dist/gateway/server.js.map +1 -0
  19. package/dist/gateway/service.js +417 -0
  20. package/dist/gateway/service.js.map +1 -0
  21. package/dist/providers/anysearch.js +5 -3
  22. package/dist/providers/anysearch.js.map +1 -1
  23. package/dist/providers/deepseek.js +173 -106
  24. package/dist/providers/deepseek.js.map +1 -1
  25. package/dist/providers/registry.js +2 -0
  26. package/dist/providers/registry.js.map +1 -1
  27. package/dist/providers/search.js +4 -2
  28. package/dist/providers/search.js.map +1 -1
  29. package/dist/providers/xcrawl.js +1 -1
  30. package/dist/providers/xcrawl.js.map +1 -1
  31. package/dist/providers/yuanbao.js +214 -0
  32. package/dist/providers/yuanbao.js.map +1 -0
  33. package/dist/server.js +127 -0
  34. package/dist/server.js.map +1 -0
  35. package/dist/transport/http.js +8 -0
  36. package/dist/transport/http.js.map +1 -1
  37. package/dist/version.js +1 -1
  38. package/package.json +4 -2
  39. package/schemas/config.schema.json +4 -0
  40. package/schemas/gatewayError.schema.json +33 -0
  41. package/schemas/gatewayFetchRequest.schema.json +13 -0
  42. package/schemas/gatewayFetchResponse.schema.json +16 -0
  43. package/schemas/gatewaySearchRequest.schema.json +37 -0
  44. package/schemas/gatewaySearchResponse.schema.json +81 -0
  45. package/schemas/output.schema.json +52 -0
  46. package/schemas/searchRequest.schema.json +1 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@ English | [简体中文](README_CN.md)
5
5
  [![CI](https://github.com/Juexe/web-access-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Juexe/web-access-cli/actions/workflows/ci.yml)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
7
 
8
- An agent-neutral CLI for web capabilities. It defines search and web content extraction as stable capabilities while normalizing differences among Tavily, Exa, Bocha, Brave, SearXNG, AnySearch, XCrawl, DeepSeek, Firecrawl, Jina, and other providers behind a unified internal schema.
8
+ An agent-neutral CLI for web capabilities. It defines search and web content extraction as stable capabilities while normalizing differences among Tavily, Exa, Bocha, Yuanbao Search, Brave, SearXNG, AnySearch, XCrawl, DeepSeek, Firecrawl, Jina, and other providers behind a unified internal schema.
9
9
 
10
10
  The CLI is the primary product interface. It is not tied to Pi, Claude Code, Codex, Cursor, OpenCode, or any other agent. Skills, MCP integrations, and agent plugins may only integrate as adapters on top of the CLI; they must not leak into the core capabilities or provider implementations.
11
11
 
@@ -13,8 +13,8 @@ The CLI is the primary product interface. It is not tied to Pi, Claude Code, Cod
13
13
 
14
14
  | Capability | Provider types | Normalized output |
15
15
  | --- | --- | --- |
16
- | `search` | Tavily, Exa, Bocha, Brave, SearXNG, AnySearch, XCrawl, DeepSeek, xAI x_search, xAI web_search | `rank`, `title`, `url`, `snippet` |
17
- | `extract` | Firecrawl v2, Jina Reader, Exa Contents, AnySearch, XCrawl, HTTP | Markdown `Document` |
16
+ | `search` | Tavily, Exa, Bocha, Yuanbao Search, Brave, SearXNG, AnySearch, XCrawl, DeepSeek, xAI x_search, xAI web_search | `rank`, `title`, `url`, `snippet` |
17
+ | `extract` | Firecrawl v2, Jina Reader, Exa Contents, AnySearch, XCrawl, DeepSeek Fetch, HTTP | Markdown `Document` |
18
18
 
19
19
  A provider type describes an implementation, while a provider instance is a configurable instance of that type. One type can have multiple instances, such as `exa_team` and `exa_personal`. Each capability has a primary `providers` route and a `providers_fallback` route. Both arrays determine enabled instances and their current `auto` order; the CLI only reorders members within their existing group.
20
20
 
@@ -50,12 +50,15 @@ pnpm pack:check
50
50
 
51
51
  ```text
52
52
  src/cli.ts Commander CLI and exit codes
53
+ src/server.ts Standalone DeepSeek-compatible gateway entry point
53
54
  src/config/ Configuration files, environment variables, and route merging
54
55
  src/core/ Public types, schemas, errors, routing, and diagnostics
56
+ src/gateway/ Gateway protocol schema, service mapping, and HTTP boundary
55
57
  src/providers/ Provider adapters, registry, and HTTP/RSC extraction
56
58
  src/transport/ Proxies, timeouts, redirects, and response size limits
57
59
  schemas/ Generated JSON Schemas
58
60
  test/ node:test unit tests and local HTTP integration tests
61
+ deploy/ Public gateway Compose template, env/config examples, operations guide
59
62
  ```
60
63
 
61
64
  Provider adapters should handle protocol mapping only. Fallback, deadlines, attempts, envelopes, and exit codes are managed centrally by `src/core`. Do not add lifecycle or tool registration code for Pi, Claude Code, Codex, or any other agent to an adapter.
@@ -69,6 +72,7 @@ pnpm typecheck
69
72
  pnpm test
70
73
  pnpm build
71
74
  pnpm pack:check
75
+ pnpm test:docker
72
76
  ```
73
77
 
74
78
  `pnpm check` runs linting, type checking, tests, and the build in that order. After changing `src/core/schema.ts`, run `pnpm build` again and commit the updated `schemas/*.schema.json` files. Provider tests should use the mock transport or local HTTP server from `test/helpers.ts`; they must not depend on real API keys or external network reliability.
@@ -117,7 +121,7 @@ The complete JSON Schema is available at [schemas/config.schema.json](schemas/co
117
121
 
118
122
  ```json
119
123
  {
120
- "$schema": "https://unpkg.com/web-access-cli@0.5.0/schemas/config.schema.json",
124
+ "$schema": "https://unpkg.com/web-access-cli@0.6.0/schemas/config.schema.json",
121
125
  "providers": [
122
126
  {
123
127
  "id": "exa_team",
@@ -157,18 +161,20 @@ The complete JSON Schema is available at [schemas/config.schema.json](schemas/co
157
161
  }
158
162
  ```
159
163
 
160
- The built-in instances are `tavily`, `exa`, `bocha`, `brave`, `searxng`, `firecrawl`, `jina`, `http`, `anysearch`, `xcrawl`, `deepseek`, `xai_x_search`, and `xai_web_search`. A configuration entry with the same ID overrides fields on the built-in instance. A custom ID creates another instance of the selected type. An instance is enabled when it appears in either corresponding route. Bocha defaults to `https://api.bocha.cn` and requires an API key; AnySearch defaults to `https://api.anysearch.com` and supports anonymous calls; XCrawl defaults to `https://run.xcrawl.com` and requires an API key; DeepSeek defaults to `https://api.deepseek.com/anthropic/v1` and requires an API key.
164
+ The built-in instances are `tavily`, `exa`, `bocha`, `yuanbao`, `brave`, `searxng`, `firecrawl`, `jina`, `http`, `anysearch`, `xcrawl`, `deepseek`, `xai_x_search`, and `xai_web_search`. A configuration entry with the same ID overrides fields on the built-in instance. A custom ID creates another instance of the selected type. An instance is enabled when it appears in either corresponding route. Bocha defaults to `https://api.bocha.cn` and requires an API key; Yuanbao Search defaults to `https://api.wsa.cloud.tencent.com` and requires a service API key; AnySearch defaults to `https://api.anysearch.com` and supports anonymous calls; XCrawl defaults to `https://run.xcrawl.com` and requires an API key; DeepSeek defaults to `https://api.deepseek.com` and requires an API key.
161
165
 
162
166
  Default routes:
163
167
 
164
- - Search primary: `tavily -> exa -> bocha -> brave -> searxng -> anysearch -> xcrawl`
165
- - Search fallback: `deepseek -> xai_x_search -> xai_web_search`
166
- - Extract primary: `firecrawl -> jina -> exa -> anysearch -> xcrawl`
168
+ - Search primary: `tavily -> exa -> bocha -> yuanbao -> brave -> searxng -> anysearch -> xcrawl -> deepseek`
169
+ - Search fallback: `xai_x_search -> xai_web_search`
170
+ - Extract primary: `firecrawl -> jina -> exa -> anysearch -> xcrawl -> deepseek`
167
171
  - Extract fallback: `http`
168
172
 
169
173
  The default routes split built-in providers into a primary group and a fallback group. Custom instance IDs are merged into the instance list but must still be added to a route explicitly. An omitted capability route uses the defaults above; an explicit Search primary empty array is invalid, while Extract may be explicitly disabled with an empty primary route. In `auto` mode, incompletely configured instances are skipped. AnySearch and XCrawl accept `searchFilterMode`: `strict` (default; freshness skips the provider) or `best_effort` (rewrites freshness into a query fragment). Domain constraints are rewritten into the query and strictly re-applied locally. XCrawl Extract always uses synchronous Scrape with Markdown output; Map, Crawl, and asynchronous jobs are outside the current CLI capabilities.
170
174
 
171
- DeepSeek Search performs a full Anthropic-compatible Messages model turn with the native `web_search_20250305` server tool, so it can have higher latency and cost than a dedicated search endpoint. It is in the default Search fallback group and is reached only after every primary provider is unavailable, returns a final non-2xx HTTP response, or otherwise fails recoverably. The adapter accepts URLs only from structured `web_search_tool_result` blocks, joins citation excerpts by URL, and never extracts URLs from model prose. Domain constraints are rewritten into the query and strictly re-applied locally; `freshness` is unsupported and skips DeepSeek with a recoverable error. Redirects are rejected without contacting the `Location` target. Provider-private `encrypted_content` payloads are omitted from `raw` because they are opaque, cannot be displayed or decoded by the CLI, and add no diagnostic value.
175
+ Yuanbao Search calls Tencent Cloud `POST /SearchPro` with a bearer service API key and a lower-case request body (`Query`, plus optional `Site` and `Freshness`). One `site:` include becomes `Site=<domain>`; up to five excludes become `Site=exclude:<domain>|<domain>`; other combinations are filtered locally only. Each entry of `Pages` is a JSON string and is mapped to `title`/`url`/`snippet`, preferring the standard `passage` summary over the dynamic `content`. Errors returned inside a successful HTTP response, such as `UnauthorizedOperation` or `ResourceNotFound`, stay fallback-eligible so `auto` can continue to the next provider. Only Search is supported; `Cnt` is omitted while `--limit` stays at or below 10 so the lite edition keeps working, and is rounded up to the next multiple of 10 (maximum 50) above that.
176
+
177
+ DeepSeek uses the official tool API: Search posts to `{baseUrl}/v1/tools/search` and Fetch posts to `{baseUrl}/v1/tools/fetch`, both with a Bearer `DEEPSEEK_API_KEY`. Search sends `count` and `need_content: false` and maps `title`/`url`/`snippet` from `results`, falling back to the longer `summary` only when `snippet` is empty; the remaining fields stay in `raw`. `freshness` has no request field, so it is rewritten into the documented `after:` search syntax, and domain constraints use `site:`/`-site:`. Both are hints only and are strictly re-applied locally; if the combined query would exceed the 128-character limit, the remote hints are dropped and the original query kept. Fetch returns `content` as the Markdown body and `title` as the title; HTTP 404 or an empty body becomes fallback-eligible `no_usable_content`. 401 is `auth_error`, 402 is `quota_exceeded`, 429 is `rate_limited`, and other statuses are `provider_error`; 400/401/402/403 are not retryable against the same provider.
172
178
 
173
179
  XAI hosted Search reads an external OAuth JSON file from `XAI_AUTH_JSON` on every call and uses only its `access_token`; an external CLIProxyAPI process owns refresh and write-back. Instance fields `authJson`/`authJsonEnv` and `model`/`modelEnv` override the path and model. `xai_web_search` accepts at most five allow or exclude domains (mutually exclusive); `xai_x_search` rejects `freshness`. Model-backed search can take longer than ordinary API searches; Search defaults allow up to 60 seconds per attempt and 120 seconds total.
174
180
 
@@ -188,7 +194,7 @@ Environment variables take precedence over plaintext keys in JSON. Built-in inst
188
194
  | HTTP | None | None |
189
195
  | AnySearch | `ANYSEARCH_API_KEY`, optional | `ANYSEARCH_BASE_URL`, default `https://api.anysearch.com` |
190
196
  | XCrawl | `XCRAWL_API_KEY` | `XCRAWL_BASE_URL`, default `https://run.xcrawl.com` |
191
- | DeepSeek | `DEEPSEEK_API_KEY` | No standard environment variable; default `https://api.deepseek.com/anthropic/v1` |
197
+ | DeepSeek | `DEEPSEEK_API_KEY` | No standard environment variable; default `https://api.deepseek.com` |
192
198
  | xAI Search | `XAI_AUTH_JSON` | No standard API-key variable; default `https://cli-chat-proxy.grok.com/v1`, model `grok-4.6` |
193
199
 
194
200
  Custom instances use `apiKeyEnv` and `baseUrlEnv` to name their environment variables. Every remote provider can define a `baseUrl` and additional `headers`. The public `api.firecrawl.dev` service requires a key; a self-hosted Firecrawl v2 instance can run without one.
@@ -262,6 +268,57 @@ Exit codes:
262
268
 
263
269
  `providers` lists each instance's type, capabilities, route status, credential source, and base URL source. Its `searchRoute`/`searchFallbackRoute` and `extractRoute`/`extractFallbackRoute` fields show the two effective orders for the next `auto` call. `doctor` performs local configuration checks only and does not call remote APIs. If an enabled route contains an unconfigured instance, the command returns `doctor_failed` with exit code `1`.
264
270
 
271
+ ## DeepSeek-compatible HTTP gateway
272
+
273
+ The repository also ships a **separate** HTTP service that wraps the same provider, route and transport implementations in the DeepSeek tool protocol. It is not a replacement for the CLI: commands, exit codes, the schema v2 envelope and the npm bin contract are unchanged.
274
+
275
+ ```sh
276
+ # From source (listens on 127.0.0.1:8080 by default)
277
+ WEB_ACCESS_CONFIG=~/.config/web-access-cli/config.json \
278
+ WEB_ACCESS_GATEWAY_API_KEY_FILE=/path/to/gateway-api-key \
279
+ pnpm start:gateway # or node --import tsx src/server.ts
280
+
281
+ # Built output
282
+ node dist/server.js
283
+ ```
284
+
285
+ | Method | Path | Notes |
286
+ | --- | --- | --- |
287
+ | `POST` | `/v1/tools/search` | DeepSeek Search compatible |
288
+ | `POST` | `/v1/tools/fetch` | DeepSeek Fetch compatible |
289
+ | `GET` | `/`, `/panel` | Request records panel (HTML, no data in the page itself) |
290
+ | `GET` | `/admin/api/records` | Recent request records (requires the Bearer key) |
291
+ | `GET` | `/healthz` | Process liveness, no authentication |
292
+ | `GET` | `/readyz` | Configuration/lifecycle readiness, no authentication |
293
+
294
+ The gateway reads its own Bearer key from a file only (`WEB_ACCESS_GATEWAY_API_KEY_FILE`), compares fixed-length digests with Node crypto, and rejects duplicate `Authorization` headers. Request bodies are counted as a stream with a 64 KiB cap and a 10-second read timeout; at most four tool requests may be in flight, and excess requests receive 429. Success and error responses use `Cache-Control: no-store`.
295
+
296
+ Request fields match the official contract:
297
+
298
+ | Field | Behavior |
299
+ | --- | --- |
300
+ | `query` | Required, 1–128 Unicode characters, not entirely whitespace; search operators are preserved |
301
+ | `count` | Integer 1–50, default 10 |
302
+ | `ori_question` | Optional or `null`; when non-null, 1–128 characters |
303
+ | `localization` | Optional, default empty string; when non-empty it must be an IP address |
304
+ | `need_content` | Optional, default `false`; must be a boolean |
305
+
306
+ Fetch accepts only a non-empty absolute HTTP(S) URL of at most 8192 characters with a hostname and no userinfo. Unknown request fields are ignored and cannot select a provider, credential, timeout or configuration override.
307
+
308
+ **Responses are protocol-compatible, not equivalent to the official search engine**: `summary` reuses `snippet`, `rerank_score` is always `0`, `authority` is always `-1`, and `site_name`/`site_icon`/`date` are always `null`. The placeholder score is **not** a DeepSeek quality score; clients filtering on `rerank_score >= 1.5` or `authority >= 3` must change strategy or they will drop every result. Result count, ranking and summary quality are not promised, and the gateway never paginates or merges providers to fill `count`.
309
+
310
+ `ori_question` and `localization` are validated and accepted, but the neutral core has no equivalent capability, so they do not affect provider requests and are not folded into `query`.
311
+
312
+ With `need_content=true`, content is backfilled in rank order with at most two concurrent tasks, a 30-second total window, 10 seconds per item, and a 3-second per-provider attempt cap. Failed, timed-out or over-limit content stays empty while the result is kept; one content value is capped at 256 KiB JSON-encoded UTF-8 and the complete response at 8 MiB, clearing content from the lowest ranks when needed. **Backfill spends extract provider quota.**
313
+
314
+ The gateway derives its own config for Fetch and backfill with a 1-character minimum, so valid short pages succeed, while the source Markdown probe still requires at least 500 characters (or the original threshold, whichever is larger) so a short `Not found` page cannot win. Search and Fetch each use the configured total timeout; backfill has an independent 30-second window, and client disconnects cancel in-flight work.
315
+
316
+ Errors are always `{ "error": { "message": "...", "type": "...", "param": null, "code": "..." } }`: 400 invalid input, 401 `invalid_api_key`, 402 insufficient quota, 404 no usable content or an unavailable direct target, 408 body read timeout, 413 body too large, 429 rate limited (with `Retry-After`), 504 upstream timeout, and 500 for credential/configuration failures, unknown failures or oversized output. Target-site 401/403 means Fetch is unavailable; cloud-provider 401/403 returns 500.
317
+
318
+ The gateway never writes provider order and never modifies configuration: it uses the snapshot loaded at startup. Deployment, Docker Compose templates, secret mounts, diagnostics, upgrades and rollback are documented in [deploy/README.md](deploy/README.md); the architectural decision is in [docs/adr/0019-deepseek-tool-gateway.md](docs/adr/0019-deepseek-tool-gateway.md).
319
+
320
+ Open the gateway root or `/panel` in a browser and enter the gateway key to inspect the last 500 tool requests (status, duration, error code, provider, query/URL and the first five result titles). Records are in memory only, are cleared on restart, and never contain response bodies, headers or credentials; unauthenticated requests are excluded. The panel HTML carries no data, and `/admin/api/records` uses the same Bearer key as the tool endpoints. A bookmark with an `#apikey=<key>` fragment logs in directly; the script strips it from the address bar immediately. Do not pass the key in a query string.
321
+
265
322
  ## HTTP and security boundaries
266
323
 
267
324
  - Honors `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`, and `NO_PROXY` by default.
package/README_CN.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![CI](https://github.com/Juexe/web-access-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Juexe/web-access-cli/actions/workflows/ci.yml)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
7
 
8
- 一个 Agent-neutral 的网页能力 CLI。它把“搜索”和“网页正文提取”定义为稳定能力,把 Tavily、Exa、Bocha、Brave、SearXNG、AnySearch、XCrawl、DeepSeek、Firecrawl、Jina 等差异收敛到内部统一 schema。
8
+ 一个 Agent-neutral 的网页能力 CLI。它把“搜索”和“网页正文提取”定义为稳定能力,把 Tavily、Exa、Bocha、元宝搜索、Brave、SearXNG、AnySearch、XCrawl、DeepSeek、Firecrawl、Jina 等差异收敛到内部统一 schema。
9
9
 
10
10
  CLI 是主要产品形态,不绑定 Pi、Claude Code、Codex、Cursor、OpenCode 或其他 Agent。Skill、MCP 和 Agent 插件只能作为 CLI 上层 adapter 接入,不能污染核心能力和 Provider 实现。
11
11
 
@@ -13,8 +13,8 @@ CLI 是主要产品形态,不绑定 Pi、Claude Code、Codex、Cursor、OpenCo
13
13
 
14
14
  | 能力 | Provider Type | 统一输出 |
15
15
  | --- | --- | --- |
16
- | `search` | Tavily、Exa、Bocha、Brave、SearXNG、AnySearch、XCrawl、DeepSeek、xAI x_search、xAI web_search | `rank`、`title`、`url`、`snippet` |
17
- | `extract` | Firecrawl v2、Jina Reader、Exa Contents、AnySearch、XCrawl、HTTP | Markdown `Document` |
16
+ | `search` | Tavily、Exa、Bocha、元宝搜索、Brave、SearXNG、AnySearch、XCrawl、DeepSeek、xAI x_search、xAI web_search | `rank`、`title`、`url`、`snippet` |
17
+ | `extract` | Firecrawl v2、Jina Reader、Exa Contents、AnySearch、XCrawl、DeepSeek Fetch、HTTP | Markdown `Document` |
18
18
 
19
19
  Provider Type 描述实现类型;Provider Instance 是一份可配置实例。一个 Type 可以有多个 Instance,例如 `exa_team` 和 `exa_personal`。每个能力都有主 `providers` Route 和兜底 `providers_fallback` Route;两组数组同时决定启用状态和 `auto` 顺序,CLI 只在原分组内部调整成员顺序。
20
20
 
@@ -50,12 +50,15 @@ pnpm pack:check
50
50
 
51
51
  ```text
52
52
  src/cli.ts Commander CLI 与退出码
53
+ src/server.ts DeepSeek 兼容网关的独立进程入口
53
54
  src/config/ 配置文件、环境变量与 Route 合并
54
55
  src/core/ 公共类型、schema、错误、路由和诊断
56
+ src/gateway/ 网关协议 schema、服务映射与 HTTP 边界
55
57
  src/providers/ Provider adapter、registry、HTTP/RSC 提取
56
58
  src/transport/ 代理、超时、重定向和响应大小限制
57
59
  schemas/ 构建生成的 JSON Schema
58
60
  test/ node:test 单元测试与本地 HTTP 集成测试
61
+ deploy/ 网关公开部署模板、配置示例与运维说明
59
62
  ```
60
63
 
61
64
  Provider adapter 应只负责协议映射;fallback、deadline、attempts、envelope 和退出码由 `src/core` 统一处理。不要在 adapter 中引入 Pi、Claude Code、Codex 或其他 Agent 的生命周期和工具注册代码。
@@ -69,6 +72,7 @@ pnpm typecheck
69
72
  pnpm test
70
73
  pnpm build
71
74
  pnpm pack:check
75
+ pnpm test:docker
72
76
  ```
73
77
 
74
78
  `pnpm check` 会按上述顺序执行 lint、类型检查、测试和构建。修改 `src/core/schema.ts` 后必须重新运行 `pnpm build`,并提交更新后的 `schemas/*.schema.json`。Provider 测试应使用 `test/helpers.ts` 的 mock transport 或本地 HTTP server,不依赖真实 API key 和外网稳定性。
@@ -117,7 +121,7 @@ CLI 提供 `search`、`extract` 两个能力命令,`providers`、`doctor` 两
117
121
 
118
122
  ```json
119
123
  {
120
- "$schema": "https://unpkg.com/web-access-cli@0.5.0/schemas/config.schema.json",
124
+ "$schema": "https://unpkg.com/web-access-cli@0.6.0/schemas/config.schema.json",
121
125
  "providers": [
122
126
  {
123
127
  "id": "exa_team",
@@ -157,18 +161,20 @@ CLI 提供 `search`、`extract` 两个能力命令,`providers`、`doctor` 两
157
161
  }
158
162
  ```
159
163
 
160
- 内置 Instance 为 `tavily`、`exa`、`bocha`、`brave`、`searxng`、`firecrawl`、`jina`、`http`、`anysearch`、`xcrawl`、`deepseek`、`xai_x_search`、`xai_web_search`。配置同 ID 时会覆盖内置实例的字段;自定义 ID 可以创建同 Type 的额外实例。出现在对应主 Route 或 fallback Route 中的实例才启用。Bocha 默认 base URL 为 `https://api.bocha.cn`,必须配置 API key;AnySearch 默认 base URL 为 `https://api.anysearch.com`,支持匿名调用;XCrawl 默认 base URL 为 `https://run.xcrawl.com`,必须配置 API key;DeepSeek 默认 base URL 为 `https://api.deepseek.com/anthropic/v1`,必须配置 API key。
164
+ 内置 Instance 为 `tavily`、`exa`、`bocha`、`yuanbao`、`brave`、`searxng`、`firecrawl`、`jina`、`http`、`anysearch`、`xcrawl`、`deepseek`、`xai_x_search`、`xai_web_search`。配置同 ID 时会覆盖内置实例的字段;自定义 ID 可以创建同 Type 的额外实例。出现在对应主 Route 或 fallback Route 中的实例才启用。Bocha 默认 base URL 为 `https://api.bocha.cn`,必须配置 API key;元宝搜索默认 base URL 为 `https://api.wsa.cloud.tencent.com`,必须配置服务 API KEY;AnySearch 默认 base URL 为 `https://api.anysearch.com`,支持匿名调用;XCrawl 默认 base URL 为 `https://run.xcrawl.com`,必须配置 API key;DeepSeek 默认 base URL 为 `https://api.deepseek.com`,必须配置 API key。
161
165
 
162
166
  默认 Route:
163
167
 
164
- - Search 主轮:`tavily -> exa -> bocha -> brave -> searxng -> anysearch -> xcrawl`
165
- - Search fallback:`deepseek -> xai_x_search -> xai_web_search`
166
- - Extract 主轮:`firecrawl -> jina -> exa -> anysearch -> xcrawl`
168
+ - Search 主轮:`tavily -> exa -> bocha -> yuanbao -> brave -> searxng -> anysearch -> xcrawl -> deepseek`
169
+ - Search fallback:`xai_x_search -> xai_web_search`
170
+ - Extract 主轮:`firecrawl -> jina -> exa -> anysearch -> xcrawl -> deepseek`
167
171
  - Extract fallback:`http`
168
172
 
169
173
  默认 Route 将内置 provider 分为主轮和 fallback。自定义 ID 会合并到 Instance 列表,但仍需显式加入 Route;省略能力 Route 时使用上述默认分组,Search 主 Route 显式空数组会报错,Extract 主 Route 可以显式为空以禁用 Extract。`auto` 会跳过未完成配置的 Instance。AnySearch 与 XCrawl 可设置 `searchFilterMode`:`strict`(默认,遇到 freshness 时跳过)或 `best_effort`(将日期改写为查询片段)。域名条件会改写查询并在本地再次严格过滤。XCrawl Extract 固定使用同步 Scrape 的 Markdown 输出;Map、Crawl 和异步任务不属于当前 CLI 能力。
170
174
 
171
- DeepSeek Search 通过 Anthropic-compatible Messages API 调用原生 `web_search_20250305` server tool,一次搜索是完整模型轮次,因此延迟和成本可能高于专用搜索 endpoint。它位于默认 Search fallback,仅在全部主轮 Provider 未配置、返回最终非 2xx HTTP 响应或发生其他可恢复失败后触发。Adapter 只接受 `web_search_tool_result` 中的结构化 URL,按 URL 合并 citation 摘要,绝不从模型 prose 中猜测 URL。域名条件会改写查询并在本地再次严格过滤;DeepSeek 不支持 `freshness`,遇到该参数时以可恢复错误跳过;重定向会被严格拒绝,且不会访问 `Location` 目标。Provider 私有的 `encrypted_content` 是 CLI 无法展示或解码的 opaque payload,不具备诊断价值,因此会从 `raw` 中移除。
175
+ 元宝搜索调用腾讯云 `POST /SearchPro`,使用 Bearer 服务 API KEY 和小写驼峰请求体(`Query`,可选 `Site` 与 `Freshness`)。单个 `site:` 指定域名改写为 `Site=<domain>`,不超过五个排除域名改写为 `Site=exclude:<domain>|<domain>`,其余组合只在本地过滤。`Pages` 的每一项都是 JSON 字符串,映射为 `title`/`url`/`snippet`,摘要优先取标准摘要 `passage`,其次才是动态摘要 `content`。HTTP 200 中返回的 `UnauthorizedOperation`、`ResourceNotFound` 等业务错误保持可回退,`auto` 会继续尝试下一个 Provider。该 Provider 仅支持 Search;`--limit` 不超过 10 时不发送 `Cnt`,以免极速版拒绝请求,超出时按 10 向上取整发送(上限 50)。
176
+
177
+ DeepSeek 使用官方工具 API:Search 请求 `{baseUrl}/v1/tools/search`,Fetch 请求 `{baseUrl}/v1/tools/fetch`,都以 Bearer 携带 `DEEPSEEK_API_KEY`。Search 发送 `count` 和 `need_content: false`,从 `results` 映射 `title`/`url`/`snippet`,仅在 `snippet` 为空时回退到更长的 `summary`,其余字段保留在 `raw`。官方 Search 没有 `freshness` 字段,因此改写为文档支持的 `after:` 搜索语法,域名条件使用 `site:`/`-site:`;两者都只是远端提示,结果仍在本地严格复核,拼接后超过 128 字符上限时丢弃远端提示并保留原始查询。Fetch 用 `content` 作为 Markdown 正文、`title` 作为标题;HTTP 404 或正文为空返回可回退的 `no_usable_content`。401 为 `auth_error`,402 为 `quota_exceeded`,429 为 `rate_limited`,其余状态为 `provider_error`;400/401/402/403 不会重试同一 Provider。
172
178
 
173
179
  XAI hosted Search 使用 `XAI_AUTH_JSON` 指向外部 OAuth JSON 文件,每次调用只读取 `access_token`,由外部 CLIProxyAPI 负责刷新和回写。可用 `authJson`/`authJsonEnv` 与 `model`/`modelEnv` 为实例覆盖路径和模型。`xai_web_search` 支持最多 5 个 allow 或 exclude 域名(两者不能同时使用);`xai_x_search` 不接受 `freshness`。模型搜索可能需要更长时间;Search 默认单次超时 60 秒、总超时 120 秒。
174
180
 
@@ -188,7 +194,7 @@ XAI hosted Search 使用 `XAI_AUTH_JSON` 指向外部 OAuth JSON 文件,每次
188
194
  | HTTP | 无 | 无 |
189
195
  | AnySearch | `ANYSEARCH_API_KEY`,可选 | `ANYSEARCH_BASE_URL`,默认 `https://api.anysearch.com` |
190
196
  | XCrawl | `XCRAWL_API_KEY` | `XCRAWL_BASE_URL`,默认 `https://run.xcrawl.com` |
191
- | DeepSeek | `DEEPSEEK_API_KEY` | 无标准环境变量;默认 `https://api.deepseek.com/anthropic/v1` |
197
+ | DeepSeek | `DEEPSEEK_API_KEY` | 无标准环境变量;默认 `https://api.deepseek.com` |
192
198
  | xAI Search | `XAI_AUTH_JSON` | 无标准环境变量;默认 `https://cli-chat-proxy.grok.com/v1`,模型 `grok-4.6` |
193
199
 
194
200
  自定义 Instance 使用 `apiKeyEnv` 和 `baseUrlEnv` 指定自己的环境变量。所有远端 Provider 都可以设置 `baseUrl` 和附加 `headers`。公共 `api.firecrawl.dev` 需要 key;自托管 Firecrawl v2 可以不设置 key。
@@ -262,6 +268,57 @@ title: "Example title"
262
268
 
263
269
  `providers` 会列出每个 Instance 的 Type、能力、Route 启用状态、凭据来源和 base URL 来源;`searchRoute`/`searchFallbackRoute` 与 `extractRoute`/`extractFallbackRoute` 是下一次 `auto` 使用的两组有效顺序。`doctor` 只做本地配置检查,不主动调用远端 API;当已启用 Route 中存在未配置 Instance 时,命令返回 `doctor_failed` 和退出码 `1`。
264
270
 
271
+ ## DeepSeek 兼容 HTTP 网关
272
+
273
+ 仓库另外提供一个**独立**的 HTTP 服务,把同样的 provider、路由和传输实现包装成 DeepSeek 工具协议。它不是 CLI 的替代品:CLI 的命令、退出码、schema v2 envelope 和 npm bin 契约都不变。
274
+
275
+ ```sh
276
+ # 源码运行(默认监听 127.0.0.1:8080)
277
+ WEB_ACCESS_CONFIG=~/.config/web-access-cli/config.json \
278
+ WEB_ACCESS_GATEWAY_API_KEY_FILE=/path/to/gateway-api-key \
279
+ pnpm start:gateway # 或 node --import tsx src/server.ts
280
+
281
+ # 构建后运行
282
+ node dist/server.js
283
+ ```
284
+
285
+ | 方法 | 路径 | 说明 |
286
+ | --- | --- | --- |
287
+ | `POST` | `/v1/tools/search` | DeepSeek Search 兼容 |
288
+ | `POST` | `/v1/tools/fetch` | DeepSeek Fetch 兼容 |
289
+ | `GET` | `/`、`/panel` | 请求记录面板(HTML,页面本身不含数据) |
290
+ | `GET` | `/admin/api/records` | 最近请求记录(需要 Bearer Key) |
291
+ | `GET` | `/healthz` | 进程存活,无需鉴权 |
292
+ | `GET` | `/readyz` | 配置/生命周期就绪,无需鉴权 |
293
+
294
+ 网关只从文件读取独立的 Bearer Key(`WEB_ACCESS_GATEWAY_API_KEY_FILE`),使用 Node crypto 做定长摘要比较,并拒绝重复 `Authorization`。入站请求体按流计数,上限 64 KiB,读取超时 10 秒;全服务最多 4 个在途工具请求,满额返回 429。成功与错误都使用 `Cache-Control: no-store`。
295
+
296
+ 请求字段与官方一致:
297
+
298
+ | 字段 | 行为 |
299
+ | --- | --- |
300
+ | `query` | 必填,1–128 个 Unicode 字符,不能全为空白;原样保留搜索语法 |
301
+ | `count` | 1–50 的整数,缺省 10 |
302
+ | `ori_question` | 可省略或 `null`;非 null 时 1–128 个字符 |
303
+ | `localization` | 可省略,默认空字符串;非空必须是 IP 地址 |
304
+ | `need_content` | 可省略,默认 `false`;必须是布尔值 |
305
+
306
+ Fetch 只接受非空、最长 8192 字符、含 hostname、无 userinfo 的绝对 HTTP(S) URL。未知请求字段会被忽略,且无法通过未知字段指定 provider、凭据、timeout 或配置。
307
+
308
+ **响应是协议兼容而非与官方搜索引擎等价**:`summary` 直接复制 `snippet`,`rerank_score` 恒为 `0`,`authority` 恒为 `-1`,`site_name`/`site_icon`/`date` 恒为 `null`。占位评分**不是** DeepSeek 的质量评分;依赖 `rerank_score >= 1.5` 或 `authority >= 3` 筛选的客户端必须调整策略,否则会过滤掉全部结果。网关不承诺结果数量、排序或摘要质量与官方一致,也不跨 provider 凑数或重新分页。
309
+
310
+ `ori_question` 与 `localization` 本期接受并校验,但中立核心没有对应能力,因此不影响 provider 请求,也不会拼进 `query`。
311
+
312
+ `need_content=true` 时为每条结果补抓正文:按排名顺序、最多两路并发、总预算 30 秒、单篇 10 秒、每次 provider 尝试 3 秒。失败、超时或超限的正文留空但结果保留;单篇正文最多 256 KiB(JSON 编码后),完整响应最多 8 MiB,超限时从低排名起清空 `content`。**补抓会消耗 extract 上游额度。**
313
+
314
+ 网关为 Fetch 与补抓派生自己的配置,正文最短阈值降为 1 个字符,因此有效短页面会成功;源站 `.md` 猜测仍要求至少 500 字符(或原配置阈值取大者),避免短小的 `Not found` 页面误命中。搜索和 Fetch 各用现有配置的总超时,补抓有独立的 30 秒窗口;客户端断开会取消在途工作。
315
+
316
+ 错误统一为 `{ "error": { "message": "...", "type": "...", "param": null, "code": "..." } }`:400 输入错误、401 `invalid_api_key`、402 额度不足、404 无可用正文或直连目标不可用、408 读取请求体超时、413 请求体过大、429 限流(带 `Retry-After`)、504 下游超时、500 凭据/配置/未知失败/输出超限。目标站点的 401/403 属于 Fetch 不可用;云 provider 的 401/403 返回 500。
317
+
318
+ 网关不写回 provider 顺序,也不修改配置:服务运行期间使用启动时加载的配置快照。部署方式、Docker Compose 模板、secret 挂载、诊断、升级与回滚见 [deploy/README.md](deploy/README.md);架构决策见 [docs/adr/0019-deepseek-tool-gateway.md](docs/adr/0019-deepseek-tool-gateway.md)。
319
+
320
+ 浏览器打开网关根路径或 `/panel`,输入网关 Key 即可查看最近 500 条工具请求(状态、耗时、错误码、provider、query/URL 与前 5 条结果标题)。记录只保存在内存中,重启清空,不记录响应正文、header 或凭据;未鉴权请求不进入记录。面板 HTML 本身不含数据,`/admin/api/records` 复用同一个 Bearer Key。也可用 `#apikey=<key>` 片段直接打开,脚本读取后立即从地址栏移除;不要用查询串传递 Key。
321
+
265
322
  ## HTTP 与安全边界
266
323
 
267
324
  - 默认遵循 `HTTP_PROXY`、`HTTPS_PROXY`、`ALL_PROXY`、`NO_PROXY`。
@@ -33,19 +33,6 @@
33
33
 
34
34
  Pi-specific 的工具注册、UI、Agent 生命周期与协议代码没有进入本项目。
35
35
 
36
- ## DeepSeek Harness web-search-deepseek
37
-
38
- DeepSeek Search Provider 的 Anthropic-compatible Messages wire shape、结构化结果解析与 citation 映射参考并改写自:
39
-
40
- - 项目:`deepseek-harness`
41
- - 仓库:`https://github.com/deepseek-ai/deepseek-harness.git`
42
- - 上游路径:`packages/web/web-search-deepseek`
43
- - 参考提交:`99f6f02fecdb7dff40c3fbc9470f5907c29f74ca`
44
- - Copyright 2026 DeepSeek
45
- - 许可证:MIT(适用的许可文本与上文所列 MIT 文本相同)
46
-
47
- 动态 Settings、Credential Service、Session event、LLM seam 和 Agent 集成代码没有进入本项目。
48
-
49
36
  ## Grok Build xAI Search
50
37
 
51
38
  The xAI hosted search request and response mapping is derived from the `grok-build` project:
@@ -8,13 +8,14 @@ export const DEFAULT_SEARCH_PROVIDERS = [
8
8
  "tavily",
9
9
  "exa",
10
10
  "bocha",
11
+ "yuanbao",
11
12
  "brave",
12
13
  "searxng",
13
14
  "anysearch",
14
15
  "xcrawl",
16
+ "deepseek",
15
17
  ];
16
18
  export const DEFAULT_SEARCH_FALLBACK_PROVIDERS = [
17
- "deepseek",
18
19
  "xai_x_search",
19
20
  "xai_web_search",
20
21
  ];
@@ -24,6 +25,7 @@ export const DEFAULT_EXTRACT_PROVIDERS = [
24
25
  "exa",
25
26
  "anysearch",
26
27
  "xcrawl",
28
+ "deepseek",
27
29
  ];
28
30
  export const DEFAULT_EXTRACT_FALLBACK_PROVIDERS = ["http"];
29
31
  export const DEFAULT_MAX_RESPONSE_BYTES = 5 * 1024 * 1024;
@@ -47,6 +49,7 @@ const SEARCH_TYPES = new Set([
47
49
  "tavily",
48
50
  "exa",
49
51
  "bocha",
52
+ "yuanbao",
50
53
  "brave",
51
54
  "searxng",
52
55
  "anysearch",
@@ -62,11 +65,13 @@ const EXTRACT_TYPES = new Set([
62
65
  "http",
63
66
  "anysearch",
64
67
  "xcrawl",
68
+ "deepseek",
65
69
  ]);
66
70
  const DEFAULT_INSTANCE_CONFIGS = [
67
71
  { id: "tavily", type: "tavily" },
68
72
  { id: "exa", type: "exa" },
69
73
  { id: "bocha", type: "bocha" },
74
+ { id: "yuanbao", type: "yuanbao" },
70
75
  { id: "brave", type: "brave" },
71
76
  { id: "searxng", type: "searxng" },
72
77
  { id: "firecrawl", type: "firecrawl" },
@@ -82,6 +87,7 @@ const STANDARD_KEY_ENV = {
82
87
  tavily: "TAVILY_API_KEY",
83
88
  exa: "EXA_API_KEY",
84
89
  bocha: "BOCHA_API_KEY",
90
+ yuanbao: "YUANBAO_API_KEY",
85
91
  brave: "BRAVE_API_KEY",
86
92
  firecrawl: "FIRECRAWL_API_KEY",
87
93
  jina: "JINA_API_KEY",
@@ -101,6 +107,7 @@ const STANDARD_BASE_ENV = {
101
107
  tavily: "TAVILY_BASE_URL",
102
108
  exa: "EXA_BASE_URL",
103
109
  bocha: "BOCHA_BASE_URL",
110
+ yuanbao: "YUANBAO_BASE_URL",
104
111
  brave: "BRAVE_BASE_URL",
105
112
  searxng: "SEARXNG_BASE_URL",
106
113
  firecrawl: "FIRECRAWL_BASE_URL",
@@ -480,12 +487,13 @@ const DEFAULT_BASE_URLS = {
480
487
  tavily: "https://api.tavily.com",
481
488
  exa: "https://api.exa.ai",
482
489
  bocha: "https://api.bocha.cn",
490
+ yuanbao: "https://api.wsa.cloud.tencent.com",
483
491
  brave: "https://api.search.brave.com",
484
492
  firecrawl: "https://api.firecrawl.dev",
485
493
  jina: "https://r.jina.ai",
486
494
  anysearch: "https://api.anysearch.com",
487
495
  xcrawl: "https://run.xcrawl.com",
488
- deepseek: "https://api.deepseek.com/anthropic/v1",
496
+ deepseek: "https://api.deepseek.com",
489
497
  xai_x_search: DEFAULT_BASE_URLS_XAI,
490
498
  xai_web_search: DEFAULT_BASE_URLS_XAI,
491
499
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -142,9 +142,10 @@ async function runProviders(options) {
142
142
  const remaining = options.totalTimeoutMs - elapsed(started, now);
143
143
  if (remaining > 0) {
144
144
  const preflightStarted = now();
145
+ const preflightTimeoutMs = Math.min(remaining, options.context.extractPreflight?.timeoutMs ?? options.attemptTimeoutMs);
145
146
  const preflightSignal = AbortSignal.any([
146
147
  ...(options.context.signal ? [options.context.signal] : []),
147
- AbortSignal.timeout(Math.max(1, Math.min(remaining, options.attemptTimeoutMs))),
148
+ AbortSignal.timeout(Math.max(1, preflightTimeoutMs)),
148
149
  ]);
149
150
  try {
150
151
  const preferred = await options.preflight(resolved, preflightSignal, transport);
@@ -519,7 +520,8 @@ export async function executeExtract(request, context) {
519
520
  url: request.url,
520
521
  signal,
521
522
  maxResponseBytes: config.maxResponseBytes,
522
- minContentCharacters: config.minContentCharacters,
523
+ minContentCharacters: context.extractPreflight?.minContentCharacters ??
524
+ config.minContentCharacters,
523
525
  instance,
524
526
  transport,
525
527
  });