oh-my-knowledge 0.29.0 → 0.30.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 (253) hide show
  1. package/README.md +12 -5
  2. package/README.zh.md +12 -5
  3. package/dist/src/analysis/report-diagnostics.js +2 -0
  4. package/dist/src/analysis/report-diagnostics.js.map +1 -1
  5. package/dist/src/authoring/evolver.d.ts +7 -1
  6. package/dist/src/authoring/evolver.d.ts.map +1 -1
  7. package/dist/src/authoring/evolver.js +8 -5
  8. package/dist/src/authoring/evolver.js.map +1 -1
  9. package/dist/src/authoring/generator.d.ts +21 -23
  10. package/dist/src/authoring/generator.d.ts.map +1 -1
  11. package/dist/src/authoring/generator.js +621 -40
  12. package/dist/src/authoring/generator.js.map +1 -1
  13. package/dist/src/authoring/sample-fixer.d.ts +45 -0
  14. package/dist/src/authoring/sample-fixer.d.ts.map +1 -0
  15. package/dist/src/authoring/sample-fixer.js +186 -0
  16. package/dist/src/authoring/sample-fixer.js.map +1 -0
  17. package/dist/src/cli/commands/evolve.d.ts.map +1 -1
  18. package/dist/src/cli/commands/evolve.js +17 -0
  19. package/dist/src/cli/commands/evolve.js.map +1 -1
  20. package/dist/src/cli/commands/observe.js +2 -1
  21. package/dist/src/cli/commands/observe.js.map +1 -1
  22. package/dist/src/cli/commands/sample.d.ts +13 -0
  23. package/dist/src/cli/commands/sample.d.ts.map +1 -1
  24. package/dist/src/cli/commands/sample.js +307 -13
  25. package/dist/src/cli/commands/sample.js.map +1 -1
  26. package/dist/src/cli/i18n-dict.d.ts +1 -1
  27. package/dist/src/cli/i18n-dict.d.ts.map +1 -1
  28. package/dist/src/cli/i18n-dict.js +64 -6
  29. package/dist/src/cli/i18n-dict.js.map +1 -1
  30. package/dist/src/cli/parse-run-config.d.ts +14 -2
  31. package/dist/src/cli/parse-run-config.d.ts.map +1 -1
  32. package/dist/src/cli/parse-run-config.js +62 -10
  33. package/dist/src/cli/parse-run-config.js.map +1 -1
  34. package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -1
  35. package/dist/src/doctor/health/builtin-dimensions.js +20 -23
  36. package/dist/src/doctor/health/builtin-dimensions.js.map +1 -1
  37. package/dist/src/doctor/health/composer.d.ts.map +1 -1
  38. package/dist/src/doctor/health/composer.js +7 -3
  39. package/dist/src/doctor/health/composer.js.map +1 -1
  40. package/dist/src/doctor/health/dimension-spec.d.ts +1 -0
  41. package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -1
  42. package/dist/src/doctor/health/parser.d.ts.map +1 -1
  43. package/dist/src/doctor/health/parser.js +1 -0
  44. package/dist/src/doctor/health/parser.js.map +1 -1
  45. package/dist/src/doctor/health/prompt-builder.js +25 -17
  46. package/dist/src/doctor/health/prompt-builder.js.map +1 -1
  47. package/dist/src/doctor/html-renderer.d.ts.map +1 -1
  48. package/dist/src/doctor/html-renderer.js +76 -66
  49. package/dist/src/doctor/html-renderer.js.map +1 -1
  50. package/dist/src/doctor/rules.d.ts.map +1 -1
  51. package/dist/src/doctor/rules.js +32 -0
  52. package/dist/src/doctor/rules.js.map +1 -1
  53. package/dist/src/eval-core/cache.d.ts +16 -2
  54. package/dist/src/eval-core/cache.d.ts.map +1 -1
  55. package/dist/src/eval-core/cache.js +86 -15
  56. package/dist/src/eval-core/cache.js.map +1 -1
  57. package/dist/src/eval-core/evaluation-execution.d.ts +11 -1
  58. package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
  59. package/dist/src/eval-core/evaluation-execution.js +78 -6
  60. package/dist/src/eval-core/evaluation-execution.js.map +1 -1
  61. package/dist/src/eval-core/evaluation-job.d.ts +2 -1
  62. package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
  63. package/dist/src/eval-core/evaluation-job.js +2 -1
  64. package/dist/src/eval-core/evaluation-job.js.map +1 -1
  65. package/dist/src/eval-core/evaluation-reporting.d.ts +7 -0
  66. package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
  67. package/dist/src/eval-core/evaluation-reporting.js +19 -2
  68. package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
  69. package/dist/src/eval-core/execution-strategy.d.ts +1 -1
  70. package/dist/src/eval-core/execution-strategy.d.ts.map +1 -1
  71. package/dist/src/eval-core/execution-strategy.js +12 -1
  72. package/dist/src/eval-core/execution-strategy.js.map +1 -1
  73. package/dist/src/eval-core/mock-hook.cjs +203 -0
  74. package/dist/src/eval-core/mocks-runtime.d.ts +96 -0
  75. package/dist/src/eval-core/mocks-runtime.d.ts.map +1 -0
  76. package/dist/src/eval-core/mocks-runtime.js +323 -0
  77. package/dist/src/eval-core/mocks-runtime.js.map +1 -0
  78. package/dist/src/eval-core/schema.d.ts.map +1 -1
  79. package/dist/src/eval-core/schema.js +18 -5
  80. package/dist/src/eval-core/schema.js.map +1 -1
  81. package/dist/src/eval-core/task-planner.d.ts +9 -1
  82. package/dist/src/eval-core/task-planner.d.ts.map +1 -1
  83. package/dist/src/eval-core/task-planner.js +40 -1
  84. package/dist/src/eval-core/task-planner.js.map +1 -1
  85. package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +5 -1
  86. package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -1
  87. package/dist/src/eval-workflows/batch-evaluation-workflow.js +2 -1
  88. package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -1
  89. package/dist/src/eval-workflows/evaluation-pipeline.d.ts +22 -1
  90. package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
  91. package/dist/src/eval-workflows/evaluation-pipeline.js +39 -12
  92. package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
  93. package/dist/src/eval-workflows/evaluation-preparation.d.ts +5 -0
  94. package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
  95. package/dist/src/eval-workflows/evaluation-preparation.js +3 -1
  96. package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
  97. package/dist/src/eval-workflows/run-evaluation.d.ts +12 -2
  98. package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
  99. package/dist/src/eval-workflows/run-evaluation.js +17 -5
  100. package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
  101. package/dist/src/executors/claude-cli.d.ts +1 -1
  102. package/dist/src/executors/claude-cli.d.ts.map +1 -1
  103. package/dist/src/executors/claude-cli.js +57 -6
  104. package/dist/src/executors/claude-cli.js.map +1 -1
  105. package/dist/src/executors/claude-sdk-trace.d.ts.map +1 -1
  106. package/dist/src/executors/claude-sdk-trace.js +10 -4
  107. package/dist/src/executors/claude-sdk-trace.js.map +1 -1
  108. package/dist/src/executors/claude-sdk.d.ts +1 -1
  109. package/dist/src/executors/claude-sdk.d.ts.map +1 -1
  110. package/dist/src/executors/claude-sdk.js +25 -2
  111. package/dist/src/executors/claude-sdk.js.map +1 -1
  112. package/dist/src/executors/shared.d.ts +1 -1
  113. package/dist/src/executors/shared.d.ts.map +1 -1
  114. package/dist/src/executors/shared.js +6 -1
  115. package/dist/src/executors/shared.js.map +1 -1
  116. package/dist/src/grading/assertions.d.ts +5 -0
  117. package/dist/src/grading/assertions.d.ts.map +1 -1
  118. package/dist/src/grading/assertions.js +27 -1
  119. package/dist/src/grading/assertions.js.map +1 -1
  120. package/dist/src/grading/diagnostic.d.ts +40 -0
  121. package/dist/src/grading/diagnostic.d.ts.map +1 -0
  122. package/dist/src/grading/diagnostic.js +450 -0
  123. package/dist/src/grading/diagnostic.js.map +1 -0
  124. package/dist/src/grading/index.d.ts +5 -0
  125. package/dist/src/grading/index.d.ts.map +1 -1
  126. package/dist/src/grading/judge.d.ts.map +1 -1
  127. package/dist/src/grading/judge.js +54 -2
  128. package/dist/src/grading/judge.js.map +1 -1
  129. package/dist/src/grading/layered-scores.d.ts.map +1 -1
  130. package/dist/src/grading/layered-scores.js +1 -0
  131. package/dist/src/grading/layered-scores.js.map +1 -1
  132. package/dist/src/inputs/eval-config.js +19 -0
  133. package/dist/src/inputs/eval-config.js.map +1 -1
  134. package/dist/src/inputs/load-samples.d.ts +22 -2
  135. package/dist/src/inputs/load-samples.d.ts.map +1 -1
  136. package/dist/src/inputs/load-samples.js +193 -22
  137. package/dist/src/inputs/load-samples.js.map +1 -1
  138. package/dist/src/inputs/skill-loader.d.ts.map +1 -1
  139. package/dist/src/inputs/skill-loader.js +11 -3
  140. package/dist/src/inputs/skill-loader.js.map +1 -1
  141. package/dist/src/observability/experience.d.ts +260 -0
  142. package/dist/src/observability/experience.d.ts.map +1 -0
  143. package/dist/src/observability/experience.js +1233 -0
  144. package/dist/src/observability/experience.js.map +1 -0
  145. package/dist/src/observability/inbox-view-model.d.ts +11 -1
  146. package/dist/src/observability/inbox-view-model.d.ts.map +1 -1
  147. package/dist/src/observability/inbox-view-model.js +76 -3
  148. package/dist/src/observability/inbox-view-model.js.map +1 -1
  149. package/dist/src/observability/inbox.d.ts +27 -2
  150. package/dist/src/observability/inbox.d.ts.map +1 -1
  151. package/dist/src/observability/inbox.js +46 -8
  152. package/dist/src/observability/inbox.js.map +1 -1
  153. package/dist/src/observability/problem-patterns.d.ts +51 -0
  154. package/dist/src/observability/problem-patterns.d.ts.map +1 -0
  155. package/dist/src/observability/problem-patterns.js +205 -0
  156. package/dist/src/observability/problem-patterns.js.map +1 -0
  157. package/dist/src/observability/review-state.d.ts +54 -0
  158. package/dist/src/observability/review-state.d.ts.map +1 -0
  159. package/dist/src/observability/review-state.js +131 -0
  160. package/dist/src/observability/review-state.js.map +1 -0
  161. package/dist/src/observability/skill-chain-advisories.d.ts +25 -0
  162. package/dist/src/observability/skill-chain-advisories.d.ts.map +1 -0
  163. package/dist/src/observability/skill-chain-advisories.js +69 -0
  164. package/dist/src/observability/skill-chain-advisories.js.map +1 -0
  165. package/dist/src/observability/skill-chain.d.ts +61 -0
  166. package/dist/src/observability/skill-chain.d.ts.map +1 -0
  167. package/dist/src/observability/skill-chain.js +233 -0
  168. package/dist/src/observability/skill-chain.js.map +1 -0
  169. package/dist/src/observability/text-signals.d.ts +7 -0
  170. package/dist/src/observability/text-signals.d.ts.map +1 -0
  171. package/dist/src/observability/text-signals.js +22 -0
  172. package/dist/src/observability/text-signals.js.map +1 -0
  173. package/dist/src/observability/trace-adapter.d.ts +1 -1
  174. package/dist/src/observability/trace-adapter.d.ts.map +1 -1
  175. package/dist/src/observability/trace-adapter.js +1 -1
  176. package/dist/src/observability/trace-adapter.js.map +1 -1
  177. package/dist/src/observability/trace-attribution.d.ts +29 -1
  178. package/dist/src/observability/trace-attribution.d.ts.map +1 -1
  179. package/dist/src/observability/trace-attribution.js +106 -10
  180. package/dist/src/observability/trace-attribution.js.map +1 -1
  181. package/dist/src/observability/trace-segmenter.d.ts +11 -1
  182. package/dist/src/observability/trace-segmenter.d.ts.map +1 -1
  183. package/dist/src/observability/trace-segmenter.js +117 -28
  184. package/dist/src/observability/trace-segmenter.js.map +1 -1
  185. package/dist/src/observability/trace-source.d.ts +28 -1
  186. package/dist/src/observability/trace-source.d.ts.map +1 -1
  187. package/dist/src/observability/trace-source.js +356 -6
  188. package/dist/src/observability/trace-source.js.map +1 -1
  189. package/dist/src/renderer/html-renderer.d.ts.map +1 -1
  190. package/dist/src/renderer/html-renderer.js +229 -171
  191. package/dist/src/renderer/html-renderer.js.map +1 -1
  192. package/dist/src/renderer/layout.d.ts.map +1 -1
  193. package/dist/src/renderer/layout.js +108 -61
  194. package/dist/src/renderer/layout.js.map +1 -1
  195. package/dist/src/renderer/observation-inbox-renderer.d.ts.map +1 -1
  196. package/dist/src/renderer/observation-inbox-renderer.js +4567 -91
  197. package/dist/src/renderer/observation-inbox-renderer.js.map +1 -1
  198. package/dist/src/renderer/skill-detail-renderer.d.ts +15 -0
  199. package/dist/src/renderer/skill-detail-renderer.d.ts.map +1 -0
  200. package/dist/src/renderer/skill-detail-renderer.js +1234 -0
  201. package/dist/src/renderer/skill-detail-renderer.js.map +1 -0
  202. package/dist/src/renderer/skill-list-renderer.d.ts +4 -0
  203. package/dist/src/renderer/skill-list-renderer.d.ts.map +1 -0
  204. package/dist/src/renderer/skill-list-renderer.js +327 -0
  205. package/dist/src/renderer/skill-list-renderer.js.map +1 -0
  206. package/dist/src/renderer/summary.d.ts.map +1 -1
  207. package/dist/src/renderer/summary.js +78 -50
  208. package/dist/src/renderer/summary.js.map +1 -1
  209. package/dist/src/renderer/table.d.ts.map +1 -1
  210. package/dist/src/renderer/table.js +213 -167
  211. package/dist/src/renderer/table.js.map +1 -1
  212. package/dist/src/renderer/test-view.d.ts +66 -0
  213. package/dist/src/renderer/test-view.d.ts.map +1 -0
  214. package/dist/src/renderer/test-view.js +905 -0
  215. package/dist/src/renderer/test-view.js.map +1 -0
  216. package/dist/src/server/report-server.d.ts +4 -1
  217. package/dist/src/server/report-server.d.ts.map +1 -1
  218. package/dist/src/server/report-server.js +149 -4
  219. package/dist/src/server/report-server.js.map +1 -1
  220. package/dist/src/server/report-store.d.ts.map +1 -1
  221. package/dist/src/server/report-store.js +33 -1
  222. package/dist/src/server/report-store.js.map +1 -1
  223. package/dist/src/server/skill-index.d.ts +77 -0
  224. package/dist/src/server/skill-index.d.ts.map +1 -0
  225. package/dist/src/server/skill-index.js +331 -0
  226. package/dist/src/server/skill-index.js.map +1 -0
  227. package/dist/src/server/skill-insights.d.ts +92 -0
  228. package/dist/src/server/skill-insights.d.ts.map +1 -0
  229. package/dist/src/server/skill-insights.js +676 -0
  230. package/dist/src/server/skill-insights.js.map +1 -0
  231. package/dist/src/shared/hard-rules.d.ts +40 -0
  232. package/dist/src/shared/hard-rules.d.ts.map +1 -0
  233. package/dist/src/shared/hard-rules.js +200 -0
  234. package/dist/src/shared/hard-rules.js.map +1 -0
  235. package/dist/src/shared/time.d.ts +2 -0
  236. package/dist/src/shared/time.d.ts.map +1 -0
  237. package/dist/src/shared/time.js +10 -0
  238. package/dist/src/shared/time.js.map +1 -0
  239. package/dist/src/types/eval.d.ts +83 -0
  240. package/dist/src/types/eval.d.ts.map +1 -1
  241. package/dist/src/types/executor.d.ts +43 -0
  242. package/dist/src/types/executor.d.ts.map +1 -1
  243. package/dist/src/types/judge.d.ts +76 -0
  244. package/dist/src/types/judge.d.ts.map +1 -1
  245. package/dist/src/types/judge.js +3 -1
  246. package/dist/src/types/judge.js.map +1 -1
  247. package/dist/src/types/report.d.ts +63 -3
  248. package/dist/src/types/report.d.ts.map +1 -1
  249. package/dist/src/util/safe-slice.d.ts +23 -0
  250. package/dist/src/util/safe-slice.d.ts.map +1 -0
  251. package/dist/src/util/safe-slice.js +33 -0
  252. package/dist/src/util/safe-slice.js.map +1 -0
  253. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../../src/doctor/health/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,MAAM,UAAU,iBAAiB,CAAC,KAAkB,EAAE,IAA2B;IAC/E,OAAO;QACL,kBAAkB,CAAC,KAAK,CAAC;QACzB,sBAAsB,CAAC,IAAI,CAAC;QAC5B,uBAAuB,EAAE;QACzB,sBAAsB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;KAC9C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,KAAkB;IAC5C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QAC1C,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;QACtC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,qCAAqC,CAAC;IAC1C,MAAM,aAAa,GAAG,SAAS;QAC7B,CAAC,CAAC,gBAAgB,SAAS,uBAAuB;QAClD,CAAC,CAAC,6BAA6B,CAAC;IAElC,OAAO,UAAU,SAAS;;;;eAIb,SAAS;IACpB,aAAa;;EAEf,YAAY;;;;EAIZ,WAAW;;;;;EAKX,YAAY;OACP,CAAC;AACR,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,sBAAsB,CAAC,IAA2B;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACpB,OAAO,MAAM,GAAG,KAAK,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,EAAE;EACvD,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO;;EAEP,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4Be,CAAC;AACzB,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,SAAS,sBAAsB,CAAC,SAAiB,EAAE,IAA2B;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO;;;;;mBAKU,SAAS;;;;;;;;;;;;;;;;;;;kBAmBV,SAAS;;;;;;;;;;;;;;;;;;;;;2BAqBA,IAAI,CAAC,MAAM;IAClC,SAAS;;;;;;;qCAOwB,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../../src/doctor/health/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,MAAM,UAAU,iBAAiB,CAAC,KAAkB,EAAE,IAA2B;IAC/E,OAAO;QACL,kBAAkB,CAAC,KAAK,CAAC;QACzB,sBAAsB,CAAC,IAAI,CAAC;QAC5B,uBAAuB,EAAE;QACzB,sBAAsB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;KAC9C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,KAAkB;IAC5C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QAC1C,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;QACtC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,qCAAqC,CAAC;IAC1C,MAAM,aAAa,GAAG,SAAS;QAC7B,CAAC,CAAC,gBAAgB,SAAS,uBAAuB;QAClD,CAAC,CAAC,6BAA6B,CAAC;IAElC,OAAO,UAAU,SAAS;;;;eAIb,SAAS;IACpB,aAAa;;EAEf,YAAY;;;;EAIZ,WAAW;;;;;EAKX,YAAY;OACP,CAAC;AACR,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,sBAAsB,CAAC,IAA2B;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACpB,OAAO,MAAM,GAAG,KAAK,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,EAAE;EACvD,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO;;EAEP,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAqCe,CAAC;AACzB,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,SAAS,sBAAsB,CAAC,SAAiB,EAAE,IAA2B;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO;;;;;mBAKU,SAAS;;;;;;;;;;;;;;;;;;;kBAmBV,SAAS;;;;;;;;;;;;;;;;;;;;2BAoBA,IAAI,CAAC,MAAM;IAClC,SAAS;;;;;;;qCAOwB,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"html-renderer.d.ts","sourceRoot":"","sources":["../../../src/doctor/html-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAsVpD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,OAAc,GAAG,MAAM,CA0BzF"}
1
+ {"version":3,"file":"html-renderer.d.ts","sourceRoot":"","sources":["../../../src/doctor/html-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAgWpD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,OAAc,GAAG,MAAM,CA0BzF"}
@@ -195,124 +195,134 @@ function renderHeader(report, lang) {
195
195
  </header>`;
196
196
  }
197
197
  const CSS = `
198
+ /* doctor 报告 — 跟 omk studio 主页面用同一套潘通哑色调浅色主题。
199
+ 之前是孤立的 CSS 块(自带荧光红绿黄),v0.30 起统一,跨页一致。 */
198
200
  :root {
199
- --c-fail: #dc2626; --c-warn: #d97706; --c-pass: #16a34a; --c-skip: #6b7280;
200
- --c-fail-bg: #fee2e2; --c-warn-bg: #fef3c7; --c-pass-bg: #dcfce7; --c-skip-bg: #f3f4f6;
201
- --c-bg: #fafafa; --c-card: #fff; --c-border: #e5e7eb; --c-text: #111;
202
- --c-muted: #6b7280;
201
+ --c-fail: #9c4a3f; --c-warn: #b08030; --c-pass: #5e8252; --c-skip: #a8a8a8;
202
+ --c-fail-bg: rgba(156,74,63,.10); --c-warn-bg: rgba(176,128,48,.10);
203
+ --c-pass-bg: rgba(94,130,82,.10); --c-skip-bg: rgba(58,58,58,.04);
204
+ --c-bg: #fbfaf7; --c-card: #ffffff; --c-border: #e8e3da; --c-text: #3a3a3a;
205
+ --c-muted: #7a7a7a; --c-soft: rgba(58,58,58,.04);
206
+ --c-shadow: 0 1px 3px rgba(58,58,58,.06);
207
+ --c-shadow-md: 0 2px 8px rgba(58,58,58,.10);
203
208
  }
204
209
  * { box-sizing: border-box; }
205
- body { font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
210
+ body { font: 14.5px/1.7 -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
206
211
  color: var(--c-text); background: var(--c-bg); margin: 0; padding: 0; }
207
- code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em;
208
- background: #f5f5f5; padding: 1px 4px; border-radius: 3px; }
209
- .container { max-width: 1100px; margin: 0 auto; padding: 24px; }
212
+ code { font-family: "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace; font-size: 13px;
213
+ background: var(--c-soft); padding: 2px 6px; border-radius: 3px; color: var(--c-text); }
214
+ .container { max-width: 1100px; margin: 0 auto; padding: 32px 24px; }
210
215
 
211
- .report-head { background: var(--c-card); padding: 20px 24px; border-radius: 8px;
212
- box-shadow: 0 1px 3px rgba(0,0,0,.08); margin-bottom: 20px; }
213
- .report-head h1 { margin: 0 0 8px; font-size: 22px; }
214
- .report-head .meta { display: flex; gap: 16px; flex-wrap: wrap; color: var(--c-muted); font-size: 13px; }
215
- .outcome { font-weight: 600; padding: 2px 10px; border-radius: 4px; }
216
+ .report-head { background: var(--c-card); padding: 22px 26px; border-radius: 8px;
217
+ box-shadow: var(--c-shadow); margin-bottom: 24px; }
218
+ .report-head h1 { margin: 0 0 10px; font-size: 22px; font-weight: 600; line-height: 1.3; }
219
+ .report-head .meta { display: flex; gap: 18px; flex-wrap: wrap; color: var(--c-muted); font-size: 13px; }
220
+ .outcome { font-weight: 600; padding: 3px 12px; border-radius: 4px; font-size: 13px; }
216
221
  .outcome-failed { color: var(--c-fail); background: var(--c-fail-bg); }
217
222
  .outcome-warnings_only { color: var(--c-warn); background: var(--c-warn-bg); }
218
223
  .outcome-passed { color: var(--c-pass); background: var(--c-pass-bg); }
219
224
 
220
- .skill { background: var(--c-card); border-radius: 8px; padding: 20px 24px;
221
- margin-bottom: 16px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
222
- .skill-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px;
223
- border-bottom: 1px solid var(--c-border); padding-bottom: 12px; }
224
- .skill-head h1 { margin: 0; font-size: 18px; }
225
- .skill-status { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; }
225
+ .skill { background: var(--c-card); border-radius: 8px; padding: 22px 26px;
226
+ margin-bottom: 16px; box-shadow: var(--c-shadow); }
227
+ .skill-head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px;
228
+ border-bottom: 1px solid var(--c-border); padding-bottom: 14px; }
229
+ .skill-head h1 { margin: 0; font-size: 18px; font-weight: 600; }
230
+ .skill-status { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 4px; letter-spacing: 0.02em; }
226
231
  .skill-fail .skill-status { background: var(--c-fail-bg); color: var(--c-fail); }
227
232
  .skill-warn .skill-status { background: var(--c-warn-bg); color: var(--c-warn); }
228
233
  .skill-pass .skill-status { background: var(--c-pass-bg); color: var(--c-pass); }
229
- .skill-path { font-family: ui-monospace, monospace; color: var(--c-muted); font-size: 12px; }
234
+ .skill-path { font-family: "SF Mono", Menlo, monospace; color: var(--c-muted); font-size: 12px; }
230
235
 
231
236
  .static-rules { margin-bottom: 16px; }
232
- .rule-row { padding: 8px 12px; border-left: 3px solid; margin-bottom: 4px;
233
- background: #fafafa; border-radius: 0 4px 4px 0; }
237
+ .rule-row { padding: 10px 14px; border-left: 3px solid; margin-bottom: 6px;
238
+ background: var(--c-soft); border-radius: 0 4px 4px 0; font-size: 14px; line-height: 1.6; }
234
239
  .rule-row.status-fail { border-color: var(--c-fail); }
235
240
  .rule-row.status-warn { border-color: var(--c-warn); }
236
241
  .rule-row.status-pass { border-color: var(--c-pass); }
237
242
  .rule-row.status-skipped { border-color: var(--c-skip); }
238
- .rule-status { font-weight: 700; font-size: 11px; margin-right: 8px; }
243
+ .rule-status { font-weight: 600; font-size: 12px; margin-right: 8px; letter-spacing: 0.02em; }
239
244
  .rule-row.status-fail .rule-status { color: var(--c-fail); }
240
245
  .rule-row.status-warn .rule-status { color: var(--c-warn); }
241
246
  .rule-row.status-pass .rule-status { color: var(--c-pass); }
242
247
  .rule-row.status-skipped .rule-status { color: var(--c-skip); }
243
248
  .rule-label { font-weight: 600; margin-right: 8px; }
244
249
  .rule-msg { color: var(--c-muted); }
245
- .rule-hint { margin-top: 4px; font-size: 12px; color: var(--c-muted); }
250
+ .rule-hint { margin-top: 6px; font-size: 13px; color: var(--c-muted); line-height: 1.6; }
246
251
 
247
- .group { margin-top: 20px; padding: 16px; background: #f9fafb; border-radius: 6px; }
248
- .group-head h2 { margin: 0 0 6px; font-size: 16px; }
249
- .group-overall { font-size: 12px; padding: 2px 8px; border-radius: 4px;
250
- background: var(--c-fail-bg); color: var(--c-fail); margin-left: 8px; }
251
- .group-totals { display: flex; gap: 16px; color: var(--c-muted); font-size: 12px; margin-bottom: 12px; }
252
- .group-top { background: #fff7ed; border-left: 4px solid var(--c-warn); padding: 12px 16px;
253
- border-radius: 0 4px 4px 0; margin-bottom: 12px; }
254
- .group-top .top-title { font-weight: 600; margin-bottom: 4px; }
255
- .group-top ol { margin: 0; padding-left: 20px; }
252
+ .group { margin-top: 24px; padding: 18px; background: var(--c-soft); border-radius: 6px; }
253
+ .group-head h2 { margin: 0 0 8px; font-size: 16px; font-weight: 600; }
254
+ .group-overall { font-size: 12px; padding: 3px 10px; border-radius: 4px;
255
+ background: var(--c-fail-bg); color: var(--c-fail); margin-left: 8px; font-weight: 600; }
256
+ .group-totals { display: flex; gap: 18px; color: var(--c-muted); font-size: 13px; margin-bottom: 14px; }
257
+ .group-top { background: var(--c-warn-bg); border-left: 4px solid var(--c-warn); padding: 14px 18px;
258
+ border-radius: 0 4px 4px 0; margin-bottom: 14px; font-size: 14px; line-height: 1.7; }
259
+ .group-top .top-title { font-weight: 600; margin-bottom: 6px; color: var(--c-warn); }
260
+ .group-top ol { margin: 0; padding-left: 22px; }
256
261
 
257
- .filter-pills { display: flex; gap: 6px; margin: 12px 0; }
258
- .pill { border: 1px solid var(--c-border); background: #fff; padding: 4px 12px;
259
- border-radius: 999px; cursor: pointer; font-size: 12px; }
260
- .pill.active { background: var(--c-text); color: #fff; border-color: var(--c-text); }
262
+ .filter-pills { display: flex; gap: 6px; margin: 14px 0; }
263
+ .pill { border: 1px solid var(--c-border); background: var(--c-card); padding: 6px 14px;
264
+ border-radius: 999px; cursor: pointer; font-size: 13px; color: var(--c-muted);
265
+ font-family: inherit; outline: none; appearance: none; -webkit-appearance: none;
266
+ transition: border-color .15s, color .15s, background .15s; }
267
+ .pill:hover { color: var(--c-text); border-color: var(--c-muted); }
268
+ .pill.active { background: var(--c-text); color: var(--c-card); border-color: var(--c-text); }
261
269
 
262
- .dim-grid { display: grid; gap: 8px; }
263
- .dim-card { background: #fff; border: 1px solid var(--c-border); border-left-width: 4px;
270
+ .dim-grid { display: grid; gap: 10px; }
271
+ .dim-card { background: var(--c-card); border: 1px solid var(--c-border); border-left-width: 4px;
264
272
  border-radius: 6px; transition: box-shadow .15s; }
265
- .dim-card:hover { box-shadow: 0 2px 6px rgba(0,0,0,.06); }
273
+ .dim-card:hover { box-shadow: var(--c-shadow-md); }
266
274
  .dim-card.status-fail { border-left-color: var(--c-fail); }
267
275
  .dim-card.status-warn { border-left-color: var(--c-warn); }
268
276
  .dim-card.status-pass { border-left-color: var(--c-pass); }
269
277
  .dim-card.status-skipped { border-left-color: var(--c-skip); }
270
- .dim-head { display: flex; align-items: center; gap: 12px; padding: 12px 16px;
278
+ .dim-head { display: flex; align-items: center; gap: 12px; padding: 14px 18px;
271
279
  cursor: pointer; user-select: none; }
272
- .dim-status { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px;
273
- background: #f3f4f6; }
280
+ .dim-status { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 4px;
281
+ background: var(--c-soft); letter-spacing: 0.02em; }
274
282
  .status-fail .dim-status { background: var(--c-fail-bg); color: var(--c-fail); }
275
283
  .status-warn .dim-status { background: var(--c-warn-bg); color: var(--c-warn); }
276
284
  .status-pass .dim-status { background: var(--c-pass-bg); color: var(--c-pass); }
277
285
  .status-skipped .dim-status { background: var(--c-skip-bg); color: var(--c-skip); }
278
- .dim-name { font-weight: 600; flex: 1; }
286
+ .dim-name { font-weight: 600; flex: 1; font-size: 14.5px; }
279
287
  .dim-counts { display: flex; gap: 4px; }
280
- .badge { font-size: 11px; padding: 1px 6px; border-radius: 3px; min-width: 18px;
281
- text-align: center; font-weight: 600; }
288
+ .badge { font-size: 12px; padding: 2px 8px; border-radius: 3px; min-width: 20px;
289
+ text-align: center; font-weight: 600; font-variant-numeric: tabular-nums; }
282
290
  .badge-err { background: var(--c-fail-bg); color: var(--c-fail); }
283
291
  .badge-warn { background: var(--c-warn-bg); color: var(--c-warn); }
284
- .badge-sug { background: #f3f4f6; color: var(--c-muted); }
285
- .dim-toggle { color: var(--c-muted); transition: transform .15s; }
292
+ .badge-sug { background: var(--c-soft); color: var(--c-muted); }
293
+ .dim-toggle { color: var(--c-muted); transition: transform .15s; font-size: 18px; }
286
294
  .dim-card.open .dim-toggle { transform: rotate(90deg); }
287
295
 
288
- .dim-body { display: none; padding: 0 16px 16px; border-top: 1px solid var(--c-border); }
296
+ .dim-body { display: none; padding: 0 18px 18px; border-top: 1px solid var(--c-border); }
289
297
  .dim-card.open .dim-body { display: block; }
290
- .dim-missing { background: var(--c-warn-bg); color: var(--c-warn); padding: 8px 12px;
291
- border-radius: 4px; margin: 12px 0; font-size: 13px; }
298
+ .dim-missing { background: var(--c-warn-bg); color: var(--c-warn); padding: 10px 14px;
299
+ border-radius: 4px; margin: 14px 0; font-size: 14px; line-height: 1.7; }
292
300
 
293
- .dim-findings { margin-top: 12px; }
294
- .finding { margin-bottom: 8px; padding: 10px 12px; border-radius: 4px; background: #fafafa;
295
- border-left: 3px solid; }
301
+ .dim-findings { margin-top: 14px; }
302
+ .finding { margin-bottom: 10px; padding: 12px 14px; border-radius: 4px; background: var(--c-soft);
303
+ border-left: 3px solid; line-height: 1.7; }
296
304
  .finding-err { border-color: var(--c-fail); }
297
305
  .finding-warn { border-color: var(--c-warn); }
298
306
  .finding-sug { border-color: var(--c-skip); }
299
307
  .finding-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
300
- .finding-level { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 3px; }
308
+ .finding-level { font-size: 12px; font-weight: 600; padding: 2px 10px; border-radius: 3px; letter-spacing: 0.02em; }
301
309
  .finding-err .finding-level { background: var(--c-fail-bg); color: var(--c-fail); }
302
310
  .finding-warn .finding-level { background: var(--c-warn-bg); color: var(--c-warn); }
303
- .finding-sug .finding-level { background: #f3f4f6; color: var(--c-muted); }
304
- .finding-subtype { font-size: 11px; padding: 1px 8px; background: #fff; border: 1px solid var(--c-border);
305
- border-radius: 3px; color: var(--c-muted); }
306
- .finding-desc { flex: 1; }
307
- .finding-evidence { margin-top: 4px; font-family: ui-monospace, monospace; font-size: 12px;
308
- color: var(--c-muted); padding-left: 8px; border-left: 2px solid var(--c-border); }
311
+ .finding-sug .finding-level { background: var(--c-soft); color: var(--c-muted); }
312
+ .finding-subtype { font-size: 12px; padding: 2px 10px; background: var(--c-card); border: 1px solid var(--c-border);
313
+ border-radius: 3px; color: var(--c-muted); font-family: "SF Mono", Menlo, monospace; }
314
+ .finding-desc { flex: 1; font-size: 14px; }
315
+ .finding-evidence { margin-top: 6px; font-family: "SF Mono", Menlo, monospace; font-size: 12.5px;
316
+ color: var(--c-muted); padding: 6px 10px; background: var(--c-card); border-radius: 3px;
317
+ border-left: 2px solid var(--c-border); line-height: 1.6; }
309
318
 
310
- .dim-sugs { margin-top: 12px; padding: 8px 12px; background: #f0f9ff; border-radius: 4px; }
311
- .dim-sugs .sugs-title { font-weight: 600; font-size: 12px; color: var(--c-muted); margin-bottom: 4px; }
312
- .dim-sugs ul { margin: 0; padding-left: 20px; }
313
- .dim-sugs li { font-size: 13px; }
319
+ .dim-sugs { margin-top: 14px; padding: 12px 16px; background: rgba(90,122,147,.06); border-radius: 4px;
320
+ border-left: 3px solid #5a7a93; }
321
+ .dim-sugs .sugs-title { font-weight: 600; font-size: 13px; color: #5a7a93; margin-bottom: 6px; letter-spacing: 0.02em; }
322
+ .dim-sugs ul { margin: 0; padding-left: 22px; }
323
+ .dim-sugs li { font-size: 14px; line-height: 1.7; margin: 4px 0; }
314
324
 
315
- .empty { color: var(--c-muted); font-style: italic; padding: 8px 0; }
325
+ .empty { color: var(--c-muted); font-style: italic; padding: 10px 0; font-size: 14px; }
316
326
  `;
317
327
  const JS = `
318
328
  (function() {
@@ -1 +1 @@
1
- {"version":3,"file":"html-renderer.js","sourceRoot":"","sources":["../../../src/doctor/html-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-renderer.js","sourceRoot":"","sources":["../../../src/doctor/html-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAE,QAAQ,EAAsB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAgB,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,GAAqC;IACpD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;CACtC,CAAC;AACF,MAAM,YAAY,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAE3E,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,MAAwB,EAAE,IAAa;IAC1D,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAyB,EAAE,IAAI,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AASD,SAAS,YAAY,CAAC,CAAmB;IACvC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,QAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9C,CAAC,CAAE,CAAC,CAAC,WAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnG,WAAW;QACX,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACxD,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAA+B;IAGvD,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IACtD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC9D,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;YAC7C,CAAC,CAAE,CAAC,CAAC,cAA4B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YACnF,CAAC,CAAC,EAAE;QACN,mBAAmB,EAAE,OAAO,CAAC,CAAC,mBAAmB,KAAK,QAAQ,IAAI,CAAC,CAAC,mBAAmB,KAAK,IAAI;YAC9F,CAAC,CAAC,CAAC,CAAC,mBAA6C;YACjD,CAAC,CAAC,SAAS;QACb,mBAAmB,EAAE,OAAO,CAAC,CAAC,mBAAmB,KAAK,QAAQ,IAAI,CAAC,CAAC,mBAAmB,KAAK,IAAI;YAC9F,CAAC,CAAC,CAAC,CAAC,mBAA6C;YACjD,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,CAAmB,EAAE,IAAa;IACvD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC/C,CAAC,CAAC,sBAAsB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,QAAQ;QAC3E,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oCACG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;;wCAExD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;uCACrD,UAAU,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;;UAE5D,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;aAC9E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;gCAE1B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa;YACxD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;WACpE,CAAC;IACV,MAAM,SAAS,GAAI,CAAC,CAAC,MAA+C,EAAE,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClH,OAAO;kCACyB,MAAM,kBAAkB,MAAM,iBAAiB,UAAU,CAAC,SAAS,CAAC;;mCAEnE,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC;iCACpC,UAAU,CAAC,KAAK,CAAC;;0CAER,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM;2CACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM;0CACvD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM;;;;;UAKtF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oCACvD,YAAY;UACtC,QAAQ;;WAEP,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAmB,EAAE,IAAa;IAC1D,OAAO;kCACyB,CAAC,CAAC,MAAM;kCACR,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE;iCACvB,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;+BAClC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;WAClE,CAAC;AACZ,CAAC;AAQD,SAAS,mBAAmB,CAAC,KAAsC;IACjE,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAClD,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,EAAE,CAAC;YAAC,GAAG,GAAG,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,OAA2B,EAAE,IAAa;IAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB;QAC3E,CAAC,CAAC;gBACU,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC;2BAClM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;cACzI;QACV,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;iCAEhC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB;YACnE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;WACxE,CAAC;IACV,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO;yCACgC,UAAU,CAAC,OAAO,CAAC;;cAE9C,UAAU,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;UACxH,UAAU;;QAEZ,WAAW;;wDAEqC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;kDAClC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;kDACnC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;kDACnC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;qDAChC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;;8BAEvD,SAAS;eACxB,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAA4F,EAAE,IAAa;IAC9H,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/G,OAAO;kCACyB,KAAK,CAAC,MAAM;;cAEhC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;qCACJ,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;mCAC5B,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;;QAEtD,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,6BAA6B,UAAU,QAAQ,CAAC,CAAC,CAAC,EAAE;QACjF,UAAU;eACH,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB,EAAE,IAAa;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3B,OAAO;;YAEG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gCAAgC;;uCAElC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;gBACtE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;gBAC7E,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC3D,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;0BAC5C,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;;cAEzE,CAAC;AACf,CAAC;AAED,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiIX,CAAC;AAEF,MAAM,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBV,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,MAAoB,EAAE,OAAgB,IAAI;IAC/E,iDAAiD;IACjD,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,IAAI,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gCAAgC,CAAC;IACrF,OAAO;cACK,IAAI;;;;SAIT,UAAU,CAAC,KAAK,CAAC;SACjB,GAAG;;;;EAIV,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;EAC1B,UAAU;;0DAE8C,UAAU,CAAC,UAAU,CAAC;UACtE,EAAE;;QAEJ,CAAC;AACT,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAGf,MAAM,oBAAoB,CAAC;AA8D5B,eAAO,MAAM,iBAAiB,EAAE,UA0C/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAiC/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,UAuCrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,UAkCxC,CAAC;AAMF;8DAC8D;AAC9D,eAAO,MAAM,aAAa,EAAE,UAAU,EAKrC,CAAC;AAKF,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAKvD;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAGf,MAAM,oBAAoB,CAAC;AA8D5B,eAAO,MAAM,iBAAiB,EAAE,UA0C/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAgE/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,UAuCrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,UAkCxC,CAAC;AAMF;8DAC8D;AAC9D,eAAO,MAAM,aAAa,EAAE,UAAU,EAKrC,CAAC;AAKF,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAKvD;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -22,6 +22,7 @@ import { join } from 'node:path';
22
22
  import yaml from 'js-yaml';
23
23
  import { tCli } from '../cli/i18n.js';
24
24
  import { preflightDependencies } from '../eval-core/dependency-checker.js';
25
+ import { validateSkillHardRules, validateSkillWorkflows } from '../shared/hard-rules.js';
25
26
  /** 用 js-yaml 真正解析 front-matter。能抓 unterminated string、非法缩进、
26
27
  * duplicate key 等手写 pattern check 漏掉的 case。 */
27
28
  function checkFrontmatter(content) {
@@ -146,9 +147,40 @@ export const skillMetadataRule = {
146
147
  detail: { error: fmCheck.error },
147
148
  };
148
149
  }
150
+ const hardRulesCheck = validateSkillHardRules(content);
151
+ if (!hardRulesCheck.ok) {
152
+ return {
153
+ status: 'fail',
154
+ message: tCli('cli.doctor.skill_metadata.fail.hardrules_invalid', ctx.lang, { error: hardRulesCheck.errors.join('; ') }),
155
+ hint: tCli('cli.doctor.skill_metadata.hint.hardrules', ctx.lang),
156
+ detail: {
157
+ errors: hardRulesCheck.errors,
158
+ declared: hardRulesCheck.declared,
159
+ },
160
+ };
161
+ }
162
+ const workflowsCheck = validateSkillWorkflows(content);
163
+ if (!workflowsCheck.ok) {
164
+ return {
165
+ status: 'fail',
166
+ message: tCli('cli.doctor.skill_metadata.fail.workflows_invalid', ctx.lang, { error: workflowsCheck.errors.join('; ') }),
167
+ hint: tCli('cli.doctor.skill_metadata.hint.workflows', ctx.lang),
168
+ detail: {
169
+ errors: workflowsCheck.errors,
170
+ declared: workflowsCheck.declared,
171
+ },
172
+ };
173
+ }
149
174
  return {
150
175
  status: 'pass',
151
176
  message: tCli('cli.doctor.skill_metadata.pass', ctx.lang),
177
+ detail: {
178
+ hardRulesDeclared: hardRulesCheck.declared,
179
+ hardRulesCount: hardRulesCheck.rules.length,
180
+ workflowsDeclared: workflowsCheck.declared,
181
+ workflowsCount: workflowsCheck.workflows.length,
182
+ workflowNodeCount: workflowsCheck.workflows.reduce((sum, workflow) => sum + workflow.nodes.length, 0),
183
+ },
152
184
  };
153
185
  },
154
186
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * Executor result cache.
3
3
  *
4
4
  * Caches successful executor results to disk to avoid redundant API calls.
5
- * Cache key v4 = sha256(model + system + prompt + cwd + allowedSkills + executor + runtime).
5
+ * Cache key v5 = sha256(model + system + prompt + cwd + allowedSkills + executor +
6
+ * runtime + mocks + mocksStrict + effort).
6
7
  * Loaded into memory on init, flushed to disk on save().
7
8
  *
8
9
  * Prefix bumps intentionally invalidate old entries when construct-validity
@@ -10,8 +11,21 @@
10
11
  * - v2: allowedSkills / strict isolation
11
12
  * - v3: executor name
12
13
  * - v4: executor runtime fingerprint
14
+ * - v5: effort(同 model/prompt 不同 effort 的输出本就该独立 cache,旧 cache 命中会让
15
+ * 报告 meta 标的 effort 跟实际跑的 effort 不一致 — 测量可比性污染);
16
+ * 同时 cache.set 不再砍 turns / toolCalls — 工具类断言 + diagnostic 要看 trace,
17
+ * 砍掉的话 cached rerun 会让工具断言为空、diagnostic 没真实证据,跟 cold run 不一致
13
18
  */
14
19
  import type { ExecutorCache } from '../types/index.js';
15
20
  export declare function createCache(cacheDir: string): ExecutorCache;
16
- export declare function cacheKey(model: string, system: string, prompt: string, cwd?: string | null, allowedSkills?: string[], executor?: string, runtimeFingerprint?: string): string;
21
+ export declare function cacheKey(model: string, system: string, prompt: string, cwd?: string | null, allowedSkills?: string[], executor?: string, runtimeFingerprint?: string,
22
+ /** Sample.mocks 序列化进 key:不同 mocks 配置必须独立 cache(否则改 mock 后老结果回来)。
23
+ * 传 undefined / [] 时为空串,跟"无 mock 跑"等价。 */
24
+ mocks?: unknown,
25
+ /** Sample.mocksStrict 也进 key:strict on/off 行为不同,不能共享 cache。 */
26
+ mocksStrict?: boolean,
27
+ /** Executor effort 也进 key:effort 'low'/'medium'/'high' 改变 LLM 思考预算,
28
+ * 输出/工具调用/分数都可能不同,跨 effort 共享 cache 会让报告 meta 标的 effort
29
+ * 跟实际生成的 effort 不一致,违反"两份报告比分数前先比 cliVersion / effort"语义。 */
30
+ effort?: string): string;
17
31
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/eval-core/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAInE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAsC3D;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAaR"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/eval-core/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAkBnE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAyD3D;AAWD,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM;AAC3B;2CAC2C;AAC3C,KAAK,CAAC,EAAE,OAAO;AACf,+DAA+D;AAC/D,WAAW,CAAC,EAAE,OAAO;AACrB;;8DAE8D;AAC9D,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAoBR"}
@@ -2,7 +2,8 @@
2
2
  * Executor result cache.
3
3
  *
4
4
  * Caches successful executor results to disk to avoid redundant API calls.
5
- * Cache key v4 = sha256(model + system + prompt + cwd + allowedSkills + executor + runtime).
5
+ * Cache key v5 = sha256(model + system + prompt + cwd + allowedSkills + executor +
6
+ * runtime + mocks + mocksStrict + effort).
6
7
  * Loaded into memory on init, flushed to disk on save().
7
8
  *
8
9
  * Prefix bumps intentionally invalidate old entries when construct-validity
@@ -10,58 +11,128 @@
10
11
  * - v2: allowedSkills / strict isolation
11
12
  * - v3: executor name
12
13
  * - v4: executor runtime fingerprint
14
+ * - v5: effort(同 model/prompt 不同 effort 的输出本就该独立 cache,旧 cache 命中会让
15
+ * 报告 meta 标的 effort 跟实际跑的 effort 不一致 — 测量可比性污染);
16
+ * 同时 cache.set 不再砍 turns / toolCalls — 工具类断言 + diagnostic 要看 trace,
17
+ * 砍掉的话 cached rerun 会让工具断言为空、diagnostic 没真实证据,跟 cold run 不一致
13
18
  */
14
19
  import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
15
20
  import { join } from 'node:path';
16
21
  import { createHash } from 'node:crypto';
17
22
  const CACHE_FILE = 'executor-cache.json';
23
+ /** v5 保留 turns / toolCalls 后单 entry 可达 5–50 KB,长期使用会无界膨胀。
24
+ * Map iteration 是插入序,set() 时若 key 已存在先 delete 再 set 把它移到末尾 → 实现 LRU。
25
+ * 超过 cap 时淘汰最旧条目(Map iterator 第一个)。
26
+ * 默认 2000 条按平均 20 KB 算 ~40 MB,撑住"大半年评测史"的同时保证不爆盘。
27
+ * 用户用 `OMK_CACHE_MAX_ENTRIES` 调:0 / 负数 → 不限制(回到老行为)。 */
28
+ const DEFAULT_MAX_ENTRIES = 2000;
29
+ function resolveCacheCap() {
30
+ const raw = process.env.OMK_CACHE_MAX_ENTRIES;
31
+ if (raw == null || raw === '')
32
+ return DEFAULT_MAX_ENTRIES;
33
+ const n = Number(raw);
34
+ if (!Number.isFinite(n))
35
+ return DEFAULT_MAX_ENTRIES;
36
+ if (n <= 0)
37
+ return Infinity;
38
+ return Math.floor(n);
39
+ }
18
40
  export function createCache(cacheDir) {
19
41
  mkdirSync(cacheDir, { recursive: true });
20
42
  const filePath = join(cacheDir, CACHE_FILE);
21
- let store = {};
43
+ const cap = resolveCacheCap();
44
+ // 用 Map 替代 Record:Map 保证 iteration 顺序 = 插入顺序,LRU 淘汰用得上。
45
+ // 老 JSON cache 文件仍按 Record<string, ExecResult> 写,反序列化时 Object.entries
46
+ // 转 Map(Object 字段顺序在主流引擎里也是插入序,所以 LRU 信号不丢)。
47
+ const store = new Map();
22
48
  if (existsSync(filePath)) {
23
49
  try {
24
- store = JSON.parse(readFileSync(filePath, 'utf-8'));
50
+ const raw = JSON.parse(readFileSync(filePath, 'utf-8'));
51
+ for (const [k, v] of Object.entries(raw))
52
+ store.set(k, v);
53
+ // 加载完也 enforce 一次 cap,处理上次 process exit 前没保存到的极端膨胀。
54
+ evictUntilWithinCap(store, cap);
25
55
  }
26
56
  catch {
27
- store = {};
57
+ // 老 cache 坏了忽略 — 重跑会重建。
28
58
  }
29
59
  }
30
60
  let dirty = false;
31
61
  return {
32
62
  get(key) {
33
- return store[key] || null;
63
+ const v = store.get(key);
64
+ if (v == null)
65
+ return null;
66
+ // LRU touch:命中时移到末尾(最新)。这样 evict 时永远从最旧端拿。
67
+ store.delete(key);
68
+ store.set(key, v);
69
+ dirty = true;
70
+ return v;
34
71
  },
35
72
  set(key, value) {
36
- const cacheable = { ...value };
37
- delete cacheable.turns;
38
- delete cacheable.toolCalls;
39
- store[key] = cacheable;
73
+ // 保留完整 ExecResult(含 turns / toolCalls):工具类 assertion (tool_called /
74
+ // tool_input_contains / tools_called)和 diagnostic 要看 trace,砍掉的话 cached
75
+ // rerun 进 grade() 时工具断言为空、diagnostic 没真实证据,跟 cold run 不一致。
76
+ if (store.has(key))
77
+ store.delete(key);
78
+ store.set(key, { ...value });
79
+ evictUntilWithinCap(store, cap);
40
80
  dirty = true;
41
81
  },
42
82
  save() {
43
83
  if (!dirty)
44
84
  return;
45
- writeFileSync(filePath, JSON.stringify(store, null, 2));
85
+ // 序列化时用普通 object,跟老 cache 文件格式兼容(读老报告不破)。
86
+ // Map iteration 是插入序,生成的 object 字段顺序也保留 LRU 状态,下次加载继续生效。
87
+ const obj = {};
88
+ for (const [k, v] of store)
89
+ obj[k] = v;
90
+ writeFileSync(filePath, JSON.stringify(obj, null, 2));
46
91
  dirty = false;
47
92
  },
48
93
  size() {
49
- return Object.keys(store).length;
94
+ return store.size;
50
95
  },
51
96
  };
52
97
  }
53
- export function cacheKey(model, system, prompt, cwd, allowedSkills, executor, runtimeFingerprint) {
98
+ function evictUntilWithinCap(store, cap) {
99
+ if (!Number.isFinite(cap))
100
+ return;
101
+ while (store.size > cap) {
102
+ const oldest = store.keys().next().value;
103
+ if (oldest == null)
104
+ break;
105
+ store.delete(oldest);
106
+ }
107
+ }
108
+ export function cacheKey(model, system, prompt, cwd, allowedSkills, executor, runtimeFingerprint,
109
+ /** Sample.mocks 序列化进 key:不同 mocks 配置必须独立 cache(否则改 mock 后老结果回来)。
110
+ * 传 undefined / [] 时为空串,跟"无 mock 跑"等价。 */
111
+ mocks,
112
+ /** Sample.mocksStrict 也进 key:strict on/off 行为不同,不能共享 cache。 */
113
+ mocksStrict,
114
+ /** Executor effort 也进 key:effort 'low'/'medium'/'high' 改变 LLM 思考预算,
115
+ * 输出/工具调用/分数都可能不同,跨 effort 共享 cache 会让报告 meta 标的 effort
116
+ * 跟实际生成的 effort 不一致,违反"两份报告比分数前先比 cliVersion / effort"语义。 */
117
+ effort) {
54
118
  // allowedSkills 序列化:undefined → "" / [] → "[]" / [...] → 排序后 JSON。
55
119
  // 排序保证 ["a","b"] 和 ["b","a"] 命中同一缓存(语义等价)。
56
120
  const isoStr = allowedSkills === undefined
57
121
  ? ''
58
122
  : JSON.stringify([...allowedSkills].sort());
59
- // executor + runtime 进 cache key:同 model 名走不同 executor 或同 executor
123
+ // mocks 序列化:Array → JSON.stringify(顺序敏感,因为 return_seq 顺序有意义)。
124
+ // 不做排序,因为 mocks 是有顺序的(命中规则按数组顺序匹配)。
125
+ const mockStr = mocks === undefined
126
+ ? ''
127
+ : JSON.stringify(mocks);
128
+ const strictStr = mocksStrict ? '1' : '';
129
+ const effortStr = effort || '';
130
+ // executor + runtime + effort 进 cache key:同 model 名走不同 executor 或同 executor
60
131
  // 换 binary/SDK 版本时输出可能不同,旧 cache 不可复用。
61
132
  const hash = createHash('sha256')
62
- .update(`${model || ''}\n${system || ''}\n${prompt || ''}\n${cwd || ''}\n${isoStr}\n${executor || ''}\n${runtimeFingerprint || ''}`)
133
+ .update(`${model || ''}\n${system || ''}\n${prompt || ''}\n${cwd || ''}\n${isoStr}\n${executor || ''}\n${runtimeFingerprint || ''}\n${mockStr}\n${strictStr}\n${effortStr}`)
63
134
  .digest('hex')
64
135
  .slice(0, 16);
65
- return `v4:${hash}`;
136
+ return `v5:${hash}`;
66
137
  }
67
138
  //# sourceMappingURL=cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/eval-core/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE5C,IAAI,KAAK,GAA+B,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,OAAO;QACL,GAAG,CAAC,GAAW;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC5B,CAAC;QAED,GAAG,CAAC,GAAW,EAAE,KAAiB;YAChC,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC,KAAK,CAAC;YACvB,OAAO,SAAS,CAAC,SAAS,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACvB,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAED,IAAI;YACF,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;QAED,IAAI;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAa,EACb,MAAc,EACd,MAAc,EACd,GAAmB,EACnB,aAAwB,EACxB,QAAiB,EACjB,kBAA2B;IAE3B,mEAAmE;IACnE,2CAA2C;IAC3C,MAAM,MAAM,GAAG,aAAa,KAAK,SAAS;QACxC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,mEAAmE;IACnE,uCAAuC;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,MAAM,KAAK,QAAQ,IAAI,EAAE,KAAK,kBAAkB,IAAI,EAAE,EAAE,CAAC;SACnI,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,OAAO,MAAM,IAAI,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/eval-core/cache.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ export interface ExecuteTasksOptions {
8
8
  model: string;
9
9
  noJudge: boolean;
10
10
  samplesPath: string;
11
+ /** Sample bundle 根目录 — 单文件模式 = dirname(samplesPath),目录模式 = 目录自身。
12
+ * 传给 grade 当 samplesDir(custom assertion fn 相对路径锚点),也用作 mocksBaseDir 兜底。
13
+ * 缺省时仍 fallback dirname(resolve(samplesPath)),不破单文件老用法。 */
14
+ samplesBaseDir?: string;
11
15
  concurrency: number;
12
16
  timeoutMs?: number;
13
17
  noCache: boolean;
@@ -32,8 +36,14 @@ export interface ExecuteTasksOptions {
32
36
  * budgetExhausted: true. Per-sample caps don't abort but mark offending
33
37
  * tasks as failed. */
34
38
  budget?: import('../types/index.js').EvalBudget;
39
+ /** Reasoning effort for executor LLM。透传到 ExecutorInput.effort,
40
+ * 默认 'low'(在 parseRunConfig 兜底)。 */
41
+ effort?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
42
+ /** 关闭 diagnostic LLM call。Default false。失败用例(任意 assertion fail)
43
+ * 默认会跑 diagnostic 给"哪错了 + 怎么改 skill"建议。跟 noJudge 完全独立。 */
44
+ noDiagnostic?: boolean;
35
45
  }
36
- export declare function executeTasks({ tasks, executor, executorName, model, noJudge, samplesPath, concurrency, timeoutMs, noCache, verbose, onProgress, retry, existingResults, judgeRepeat, judgeModels, judgeExecutors, lengthDebias, budget, }: ExecuteTasksOptions): Promise<{
46
+ export declare function executeTasks({ tasks, executor, executorName, model, noJudge, samplesPath, samplesBaseDir, concurrency, timeoutMs, noCache, verbose, onProgress, retry, existingResults, judgeRepeat, judgeModels, judgeExecutors, lengthDebias, budget, effort, noDiagnostic, }: ExecuteTasksOptions): Promise<{
37
47
  results: Record<string, Record<string, VariantResult>>;
38
48
  totalCostUSD: number;
39
49
  skipped: number;