@deepseek-ai/dsh-tool-json
DSH JSON query tool
AI Analysis
允许模型使用特定路径语法高效查询和提取复杂 JSON 对象中的字段。适合处理 API 响应、配置文件解析等结构化数据提取任务。
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:omdsh-dev/dsh-tool-jsonREADME
Read the full README ↗一次性任务(headless)profile —— dsh run 默认使用 headless
dsh plugin --profile headless add "C:/path/to/dsh-tool-json"
包内 `dsh.bundle.patch`(指向 `cordis.patch.yml`)会在安装后自动把插件加入 profile 的 layer stack;插件的 `cordis.patch.yml` 以 `- insert:` 插入 `tool-json` 条目。插件缺失的 peer 依赖(`cordis`、`@deepseek-ai/dsh-tools`)由 profile 的 healed `profiles/node_modules` 回退安装提供。
> ⚠️ web 与 headless 是**不同 profile**:web 安装不会自动覆盖 headless;`dsh run` 默认使用 headless profile。Windows 路径使用正斜杠(`C:/...`)。
### 验证安装
```sh
dsh --profile web --dump-config | grep tool-json
运行验证
dsh run "使用 json 工具查询 {"a":{"b":1}} 的 a.b"
手动安装与旧版本兼容
仅适用于不支持 Profile Bundle 的旧快照或插件开发调试环境:
- 放入 monorepo:
cp -r json ~/.dsh/source/master/packages/tools/json(开发调试) apps/cli/package.json加"@deepseek-ai/dsh-tool-json": "workspace:^";tsconfig.host.jsonreferences 加{ "path": "./packages/tools/json" }pnpm install && pnpm run build- 在 profile 用户层 patch 插入插件(
~/.dsh/profiles//cordis.patch.yml):
- insert:
- id: tool-json
name: '@deepseek-ai/dsh-tool-json'
- 验证:
dsh --profile --dump-config | grep tool-json
0806 注意:patch 是 id-targeted 语义——裸
- id:条目会报entry "xxx" not found,必须用- insert:列表包裹。
用法
json { input: , query: "items[0].name" } → "hello"
json { input: , query: "items[*].name" } → ["a", "b"](合法 null 保留)
json { input: , query: "items['complex-key']" } → "ok"
已知限制
- 分发链路:
@deepseek-ai/dsh-tools私有,需 monorepo workspace - 只读:不能修改 JSON 字段(原地修改用
str_replace_editor/write;v2 可考虑set模式) - 无过滤器表达式、无标准 JMESPath 投影扁平化(见语义边界)
- 对象形态 input 依赖 DSH 参数管线保证 lossless JSON
测试
pnpm test
54 个用例(功能、错误、攻击载荷、对象/字符串双形态输入、资源上限与转义边界)。完整清单见本地维护的设计文档。
许可
MIT