dsh-web-search-pro

browserinstall failsnpmMIT

Persistent enhanced web search: multi-engine routing (DeepSeek/Exa/DDG/Bing/Jina + GitHub/Bilibili/YouTube/V2EX/Xiaohongshu/Twitter/Reddit/RSS), SQLite+LRU cache, userscript-style extraction, Playwright rendering.

下载量 / Downloads
5,856
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-web-search-pro

Sandbox test results

StageResult
1 install✗
2 list—
3 mount—
4 boot—
First error
dsh: initialized profile web at /home/node/.dsh/profiles/web

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-web-search-pro

增强型、可持久化的扩展网页搜索插件 for DeepSeek Harness(DSH)。

一个 DSH bundle 插件,把多引擎网页搜索、平台搜索、持久化缓存、受控按站增强和 Playwright 渲染打包成模型可调用的能力。常驻上下文只有 web_index / web_call 两个工具(原 11 个 web_* 工具已并入 20 个动作,见[工具面](#工具面索引--调用))。路由控制面借鉴 Agent-Reach 的后端探测、顺序选择和失败冷却思路,核心逻辑为本项目原生 TypeScript 实现。

兼容与发布通道

插件发布通道 · DSH 基线 · 兼容承诺

0.1.11 及更早的维护版本 · dsh-v0.1.1-rc.2 · 旧基线;不再维护,不与新插件混装

0.1.15 · dsh-v0.1.7-rc.2 + Browser 0.1.15 · 精确锁定该宿主版本;仍停留在 DSH 0.1.x 宿主或 dsh-browser 0.1.x 的用户请使用这一版(后续不再更新)

0.1.17 · dsh-v0.1.7-rc.2 ~ dsh-v0.2.0-rc.2 + Browser 0.1.17 · 过渡版本,已不再演进;新功能不会回到这条线

0.2.0(正式版) · 只支持 dsh-v0.2.0-rc.2 这一条线(peer >=0.2.0-rc.2 <0.2.1-0)+ 可选 @anweat/dsh-browser ^0.2.0 · 第一个 0.2.0 线版本,破坏性变更(见 [CHANGELOG.md](./CHANGELOG.md));711 项单元测试、94 项 bench 测试,pnpm run test:peers 两种解析模式检查,真实 Host(DSH 0.2.0-rc.2)验收

0.2.1 · 同 0.2.0(peer >=0.2.0-rc.2 <0.2.1-0 + 可选 @anweat/dsh-browser ^0.2.0) · 独立 CLI 适配层与平台后端链,无破坏性变更(见 [CHANGELOG.md](./CHANGELOG.md));774 项单元测试、94 项 bench 测试,真实 Host(DSH 0.2.0-rc.2)验收

0.2.2 · 只支持 dsh-v0.2.1-rc.2 / dsh-v0.2.1-rc.3(0.2.1 线)(peer >=0.2.1-rc.2 <0.2.2-0)+ 可选 @anweat/dsh-browser ^0.2.0(配套 0.2.2 起,旧的 0.2.0 / 0.2.1 只适用于 0.2.0-rc.2 宿主) · 适配 DSH 0.2.1-rc.2 / rc.3 宿主(cordis 4.0.5、schemastery 3.18.5、cordis-plugin-group 1.0.5 / loader 1.0.6 / include 1.0.10、cosmokit 1.8.6),并修复 twitter 平台结果全错(#38);无破坏性变更。npm 上的 0.2.1 在 0.2.1-rc.x 宿主上会被安装闸门拒绝,需要升级到本版。devDeps 里停更的 dsh-invariants 换成 dsh-working-directory,并显式补上 0.2.1 线改成 peer-only 的 dsh-llm / dsh-session(宿主 autoInstallPeers: false 不自动装 peer);790 项单元测试、94 项 bench 测试、pnpm run test:peers 两种解析模式检查;真实宿主验收(rc.3)见 docs/validation/dsh-0.2.1-rc.3.md。twitter 的搜索输出契约来自 twitter-cli 0.8.5 源码与 issue 里的真实输出,我们自己没有用 Token 跑过搜索

0.2.3 · 两条宿主线同时支持:dsh-v0.2.0-rc.2(0.2.0 线)与 dsh-v0.2.1-rc.2 ~ rc.4(0.2.1 线);peer >=0.2.0-rc.2 <0.2.1-0 \ · \ · >=0.2.1-rc.2 <0.2.2-0,cordis ~4.0.4;可选 @anweat/dsh-browser ^0.2.0(0.2.0 线配 Browser 0.2.0 / 0.2.1 / 0.2.2,0.2.1 线配 0.2.2 起) · 接入 DeepSeek Search / Fetch API 并标为“常用”(有 Key 时默认排第一;按请求计费,见下文“DeepSeek 搜索 / 抓取”);设置面板同步调整。无破坏性变更,但已有 DEEPSEEK_API_KEY 的用户升级后默认搜索会走这个付费接口(sources.disabled: [deepseek] 关闭)。宿主适配没有改任何运行时代码:面板保存、私有 RPC、凭据、审批钩子在 0.2.0-rc.2 上与 rc.3 / rc.4 行为一致(见 docs/validation/2026-10-28-host-lines-and-install.md);测试数见 [CHANGELOG.md](./CHANGELOG.md)

支持范围:DSH >=0.2.0-rc.2 <0.2.1-0 || >=0.2.1-rc.2 <0.2.2-0,已在真实宿主上验证 0.2.0-rc.2、0.2.1-rc.3、0.2.1-rc.4(0.2.1-rc.2 与 rc.3 同源,由 test:peers 的范围检查覆盖);0.2.0-rc.1、0.2.1-alpha.x、0.2.1-rc.1、0.2.2 及以上都被拒绝。可选配套浏览器插件 @anweat/dsh-browser ^0.2.0(即 0.2.x,不含 0.3):0.2.0 线宿主上用 Browser 0.2.0 / 0.2.1 / 0.2.2,0.2.1 线宿主上必须是 0.2.2 起(旧的 0.2.0 / 0.2.1 的 peer 只含 <0.2.1-0,会被 0.2.1 线宿主的安装闸门拒绝,并且整次安装作废,插件也不会装上)。

不再支持 DSH 0.1.x 宿主线,也不再支持旧的 dsh-browser 0.1.x 线;仍在这两条线上的用户请停留在 dsh-web-search-pro 0.1.15。

  • DSH 0.1.x 宿主:peer 范围不再包含它,dsh plugin add 会因 peer 不满足而拒绝,或在组装期点名报 incompatible。本插件已去掉为旧宿主保留的兼容分支。
  • 旧 dsh-browser 0.1.x:浏览器是可选依赖,本插件仍会识别它但不会驱动它。服务对象没有版本字段,所以以形状判定:不带任何 0.2 才有的方法(observe / listTargets / sessionState)即视为旧线。检测到旧线时:
  • 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);系统提示不加浏览器那一行;旧服务上的 automationMode 不参与写操作审批(按没有 Browser 处理,standard 下询问);
  • 其他一切(网页搜索、证据管线、非浏览器平台、缓存、历史)照常工作。

peer 范围的写法与 @anweat/dsh-browser 0.2.x 完全一致:每个 @deepseek-ai/dsh-* peer 都是两段并联的范围 >=0.2.0-rc.2 <0.2.1-0 || >=0.2.1-rc.2 <0.2.2-0,cordis 为 ~4.0.4。

  • 宿主的组装期校验用的是 semver.satisfies(host, range, { includePrerelease: true });真正决定装机成败的是 npm/pnpm 的默认 semver:预发布版本只有在某个比较符自带同号(同 major.minor.patch)预发布时才被判为满足。两段各自的下界(>=0.2.0-rc.2、>=0.2.1-rc.2)自带同号预发布,是承重的,必须保留;写成 >=0.2.0-rc.2 <0.2.2-0 这类跨线的单段范围会过宿主校验、却让 dsh plugin add 报 ERESOLVE。与 @anweat/dsh-browser 必须声明同一套策略,否则两者互为 peer 时会出现 ERESOLVE。
  • 两段之间留了缝:0.2.1-alpha.1 ~ 0.2.1-rc.1 没有验证过,两种解析模式都拒绝。上界是 <0.2.2-0 而不是 <0.2.2:后者放行 0.2.2-alpha.1 这类 0.2.2 的预发布。收口后,若 0.2.2 真出现破坏,会在组装期直接报 is incompatible with dsh 0.2.2 并点名,而不是拖到用户机器上变成运行期怪错(0.1.5 → 0.1.7 曾一次性打断所有按 0.1.5-alpha.1 构建的插件)。
  • cordis:0.2.0-rc.2 宿主依赖 ~4.0.4,0.2.1-rc.x 依赖 ~4.0.5,干净安装时两者都解析到 4.0.5(有锁文件的 rc.2 宿主可能是 4.0.4)。peer 写 ~4.0.4(>=4.0.4 <4.1.0)同时容纳两者,挡住 4.1.0。schemastery 的 peer ^3.18.5 不变:两条线的宿主都解析到 3.18.5。
  • 范围只表示「测过哪些」,不等于承诺不破坏;真正的防线是每换一个 DSH 版本重跑一遍这套验证。pnpm run test:peers(已并入 pnpm verify)用两种解析模式逐个断言受管 peer:0.2.0-rc.2、0.2.1-rc.2 ~ rc.4 必须通过,0.1.7-rc.2、0.2.0-rc.1、0.2.1-alpha.5、0.2.1-rc.1、0.2.2-alpha.1 必须被拒绝,cordis 4.0.4 / 4.0.5 通过、4.1.0 拒绝;并自带 --selftest 已知行为自校验(含两段范围的缝)。开发依赖固定在 0.2.1-rc.3(单元测试跑在这一套类型上);0.2.0-rc.2 与 rc.4 靠真实宿主验证,不靠第二套 devDependencies。

安装

# 默认安装(面向 dsh-v0.2.0-rc.2 与 dsh-v0.2.1-rc.2 ~ rc.4 宿主;浏览器插件可选,需要读取渲染页 / 浏览器平台时一起装):
dsh plugin --profile web add @anweat/dsh-browser@0.2.2 dsh-web-search-pro@0.2.3
# 不需要浏览器能力时,只装本插件即可:
dsh plugin --profile web add dsh-web-search-pro@0.2.3
# 或本地目录 / tarball:
dsh plugin --profile web add ../dsh-browser ./dsh-web-search-pro
# 重启(web profile 关闭了 HMR):
dsh --profile web
两个插件都必须是 profile 的直接依赖:DSH 只激活直接依赖的 bundle layer,且标准 profile 可能设置 autoInstallPeers: false。不要只安装 Web Search Pro 后依赖 peer 自动补齐。
新用户第一次安装:只装本插件时,dsh plugin add 在 pnpm 11 下退出码为 0、没有任何警告(本包没有安装脚本,也不依赖 OpenCLI 或 Playwright;约 20 个包、10 MB)。要一起装浏览器插件,用 @anweat/dsh-browser 0.2.2 起:它不再把 @jackwener/opencli 作为依赖,所以不会再有 ERR_PNPM_IGNORED_BUILDS(0.2.1 及更早的 Browser 会让 pnpm 11 拦下 OpenCLI 的安装脚本,dsh plugin add 以失败退出,包其实装上了、插件却没有被加入 profile 的 bundles,之后再 add 任何包也都会同样失败,连带的本插件也不会被启用;用 0.2.1 线宿主的用户在这点上没有选择,只能升级到 0.2.2)。
第一次使用:① 网

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::21,最后更新 2026-10-27

Links

GitHub · Homepage · npm

Same category