DeepSeek Harness plugin

dsh-fmt

DSH plugin: format/validate JSON, YAML, TOML and SQL text.

Jump to install

Source facts

Repository
ZhijiangTang/dsh-fmt
Latest update
Aug 16, 2026
Category
Tools & Capabilities
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/ZhijiangTang/dsh-fmt
Plugin: dsh-fmt
Author: ZhijiangTang

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

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