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.
Files changed (122) hide show
  1. package/README.md +31 -34
  2. package/README.zh.md +31 -34
  3. package/dist/src/analysis/report-diagnostics.d.ts +2 -2
  4. package/dist/src/analysis/report-diagnostics.js +2 -2
  5. package/dist/src/analysis/sample-diagnostics.d.ts +3 -3
  6. package/dist/src/analysis/sample-diagnostics.js +3 -3
  7. package/dist/src/authoring/generator.js +1 -1
  8. package/dist/src/authoring/generator.js.map +1 -1
  9. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  10. package/dist/src/cli/commands/doctor.js +39 -2
  11. package/dist/src/cli/commands/doctor.js.map +1 -1
  12. package/dist/src/cli/commands/eval.d.ts.map +1 -1
  13. package/dist/src/cli/commands/eval.js +0 -5
  14. package/dist/src/cli/commands/eval.js.map +1 -1
  15. package/dist/src/cli/commands/{export.d.ts → evolve.d.ts} +1 -1
  16. package/dist/src/cli/commands/evolve.d.ts.map +1 -0
  17. package/dist/src/cli/commands/{improve-skill.js → evolve.js} +3 -3
  18. package/dist/src/cli/commands/evolve.js.map +1 -0
  19. package/dist/src/cli/commands/registry.d.ts.map +1 -1
  20. package/dist/src/cli/commands/registry.js +4 -22
  21. package/dist/src/cli/commands/registry.js.map +1 -1
  22. package/dist/src/cli/commands/{improve.d.ts → sample.d.ts} +1 -1
  23. package/dist/src/cli/commands/sample.d.ts.map +1 -0
  24. package/dist/src/cli/commands/{improve-samples.js → sample.js} +5 -4
  25. package/dist/src/cli/commands/sample.js.map +1 -0
  26. package/dist/src/cli/i18n-dict.d.ts +2 -4
  27. package/dist/src/cli/i18n-dict.d.ts.map +1 -1
  28. package/dist/src/cli/i18n-dict.js +165 -373
  29. package/dist/src/cli/i18n-dict.js.map +1 -1
  30. package/dist/src/cli/parse-run-config.d.ts +1 -1
  31. package/dist/src/cli/parse-run-config.js +1 -1
  32. package/dist/src/doctor/health/builtin-dimensions.d.ts +11 -0
  33. package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -0
  34. package/dist/src/doctor/health/builtin-dimensions.js +94 -0
  35. package/dist/src/doctor/health/builtin-dimensions.js.map +1 -0
  36. package/dist/src/doctor/health/composer.d.ts +19 -0
  37. package/dist/src/doctor/health/composer.d.ts.map +1 -0
  38. package/dist/src/doctor/health/composer.js +289 -0
  39. package/dist/src/doctor/health/composer.js.map +1 -0
  40. package/dist/src/doctor/health/dimension-registry.d.ts +13 -0
  41. package/dist/src/doctor/health/dimension-registry.d.ts.map +1 -0
  42. package/dist/src/doctor/health/dimension-registry.js +28 -0
  43. package/dist/src/doctor/health/dimension-registry.js.map +1 -0
  44. package/dist/src/doctor/health/dimension-spec.d.ts +46 -0
  45. package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -0
  46. package/dist/src/doctor/health/dimension-spec.js +12 -0
  47. package/dist/src/doctor/health/dimension-spec.js.map +1 -0
  48. package/dist/src/doctor/health/parser.d.ts +27 -0
  49. package/dist/src/doctor/health/parser.d.ts.map +1 -0
  50. package/dist/src/doctor/health/parser.js +190 -0
  51. package/dist/src/doctor/health/parser.js.map +1 -0
  52. package/dist/src/doctor/health/prompt-builder.d.ts +22 -0
  53. package/dist/src/doctor/health/prompt-builder.d.ts.map +1 -0
  54. package/dist/src/doctor/health/prompt-builder.js +162 -0
  55. package/dist/src/doctor/health/prompt-builder.js.map +1 -0
  56. package/dist/src/doctor/health/register.d.ts +13 -0
  57. package/dist/src/doctor/health/register.d.ts.map +1 -0
  58. package/dist/src/doctor/health/register.js +20 -0
  59. package/dist/src/doctor/health/register.js.map +1 -0
  60. package/dist/src/doctor/html-renderer.d.ts +20 -0
  61. package/dist/src/doctor/html-renderer.d.ts.map +1 -0
  62. package/dist/src/doctor/html-renderer.js +366 -0
  63. package/dist/src/doctor/html-renderer.js.map +1 -0
  64. package/dist/src/doctor/index.d.ts.map +1 -1
  65. package/dist/src/doctor/index.js +55 -6
  66. package/dist/src/doctor/index.js.map +1 -1
  67. package/dist/src/doctor/renderer.d.ts +4 -0
  68. package/dist/src/doctor/renderer.d.ts.map +1 -1
  69. package/dist/src/doctor/renderer.js +72 -18
  70. package/dist/src/doctor/renderer.js.map +1 -1
  71. package/dist/src/doctor/rules.d.ts +6 -5
  72. package/dist/src/doctor/rules.d.ts.map +1 -1
  73. package/dist/src/doctor/rules.js +4 -3
  74. package/dist/src/doctor/rules.js.map +1 -1
  75. package/dist/src/types/doctor.d.ts +41 -3
  76. package/dist/src/types/doctor.d.ts.map +1 -1
  77. package/dist/src/types/doctor.js +3 -0
  78. package/dist/src/types/doctor.js.map +1 -1
  79. package/dist/src/types/eval.d.ts +1 -1
  80. package/dist/src/types/report.d.ts +2 -2
  81. package/dist/src/types/report.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/dist/src/cli/commands/eval-debias.d.ts +0 -2
  84. package/dist/src/cli/commands/eval-debias.d.ts.map +0 -1
  85. package/dist/src/cli/commands/eval-debias.js +0 -88
  86. package/dist/src/cli/commands/eval-debias.js.map +0 -1
  87. package/dist/src/cli/commands/export-diff.d.ts +0 -2
  88. package/dist/src/cli/commands/export-diff.d.ts.map +0 -1
  89. package/dist/src/cli/commands/export-diff.js +0 -177
  90. package/dist/src/cli/commands/export-diff.js.map +0 -1
  91. package/dist/src/cli/commands/export-saturation.d.ts +0 -2
  92. package/dist/src/cli/commands/export-saturation.d.ts.map +0 -1
  93. package/dist/src/cli/commands/export-saturation.js +0 -59
  94. package/dist/src/cli/commands/export-saturation.js.map +0 -1
  95. package/dist/src/cli/commands/export-verdict.d.ts +0 -2
  96. package/dist/src/cli/commands/export-verdict.d.ts.map +0 -1
  97. package/dist/src/cli/commands/export-verdict.js +0 -45
  98. package/dist/src/cli/commands/export-verdict.js.map +0 -1
  99. package/dist/src/cli/commands/export.d.ts.map +0 -1
  100. package/dist/src/cli/commands/export.js +0 -150
  101. package/dist/src/cli/commands/export.js.map +0 -1
  102. package/dist/src/cli/commands/improve-failures.d.ts +0 -2
  103. package/dist/src/cli/commands/improve-failures.d.ts.map +0 -1
  104. package/dist/src/cli/commands/improve-failures.js +0 -59
  105. package/dist/src/cli/commands/improve-failures.js.map +0 -1
  106. package/dist/src/cli/commands/improve-plan.d.ts +0 -2
  107. package/dist/src/cli/commands/improve-plan.d.ts.map +0 -1
  108. package/dist/src/cli/commands/improve-plan.js +0 -75
  109. package/dist/src/cli/commands/improve-plan.js.map +0 -1
  110. package/dist/src/cli/commands/improve-samples.d.ts +0 -2
  111. package/dist/src/cli/commands/improve-samples.d.ts.map +0 -1
  112. package/dist/src/cli/commands/improve-samples.js.map +0 -1
  113. package/dist/src/cli/commands/improve-skill.d.ts +0 -2
  114. package/dist/src/cli/commands/improve-skill.d.ts.map +0 -1
  115. package/dist/src/cli/commands/improve-skill.js.map +0 -1
  116. package/dist/src/cli/commands/improve.d.ts.map +0 -1
  117. package/dist/src/cli/commands/improve.js +0 -34
  118. package/dist/src/cli/commands/improve.js.map +0 -1
  119. package/dist/src/cli/coverage-renderer.d.ts +0 -15
  120. package/dist/src/cli/coverage-renderer.d.ts.map +0 -1
  121. package/dist/src/cli/coverage-renderer.js +0 -74
  122. 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` / `improve skill` / `improve failures` 共享这一份。
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` / `improve skill` / `improve failures` 共享这一份。
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":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAa1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAElF,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAGvD,MAAM,sBAAsB,GAAoB,cAAc,CAAC;AAE/D,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,KAA2B,EAAE,OAAiB;IACzE,IAAI,OAAO;QAAE,OAAO,SAAS,CAAC;IAC9B,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC;QAC1B,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC;QAC1B,KAAK,IAAI,CAAC,CAAG,OAAO,MAAM,CAAC;QAC3B,KAAK,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,SAAS,UAAU,CAAC,GAAwB,EAAE,CAAwB,EAAE,IAAiB;IACvF,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,+BAA+B,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/D,OAAO,IAAI,CAAC,+BAA+B,EAAE,IAAI,EAAE;QACjD,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI;KAClD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,CAAwB;IACvC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,SAAS,YAAY,CAAC,SAAwB;IAC5C,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa,EAAQ,EAAE;QAC7D,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QACtB,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC;YAAC,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpC,IAAI,KAAK,KAAK,UAAU,IAAI,GAAG,KAAK,EAAE;gBAAE,SAAS;YACjD,IAAI,KAAK,KAAK,cAAc;gBAAE,SAAS;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAChD,IAAI,EAAE,CAAC;YACP,IAAI,CAAC;gBAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;YAChD,IAAI,EAAE,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;iBAChD,IAAI,EAAE,CAAC,MAAM,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAwB;IACjD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAC3D,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC;YAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IACjF,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,UAAU,uBAAuB,CACrC,cAA+B,sBAAsB;IAErD,OAAO;QACL,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,oCAAoC;QAC9C,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAkB,EAClB,WAA4B;IAE5B,MAAM,IAAI,GAAG,6BAA6B,EAAE,CAAC;IAE7C,qEAAqE;IACrE,yDAAyD;IACzD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,CAAC;gBACN,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,oCAAoC;gBAC9C,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI,CAAC,2BAA2B,EAAE,GAAG,CAAC,IAAI,CAAC;aACrD,CAAC,CAAC;IACL,CAAC;IAED,eAAe;IACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC;gBACN,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,oCAAoC;gBAC9C,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,GAAG,CAAC,IAAI,CAAC;aAC3D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,2DAA2D;QAC3D,OAAO,CAAC;gBACN,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,oCAAoC;gBAC9C,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI,CAAC,2BAA2B,EAAE,GAAG,CAAC,IAAI,CAAC;aACrD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/F,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,iBAAiB,CAC9B,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,EACxE,IAAI,CACL,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC;YACnB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM;YACN,GAAG,EAAE,SAAS,IAAI,GAAG,CAAC,GAAG;YACzB,QAAQ,EAAE,SAAS,IAAI,IAAI;YAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAChF,yDAAyD;IACzD,8DAA8D;IAC9D,MAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,QAAQ;YAAE,SAAS;QACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB;IAChB,MAAM,WAAW,GAAsB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAC3C,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;YAChD,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;YACrC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE;gBACN,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;aAC7B;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,cAAc,GAAoB;QACtC,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,iCAAiC;QAC3C,MAAM,EAAE,MAAM,EAAE,mCAAmC;QACnD,OAAO,EAAE,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,IAAI,EAAE;YAC3D,OAAO;YACP,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC;YACjF,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC;SAC5D,CAAC;QACF,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;eACnD,IAAI,CAAC,kCAAkC,EAAE,GAAG,CAAC,IAAI,CAAC;QACvD,MAAM,EAAE;YACN,OAAO;YACP,mBAAmB,EAAE,QAAQ;YAC7B,mBAAmB,EAAE,OAAO;YAC5B,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,0DAA0D;YAC1D,2DAA2D;YAC3D,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE;YACpE,MAAM,EAAE;gBACN,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY;gBAChD,SAAS,EAAE,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,GAAG,CAAC,mBAAmB;aACvE;YACD,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;YACtD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,6DAA6D,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9H;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,WAAW,EAAE,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAkB,EAClB,KAA8C,EAC9C,MAAc,EACd,QAAiC,EAAE;IAEnC,MAAM,UAAU,GAAG,KAAK,KAAK,UAAU;QACrC,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,KAAK,KAAK,cAAc;YACxB,CAAC,CAAC,qCAAqC;YACvC,CAAC,CAAC,8BAA8B,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,KAAK,UAAU;QAClC,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,8BAA8B,CAAC;IACnC,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,iCAAiC;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACpE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC;QAC7B,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;KAC3C,CAAC;AACJ,CAAC"}
@@ -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"}