oh-my-knowledge 0.20.1 → 0.21.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 (177) hide show
  1. package/README.md +8 -4
  2. package/README.zh.md +8 -4
  3. package/dist/src/analysis/coverage-analyzer.d.ts +1 -1
  4. package/dist/src/analysis/coverage-analyzer.d.ts.map +1 -1
  5. package/dist/src/analysis/failure-clusterer.d.ts +1 -1
  6. package/dist/src/analysis/failure-clusterer.d.ts.map +1 -1
  7. package/dist/src/analysis/gap-analyzer.d.ts +2 -2
  8. package/dist/src/analysis/gap-analyzer.d.ts.map +1 -1
  9. package/dist/src/analysis/gap-analyzer.js +4 -4
  10. package/dist/src/analysis/hedging-classifier.d.ts +1 -1
  11. package/dist/src/analysis/hedging-classifier.d.ts.map +1 -1
  12. package/dist/src/analysis/report-diagnostics.d.ts +1 -1
  13. package/dist/src/analysis/report-diagnostics.d.ts.map +1 -1
  14. package/dist/src/analysis/report-diagnostics.js +7 -7
  15. package/dist/src/analysis/sample-diagnostics.d.ts +1 -1
  16. package/dist/src/analysis/sample-diagnostics.d.ts.map +1 -1
  17. package/dist/src/analysis/sample-diagnostics.js +15 -15
  18. package/dist/src/authoring/evolver.d.ts +1 -1
  19. package/dist/src/authoring/evolver.d.ts.map +1 -1
  20. package/dist/src/authoring/evolver.js +5 -5
  21. package/dist/src/authoring/evolver.js.map +1 -1
  22. package/dist/src/authoring/generator.d.ts +1 -1
  23. package/dist/src/authoring/generator.d.ts.map +1 -1
  24. package/dist/src/authoring/generator.js +8 -8
  25. package/dist/src/authoring/generator.js.map +1 -1
  26. package/dist/src/cli/i18n-dict.d.ts +56 -0
  27. package/dist/src/cli/i18n-dict.d.ts.map +1 -0
  28. package/dist/src/cli/i18n-dict.js +912 -0
  29. package/dist/src/cli/i18n-dict.js.map +1 -0
  30. package/dist/src/cli/i18n.d.ts +24 -0
  31. package/dist/src/cli/i18n.d.ts.map +1 -0
  32. package/dist/src/cli/i18n.js +53 -0
  33. package/dist/src/cli/i18n.js.map +1 -0
  34. package/dist/src/cli.js +279 -408
  35. package/dist/src/cli.js.map +1 -1
  36. package/dist/src/eval-core/cache.d.ts +1 -1
  37. package/dist/src/eval-core/cache.d.ts.map +1 -1
  38. package/dist/src/eval-core/dependency-checker.d.ts +16 -1
  39. package/dist/src/eval-core/dependency-checker.d.ts.map +1 -1
  40. package/dist/src/eval-core/dependency-checker.js +79 -4
  41. package/dist/src/eval-core/dependency-checker.js.map +1 -1
  42. package/dist/src/eval-core/evaluation-execution.d.ts +3 -3
  43. package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
  44. package/dist/src/eval-core/evaluation-execution.js +1 -1
  45. package/dist/src/eval-core/evaluation-execution.js.map +1 -1
  46. package/dist/src/eval-core/evaluation-job.d.ts +2 -2
  47. package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
  48. package/dist/src/eval-core/evaluation-reporting.d.ts +1 -1
  49. package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
  50. package/dist/src/eval-core/execution-strategy.d.ts +1 -1
  51. package/dist/src/eval-core/execution-strategy.d.ts.map +1 -1
  52. package/dist/src/eval-core/layer-gates.d.ts +17 -0
  53. package/dist/src/eval-core/layer-gates.d.ts.map +1 -0
  54. package/dist/src/eval-core/{ci-gates.js → layer-gates.js} +5 -5
  55. package/dist/src/eval-core/layer-gates.js.map +1 -0
  56. package/dist/src/eval-core/schema.d.ts +1 -1
  57. package/dist/src/eval-core/schema.d.ts.map +1 -1
  58. package/dist/src/eval-core/schema.js +1 -1
  59. package/dist/src/eval-core/task-planner.d.ts +1 -1
  60. package/dist/src/eval-core/task-planner.d.ts.map +1 -1
  61. package/dist/src/eval-core/task-planner.js +1 -1
  62. package/dist/src/eval-core/task-planner.js.map +1 -1
  63. package/dist/src/eval-core/verdict.d.ts +5 -2
  64. package/dist/src/eval-core/verdict.d.ts.map +1 -1
  65. package/dist/src/eval-core/verdict.js +47 -8
  66. package/dist/src/eval-core/verdict.js.map +1 -1
  67. package/dist/src/eval-workflows/each-evaluation-workflow.d.ts +7 -7
  68. package/dist/src/eval-workflows/each-evaluation-workflow.d.ts.map +1 -1
  69. package/dist/src/eval-workflows/evaluation-pipeline.d.ts +18 -3
  70. package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
  71. package/dist/src/eval-workflows/evaluation-pipeline.js +37 -0
  72. package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
  73. package/dist/src/eval-workflows/evaluation-preparation.d.ts +5 -5
  74. package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
  75. package/dist/src/eval-workflows/run-evaluation.d.ts +3 -3
  76. package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
  77. package/dist/src/eval-workflows/run-evaluation.js +9 -3
  78. package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
  79. package/dist/src/executors/anthropic-api.d.ts +1 -1
  80. package/dist/src/executors/anthropic-api.d.ts.map +1 -1
  81. package/dist/src/executors/anthropic-api.js +1 -1
  82. package/dist/src/executors/anthropic-api.js.map +1 -1
  83. package/dist/src/executors/claude-cli.d.ts +1 -1
  84. package/dist/src/executors/claude-cli.d.ts.map +1 -1
  85. package/dist/src/executors/claude-sdk-trace.d.ts +1 -1
  86. package/dist/src/executors/claude-sdk-trace.d.ts.map +1 -1
  87. package/dist/src/executors/claude-sdk.d.ts +1 -1
  88. package/dist/src/executors/claude-sdk.d.ts.map +1 -1
  89. package/dist/src/executors/gemini.d.ts +1 -1
  90. package/dist/src/executors/gemini.d.ts.map +1 -1
  91. package/dist/src/executors/index.d.ts +1 -1
  92. package/dist/src/executors/index.d.ts.map +1 -1
  93. package/dist/src/executors/openai-api.d.ts +1 -1
  94. package/dist/src/executors/openai-api.d.ts.map +1 -1
  95. package/dist/src/executors/openai-api.js +1 -1
  96. package/dist/src/executors/openai-api.js.map +1 -1
  97. package/dist/src/executors/openai-cli.d.ts +1 -1
  98. package/dist/src/executors/openai-cli.d.ts.map +1 -1
  99. package/dist/src/executors/script.d.ts +1 -1
  100. package/dist/src/executors/script.d.ts.map +1 -1
  101. package/dist/src/executors/shared.d.ts +1 -1
  102. package/dist/src/executors/shared.d.ts.map +1 -1
  103. package/dist/src/grading/assertions.d.ts +1 -1
  104. package/dist/src/grading/assertions.d.ts.map +1 -1
  105. package/dist/src/grading/debias-validate.d.ts +1 -1
  106. package/dist/src/grading/debias-validate.d.ts.map +1 -1
  107. package/dist/src/grading/debias-validate.js +3 -3
  108. package/dist/src/grading/gold-cli.d.ts +1 -1
  109. package/dist/src/grading/gold-cli.d.ts.map +1 -1
  110. package/dist/src/grading/gold-cli.js +3 -3
  111. package/dist/src/grading/gold-cli.js.map +1 -1
  112. package/dist/src/grading/index.d.ts +1 -1
  113. package/dist/src/grading/index.d.ts.map +1 -1
  114. package/dist/src/grading/judge.d.ts +1 -1
  115. package/dist/src/grading/judge.d.ts.map +1 -1
  116. package/dist/src/grading/layered-scores.d.ts +1 -1
  117. package/dist/src/grading/layered-scores.d.ts.map +1 -1
  118. package/dist/src/inputs/eval-config.d.ts +1 -1
  119. package/dist/src/inputs/eval-config.d.ts.map +1 -1
  120. package/dist/src/inputs/eval-config.js +18 -18
  121. package/dist/src/inputs/eval-config.js.map +1 -1
  122. package/dist/src/inputs/load-samples.d.ts +1 -1
  123. package/dist/src/inputs/load-samples.d.ts.map +1 -1
  124. package/dist/src/inputs/load-samples.js +4 -4
  125. package/dist/src/inputs/load-samples.js.map +1 -1
  126. package/dist/src/inputs/mcp-resolver.d.ts +1 -1
  127. package/dist/src/inputs/mcp-resolver.d.ts.map +1 -1
  128. package/dist/src/inputs/mcp-resolver.js +4 -4
  129. package/dist/src/inputs/mcp-resolver.js.map +1 -1
  130. package/dist/src/inputs/skill-loader.d.ts +1 -1
  131. package/dist/src/inputs/skill-loader.d.ts.map +1 -1
  132. package/dist/src/inputs/skill-loader.js +12 -6
  133. package/dist/src/inputs/skill-loader.js.map +1 -1
  134. package/dist/src/inputs/url-fetcher.d.ts +1 -1
  135. package/dist/src/inputs/url-fetcher.d.ts.map +1 -1
  136. package/dist/src/inputs/url-fetcher.js +2 -2
  137. package/dist/src/inputs/url-fetcher.js.map +1 -1
  138. package/dist/src/observability/skill-health-analyzer.d.ts +1 -1
  139. package/dist/src/observability/skill-health-analyzer.d.ts.map +1 -1
  140. package/dist/src/observability/trace-adapter.d.ts +1 -1
  141. package/dist/src/observability/trace-adapter.d.ts.map +1 -1
  142. package/dist/src/renderer/html-renderer.d.ts +1 -1
  143. package/dist/src/renderer/html-renderer.d.ts.map +1 -1
  144. package/dist/src/renderer/html-renderer.js +1 -1
  145. package/dist/src/renderer/html-renderer.js.map +1 -1
  146. package/dist/src/renderer/layout.d.ts +1 -1
  147. package/dist/src/renderer/layout.d.ts.map +1 -1
  148. package/dist/src/renderer/layout.js +1 -1
  149. package/dist/src/renderer/layout.js.map +1 -1
  150. package/dist/src/renderer/skill-health-renderer.d.ts +1 -1
  151. package/dist/src/renderer/skill-health-renderer.d.ts.map +1 -1
  152. package/dist/src/renderer/summary.d.ts +1 -1
  153. package/dist/src/renderer/summary.d.ts.map +1 -1
  154. package/dist/src/renderer/summary.js +22 -20
  155. package/dist/src/renderer/summary.js.map +1 -1
  156. package/dist/src/renderer/table.d.ts +1 -1
  157. package/dist/src/renderer/table.d.ts.map +1 -1
  158. package/dist/src/renderer/trends.d.ts +1 -1
  159. package/dist/src/renderer/trends.d.ts.map +1 -1
  160. package/dist/src/server/job-store.d.ts +1 -1
  161. package/dist/src/server/job-store.d.ts.map +1 -1
  162. package/dist/src/server/report-server.d.ts +1 -1
  163. package/dist/src/server/report-server.d.ts.map +1 -1
  164. package/dist/src/server/report-server.js +5 -5
  165. package/dist/src/server/report-server.js.map +1 -1
  166. package/dist/src/server/report-store.d.ts +1 -1
  167. package/dist/src/server/report-store.d.ts.map +1 -1
  168. package/dist/src/types/eval.d.ts +1 -0
  169. package/dist/src/types/eval.d.ts.map +1 -1
  170. package/package.json +1 -1
  171. package/dist/src/eval-core/ci-gates.d.ts +0 -17
  172. package/dist/src/eval-core/ci-gates.d.ts.map +0 -1
  173. package/dist/src/eval-core/ci-gates.js.map +0 -1
  174. package/dist/src/types.d.ts +0 -2
  175. package/dist/src/types.d.ts.map +0 -1
  176. package/dist/src/types.js +0 -6
  177. package/dist/src/types.js.map +0 -1
package/README.md CHANGED
@@ -21,7 +21,7 @@ Teams doing knowledge engineering produce lots of knowledge artifacts (skills to
21
21
  - **Six-dimension scoring** — separate signals for Fact / Behavior / LLM-judge / Cost / Efficiency / Stability, so a regression in one axis isn't hidden by gains in another
22
22
  - **Production session observability** — parse Claude Code session JSONL traces, measure per-skill failure rate, latency, token cost, and knowledge-gap signals on real user sessions
23
23
  - **Knowledge-gap detection** — severity-weighted signals (explicit markers / failed searches / hedging language / repeated failures) quantify risk exposure instead of claiming completeness
24
- - **Pre-merge CI gate** — `omk bench ci` enforces three-layer all-pass (fact + behavior + llm-judge) semantics, catching single-layer regressions a composite score would hide
24
+ - **Pre-merge CI gate** — `omk bench gate` enforces three-layer all-pass (fact + behavior + llm-judge) semantics, catching single-layer regressions a composite score would hide
25
25
  - **One-line ship/no-ship verdict** — `omk bench verdict <reportId>` aggregates bootstrap CI / three-layer ci-gate / saturation / human α into a six-tier verdict (PROGRESS / CAUTIOUS / REGRESS / NOISE / UNDERPOWERED / SOLO) plus an action recommendation; the exit code reflects whether to ship
26
26
 
27
27
  ### Statistical rigor
@@ -70,6 +70,10 @@ omk bench run --dry-run
70
70
 
71
71
  # run the evaluation (auto-discovers everything under skills/)
72
72
  omk bench run
73
+
74
+ # CLI output language: zh (default) / en — flag wins over env
75
+ omk bench run --lang en
76
+ OMK_LANG=en omk bench report
73
77
  ```
74
78
 
75
79
  ## Use inside Claude Code
@@ -486,14 +490,14 @@ Options:
486
490
 
487
491
  Each round's output is saved under `skills/evolve/` (`my-skill.r0.md`, `my-skill.r1.md`…), so you can `diff` to see what the AI changed. The best round is written back to the original file.
488
492
 
489
- ### `omk bench ci`
493
+ ### `omk bench gate`
490
494
 
491
495
  Run the evaluation inside CI. Exit code 0 on pass, 1 on fail — can be wired into gates directly.
492
496
 
493
497
  The gate is **three-layer all-pass**: `avgFactScore >= threshold AND avgBehaviorScore >= threshold AND avgJudgeScore >= threshold`. Any layer below threshold is FAIL, and the output shows which layer broke. This stops cases like `fact 4.5→2.5 but judge 3→5` from passing via composite averaging — if one layer regresses, the gate catches it.
494
498
 
495
499
  ```bash
496
- omk bench ci [options]
500
+ omk bench gate [options]
497
501
  --threshold <number> per-layer minimum score (default: 3.5); applied
498
502
  independently to fact / behavior / judge
499
503
  ```
@@ -569,7 +573,7 @@ Aggregates bootstrap CI / three-layer ci-gate / saturation / human α into one o
569
573
 
570
574
  ```bash
571
575
  omk bench verdict <reportId> [options]
572
- --threshold <num> three-layer gate threshold (default 3.5, matches `omk bench ci`)
576
+ --threshold <num> three-layer gate threshold (default 3.5, matches `omk bench gate`)
573
577
  --trivial-diff <num> "practically tiny" cutoff (default 0.1)
574
578
  --verbose expand per-pair detail
575
579
  ```
package/README.zh.md CHANGED
@@ -21,7 +21,7 @@
21
21
  - **六维独立打分** — Fact / Behavior / LLM-judge / Cost / Efficiency / Stability 分别出信号,单一维度的回退不会被其他维度的收益掩盖
22
22
  - **线上 session 观测** — 解析 Claude Code session JSONL,在真实用户会话上测量各 skill 的失败率、耗时、token 成本和知识缺口信号
23
23
  - **知识缺口识别** — 严重度加权的信号(显式标记 / 搜索失败 / hedging 用语 / 反复失败)量化风险敞口,不宣称完备性
24
- - **合并前 CI 门** — `omk bench ci` 强制三层 all-pass(fact + behavior + llm-judge),抓复合分掩盖的单层回退
24
+ - **合并前 CI 门** — `omk bench gate` 强制三层 all-pass(fact + behavior + llm-judge),抓复合分掩盖的单层回退
25
25
  - **一行 ship/no-ship 结论** — `omk bench verdict <reportId>` 聚合 bootstrap CI / 三层 ci-gate / saturation / human α,给六档 verdict(PROGRESS / CAUTIOUS / REGRESS / NOISE / UNDERPOWERED / SOLO)+ 行动建议;exit code 反映是否可 ship
26
26
 
27
27
  ### 统计严谨性
@@ -69,6 +69,10 @@ omk bench run --dry-run
69
69
 
70
70
  # 运行评测(自动发现 skills/ 目录下的所有 artifact)
71
71
  omk bench run
72
+
73
+ # CLI 输出语言: zh (默认) / en — flag 优先级高于环境变量
74
+ omk bench run --lang en
75
+ OMK_LANG=en omk bench report
72
76
  ```
73
77
 
74
78
  ## 在 Claude Code 中使用
@@ -480,14 +484,14 @@ omk bench evolve skills/my-skill.md --rounds 10 --target 4.5
480
484
 
481
485
  每轮产出保存在 `skills/evolve/` 目录(`my-skill.r0.md`、`my-skill.r1.md`...),可以 diff 查看 AI 改了什么。最佳版本自动写回原始文件。
482
486
 
483
- ### `omk bench ci`
487
+ ### `omk bench gate`
484
488
 
485
489
  在自动化流水线中运行评测。评分达标则退出码为 0(通过),否则为 1(失败),可直接用于卡点判断。
486
490
 
487
491
  门禁是**三层 all-pass**:`avgFactScore >= threshold AND avgBehaviorScore >= threshold AND avgJudgeScore >= threshold`,任一层低于阈值即 FAIL,输出显示是哪一层破了 gate。这样能把"事实 4.5→2.5 但 judge 3→5"这种合成分均值不变但事实层崩盘的 case 暴露出来 — 任何一层退化都会被卡住。
488
492
 
489
493
  ```bash
490
- omk bench ci [选项]
494
+ omk bench gate [选项]
491
495
  --threshold <数值> 各层最低分数(默认:3.5);独立应用于
492
496
  fact / behavior / judge 三层
493
497
  ```
@@ -563,7 +567,7 @@ HTML 报告会内联 SVG 饱和曲线(横 N,纵 mean ± 95% CI 阴影带,p
563
567
 
564
568
  ```bash
565
569
  omk bench verdict <reportId> [选项]
566
- --threshold <num> 三层 gate 阈值 (默认 3.5,匹配 omk bench ci)
570
+ --threshold <num> 三层 gate 阈值 (默认 3.5,匹配 omk bench gate)
567
571
  --trivial-diff <num> "幅度太小"阈值 (默认 0.1)
568
572
  --verbose 展开 per-pair 详情
569
573
  ```
@@ -2,7 +2,7 @@
2
2
  * Knowledge coverage analyzer.
3
3
  * Computes coverage rates by comparing consumed knowledge against the full index.
4
4
  */
5
- import type { ToolCallInfo, ResultEntry, Report } from '../types.js';
5
+ import type { ToolCallInfo, ResultEntry, Report } from '../types/index.js';
6
6
  export interface KnowledgeEntry {
7
7
  path: string;
8
8
  type: 'principle' | 'semantic' | 'design' | 'script' | 'code' | 'other';
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/coverage-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,gBAAgB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAWD,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBxE;AA8BD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CA0B/D;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CAmD1G;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,oBAAoB,CAkC3F;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWpF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAClB,cAAc,CA0DhB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAehC"}
1
+ {"version":3,"file":"coverage-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/coverage-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,gBAAgB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAWD,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBxE;AA8BD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CA0B/D;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CAmD1G;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,oBAAoB,CAkC3F;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWpF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAClB,cAAc,CA0DhB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAehC"}
@@ -38,7 +38,7 @@
38
38
  * a categorization task, not a quality scoring task, so the length-debias
39
39
  * directive is inapplicable.
40
40
  */
41
- import type { ExecutorFn, Report } from '../types.js';
41
+ import type { ExecutorFn, Report } from '../types/index.js';
42
42
  export interface FailureClusterRequest {
43
43
  report: Report;
44
44
  /** Executor for the clustering LLM call. */
@@ -1 +1 @@
1
- {"version":3,"file":"failure-clusterer.d.ts","sourceRoot":"","sources":["../../../src/analysis/failure-clusterer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAA8B,MAAM,aAAa,CAAC;AAElF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,EAAE,UAAU,CAAC;IACrB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,OAAO,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,iEAAiE;IACjE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,oEAAoE;IACpE,YAAY,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAeD,wBAAsB,eAAe,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkF/F;AAwID,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAsC1E"}
1
+ {"version":3,"file":"failure-clusterer.d.ts","sourceRoot":"","sources":["../../../src/analysis/failure-clusterer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAA8B,MAAM,mBAAmB,CAAC;AAExF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,EAAE,UAAU,CAAC;IACrB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,OAAO,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,iEAAiE;IACjE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,oEAAoE;IACpE,YAAY,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAeD,wBAAsB,eAAe,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkF/F;AAwID,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAsC1E"}
@@ -15,7 +15,7 @@
15
15
  * Intentionally does NOT touch report rendering, trends, or CI — those are
16
16
  * step-3 work. This module only computes the structured GapReport.
17
17
  */
18
- import type { ExecutorFn, GapReport, GapSignalRef, ResultEntry, ToolCallInfo, TurnInfo, VariantResult } from '../types.js';
18
+ import type { ExecutorFn, GapReport, GapSignalRef, ResultEntry, ToolCallInfo, TurnInfo, VariantResult } from '../types/index.js';
19
19
  import { type ClassifyOptions } from './hedging-classifier.js';
20
20
  export type GapSignalType = GapSignalRef['type'];
21
21
  export type GapSignal = GapSignalRef;
@@ -30,7 +30,7 @@ export type GapSignal = GapSignalRef;
30
30
  * - explicit_marker: 依赖 agent 按约定打【推断】等标记,可能漏标
31
31
  * - hedging: 字符串匹配 "我不确定/可能是"等,假阳率已知较高(spec §2.8)
32
32
  *
33
- * Aggregation: 每个样本取其信号的最高权重作"样本严重度",平均到 weightedGapRate。
33
+ * Aggregation: 每个用例取其信号的最高权重作"用例严重度",平均到 weightedGapRate。
34
34
  * weightedGapRate ≤ gapRate,差值反映"软信号占比"——读者据此判断结果可信度。
35
35
  */
36
36
  export declare const SIGNAL_WEIGHTS: Record<GapSignalType, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"gap-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/gap-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAA6B,KAAK,eAAe,EAAyB,MAAM,yBAAyB,CAAC;AAEjH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AA8BrC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKxD,CAAC;AAIF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAqB5D;AAkBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAqBjF;AAgBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAoB9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAiB/D;AAID;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAoCxF;AAID;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAuBvG;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CA+CnF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAM3G;AAmCD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAuCrE;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAClC,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CASlE"}
1
+ {"version":3,"file":"gap-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/gap-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAA6B,KAAK,eAAe,EAAyB,MAAM,yBAAyB,CAAC;AAEjH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AA8BrC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKxD,CAAC;AAIF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAqB5D;AAkBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAqBjF;AAgBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAoB9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAiB/D;AAID;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAoCxF;AAID;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAuBvG;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CA+CnF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAM3G;AAmCD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAuCrE;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAClC,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CASlE"}
@@ -51,7 +51,7 @@ const REPEATED_FAILURE_THRESHOLD = 3;
51
51
  * - explicit_marker: 依赖 agent 按约定打【推断】等标记,可能漏标
52
52
  * - hedging: 字符串匹配 "我不确定/可能是"等,假阳率已知较高(spec §2.8)
53
53
  *
54
- * Aggregation: 每个样本取其信号的最高权重作"样本严重度",平均到 weightedGapRate。
54
+ * Aggregation: 每个用例取其信号的最高权重作"用例严重度",平均到 weightedGapRate。
55
55
  * weightedGapRate ≤ gapRate,差值反映"软信号占比"——读者据此判断结果可信度。
56
56
  */
57
57
  export const SIGNAL_WEIGHTS = {
@@ -287,8 +287,8 @@ export function extractGapSignalsFromSample(variantResult, sampleId) {
287
287
  export function computeGapReport(results, variant) {
288
288
  const signals = [];
289
289
  const sampleIdsWithGap = new Set();
290
- // 每样本取信号中的最强权重,用于 weightedGapRate(v0.2 §6)。
291
- // 无信号样本 sampleWeight 隐含为 0,自然不计入 weighted 和。
290
+ // 每用例取信号中的最强权重,用于 weightedGapRate(v0.2 §6)。
291
+ // 无信号用例 sampleWeight 隐含为 0,自然不计入 weighted 和。
292
292
  const sampleMaxWeight = new Map();
293
293
  let sampleCount = 0;
294
294
  for (const entry of results) {
@@ -342,7 +342,7 @@ export function computeReportGapRates(results, variants) {
342
342
  /**
343
343
  * 重新计算 GapReport 的衍生字段(samplesWithGap / gapRate / weightedGapRate /
344
344
  * byType),用于 hedging signal 被 classifier 过滤后的二次聚合。
345
- * sampleCount 不变(分母:成功执行的样本数,与是否有信号无关)。
345
+ * sampleCount 不变(分母:成功执行的用例数,与是否有信号无关)。
346
346
  */
347
347
  function recomputeAggregates(report) {
348
348
  const sampleIdsWithGap = new Set();
@@ -9,7 +9,7 @@
9
9
  * - cache: in-memory Map<sha256(sentence), HedgingVerdict>, 同句子不重复调用
10
10
  * - 失败降级: 调用 / 解析失败 → 该 candidate 默认 isUncertainty=true (保守保留)
11
11
  */
12
- import type { ExecutorFn, HedgingVerdict } from '../types.js';
12
+ import type { ExecutorFn, HedgingVerdict } from '../types/index.js';
13
13
  export interface HedgingCandidate {
14
14
  sampleId: string;
15
15
  sentence: string;
@@ -1 +1 @@
1
- {"version":3,"file":"hedging-classifier.d.ts","sourceRoot":"","sources":["../../../src/analysis/hedging-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AASD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AA+DD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,cAAc,CAAC,CAmEzB"}
1
+ {"version":3,"file":"hedging-classifier.d.ts","sourceRoot":"","sources":["../../../src/analysis/hedging-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AASD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AA+DD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,cAAc,CAAC,CAmEzB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-analysis: detect patterns and generate insights from evaluation results.
3
3
  */
4
- import type { Report, AnalysisResult } from '../types.js';
4
+ import type { Report, AnalysisResult } from '../types/index.js';
5
5
  /**
6
6
  * Analyze an evaluation report and produce insights + suggestions.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"report-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/analysis/report-diagnostics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAwB,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA2C7D"}
1
+ {"version":3,"file":"report-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/analysis/report-diagnostics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA2C7D"}
@@ -126,10 +126,10 @@ function generateSummary(report, variants) {
126
126
  if (cCost > 0 && tCost > 0 && Math.abs(tCost - cCost) / cCost > 0.05) {
127
127
  const pct = Math.abs(((tCost - cCost) / cCost) * 100).toFixed(0);
128
128
  if (tCost < cCost) {
129
- diffs.push(`单样本成本 $${tCost.toFixed(4)} vs $${cCost.toFixed(4)}(↓${pct}%)`);
129
+ diffs.push(`单用例成本 $${tCost.toFixed(4)} vs $${cCost.toFixed(4)}(↓${pct}%)`);
130
130
  }
131
131
  else {
132
- diffs.push(`单样本成本 $${tCost.toFixed(4)} vs $${cCost.toFixed(4)}(↑${pct}%)`);
132
+ diffs.push(`单用例成本 $${tCost.toFixed(4)} vs $${cCost.toFixed(4)}(↑${pct}%)`);
133
133
  }
134
134
  }
135
135
  // Duration — with percentages
@@ -317,11 +317,11 @@ function detectUniformScores(results, variants, insights, suggestions) {
317
317
  insights.push({
318
318
  type: 'uniform_scores',
319
319
  severity: uniformCount === results.length ? 'warning' : 'info',
320
- message: `${uniformCount}/${results.length} 个样本在各变体间分差 < 0.5,区分度较低`,
320
+ message: `${uniformCount}/${results.length} 个用例在各变体间分差 < 0.5,区分度较低`,
321
321
  details: uniformSamples,
322
322
  });
323
323
  if (uniformCount === results.length) {
324
- suggestions.push('所有样本分数差异都很小,建议增加更有挑战性的测试用例或更严格的评分标准');
324
+ suggestions.push('所有用例分数差异都很小,建议增加更有挑战性的测试用例或更严格的评分标准');
325
325
  }
326
326
  }
327
327
  }
@@ -414,8 +414,8 @@ function detectEfficiencyGap(report, variants, insights, suggestions) {
414
414
  const costPct = ((costDiff / baseCost) * 100).toFixed(0);
415
415
  if (Math.abs(costDiff / baseCost) > 0.2) {
416
416
  details.push(costDiff > 0
417
- ? `单样本成本降低 ${Math.abs(Number(costPct))}%($${otherCost.toFixed(4)} vs $${baseCost.toFixed(4)})`
418
- : `单样本成本增加 ${Math.abs(Number(costPct))}%($${otherCost.toFixed(4)} vs $${baseCost.toFixed(4)})`);
417
+ ? `单用例成本降低 ${Math.abs(Number(costPct))}%($${otherCost.toFixed(4)} vs $${baseCost.toFixed(4)})`
418
+ : `单用例成本增加 ${Math.abs(Number(costPct))}%($${otherCost.toFixed(4)} vs $${baseCost.toFixed(4)})`);
419
419
  }
420
420
  }
421
421
  if (details.length > 0) {
@@ -623,7 +623,7 @@ function detectHighCost(results, variants, insights) {
623
623
  insights.push({
624
624
  type: 'high_cost_sample',
625
625
  severity: 'info',
626
- message: `${expensive.length} 个样本成本显著高于平均值 (>${(avg * 2).toFixed(4)} USD)`,
626
+ message: `${expensive.length} 个用例成本显著高于平均值 (>${(avg * 2).toFixed(4)} USD)`,
627
627
  details: expensive,
628
628
  });
629
629
  }
@@ -23,7 +23,7 @@
23
23
  * minimal evidence needed to act ("here are the matching prompts"). Issues are
24
24
  * sorted by severity then by sample_id so the report is stable across runs.
25
25
  */
26
- import type { Report, Sample } from '../types.js';
26
+ import type { Report, Sample } from '../types/index.js';
27
27
  export type SampleIssueKind = 'flat_scores' | 'all_pass' | 'all_fail' | 'near_duplicate' | 'ambiguous_rubric' | 'cost_outlier' | 'latency_outlier' | 'error_prone';
28
28
  export interface SampleIssue {
29
29
  sample_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sample-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/analysis/sample-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,EAAE,MAAM,aAAa,CAAC;AAG/D,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnD,6BAA6B;IAC7B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F;AAED,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAYD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,sBAAsB,CAmKrG;AAsBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAoD7G"}
1
+ {"version":3,"file":"sample-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/analysis/sample-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnD,6BAA6B;IAC7B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F;AAED,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAYD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,sBAAsB,CAmKrG;AAsBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAoD7G"}
@@ -70,21 +70,21 @@ export function diagnoseSamples(report, options = {}) {
70
70
  if (max === 5 && min === 5) {
71
71
  issues.push({
72
72
  sample_id: entry.sample_id, severity: 'info', kind: 'all_pass',
73
- message: `所有 variant 得分均为 5 — 样本可能太简单或断言过宽`,
73
+ message: `所有 variant 得分均为 5 — 用例可能太简单或断言过宽`,
74
74
  evidence: { scores: scoresMap(entry, variants) },
75
75
  });
76
76
  }
77
77
  else if (max === 1 && min === 1) {
78
78
  issues.push({
79
79
  sample_id: entry.sample_id, severity: 'error', kind: 'all_fail',
80
- message: `所有 variant 得分均为 1 — 样本可能 broken / rubric 不可达`,
80
+ message: `所有 variant 得分均为 1 — 用例可能 broken / rubric 不可达`,
81
81
  evidence: { scores: scoresMap(entry, variants) },
82
82
  });
83
83
  }
84
84
  else if (max - min < opt.flatThreshold) {
85
85
  issues.push({
86
86
  sample_id: entry.sample_id, severity: 'warning', kind: 'flat_scores',
87
- message: `分差 ${(max - min).toFixed(2)} < ${opt.flatThreshold} — 区分度低,该样本对结论贡献小`,
87
+ message: `分差 ${(max - min).toFixed(2)} < ${opt.flatThreshold} — 区分度低,该用例对结论贡献小`,
88
88
  evidence: { scores: scoresMap(entry, variants), spread: Number((max - min).toFixed(2)) },
89
89
  });
90
90
  }
@@ -93,7 +93,7 @@ export function diagnoseSamples(report, options = {}) {
93
93
  if (errors > 0) {
94
94
  issues.push({
95
95
  sample_id: entry.sample_id, severity: errors === variants.length ? 'error' : 'warning', kind: 'error_prone',
96
- message: `${errors}/${variants.length} variant 执行失败 — 检查样本配置 / 环境依赖`,
96
+ message: `${errors}/${variants.length} variant 执行失败 — 检查用例配置 / 环境依赖`,
97
97
  evidence: { errorCount: errors, variantCount: variants.length },
98
98
  });
99
99
  }
@@ -116,14 +116,14 @@ export function diagnoseSamples(report, options = {}) {
116
116
  if (medianCost > 0 && s.cost >= opt.costOutlierK * medianCost) {
117
117
  issues.push({
118
118
  sample_id: s.entry.sample_id, severity: 'info', kind: 'cost_outlier',
119
- message: `样本总成本 $${s.cost.toFixed(4)} ≥ ${opt.costOutlierK}× 中位数 $${medianCost.toFixed(4)}`,
119
+ message: `用例总成本 $${s.cost.toFixed(4)} ≥ ${opt.costOutlierK}× 中位数 $${medianCost.toFixed(4)}`,
120
120
  evidence: { cost: Number(s.cost.toFixed(4)), medianCost: Number(medianCost.toFixed(4)) },
121
121
  });
122
122
  }
123
123
  if (medianLatency > 0 && s.latencyMs >= opt.latencyOutlierK * medianLatency) {
124
124
  issues.push({
125
125
  sample_id: s.entry.sample_id, severity: 'info', kind: 'latency_outlier',
126
- message: `样本总耗时 ${(s.latencyMs / 1000).toFixed(1)}s ≥ ${opt.latencyOutlierK}× 中位数 ${(medianLatency / 1000).toFixed(1)}s`,
126
+ message: `用例总耗时 ${(s.latencyMs / 1000).toFixed(1)}s ≥ ${opt.latencyOutlierK}× 中位数 ${(medianLatency / 1000).toFixed(1)}s`,
127
127
  evidence: { latencyMs: s.latencyMs, medianMs: medianLatency },
128
128
  });
129
129
  }
@@ -153,7 +153,7 @@ export function diagnoseSamples(report, options = {}) {
153
153
  seenPair.add(key);
154
154
  issues.push({
155
155
  sample_id: prompts[i].id, severity: 'warning', kind: 'near_duplicate',
156
- message: `prompt ROUGE-1 ${score.toFixed(2)} ≥ ${opt.duplicateRouge} 与样本 "${prompts[j].id}" 高度相似`,
156
+ message: `prompt ROUGE-1 ${score.toFixed(2)} ≥ ${opt.duplicateRouge} 与用例 "${prompts[j].id}" 高度相似`,
157
157
  evidence: { duplicateOf: prompts[j].id, rouge1: Number(score.toFixed(2)) },
158
158
  });
159
159
  }
@@ -210,11 +210,11 @@ export function formatSampleDiagnostics(diag, options = {}) {
210
210
  const lines = [];
211
211
  const { topN } = options;
212
212
  lines.push('');
213
- lines.push(` 样本质量诊断 — health score ${diag.healthScore}/100`);
214
- lines.push(` 样本总数: ${diag.totals.samples}, flagged: ${diag.totals.flagged} (errors=${diag.totals.errors}, warnings=${diag.totals.warnings}, infos=${diag.totals.infos})`);
213
+ lines.push(` 用例质量诊断 — health score ${diag.healthScore}/100`);
214
+ lines.push(` 用例总数: ${diag.totals.samples}, flagged: ${diag.totals.flagged} (errors=${diag.totals.errors}, warnings=${diag.totals.warnings}, infos=${diag.totals.infos})`);
215
215
  lines.push('');
216
216
  if (diag.issues.length === 0) {
217
- lines.push(' ✓ 未检测到样本质量问题');
217
+ lines.push(' ✓ 未检测到用例质量问题');
218
218
  lines.push('');
219
219
  return lines.join('\n');
220
220
  }
@@ -239,19 +239,19 @@ export function formatSampleDiagnostics(diag, options = {}) {
239
239
  // Recommendations based on dominant issue kinds.
240
240
  lines.push(' 建议:');
241
241
  if (diag.byKind.all_pass && diag.byKind.all_pass.length > diag.totals.samples * 0.3) {
242
- lines.push(' - 样本太简单 (>30% all-pass) — 加难度 / 加更严断言来拉开 variant 差距');
242
+ lines.push(' - 用例太简单 (>30% all-pass) — 加难度 / 加更严断言来拉开 variant 差距');
243
243
  }
244
244
  if (diag.byKind.flat_scores && diag.byKind.flat_scores.length > diag.totals.samples * 0.3) {
245
- lines.push(' - 多数样本区分度低 — 当前评分维度可能与 skill 差异不正交');
245
+ lines.push(' - 多数用例区分度低 — 当前评分维度可能与 skill 差异不正交');
246
246
  }
247
247
  if (diag.byKind.near_duplicate) {
248
- lines.push(' - 删除或改写 near-duplicate 样本,避免数据有效维度被挤压');
248
+ lines.push(' - 删除或改写 near-duplicate 用例,避免数据有效维度被挤压');
249
249
  }
250
250
  if (diag.byKind.ambiguous_rubric) {
251
- lines.push(' - rubric 在这些样本上歧义大 — 改写 rubric 或加更多确定性断言锚定');
251
+ lines.push(' - rubric 在这些用例上歧义大 — 改写 rubric 或加更多确定性断言锚定');
252
252
  }
253
253
  if (diag.byKind.error_prone) {
254
- lines.push(' - 这些样本执行失败 — 检查环境依赖 / executor 配置 / 样本本身是否过期');
254
+ lines.push(' - 这些用例执行失败 — 检查环境依赖 / executor 配置 / 用例本身是否过期');
255
255
  }
256
256
  lines.push('');
257
257
  return lines.join('\n');
@@ -1,4 +1,4 @@
1
- import type { ProgressCallback, Report } from '../types.js';
1
+ import type { ProgressCallback, Report } from '../types/index.js';
2
2
  interface WeakSample {
3
3
  sample_id: string;
4
4
  compositeScore: number;
@@ -1 +1 @@
1
- {"version":3,"file":"evolver.d.ts","sourceRoot":"","sources":["../../../src/authoring/evolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evolver.d.ts","sourceRoot":"","sources":["../../../src/authoring/evolver.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { analyzeResults } from '../analysis/report-diagnostics.js';
7
7
  const IMPROVE_SYSTEM_PROMPT = `你是一个 AI 提示词改进专家。你的任务是分析评测结果中的薄弱环节,针对性地改进 skill(系统提示词),使其在评测中获得更高的分数。
8
8
 
9
9
  改进原则:
10
- 1. 针对低分样本暴露的具体问题做改进,不要泛泛修改
10
+ 1. 针对低分用例暴露的具体问题做改进,不要泛泛修改
11
11
  2. 保留当前版本中已经表现良好的部分
12
12
  3. 保持 skill 的整体结构和格式
13
13
  4. 改进应该具体、可执行,不要空泛的描述
@@ -68,9 +68,9 @@ export function buildImprovementPrompt(skillContent, score, weakSamples) {
68
68
 
69
69
  ${skillContent}
70
70
 
71
- ## 低分样本分析
71
+ ## 低分用例分析
72
72
 
73
- ${weakDetails || '(无低分样本)'}
73
+ ${weakDetails || '(无低分用例)'}
74
74
 
75
75
  请基于以上分析改进 Skill,使其在这些场景中表现更好。直接输出改进后的完整 Skill 内容。`;
76
76
  }
@@ -152,9 +152,9 @@ export async function evolveSkill({ skillPath, samplesPath, rounds = 5, target =
152
152
  const skillName = readSkillName(absSkillPath) ?? (fileBaseName === 'SKILL' ? basename(skillDir) : fileBaseName);
153
153
  const evolveDir = join(skillDir, 'evolve');
154
154
  if (!existsSync(absSkillPath))
155
- throw new Error(`skill 文件未找到: ${absSkillPath}`);
155
+ throw new Error(`skill file not found: ${absSkillPath}`);
156
156
  if (!existsSync(absSamplesPath))
157
- throw new Error(`样本文件未找到: ${absSamplesPath}`);
157
+ throw new Error(`samples file not found: ${absSamplesPath}`);
158
158
  mkdirSync(evolveDir, { recursive: true });
159
159
  // Save original as r0
160
160
  let currentBest = readFileSync(absSkillPath, 'utf-8').trim();
@@ -1 +1 @@
1
- {"version":3,"file":"evolver.js","sourceRoot":"","sources":["../../../src/authoring/evolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,MAAM,qBAAqB,GAAG;;;;;;;;8CAQgB,CAAC;AAU/C;;;;GAIG;AACH,SAAS,aAAa,CAAC,SAAiB;IACtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,UAAkB,EAAE,QAAgB,CAAC;IACtF,OAAO,MAAM,CAAC,OAAO;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC5D,OAAO;YACL,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;YAC9B,gBAAgB,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;YAC3G,UAAU,EAAE,CAAC,CAAC,UAAU;gBACtB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC,CAAC;gBAClI,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;SACnD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAoB,EAAE,KAAa,EAAE,WAAyB;IACnG,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,cAAc,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrF,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO,oBAAoB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;;EAE3C,YAAY;;;;EAIZ,WAAW,IAAI,SAAS;;kDAEwB,CAAC;AACnD,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,wCAAwC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACnE,IAAI,KAAK;QAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,kEAAkE;IAClE,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjF,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AA0DD,MAAM,UAAU,kBAAkB,CAAC,YAA2B,EAAE,SAAiB,EAAE,YAAoB;IACrG,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3C,6DAA6D;IAC7D,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAExE,+DAA+D;IAC/D,MAAM,OAAO,GAA8C,EAAE,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,6DAA6D;IAC7D,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAkC,EAAE,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;YACnF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,gGAAgG;IAChG,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CACnE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,GAAG,GAAG;QACN,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACzB,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,UAAmB,EAAE,YAAY,EAAE,UAAmB,EAAE,iBAAiB,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3I,CAAC,CAAC,CACJ,CAAC;IAEF,6DAA6D;IAC7D,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,WAAW;YAAE,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,SAAS,IAAI,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEjG,MAAM,MAAM,GAAW;QACrB,EAAE,EAAE,KAAK;QACT,IAAI,EAAE;YACJ,GAAG,WAAW,CAAC,IAAI;YACnB,QAAQ,EAAE,aAAa;YACvB,cAAc;YACd,cAAc;YACd,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;QACD,OAAO;QACP,OAAO;KACR,CAAC;IAEF,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAChC,SAAS,EACT,WAAW,EACX,MAAM,GAAG,CAAC,EACV,MAAM,GAAG,IAAI,EACb,KAAK,GAAG,aAAa,EACrB,UAAU,GAAG,WAAW,EACxB,YAAY,GAAG,aAAa,EAC5B,YAAY,GAAG,QAAQ,EACvB,WAAW,GAAG,CAAC,EACf,SAAS,EACT,aAAa,GAAG,KAAK,EACrB,UAAU,GAAG,IAAI,EACjB,eAAe,GAAG,IAAI,GACR;IACd,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,cAAc,EAAE,CAAC,CAAC;IAC/E,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,sBAAsB;IACtB,IAAI,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IACrD,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,WAAW,GAAa,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;QAC5C,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU;KAC1H,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,iBAAiB,IAAI,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;IACtD,YAAY,IAAI,YAAY,CAAC;IAE7B,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACjG,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACxE,IAAI,eAAe;QAAE,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAEpI,iBAAiB;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,qDAAqD;QACrD,MAAM,UAAU,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YACvF,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU;SAC1H,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAEnE,uBAAuB;QACvB,MAAM,aAAa,GAAG,sBAAsB,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QAE/H,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtB,IAAI,eAAe;gBAAE,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YACjH,kBAAkB,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACxG,YAAY,IAAI,aAAa,CAAC,OAAO,CAAC;YACtC,IAAI,kBAAkB,IAAI,CAAC;gBAAE,MAAM;YACnC,SAAS;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,aAAa,CAAC,MAAO,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC;QACnE,aAAa,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAC/C,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhC,qBAAqB;QACrB,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE;YACpD,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU;SAC1H,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,iBAAiB,IAAI,CAAC,CAAC;QAC5F,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5E,YAAY,IAAI,SAAS,CAAC;QAE1B,MAAM,KAAK,GAAG,cAAc,GAAG,SAAS,CAAC;QACzC,MAAM,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;QAC5C,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAEhE,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,GAAG,gBAAgB,CAAC;YAC/B,SAAS,GAAG,cAAc,CAAC;YAC3B,SAAS,GAAG,KAAK,CAAC;YAClB,kBAAkB,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,kBAAkB,EAAE,CAAC;QACvB,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACvF,IAAI,eAAe;YAAE,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAEhJ,aAAa;QACb,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM;YAAE,MAAM;QACzC,IAAI,kBAAkB,IAAI,CAAC;YAAE,MAAM;IACrC,CAAC;IAED,2CAA2C;IAC3C,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEzC,+CAA+C;IAC/C,IAAI,QAA4B,CAAC;IACjC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/E,aAAa,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAChD,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;QAC/B,UAAU,EAAE,SAAS;QACrB,SAAS;QACT,WAAW,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,qBAAqB;QACzD,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7C,UAAU;QACV,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC;QACrC,WAAW;QACX,QAAQ;KACT,CAAC;AACJ,CAAC;AAcD,KAAK,UAAU,QAAQ,CAAC,aAAqB,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAmB;IAC3K,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC;QACrC,WAAW;QACX,QAAQ;QACR,gDAAgD;QAChD,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAC/E,KAAK;QACL,UAAU;QACV,SAAS,EAAE,IAAI,EAAE,qCAAqC;QACtD,WAAW;QACX,SAAS;QACT,YAAY;QACZ,aAAa;QACb,UAAU;KACX,CAAC,CAAC;IACH,OAAO,MAAgB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"evolver.js","sourceRoot":"","sources":["../../../src/authoring/evolver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Sample } from '../types.js';
1
+ import type { Sample } from '../types/index.js';
2
2
  interface GenerateSamplesOptions {
3
3
  skillContent: string;
4
4
  count?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/authoring/generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAyB1C,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,eAAe,CAAC,EAAE,YAAY,EAAE,KAAS,EAAE,KAAqB,EAAE,YAAuB,EAAE,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwC1L"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/authoring/generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAyBhD,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,eAAe,CAAC,EAAE,YAAY,EAAE,KAAS,EAAE,KAAqB,EAAE,YAAuB,EAAE,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwC1L"}
@@ -1,7 +1,7 @@
1
1
  import { createExecutor, DEFAULT_MODEL } from '../executors/index.js';
2
- const SYSTEM_PROMPT = `你是一个评测用例生成器。你的任务是根据用户提供的 skill(系统提示词)内容,生成高质量的测试样本。
2
+ const SYSTEM_PROMPT = `你是一个评测用例生成器。你的任务是根据用户提供的 skill(系统提示词)内容,生成高质量的测试用例。
3
3
 
4
- 每个样本需包含以下字段:
4
+ 每个用例需包含以下字段:
5
5
  - sample_id: 唯一标识,格式为 s001, s002, ...
6
6
  - prompt: 用户会向使用此 skill 的 AI 提出的典型问题或指令
7
7
  - context: 可选,附加上下文信息(如代码片段、文档段落等),仅在需要时提供
@@ -12,7 +12,7 @@ const SYSTEM_PROMPT = `你是一个评测用例生成器。你的任务是根据
12
12
  - { "type": "regex", "pattern": "正则表达式", "weight": 1 }
13
13
 
14
14
  要求:
15
- 1. 测试样本应覆盖 skill 的不同能力维度
15
+ 1. 测试用例应覆盖 skill 的不同能力维度
16
16
  2. prompt 要贴近真实用户的使用场景
17
17
  3. rubric 要具体,不要泛泛而谈
18
18
  4. assertions 要有区分度,能检测出有无 skill 的差异
@@ -27,10 +27,10 @@ export async function generateSamples({ skillContent, count = 5, model = DEFAULT
27
27
 
28
28
  ${skillContent}
29
29
 
30
- 请根据这个 skill 生成 ${count} 个测试样本。直接输出 JSON 数组。`;
30
+ 请根据这个 skill 生成 ${count} 个测试用例。直接输出 JSON 数组。`;
31
31
  const result = await executor({ model, system: SYSTEM_PROMPT, prompt });
32
32
  if (!result.ok) {
33
- throw new Error(`生成失败: ${result.error || 'unknown error'}`);
33
+ throw new Error(`generation failed: ${result.error || 'unknown error'}`);
34
34
  }
35
35
  // Extract JSON from output (handle possible markdown code blocks)
36
36
  let jsonStr = result.output.trim();
@@ -43,17 +43,17 @@ ${skillContent}
43
43
  samples = JSON.parse(jsonStr);
44
44
  }
45
45
  catch {
46
- throw new Error('生成的内容不是有效的 JSON,请重试');
46
+ throw new Error('generated content is not valid JSON, please retry');
47
47
  }
48
48
  if (!Array.isArray(samples) || samples.length === 0) {
49
- throw new Error('生成结果为空,请重试');
49
+ throw new Error('generated result is empty, please retry');
50
50
  }
51
51
  // Validate required fields
52
52
  for (const [i, s] of samples.entries()) {
53
53
  if (!s.sample_id)
54
54
  s.sample_id = `s${String(i + 1).padStart(3, '0')}`;
55
55
  if (!s.prompt)
56
- throw new Error(`samples[${i}] 缺少 prompt 字段`);
56
+ throw new Error(`samples[${i}] missing required prompt field`);
57
57
  }
58
58
  return { samples, costUSD: result.costUSD };
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/authoring/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtE,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;uCAqBiB,CAAC;AASxC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,YAAY,GAAG,QAAQ,EAA0B;IACvI,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG;;EAEf,YAAY;;iBAEG,KAAK,sBAAsB,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAExE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,kEAAkE;IAClE,IAAI,OAAO,GAAG,MAAM,CAAC,MAAO,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,CAAC,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/authoring/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtE,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;uCAqBiB,CAAC;AASxC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,YAAY,GAAG,QAAQ,EAA0B;IACvI,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG;;EAEf,YAAY;;iBAEG,KAAK,sBAAsB,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAExE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,kEAAkE;IAClE,IAAI,OAAO,GAAG,MAAM,CAAC,MAAO,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,CAAC,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC9C,CAAC"}