oh-my-knowledge 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -34
- package/README.zh.md +31 -34
- package/dist/src/analysis/report-diagnostics.d.ts +2 -2
- package/dist/src/analysis/report-diagnostics.js +2 -2
- package/dist/src/analysis/sample-diagnostics.d.ts +3 -3
- package/dist/src/analysis/sample-diagnostics.js +3 -3
- package/dist/src/authoring/generator.js +1 -1
- package/dist/src/authoring/generator.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +39 -2
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/eval.d.ts.map +1 -1
- package/dist/src/cli/commands/eval.js +0 -5
- package/dist/src/cli/commands/eval.js.map +1 -1
- package/dist/src/cli/commands/{export.d.ts → evolve.d.ts} +1 -1
- package/dist/src/cli/commands/evolve.d.ts.map +1 -0
- package/dist/src/cli/commands/{improve-skill.js → evolve.js} +3 -3
- package/dist/src/cli/commands/evolve.js.map +1 -0
- package/dist/src/cli/commands/registry.d.ts.map +1 -1
- package/dist/src/cli/commands/registry.js +4 -22
- package/dist/src/cli/commands/registry.js.map +1 -1
- package/dist/src/cli/commands/{improve.d.ts → sample.d.ts} +1 -1
- package/dist/src/cli/commands/sample.d.ts.map +1 -0
- package/dist/src/cli/commands/{improve-samples.js → sample.js} +5 -4
- package/dist/src/cli/commands/sample.js.map +1 -0
- package/dist/src/cli/i18n-dict.d.ts +2 -4
- package/dist/src/cli/i18n-dict.d.ts.map +1 -1
- package/dist/src/cli/i18n-dict.js +165 -373
- package/dist/src/cli/i18n-dict.js.map +1 -1
- package/dist/src/cli/parse-run-config.d.ts +1 -1
- package/dist/src/cli/parse-run-config.js +1 -1
- package/dist/src/doctor/health/builtin-dimensions.d.ts +11 -0
- package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -0
- package/dist/src/doctor/health/builtin-dimensions.js +94 -0
- package/dist/src/doctor/health/builtin-dimensions.js.map +1 -0
- package/dist/src/doctor/health/composer.d.ts +19 -0
- package/dist/src/doctor/health/composer.d.ts.map +1 -0
- package/dist/src/doctor/health/composer.js +289 -0
- package/dist/src/doctor/health/composer.js.map +1 -0
- package/dist/src/doctor/health/dimension-registry.d.ts +13 -0
- package/dist/src/doctor/health/dimension-registry.d.ts.map +1 -0
- package/dist/src/doctor/health/dimension-registry.js +28 -0
- package/dist/src/doctor/health/dimension-registry.js.map +1 -0
- package/dist/src/doctor/health/dimension-spec.d.ts +46 -0
- package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -0
- package/dist/src/doctor/health/dimension-spec.js +12 -0
- package/dist/src/doctor/health/dimension-spec.js.map +1 -0
- package/dist/src/doctor/health/parser.d.ts +27 -0
- package/dist/src/doctor/health/parser.d.ts.map +1 -0
- package/dist/src/doctor/health/parser.js +190 -0
- package/dist/src/doctor/health/parser.js.map +1 -0
- package/dist/src/doctor/health/prompt-builder.d.ts +22 -0
- package/dist/src/doctor/health/prompt-builder.d.ts.map +1 -0
- package/dist/src/doctor/health/prompt-builder.js +162 -0
- package/dist/src/doctor/health/prompt-builder.js.map +1 -0
- package/dist/src/doctor/health/register.d.ts +13 -0
- package/dist/src/doctor/health/register.d.ts.map +1 -0
- package/dist/src/doctor/health/register.js +20 -0
- package/dist/src/doctor/health/register.js.map +1 -0
- package/dist/src/doctor/html-renderer.d.ts +20 -0
- package/dist/src/doctor/html-renderer.d.ts.map +1 -0
- package/dist/src/doctor/html-renderer.js +366 -0
- package/dist/src/doctor/html-renderer.js.map +1 -0
- package/dist/src/doctor/index.d.ts.map +1 -1
- package/dist/src/doctor/index.js +55 -6
- package/dist/src/doctor/index.js.map +1 -1
- package/dist/src/doctor/renderer.d.ts +4 -0
- package/dist/src/doctor/renderer.d.ts.map +1 -1
- package/dist/src/doctor/renderer.js +72 -18
- package/dist/src/doctor/renderer.js.map +1 -1
- package/dist/src/doctor/rules.d.ts +6 -5
- package/dist/src/doctor/rules.d.ts.map +1 -1
- package/dist/src/doctor/rules.js +4 -3
- package/dist/src/doctor/rules.js.map +1 -1
- package/dist/src/types/doctor.d.ts +41 -3
- package/dist/src/types/doctor.d.ts.map +1 -1
- package/dist/src/types/doctor.js +3 -0
- package/dist/src/types/doctor.js.map +1 -1
- package/dist/src/types/eval.d.ts +1 -1
- package/dist/src/types/report.d.ts +2 -2
- package/dist/src/types/report.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/src/cli/commands/eval-debias.d.ts +0 -2
- package/dist/src/cli/commands/eval-debias.d.ts.map +0 -1
- package/dist/src/cli/commands/eval-debias.js +0 -88
- package/dist/src/cli/commands/eval-debias.js.map +0 -1
- package/dist/src/cli/commands/export-diff.d.ts +0 -2
- package/dist/src/cli/commands/export-diff.d.ts.map +0 -1
- package/dist/src/cli/commands/export-diff.js +0 -177
- package/dist/src/cli/commands/export-diff.js.map +0 -1
- package/dist/src/cli/commands/export-saturation.d.ts +0 -2
- package/dist/src/cli/commands/export-saturation.d.ts.map +0 -1
- package/dist/src/cli/commands/export-saturation.js +0 -59
- package/dist/src/cli/commands/export-saturation.js.map +0 -1
- package/dist/src/cli/commands/export-verdict.d.ts +0 -2
- package/dist/src/cli/commands/export-verdict.d.ts.map +0 -1
- package/dist/src/cli/commands/export-verdict.js +0 -45
- package/dist/src/cli/commands/export-verdict.js.map +0 -1
- package/dist/src/cli/commands/export.d.ts.map +0 -1
- package/dist/src/cli/commands/export.js +0 -150
- package/dist/src/cli/commands/export.js.map +0 -1
- package/dist/src/cli/commands/improve-failures.d.ts +0 -2
- package/dist/src/cli/commands/improve-failures.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-failures.js +0 -59
- package/dist/src/cli/commands/improve-failures.js.map +0 -1
- package/dist/src/cli/commands/improve-plan.d.ts +0 -2
- package/dist/src/cli/commands/improve-plan.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-plan.js +0 -75
- package/dist/src/cli/commands/improve-plan.js.map +0 -1
- package/dist/src/cli/commands/improve-samples.d.ts +0 -2
- package/dist/src/cli/commands/improve-samples.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-samples.js.map +0 -1
- package/dist/src/cli/commands/improve-skill.d.ts +0 -2
- package/dist/src/cli/commands/improve-skill.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-skill.js.map +0 -1
- package/dist/src/cli/commands/improve.d.ts.map +0 -1
- package/dist/src/cli/commands/improve.js +0 -34
- package/dist/src/cli/commands/improve.js.map +0 -1
- package/dist/src/cli/coverage-renderer.d.ts +0 -15
- package/dist/src/cli/coverage-renderer.d.ts.map +0 -1
- package/dist/src/cli/coverage-renderer.js +0 -74
- package/dist/src/cli/coverage-renderer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-dict.js","sourceRoot":"","sources":["../../../src/cli/i18n-dict.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i18n-dict.js","sourceRoot":"","sources":["../../../src/cli/i18n-dict.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ export declare function parseJudgeModelsArg(raw: string): JudgeConfig[];
|
|
|
66
66
|
* Friendly CLI wrapper around `parseJudgeModelsArg`. On parse error prints
|
|
67
67
|
* `error: <msg>` to stderr and exits 2 — matching `parseArgsStrict` 对 unknown
|
|
68
68
|
* option 的行为(exit 2 = parser/参数错误,区别于 doctor / gate eval failure 的
|
|
69
|
-
* exit 1)。CLI 层 `eval` / `
|
|
69
|
+
* exit 1)。CLI 层 `eval` / `evolve` 共享这一份。
|
|
70
70
|
*/
|
|
71
71
|
export declare function parseJudgeModelsArgOrExit(raw: string): JudgeConfig[];
|
|
72
72
|
/**
|
|
@@ -41,7 +41,7 @@ export function parseJudgeModelsArg(raw) {
|
|
|
41
41
|
* Friendly CLI wrapper around `parseJudgeModelsArg`. On parse error prints
|
|
42
42
|
* `error: <msg>` to stderr and exits 2 — matching `parseArgsStrict` 对 unknown
|
|
43
43
|
* option 的行为(exit 2 = parser/参数错误,区别于 doctor / gate eval failure 的
|
|
44
|
-
* exit 1)。CLI 层 `eval` / `
|
|
44
|
+
* exit 1)。CLI 层 `eval` / `evolve` 共享这一份。
|
|
45
45
|
*/
|
|
46
46
|
export function parseJudgeModelsArgOrExit(raw) {
|
|
47
47
|
try {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 7 个内置健康度维度的 spec。
|
|
3
|
+
*
|
|
4
|
+
* 内置维度的 promptSection 完整保留原 Python 版的检查项内容(不写 ## N. 标题,
|
|
5
|
+
* 框架按注册顺序自动编号)。severity 区分:
|
|
6
|
+
* - fatal: trigger-boundary / dependency / security → `不健康` 时让 doctor outcome=failed
|
|
7
|
+
* - warn: doc-clarity / instr-precision / tool-conventions / examples
|
|
8
|
+
*/
|
|
9
|
+
import type { HealthDimensionSpec } from './dimension-spec.js';
|
|
10
|
+
export declare const BUILTIN_HEALTH_DIMENSIONS: HealthDimensionSpec[];
|
|
11
|
+
//# sourceMappingURL=builtin-dimensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-dimensions.d.ts","sourceRoot":"","sources":["../../../../src/doctor/health/builtin-dimensions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,yBAAyB,EAAE,mBAAmB,EAoF1D,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 7 个内置健康度维度的 spec。
|
|
3
|
+
*
|
|
4
|
+
* 内置维度的 promptSection 完整保留原 Python 版的检查项内容(不写 ## N. 标题,
|
|
5
|
+
* 框架按注册顺序自动编号)。severity 区分:
|
|
6
|
+
* - fatal: trigger-boundary / dependency / security → `不健康` 时让 doctor outcome=failed
|
|
7
|
+
* - warn: doc-clarity / instr-precision / tool-conventions / examples
|
|
8
|
+
*/
|
|
9
|
+
export const BUILTIN_HEALTH_DIMENSIONS = [
|
|
10
|
+
{
|
|
11
|
+
id: 'trigger-boundary',
|
|
12
|
+
displayName: '触发与边界',
|
|
13
|
+
labelKey: 'cli.doctor.health.dim.trigger-boundary',
|
|
14
|
+
severity: 'fatal',
|
|
15
|
+
promptSection: `**该触发时准 + 不该触发时不误用**
|
|
16
|
+
- frontmatter 的 \`description\` / \`when_to_use\` 是否与正文功能一致?
|
|
17
|
+
- 关键词与相邻 skill 的区分度是否足够?(关键词 < 3 个或全是泛词 = 区分度差)
|
|
18
|
+
- 是否**显式声明了不适用范围**?(eg. "本 skill 不处理 X、X 请走 Y skill"、"仅适用 dev 环境")
|
|
19
|
+
- 关键词与其他系统 skill 严重重叠时,是否说明了分工?`,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 'doc-clarity',
|
|
23
|
+
displayName: '文档清晰',
|
|
24
|
+
labelKey: 'cli.doctor.health.dim.doc-clarity',
|
|
25
|
+
severity: 'warn',
|
|
26
|
+
promptSection: `**写得好不好读**
|
|
27
|
+
- 步骤顺序清楚、结构合理
|
|
28
|
+
- 没有大段冗余(明显可压 50%+ 的章节、无价值废话)
|
|
29
|
+
- 关键决策点显式标出
|
|
30
|
+
- 参数说明完整`,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'instr-precision',
|
|
34
|
+
displayName: '指令精确性',
|
|
35
|
+
labelKey: 'cli.doctor.health.dim.instr-precision',
|
|
36
|
+
severity: 'warn',
|
|
37
|
+
promptSection: `**给 LLM 的指令语义是否单一,多次执行不漂移**
|
|
38
|
+
- 模糊量词("一些" / "必要时" / "如有需要" / "适当地")
|
|
39
|
+
- 未限定主语("调用工具" 没说哪个工具)
|
|
40
|
+
- 条件分支没穷举("如果 X 就 A,否则..." 缺 else)
|
|
41
|
+
- 同一动作多种说法导致歧义
|
|
42
|
+
- 数量/阈值没说清("查几条"、"等一会儿")`,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: 'dependency',
|
|
46
|
+
displayName: '依赖检查',
|
|
47
|
+
labelKey: 'cli.doctor.health.dim.dependency',
|
|
48
|
+
severity: 'fatal',
|
|
49
|
+
promptSection: `**依赖在 + 不重复造轮子 + 路径可移植**
|
|
50
|
+
- 引用的脚本 / CLI / MCP 工具 / 其他 skill 实际存在
|
|
51
|
+
- 不内联底层(应该引用某 skill 时却内联了它的实现)
|
|
52
|
+
- **路径可移植**:不能硬编码具体版本号路径(eg. \`~/.nvm/versions/node/v22.22.0/...\`)、用户专属路径(eg. \`/Users/<具体人>/...\`)、机器专属位置——这些在换用户 / 换 Node 版本 / 换安装方式时**直接跑不通**,属于 \`错误\` 级。
|
|
53
|
+
|
|
54
|
+
**改进建议必须用运行时中立的方案**:
|
|
55
|
+
- **skill 内部资源**(\`scripts/\`、\`references/\`、\`mcp.json\` 等):**统一用 \`$SKILL_DIR\` 指代本 skill 加载后的实际根目录(即 SKILL.md 所在目录)**,执行命令时由调用方替换为绝对路径。SKILL.md 里只需在前置说明里加一句:"\`$SKILL_DIR\` 指代本 skill 加载后的实际根目录,执行命令时直接替换为该绝对路径"。
|
|
56
|
+
- **外部全局 npm 包路径**(eg. \`~/.nvm/versions/node/v22.22.0/lib/node_modules/...\`):改进建议**唯一推荐 \`npm root -g\`**,不要给其它替代方案。
|
|
57
|
+
- **其它外部 CLI**(非 npm 包):用 \`which xxx\` 等动态解析,**不要**写死具体安装前缀或版本路径。
|
|
58
|
+
- **禁止**推荐任何**单一运行时**绑定的机制(skill 可能在多种宿主下运行)。具体不要建议:
|
|
59
|
+
- Claude 专属:\`$CLAUDE_PLUGIN_ROOT\` / \`~/.claude/\` / \`.claude/\` / 把 \`claude\` CLI 当强依赖
|
|
60
|
+
- OpenClaw 专属:\`$OPENCLAW_*\` / 假设 cwd 在某固定位置
|
|
61
|
+
- 任何把"宿主"写死到 skill 文档里的方案`,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'tool-conventions',
|
|
65
|
+
displayName: '工具规范',
|
|
66
|
+
labelKey: 'cli.doctor.health.dim.tool-conventions',
|
|
67
|
+
severity: 'warn',
|
|
68
|
+
promptSection: `**调用方式标准 + 工具失败降级路径明确**
|
|
69
|
+
- 工具调用方式遵循统一约定(参数命名、返回格式)
|
|
70
|
+
- **工具失败 / 返回异常 / 数据为空时,skill 是否给了明确指令**(重试 / 跳过 / 中断并报告用户),而不是默认让 LLM 自由发挥`,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: 'security',
|
|
74
|
+
displayName: '安全与合规',
|
|
75
|
+
labelKey: 'cli.doctor.health.dim.security',
|
|
76
|
+
severity: 'fatal',
|
|
77
|
+
promptSection: `**3 个 subtype,每条 finding 必须标 subtype**
|
|
78
|
+
- \`不可逆操作\`:\`rm -rf\` / \`git push -f\` / \`git reset --hard\` / \`git clean -fd\` / \`git branch -D\` / \`DROP TABLE\` / \`TRUNCATE\` / 不带 \`WHERE\` 的 \`DELETE\` / \`UPDATE\` / \`--no-verify\` 跳过 hook 等,**没有要求人工确认 / 先 dry-run / 限定 scope**
|
|
79
|
+
- \`凭据硬编码\`:写死的 token / AK / SK / cookie / password(非占位符)
|
|
80
|
+
- \`个人化耦合\`:真实工号 / 真实花名 / 真实邮箱(无"示例:"前缀) / 个人专属路径(\`/Users/<具体人名>/...\`)`,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: 'examples',
|
|
84
|
+
displayName: '示例完备',
|
|
85
|
+
labelKey: 'cli.doctor.health.dim.examples',
|
|
86
|
+
severity: 'warn',
|
|
87
|
+
promptSection: `**用户能否照着用、能否验证**
|
|
88
|
+
- 是否给了**典型调用示例**(用户输入 → 期望输出)?
|
|
89
|
+
- 是否说明了**如何验证调用成功**(看哪个文件 / log / 返回字段)?
|
|
90
|
+
- 关键参数是否有**示例值**,而不是只有类型说明?
|
|
91
|
+
- **失败 / 异常路径**是否有示意?`,
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
//# sourceMappingURL=builtin-dimensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-dimensions.js","sourceRoot":"","sources":["../../../../src/doctor/health/builtin-dimensions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D;QACE,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,wCAAwC;QAClD,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE;;;;gCAIa;KAC7B;IACD;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,mCAAmC;QAC7C,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE;;;;SAIV;KACN;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,uCAAuC;QACjD,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE;;;;;yBAKM;KACtB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE;;;;;;;;;;;;8BAYW;KAC3B;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,wCAAwC;QAClD,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE;;4EAEyD;KACzE;IACD;QACE,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,gCAAgC;QAC1C,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE;;;yEAGsD;KACtE;IACD;QACE,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,gCAAgC;QAC1C,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE;;;;sBAIG;KACnB;CACF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skill_health composer rule — 健康度体检的"复合 rule"。
|
|
3
|
+
*
|
|
4
|
+
* 单次 LLM 调用产出全部已注册维度的 checklist;composer.checkAll() 返回 N+1 条
|
|
5
|
+
* outcome:N = 注册维度数(每维一条),1 = summary(top_suggestions / overall_health
|
|
6
|
+
* / feature_points 落在这条)。
|
|
7
|
+
*
|
|
8
|
+
* doctor engine 检测 kind='composer' 时把 outcome[] 展开成 N+1 条独立 DoctorRuleResult,
|
|
9
|
+
* 共享 groupId = composer.id,renderer 按 groupId 分组渲染。
|
|
10
|
+
*
|
|
11
|
+
* 工厂模式 makeSkillHealthComposer(execFactory) 给测试注入 mock executor。
|
|
12
|
+
* 默认 import 时不注册;register.ts 才做 registerRule 副作用。
|
|
13
|
+
*/
|
|
14
|
+
import type { ExecutorFn } from '../../types/executor.js';
|
|
15
|
+
import type { ComposerRule } from '../../types/doctor.js';
|
|
16
|
+
export declare const SKILL_HEALTH_COMPOSER_ID = "skill_health";
|
|
17
|
+
export type ExecutorFactory = (name: string) => ExecutorFn;
|
|
18
|
+
export declare function makeSkillHealthComposer(execFactory?: ExecutorFactory): ComposerRule;
|
|
19
|
+
//# sourceMappingURL=composer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../../../src/doctor/health/composer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAEV,YAAY,EAGb,MAAM,uBAAuB,CAAC;AAU/B,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC;AAoF3D,wBAAgB,uBAAuB,CACrC,WAAW,GAAE,eAAwC,GACpD,YAAY,CAQd"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skill_health composer rule — 健康度体检的"复合 rule"。
|
|
3
|
+
*
|
|
4
|
+
* 单次 LLM 调用产出全部已注册维度的 checklist;composer.checkAll() 返回 N+1 条
|
|
5
|
+
* outcome:N = 注册维度数(每维一条),1 = summary(top_suggestions / overall_health
|
|
6
|
+
* / feature_points 落在这条)。
|
|
7
|
+
*
|
|
8
|
+
* doctor engine 检测 kind='composer' 时把 outcome[] 展开成 N+1 条独立 DoctorRuleResult,
|
|
9
|
+
* 共享 groupId = composer.id,renderer 按 groupId 分组渲染。
|
|
10
|
+
*
|
|
11
|
+
* 工厂模式 makeSkillHealthComposer(execFactory) 给测试注入 mock executor。
|
|
12
|
+
* 默认 import 时不注册;register.ts 才做 registerRule 副作用。
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
15
|
+
import { dirname, join } from 'node:path';
|
|
16
|
+
import { tCli } from '../../cli/i18n.js';
|
|
17
|
+
import { createExecutor } from '../../executors/index.js';
|
|
18
|
+
import { getRegisteredHealthDimensions } from './dimension-registry.js';
|
|
19
|
+
import { buildHealthPrompt } from './prompt-builder.js';
|
|
20
|
+
import { deriveOverallHealth, extractJson, parseHealthOutput } from './parser.js';
|
|
21
|
+
export const SKILL_HEALTH_COMPOSER_ID = 'skill_health';
|
|
22
|
+
const defaultExecutorFactory = createExecutor;
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Status mapping
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
function mapDimLevelToStatus(level, missing) {
|
|
27
|
+
if (missing)
|
|
28
|
+
return 'skipped';
|
|
29
|
+
switch (level) {
|
|
30
|
+
case '不健康': return 'fail';
|
|
31
|
+
case '亚健康': return 'warn';
|
|
32
|
+
case '健康': return 'pass';
|
|
33
|
+
case '不适用': return 'skipped';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Per-dim outcome rendering
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
function dimMessage(dim, r, lang) {
|
|
40
|
+
if (r._missing) {
|
|
41
|
+
return tCli('cli.doctor.health.dim.missing', lang, { dim: dim.displayName });
|
|
42
|
+
}
|
|
43
|
+
const errs = r.findings.filter((f) => f.level === '错误').length;
|
|
44
|
+
const warns = r.findings.filter((f) => f.level === '警告').length;
|
|
45
|
+
const sugs = r.findings.filter((f) => f.level === '建议').length;
|
|
46
|
+
return tCli('cli.doctor.health.dim.message', lang, {
|
|
47
|
+
level: r.level, err: errs, warn: warns, sug: sugs,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function dimHint(r) {
|
|
51
|
+
if (r.suggestions.length === 0)
|
|
52
|
+
return undefined;
|
|
53
|
+
return r.suggestions[0];
|
|
54
|
+
}
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// Sub-files / siblings discovery (与上一版本相同)
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
function listSubFiles(skillRoot) {
|
|
59
|
+
if (!skillRoot || !existsSync(skillRoot))
|
|
60
|
+
return [];
|
|
61
|
+
const out = [];
|
|
62
|
+
const walk = (dir, rel, depth) => {
|
|
63
|
+
if (depth > 2)
|
|
64
|
+
return;
|
|
65
|
+
let entries = [];
|
|
66
|
+
try {
|
|
67
|
+
entries = readdirSync(dir);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
for (const entry of entries) {
|
|
73
|
+
if (entry.startsWith('.'))
|
|
74
|
+
continue;
|
|
75
|
+
if (entry === 'SKILL.md' && rel === '')
|
|
76
|
+
continue;
|
|
77
|
+
if (entry === 'node_modules')
|
|
78
|
+
continue;
|
|
79
|
+
const full = join(dir, entry);
|
|
80
|
+
const relPath = rel ? `${rel}/${entry}` : entry;
|
|
81
|
+
let st;
|
|
82
|
+
try {
|
|
83
|
+
st = statSync(full);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (st.isDirectory())
|
|
89
|
+
walk(full, relPath, depth + 1);
|
|
90
|
+
else if (st.isFile())
|
|
91
|
+
out.push(relPath);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
walk(skillRoot, '', 0);
|
|
95
|
+
return out.sort();
|
|
96
|
+
}
|
|
97
|
+
function listSiblingSkills(skillRoot) {
|
|
98
|
+
if (!skillRoot || !existsSync(skillRoot))
|
|
99
|
+
return [];
|
|
100
|
+
const parent = dirname(skillRoot);
|
|
101
|
+
if (!existsSync(parent))
|
|
102
|
+
return [];
|
|
103
|
+
const self = skillRoot.split('/').pop() ?? '';
|
|
104
|
+
let entries = [];
|
|
105
|
+
try {
|
|
106
|
+
entries = readdirSync(parent);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
return entries
|
|
112
|
+
.filter((e) => !e.startsWith('.') && e !== self)
|
|
113
|
+
.filter((e) => {
|
|
114
|
+
try {
|
|
115
|
+
return statSync(join(parent, e)).isDirectory();
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
})
|
|
121
|
+
.sort();
|
|
122
|
+
}
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// Composer factory
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
export function makeSkillHealthComposer(execFactory = defaultExecutorFactory) {
|
|
127
|
+
return {
|
|
128
|
+
id: SKILL_HEALTH_COMPOSER_ID,
|
|
129
|
+
kind: 'composer',
|
|
130
|
+
severity: 'fatal',
|
|
131
|
+
labelKey: 'cli.doctor.rule.skill_health_check',
|
|
132
|
+
checkAll: (ctx) => composerCheckAll(ctx, execFactory),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
async function composerCheckAll(ctx, execFactory) {
|
|
136
|
+
const dims = getRegisteredHealthDimensions();
|
|
137
|
+
// Programmatic opt-out: runHealthCheck=false → 给 summary 一条 skipped,
|
|
138
|
+
// 各维度不展开避免污染报告。CLI 的 --static-only 会直接过滤掉 composer rule。
|
|
139
|
+
if (!ctx.runHealthCheck) {
|
|
140
|
+
return [{
|
|
141
|
+
subId: '_summary',
|
|
142
|
+
severity: 'info',
|
|
143
|
+
labelKey: 'cli.doctor.rule.skill_health_check',
|
|
144
|
+
status: 'skipped',
|
|
145
|
+
message: tCli('cli.doctor.health.skipped', ctx.lang),
|
|
146
|
+
}];
|
|
147
|
+
}
|
|
148
|
+
// 没注册任何维度 → 短路
|
|
149
|
+
if (dims.length === 0) {
|
|
150
|
+
return [{
|
|
151
|
+
subId: '_summary',
|
|
152
|
+
severity: 'info',
|
|
153
|
+
labelKey: 'cli.doctor.rule.skill_health_check',
|
|
154
|
+
status: 'skipped',
|
|
155
|
+
message: tCli('cli.doctor.health.no_dimensions', ctx.lang),
|
|
156
|
+
}];
|
|
157
|
+
}
|
|
158
|
+
const content = ctx.artifact.content;
|
|
159
|
+
if (!content || content.trim().length === 0) {
|
|
160
|
+
// skill_readable rule 也会 fail;这里只是 short-circuit 防止白白调 LLM
|
|
161
|
+
return [{
|
|
162
|
+
subId: '_summary',
|
|
163
|
+
severity: 'info',
|
|
164
|
+
labelKey: 'cli.doctor.rule.skill_health_check',
|
|
165
|
+
status: 'skipped',
|
|
166
|
+
message: tCli('cli.doctor.health.skipped', ctx.lang),
|
|
167
|
+
}];
|
|
168
|
+
}
|
|
169
|
+
const skillName = ctx.artifact.name.replace(/\.md$/, '').split('/').pop() ?? ctx.artifact.name;
|
|
170
|
+
const skillRoot = ctx.artifact.skillRoot ?? null;
|
|
171
|
+
const subFiles = listSubFiles(skillRoot);
|
|
172
|
+
const siblingSkills = listSiblingSkills(skillRoot);
|
|
173
|
+
const prompt = buildHealthPrompt({ skillName, skillContent: content, skillRoot, subFiles, siblingSkills }, dims);
|
|
174
|
+
const executor = execFactory(ctx.executorName);
|
|
175
|
+
let res;
|
|
176
|
+
try {
|
|
177
|
+
res = await executor({
|
|
178
|
+
model: ctx.model,
|
|
179
|
+
prompt,
|
|
180
|
+
cwd: skillRoot ?? ctx.cwd,
|
|
181
|
+
skillDir: skillRoot ?? null,
|
|
182
|
+
timeoutMs: ctx.timeoutMs,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
187
|
+
return [errorSummaryOutcome(ctx, 'executor', msg)];
|
|
188
|
+
}
|
|
189
|
+
if (!res.ok) {
|
|
190
|
+
return [errorSummaryOutcome(ctx, 'executor', res.error ?? 'unknown')];
|
|
191
|
+
}
|
|
192
|
+
if (!res.output || res.output.trim().length === 0) {
|
|
193
|
+
return [errorSummaryOutcome(ctx, 'empty_output', '')];
|
|
194
|
+
}
|
|
195
|
+
const cleaned = extractJson(res.output);
|
|
196
|
+
if (cleaned === null) {
|
|
197
|
+
return [errorSummaryOutcome(ctx, 'extract', '', { rawOutput: res.output.slice(0, 4000) })];
|
|
198
|
+
}
|
|
199
|
+
const parseResult = parseHealthOutput(cleaned, dims);
|
|
200
|
+
const overall = parseResult.overall ?? deriveOverallHealth(parseResult.byDimId);
|
|
201
|
+
// 诊断:如果所有维度都被标 _missing,说明 LLM 输出 JSON 里 dim_id 字段缺失或写错。
|
|
202
|
+
// 把 cleaned JSON 的前 3KB 塞进 summary 的 detail.rawSample,方便用户排查。
|
|
203
|
+
const allMissing = [...parseResult.byDimId.values()].every((r) => r._missing);
|
|
204
|
+
const rawSample = allMissing ? cleaned.slice(0, 3000) : undefined;
|
|
205
|
+
// 汇总 finding 计数(框架算,不信 LLM 算术)
|
|
206
|
+
const finding = { '错误': 0, '警告': 0, '建议': 0 };
|
|
207
|
+
const dimCount = { '健康': 0, '亚健康': 0, '不健康': 0, '不适用': 0 };
|
|
208
|
+
for (const r of parseResult.byDimId.values()) {
|
|
209
|
+
if (r._missing)
|
|
210
|
+
continue;
|
|
211
|
+
dimCount[r.level] += 1;
|
|
212
|
+
for (const f of r.findings)
|
|
213
|
+
finding[f.level] += 1;
|
|
214
|
+
}
|
|
215
|
+
// N 条维度 outcome
|
|
216
|
+
const dimOutcomes = dims.map((dim) => {
|
|
217
|
+
const r = parseResult.byDimId.get(dim.id);
|
|
218
|
+
return {
|
|
219
|
+
subId: dim.id,
|
|
220
|
+
labelKey: dim.labelKey,
|
|
221
|
+
severity: dim.severity,
|
|
222
|
+
status: mapDimLevelToStatus(r.level, r._missing),
|
|
223
|
+
message: dimMessage(dim, r, ctx.lang),
|
|
224
|
+
hint: dimHint(r),
|
|
225
|
+
detail: {
|
|
226
|
+
dimensionId: dim.id,
|
|
227
|
+
displayName: dim.displayName,
|
|
228
|
+
level: r.level,
|
|
229
|
+
findings: r.findings,
|
|
230
|
+
suggestions: r.suggestions,
|
|
231
|
+
missing: r._missing ?? false,
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
});
|
|
235
|
+
// 1 条 summary outcome
|
|
236
|
+
const summaryOutcome = {
|
|
237
|
+
subId: '_summary',
|
|
238
|
+
severity: 'info',
|
|
239
|
+
labelKey: 'cli.doctor.health.summary.label',
|
|
240
|
+
status: 'pass', // summary 永远 pass(信息性,不影响 outcome)
|
|
241
|
+
message: tCli('cli.doctor.health.summary.message', ctx.lang, {
|
|
242
|
+
overall,
|
|
243
|
+
h: dimCount['健康'], sh: dimCount['亚健康'], bad: dimCount['不健康'], na: dimCount['不适用'],
|
|
244
|
+
err: finding['错误'], warn: finding['警告'], sug: finding['建议'],
|
|
245
|
+
}),
|
|
246
|
+
hint: parseResult.topSuggestions.slice(0, 3).join(' | ')
|
|
247
|
+
|| tCli('cli.doctor.health.summary.no_top', ctx.lang),
|
|
248
|
+
detail: {
|
|
249
|
+
overall,
|
|
250
|
+
dimensionLevelCount: dimCount,
|
|
251
|
+
findingCountByLevel: finding,
|
|
252
|
+
topSuggestions: parseResult.topSuggestions,
|
|
253
|
+
featurePoints: parseResult.featurePoints,
|
|
254
|
+
durationMs: res.durationMs,
|
|
255
|
+
durationApiMs: res.durationApiMs,
|
|
256
|
+
// turns:claude-cli 在内部跑的 LLM 轮次(每轮 = 1 次 messages.create)
|
|
257
|
+
// numTurns:assistant turn 数 / fullNumTurns:含 tool turn 的总数
|
|
258
|
+
llmTurns: { numTurns: res.numTurns, fullNumTurns: res.fullNumTurns },
|
|
259
|
+
tokens: {
|
|
260
|
+
input: res.inputTokens, output: res.outputTokens,
|
|
261
|
+
cacheRead: res.cacheReadTokens, cacheCreation: res.cacheCreationTokens,
|
|
262
|
+
},
|
|
263
|
+
costUSD: res.costUSD,
|
|
264
|
+
executor: { name: ctx.executorName, model: ctx.model },
|
|
265
|
+
...(rawSample !== undefined ? { rawSample, _diagnostic: 'all dims missing — likely dim_id field absent in LLM output' } : {}),
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
return [...dimOutcomes, summaryOutcome];
|
|
269
|
+
}
|
|
270
|
+
function errorSummaryOutcome(ctx, phase, errMsg, extra = {}) {
|
|
271
|
+
const messageKey = phase === 'executor'
|
|
272
|
+
? 'cli.doctor.health.fail.executor'
|
|
273
|
+
: phase === 'empty_output'
|
|
274
|
+
? 'cli.doctor.health.fail.empty_output'
|
|
275
|
+
: 'cli.doctor.health.fail.parse';
|
|
276
|
+
const hintKey = phase === 'executor'
|
|
277
|
+
? 'cli.doctor.health.hint.executor'
|
|
278
|
+
: 'cli.doctor.health.hint.parse';
|
|
279
|
+
return {
|
|
280
|
+
subId: '_summary',
|
|
281
|
+
severity: 'fatal',
|
|
282
|
+
labelKey: 'cli.doctor.health.summary.label',
|
|
283
|
+
status: 'fail',
|
|
284
|
+
message: tCli(messageKey, ctx.lang, { error: errMsg.slice(0, 200) }),
|
|
285
|
+
hint: tCli(hintKey, ctx.lang),
|
|
286
|
+
detail: { phase, error: errMsg, ...extra },
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=composer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../../../src/doctor/health/composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HealthDimensionSpec 全局注册表(module-level singleton)。
|
|
3
|
+
*
|
|
4
|
+
* 内置 7 个维度由 health/register.ts 注册;用户通过 registerHealthDimension()
|
|
5
|
+
* 注册自定义维度。注册顺序就是 prompt 中的章节编号顺序。
|
|
6
|
+
*
|
|
7
|
+
* id 冲突会抛 — 防止意外覆盖。__resetForTest 给单测用。
|
|
8
|
+
*/
|
|
9
|
+
import type { HealthDimensionSpec } from './dimension-spec.js';
|
|
10
|
+
export declare function registerHealthDimension(spec: HealthDimensionSpec): void;
|
|
11
|
+
export declare function getRegisteredHealthDimensions(): HealthDimensionSpec[];
|
|
12
|
+
export declare function __resetHealthDimensionsForTest(): void;
|
|
13
|
+
//# sourceMappingURL=dimension-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension-registry.d.ts","sourceRoot":"","sources":["../../../../src/doctor/health/dimension-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK/D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CASvE;AAED,wBAAgB,6BAA6B,IAAI,mBAAmB,EAAE,CAErE;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HealthDimensionSpec 全局注册表(module-level singleton)。
|
|
3
|
+
*
|
|
4
|
+
* 内置 7 个维度由 health/register.ts 注册;用户通过 registerHealthDimension()
|
|
5
|
+
* 注册自定义维度。注册顺序就是 prompt 中的章节编号顺序。
|
|
6
|
+
*
|
|
7
|
+
* id 冲突会抛 — 防止意外覆盖。__resetForTest 给单测用。
|
|
8
|
+
*/
|
|
9
|
+
const dimensions = [];
|
|
10
|
+
const seenIds = new Set();
|
|
11
|
+
export function registerHealthDimension(spec) {
|
|
12
|
+
if (!spec.id || spec.id.includes(':')) {
|
|
13
|
+
throw new Error(`invalid health dimension id: "${spec.id}" (non-empty, no ":")`);
|
|
14
|
+
}
|
|
15
|
+
if (seenIds.has(spec.id)) {
|
|
16
|
+
throw new Error(`health dimension id collision: ${spec.id}`);
|
|
17
|
+
}
|
|
18
|
+
seenIds.add(spec.id);
|
|
19
|
+
dimensions.push(spec);
|
|
20
|
+
}
|
|
21
|
+
export function getRegisteredHealthDimensions() {
|
|
22
|
+
return [...dimensions]; // 防止外部 mutate
|
|
23
|
+
}
|
|
24
|
+
export function __resetHealthDimensionsForTest() {
|
|
25
|
+
dimensions.length = 0;
|
|
26
|
+
seenIds.clear();
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=dimension-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension-registry.js","sourceRoot":"","sources":["../../../../src/doctor/health/dimension-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,UAAU,GAA0B,EAAE,CAAC;AAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;AAElC,MAAM,UAAU,uBAAuB,CAAC,IAAyB;IAC/D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc;AACxC,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HealthDimensionSpec — 健康度维度的可扩展接口。
|
|
3
|
+
*
|
|
4
|
+
* 用户写一个 spec 描述自己想加的维度,通过 registerHealthDimension(spec) 注册;
|
|
5
|
+
* composer 在拼 prompt 时把所有注册的 spec 的 promptSection 拼进"检查维度"区块,
|
|
6
|
+
* 同时把 spec.id 加入 dim_id 枚举,LLM 必须在 checklist 中按每个 id 出一项。
|
|
7
|
+
*
|
|
8
|
+
* 维度结果(level + findings)的解析按统一规则跑;若维度需要特殊解析(eg. 把
|
|
9
|
+
* subtype 作为 finding 一级字段),后续可以加可选 hooks(parseFindings 等)。
|
|
10
|
+
*/
|
|
11
|
+
import type { DoctorSeverity } from '../../types/doctor.js';
|
|
12
|
+
export type HealthDimensionLevel = '健康' | '亚健康' | '不健康' | '不适用';
|
|
13
|
+
export type HealthFindingLevel = '错误' | '警告' | '建议';
|
|
14
|
+
export interface HealthFinding {
|
|
15
|
+
level: HealthFindingLevel;
|
|
16
|
+
/** 仅 security 维度填(`不可逆操作 | 凭据硬编码 | 个人化耦合`),其它维度空字符串。
|
|
17
|
+
* 保留为通用字段,未来其它维度也可借此做子分类。 */
|
|
18
|
+
subtype?: string;
|
|
19
|
+
evidence: string;
|
|
20
|
+
description: string;
|
|
21
|
+
}
|
|
22
|
+
export interface HealthDimensionResult {
|
|
23
|
+
level: HealthDimensionLevel;
|
|
24
|
+
findings: HealthFinding[];
|
|
25
|
+
suggestions: string[];
|
|
26
|
+
/** 内部标记:LLM 没产出该维度时,parser 会塞一个 placeholder + _missing=true,
|
|
27
|
+
* composer 据此把 status 置为 skipped + message 提示 LLM 漏报。 */
|
|
28
|
+
_missing?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface HealthDimensionSpec {
|
|
31
|
+
/** 稳定的英文 id。会成为 prompt 里 dim_id 的取值,以及 ruleId 后缀。
|
|
32
|
+
* 不允许重复;不允许包含 `:`(避免和 composer ruleId 分隔符冲突)。 */
|
|
33
|
+
id: string;
|
|
34
|
+
/** 给人看的简短显示名(LLM prompt 里的章节标题用 + renderer 用)。
|
|
35
|
+
* 可以是中文或多语言混用,稳定性不重要(因为 LLM 通过 id 派发,不看 displayName)。 */
|
|
36
|
+
displayName: string;
|
|
37
|
+
/** i18n key,doctor result 的 labelKey 用。renderer 走 tCli 出最终标题。 */
|
|
38
|
+
labelKey: string;
|
|
39
|
+
/** 该维度的严重度。`不健康` → fail 时,severity=fatal 才会让 doctor outcome 进 `failed`。
|
|
40
|
+
* 内置 7 维度按重要性区分(eg. dependency/security 是 fatal, doc-clarity 是 warn)。 */
|
|
41
|
+
severity: DoctorSeverity;
|
|
42
|
+
/** 拼到 prompt 的检查内容片段(纯 markdown,**不写 ## N. 标题** —— 框架自动加章节号)。
|
|
43
|
+
* 描述这一维度查什么、判定标准、example。 */
|
|
44
|
+
promptSection: string;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=dimension-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension-spec.d.ts","sourceRoot":"","sources":["../../../../src/doctor/health/dimension-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAChE,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B;kCAC8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;8DAC0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC;sDACkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX;8DAC0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB;8EAC0E;IAC1E,QAAQ,EAAE,cAAc,CAAC;IACzB;kCAC8B;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HealthDimensionSpec — 健康度维度的可扩展接口。
|
|
3
|
+
*
|
|
4
|
+
* 用户写一个 spec 描述自己想加的维度,通过 registerHealthDimension(spec) 注册;
|
|
5
|
+
* composer 在拼 prompt 时把所有注册的 spec 的 promptSection 拼进"检查维度"区块,
|
|
6
|
+
* 同时把 spec.id 加入 dim_id 枚举,LLM 必须在 checklist 中按每个 id 出一项。
|
|
7
|
+
*
|
|
8
|
+
* 维度结果(level + findings)的解析按统一规则跑;若维度需要特殊解析(eg. 把
|
|
9
|
+
* subtype 作为 finding 一级字段),后续可以加可选 hooks(parseFindings 等)。
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=dimension-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension-spec.js","sourceRoot":"","sources":["../../../../src/doctor/health/dimension-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|