{"_id":"@anysearch-ai/dsh","name":"@anysearch-ai/dsh","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@anysearch-ai/dsh","version":"0.1.0","description":"AnySearch web search provider and advanced tools for DeepSeek Harness","keywords":["anysearch","deepseek-harness","dsh-plugin","web-search"],"homepage":"https://github.com/anysearch-team/anysearch-dsh#readme","bugs":{"url":"https://github.com/anysearch-team/anysearch-dsh/issues"},"repository":{"type":"git","url":"git+https://github.com/anysearch-team/anysearch-dsh.git"},"license":"MIT","author":{"name":"AnySearch Team"},"type":"module","sideEffects":false,"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"engines":{"node":"^22.19.0 || >=24.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"peerDependencies":{"@deepseek-ai/cordis":">=4.0.1-rc.1 <5","@deepseek-ai/dsh-credentials":">=0.1.0-rc.6 <1","@deepseek-ai/dsh-tools":">=0.1.0-rc.6 <1","@deepseek-ai/dsh-web":">=0.1.0-rc.6 <1"},"dependencies":{"@deepseek-ai/schemastery":">=3.18.1-rc.1 <4"},"devDependencies":{"@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-credentials":"0.1.0-rc.6","@deepseek-ai/dsh-llm":"0.1.0-rc.6","@deepseek-ai/dsh-system-prompt":"0.1.0-rc.6","@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/dsh-web":"0.1.0-rc.6","@types/node":"^22.20.0","typescript":"^6.0.3","vitest":"^4.1.8"},"scripts":{"build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.test.json && vitest run && tsc -p tsconfig.json","test":"vitest run","test:e2e":"tsc -p tsconfig.json && node scripts/live-e2e.mjs","typecheck":"tsc -p tsconfig.test.json"},"_id":"@anysearch-ai/dsh@0.1.0","_integrity":"sha512-zucyshiMVikfNFD+xc3HT8VqzKNhN7dKEKsfJGEBrRFvtiHRrO/YWNQF+PXlJ7ExF/6v9K2SlzlZySaOaclOfw==","_resolved":"C:\\Users\\lut\\AppData\\Local\\Temp\\anysearch-ai-dsh-publish-0.1.0-9ed45dc\\anysearch-ai-dsh-0.1.0.tgz","_from":"file:anysearch-ai-dsh-0.1.0.tgz","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-zucyshiMVikfNFD+xc3HT8VqzKNhN7dKEKsfJGEBrRFvtiHRrO/YWNQF+PXlJ7ExF/6v9K2SlzlZySaOaclOfw==","shasum":"2e281dce2b5197cfedef9f8168e9c4f4ab045cd4","tarball":"https://registry.npmjs.org/@anysearch-ai/dsh/-/dsh-0.1.0.tgz","fileCount":23,"unpackedSize":97868,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDI4OvEUVc6DolxL3LNiJbmoVGo8soqclDbI2OUvrSLFQIhALnhraw7uY4Jkl56NX+5nKjyJH4vgzJoVNh939bkh1+z"}]},"_npmUser":{"name":"anysearch-offical","email":"grant@anysearch.com"},"directories":{},"maintainers":[{"name":"anysearch-offical","email":"grant@anysearch.com"},{"name":"ltspace","email":"1409757351@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh_0.1.0_1786680599281_0.0626458204202971"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-14T04:09:59.118Z","0.1.0":"2026-08-14T04:09:59.416Z","modified":"2026-08-14T04:09:59.656Z"},"maintainers":[{"name":"anysearch-offical","email":"grant@anysearch.com"},{"name":"ltspace","email":"1409757351@qq.com"}],"description":"AnySearch web search provider and advanced tools for DeepSeek Harness","homepage":"https://github.com/anysearch-team/anysearch-dsh#readme","keywords":["anysearch","deepseek-harness","dsh-plugin","web-search"],"repository":{"type":"git","url":"git+https://github.com/anysearch-team/anysearch-dsh.git"},"author":{"name":"AnySearch Team"},"bugs":{"url":"https://github.com/anysearch-team/anysearch-dsh/issues"},"license":"MIT","readme":"<div align=\"center\">\n  <a href=\"https://anysearch.com\"><img src=\"https://anysearch.com/favicon.ico\" alt=\"AnySearch Logo\" width=\"96\" height=\"96\"></a>\n  <h1>@anysearch/dsh</h1>\n  <p>AnySearch 面向 DeepSeek Harness 的官方网页搜索插件。</p>\n  <p><a href=\"https://www.npmjs.com/package/@anysearch/dsh\"><img src=\"https://img.shields.io/npm/v/%40anysearch%2Fdsh?logo=npm\" alt=\"npm 版本\"></a> <a href=\"https://www.npmjs.com/package/@anysearch/dsh\"><img src=\"https://img.shields.io/npm/dm/%40anysearch%2Fdsh?logo=npm\" alt=\"npm 下载量\"></a> <a href=\"https://github.com/anysearch-team/anysearch-dsh/actions/workflows/ci.yml\"><img src=\"https://github.com/anysearch-team/anysearch-dsh/workflows/CI/badge.svg\" alt=\"CI 状态\"></a> <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"MIT 许可证\"></a> <a href=\"https://github.com/deepseek-ai/deepseek-harness\"><img src=\"https://img.shields.io/badge/DeepSeek-Harness-4F46E5\" alt=\"DeepSeek Harness 插件\"></a></p>\n  <p><a href=\"README.md\">English</a> | <strong>简体中文</strong></p>\n</div>\n\n`@anysearch/dsh` 将 [AnySearch](https://anysearch.com) 接入 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)。它既能驱动 Harness 原生的 `web_search`，也提供能力发现、垂直搜索和有界批量搜索。\n\n## 快速开始\n\n需要 Node.js 22.19 或 Node.js 24+、pnpm 11.7 和 DeepSeek Harness。DSH 插件命令使用 pnpm 管理 profile 依赖，因此 `pnpm` 必须位于 `PATH` 中。\n\n将插件安装到 `web` profile：\n\n```sh\nnpx -y @deepseek-ai/dsh plugin --profile web add @anysearch/dsh\n```\n\n启动 DeepSeek Harness：\n\n```sh\nnpx -y @deepseek-ai/dsh web\n```\n\n快速体验不需要 API Key。未配置时，请求使用 AnySearch 匿名额度。\n\n## 提供什么\n\n- 通过 Harness 内置的 `web_search` 返回 AnySearch 搜索结果。\n- 实时发现可用领域和垂直搜索能力。\n- 使用标签、参数、地区和语言执行高级搜索。\n- 并发执行一至五个搜索，并保留单项失败。\n- 按需提供清洗后的网页正文，并限制向模型展示的字符数。\n- 支持调用方取消、响应校验和不会向重定向目标泄露凭据的安全策略。\n\n## 可选 API Key\n\n插件可以使用 AnySearch 匿名额度，无需 API Key。需要账号级额度时，将凭据写入 `$DSH_HOME/.credentials.yaml`，默认位置是 `~/.dsh/.credentials.yaml`：\n\n```yaml\nANYSEARCH_API_KEY: \"as_sk_your_key\"\n```\n\n插件会在每次操作时解析受管凭据，因此轮换凭据后，下一次请求即可使用新值，无需重启 DSH。启动进程的 `ANYSEARCH_API_KEY` 环境变量具有更高优先级。\n\n可以检查最终组合配置，输出中不会出现真实凭据值：\n\n```sh\nnpx -y @deepseek-ai/dsh --profile web --dump-config\n```\n\n## 工具\n\n| 使用场景 | Harness 工具 |\n|---|---|\n| 普通网页搜索 | `web_search` |\n| 查看可用领域和标签 | `anysearch_capabilities` |\n| 垂直或参数化搜索 | `anysearch_search` |\n| 一次执行一至五个搜索 | `anysearch_batch_search` |\n\n对于普通提示词，让 Harness 自动选择工具即可。模型可以先读取实时领域和参数定义，再执行专门搜索。\n\n## 配置\n\n随包提供的 profile 层会将 AnySearch 设为现有 `ctx.web` Provider，并挂载高级工具。profile 可以使用完整配置替换 Provider 行：\n\n```yaml\n- id: web-search-anysearch\n  config:\n    apiKeyEnv: ANYSEARCH_API_KEY\n    baseURL: https://api.anysearch.com\n    maxRenderedContentChars: 12000\n```\n\n| 字段 | 默认值 | 用途 |\n|---|---|---|\n| `apiKeyEnv` | `ANYSEARCH_API_KEY` | DSH 凭据引用；缺失时使用匿名访问 |\n| `baseURL` | `https://api.anysearch.com` | AnySearch API 基础地址 |\n| `maxRenderedContentChars` | `12000` | 单次高级工具调用向模型展示的清洗正文字符上限 |\n\n## 管理插件\n\n更新：\n\n```sh\nnpx -y @deepseek-ai/dsh plugin --profile web update @anysearch/dsh\n```\n\n移除：\n\n```sh\nnpx -y @deepseek-ai/dsh plugin --profile web remove @anysearch/dsh\n```\n\n## 兼容性与限制\n\n- DeepSeek Harness 仍处于开发预览阶段，可能发布不兼容变更。\n- 本插件当前不提供 `anysearch_extract`。\n- 请通过 DSH 管理的凭据文件或环境变量配置 API Key；DSH 设置页当前不提供第三方 Provider 凭据输入项。\n\n## 文档\n\n- [详细使用指南](docs/user-guide.zh-CN.md)\n- [DSH 插件与 Skill、MCP、HTTP 接入方式对比](docs/integration-options.zh-CN.md)\n\n## 开发\n\n```sh\ngit clone https://github.com/anysearch-team/anysearch-dsh.git\ncd anysearch-dsh\npnpm install\npnpm run check\n```\n\n真实 AnySearch E2E 测试需要显式开启。匿名模式不会读取环境中的凭据：\n\n```sh\nANYSEARCH_E2E=1 ANYSEARCH_E2E_ANONYMOUS=1 pnpm run test:e2e\n```\n\n## 许可证\n\n[MIT](LICENSE)\n","readmeFilename":"README.zh-CN.md","_rev":"1-e610b0fe35840dece4f0faca0b2bcbbe"}