{"_id":"@dgeable/dsh-web-search-tavily","name":"@dgeable/dsh-web-search-tavily","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@dgeable/dsh-web-search-tavily","description":"Tavily-backed WebSearchProvider plugin for the DeepSeek Harness (DSH) web capability seam (ctx.web). Fixes web_search \"Insufficient Balance\" by routing searches through Tavily.","version":"0.1.0","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"license":"MIT","author":{"name":"dgeable"},"keywords":["dsh","deepseek-harness","plugin","web-search","search-provider","tavily"],"engines":{"node":">=22.19"},"peerDependencies":{"@deepseek-ai/dsh-launch-environment":"^0.1.0-rc.8","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8","@deepseek-ai/dsh-web":"^0.1.0-rc.8","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/schemastery":"^3.18.1"},"_id":"@dgeable/dsh-web-search-tavily@0.1.0","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-4K9oPrU5aMBU4Ro/u6IEQ50EfTBsQn6AVY1Nmkt5zuelVSbUTfCkGKQ7lTYydmR/SH3YI4rIOw9r0p6qpkyZ1Q==","shasum":"5d64ae5fbce2ba5d98287f8a9c558a237abcadbc","tarball":"https://registry.npmjs.org/@dgeable/dsh-web-search-tavily/-/dsh-web-search-tavily-0.1.0.tgz","fileCount":9,"unpackedSize":19290,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFPh8+upjTJJTVH++yAqNzFhgDkGulea96uunC3JXK5/AiAtWpWQDq5mpiCNlTGZ92f3xNIQ9Mls75qiMvpkxW89gQ=="}]},"_npmUser":{"name":"dgeable.qd","email":"ppchenzhibo@163.com"},"directories":{},"maintainers":[{"name":"dgeable.qd","email":"ppchenzhibo@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-web-search-tavily_0.1.0_1787377545082_0.1824243970874706"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-22T05:45:44.951Z","0.1.0":"2026-08-22T05:45:45.227Z","modified":"2026-08-22T05:45:45.405Z"},"maintainers":[{"name":"dgeable.qd","email":"ppchenzhibo@163.com"}],"description":"Tavily-backed WebSearchProvider plugin for the DeepSeek Harness (DSH) web capability seam (ctx.web). Fixes web_search \"Insufficient Balance\" by routing searches through Tavily.","keywords":["dsh","deepseek-harness","plugin","web-search","search-provider","tavily"],"author":{"name":"dgeable"},"license":"MIT","readme":"# dsh-web-search-tavily\n\nDeepSeek Harness（DSH）的 **Tavily 联网搜索 provider 插件**，注册进 DSH 的 web 能力层（`ctx.web`），让 `web_search` 工具改走 **Tavily** 后端。\n\n适合场景：`web_search` 报 `Insufficient Balance`（DeepSeek 平台余额耗尽）时，切换到 Tavily（Tavily 免费额度，个人账户每月 1000 credits）。\n\n## 要求\n\n- 目标机器已安装 DSH（`dsh web` / `dsh --profile ...`），且为本包 peer 兼容的版本族（`@deepseek-ai/dsh-web` 等由 DSH 宿主自带，无需单独安装）。\n- 需要一个 Tavily API Key（`tvly-...`）：到 <https://app.tavily.com> 免费注册获取。\n\n## 安装（3 步）\n\n1. 在 DSH profile 里安装本包（在 DSH 安装目录执行）：\n\n   ```sh\n   dsh plugin --profile web add @dgeable/dsh-web-search-tavily\n   ```\n\n2. 编辑 profile 的 `cordis.patch.yml`（默认在 `~/.dsh/profiles/web/cordis.patch.yml`），加入：\n\n   ```yaml\n   - id: web\n     config:\n       searchProvider: tavily\n\n   - id: web-search-tavily\n     config:\n       apiKey: tvly-你的key\n   ```\n\n   不想把 key 写进配置文件的，也可以不写 `apiKey`，改在启动 DSH 的环境里设置 `TAVILY_API_KEY` 环境变量。\n\n3. 重启 DSH：\n\n   ```sh\n   dsh web\n   ```\n\n## 可选配置\n\n| 配置项 | 默认值 | 说明 |\n|---|---|---|\n| `apiKey` | 无（回退 `$TAVILY_API_KEY`） | Tavily API Key；为空则 provider 不可用 |\n| `baseURL` | `https://api.tavily.com` | API 端点（一般不用改） |\n| `searchDepth` | `basic` | `basic` 或 `advanced`（advanced 消耗更多额度） |\n| `maxResults` | 无 | 请求未指定条数时的默认返回数 |\n| `includeAnswer` | `false` | 是否请求 Tavily 生成的回答（计入额外额度） |\n\n## 已知限制\n\n- 依赖 DSH 宿主提供 `@deepseek-ai/dsh-web`、`@deepseek-ai/dsh-launch-environment`、`@deepseek-ai/dsh-invariants`、`@deepseek-ai/cordis`、`@deepseek-ai/schemastery`（peer 依赖）；DSH 接口更新后本插件需同步升级。\n- provider 默认不带 `include_answer`，只消耗 sources 级额度；具体计费以 Tavily 官方为准。\n\n## License\n\nMIT © 2026 dgeable","readmeFilename":"README.md","_rev":"1-e055e786f8e4e3945b1d0b0a85a7cb83"}