oh-my-knowledge 0.20.1 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -4
- package/README.zh.md +9 -4
- package/dist/src/analysis/coverage-analyzer.d.ts +1 -1
- package/dist/src/analysis/coverage-analyzer.d.ts.map +1 -1
- package/dist/src/analysis/failure-clusterer.d.ts +1 -1
- package/dist/src/analysis/failure-clusterer.d.ts.map +1 -1
- package/dist/src/analysis/gap-analyzer.d.ts +2 -2
- package/dist/src/analysis/gap-analyzer.d.ts.map +1 -1
- package/dist/src/analysis/gap-analyzer.js +4 -4
- package/dist/src/analysis/hedging-classifier.d.ts +1 -1
- package/dist/src/analysis/hedging-classifier.d.ts.map +1 -1
- package/dist/src/analysis/report-diagnostics.d.ts +1 -1
- package/dist/src/analysis/report-diagnostics.d.ts.map +1 -1
- package/dist/src/analysis/report-diagnostics.js +7 -7
- package/dist/src/analysis/sample-diagnostics.d.ts +1 -1
- package/dist/src/analysis/sample-diagnostics.d.ts.map +1 -1
- package/dist/src/analysis/sample-diagnostics.js +15 -15
- package/dist/src/authoring/evolver.d.ts +1 -1
- package/dist/src/authoring/evolver.d.ts.map +1 -1
- package/dist/src/authoring/evolver.js +5 -5
- package/dist/src/authoring/evolver.js.map +1 -1
- package/dist/src/authoring/generator.d.ts +1 -1
- package/dist/src/authoring/generator.d.ts.map +1 -1
- package/dist/src/authoring/generator.js +8 -8
- package/dist/src/authoring/generator.js.map +1 -1
- package/dist/src/cli/i18n-dict.d.ts +56 -0
- package/dist/src/cli/i18n-dict.d.ts.map +1 -0
- package/dist/src/cli/i18n-dict.js +934 -0
- package/dist/src/cli/i18n-dict.js.map +1 -0
- package/dist/src/cli/i18n.d.ts +24 -0
- package/dist/src/cli/i18n.d.ts.map +1 -0
- package/dist/src/cli/i18n.js +53 -0
- package/dist/src/cli/i18n.js.map +1 -0
- package/dist/src/cli.js +320 -413
- package/dist/src/cli.js.map +1 -1
- package/dist/src/eval-core/cache.d.ts +7 -3
- package/dist/src/eval-core/cache.d.ts.map +1 -1
- package/dist/src/eval-core/cache.js +14 -4
- package/dist/src/eval-core/cache.js.map +1 -1
- package/dist/src/eval-core/dependency-checker.d.ts +16 -1
- package/dist/src/eval-core/dependency-checker.d.ts.map +1 -1
- package/dist/src/eval-core/dependency-checker.js +79 -4
- package/dist/src/eval-core/dependency-checker.js.map +1 -1
- package/dist/src/eval-core/evaluation-execution.d.ts +3 -3
- package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-execution.js +4 -2
- package/dist/src/eval-core/evaluation-execution.js.map +1 -1
- package/dist/src/eval-core/evaluation-job.d.ts +2 -2
- package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts +1 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.js +4 -0
- package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
- package/dist/src/eval-core/execution-strategy.d.ts +1 -1
- package/dist/src/eval-core/execution-strategy.d.ts.map +1 -1
- package/dist/src/eval-core/execution-strategy.js +35 -2
- package/dist/src/eval-core/execution-strategy.js.map +1 -1
- package/dist/src/eval-core/layer-gates.d.ts +17 -0
- package/dist/src/eval-core/layer-gates.d.ts.map +1 -0
- package/dist/src/eval-core/{ci-gates.js → layer-gates.js} +5 -5
- package/dist/src/eval-core/layer-gates.js.map +1 -0
- package/dist/src/eval-core/schema.d.ts +1 -1
- package/dist/src/eval-core/schema.d.ts.map +1 -1
- package/dist/src/eval-core/schema.js +17 -3
- package/dist/src/eval-core/schema.js.map +1 -1
- package/dist/src/eval-core/task-planner.d.ts +1 -1
- package/dist/src/eval-core/task-planner.d.ts.map +1 -1
- package/dist/src/eval-core/task-planner.js +1 -1
- package/dist/src/eval-core/task-planner.js.map +1 -1
- package/dist/src/eval-core/verdict.d.ts +5 -2
- package/dist/src/eval-core/verdict.d.ts.map +1 -1
- package/dist/src/eval-core/verdict.js +47 -8
- package/dist/src/eval-core/verdict.js.map +1 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts +15 -8
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts.map +1 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.js +3 -2
- package/dist/src/eval-workflows/each-evaluation-workflow.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +33 -4
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +81 -2
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.d.ts +10 -6
- package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.js +2 -2
- package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +16 -5
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.js +34 -5
- package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
- package/dist/src/executors/anthropic-api.d.ts +1 -1
- package/dist/src/executors/anthropic-api.d.ts.map +1 -1
- package/dist/src/executors/anthropic-api.js +1 -1
- package/dist/src/executors/anthropic-api.js.map +1 -1
- package/dist/src/executors/claude-cli.d.ts +2 -2
- package/dist/src/executors/claude-cli.d.ts.map +1 -1
- package/dist/src/executors/claude-cli.js +21 -1
- package/dist/src/executors/claude-cli.js.map +1 -1
- package/dist/src/executors/claude-sdk-trace.d.ts +1 -1
- package/dist/src/executors/claude-sdk-trace.d.ts.map +1 -1
- package/dist/src/executors/claude-sdk.d.ts +15 -2
- package/dist/src/executors/claude-sdk.d.ts.map +1 -1
- package/dist/src/executors/claude-sdk.js +19 -1
- package/dist/src/executors/claude-sdk.js.map +1 -1
- package/dist/src/executors/gemini.d.ts +1 -1
- package/dist/src/executors/gemini.d.ts.map +1 -1
- package/dist/src/executors/index.d.ts +1 -1
- package/dist/src/executors/index.d.ts.map +1 -1
- package/dist/src/executors/openai-api.d.ts +1 -1
- package/dist/src/executors/openai-api.d.ts.map +1 -1
- package/dist/src/executors/openai-api.js +1 -1
- package/dist/src/executors/openai-api.js.map +1 -1
- package/dist/src/executors/openai-cli.d.ts +1 -1
- package/dist/src/executors/openai-cli.d.ts.map +1 -1
- package/dist/src/executors/script.d.ts +1 -1
- package/dist/src/executors/script.d.ts.map +1 -1
- package/dist/src/executors/script.js +10 -1
- package/dist/src/executors/script.js.map +1 -1
- package/dist/src/executors/shared.d.ts +1 -1
- package/dist/src/executors/shared.d.ts.map +1 -1
- package/dist/src/grading/assertions.d.ts +1 -1
- package/dist/src/grading/assertions.d.ts.map +1 -1
- package/dist/src/grading/debias-validate.d.ts +1 -1
- package/dist/src/grading/debias-validate.d.ts.map +1 -1
- package/dist/src/grading/debias-validate.js +3 -3
- package/dist/src/grading/gold-cli.d.ts +1 -1
- package/dist/src/grading/gold-cli.d.ts.map +1 -1
- package/dist/src/grading/gold-cli.js +3 -3
- package/dist/src/grading/gold-cli.js.map +1 -1
- package/dist/src/grading/index.d.ts +1 -1
- package/dist/src/grading/index.d.ts.map +1 -1
- package/dist/src/grading/judge.d.ts +1 -1
- package/dist/src/grading/judge.d.ts.map +1 -1
- package/dist/src/grading/layered-scores.d.ts +1 -1
- package/dist/src/grading/layered-scores.d.ts.map +1 -1
- package/dist/src/inputs/eval-config.d.ts +1 -1
- package/dist/src/inputs/eval-config.d.ts.map +1 -1
- package/dist/src/inputs/eval-config.js +37 -18
- package/dist/src/inputs/eval-config.js.map +1 -1
- package/dist/src/inputs/load-samples.d.ts +1 -1
- package/dist/src/inputs/load-samples.d.ts.map +1 -1
- package/dist/src/inputs/load-samples.js +4 -4
- package/dist/src/inputs/load-samples.js.map +1 -1
- package/dist/src/inputs/mcp-resolver.d.ts +1 -1
- package/dist/src/inputs/mcp-resolver.d.ts.map +1 -1
- package/dist/src/inputs/mcp-resolver.js +4 -4
- package/dist/src/inputs/mcp-resolver.js.map +1 -1
- package/dist/src/inputs/skill-loader.d.ts +11 -2
- package/dist/src/inputs/skill-loader.d.ts.map +1 -1
- package/dist/src/inputs/skill-loader.js +30 -7
- package/dist/src/inputs/skill-loader.js.map +1 -1
- package/dist/src/inputs/url-fetcher.d.ts +1 -1
- package/dist/src/inputs/url-fetcher.d.ts.map +1 -1
- package/dist/src/inputs/url-fetcher.js +2 -2
- package/dist/src/inputs/url-fetcher.js.map +1 -1
- package/dist/src/observability/skill-health-analyzer.d.ts +1 -1
- package/dist/src/observability/skill-health-analyzer.d.ts.map +1 -1
- package/dist/src/observability/trace-adapter.d.ts +1 -1
- package/dist/src/observability/trace-adapter.d.ts.map +1 -1
- package/dist/src/renderer/html-renderer.d.ts +1 -1
- package/dist/src/renderer/html-renderer.d.ts.map +1 -1
- package/dist/src/renderer/html-renderer.js +3 -3
- package/dist/src/renderer/html-renderer.js.map +1 -1
- package/dist/src/renderer/layout.d.ts +1 -1
- package/dist/src/renderer/layout.d.ts.map +1 -1
- package/dist/src/renderer/layout.js +1 -1
- package/dist/src/renderer/layout.js.map +1 -1
- package/dist/src/renderer/skill-health-renderer.d.ts +1 -1
- package/dist/src/renderer/skill-health-renderer.d.ts.map +1 -1
- package/dist/src/renderer/summary.d.ts +1 -1
- package/dist/src/renderer/summary.d.ts.map +1 -1
- package/dist/src/renderer/summary.js +22 -20
- package/dist/src/renderer/summary.js.map +1 -1
- package/dist/src/renderer/table.d.ts +1 -1
- package/dist/src/renderer/table.d.ts.map +1 -1
- package/dist/src/renderer/trends.d.ts +1 -1
- package/dist/src/renderer/trends.d.ts.map +1 -1
- package/dist/src/renderer/trends.js +1 -1
- package/dist/src/renderer/trends.js.map +1 -1
- package/dist/src/server/job-store.d.ts +1 -1
- package/dist/src/server/job-store.d.ts.map +1 -1
- package/dist/src/server/report-server.d.ts +1 -1
- package/dist/src/server/report-server.d.ts.map +1 -1
- package/dist/src/server/report-server.js +20 -20
- package/dist/src/server/report-server.js.map +1 -1
- package/dist/src/server/report-store.d.ts +1 -1
- package/dist/src/server/report-store.d.ts.map +1 -1
- package/dist/src/types/eval.d.ts +9 -0
- package/dist/src/types/eval.d.ts.map +1 -1
- package/dist/src/types/executor.d.ts +1 -0
- package/dist/src/types/executor.d.ts.map +1 -1
- package/dist/src/types/report.d.ts +10 -0
- package/dist/src/types/report.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/src/eval-core/ci-gates.d.ts +0 -17
- package/dist/src/eval-core/ci-gates.d.ts.map +0 -1
- package/dist/src/eval-core/ci-gates.js.map +0 -1
- package/dist/src/types.d.ts +0 -2
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -6
- 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
|
|
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
|
|
@@ -42,6 +42,7 @@ The biggest LLM-eval failure mode is "confident bias" — narrow CIs around the
|
|
|
42
42
|
| Length-debias judge prompt | ✓ default | ✗ | ✗ | ✗ | ✗ |
|
|
43
43
|
| Saturation curve | ✓ | ✗ | ✗ | ✗ | ✗ |
|
|
44
44
|
| Three-layer scoring isolation | ✓ | ✗ | partial | ✗ | ✗ |
|
|
45
|
+
| Per-variant skill isolation (construct validity) | ✓ default | ✗ | ✗ | ✗ | ✗ |
|
|
45
46
|
| Native Claude Code skill | ✓ | ✗ | ✗ | ✗ | ✗ |
|
|
46
47
|
| Full Chinese docs | ✓ | ✗ | ✗ | ✗ | ✗ |
|
|
47
48
|
| Hosted SaaS dashboard | ✗ | ✗ | ✓ | ✗ | ✓ |
|
|
@@ -70,6 +71,10 @@ omk bench run --dry-run
|
|
|
70
71
|
|
|
71
72
|
# run the evaluation (auto-discovers everything under skills/)
|
|
72
73
|
omk bench run
|
|
74
|
+
|
|
75
|
+
# CLI output language: zh (default) / en — flag wins over env
|
|
76
|
+
omk bench run --lang en
|
|
77
|
+
OMK_LANG=en omk bench report
|
|
73
78
|
```
|
|
74
79
|
|
|
75
80
|
## Use inside Claude Code
|
|
@@ -92,6 +97,7 @@ You can also just say "compare v1 vs v2 for me" or "improve this artifact" — o
|
|
|
92
97
|
| **Assertion negation + composition** | universal `not: true` field + `assert-set` (any/all) with arbitrary nesting |
|
|
93
98
|
| **Six-dim evaluation** | Fact / Behavior / LLM-judge / Cost / Efficiency / Stability shown independently |
|
|
94
99
|
| **Statistical rigor** | Bootstrap CI / Krippendorff α / length-debias / saturation curve |
|
|
100
|
+
| **Construct-validity isolation** | `--strict-baseline` (default ON) cuts three contamination channels so baseline doesn't silently see the skill it's being compared against: (1) SDK skill auto-discovery, (2) subagent Skill tool, (3) cwd file-system access via the `skills/<name>/` symlink that's normally there for the treatment variant. eval.yaml `allowedSkills` for per-variant whitelists |
|
|
95
101
|
| **One-line verdict** | `omk bench verdict <id>` six-tier verdict + ship recommendation + exit-code routing; HTML pill shares the same rules |
|
|
96
102
|
| **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` — anti-hallucination + answer relevance + context coverage; auto-inherits length-debias |
|
|
97
103
|
| **Sample diagnostics** | `omk bench diagnose <id>` — 7 issue kinds (low discrimination / duplicates / ambiguous rubric / cost outliers / etc.) + 0-100 healthScore |
|
|
@@ -486,14 +492,14 @@ Options:
|
|
|
486
492
|
|
|
487
493
|
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
494
|
|
|
489
|
-
### `omk bench
|
|
495
|
+
### `omk bench gate`
|
|
490
496
|
|
|
491
497
|
Run the evaluation inside CI. Exit code 0 on pass, 1 on fail — can be wired into gates directly.
|
|
492
498
|
|
|
493
499
|
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
500
|
|
|
495
501
|
```bash
|
|
496
|
-
omk bench
|
|
502
|
+
omk bench gate [options]
|
|
497
503
|
--threshold <number> per-layer minimum score (default: 3.5); applied
|
|
498
504
|
independently to fact / behavior / judge
|
|
499
505
|
```
|
|
@@ -569,7 +575,7 @@ Aggregates bootstrap CI / three-layer ci-gate / saturation / human α into one o
|
|
|
569
575
|
|
|
570
576
|
```bash
|
|
571
577
|
omk bench verdict <reportId> [options]
|
|
572
|
-
--threshold <num> three-layer gate threshold (default 3.5, matches `omk bench
|
|
578
|
+
--threshold <num> three-layer gate threshold (default 3.5, matches `omk bench gate`)
|
|
573
579
|
--trivial-diff <num> "practically tiny" cutoff (default 0.1)
|
|
574
580
|
--verbose expand per-pair detail
|
|
575
581
|
```
|
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
|
|
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 中使用
|
|
@@ -91,6 +95,7 @@ omk bench run
|
|
|
91
95
|
| **断言取反 + 组合** | 通用 `not: true` 字段 + `assert-set` (any/all) 任意嵌套 |
|
|
92
96
|
| **六维评估** | 事实 / 行为 / LLM 评价 / 成本 / 效率 / 稳定性独立展示 |
|
|
93
97
|
| **统计严谨性** | Bootstrap CI / Krippendorff α / Length-debias / Saturation curve |
|
|
98
|
+
| **用例隔离 (construct validity)** | `--strict-baseline` (默认开) 三堵 baseline 拿到被测 skill 的污染路径:(1) SDK skill auto-discovery (2) subagent Skill 工具调用 (3) cwd 文件系统(避免 baseline 顺 `skills/<name>/` symlink 直接 Read 到 SKILL.md)。eval.yaml `allowedSkills` 支持 per-variant 白名单 |
|
|
94
99
|
| **Verdict 一行结论** | `omk bench verdict <id>` 六档判定 + ship 建议 + exit code 路由,与 HTML 报告 verdict pill 共享规则 |
|
|
95
100
|
| **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` 三 metric — 反幻觉 + 切题度 + context 覆盖,自动继承 length-debias |
|
|
96
101
|
| **样本质量诊断** | `omk bench diagnose <id>` 7 类 issue(区分度低 / 重复 / 歧义 / 成本异常 / 全 fail 等)+ healthScore 0-100 |
|
|
@@ -480,14 +485,14 @@ omk bench evolve skills/my-skill.md --rounds 10 --target 4.5
|
|
|
480
485
|
|
|
481
486
|
每轮产出保存在 `skills/evolve/` 目录(`my-skill.r0.md`、`my-skill.r1.md`...),可以 diff 查看 AI 改了什么。最佳版本自动写回原始文件。
|
|
482
487
|
|
|
483
|
-
### `omk bench
|
|
488
|
+
### `omk bench gate`
|
|
484
489
|
|
|
485
490
|
在自动化流水线中运行评测。评分达标则退出码为 0(通过),否则为 1(失败),可直接用于卡点判断。
|
|
486
491
|
|
|
487
492
|
门禁是**三层 all-pass**:`avgFactScore >= threshold AND avgBehaviorScore >= threshold AND avgJudgeScore >= threshold`,任一层低于阈值即 FAIL,输出显示是哪一层破了 gate。这样能把"事实 4.5→2.5 但 judge 3→5"这种合成分均值不变但事实层崩盘的 case 暴露出来 — 任何一层退化都会被卡住。
|
|
488
493
|
|
|
489
494
|
```bash
|
|
490
|
-
omk bench
|
|
495
|
+
omk bench gate [选项]
|
|
491
496
|
--threshold <数值> 各层最低分数(默认:3.5);独立应用于
|
|
492
497
|
fact / behavior / judge 三层
|
|
493
498
|
```
|
|
@@ -563,7 +568,7 @@ HTML 报告会内联 SVG 饱和曲线(横 N,纵 mean ± 95% CI 阴影带,p
|
|
|
563
568
|
|
|
564
569
|
```bash
|
|
565
570
|
omk bench verdict <reportId> [选项]
|
|
566
|
-
--threshold <num> 三层 gate 阈值 (默认 3.5,匹配 omk bench
|
|
571
|
+
--threshold <num> 三层 gate 阈值 (默认 3.5,匹配 omk bench gate)
|
|
567
572
|
--trivial-diff <num> "幅度太小"阈值 (默认 0.1)
|
|
568
573
|
--verbose 展开 per-pair 详情
|
|
569
574
|
```
|
|
@@ -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,
|
|
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,
|
|
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:
|
|
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,
|
|
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:
|
|
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
|
-
//
|
|
291
|
-
//
|
|
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,
|
|
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,
|
|
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(
|
|
129
|
+
diffs.push(`单用例成本 $${tCost.toFixed(4)} vs $${cCost.toFixed(4)}(↓${pct}%)`);
|
|
130
130
|
}
|
|
131
131
|
else {
|
|
132
|
-
diffs.push(
|
|
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}
|
|
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
|
-
?
|
|
418
|
-
:
|
|
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}
|
|
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,
|
|
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 —
|
|
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:
|
|
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:
|
|
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}
|
|
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(`
|
|
214
|
-
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})`);
|
|
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(' -
|
|
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(' -
|
|
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
|
|
251
|
+
lines.push(' - rubric 在这些用例上歧义大 — 改写 rubric 或加更多确定性断言锚定');
|
|
252
252
|
}
|
|
253
253
|
if (diag.byKind.error_prone) {
|
|
254
|
-
lines.push(' -
|
|
254
|
+
lines.push(' - 这些用例执行失败 — 检查环境依赖 / executor 配置 / 用例本身是否过期');
|
|
255
255
|
}
|
|
256
256
|
lines.push('');
|
|
257
257
|
return lines.join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolver.d.ts","sourceRoot":"","sources":["../../../src/authoring/evolver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAA8B,MAAM,
|
|
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
|
|
155
|
+
throw new Error(`skill file not found: ${absSkillPath}`);
|
|
156
156
|
if (!existsSync(absSamplesPath))
|
|
157
|
-
throw new Error(
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"evolver.js","sourceRoot":"","sources":["../../../src/authoring/evolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/authoring/generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
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.
|
|
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}
|
|
30
|
+
请根据这个 skill 生成 ${count} 个测试用例。直接输出 JSON 数组。`;
|
|
31
31
|
const result = await executor({ model, system: SYSTEM_PROMPT, prompt });
|
|
32
32
|
if (!result.ok) {
|
|
33
|
-
throw new 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('
|
|
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}]
|
|
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,
|
|
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"}
|