dsh-report-gen
September 13, 2026 · View on GitHub
DSH 报告生成插件:把 JSON / CSV / Markdown 文本确定性地转换为结构化 Markdown 报告。
三个工具全部是纯字符串转换:无模板引擎、不读写文件、不联网、不起子进程,因此行为完全确定、可离线单元测试。本插件运行时也不需要任何外部工具或服务。
安装
npx -y @deepseek-ai/dsh plugin --profile web add @qingshanjiluo/dsh-report-gen
工具
| 工具 | 参数 | 输出 |
|---|---|---|
report_from_json | dataText(JSON 文本)、title(空串则用默认标题) | ok / title / markdown / error。对象数组渲染为 Markdown 表格并附 ## Statistics(数值列 min/max/avg/sum,文本列 unique/top);对象标量逐行内联;嵌套对象用围栏 JSON 块 |
report_from_csv | csvText(CSV 文本,首行为表头)、title(可空) | ok / title / markdown / rowCount / colCount / stats / error。支持引号字段(内嵌逗号、换行、双写引号),参差行自动补齐;数值列输出 ## Numeric Summary 聚合 |
report_markdown | mdText(Markdown 文本) | ok / markdown(规范化后)/ outline(按层级缩进的标题大纲)/ headings / error。CRLF 转 LF、去行尾空白、合并多余空行、修正标题格式;代码围栏内标题不计入大纲 |
超长表格按 maxTableRows 截断并在报告中注明(如 _2 of 5 rows shown (limit 2)._)。
配置
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
defaultTitle | string | 数据报告 | 调用方未提供标题时使用的报告标题 |
maxTableRows | number | 200 | Markdown 表格最多渲染的行数,超出截断 |
includeStatistics | boolean | true | report_from_json 是否附加统计摘要小节 |
开发
npm install
npm run typecheck # tsc --noEmit
npm run build # tsc + tsdown -> lib/index.js / lib/index.d.ts
npx vitest run # 全部离线行为测试(无任何网络/子进程)
node scripts/load-smoke.mjs # 校验构建产物的加载面与工具注册
License
MIT