DeepSeek Harness 插件

dsh-fmt

DSH plugin: format/validate JSON, YAML, TOML and SQL text.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
ZhijiangTang/dsh-fmt
最近更新
2026年8月16日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/ZhijiangTang/dsh-fmt
插件名:dsh-fmt
作者:ZhijiangTang

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-fmt

DSH 插件:格式化 / 校验文本,支持 JSON / YAML / TOML / SQL 四种格式。纯 ESM、无构建、无原生依赖。

安装

dsh plugin --profile <name> add file:./plugins/dsh-fmt

(发布到 npm 后:dsh plugin --profile <name> add dsh-fmt

工具

  • format_text —— 输入文本与目标格式,返回规范值 { format, ok, output, error? }

参数

参数类型必填默认说明
textstring-要格式化 / 校验的文本
formatenum-json / yaml / toml / sql
indentnumber2缩进宽度(JSON/YAML 美化;SQL 的 tab 宽度)
sqlDialectenumstandardstandard / postgresql / mysql / sqlite,仅 SQL 使用
keywordCaseenumupperupper / lower / preserve,仅 SQL 使用

返回值

规范 JSON 值:

{
  "format": "json",       // 本次使用的格式
  "ok": true,             // 解析/格式化是否成功
  "output": "…",          // 格式化结果(ok=true)
  "error": {              // 仅 ok=false 时存在
    "message": "…",
    "line": 1,            // 可选
    "column": 2           // 可选
  }
}

解析失败不算工具失败:错误以 ok:false + error(尽力带 line/column 位置)返回,而不是抛出工具异常。

各格式示例

JSON

输入 {"b":1,"a":[1,2]}format=jsonindent=2

{
  "b": 1,
  "a": [
    1,
    2
  ]
}

非法输入 {bad 返回 ok:falseerror.message 含 Node 报错原文,line/column 从报错中的 position … (line L column C) 正则提取。

YAML

输入:

a:
  b: 1
c: [x, y]

format=yamlparse 校验,再 stringify 美化(流式数组会展开为块式)。解析失败捕获 YAMLParseError,取 linePos[0] 作为位置。

TOML

输入:

title="demo"
[owner]
name="t"

format=tomlparse 校验再 stringify 规范化;解析失败取 TomlErrorline / column

SQL

输入 select a,b from t where x=1 order by bformat=sqlkeywordCase=upper

SELECT
  a,
  b
FROM
  t
WHERE
  x = 1
ORDER BY
  b

sqlDialect 映射到 sql-formatter 的 languagestandard→sqlpostgresql→postgresqlmysql→mysqlsqlite→sqlite

SQL 不做语法校验的说明

format_text 的 SQL 分支本身不做主动语法校验:不先解析再格式化,直接把文本交给 sql-formatterformat(),多数可读 SQL 都能得到规范化输出。但 sql-formatter 底层是一个完整的 SQL 解析器,遇到根本无法解析的片段会抛错——此时同样遵循「解析失败不算工具失败」的约定,返回 ok:false + error.message,而不会让工具调用失败。

License

MIT