oh-my-knowledge 0.28.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -3
- package/README.zh.md +49 -3
- package/dist/src/analysis/failure-clusterer.js +1 -1
- package/dist/src/analysis/failure-clusterer.js.map +1 -1
- package/dist/src/analysis/gap-analyzer.d.ts +8 -1
- package/dist/src/analysis/gap-analyzer.d.ts.map +1 -1
- package/dist/src/analysis/gap-analyzer.js +65 -33
- package/dist/src/analysis/gap-analyzer.js.map +1 -1
- package/dist/src/analysis/report-diagnostics.js +2 -0
- package/dist/src/analysis/report-diagnostics.js.map +1 -1
- package/dist/src/analysis/sample-diagnostics.js +14 -14
- package/dist/src/analysis/sample-diagnostics.js.map +1 -1
- package/dist/src/authoring/evolver.d.ts +7 -1
- package/dist/src/authoring/evolver.d.ts.map +1 -1
- package/dist/src/authoring/evolver.js +8 -5
- package/dist/src/authoring/evolver.js.map +1 -1
- package/dist/src/authoring/generator.d.ts +21 -23
- package/dist/src/authoring/generator.d.ts.map +1 -1
- package/dist/src/authoring/generator.js +621 -40
- package/dist/src/authoring/generator.js.map +1 -1
- package/dist/src/authoring/sample-fixer.d.ts +45 -0
- package/dist/src/authoring/sample-fixer.d.ts.map +1 -0
- package/dist/src/authoring/sample-fixer.js +186 -0
- package/dist/src/authoring/sample-fixer.js.map +1 -0
- package/dist/src/cli/commands/evolve.d.ts.map +1 -1
- package/dist/src/cli/commands/evolve.js +17 -0
- package/dist/src/cli/commands/evolve.js.map +1 -1
- package/dist/src/cli/commands/observe.d.ts.map +1 -1
- package/dist/src/cli/commands/observe.js +170 -0
- package/dist/src/cli/commands/observe.js.map +1 -1
- package/dist/src/cli/commands/registry.d.ts.map +1 -1
- package/dist/src/cli/commands/registry.js +9 -1
- package/dist/src/cli/commands/registry.js.map +1 -1
- package/dist/src/cli/commands/sample.d.ts +13 -0
- package/dist/src/cli/commands/sample.d.ts.map +1 -1
- package/dist/src/cli/commands/sample.js +307 -13
- package/dist/src/cli/commands/sample.js.map +1 -1
- package/dist/src/cli/commands/studio.d.ts.map +1 -1
- package/dist/src/cli/commands/studio.js +8 -0
- package/dist/src/cli/commands/studio.js.map +1 -1
- package/dist/src/cli/i18n-dict.d.ts +1 -1
- package/dist/src/cli/i18n-dict.d.ts.map +1 -1
- package/dist/src/cli/i18n-dict.js +189 -17
- package/dist/src/cli/i18n-dict.js.map +1 -1
- package/dist/src/cli/parse-run-config.d.ts +14 -2
- package/dist/src/cli/parse-run-config.d.ts.map +1 -1
- package/dist/src/cli/parse-run-config.js +62 -10
- package/dist/src/cli/parse-run-config.js.map +1 -1
- package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -1
- package/dist/src/doctor/health/builtin-dimensions.js +20 -23
- package/dist/src/doctor/health/builtin-dimensions.js.map +1 -1
- package/dist/src/doctor/health/composer.d.ts.map +1 -1
- package/dist/src/doctor/health/composer.js +7 -3
- package/dist/src/doctor/health/composer.js.map +1 -1
- package/dist/src/doctor/health/dimension-spec.d.ts +1 -0
- package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -1
- package/dist/src/doctor/health/parser.d.ts.map +1 -1
- package/dist/src/doctor/health/parser.js +1 -0
- package/dist/src/doctor/health/parser.js.map +1 -1
- package/dist/src/doctor/health/prompt-builder.js +25 -17
- package/dist/src/doctor/health/prompt-builder.js.map +1 -1
- package/dist/src/doctor/html-renderer.d.ts.map +1 -1
- package/dist/src/doctor/html-renderer.js +76 -66
- package/dist/src/doctor/html-renderer.js.map +1 -1
- package/dist/src/doctor/rules.d.ts.map +1 -1
- package/dist/src/doctor/rules.js +32 -0
- package/dist/src/doctor/rules.js.map +1 -1
- package/dist/src/eval-core/cache.d.ts +16 -2
- package/dist/src/eval-core/cache.d.ts.map +1 -1
- package/dist/src/eval-core/cache.js +86 -15
- package/dist/src/eval-core/cache.js.map +1 -1
- package/dist/src/eval-core/evaluation-execution.d.ts +11 -1
- package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-execution.js +78 -6
- package/dist/src/eval-core/evaluation-execution.js.map +1 -1
- package/dist/src/eval-core/evaluation-job.d.ts +2 -1
- package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-job.js +2 -1
- package/dist/src/eval-core/evaluation-job.js.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts +7 -0
- package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.js +19 -2
- 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 +12 -1
- package/dist/src/eval-core/execution-strategy.js.map +1 -1
- package/dist/src/eval-core/mock-hook.cjs +203 -0
- package/dist/src/eval-core/mocks-runtime.d.ts +96 -0
- package/dist/src/eval-core/mocks-runtime.d.ts.map +1 -0
- package/dist/src/eval-core/mocks-runtime.js +323 -0
- package/dist/src/eval-core/mocks-runtime.js.map +1 -0
- package/dist/src/eval-core/schema.d.ts.map +1 -1
- package/dist/src/eval-core/schema.js +18 -5
- package/dist/src/eval-core/schema.js.map +1 -1
- package/dist/src/eval-core/task-planner.d.ts +9 -1
- package/dist/src/eval-core/task-planner.d.ts.map +1 -1
- package/dist/src/eval-core/task-planner.js +40 -1
- package/dist/src/eval-core/task-planner.js.map +1 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +5 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.js +2 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +22 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +39 -12
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.d.ts +5 -0
- package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.js +3 -1
- package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +12 -2
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.js +17 -5
- package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
- package/dist/src/executors/claude-cli.d.ts +1 -1
- package/dist/src/executors/claude-cli.d.ts.map +1 -1
- package/dist/src/executors/claude-cli.js +57 -6
- package/dist/src/executors/claude-cli.js.map +1 -1
- package/dist/src/executors/claude-sdk-trace.d.ts.map +1 -1
- package/dist/src/executors/claude-sdk-trace.js +10 -4
- package/dist/src/executors/claude-sdk-trace.js.map +1 -1
- package/dist/src/executors/claude-sdk.d.ts +1 -1
- package/dist/src/executors/claude-sdk.d.ts.map +1 -1
- package/dist/src/executors/claude-sdk.js +25 -2
- package/dist/src/executors/claude-sdk.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/executors/shared.js +6 -1
- package/dist/src/executors/shared.js.map +1 -1
- package/dist/src/grading/assertions.d.ts +5 -0
- package/dist/src/grading/assertions.d.ts.map +1 -1
- package/dist/src/grading/assertions.js +27 -1
- package/dist/src/grading/assertions.js.map +1 -1
- package/dist/src/grading/debias-validate.js +4 -4
- package/dist/src/grading/debias-validate.js.map +1 -1
- package/dist/src/grading/diagnostic.d.ts +40 -0
- package/dist/src/grading/diagnostic.d.ts.map +1 -0
- package/dist/src/grading/diagnostic.js +450 -0
- package/dist/src/grading/diagnostic.js.map +1 -0
- package/dist/src/grading/gold-cli.js +2 -2
- package/dist/src/grading/gold-cli.js.map +1 -1
- package/dist/src/grading/index.d.ts +5 -0
- package/dist/src/grading/index.d.ts.map +1 -1
- package/dist/src/grading/judge.d.ts.map +1 -1
- package/dist/src/grading/judge.js +54 -2
- package/dist/src/grading/judge.js.map +1 -1
- package/dist/src/grading/layered-scores.d.ts.map +1 -1
- package/dist/src/grading/layered-scores.js +1 -0
- package/dist/src/grading/layered-scores.js.map +1 -1
- package/dist/src/inputs/eval-config.js +19 -0
- package/dist/src/inputs/eval-config.js.map +1 -1
- package/dist/src/inputs/load-samples.d.ts +22 -2
- package/dist/src/inputs/load-samples.d.ts.map +1 -1
- package/dist/src/inputs/load-samples.js +193 -22
- package/dist/src/inputs/load-samples.js.map +1 -1
- package/dist/src/inputs/skill-loader.d.ts.map +1 -1
- package/dist/src/inputs/skill-loader.js +11 -3
- package/dist/src/inputs/skill-loader.js.map +1 -1
- package/dist/src/observability/experience.d.ts +260 -0
- package/dist/src/observability/experience.d.ts.map +1 -0
- package/dist/src/observability/experience.js +1233 -0
- package/dist/src/observability/experience.js.map +1 -0
- package/dist/src/observability/inbox-view-model.d.ts +27 -0
- package/dist/src/observability/inbox-view-model.d.ts.map +1 -0
- package/dist/src/observability/inbox-view-model.js +135 -0
- package/dist/src/observability/inbox-view-model.js.map +1 -0
- package/dist/src/observability/inbox.d.ts +125 -0
- package/dist/src/observability/inbox.d.ts.map +1 -0
- package/dist/src/observability/inbox.js +741 -0
- package/dist/src/observability/inbox.js.map +1 -0
- package/dist/src/observability/problem-patterns.d.ts +51 -0
- package/dist/src/observability/problem-patterns.d.ts.map +1 -0
- package/dist/src/observability/problem-patterns.js +205 -0
- package/dist/src/observability/problem-patterns.js.map +1 -0
- package/dist/src/observability/review-state.d.ts +54 -0
- package/dist/src/observability/review-state.d.ts.map +1 -0
- package/dist/src/observability/review-state.js +131 -0
- package/dist/src/observability/review-state.js.map +1 -0
- package/dist/src/observability/skill-chain-advisories.d.ts +25 -0
- package/dist/src/observability/skill-chain-advisories.d.ts.map +1 -0
- package/dist/src/observability/skill-chain-advisories.js +69 -0
- package/dist/src/observability/skill-chain-advisories.js.map +1 -0
- package/dist/src/observability/skill-chain.d.ts +61 -0
- package/dist/src/observability/skill-chain.d.ts.map +1 -0
- package/dist/src/observability/skill-chain.js +233 -0
- package/dist/src/observability/skill-chain.js.map +1 -0
- package/dist/src/observability/text-signals.d.ts +7 -0
- package/dist/src/observability/text-signals.d.ts.map +1 -0
- package/dist/src/observability/text-signals.js +22 -0
- package/dist/src/observability/text-signals.js.map +1 -0
- package/dist/src/observability/trace-adapter.d.ts +12 -64
- package/dist/src/observability/trace-adapter.d.ts.map +1 -1
- package/dist/src/observability/trace-adapter.js +9 -355
- package/dist/src/observability/trace-adapter.js.map +1 -1
- package/dist/src/observability/trace-attribution.d.ts +56 -0
- package/dist/src/observability/trace-attribution.d.ts.map +1 -0
- package/dist/src/observability/trace-attribution.js +200 -0
- package/dist/src/observability/trace-attribution.js.map +1 -0
- package/dist/src/observability/trace-segmenter.d.ts +52 -0
- package/dist/src/observability/trace-segmenter.d.ts.map +1 -0
- package/dist/src/observability/trace-segmenter.js +320 -0
- package/dist/src/observability/trace-segmenter.js.map +1 -0
- package/dist/src/observability/trace-source.d.ts +99 -0
- package/dist/src/observability/trace-source.d.ts.map +1 -0
- package/dist/src/observability/trace-source.js +492 -0
- package/dist/src/observability/trace-source.js.map +1 -0
- package/dist/src/renderer/html-renderer.d.ts.map +1 -1
- package/dist/src/renderer/html-renderer.js +324 -218
- package/dist/src/renderer/html-renderer.js.map +1 -1
- package/dist/src/renderer/layout.d.ts.map +1 -1
- package/dist/src/renderer/layout.js +155 -71
- package/dist/src/renderer/layout.js.map +1 -1
- package/dist/src/renderer/observation-inbox-renderer.d.ts +4 -0
- package/dist/src/renderer/observation-inbox-renderer.d.ts.map +1 -0
- package/dist/src/renderer/observation-inbox-renderer.js +5376 -0
- package/dist/src/renderer/observation-inbox-renderer.js.map +1 -0
- package/dist/src/renderer/skill-detail-renderer.d.ts +15 -0
- package/dist/src/renderer/skill-detail-renderer.d.ts.map +1 -0
- package/dist/src/renderer/skill-detail-renderer.js +1234 -0
- package/dist/src/renderer/skill-detail-renderer.js.map +1 -0
- package/dist/src/renderer/skill-list-renderer.d.ts +4 -0
- package/dist/src/renderer/skill-list-renderer.d.ts.map +1 -0
- package/dist/src/renderer/skill-list-renderer.js +327 -0
- package/dist/src/renderer/skill-list-renderer.js.map +1 -0
- package/dist/src/renderer/summary.d.ts +17 -0
- package/dist/src/renderer/summary.d.ts.map +1 -1
- package/dist/src/renderer/summary.js +346 -74
- package/dist/src/renderer/summary.js.map +1 -1
- package/dist/src/renderer/table.d.ts.map +1 -1
- package/dist/src/renderer/table.js +213 -167
- package/dist/src/renderer/table.js.map +1 -1
- package/dist/src/renderer/test-view.d.ts +66 -0
- package/dist/src/renderer/test-view.d.ts.map +1 -0
- package/dist/src/renderer/test-view.js +905 -0
- package/dist/src/renderer/test-view.js.map +1 -0
- package/dist/src/renderer/trends.d.ts.map +1 -1
- package/dist/src/renderer/trends.js +3 -1
- package/dist/src/renderer/trends.js.map +1 -1
- package/dist/src/server/report-server.d.ts +6 -1
- package/dist/src/server/report-server.d.ts.map +1 -1
- package/dist/src/server/report-server.js +182 -6
- package/dist/src/server/report-server.js.map +1 -1
- package/dist/src/server/report-store.d.ts.map +1 -1
- package/dist/src/server/report-store.js +33 -1
- package/dist/src/server/report-store.js.map +1 -1
- package/dist/src/server/skill-index.d.ts +77 -0
- package/dist/src/server/skill-index.d.ts.map +1 -0
- package/dist/src/server/skill-index.js +331 -0
- package/dist/src/server/skill-index.js.map +1 -0
- package/dist/src/server/skill-insights.d.ts +92 -0
- package/dist/src/server/skill-insights.d.ts.map +1 -0
- package/dist/src/server/skill-insights.js +676 -0
- package/dist/src/server/skill-insights.js.map +1 -0
- package/dist/src/shared/hard-rules.d.ts +40 -0
- package/dist/src/shared/hard-rules.d.ts.map +1 -0
- package/dist/src/shared/hard-rules.js +200 -0
- package/dist/src/shared/hard-rules.js.map +1 -0
- package/dist/src/shared/time.d.ts +2 -0
- package/dist/src/shared/time.d.ts.map +1 -0
- package/dist/src/shared/time.js +10 -0
- package/dist/src/shared/time.js.map +1 -0
- package/dist/src/shared/tool-search.d.ts +9 -0
- package/dist/src/shared/tool-search.d.ts.map +1 -0
- package/dist/src/shared/tool-search.js +104 -0
- package/dist/src/shared/tool-search.js.map +1 -0
- package/dist/src/types/eval.d.ts +83 -0
- package/dist/src/types/eval.d.ts.map +1 -1
- package/dist/src/types/executor.d.ts +47 -0
- package/dist/src/types/executor.d.ts.map +1 -1
- package/dist/src/types/judge.d.ts +76 -0
- package/dist/src/types/judge.d.ts.map +1 -1
- package/dist/src/types/judge.js +3 -1
- package/dist/src/types/judge.js.map +1 -1
- package/dist/src/types/report.d.ts +63 -3
- package/dist/src/types/report.d.ts.map +1 -1
- package/dist/src/util/safe-slice.d.ts +23 -0
- package/dist/src/util/safe-slice.d.ts.map +1 -0
- package/dist/src/util/safe-slice.js +33 -0
- package/dist/src/util/safe-slice.js.map +1 -0
- package/package.json +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/grading/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,KAAK,CAAC;AAGvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;AACjC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC3C,qBAAqB;IACrB,QAAQ;IACR,sEAAsE;IACtE,2EAA2E;IAC3E,cAAc;IACd,kBAAkB;IAClB,gBAAgB;CACjB,CAAC,CAAC;AA2BH,SAAS,eAAe,CAAC,GAAY;IACnC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,CAAS;IACzB,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,MAAM,CAAC,MAAgB,EAAE,CAAS;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAa,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,UAAoB,EAAE,SAAmB;IAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAChC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,SAAiB,EAAE,SAAiB,EAAE,CAAS;IACpE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACpC,0CAA0C;IAC1C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;QAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,IAAI,GAAG,IAAI,KAAK,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,IAAI,KAAK,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACvE,CAAC;QACD,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,SAAiB,EAAE,SAAiB,EAAE,IAAI,GAAG,CAAC;IACjE,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEjD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC5B,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5E,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,MAA+B;IAC/E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAY,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CACpB,MAAc,EACd,SAAoB,EACpB,GAAsI;IAEtI,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IAElD,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,KAAK,cAAc;YACjB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC;YACrC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,OAAQ,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,MAAM,IAAK,SAAS,CAAC,KAAgB,CAAC;QACtD,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,MAAM,IAAK,SAAS,CAAC,KAAgB,CAAC;QACtD,KAAK,YAAY;YACf,IAAI,CAAC;gBAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QAClE,KAAK,aAAa;YAChB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChC,OAAO,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,MAAO,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,KAAK,gBAAgB;YACnB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,IAAK,SAAS,CAAC,KAAgB,CAAC;QACnF,KAAK,gBAAgB;YACnB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,IAAK,SAAS,CAAC,KAAgB,CAAC;QACnF,KAAK,cAAc;YACjB,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9F,KAAK,cAAc;YACjB,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7F,KAAK,UAAU;YACb,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAK,SAAS,CAAC,KAAgB,CAAC;QAClE,KAAK,aAAa;YAChB,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAK,SAAS,CAAC,KAAgB,CAAC;QACrE,KAAK,WAAW;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAK,SAAS,CAAC,KAAgB,CAAC;QACnE,KAAK,WAAW;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAK,SAAS,CAAC,KAAgB,CAAC;QAC5D,KAAK,cAAc;YACjB,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5F,KAAK,kBAAkB;YACrB,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7F,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC,MAAM,IAAK,SAAS,CAAC,KAAgB,CAAC;QACzD,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC,MAAM,IAAK,SAAS,CAAC,KAAgB,CAAC;QACzD,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,GAAG,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3B,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU;gBACpC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACzD,CAAC;QACJ,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,GAAG,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3B,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU;gBACpC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAChE,CAAC;QACJ,CAAC;QACD,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;mBACxF,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;QACpC,KAAK,iBAAiB;YACpB,OAAO,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;mBAC3E,CAAC,SAAS,CAAC,KAAe,IAAI,QAAQ,CAAC,CAAC;QAC/C,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;mBACpE,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;QACpC;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,UAAuB,EACvB,UAAoG,EAAE;IAEtG,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAExI,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACjF,MAAM;YACN,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;QAC1B,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,UAAuB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAyB;IACnJ,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,SAAS,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG;gBAClB,kBAAkB;gBAClB,EAAE;gBACF,SAAS;gBACT,SAAS;gBACT,EAAE;gBACF,UAAU;gBACV,MAAM;gBACN,EAAE;gBACF,gCAAgC;gBAChC,yCAAyC;gBACzC,EAAE;gBACF,2CAA2C;aAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;gBAC5B,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,6BAA6B;gBACrC,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,YAAY,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,sBAAsB,KAAK,KAAK;gBAAE,iBAAiB,GAAG,IAAI,CAAC;YACtE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC7D,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAkB,CAAC;wBACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACxC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,CAAC,CAAC;wBAC3C,MAAM,GAAG,KAAK,IAAI,SAAS,CAAC;wBAC5B,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;oBAChC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC/G,CAAC;gBACH,CAAC;gBAAC,OAAO,QAAiB,EAAE,CAAC;oBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IACL,SAAS,CAAC,IAAI,KAAK,cAAc;YACjC,SAAS,CAAC,IAAI,KAAK,kBAAkB;YACrC,SAAS,CAAC,IAAI,KAAK,gBAAgB,EACnC,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACrF,YAAY,IAAI,SAAS,CAAC,OAAO,CAAC;YAClC,IAAI,SAAS,CAAC,sBAAsB,KAAK,KAAK;gBAAE,iBAAiB,GAAG,IAAI,CAAC;YACzE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAC1B,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAC9B,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAG,CAAC,CAAC;gBAClD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAA0B,CAAC;gBAC1D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;gBACpC,IAAI,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACjF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAwB;oBACvD,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACjC,IAAI,OAAO,CAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,2BAA2B,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;iBAC3L,CAAC,CAAC;gBACH,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,KAAK,CAAC;gBACf,OAAO,GAAG,2BAA2B,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE;YAChD,MAAM;YACN,MAAM;YACN,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;QAC1B,OAAO;QACP,YAAY,EAAE,YAAY;QAC1B,GAAG,CAAC,iBAAiB,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAC9E,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,6EAA6E;AAC7E,gEAAgE;AAChE,yEAAyE;AACzE,0EAA0E;AAC1E,oDAAoD;AACpD,EAAE;AACF,wBAAwB;AACxB,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,wBAAwB;AACxB,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,4BAA4B;AAC5B,2EAA2E;AAC3E,0EAA0E;AAC1E,8DAA8D;AAC9D,gFAAgF;AAEhF,MAAM,iBAAiB,GAAG;IACxB,gBAAgB;IAChB,yBAAyB;IACzB,wBAAwB;CACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAUb,KAAK,UAAU,WAAW,CACxB,SAAoB,EACpB,MAAc,EACd,MAAc,EACd,QAAoB,EACpB,UAAkB;IAElB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,CAAC,CAAC;IAE3C,IAAI,MAAc,CAAC;IACnB,IAAI,MAAc,CAAC;IAEnB,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,uDAAuD,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACzG,CAAC;QACD,MAAM,GAAG,6CAA6C,CAAC;QACvD,MAAM,GAAG;YACP,qCAAqC;YACrC,EAAE;YACF,eAAe;YACf,OAAO;YACP,EAAE;YACF,UAAU;YACV,MAAM;YACN,EAAE;YACF,iBAAiB;YACjB,EAAE;YACF,SAAS;YACT,oBAAoB;YACpB,2BAA2B;YAC3B,cAAc;YACd,8BAA8B;YAC9B,4BAA4B;YAC5B,cAAc;YACd,cAAc;YACd,0BAA0B;YAC1B,EAAE;YACF,4BAA4B;YAC5B,yCAAyC;SAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;SAAM,IAAI,SAAS,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACjD,MAAM,GAAG,sBAAsB,CAAC;QAChC,MAAM,GAAG;YACP,8BAA8B;YAC9B,EAAE;YACF,SAAS;YACT,MAAM,CAAC,MAAM;YACb,EAAE;YACF,UAAU;YACV,MAAM;YACN,EAAE;YACF,iBAAiB;YACjB,EAAE;YACF,OAAO;YACP,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,WAAW;YACX,aAAa;YACb,EAAE;YACF,4BAA4B;YAC5B,yCAAyC;SAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,yDAAyD,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC3G,CAAC;QACD,MAAM,GAAG,6BAA6B,CAAC;QACvC,MAAM,GAAG;YACP,oCAAoC;YACpC,EAAE;YACF,YAAY;YACZ,SAAS;YACT,EAAE;YACF,UAAU;YACV,MAAM;YACN,EAAE;YACF,iBAAiB;YACjB,EAAE;YACF,SAAS;YACT,wBAAwB;YACxB,qBAAqB;YACrB,cAAc;YACd,kBAAkB;YAClB,0BAA0B;YAC1B,aAAa;YACb,cAAc;YACd,cAAc;YACd,EAAE;YACF,4BAA4B;YAC5B,yCAAyC;SAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,KAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3G,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,iBAAiB,MAAM,CAAC,KAAK,EAAE;YACzD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;YAC5B,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAO,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,SAAS,CAAC,IAAI,6BAA6B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC1G,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAkB,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO;YACL,MAAM,EAAE,KAAK,IAAI,SAAS;YAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;YAC5B,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC;IAAC,OAAO,QAAiB,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,SAAS,CAAC,IAAI,uBAAuB,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;IACjH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/grading/assertions.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,12 +36,12 @@ function classifyVerdict(diff) {
|
|
|
36
36
|
}
|
|
37
37
|
const mag = Math.min(Math.abs(diff.low), Math.abs(diff.high));
|
|
38
38
|
if (mag >= 0.5) {
|
|
39
|
-
return { zh: '
|
|
39
|
+
return { zh: '强差异——prompt 改动对评分影响大', en: 'strong shift', level: 'strong' };
|
|
40
40
|
}
|
|
41
41
|
if (mag >= 0.2) {
|
|
42
|
-
return { zh: '
|
|
42
|
+
return { zh: '中等差异——校正对结论有实质影响', en: 'medium shift', level: 'medium' };
|
|
43
43
|
}
|
|
44
|
-
return { zh: '
|
|
44
|
+
return { zh: '弱差异——显著但幅度小', en: 'weak shift', level: 'weak' };
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Re-judge every sample of `variant` in the given report with the OPPOSITE
|
|
@@ -148,7 +148,7 @@ export function formatDebiasValidate(result) {
|
|
|
148
148
|
lines.push(` 对照 prompt: ${dirAlt}`);
|
|
149
149
|
lines.push(` 用例数: ${result.pairs.length}`);
|
|
150
150
|
if (result.pairs.length === 0) {
|
|
151
|
-
lines.push('
|
|
151
|
+
lines.push(' 无可比对用例——检查报告是否含 fullOutput / rubric。');
|
|
152
152
|
return lines.join('\n');
|
|
153
153
|
}
|
|
154
154
|
lines.push(` 原均值: ${result.meanOriginal.toFixed(3)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debias-validate.js","sourceRoot":"","sources":["../../../src/grading/debias-validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAwB,MAAM,2BAA2B,CAAC;AAoClF;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAqB;IAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"debias-validate.js","sourceRoot":"","sources":["../../../src/grading/debias-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostic — 功能性测试视角的"哪错了 + 怎么改"诊断。
|
|
3
|
+
*
|
|
4
|
+
* 与 Judge 评价(打分)彻底独立:
|
|
5
|
+
* - Judge 答"打几分",看 rubric + output 主观打 1-5。
|
|
6
|
+
* - Diagnostic 答"哪错了 + skill 怎么改",看 rubric + skill 原文 + 实际 trace + 失败断言。
|
|
7
|
+
* - --no-judge 不跑 judge,但 diagnostic 仍会跑(假设 sample 有 fail);
|
|
8
|
+
* --no-diagnostic 反之。
|
|
9
|
+
*
|
|
10
|
+
* 触发条件:sample 至少有 1 条 failed assertion(全过的 sample 不需要诊断,省成本)。
|
|
11
|
+
*
|
|
12
|
+
* 默认走 haiku(便宜 + 够用),典型成本 ~$0.005/失败样本。
|
|
13
|
+
*/
|
|
14
|
+
import type { ExecutorFn, ToolCallInfo, TurnInfo, Sample } from '../types/index.js';
|
|
15
|
+
import type { AssertionDetail, DiagnosticResult, WorkflowCheck, FailureMode } from '../types/judge.js';
|
|
16
|
+
interface RunDiagnosticOptions {
|
|
17
|
+
sample: Sample;
|
|
18
|
+
skillContent: string | null;
|
|
19
|
+
skillName: string;
|
|
20
|
+
toolCalls: ToolCallInfo[] | undefined;
|
|
21
|
+
turns: TurnInfo[] | undefined;
|
|
22
|
+
fullOutput: string | undefined;
|
|
23
|
+
assertionDetails: AssertionDetail[];
|
|
24
|
+
executor: ExecutorFn;
|
|
25
|
+
model: string;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function buildDiagnosticPrompt(opts: RunDiagnosticOptions): string;
|
|
29
|
+
export declare function salvagePartialJson(blob: string): {
|
|
30
|
+
summary?: string;
|
|
31
|
+
expected?: string;
|
|
32
|
+
actual?: string;
|
|
33
|
+
rootCause?: DiagnosticResult['rootCause'];
|
|
34
|
+
workflowChecks?: WorkflowCheck[];
|
|
35
|
+
failureModes?: FailureMode[];
|
|
36
|
+
suggestion?: DiagnosticResult['suggestion'];
|
|
37
|
+
};
|
|
38
|
+
export declare function runDiagnostic(opts: RunDiagnosticOptions): Promise<DiagnosticResult>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=diagnostic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../../src/grading/diagnostic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAa,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyDvG,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACtC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwCD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAwExE;AAwID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CAC7C,CAUA;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmGzF"}
|
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostic — 功能性测试视角的"哪错了 + 怎么改"诊断。
|
|
3
|
+
*
|
|
4
|
+
* 与 Judge 评价(打分)彻底独立:
|
|
5
|
+
* - Judge 答"打几分",看 rubric + output 主观打 1-5。
|
|
6
|
+
* - Diagnostic 答"哪错了 + skill 怎么改",看 rubric + skill 原文 + 实际 trace + 失败断言。
|
|
7
|
+
* - --no-judge 不跑 judge,但 diagnostic 仍会跑(假设 sample 有 fail);
|
|
8
|
+
* --no-diagnostic 反之。
|
|
9
|
+
*
|
|
10
|
+
* 触发条件:sample 至少有 1 条 failed assertion(全过的 sample 不需要诊断,省成本)。
|
|
11
|
+
*
|
|
12
|
+
* 默认走 haiku(便宜 + 够用),典型成本 ~$0.005/失败样本。
|
|
13
|
+
*/
|
|
14
|
+
import { FAILURE_MODES } from '../types/judge.js';
|
|
15
|
+
const SYSTEM_PROMPT = `你是 skill 评测诊断助手。基于失败用例的 expected/actual 差异,给 skill 作者具体可操作的改进建议。
|
|
16
|
+
|
|
17
|
+
**诱错样本(tripwire)规则 — 只看 sample 的显式标记,不要自己识别**:
|
|
18
|
+
"诱错样本"指 prompt 故意藏了跟 rubric / skill 矛盾的诱导指示,用来测 LLM 会不会
|
|
19
|
+
盲从错误。这是 sample 作者的设计决策,**只有 sample 作者显式标 \`tripwire: true\` 才算**。
|
|
20
|
+
|
|
21
|
+
判断逻辑(用户消息会告诉你 sample.tripwire 的值):
|
|
22
|
+
- sample.tripwire === true →
|
|
23
|
+
rootCause 必须**只**填 \`tripwire_intentional\`(不要叠加其它原因)
|
|
24
|
+
suggestion.skill / suggestion.sample 必须**留空字符串**
|
|
25
|
+
只在 suggestion.none 解释为什么不用改
|
|
26
|
+
- sample.tripwire === false / undefined →
|
|
27
|
+
**绝对不要**输出 \`tripwire_intentional\` rootCause,**绝对不要**判断它是诱错
|
|
28
|
+
即使 prompt 看起来像诱导,也按"非诱错"诊断,给出 skill / sample 改进建议
|
|
29
|
+
(如果你强烈怀疑应该是诱错,可以在 summary 末尾加一句"建议 sample 作者
|
|
30
|
+
考虑显式标记 tripwire:true",但 rootCause 仍按非诱错走)
|
|
31
|
+
|
|
32
|
+
**绝对不要**在诱错样本(tripwire=true)场景下建议:
|
|
33
|
+
- "改 skill 加警告"(skill 已经清楚,LLM 失败是因为盲从 prompt 不是 skill 不清楚)
|
|
34
|
+
- "改 sample 删除错误指示"(那等于把诱错样本拆了,自废武功)
|
|
35
|
+
|
|
36
|
+
**措辞要求(重要)**:
|
|
37
|
+
- 用日常语言,像跟同事解释,**不要**用技术黑话或规范语言。
|
|
38
|
+
- 反例(❌): "断言验证失败,工具调用偏离 rubric 规定的调用链"
|
|
39
|
+
- 正例(✅): "LLM 没把 format 参数传给 skylark_doc_update,所以那条断言抓不到"
|
|
40
|
+
- summary 一句白话讲清楚 LLM 干啥事错了,**不要**罗列断言名 / mock 编号。
|
|
41
|
+
- expected / actual 用动作描述("应该先调 X 再传 Y" / "实际跳过了第一步,直接用了字符串"),
|
|
42
|
+
**不要**复述 rubric 原文。
|
|
43
|
+
- suggestion 给具体改动:引用章节标题 + 写明"加什么话"或"改成什么",
|
|
44
|
+
避免"建议优化 / 建议明确"这种空话。
|
|
45
|
+
- workflowChecks / failureModes 的描述全部用中文,evidence 引用具体的工具调用编号([N] 这种),不要用英文枚举名以外的英文表达。
|
|
46
|
+
|
|
47
|
+
**工作流校验(workflowChecks)**:
|
|
48
|
+
把 rubric / skill 规定的关键步骤拆成可勾选的清单,每条给:
|
|
49
|
+
- step: 中文描述这一步要干啥(如"调 code-host auth status 拿当前 username")
|
|
50
|
+
- passed: LLM 是否做了该步骤
|
|
51
|
+
- evidence: 引用 trace 里的具体证据。passed=true 时点名是哪一步工具调用做的;passed=false 时说明哪里偏离了(漏调 / 调错 / 参数错)
|
|
52
|
+
不是工作流型任务(rubric 是开放式问答 / 单纯文本生成)就给空数组 []。
|
|
53
|
+
|
|
54
|
+
**失败模式标签(failureModes)**:
|
|
55
|
+
从下面 7 个里选(可多选),用来一眼归类 LLM 是怎么错的:
|
|
56
|
+
${FAILURE_MODES.map((m, i) => ` ${i + 1}. ${m}`).join('\n')}
|
|
57
|
+
含义:
|
|
58
|
+
- 工作流跳步: 没按 rubric/skill 规定的步骤顺序执行
|
|
59
|
+
- 硬编码值: 该用前面变量传递的字段写死成具体值(如 namespace、id 直接写 testuser001)
|
|
60
|
+
- 幻觉输出: 声称完成 / 给出实际不存在的结果(虚构 commit hash、虚构文件路径、虚构 id)
|
|
61
|
+
- 工具误用: 选错工具 / 参数错 / 重复尝试同一失败动作
|
|
62
|
+
- 环境拦截: mock-strict 或工具不可用导致 LLM 行为正确但仍 fail(诊断要把这种和真错区分)
|
|
63
|
+
- 误读约束: skill 写清楚的约束被 LLM 漏掉 / 误读(常和 llm_misread rootCause 搭)
|
|
64
|
+
- 其他: 兜底,不属于以上任何类
|
|
65
|
+
全过的 sample 给空数组 []。
|
|
66
|
+
|
|
67
|
+
只返回 JSON,不要其他内容。`;
|
|
68
|
+
const TOOL_INPUT_PREVIEW_MAX = 350;
|
|
69
|
+
const SKILL_CONTENT_MAX = 12000;
|
|
70
|
+
const FULL_OUTPUT_MAX = 1500;
|
|
71
|
+
function previewToolCall(tc, idx) {
|
|
72
|
+
const inp = tc.input;
|
|
73
|
+
let inputRepr;
|
|
74
|
+
if (inp == null) {
|
|
75
|
+
inputRepr = '';
|
|
76
|
+
}
|
|
77
|
+
else if (typeof inp === 'object' && 'command' in inp && typeof inp.command === 'string') {
|
|
78
|
+
inputRepr = inp.command;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
inputRepr = typeof inp === 'string' ? inp : JSON.stringify(inp);
|
|
82
|
+
}
|
|
83
|
+
const truncated = inputRepr.length > TOOL_INPUT_PREVIEW_MAX
|
|
84
|
+
? inputRepr.slice(0, TOOL_INPUT_PREVIEW_MAX) + '…'
|
|
85
|
+
: inputRepr;
|
|
86
|
+
const status = tc.success ? '' : ' [失败]';
|
|
87
|
+
return `[${idx + 1}] ${tc.tool}${status} → ${truncated}`;
|
|
88
|
+
}
|
|
89
|
+
function formatExpectedAssertion(a) {
|
|
90
|
+
const valueRepr = a.values
|
|
91
|
+
? JSON.stringify(a.values)
|
|
92
|
+
: a.value !== undefined
|
|
93
|
+
? String(a.value)
|
|
94
|
+
: a.pattern
|
|
95
|
+
? `regex /${a.pattern}/${a.flags ?? ''}`
|
|
96
|
+
: '';
|
|
97
|
+
const w = typeof a.weight === 'number' ? ` (w=${a.weight})` : '';
|
|
98
|
+
return `${a.type} ${valueRepr}${w}`;
|
|
99
|
+
}
|
|
100
|
+
function formatFailedDetail(d) {
|
|
101
|
+
const valueRepr = typeof d.value === 'object' ? JSON.stringify(d.value) : String(d.value);
|
|
102
|
+
return `${d.type}: ${valueRepr}${d.message ? ` (${d.message})` : ''}`;
|
|
103
|
+
}
|
|
104
|
+
export function buildDiagnosticPrompt(opts) {
|
|
105
|
+
const { sample, skillContent, skillName, toolCalls, fullOutput, assertionDetails } = opts;
|
|
106
|
+
const expectedAssertions = (sample.assertions ?? []).map(formatExpectedAssertion).join('\n');
|
|
107
|
+
const failedDetails = assertionDetails.filter((d) => !d.passed).map(formatFailedDetail).join('\n');
|
|
108
|
+
const toolCallsBlock = (toolCalls ?? []).map(previewToolCall).join('\n');
|
|
109
|
+
const skillBlock = skillContent
|
|
110
|
+
? skillContent.length > SKILL_CONTENT_MAX
|
|
111
|
+
? skillContent.slice(0, SKILL_CONTENT_MAX) + '\n... [skill 内容截断,完整版需手动 review]'
|
|
112
|
+
: skillContent
|
|
113
|
+
: '(无 skill 内容,可能是 baseline 跑或 artifact.content 缺失)';
|
|
114
|
+
const outputBlock = fullOutput
|
|
115
|
+
? fullOutput.length > FULL_OUTPUT_MAX
|
|
116
|
+
? fullOutput.slice(0, FULL_OUTPUT_MAX) + '…'
|
|
117
|
+
: fullOutput
|
|
118
|
+
: '(无最终输出)';
|
|
119
|
+
// tripwire 状态显式传给 LLM:不允许它"自己识别",只能按 ground truth 处理。
|
|
120
|
+
// true → 强诱错提示(rootCause 必须 tripwire_intentional)
|
|
121
|
+
// false / undefined → 明确告知"不是诱错",绝不允许输出 tripwire_intentional
|
|
122
|
+
const tripwireHint = sample.tripwire === true
|
|
123
|
+
? '\n\n**sample.tripwire = true(诱错样本,ground truth)**\nLLM 失败是预期。请评估失败的方式是否符合诱错设计意图:\n - 符合:rootCause 必须**只**填 tripwire_intentional,suggestion.skill / suggestion.sample 留空,suggestion.none 解释为什么不需要改\n - 不符合(LLM 以非预期方式 fail,例如真的工具错):rootCause 写实际原因(不要叠加 tripwire_intentional),suggestion 给改进建议'
|
|
124
|
+
: '\n\n**sample.tripwire = false(非诱错,ground truth)**\n这条 sample 不是诱错。**绝对不要**输出 tripwire_intentional rootCause。即使 prompt 看起来像诱导,也按"非诱错"诊断,给 skill / sample 改进建议。';
|
|
125
|
+
return `下面是 skill「${skillName}」的一条失败评测用例。请基于 skill 原文 + 实际执行 + 失败断言给出诊断。
|
|
126
|
+
|
|
127
|
+
# 用例 prompt
|
|
128
|
+
${sample.prompt}
|
|
129
|
+
|
|
130
|
+
# 评分标准 (rubric)
|
|
131
|
+
${sample.rubric ?? '(无 rubric)'}
|
|
132
|
+
|
|
133
|
+
# 期望的关键调用 / mock 命中 (assertions)
|
|
134
|
+
${expectedAssertions || '(无 assertions)'}
|
|
135
|
+
|
|
136
|
+
# Skill 原文 (被评测对象)
|
|
137
|
+
\`\`\`
|
|
138
|
+
${skillBlock}
|
|
139
|
+
\`\`\`
|
|
140
|
+
|
|
141
|
+
# LLM 实际工具调用轨迹
|
|
142
|
+
${toolCallsBlock || '(无工具调用)'}
|
|
143
|
+
|
|
144
|
+
# LLM 最终回答
|
|
145
|
+
${outputBlock}
|
|
146
|
+
|
|
147
|
+
# 失败的断言
|
|
148
|
+
${failedDetails || '(无失败断言?)'}${tripwireHint}
|
|
149
|
+
|
|
150
|
+
请基于以上信息给出诊断。**rootCause 必须从这 5 类里选(可多选)**:
|
|
151
|
+
- skill_doc_unclear: skill 文档某段写得模糊,LLM 不知道该怎么做
|
|
152
|
+
- skill_doc_missing: skill 完全没覆盖该场景 / 缺反例 / 缺约束
|
|
153
|
+
- llm_misread: skill 写清楚了但 LLM 误读(可能要改措辞 / 增加显眼提示)
|
|
154
|
+
- sample_design: sample 自身设计有 bug(rubric 跟 skill 矛盾 / mock match 太严 / 等)
|
|
155
|
+
- tripwire_intentional: 诱错样本 — sample 故意诱导反模式,LLM fail 是预期,不要建议改 skill
|
|
156
|
+
|
|
157
|
+
返回 JSON(不要 markdown 代码块):
|
|
158
|
+
{
|
|
159
|
+
"summary": "<失败本质,1-2 句>",
|
|
160
|
+
"expected": "<rubric/assertions 期望什么具体行为>",
|
|
161
|
+
"actual": "<LLM 实际做了什么>",
|
|
162
|
+
"workflowChecks": [
|
|
163
|
+
{"step": "<rubric/skill 规定的一步,中文>", "passed": true, "evidence": "<引 trace 中 [N] 工具调用编号或简短中文证据>"}
|
|
164
|
+
],
|
|
165
|
+
"failureModes": ["<从 7 个中文标签里选,可多选;无可归类则空数组>"],
|
|
166
|
+
"rootCause": ["<上述 5 选>"],
|
|
167
|
+
"suggestion": {
|
|
168
|
+
"skill": "<如归因到 skill,具体改哪段、加什么话(引用章节标题)。否则空字符串>",
|
|
169
|
+
"sample": "<如归因到 sample 设计,如何调整。否则空字符串>",
|
|
170
|
+
"none": "<如诱错样本 / LLM 行为本身不该改,解释为什么不用动 skill。否则空字符串>"
|
|
171
|
+
}
|
|
172
|
+
}`;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* 字段级 salvage:LLM 诊断输出在字符串中间被截断时(unterminated string),
|
|
176
|
+
* JSON.parse 整条丢; 这里用正则按字段名抽取已写完(或截断到 EOF)的内容,
|
|
177
|
+
* 至少把 summary/expected/actual 露出来让用户看到。
|
|
178
|
+
*
|
|
179
|
+
* 策略:
|
|
180
|
+
* - 顶层字符串字段(summary/expected/actual):匹配 `"key"\s*:\s*"((?:[^"\\]|\\.)*)("|$)`,
|
|
181
|
+
* 允许字符串没有闭合引号(走 `$` 分支吃到 EOF)。
|
|
182
|
+
* - rootCause(数组):匹配方括号内容,按字符串元素逐个解析。
|
|
183
|
+
* - suggestion(嵌套对象):取出花括号内容后用相同策略递归提取 skill/sample/none。
|
|
184
|
+
*
|
|
185
|
+
* 不试图重建完整 JSON,只挑能挑出的字段。
|
|
186
|
+
*/
|
|
187
|
+
function unescapeJsonString(s) {
|
|
188
|
+
// 单次扫描:顺序替换会导致 `\\t` 先被处理成 `\` + `t`,再被当成转义符二次处理。
|
|
189
|
+
// 对每个反斜杠序列只解码一次。截断到悬空 `\` 时按原样保留(避免吃掉合法尾字符)。
|
|
190
|
+
return s.replace(/\\(["\\/bnrt]|u[0-9a-fA-F]{4})/g, (_match, esc) => {
|
|
191
|
+
if (esc.startsWith('u')) {
|
|
192
|
+
return String.fromCharCode(parseInt(esc.slice(1), 16));
|
|
193
|
+
}
|
|
194
|
+
const map = {
|
|
195
|
+
'"': '"',
|
|
196
|
+
'\\': '\\',
|
|
197
|
+
'/': '/',
|
|
198
|
+
b: '\b',
|
|
199
|
+
n: '\n',
|
|
200
|
+
r: '\r',
|
|
201
|
+
t: '\t',
|
|
202
|
+
};
|
|
203
|
+
return map[esc] ?? esc;
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
function extractStringField(blob, key) {
|
|
207
|
+
// 匹配 "key": "...content..." 允许末尾没有闭合引号(被截断的情况)。
|
|
208
|
+
// 内容部分允许转义对(\\ 任意字符)和非引号非反斜杠字符。
|
|
209
|
+
const re = new RegExp(`"${key}"\\s*:\\s*"((?:[^"\\\\]|\\\\.)*?)(?:"|$)`, 's');
|
|
210
|
+
const m = blob.match(re);
|
|
211
|
+
if (!m)
|
|
212
|
+
return undefined;
|
|
213
|
+
return unescapeJsonString(m[1]);
|
|
214
|
+
}
|
|
215
|
+
function extractRootCause(blob) {
|
|
216
|
+
const re = /"rootCause"\s*:\s*\[([^\]]*)/s;
|
|
217
|
+
const m = blob.match(re);
|
|
218
|
+
if (!m)
|
|
219
|
+
return undefined;
|
|
220
|
+
const inner = m[1];
|
|
221
|
+
const valid = new Set(['skill_doc_unclear', 'skill_doc_missing', 'llm_misread', 'sample_design', 'tripwire_intentional']);
|
|
222
|
+
const items = [];
|
|
223
|
+
for (const sm of inner.matchAll(/"([^"]+)"/g)) {
|
|
224
|
+
if (valid.has(sm[1]))
|
|
225
|
+
items.push(sm[1]);
|
|
226
|
+
}
|
|
227
|
+
return items;
|
|
228
|
+
}
|
|
229
|
+
function extractSuggestion(blob) {
|
|
230
|
+
// suggestion 是嵌套对象。先抓 "suggestion": { ... 直到 EOF 或匹配的 } ,
|
|
231
|
+
// 然后在那段 blob 里按 key 抽 string 字段。
|
|
232
|
+
const start = blob.search(/"suggestion"\s*:\s*\{/);
|
|
233
|
+
if (start < 0)
|
|
234
|
+
return undefined;
|
|
235
|
+
const tail = blob.slice(start);
|
|
236
|
+
// 取从 "suggestion": { 后到 EOF / 闭合花括号 / 下一个顶层 key 之前的内容
|
|
237
|
+
const inner = tail;
|
|
238
|
+
const skill = extractStringField(inner, 'skill');
|
|
239
|
+
const sample = extractStringField(inner, 'sample');
|
|
240
|
+
const none = extractStringField(inner, 'none');
|
|
241
|
+
if (skill === undefined && sample === undefined && none === undefined)
|
|
242
|
+
return undefined;
|
|
243
|
+
return {
|
|
244
|
+
skill: skill ?? '',
|
|
245
|
+
sample: sample ?? '',
|
|
246
|
+
none: none ?? '',
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
function extractWorkflowChecks(blob) {
|
|
250
|
+
// 抓 "workflowChecks": [ ... ] 内部内容,容忍 ] 缺失(被截断的情况)。
|
|
251
|
+
const headIdx = blob.search(/"workflowChecks"\s*:\s*\[/);
|
|
252
|
+
if (headIdx < 0)
|
|
253
|
+
return undefined;
|
|
254
|
+
const tail = blob.slice(headIdx);
|
|
255
|
+
const innerStart = tail.indexOf('[');
|
|
256
|
+
if (innerStart < 0)
|
|
257
|
+
return undefined;
|
|
258
|
+
const innerBlob = tail.slice(innerStart + 1);
|
|
259
|
+
// 按对象边界拆 — 用括号深度计数从 { 到匹配的 } 切片。
|
|
260
|
+
// 截断在某个对象中间时,该对象丢弃,前面完整的保留。
|
|
261
|
+
const items = [];
|
|
262
|
+
let depth = 0, objStart = -1;
|
|
263
|
+
for (let i = 0; i < innerBlob.length; i++) {
|
|
264
|
+
const ch = innerBlob[i];
|
|
265
|
+
if (ch === '{') {
|
|
266
|
+
if (depth === 0)
|
|
267
|
+
objStart = i;
|
|
268
|
+
depth++;
|
|
269
|
+
}
|
|
270
|
+
else if (ch === '}') {
|
|
271
|
+
depth--;
|
|
272
|
+
if (depth === 0 && objStart >= 0) {
|
|
273
|
+
const objStr = innerBlob.slice(objStart, i + 1);
|
|
274
|
+
const step = extractStringField(objStr, 'step');
|
|
275
|
+
const evidence = extractStringField(objStr, 'evidence');
|
|
276
|
+
const passedMatch = objStr.match(/"passed"\s*:\s*(true|false)/);
|
|
277
|
+
if (step) {
|
|
278
|
+
items.push({
|
|
279
|
+
step,
|
|
280
|
+
passed: passedMatch?.[1] === 'true',
|
|
281
|
+
evidence: evidence ?? '',
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
objStart = -1;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else if (ch === ']' && depth === 0) {
|
|
288
|
+
break;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return items;
|
|
292
|
+
}
|
|
293
|
+
function extractFailureModes(blob) {
|
|
294
|
+
const re = /"failureModes"\s*:\s*\[([^\]]*)/s;
|
|
295
|
+
const m = blob.match(re);
|
|
296
|
+
if (!m)
|
|
297
|
+
return undefined;
|
|
298
|
+
const inner = m[1];
|
|
299
|
+
const valid = new Set(FAILURE_MODES);
|
|
300
|
+
const seen = new Set();
|
|
301
|
+
const items = [];
|
|
302
|
+
for (const sm of inner.matchAll(/"([^"]+)"/g)) {
|
|
303
|
+
if (valid.has(sm[1]) && !seen.has(sm[1])) {
|
|
304
|
+
seen.add(sm[1]);
|
|
305
|
+
items.push(sm[1]);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return items;
|
|
309
|
+
}
|
|
310
|
+
export function salvagePartialJson(blob) {
|
|
311
|
+
return {
|
|
312
|
+
summary: extractStringField(blob, 'summary'),
|
|
313
|
+
expected: extractStringField(blob, 'expected'),
|
|
314
|
+
actual: extractStringField(blob, 'actual'),
|
|
315
|
+
rootCause: extractRootCause(blob),
|
|
316
|
+
workflowChecks: extractWorkflowChecks(blob),
|
|
317
|
+
failureModes: extractFailureModes(blob),
|
|
318
|
+
suggestion: extractSuggestion(blob),
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
export async function runDiagnostic(opts) {
|
|
322
|
+
const prompt = buildDiagnosticPrompt(opts);
|
|
323
|
+
const result = await opts.executor({
|
|
324
|
+
model: opts.model,
|
|
325
|
+
system: SYSTEM_PROMPT,
|
|
326
|
+
prompt,
|
|
327
|
+
timeoutMs: opts.timeoutMs ?? 180_000,
|
|
328
|
+
lean: true, // 诊断也是纯文本生成,不需要工具循环
|
|
329
|
+
});
|
|
330
|
+
if (!result.ok) {
|
|
331
|
+
return {
|
|
332
|
+
ok: false,
|
|
333
|
+
error: result.error || 'diagnostic executor failed',
|
|
334
|
+
summary: '',
|
|
335
|
+
expected: '',
|
|
336
|
+
actual: '',
|
|
337
|
+
rootCause: [],
|
|
338
|
+
suggestion: { skill: '', sample: '', none: '' },
|
|
339
|
+
costUSD: result.costUSD,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
const raw = (result.output || '').trim();
|
|
343
|
+
// 容错:lean 模式下偶尔仍带 markdown 围栏
|
|
344
|
+
let jsonStr = raw;
|
|
345
|
+
const fenceMatch = jsonStr.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
346
|
+
if (fenceMatch)
|
|
347
|
+
jsonStr = fenceMatch[1].trim();
|
|
348
|
+
let parsed;
|
|
349
|
+
try {
|
|
350
|
+
parsed = JSON.parse(jsonStr);
|
|
351
|
+
}
|
|
352
|
+
catch (e) {
|
|
353
|
+
// LLM 输出可能在字符串中间被截断(例如 max_output_tokens 命中、模型 stop 早),
|
|
354
|
+
// 完整 JSON.parse 会失败但前面写完的字段可能已经有用。做字段级 salvage。
|
|
355
|
+
const salvaged = salvagePartialJson(jsonStr);
|
|
356
|
+
const hasContent = !!(salvaged.summary || salvaged.expected || salvaged.actual
|
|
357
|
+
|| (salvaged.workflowChecks && salvaged.workflowChecks.length > 0));
|
|
358
|
+
if (hasContent) {
|
|
359
|
+
return {
|
|
360
|
+
ok: true,
|
|
361
|
+
// 把 parse error 放在 error 里,UI 仍能区分"完整诊断"和"截断 salvage";
|
|
362
|
+
// 但 ok=true 让 summary/expected/actual 正常展示给用户。
|
|
363
|
+
error: `partial: JSON parse failed (${e.message}), salvaged ${[
|
|
364
|
+
salvaged.summary && 'summary',
|
|
365
|
+
salvaged.expected && 'expected',
|
|
366
|
+
salvaged.actual && 'actual',
|
|
367
|
+
salvaged.workflowChecks?.length && 'workflowChecks',
|
|
368
|
+
salvaged.failureModes?.length && 'failureModes',
|
|
369
|
+
].filter(Boolean).join('/')}`,
|
|
370
|
+
summary: salvaged.summary ?? '',
|
|
371
|
+
expected: salvaged.expected ?? '',
|
|
372
|
+
actual: salvaged.actual ?? '',
|
|
373
|
+
rootCause: salvaged.rootCause ?? [],
|
|
374
|
+
workflowChecks: salvaged.workflowChecks ?? [],
|
|
375
|
+
failureModes: salvaged.failureModes ?? [],
|
|
376
|
+
suggestion: salvaged.suggestion ?? { skill: '', sample: '', none: '' },
|
|
377
|
+
costUSD: result.costUSD,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
return {
|
|
381
|
+
ok: false,
|
|
382
|
+
error: `JSON parse failed: ${e.message}; raw: ${raw.slice(0, 300)}`,
|
|
383
|
+
summary: raw.slice(0, 300), // 兜底:把原始文本当 summary 露出来
|
|
384
|
+
expected: '',
|
|
385
|
+
actual: '',
|
|
386
|
+
rootCause: [],
|
|
387
|
+
suggestion: { skill: '', sample: '', none: '' },
|
|
388
|
+
costUSD: result.costUSD,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
const obj = parsed;
|
|
392
|
+
const sug = obj.suggestion || {};
|
|
393
|
+
const rootCauseRaw = obj.rootCause;
|
|
394
|
+
const rootCause = Array.isArray(rootCauseRaw)
|
|
395
|
+
? rootCauseRaw.filter((c) => ['skill_doc_unclear', 'skill_doc_missing', 'llm_misread', 'sample_design', 'tripwire_intentional'].includes(String(c)))
|
|
396
|
+
: [];
|
|
397
|
+
const workflowChecks = parseWorkflowChecks(obj.workflowChecks);
|
|
398
|
+
const failureModes = parseFailureModes(obj.failureModes);
|
|
399
|
+
return {
|
|
400
|
+
ok: true,
|
|
401
|
+
summary: String(obj.summary ?? ''),
|
|
402
|
+
expected: String(obj.expected ?? ''),
|
|
403
|
+
actual: String(obj.actual ?? ''),
|
|
404
|
+
rootCause,
|
|
405
|
+
workflowChecks,
|
|
406
|
+
failureModes,
|
|
407
|
+
suggestion: {
|
|
408
|
+
skill: String(sug.skill ?? ''),
|
|
409
|
+
sample: String(sug.sample ?? ''),
|
|
410
|
+
none: String(sug.none ?? ''),
|
|
411
|
+
},
|
|
412
|
+
costUSD: result.costUSD,
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
function parseWorkflowChecks(raw) {
|
|
416
|
+
if (!Array.isArray(raw))
|
|
417
|
+
return [];
|
|
418
|
+
const out = [];
|
|
419
|
+
for (const item of raw) {
|
|
420
|
+
if (!item || typeof item !== 'object')
|
|
421
|
+
continue;
|
|
422
|
+
const r = item;
|
|
423
|
+
const step = typeof r.step === 'string' ? r.step.trim() : '';
|
|
424
|
+
const evidence = typeof r.evidence === 'string' ? r.evidence.trim() : '';
|
|
425
|
+
if (!step)
|
|
426
|
+
continue; // 没 step 描述就丢掉
|
|
427
|
+
out.push({
|
|
428
|
+
step,
|
|
429
|
+
passed: r.passed === true,
|
|
430
|
+
evidence,
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
return out;
|
|
434
|
+
}
|
|
435
|
+
function parseFailureModes(raw) {
|
|
436
|
+
if (!Array.isArray(raw))
|
|
437
|
+
return [];
|
|
438
|
+
const valid = new Set(FAILURE_MODES);
|
|
439
|
+
const seen = new Set();
|
|
440
|
+
const out = [];
|
|
441
|
+
for (const item of raw) {
|
|
442
|
+
const s = typeof item === 'string' ? item.trim() : '';
|
|
443
|
+
if (valid.has(s) && !seen.has(s)) {
|
|
444
|
+
seen.add(s);
|
|
445
|
+
out.push(s);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return out;
|
|
449
|
+
}
|
|
450
|
+
//# sourceMappingURL=diagnostic.js.map
|