dsh-web-search-pro 0.1.15 → 0.2.1
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.
- package/CHANGELOG.md +70 -0
- package/README.md +459 -51
- package/assets/skills/dsh-web-search-pro/SKILL.md +98 -0
- package/assets/skills/dsh-web-search-pro/references/judges.md +11 -0
- package/assets/skills/dsh-web-search-pro/references/sources.md +74 -0
- package/assets/skills/dsh-web-search-pro/references/troubleshooting.md +22 -0
- package/catalog/sources.v1.json +82 -0
- package/lib/actions/approval.js +69 -0
- package/lib/actions/approval.js.map +1 -0
- package/lib/actions/cache.js +74 -0
- package/lib/actions/cache.js.map +1 -0
- package/lib/actions/errors.js +76 -0
- package/lib/actions/errors.js.map +1 -0
- package/lib/actions/format.js +45 -0
- package/lib/actions/format.js.map +1 -0
- package/lib/actions/history.js +180 -0
- package/lib/actions/history.js.map +1 -0
- package/lib/actions/index-view.js +158 -0
- package/lib/actions/index-view.js.map +1 -0
- package/lib/actions/legacy.js +71 -0
- package/lib/actions/legacy.js.map +1 -0
- package/lib/actions/read.js +221 -0
- package/lib/actions/read.js.map +1 -0
- package/lib/actions/registry.js +66 -0
- package/lib/actions/registry.js.map +1 -0
- package/lib/actions/rules.js +126 -0
- package/lib/actions/rules.js.map +1 -0
- package/lib/actions/run.js +169 -0
- package/lib/actions/run.js.map +1 -0
- package/lib/actions/schema.js +186 -0
- package/lib/actions/schema.js.map +1 -0
- package/lib/actions/search.js +261 -0
- package/lib/actions/search.js.map +1 -0
- package/lib/actions/sources.js +256 -0
- package/lib/actions/sources.js.map +1 -0
- package/lib/actions/types.js +35 -0
- package/lib/actions/types.js.map +1 -0
- package/lib/backend-registry.js +72 -5
- package/lib/backend-registry.js.map +1 -1
- package/lib/browser-access.js +73 -0
- package/lib/browser-access.js.map +1 -0
- package/lib/cache-key.js.map +1 -1
- package/lib/catalog/load.js +31 -0
- package/lib/catalog/load.js.map +1 -0
- package/lib/catalog/recommend.js +187 -0
- package/lib/catalog/recommend.js.map +1 -0
- package/lib/catalog/schema.js +153 -0
- package/lib/catalog/schema.js.map +1 -0
- package/lib/cli/builtin-specs.js +306 -0
- package/lib/cli/builtin-specs.js.map +1 -0
- package/lib/cli/chain.js +192 -0
- package/lib/cli/chain.js.map +1 -0
- package/lib/cli/chains-spec.js +98 -0
- package/lib/cli/chains-spec.js.map +1 -0
- package/lib/cli/engine.js +83 -0
- package/lib/cli/engine.js.map +1 -0
- package/lib/cli/opencli.js +105 -0
- package/lib/cli/opencli.js.map +1 -0
- package/lib/cli/probe.js +128 -0
- package/lib/cli/probe.js.map +1 -0
- package/lib/cli/runner.js +374 -0
- package/lib/cli/runner.js.map +1 -0
- package/lib/cli/spec.js +416 -0
- package/lib/cli/spec.js.map +1 -0
- package/lib/client/RubricEditor.js +47 -0
- package/lib/client/RubricEditor.js.map +1 -0
- package/lib/client/SettingsCard.js +20 -3
- package/lib/client/SettingsCard.js.map +1 -1
- package/lib/client/fields.js +9 -3
- package/lib/client/fields.js.map +1 -1
- package/lib/client/form-specs.js +294 -0
- package/lib/client/form-specs.js.map +1 -0
- package/lib/client/form.js +260 -148
- package/lib/client/form.js.map +1 -1
- package/lib/client/index.js.map +1 -1
- package/lib/client/locales.js +154 -4
- package/lib/client/locales.js.map +1 -1
- package/lib/client/sources-table.js +30 -0
- package/lib/client/sources-table.js.map +1 -0
- package/lib/client/styles.js +13 -1
- package/lib/client/styles.js.map +1 -1
- package/lib/client/validators.js +186 -0
- package/lib/client/validators.js.map +1 -0
- package/lib/client.js +3798 -169
- package/lib/client.js.map +1 -1
- package/lib/config-enums.js +16 -0
- package/lib/config-enums.js.map +1 -0
- package/lib/config.js +179 -0
- package/lib/config.js.map +1 -1
- package/lib/deps.js +121 -85
- package/lib/deps.js.map +1 -1
- package/lib/engine-error.js +19 -0
- package/lib/engine-error.js.map +1 -0
- package/lib/engines.js +47 -152
- package/lib/engines.js.map +1 -1
- package/lib/extract.js +1 -1
- package/lib/fetch.js +209 -71
- package/lib/fetch.js.map +1 -1
- package/lib/history.js +60 -0
- package/lib/history.js.map +1 -1
- package/lib/index.js +67 -47
- package/lib/index.js.map +1 -1
- package/lib/pipeline/align.js +209 -0
- package/lib/pipeline/align.js.map +1 -0
- package/lib/pipeline/blocks.js +362 -0
- package/lib/pipeline/blocks.js.map +1 -0
- package/lib/pipeline/budget-spec.js +49 -0
- package/lib/pipeline/budget-spec.js.map +1 -0
- package/lib/pipeline/candidates.js +88 -0
- package/lib/pipeline/candidates.js.map +1 -0
- package/lib/pipeline/clean.js +74 -0
- package/lib/pipeline/clean.js.map +1 -0
- package/lib/pipeline/compile.js +323 -0
- package/lib/pipeline/compile.js.map +1 -0
- package/lib/pipeline/corpus.js +75 -0
- package/lib/pipeline/corpus.js.map +1 -0
- package/lib/pipeline/coverage.js +168 -0
- package/lib/pipeline/coverage.js.map +1 -0
- package/lib/pipeline/fusion.js +76 -0
- package/lib/pipeline/fusion.js.map +1 -0
- package/lib/pipeline/gate.js +257 -0
- package/lib/pipeline/gate.js.map +1 -0
- package/lib/pipeline/judge-status.js +102 -0
- package/lib/pipeline/judge-status.js.map +1 -0
- package/lib/pipeline/judges/calibration-spec.js +37 -0
- package/lib/pipeline/judges/calibration-spec.js.map +1 -0
- package/lib/pipeline/judges/calibration.js +32 -0
- package/lib/pipeline/judges/calibration.js.map +1 -0
- package/lib/pipeline/judges/coverage.js +159 -0
- package/lib/pipeline/judges/coverage.js.map +1 -0
- package/lib/pipeline/judges/errors.js +24 -0
- package/lib/pipeline/judges/errors.js.map +1 -0
- package/lib/pipeline/judges/http.js +98 -0
- package/lib/pipeline/judges/http.js.map +1 -0
- package/lib/pipeline/judges/model-scorer.js +102 -0
- package/lib/pipeline/judges/model-scorer.js.map +1 -0
- package/lib/pipeline/judges/protocols/llm.js +159 -0
- package/lib/pipeline/judges/protocols/llm.js.map +1 -0
- package/lib/pipeline/judges/protocols/rerank.js +127 -0
- package/lib/pipeline/judges/protocols/rerank.js.map +1 -0
- package/lib/pipeline/judges/protocols/systemone.js +243 -0
- package/lib/pipeline/judges/protocols/systemone.js.map +1 -0
- package/lib/pipeline/judges/providers-spec.js +174 -0
- package/lib/pipeline/judges/providers-spec.js.map +1 -0
- package/lib/pipeline/judges/providers.js +80 -0
- package/lib/pipeline/judges/providers.js.map +1 -0
- package/lib/pipeline/judges/tokens.js +31 -0
- package/lib/pipeline/judges/tokens.js.map +1 -0
- package/lib/pipeline/judges/types.js +12 -0
- package/lib/pipeline/judges/types.js.map +1 -0
- package/lib/pipeline/ledger.js +237 -0
- package/lib/pipeline/ledger.js.map +1 -0
- package/lib/pipeline/lexical.js +182 -0
- package/lib/pipeline/lexical.js.map +1 -0
- package/lib/pipeline/plan.js +297 -0
- package/lib/pipeline/plan.js.map +1 -0
- package/lib/pipeline/render.js +60 -0
- package/lib/pipeline/render.js.map +1 -0
- package/lib/pipeline/rubrics-spec.js +125 -0
- package/lib/pipeline/rubrics-spec.js.map +1 -0
- package/lib/pipeline/rubrics.js +99 -0
- package/lib/pipeline/rubrics.js.map +1 -0
- package/lib/pipeline/run.js +585 -0
- package/lib/pipeline/run.js.map +1 -0
- package/lib/pipeline/score.js +243 -0
- package/lib/pipeline/score.js.map +1 -0
- package/lib/pipeline/select.js +310 -0
- package/lib/pipeline/select.js.map +1 -0
- package/lib/pipeline/service.js +208 -0
- package/lib/pipeline/service.js.map +1 -0
- package/lib/pipeline/sources-spec.js +69 -0
- package/lib/pipeline/sources-spec.js.map +1 -0
- package/lib/pipeline/task.js +95 -0
- package/lib/pipeline/task.js.map +1 -0
- package/lib/pipeline/types.js +11 -0
- package/lib/pipeline/types.js.map +1 -0
- package/lib/pipeline/url.js +107 -0
- package/lib/pipeline/url.js.map +1 -0
- package/lib/prompt.js +12 -0
- package/lib/prompt.js.map +1 -0
- package/lib/provider.js +155 -0
- package/lib/provider.js.map +1 -0
- package/lib/providers/anysearch.js +118 -0
- package/lib/providers/anysearch.js.map +1 -0
- package/lib/providers/baidu-qianfan.js +123 -0
- package/lib/providers/baidu-qianfan.js.map +1 -0
- package/lib/providers/bocha.js +237 -0
- package/lib/providers/bocha.js.map +1 -0
- package/lib/providers/brave.js +125 -0
- package/lib/providers/brave.js.map +1 -0
- package/lib/providers/builtin.js +113 -0
- package/lib/providers/builtin.js.map +1 -0
- package/lib/providers/descriptor.js +24 -0
- package/lib/providers/descriptor.js.map +1 -0
- package/lib/providers/hackernews.js +96 -0
- package/lib/providers/hackernews.js.map +1 -0
- package/lib/providers/http.js +123 -0
- package/lib/providers/http.js.map +1 -0
- package/lib/providers/index.js +17 -0
- package/lib/providers/index.js.map +1 -0
- package/lib/providers/keyed-meta.js +18 -0
- package/lib/providers/keyed-meta.js.map +1 -0
- package/lib/providers/keyed.js +175 -0
- package/lib/providers/keyed.js.map +1 -0
- package/lib/providers/linkup.js +87 -0
- package/lib/providers/linkup.js.map +1 -0
- package/lib/providers/metaso.js +84 -0
- package/lib/providers/metaso.js.map +1 -0
- package/lib/providers/openalex.js +133 -0
- package/lib/providers/openalex.js.map +1 -0
- package/lib/providers/platforms.js +254 -0
- package/lib/providers/platforms.js.map +1 -0
- package/lib/providers/registry.js +143 -0
- package/lib/providers/registry.js.map +1 -0
- package/lib/providers/searxng.js +153 -0
- package/lib/providers/searxng.js.map +1 -0
- package/lib/providers/semanticscholar.js +104 -0
- package/lib/providers/semanticscholar.js.map +1 -0
- package/lib/providers/serper.js +97 -0
- package/lib/providers/serper.js.map +1 -0
- package/lib/providers/stackexchange.js +126 -0
- package/lib/providers/stackexchange.js.map +1 -0
- package/lib/providers/tavily.js +94 -0
- package/lib/providers/tavily.js.map +1 -0
- package/lib/providers/unavailable.js +21 -0
- package/lib/providers/unavailable.js.map +1 -0
- package/lib/providers/wikipedia.js +112 -0
- package/lib/providers/wikipedia.js.map +1 -0
- package/lib/providers/zhipu.js +139 -0
- package/lib/providers/zhipu.js.map +1 -0
- package/lib/router.js +676 -254
- package/lib/router.js.map +1 -1
- package/lib/safe-http.js +27 -9
- package/lib/safe-http.js.map +1 -1
- package/lib/singleflight.js +69 -0
- package/lib/singleflight.js.map +1 -0
- package/lib/skill.js +92 -0
- package/lib/skill.js.map +1 -0
- package/lib/store.js +381 -53
- package/lib/store.js.map +1 -1
- package/lib/tool-defs.js +26 -0
- package/lib/tool-defs.js.map +1 -0
- package/lib/tools.js +98 -666
- package/lib/tools.js.map +1 -1
- package/lib/types/actions/approval.d.ts +41 -0
- package/lib/types/actions/cache.d.ts +3 -0
- package/lib/types/actions/errors.d.ts +19 -0
- package/lib/types/actions/format.d.ts +14 -0
- package/lib/types/actions/history.d.ts +12 -0
- package/lib/types/actions/index-view.d.ts +32 -0
- package/lib/types/actions/legacy.d.ts +30 -0
- package/lib/types/actions/read.d.ts +6 -0
- package/lib/types/actions/registry.d.ts +19 -0
- package/lib/types/actions/rules.d.ts +7 -0
- package/lib/types/actions/run.d.ts +34 -0
- package/lib/types/actions/schema.d.ts +21 -0
- package/lib/types/actions/search.d.ts +6 -0
- package/lib/types/actions/sources.d.ts +19 -0
- package/lib/types/actions/types.d.ts +138 -0
- package/lib/types/backend-registry.d.ts +33 -10
- package/lib/types/browser-access.d.ts +44 -0
- package/lib/types/browser-service.d.ts +1 -1
- package/lib/types/cache-key.d.ts +5 -0
- package/lib/types/catalog/load.d.ts +14 -0
- package/lib/types/catalog/recommend.d.ts +75 -0
- package/lib/types/catalog/schema.d.ts +91 -0
- package/lib/types/cli/builtin-specs.d.ts +30 -0
- package/lib/types/cli/chain.d.ts +83 -0
- package/lib/types/cli/chains-spec.d.ts +39 -0
- package/lib/types/cli/engine.d.ts +43 -0
- package/lib/types/cli/opencli.d.ts +38 -0
- package/lib/types/cli/probe.d.ts +53 -0
- package/lib/types/cli/runner.d.ts +87 -0
- package/lib/types/cli/spec.d.ts +176 -0
- package/lib/types/client/RubricEditor.d.ts +6 -0
- package/lib/types/client/fields.d.ts +17 -0
- package/lib/types/client/form-specs.d.ts +118 -0
- package/lib/types/client/form.d.ts +66 -17
- package/lib/types/client/index.d.ts +4 -1
- package/lib/types/client/locales.d.ts +151 -2
- package/lib/types/client/sources-table.d.ts +17 -0
- package/lib/types/client/styles.d.ts +15 -0
- package/lib/types/client/validators.d.ts +56 -0
- package/lib/types/config-enums.d.ts +17 -0
- package/lib/types/config.d.ts +948 -6
- package/lib/types/deps.d.ts +31 -16
- package/lib/types/engine-error.d.ts +12 -0
- package/lib/types/engines.d.ts +74 -13
- package/lib/types/extract.d.ts +1 -1
- package/lib/types/fetch.d.ts +53 -3
- package/lib/types/history.d.ts +24 -0
- package/lib/types/index.d.ts +784 -0
- package/lib/types/pipeline/align.d.ts +95 -0
- package/lib/types/pipeline/blocks.d.ts +67 -0
- package/lib/types/pipeline/budget-spec.d.ts +30 -0
- package/lib/types/pipeline/candidates.d.ts +37 -0
- package/lib/types/pipeline/clean.d.ts +21 -0
- package/lib/types/pipeline/compile.d.ts +143 -0
- package/lib/types/pipeline/corpus.d.ts +35 -0
- package/lib/types/pipeline/coverage.d.ts +90 -0
- package/lib/types/pipeline/fusion.d.ts +51 -0
- package/lib/types/pipeline/gate.d.ts +141 -0
- package/lib/types/pipeline/judge-status.d.ts +83 -0
- package/lib/types/pipeline/judges/calibration-spec.d.ts +6 -0
- package/lib/types/pipeline/judges/calibration.d.ts +12 -0
- package/lib/types/pipeline/judges/coverage.d.ts +67 -0
- package/lib/types/pipeline/judges/errors.d.ts +14 -0
- package/lib/types/pipeline/judges/http.d.ts +61 -0
- package/lib/types/pipeline/judges/model-scorer.d.ts +81 -0
- package/lib/types/pipeline/judges/protocols/llm.d.ts +52 -0
- package/lib/types/pipeline/judges/protocols/rerank.d.ts +39 -0
- package/lib/types/pipeline/judges/protocols/systemone.d.ts +97 -0
- package/lib/types/pipeline/judges/providers-spec.d.ts +38 -0
- package/lib/types/pipeline/judges/providers.d.ts +45 -0
- package/lib/types/pipeline/judges/tokens.d.ts +24 -0
- package/lib/types/pipeline/judges/types.d.ts +182 -0
- package/lib/types/pipeline/ledger.d.ts +138 -0
- package/lib/types/pipeline/lexical.d.ts +77 -0
- package/lib/types/pipeline/plan.d.ts +102 -0
- package/lib/types/pipeline/render.d.ts +35 -0
- package/lib/types/pipeline/rubrics-spec.d.ts +70 -0
- package/lib/types/pipeline/rubrics.d.ts +69 -0
- package/lib/types/pipeline/run.d.ts +224 -0
- package/lib/types/pipeline/score.d.ts +117 -0
- package/lib/types/pipeline/select.d.ts +100 -0
- package/lib/types/pipeline/service.d.ts +80 -0
- package/lib/types/pipeline/sources-spec.d.ts +28 -0
- package/lib/types/pipeline/task.d.ts +33 -0
- package/lib/types/pipeline/types.d.ts +245 -0
- package/lib/types/pipeline/url.d.ts +43 -0
- package/lib/types/prompt.d.ts +7 -0
- package/lib/types/provider.d.ts +78 -0
- package/lib/types/providers/anysearch.d.ts +50 -0
- package/lib/types/providers/baidu-qianfan.d.ts +69 -0
- package/lib/types/providers/bocha.d.ts +71 -0
- package/lib/types/providers/brave.d.ts +40 -0
- package/lib/types/providers/builtin.d.ts +10 -0
- package/lib/types/providers/descriptor.d.ts +7 -0
- package/lib/types/providers/hackernews.d.ts +31 -0
- package/lib/types/providers/http.d.ts +63 -0
- package/lib/types/providers/index.d.ts +17 -0
- package/lib/types/providers/keyed-meta.d.ts +8 -0
- package/lib/types/providers/keyed.d.ts +83 -0
- package/lib/types/providers/linkup.d.ts +47 -0
- package/lib/types/providers/metaso.d.ts +37 -0
- package/lib/types/providers/openalex.d.ts +48 -0
- package/lib/types/providers/platforms.d.ts +37 -0
- package/lib/types/providers/registry.d.ts +175 -0
- package/lib/types/providers/searxng.d.ts +31 -0
- package/lib/types/providers/semanticscholar.d.ts +31 -0
- package/lib/types/providers/serper.d.ts +32 -0
- package/lib/types/providers/stackexchange.d.ts +55 -0
- package/lib/types/providers/tavily.d.ts +49 -0
- package/lib/types/providers/unavailable.d.ts +15 -0
- package/lib/types/providers/wikipedia.d.ts +32 -0
- package/lib/types/providers/zhipu.d.ts +54 -0
- package/lib/types/router.d.ts +167 -7
- package/lib/types/singleflight.d.ts +19 -0
- package/lib/types/skill.d.ts +73 -0
- package/lib/types/store.d.ts +221 -3
- package/lib/types/tool-defs.d.ts +40 -0
- package/lib/types/tools.d.ts +26 -10
- package/lib/types/util.d.ts +34 -5
- package/lib/util.js +29 -8
- package/lib/util.js.map +1 -1
- package/package.json +50 -38
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# 更新记录
|
|
2
|
+
|
|
3
|
+
## 0.2.1(2026-10-07)
|
|
4
|
+
|
|
5
|
+
独立 CLI 适配层。兼容范围与 0.2.0 相同(DSH `>=0.2.0-rc.2 <0.2.1-0`,可选 `@anweat/dsh-browser ^0.2.0`),没有破坏性变更。
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
- 新增声明式 CLI 适配层(`src/cli/`):规格校验(只读保证:子命令白名单 + 全局拒绝表 + 拒绝读取 Cookie / 带凭据的 flag)、不经 shell 的执行器(最小环境、UTF-8、超时 / 取消 / 输出上限、结构化错误)、本地带缓存的契约探测(同名但契约不同的程序报 `incompatible`)。
|
|
9
|
+
- 内置规格:bili、yt-dlp、twitter 迁到规格执行器;新增 xhs、zhihu、rdt、omnireach、独立 opencli(按 `opencli list` 的 search 命令)、gh,以及按文档的 wx-search-cli、tanso;每个规格记录已验证版本与验证程度(live / contract-only / docs-only)。
|
|
10
|
+
- 每个平台是一条有序后端链(独立 CLI → 独立 OpenCLI → dsh-browser),新增 `platformBackends`、`cliAdapters` 设置;新增平台 `wechat`(公众号)与多源 `omnireach`、`tanso`;`sources.deps` / `sources.status` 显示每个 CLI 的安装状态与每条后端的就绪 / 跳过原因。
|
|
11
|
+
- 默认值写入 README 快速使用并有测试固定:Jev 默认关闭,博查只在配置了 Key 时使用。
|
|
12
|
+
- 平台搜索结果标明实际使用的后端(`Platform: bilibili (via bili)`,输出新增可选字段 `backend`,历史与证据包同样记录);后端链顺延时在说明里列出被跳过的后端与原因。
|
|
13
|
+
- `sources.status` 的平台摘要按后端链的真实状态显示:`ready`(有后端现在就能运行)、`login unverified`(只能依赖你自己的浏览器会话,本地无法确认)、`needs login`、`unavailable`,并给出下一步(例如自行运行 `xhs login`)。
|
|
14
|
+
- `bili` 返回的无视频号条目改用条目自带的链接;没有任何链接的条目跳过并在说明里注明数量。
|
|
15
|
+
- 需要登录的 CLI(xhs、zhihu、rdt)只在本地已有保存的登录信息时才运行(只检查文件是否存在);插件不会触发登录,也不会让 CLI 读取浏览器 Cookie。
|
|
16
|
+
- 验证:774 项插件测试、94 项 bench 测试、类型检查、peer 范围、构建与客户端 bundle 检查通过;真实宿主(DSH 0.2.0-rc.2)上全默认配置可用,`bili` 与 `omnireach` 两条后端实测通过。xhs、zhihu、rdt、twitter、独立 opencli 的搜索只核对了命令契约,未用真实登录态验证。
|
|
17
|
+
|
|
18
|
+
## 0.2.0(2026-10-05)
|
|
19
|
+
|
|
20
|
+
正式发布 0.2.0 基线。继承下方 rc.1 的工具面、来源、证据管线与兼容范围;真实验证的宿主仍为 DSH 0.2.0-rc.2,可选 Browser 0.2.0。
|
|
21
|
+
|
|
22
|
+
- 修复同一原文块支持多个需求时只保留一处摘录的问题:按需求保留不同窗口,覆盖统计只承认实际被选入的需求;不同窗口使用不同证据 ID,`history.expand` 可分别展开。
|
|
23
|
+
- 底层选择器增加可选的渲染后 token 预算回调、按原文块计算每 URL 配额、每块窗口上限与按需求定位锚点;默认行为仍使用字符预算。这些选项尚未接入宿主设置,冻结样本不支持把它们整体切为默认策略。
|
|
24
|
+
- 增加仅检查交付摘录的支持度评测,区分整块金标命中与摘录实际保留的事实。
|
|
25
|
+
- 修复测试隔离:来源路由的模拟请求同时模拟 DNS,超时场景显式保留测试事件循环;发布工作流同时执行 bench 类型检查与测试。
|
|
26
|
+
- 本地完整验证:711 项插件测试、94 项 bench 测试、类型检查、peer 范围、构建与客户端 bundle 检查通过。真实 DeepSeek 对比采用 API 返回的 token 用量;节省幅度只适用于已记录样本。
|
|
27
|
+
|
|
28
|
+
仍适用 rc.1 下方列出的已知限制。规则评分与覆盖为启发式,整块评分或自定义 judge 的高分不保证摘录包含所有条件;有精确条件、数字或否定的任务应展开原文核验。严格 token 上限尚不是用户配置的默认保证。
|
|
29
|
+
|
|
30
|
+
## 0.2.0-rc.1(预发布)
|
|
31
|
+
|
|
32
|
+
0.2.0 线的第一个版本。基线是 DSH 0.2.0-rc.2,与 `@anweat/dsh-browser 0.2.0` 一致。
|
|
33
|
+
|
|
34
|
+
### 兼容性与基线
|
|
35
|
+
|
|
36
|
+
- 只支持 DSH `>=0.2.0-rc.2 <0.2.1-0`;可选配套浏览器插件为 `@anweat/dsh-browser ^0.2.0`。
|
|
37
|
+
- **不再支持 DSH 0.1.x 宿主线,也不再支持旧的 dsh-browser 0.1.x 线;仍在这两条线上的用户请停留在 dsh-web-search-pro 0.1.15。** 本插件去掉了为旧宿主保留的兼容分支。
|
|
38
|
+
- 检测到旧版 dsh-browser 0.1.x 服务时,本插件不会驱动它:`read.snapshot`、`read.fetch mode=playwright`、浏览器平台与 OpenCLI 平台返回 `CAPABILITY_UNAVAILABLE`(`dsh-browser 0.1.x is not supported by web-search-pro 0.2+; upgrade to @anweat/dsh-browser ^0.2.0`);`read.fetch mode=auto` 跳过浏览器;`sources.status` 显示 `browser: legacy (unsupported)`;其余功能照常。判定方式是服务形状(不带 `observe` / `listTargets` / `sessionState` 中任何一个即为旧线),因为服务没有版本字段。
|
|
39
|
+
|
|
40
|
+
### 破坏性变更
|
|
41
|
+
|
|
42
|
+
- **工具名**:原 11 个 `web_*` 工具(`web_search_pro`、`web_fetch_pro` 等)不再注册,没有兼容包装;改为常驻的 `web_index`(目录)与 `web_call`(调用)两个工具,共 20 个动作(`search.run`、`read.fetch`、`sources.status` 等,`toolSurface: flat` 仅供调试)。模型在 `web_call` 里写旧工具名会得到新动作名和翻译后的参数。已存储的数据(历史、页面、规则、证据、账本)不受影响。
|
|
43
|
+
- **`read.fetch` 默认只返回 20k 字符**(原 `web_fetch_pro` 为 100k,配置项 `fetchDefaultChars`),长页用 `offset` 从已存快照续读;输出带 `truncated` / `nextOffset` / `totalChars`。`read.contents`、`read.snapshot`、历史回放与 `ctx.web` 抓取出口使用同一套预算。
|
|
44
|
+
- **自定义平台不能与内置平台(或其他 provider)重名**:同名的键不会覆盖内置来源,会被拒绝并在 `sources.status` 的 `notes` 里列出。
|
|
45
|
+
- **写操作的审批**:缓存 / 历史 / 规则变更与依赖安装按动作审批。没有 dsh-browser(或检测到旧版)时,`standard` 模式下一律询问;装有 0.2 浏览器插件时仍读取它的 `automationMode`。
|
|
46
|
+
- **所有引擎都返回合法空结果时**,`search.run` 返回空结果和说明,不再报错。
|
|
47
|
+
- 融合排序的量纲有调整(按来源归一化,加分每个 URL 只加一次),结果顺序可能与 0.1.x 不同。
|
|
48
|
+
- 博查默认地址改为 `https://api.bocha.cn`。
|
|
49
|
+
|
|
50
|
+
### 新功能
|
|
51
|
+
|
|
52
|
+
- **证据管线与证据包**:`search.run` 传 `task` / `profile` / `needs` / `constraints` / `budget` 时输出 EvidencePack:按 profile 与语言选来源、候选合并与 URL 规范化、读取与分块、规则评分(含跨语言对齐)、预算内选择、覆盖与缺口说明、有界第二轮补搜;`history.expand` 按 ID 展开摘录原文。读取质量差的页面(空壳、JS 外壳、登录墙)在浏览器就绪时自动升级渲染。
|
|
53
|
+
- **来源注册表、目录与推荐**:每个引擎与平台都是“描述符 + 适配器”,探测、冷却、并发合并、历史走同一条路径;`search.recommend` 按任务推荐来源,并给出待配置来源的设置步骤;目录与描述符标注成本层级(`anonymous` / `free-quota` / `paid`)。
|
|
54
|
+
- **匿名来源**:Wikipedia、Hacker News、Stack Exchange、OpenAlex、Semantic Scholar、AnySearch、arXiv、PubMed、SearXNG、RSS 等,以及无 Key 的 Exa MCP 路线(经 mcporter)。
|
|
55
|
+
- **需 Key 来源的接口**:博查(已实测)、Tavily、Brave、Linkup、Serper、秘塔、智谱、百度千帆;未配置 Key 时只显示为待配置步骤,不会执行。密钥走 DSH Credentials。
|
|
56
|
+
- **来源策略与请求额度**:`sources.priority` / `sources.disabled`、`evidence.sourcePolicy: default | anonymous-only`;`sources.budget.<id>: {total, daily}` 可选请求额度(默认不设上限),用尽后跳过并退回其他来源。
|
|
57
|
+
- **评分模型与用量账本**:`evidence.judge.mode`(`off | shadow | control | hybrid`);provider 协议 `systemone` / `rerank` / `llm` 与内置预设,可自定义;提示词(rubric)可配置、带版本;每次模型调用先预留后结算,记入持久化账本,受 `evidence.budget` 单次 / 每日上限约束;`sources.status` 显示 provider 与当日用量。
|
|
58
|
+
- **覆盖判定**(默认关闭):`evidence.coverage` 的 `off | shadow | control`,只降级、不删证据;建议先在 `shadow` 下观察自己的分布。
|
|
59
|
+
- **`ctx.web` provider 路由**:`registerProvider: true` 并在 `web` 条目选中本插件后,宿主内置的 `web_search` / `web_fetch` 返回本插件的证据包与预算内正文;`sources.status` 显示选中状态。
|
|
60
|
+
- **设置面板**:覆盖上述全部新增配置(分组折叠,中英文),密钥只走 DSH Credentials,不回显。
|
|
61
|
+
- **随包 skill** `dsh-web-search-pro`(用法与排障参考);常驻系统提示只有一行。
|
|
62
|
+
- **并发与可靠性**:SQLite `busy_timeout` 与事务化组合写入、相同请求的 in-flight 合并、空结果与用户取消不再触发引擎冷却、关闭后在途请求不抛错、各出口统一的输出整形与 `truncated` 标记;dsh-browser 改为按调用解析的可选依赖(未安装、未启用、运行中移除都不影响其余功能)。
|
|
63
|
+
|
|
64
|
+
### 已知限制
|
|
65
|
+
|
|
66
|
+
- 评测标注(`bench/` 的金标)全部是未经人工复核的 LLM 草稿;Jev / 覆盖判定的阈值与效果据此得出,换 provider、模型或 rubric 版本都要重新校准。
|
|
67
|
+
- 需 Key 来源中,只有博查做过真实调用验证;Tavily、Brave、Linkup、Serper、秘塔、智谱、百度千帆的接口依据官方文档与参考实现编写,标记为 `not verified live`,免费额度同样只读了官网页面,没有注册验证。Exa 无 Key 路线的限额未知。
|
|
68
|
+
- 需要登录的平台(小红书、知乎、微博、豆瓣、贴吧、抖音、快手、Twitter / X 等)需要真实登录态才能验证,尚未在真实账号下测过。
|
|
69
|
+
- 设置面板在桌面端的观感(折叠、暗色主题、窄屏)与保存后的热更新只做过组件渲染与内存 scope 测试,需在真实桌面界面确认。
|
|
70
|
+
- `toolSurface` 与 `registerProvider` 需重启 profile 才生效。
|