{"_id":"@bujue3184/dsh-tool-vision","_rev":"3-7cd157b7d15af5eccb1236eb4a36fef6","name":"@bujue3184/dsh-tool-vision","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@bujue3184/dsh-tool-vision","version":"0.1.0","keywords":["dsh-plugin","deepseek-harness","vision","ollama","multimodal","qwen-vl","tool"],"license":"MIT","_id":"@bujue3184/dsh-tool-vision@0.1.0","maintainers":[{"name":"bujue.chat","email":"18919113745@163.com"}],"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"dist":{"shasum":"ba95f40d6e16781cc4e03dfa27467eb13f4c1153","tarball":"https://registry.npmjs.org/@bujue3184/dsh-tool-vision/-/dsh-tool-vision-0.1.0.tgz","fileCount":15,"integrity":"sha512-ISWr18/vxWrWNEybRk3A0UkdmwqybgPzi9yElVxxPx+yMOHmvrAS8PIIMI7Hk4DjNsofb3fF/Lkw9EMARKc2hw==","signatures":[{"sig":"MEUCIA0oeJE0keoDuPghdxYzzMqP83ldpbllEUizaqR8OJmPAiEA8OdRN9As4C/48QvlIr2X20bnq5c2JuH9/+seNZXcQBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98197},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./vision":{"types":"./lib/vision.d.ts","default":"./lib/vision.js"},"./package.json":"./package.json"},"gitHead":"d36cec8d2c1802eeabb032db03b1713efd4b8033","scripts":{"test":"node test/smoke.mjs && node test/mount.mjs","apply-patches":"node scripts/apply-patches.mjs"},"_npmUser":{"name":"bujue.chat","email":"18919113745@163.com"},"_npmVersion":"11.12.1","description":"Vision tools (analyze_image, locate_element) for DeepSeek Harness: local ollama, DSH subagent (qwen-vl etc), or OpenAI-compatible HTTP endpoints","directories":{},"_nodeVersion":"24.15.0","dependencies":{"sharp":"^0.33.5","@deepseek-ai/dsh-session":"^0.1.0-rc.6"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-vision_0.1.0_1786716062122_0.47857577924503514","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bujue3184/dsh-tool-vision","version":"0.1.1","keywords":["dsh-plugin","deepseek-harness","vision","ollama","multimodal","qwen-vl","tool"],"license":"MIT","_id":"@bujue3184/dsh-tool-vision@0.1.1","maintainers":[{"name":"bujue.chat","email":"18919113745@163.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"dist":{"shasum":"b0039d6e29dccfacd90879c59687f7b6ec553007","tarball":"https://registry.npmjs.org/@bujue3184/dsh-tool-vision/-/dsh-tool-vision-0.1.1.tgz","fileCount":16,"integrity":"sha512-YcOmhKm0Z6n76eUmHltgxTz24nX5dzIBLT4R2Ure2FHRX333AmtWSedPMTs1WP9EYVbu1VFCh7x/2U4D8hcN2w==","signatures":[{"sig":"MEQCIDajvlwkBar0UbWmhG6tv7V8Jqgts0tb3+6+QoYO0zARAiAJxBNbXPYjs2qfKe4TN6SizLGYNSXr8HNKrt8kYqkIIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99580},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./vision":{"types":"./lib/vision.d.ts","default":"./lib/vision.js"},"./package.json":"./package.json"},"gitHead":"d36cec8d2c1802eeabb032db03b1713efd4b8033","scripts":{"test":"node test/smoke.mjs && node test/mount.mjs","apply-patches":"node scripts/apply-patches.mjs"},"_npmUser":{"name":"bujue.chat","email":"18919113745@163.com"},"_npmVersion":"11.12.1","description":"Vision tools (analyze_image, locate_element) for DeepSeek Harness: local ollama, DSH subagent (qwen-vl etc), or OpenAI-compatible HTTP endpoints","directories":{},"_nodeVersion":"24.15.0","dependencies":{"sharp":"^0.33.5","@deepseek-ai/dsh-session":"^0.1.0-rc.6"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-vision_0.1.1_1786716388128_0.10411537250048641","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bujue3184/dsh-tool-vision","version":"0.1.2","description":"Vision tools (analyze_image, locate_element) for DeepSeek Harness: local ollama, DSH subagent (qwen-vl etc), or OpenAI-compatible HTTP endpoints","type":"module","main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./vision":{"types":"./lib/vision.d.ts","default":"./lib/vision.js"},"./client":{"default":"./lib/client.js"},"./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale"],"platform":"web"},"bundle":{"patch":"./cordis.patch.yml"}},"license":"MIT","keywords":["dsh-plugin","deepseek-harness","vision","ollama","multimodal","qwen-vl","tool"],"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"dependencies":{"jimp":"^0.22.12","@deepseek-ai/dsh-session":"^0.1.0-rc.6"},"scripts":{"test":"node test/smoke.mjs && node test/mount.mjs","apply-patches":"node scripts/apply-patches.mjs"},"gitHead":"d36cec8d2c1802eeabb032db03b1713efd4b8033","_id":"@bujue3184/dsh-tool-vision@0.1.2","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-mD4kC2EuyNTBLb4Vkdouq32XHPnPz7J8tr21dOzbtiko6EcYkO1gxYgo9Nv4Iz2ca3TsrtWulhhRB7qk53Jg6g==","shasum":"a80c5cff91bd791307291fc9d5cf93c0e17e441a","tarball":"https://registry.npmjs.org/@bujue3184/dsh-tool-vision/-/dsh-tool-vision-0.1.2.tgz","fileCount":16,"unpackedSize":99571,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDvg85h2izfrAJemrKSKvuY1TRe/V7Ghjo63vfoFfNP0QIgLWmbZ9HWCMMTybVg9e9x2edjRWXZjlADWuhxLUBFSRs="}]},"_npmUser":{"name":"bujue.chat","email":"18919113745@163.com"},"directories":{},"maintainers":[{"name":"bujue.chat","email":"18919113745@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-tool-vision_0.1.2_1786716616433_0.6249904297509519"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-14T14:01:01.847Z","modified":"2026-08-14T14:10:16.877Z","0.1.0":"2026-08-14T14:01:02.266Z","0.1.1":"2026-08-14T14:06:28.373Z","0.1.2":"2026-08-14T14:10:16.604Z"},"license":"MIT","keywords":["dsh-plugin","deepseek-harness","vision","ollama","multimodal","qwen-vl","tool"],"description":"Vision tools (analyze_image, locate_element) for DeepSeek Harness: local ollama, DSH subagent (qwen-vl etc), or OpenAI-compatible HTTP endpoints","maintainers":[{"name":"bujue.chat","email":"18919113745@163.com"}],"readme":"# @bujue3184/dsh-tool-vision\n\n视觉\"眼睛\"插件（DeepSeek Harness / DSH）—— 让纯文本主模型能\"看懂\"图片。\n\n迁移自 DeepAgents（Python FastAPI + Electron）的视觉能力，重构为**生态优先**架构：\n零框架补丁、纯官方 API、标准 npm 包，任何 DSH 用户可安装。\n\n## 工具\n\n| 工具 | 说明 |\n|------|------|\n| `analyze_image` | 分析图片内容（支持 region 裁剪 + 自定义问题） |\n| `locate_element` | 在图片中定位目标元素，返回 0-1000 归一化坐标 |\n\n## 视觉驱动（三模式）\n\n| 模式 | 说明 | 适用 |\n|------|------|------|\n| `local`（默认） | 直调本地 ollama HTTP | 本地优先、离线可用 |\n| `subagent` | DSH 子代理驱动**任意已配置**多模态模型 | qwen-vl / GLM-4V / DSH 配置的 ollama |\n| `http` | 直连 OpenAI 兼容视觉端点（标准协议） | 任何支持 image_url 的云模型 |\n\n**subagent 模式**复用 DSH 的 LLM 路由（`ctx.agents.create` + `provider/model`），\n因此在 DSH 模型设置页配置的**任何视觉模型**都能用，无需额外协议代码。\n\n**http 模式**直连 OpenAI 兼容端点（如 DashScope `https://dashscope.aliyuncs.com/compatible-mode/v1`），\n支持 `qwen-vl-max` 等云模型。\n\n## 安装（一键）\n\n```bash\n# 0.1.1+ 自带 bundle patch：安装后自动挂载并默认启用（local + ollama qwen2.5vl:3b）\ndsh plugin --profile web add @bujue3184/dsh-tool-vision\n```\n\n> 老版本（0.1.0）需手动挂载，0.1.1 起无需任何额外步骤。没有装 ollama？\n> 插件设置页（设置 → 视觉）内置 ollama 安装与模型下载（带进度条）。\n\n**自定义配置**：默认使用本地 ollama（`http://127.0.0.1:11434` + `qwen2.5vl:3b`）。\n换驱动/模型时，在你的 profile 的 `cordis.patch.yml` 里以同 id 覆盖（后写覆盖先行）：\n\n```yaml\n- insert:\n    - id: tool-vision\n      name: '@bujue3184/dsh-tool-vision'\n      config:\n        driver: subagent      # local | subagent | http\n        enabled: true\n        provider: deepseek-official\n        subagentModel: qwen-vl-plus\n```\n\n或直接用 agent preset（`agent.cordis.yml`）：\n\n```yaml\n- id: tool-vision\n  name: '@bujue3184/dsh-tool-vision'\n  config:\n    driver: local          # local | subagent | http\n    enabled: true\n    ollamaHost: http://127.0.0.1:11434\n    localModel: qwen2.5vl:3b\n```\n\n## 设置页\n\n设置 → **视觉**：\n\n- 启用开关\n- 驱动模式选择（local / subagent / http）\n- local：ollama 地址、模型、健康检查、**一键安装 ollama / 下载模型**（带进度条）\n- subagent：provider / 模型\n- http：Base URL / API Key / 模型\n\n## 粘贴图片（生态版机制）\n\n在输入框粘贴**图片路径**（如 `C:\\img.png` 或拖入文件路径），插件通过\n`agent/pre-step` 官方事件自动处理：\n\n- **文本-only 主模型**：路径 → `[Image-#1]` 标记 + 提示行，主模型看到后调\n  `analyze_image`（不发送 image 块，绕开模态检查）\n- **多模态主模型**：附加真实 image 块（原生缩略图）\n\n## 兼容层（可选，不建议生态用户使用）\n\n`scripts/apply-patches.mjs` 提供可选框架补丁（P1/P2/P3），仅为了把粘贴显示\n升级为缩略图。补丁直接修改 `@deepseek-ai/*` 包源码，**绑定 DSH 0.1.0-rc.6**，\n升级 DSH 后需重新适配。生态用户不需要它。\n\n## 架构\n\n```\nlib/\n├── index.js          DSH 插件胶水（defineTool / settings / webServer / 粘贴钩子）\n├── vision.js         图片处理业务（jimp + ollama 调用）—— 框架无关\n├── setup.js          ollama 安装/模型下载（带进度）—— 框架无关\n├── paste.js          粘贴路径 → 标记重写（agent/pre-step 官方事件）\n├── settings-route.js 设置读写路由（自定义 webServer，不依赖 exposed 列表）\n├── drivers/\n│   ├── index.js      驱动路由器（local / subagent / http）\n│   ├── subagent.js   ctx.agents.create 子代理驱动\n│   └── http.js       OpenAI 兼容端点直连\n└── client.js         client 半（设置页 UI）\n```\n\n设计原则：**业务逻辑与框架胶水分离**；插件只用官方 API\n（`defineTool` / `ctx.settings.register` / `ctx.webServer.register` / `ctx.on('agent/pre-step')` / `ctx.agents.create`），\n不修改任何 DSH 框架源码。\n\n## 开发验证\n\n```bash\npnpm install\nnode test/smoke.mjs      # 端到端业务验证（ollama）\nnode test/mount.mjs      # Cordis 挂载验证\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}