@tangle-network/agent-eval 0.94.0 → 0.95.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/CHANGELOG.md +15 -0
- package/README.md +44 -30
- package/dist/action-policy.d.ts +24 -0
- package/dist/action-policy.d.ts.map +1 -0
- package/dist/action-policy.test.d.ts +2 -0
- package/dist/action-policy.test.d.ts.map +1 -0
- package/dist/active-learning.d.ts +41 -0
- package/dist/active-learning.d.ts.map +1 -0
- package/dist/adapters/http.d.ts +15 -21
- package/dist/adapters/http.d.ts.map +1 -0
- package/dist/adapters/http.js.map +1 -1
- package/dist/adapters/langchain.d.ts +7 -13
- package/dist/adapters/langchain.d.ts.map +1 -0
- package/dist/adapters/otel.d.ts +13 -24
- package/dist/adapters/otel.d.ts.map +1 -0
- package/dist/agent-profile-cell.d.ts +101 -0
- package/dist/agent-profile-cell.d.ts.map +1 -0
- package/dist/agent-profile.d.ts +27 -0
- package/dist/agent-profile.d.ts.map +1 -0
- package/dist/agent-profile.test.d.ts +2 -0
- package/dist/agent-profile.test.d.ts.map +1 -0
- package/dist/analyst/adapters.d.ts +62 -0
- package/dist/analyst/adapters.d.ts.map +1 -0
- package/dist/analyst/analyst.test.d.ts +2 -0
- package/dist/analyst/analyst.test.d.ts.map +1 -0
- package/dist/analyst/ax-service.d.ts +27 -0
- package/dist/analyst/ax-service.d.ts.map +1 -0
- package/dist/analyst/behavioral-analyst.d.ts +28 -0
- package/dist/analyst/behavioral-analyst.d.ts.map +1 -0
- package/dist/analyst/chat-client.d.ts +91 -0
- package/dist/analyst/chat-client.d.ts.map +1 -0
- package/dist/analyst/default-registry.d.ts +27 -0
- package/dist/analyst/default-registry.d.ts.map +1 -0
- package/dist/analyst/default-registry.test.d.ts +2 -0
- package/dist/analyst/default-registry.test.d.ts.map +1 -0
- package/dist/analyst/finding-signature.d.ts +48 -0
- package/dist/analyst/finding-signature.d.ts.map +1 -0
- package/dist/analyst/finding-subject.d.ts +146 -0
- package/dist/analyst/finding-subject.d.ts.map +1 -0
- package/dist/analyst/finding-subject.test.d.ts +2 -0
- package/dist/analyst/finding-subject.test.d.ts.map +1 -0
- package/dist/analyst/findings-store.d.ts +75 -0
- package/dist/analyst/findings-store.d.ts.map +1 -0
- package/dist/analyst/index.d.ts +28 -256
- package/dist/analyst/index.d.ts.map +1 -0
- package/dist/analyst/index.js +5 -65
- package/dist/analyst/index.js.map +1 -1
- package/dist/{kind-factory-0BhLSI27.d.ts → analyst/kind-factory.d.ts} +11 -63
- package/dist/analyst/kind-factory.d.ts.map +1 -0
- package/dist/analyst/kinds/failure-mode.d.ts +19 -0
- package/dist/analyst/kinds/failure-mode.d.ts.map +1 -0
- package/dist/analyst/kinds/improvement.d.ts +23 -0
- package/dist/analyst/kinds/improvement.d.ts.map +1 -0
- package/dist/analyst/kinds/index.d.ts +22 -0
- package/dist/analyst/kinds/index.d.ts.map +1 -0
- package/dist/analyst/kinds/kinds.test.d.ts +2 -0
- package/dist/analyst/kinds/kinds.test.d.ts.map +1 -0
- package/dist/analyst/kinds/knowledge-gap.d.ts +28 -0
- package/dist/analyst/kinds/knowledge-gap.d.ts.map +1 -0
- package/dist/analyst/kinds/knowledge-poisoning.d.ts +22 -0
- package/dist/analyst/kinds/knowledge-poisoning.d.ts.map +1 -0
- package/dist/analyst/kinds/skill-usage.d.ts +84 -0
- package/dist/analyst/kinds/skill-usage.d.ts.map +1 -0
- package/dist/analyst/kinds/skill-usage.test.d.ts +2 -0
- package/dist/analyst/kinds/skill-usage.test.d.ts.map +1 -0
- package/dist/analyst/parse-tolerant.d.ts +26 -0
- package/dist/analyst/parse-tolerant.d.ts.map +1 -0
- package/dist/analyst/parse-tolerant.test.d.ts +2 -0
- package/dist/analyst/parse-tolerant.test.d.ts.map +1 -0
- package/dist/analyst/registry.budget.test.d.ts +2 -0
- package/dist/analyst/registry.budget.test.d.ts.map +1 -0
- package/dist/{default-registry-6dhErQbs.d.ts → analyst/registry.d.ts} +8 -37
- package/dist/analyst/registry.d.ts.map +1 -0
- package/dist/analyst/steer-firewall.d.ts +35 -0
- package/dist/analyst/steer-firewall.d.ts.map +1 -0
- package/dist/analyst/steer-firewall.test.d.ts +2 -0
- package/dist/analyst/steer-firewall.test.d.ts.map +1 -0
- package/dist/analyst/structure-findings.d.ts +37 -0
- package/dist/analyst/structure-findings.d.ts.map +1 -0
- package/dist/analyst/structure-findings.test.d.ts +2 -0
- package/dist/analyst/structure-findings.test.d.ts.map +1 -0
- package/dist/analyst/tool-groups.d.ts +34 -0
- package/dist/analyst/tool-groups.d.ts.map +1 -0
- package/dist/{types-Ce17tDlG.d.ts → analyst/types.d.ts} +19 -112
- package/dist/analyst/types.d.ts.map +1 -0
- package/dist/anti-slop.d.ts +59 -0
- package/dist/anti-slop.d.ts.map +1 -0
- package/dist/artifact-validator.d.ts +74 -0
- package/dist/artifact-validator.d.ts.map +1 -0
- package/dist/attestation.d.ts +63 -0
- package/dist/attestation.d.ts.map +1 -0
- package/dist/attestation.test.d.ts +2 -0
- package/dist/attestation.test.d.ts.map +1 -0
- package/dist/authenticity/index.d.ts +15 -16
- package/dist/authenticity/index.d.ts.map +1 -0
- package/dist/authenticity/index.test.d.ts +2 -0
- package/dist/authenticity/index.test.d.ts.map +1 -0
- package/dist/auto-pr.d.ts +120 -0
- package/dist/auto-pr.d.ts.map +1 -0
- package/dist/{baseline-Bbid3WoO.d.ts → baseline.d.ts} +8 -44
- package/dist/baseline.d.ts.map +1 -0
- package/dist/behavior-dsl.d.ts +73 -0
- package/dist/behavior-dsl.d.ts.map +1 -0
- package/dist/belief-state/calibration.d.ts +10 -0
- package/dist/belief-state/calibration.d.ts.map +1 -0
- package/dist/belief-state/calibration.test.d.ts +2 -0
- package/dist/belief-state/calibration.test.d.ts.map +1 -0
- package/dist/belief-state/code-agent-corpus.d.ts +66 -0
- package/dist/belief-state/code-agent-corpus.d.ts.map +1 -0
- package/dist/belief-state/code-agent-corpus.test.d.ts +2 -0
- package/dist/belief-state/code-agent-corpus.test.d.ts.map +1 -0
- package/dist/belief-state/code-agent-evidence.d.ts +22 -0
- package/dist/belief-state/code-agent-evidence.d.ts.map +1 -0
- package/dist/belief-state/code-agent-evidence.test.d.ts +2 -0
- package/dist/belief-state/code-agent-evidence.test.d.ts.map +1 -0
- package/dist/belief-state/extract.d.ts +7 -0
- package/dist/belief-state/extract.d.ts.map +1 -0
- package/dist/belief-state/extract.test.d.ts +2 -0
- package/dist/belief-state/extract.test.d.ts.map +1 -0
- package/dist/belief-state/index.d.ts +14 -604
- package/dist/belief-state/index.d.ts.map +1 -0
- package/dist/belief-state/ope.d.ts +17 -0
- package/dist/belief-state/ope.d.ts.map +1 -0
- package/dist/belief-state/ope.test.d.ts +2 -0
- package/dist/belief-state/ope.test.d.ts.map +1 -0
- package/dist/belief-state/phase0-measurement.d.ts +55 -0
- package/dist/belief-state/phase0-measurement.d.ts.map +1 -0
- package/dist/belief-state/report.d.ts +17 -0
- package/dist/belief-state/report.d.ts.map +1 -0
- package/dist/belief-state/report.test.d.ts +2 -0
- package/dist/belief-state/report.test.d.ts.map +1 -0
- package/dist/belief-state/research-evidence.d.ts +23 -0
- package/dist/belief-state/research-evidence.d.ts.map +1 -0
- package/dist/belief-state/research-evidence.test.d.ts +2 -0
- package/dist/belief-state/research-evidence.test.d.ts.map +1 -0
- package/dist/belief-state/runtime-benchmark-corpus.d.ts +32 -0
- package/dist/belief-state/runtime-benchmark-corpus.d.ts.map +1 -0
- package/dist/belief-state/runtime-hooks.d.ts +87 -0
- package/dist/belief-state/runtime-hooks.d.ts.map +1 -0
- package/dist/belief-state/runtime-hooks.test.d.ts +2 -0
- package/dist/belief-state/runtime-hooks.test.d.ts.map +1 -0
- package/dist/belief-state/selective.d.ts +15 -0
- package/dist/belief-state/selective.d.ts.map +1 -0
- package/dist/belief-state/selective.test.d.ts +2 -0
- package/dist/belief-state/selective.test.d.ts.map +1 -0
- package/dist/belief-state/shadow-probe.d.ts +80 -0
- package/dist/belief-state/shadow-probe.d.ts.map +1 -0
- package/dist/belief-state/shadow-probe.test.d.ts +2 -0
- package/dist/belief-state/shadow-probe.test.d.ts.map +1 -0
- package/dist/belief-state/types.d.ts +195 -0
- package/dist/belief-state/types.d.ts.map +1 -0
- package/dist/belief-state/types.test.d.ts +2 -0
- package/dist/belief-state/types.test.d.ts.map +1 -0
- package/dist/benchmark.d.ts +14 -0
- package/dist/benchmark.d.ts.map +1 -0
- package/dist/benchmarks/index.d.ts +23 -4
- package/dist/benchmarks/index.d.ts.map +1 -0
- package/dist/benchmarks/routing/dataset.d.ts +34 -0
- package/dist/benchmarks/routing/dataset.d.ts.map +1 -0
- package/dist/benchmarks/routing/index.d.ts +34 -0
- package/dist/benchmarks/routing/index.d.ts.map +1 -0
- package/dist/benchmarks/types.d.ts +49 -0
- package/dist/benchmarks/types.d.ts.map +1 -0
- package/dist/bisector.d.ts +81 -0
- package/dist/bisector.d.ts.map +1 -0
- package/dist/budget-guard.d.ts +31 -0
- package/dist/budget-guard.d.ts.map +1 -0
- package/dist/builder-eval/builder-session.d.ts +111 -0
- package/dist/builder-eval/builder-session.d.ts.map +1 -0
- package/dist/builder-eval/correlation.d.ts +32 -0
- package/dist/builder-eval/correlation.d.ts.map +1 -0
- package/dist/builder-eval/index.d.ts +5 -250
- package/dist/builder-eval/index.d.ts.map +1 -0
- package/dist/builder-eval/project-registry.d.ts +51 -0
- package/dist/builder-eval/project-registry.d.ts.map +1 -0
- package/dist/builder-eval/three-layer-eval.d.ts +55 -0
- package/dist/builder-eval/three-layer-eval.d.ts.map +1 -0
- package/dist/campaign/analyst-surface.d.ts +108 -0
- package/dist/campaign/analyst-surface.d.ts.map +1 -0
- package/dist/campaign/analyst-surface.test.d.ts +2 -0
- package/dist/campaign/analyst-surface.test.d.ts.map +1 -0
- package/dist/campaign/auto-pr.d.ts +46 -0
- package/dist/campaign/auto-pr.d.ts.map +1 -0
- package/dist/campaign/distillation/agreement-judge.d.ts +69 -0
- package/dist/campaign/distillation/agreement-judge.d.ts.map +1 -0
- package/dist/campaign/distillation/cli.d.ts +35 -0
- package/dist/campaign/distillation/cli.d.ts.map +1 -0
- package/dist/campaign/distillation/distillation.test.d.ts +2 -0
- package/dist/campaign/distillation/distillation.test.d.ts.map +1 -0
- package/dist/campaign/distillation/gold-scenarios.d.ts +54 -0
- package/dist/campaign/distillation/gold-scenarios.d.ts.map +1 -0
- package/dist/campaign/distillation/run-distillation.d.ts +119 -0
- package/dist/campaign/distillation/run-distillation.d.ts.map +1 -0
- package/dist/campaign/gates/compose.d.ts +12 -0
- package/dist/campaign/gates/compose.d.ts.map +1 -0
- package/dist/campaign/gates/default-production-gate.d.ts +58 -0
- package/dist/campaign/gates/default-production-gate.d.ts.map +1 -0
- package/dist/campaign/gates/heldout-gate.d.ts +12 -0
- package/dist/campaign/gates/heldout-gate.d.ts.map +1 -0
- package/dist/campaign/gates/promotion-policy.d.ts +125 -0
- package/dist/campaign/gates/promotion-policy.d.ts.map +1 -0
- package/dist/campaign/gates/promotion-policy.test.d.ts +2 -0
- package/dist/campaign/gates/promotion-policy.test.d.ts.map +1 -0
- package/dist/campaign/gates/sequential.d.ts +146 -0
- package/dist/campaign/gates/sequential.d.ts.map +1 -0
- package/dist/campaign/gates/sequential.test.d.ts +2 -0
- package/dist/campaign/gates/sequential.test.d.ts.map +1 -0
- package/dist/campaign/gates/statistical-heldout.d.ts +99 -0
- package/dist/campaign/gates/statistical-heldout.d.ts.map +1 -0
- package/dist/campaign/gates/statistical-heldout.test.d.ts +2 -0
- package/dist/campaign/gates/statistical-heldout.test.d.ts.map +1 -0
- package/dist/campaign/index.d.ts +38 -1341
- package/dist/campaign/index.d.ts.map +1 -0
- package/dist/campaign/index.js +1863 -1316
- package/dist/campaign/index.js.map +1 -1
- package/dist/campaign/labeled-store/fs-adapter.d.ts +59 -0
- package/dist/campaign/labeled-store/fs-adapter.d.ts.map +1 -0
- package/dist/campaign/presets/compare-proposers.d.ts +146 -0
- package/dist/campaign/presets/compare-proposers.d.ts.map +1 -0
- package/dist/campaign/presets/playback.d.ts +120 -0
- package/dist/campaign/presets/playback.d.ts.map +1 -0
- package/dist/campaign/presets/playback.test.d.ts +2 -0
- package/dist/campaign/presets/playback.test.d.ts.map +1 -0
- package/dist/campaign/presets/run-eval.d.ts +14 -0
- package/dist/campaign/presets/run-eval.d.ts.map +1 -0
- package/dist/campaign/presets/run-improvement-loop.d.ts +63 -0
- package/dist/campaign/presets/run-improvement-loop.d.ts.map +1 -0
- package/dist/campaign/presets/run-improvement-loop.test.d.ts +2 -0
- package/dist/campaign/presets/run-improvement-loop.test.d.ts.map +1 -0
- package/dist/campaign/presets/run-optimization.d.ts +92 -0
- package/dist/campaign/presets/run-optimization.d.ts.map +1 -0
- package/dist/campaign/presets/run-profile-matrix.d.ts +151 -0
- package/dist/campaign/presets/run-profile-matrix.d.ts.map +1 -0
- package/dist/campaign/presets/run-skill-opt.d.ts +96 -0
- package/dist/campaign/presets/run-skill-opt.d.ts.map +1 -0
- package/dist/campaign/proposers/_findings-text.d.ts +22 -0
- package/dist/campaign/proposers/_findings-text.d.ts.map +1 -0
- package/dist/campaign/proposers/ace.d.ts +33 -0
- package/dist/campaign/proposers/ace.d.ts.map +1 -0
- package/dist/campaign/proposers/ace.test.d.ts +2 -0
- package/dist/campaign/proposers/ace.test.d.ts.map +1 -0
- package/dist/campaign/proposers/analysis-edit.d.ts +32 -0
- package/dist/campaign/proposers/analysis-edit.d.ts.map +1 -0
- package/dist/campaign/proposers/evolutionary.d.ts +20 -0
- package/dist/campaign/proposers/evolutionary.d.ts.map +1 -0
- package/dist/campaign/proposers/fapo.d.ts +120 -0
- package/dist/campaign/proposers/fapo.d.ts.map +1 -0
- package/dist/campaign/proposers/gepa.d.ts +86 -0
- package/dist/campaign/proposers/gepa.d.ts.map +1 -0
- package/dist/campaign/proposers/halo.d.ts +44 -0
- package/dist/campaign/proposers/halo.d.ts.map +1 -0
- package/dist/campaign/proposers/halo.test.d.ts +2 -0
- package/dist/campaign/proposers/halo.test.d.ts.map +1 -0
- package/dist/campaign/proposers/memory.d.ts +47 -0
- package/dist/campaign/proposers/memory.d.ts.map +1 -0
- package/dist/campaign/proposers/memory.test.d.ts +2 -0
- package/dist/campaign/proposers/memory.test.d.ts.map +1 -0
- package/dist/campaign/proposers/skill-opt.d.ts +88 -0
- package/dist/campaign/proposers/skill-opt.d.ts.map +1 -0
- package/dist/campaign/proposers/trace-analyst.d.ts +48 -0
- package/dist/campaign/proposers/trace-analyst.d.ts.map +1 -0
- package/dist/campaign/proposers/trace-analyst.test.d.ts +2 -0
- package/dist/campaign/proposers/trace-analyst.test.d.ts.map +1 -0
- package/dist/campaign/provenance.d.ts +185 -0
- package/dist/campaign/provenance.d.ts.map +1 -0
- package/dist/campaign/run-campaign.d.ts +90 -0
- package/dist/campaign/run-campaign.d.ts.map +1 -0
- package/dist/campaign/score-utils.d.ts +26 -0
- package/dist/campaign/score-utils.d.ts.map +1 -0
- package/dist/campaign/skill-patch.d.ts +62 -0
- package/dist/campaign/skill-patch.d.ts.map +1 -0
- package/dist/campaign/storage.d.ts +38 -0
- package/dist/campaign/storage.d.ts.map +1 -0
- package/dist/{types-BU-7W85F.d.ts → campaign/types.d.ts} +98 -99
- package/dist/campaign/types.d.ts.map +1 -0
- package/dist/campaign/worktree/index.d.ts +53 -0
- package/dist/campaign/worktree/index.d.ts.map +1 -0
- package/dist/canary.d.ts +101 -0
- package/dist/canary.d.ts.map +1 -0
- package/dist/causal-attribution.d.ts +45 -0
- package/dist/causal-attribution.d.ts.map +1 -0
- package/dist/{chunk-2K6UUZ7P.js → chunk-2T4EZACH.js} +1 -1
- package/dist/chunk-2T4EZACH.js.map +1 -0
- package/dist/{chunk-CTBHKLEU.js → chunk-77T4STFI.js} +59 -86
- package/dist/chunk-77T4STFI.js.map +1 -0
- package/dist/{chunk-EGPMSBEZ.js → chunk-7QTQKIDD.js} +178 -177
- package/dist/chunk-7QTQKIDD.js.map +1 -0
- package/dist/{chunk-MIFZUPEK.js → chunk-AQ5WQAIV.js} +21 -6
- package/dist/chunk-AQ5WQAIV.js.map +1 -0
- package/dist/chunk-DJWX3GVS.js +81 -0
- package/dist/chunk-DJWX3GVS.js.map +1 -0
- package/dist/{chunk-S6OZEZQK.js → chunk-HMA63UEO.js} +37 -9
- package/dist/{chunk-S6OZEZQK.js.map → chunk-HMA63UEO.js.map} +1 -1
- package/dist/{chunk-TBDR6PAI.js → chunk-IZCEK2HR.js} +2 -2
- package/dist/{chunk-SD2YFWQQ.js → chunk-KKWJD5E6.js} +20 -20
- package/dist/chunk-KKWJD5E6.js.map +1 -0
- package/dist/{chunk-KWRRMR3J.js → chunk-LO6IOIJ2.js} +10 -10
- package/dist/chunk-LO6IOIJ2.js.map +1 -0
- package/dist/{chunk-E4GH6USR.js → chunk-NZEQVRH5.js} +2 -2
- package/dist/chunk-NZEQVRH5.js.map +1 -0
- package/dist/{chunk-MPQWFX6Y.js → chunk-PSWWQXHF.js} +13 -88
- package/dist/chunk-PSWWQXHF.js.map +1 -0
- package/dist/{chunk-Q5LIB7BC.js → chunk-S4SYLDFX.js} +2 -2
- package/dist/chunk-S4SYLDFX.js.map +1 -0
- package/dist/{chunk-KW53MSA5.js → chunk-X74V6ESX.js} +2 -2
- package/dist/{chunk-QMUEXQJS.js → chunk-YBIGNSCZ.js} +81 -4
- package/dist/chunk-YBIGNSCZ.js.map +1 -0
- package/dist/{chunk-2KNZHH3P.js → chunk-Z6L6YSU6.js} +2 -2
- package/dist/ci-gate.d.ts +44 -0
- package/dist/ci-gate.d.ts.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/client.d.ts +77 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.test.d.ts +2 -0
- package/dist/client.test.d.ts.map +1 -0
- package/dist/command-runner.d.ts +74 -0
- package/dist/command-runner.d.ts.map +1 -0
- package/dist/command-runner.test.d.ts +2 -0
- package/dist/command-runner.test.d.ts.map +1 -0
- package/dist/completion-verifier.d.ts +147 -0
- package/dist/completion-verifier.d.ts.map +1 -0
- package/dist/completion-verifier.test.d.ts +9 -0
- package/dist/completion-verifier.test.d.ts.map +1 -0
- package/dist/concurrency.d.ts +23 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/contamination-guard.d.ts +81 -0
- package/dist/contamination-guard.d.ts.map +1 -0
- package/dist/{analyze-runs-B6Ljo_dI.d.ts → contract/analyze-runs.d.ts} +9 -10
- package/dist/contract/analyze-runs.d.ts.map +1 -0
- package/dist/contract/define-agent-eval.d.ts +52 -0
- package/dist/contract/define-agent-eval.d.ts.map +1 -0
- package/dist/contract/diff.d.ts +114 -0
- package/dist/contract/diff.d.ts.map +1 -0
- package/dist/contract/index.d.ts +106 -640
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +127 -17
- package/dist/contract/index.js.map +1 -1
- package/dist/{insight-report-DWl3z9tl.d.ts → contract/insight-report.d.ts} +16 -19
- package/dist/contract/insight-report.d.ts.map +1 -0
- package/dist/contract/insight-types-fwd.d.ts +7 -0
- package/dist/contract/insight-types-fwd.d.ts.map +1 -0
- package/dist/contract/intake/agent-trace.d.ts +97 -0
- package/dist/contract/intake/agent-trace.d.ts.map +1 -0
- package/dist/{code-agent-session-BO8nCnv3.d.ts → contract/intake/code-agent-session.d.ts} +15 -17
- package/dist/contract/intake/code-agent-session.d.ts.map +1 -0
- package/dist/contract/intake/feedback-table.d.ts +87 -0
- package/dist/contract/intake/feedback-table.d.ts.map +1 -0
- package/dist/contract/intake/index.d.ts +22 -0
- package/dist/contract/intake/index.d.ts.map +1 -0
- package/dist/contract/intake/otel-spans.d.ts +33 -0
- package/dist/contract/intake/otel-spans.d.ts.map +1 -0
- package/dist/contract/self-improve.d.ts +284 -0
- package/dist/contract/self-improve.d.ts.map +1 -0
- package/dist/{control-runtime-Acf9CGhw.d.ts → control-runtime.d.ts} +23 -26
- package/dist/control-runtime.d.ts.map +1 -0
- package/dist/control-runtime.test.d.ts +2 -0
- package/dist/control-runtime.test.d.ts.map +1 -0
- package/dist/control.d.ts +11 -9
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +2 -2
- package/dist/convergence.d.ts +29 -0
- package/dist/convergence.d.ts.map +1 -0
- package/dist/{cost-ledger-DuSqlw5B.d.ts → cost-ledger.d.ts} +10 -11
- package/dist/cost-ledger.d.ts.map +1 -0
- package/dist/cost-ledger.test.d.ts +2 -0
- package/dist/cost-ledger.test.d.ts.map +1 -0
- package/dist/cost-report.d.ts +43 -0
- package/dist/cost-report.d.ts.map +1 -0
- package/dist/cost-report.test.d.ts +2 -0
- package/dist/cost-report.test.d.ts.map +1 -0
- package/dist/cost-tracker.d.ts +76 -0
- package/dist/cost-tracker.d.ts.map +1 -0
- package/dist/{counterfactual-DlOz8PBx.d.ts → counterfactual.d.ts} +12 -13
- package/dist/counterfactual.d.ts.map +1 -0
- package/dist/cross-trace-diff.d.ts +56 -0
- package/dist/cross-trace-diff.d.ts.map +1 -0
- package/dist/{dataset-BbGkaN2I.d.ts → dataset.d.ts} +11 -14
- package/dist/dataset.d.ts.map +1 -0
- package/dist/deploy-gate-layer.d.ts +125 -0
- package/dist/deploy-gate-layer.d.ts.map +1 -0
- package/dist/deploy-gate-layer.test.d.ts +2 -0
- package/dist/deploy-gate-layer.test.d.ts.map +1 -0
- package/dist/description-length-gate.d.ts +119 -0
- package/dist/description-length-gate.d.ts.map +1 -0
- package/dist/detectors/edge.test.d.ts +2 -0
- package/dist/detectors/edge.test.d.ts.map +1 -0
- package/dist/detectors/index.d.ts +81 -0
- package/dist/detectors/index.d.ts.map +1 -0
- package/dist/detectors/index.test.d.ts +2 -0
- package/dist/detectors/index.test.d.ts.map +1 -0
- package/dist/diagnose/causal-sweep.d.ts +100 -0
- package/dist/diagnose/causal-sweep.d.ts.map +1 -0
- package/dist/diagnose/index.d.ts +36 -0
- package/dist/diagnose/index.d.ts.map +1 -0
- package/dist/diagnose/remediation.d.ts +68 -0
- package/dist/diagnose/remediation.d.ts.map +1 -0
- package/dist/diagnose/repair.d.ts +77 -0
- package/dist/diagnose/repair.d.ts.map +1 -0
- package/dist/diagnose.d.ts +1 -251
- package/dist/diagnose.js +1 -1
- package/dist/discover-personas.d.ts +35 -0
- package/dist/discover-personas.d.ts.map +1 -0
- package/dist/driver.d.ts +95 -0
- package/dist/driver.d.ts.map +1 -0
- package/dist/driver.test.d.ts +8 -0
- package/dist/driver.test.d.ts.map +1 -0
- package/dist/dual-agent-bench.d.ts +81 -0
- package/dist/dual-agent-bench.d.ts.map +1 -0
- package/dist/error-count-extractor.d.ts +47 -0
- package/dist/error-count-extractor.d.ts.map +1 -0
- package/dist/error-count-extractor.test.d.ts +2 -0
- package/dist/error-count-extractor.test.d.ts.map +1 -0
- package/dist/{errors-CzMUYo7b.d.ts → errors.d.ts} +10 -11
- package/dist/errors.d.ts.map +1 -0
- package/dist/{researcher-B0C2_fVO.d.ts → eval-campaign.d.ts} +34 -156
- package/dist/eval-campaign.d.ts.map +1 -0
- package/dist/eval-campaign.test.d.ts +2 -0
- package/dist/eval-campaign.test.d.ts.map +1 -0
- package/dist/eval-tools.d.ts +55 -0
- package/dist/eval-tools.d.ts.map +1 -0
- package/dist/eval-trace-store.d.ts +107 -0
- package/dist/eval-trace-store.d.ts.map +1 -0
- package/dist/eval-trace-store.test.d.ts +2 -0
- package/dist/eval-trace-store.test.d.ts.map +1 -0
- package/dist/executor.d.ts +38 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.test.d.ts +10 -0
- package/dist/executor.test.d.ts.map +1 -0
- package/dist/experiment-tracker.d.ts +178 -0
- package/dist/experiment-tracker.d.ts.map +1 -0
- package/dist/experiment-tracker.test.d.ts +2 -0
- package/dist/experiment-tracker.test.d.ts.map +1 -0
- package/dist/failure-taxonomy.d.ts +38 -0
- package/dist/failure-taxonomy.d.ts.map +1 -0
- package/dist/{feedback-trajectory-BxY0cKfs.d.ts → feedback-trajectory.d.ts} +36 -38
- package/dist/feedback-trajectory.d.ts.map +1 -0
- package/dist/feedback-trajectory.test.d.ts +2 -0
- package/dist/feedback-trajectory.test.d.ts.map +1 -0
- package/dist/flow-layer.d.ts +90 -0
- package/dist/flow-layer.d.ts.map +1 -0
- package/dist/flow-layer.test.d.ts +2 -0
- package/dist/flow-layer.test.d.ts.map +1 -0
- package/dist/fuzz/capsule.d.ts +46 -0
- package/dist/fuzz/capsule.d.ts.map +1 -0
- package/dist/fuzz/cube.d.ts +36 -0
- package/dist/fuzz/cube.d.ts.map +1 -0
- package/dist/fuzz/explorer-cost.test.d.ts +2 -0
- package/dist/fuzz/explorer-cost.test.d.ts.map +1 -0
- package/dist/fuzz/explorer.d.ts +64 -0
- package/dist/fuzz/explorer.d.ts.map +1 -0
- package/dist/fuzz/fuzz-agent.d.ts +16 -0
- package/dist/fuzz/fuzz-agent.d.ts.map +1 -0
- package/dist/fuzz/fuzz-agent.test.d.ts +2 -0
- package/dist/fuzz/fuzz-agent.test.d.ts.map +1 -0
- package/dist/fuzz/gates.d.ts +33 -0
- package/dist/fuzz/gates.d.ts.map +1 -0
- package/dist/fuzz/index.d.ts +26 -0
- package/dist/fuzz/index.d.ts.map +1 -0
- package/dist/fuzz/policies.d.ts +28 -0
- package/dist/fuzz/policies.d.ts.map +1 -0
- package/dist/fuzz/tools.d.ts +20 -0
- package/dist/fuzz/tools.d.ts.map +1 -0
- package/dist/fuzz/types.d.ts +307 -0
- package/dist/fuzz/types.d.ts.map +1 -0
- package/dist/fuzz.d.ts +1 -547
- package/dist/golden-matcher.d.ts +71 -0
- package/dist/golden-matcher.d.ts.map +1 -0
- package/dist/governance/eu-ai-act.d.ts +37 -0
- package/dist/governance/eu-ai-act.d.ts.map +1 -0
- package/dist/governance/index.d.ts +5 -135
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/nist-ai-rmf.d.ts +15 -0
- package/dist/governance/nist-ai-rmf.d.ts.map +1 -0
- package/dist/governance/soc2.d.ts +12 -0
- package/dist/governance/soc2.d.ts.map +1 -0
- package/dist/governance/types.d.ts +66 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/harness-optimizer.d.ts +82 -0
- package/dist/harness-optimizer.d.ts.map +1 -0
- package/dist/held-out-gate.d.ts +135 -0
- package/dist/held-out-gate.d.ts.map +1 -0
- package/dist/hosted/client.d.ts +73 -0
- package/dist/hosted/client.d.ts.map +1 -0
- package/dist/hosted/from-env.test.d.ts +8 -0
- package/dist/hosted/from-env.test.d.ts.map +1 -0
- package/dist/hosted/index.d.ts +10 -238
- package/dist/hosted/index.d.ts.map +1 -0
- package/dist/hosted/types.d.ts +159 -0
- package/dist/hosted/types.d.ts.map +1 -0
- package/dist/index.d.ts +277 -5665
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -31
- package/dist/index.js.map +1 -1
- package/dist/integrity/backend-integrity.d.ts +71 -0
- package/dist/integrity/backend-integrity.d.ts.map +1 -0
- package/dist/integrity/preflight.d.ts +72 -0
- package/dist/integrity/preflight.d.ts.map +1 -0
- package/dist/integrity/preflight.test.d.ts +2 -0
- package/dist/integrity/preflight.test.d.ts.map +1 -0
- package/dist/integrity/single-backend.d.ts +67 -0
- package/dist/integrity/single-backend.d.ts.map +1 -0
- package/dist/intent-match-judge.d.ts +69 -0
- package/dist/intent-match-judge.d.ts.map +1 -0
- package/dist/intent-match-judge.test.d.ts +2 -0
- package/dist/intent-match-judge.test.d.ts.map +1 -0
- package/dist/{judge-calibration-0p2QcWNE.d.ts → judge-calibration.d.ts} +16 -17
- package/dist/judge-calibration.d.ts.map +1 -0
- package/dist/judge-ensemble.d.ts +66 -0
- package/dist/judge-ensemble.d.ts.map +1 -0
- package/dist/judge-ensemble.test.d.ts +8 -0
- package/dist/judge-ensemble.test.d.ts.map +1 -0
- package/dist/judge-families.d.ts +38 -0
- package/dist/judge-families.d.ts.map +1 -0
- package/dist/judge-panel.d.ts +65 -0
- package/dist/judge-panel.d.ts.map +1 -0
- package/dist/judge-retry.d.ts +70 -0
- package/dist/judge-retry.d.ts.map +1 -0
- package/dist/judge-runner.d.ts +36 -0
- package/dist/judge-runner.d.ts.map +1 -0
- package/dist/judge-runner.test.d.ts +2 -0
- package/dist/judge-runner.test.d.ts.map +1 -0
- package/dist/judges.d.ts +74 -0
- package/dist/judges.d.ts.map +1 -0
- package/dist/keyword-coverage-judge.d.ts +89 -0
- package/dist/keyword-coverage-judge.d.ts.map +1 -0
- package/dist/keyword-coverage-judge.test.d.ts +2 -0
- package/dist/keyword-coverage-judge.test.d.ts.map +1 -0
- package/dist/knowledge/index.d.ts +3 -103
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/readiness.d.ts +26 -0
- package/dist/knowledge/readiness.d.ts.map +1 -0
- package/dist/knowledge/types.d.ts +75 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/live-proof.d.ts +62 -0
- package/dist/live-proof.d.ts.map +1 -0
- package/dist/{llm-client-Bj7g0rqu.d.ts → llm-client.d.ts} +21 -23
- package/dist/llm-client.d.ts.map +1 -0
- package/dist/llm-client.test.d.ts +2 -0
- package/dist/llm-client.test.d.ts.map +1 -0
- package/dist/locked-jsonl-appender.d.ts +19 -0
- package/dist/locked-jsonl-appender.d.ts.map +1 -0
- package/dist/matrix/aggregation.d.ts +16 -0
- package/dist/matrix/aggregation.d.ts.map +1 -0
- package/dist/matrix/index.d.ts +12 -30
- package/dist/matrix/index.d.ts.map +1 -0
- package/dist/matrix/runner.d.ts +15 -0
- package/dist/matrix/runner.d.ts.map +1 -0
- package/dist/{types-mn5Aqk7x.d.ts → matrix/types.d.ts} +11 -15
- package/dist/matrix/types.d.ts.map +1 -0
- package/dist/meta-eval/calibration.d.ts +47 -0
- package/dist/meta-eval/calibration.d.ts.map +1 -0
- package/dist/meta-eval/correlation-study.d.ts +53 -0
- package/dist/meta-eval/correlation-study.d.ts.map +1 -0
- package/dist/meta-eval/index.d.ts +6 -181
- package/dist/meta-eval/index.d.ts.map +1 -0
- package/dist/{outcome-store-rnXLEqSn.d.ts → meta-eval/outcome-store.d.ts} +7 -8
- package/dist/meta-eval/outcome-store.d.ts.map +1 -0
- package/dist/{rubric-predictive-validity-Cy_W-hWZ.d.ts → meta-eval/rubric-predictive-validity.d.ts} +8 -11
- package/dist/meta-eval/rubric-predictive-validity.d.ts.map +1 -0
- package/dist/meta-eval/sentinel.d.ts +169 -0
- package/dist/meta-eval/sentinel.d.ts.map +1 -0
- package/dist/metrics.d.ts +63 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/model-seats.d.ts +71 -0
- package/dist/model-seats.d.ts.map +1 -0
- package/dist/model-seats.test.d.ts +2 -0
- package/dist/model-seats.test.d.ts.map +1 -0
- package/dist/muffled-gate-scanner.d.ts +102 -0
- package/dist/muffled-gate-scanner.d.ts.map +1 -0
- package/dist/{multi-layer-verifier-DUZXrPDA.d.ts → multi-layer-verifier.d.ts} +12 -15
- package/dist/multi-layer-verifier.d.ts.map +1 -0
- package/dist/multi-layer-verifier.test.d.ts +2 -0
- package/dist/multi-layer-verifier.test.d.ts.map +1 -0
- package/dist/multi-toolchain-layer.d.ts +80 -0
- package/dist/multi-toolchain-layer.d.ts.map +1 -0
- package/dist/multi-toolchain-layer.test.d.ts +2 -0
- package/dist/multi-toolchain-layer.test.d.ts.map +1 -0
- package/dist/multishot/default-tools.d.ts +34 -0
- package/dist/multishot/default-tools.d.ts.map +1 -0
- package/dist/multishot/index.d.ts +7 -290
- package/dist/multishot/index.d.ts.map +1 -0
- package/dist/multishot/index.js.map +1 -1
- package/dist/multishot/judges.d.ts +32 -0
- package/dist/multishot/judges.d.ts.map +1 -0
- package/dist/multishot/matrix.d.ts +107 -0
- package/dist/multishot/matrix.d.ts.map +1 -0
- package/dist/multishot/multishot.d.ts +23 -0
- package/dist/multishot/multishot.d.ts.map +1 -0
- package/dist/multishot/router.d.ts +37 -0
- package/dist/multishot/router.d.ts.map +1 -0
- package/dist/multishot/types.d.ts +60 -0
- package/dist/multishot/types.d.ts.map +1 -0
- package/dist/observability.d.ts +71 -0
- package/dist/observability.d.ts.map +1 -0
- package/dist/openapi.json +1 -1
- package/dist/oracle.d.ts +55 -0
- package/dist/oracle.d.ts.map +1 -0
- package/dist/orthogonality.d.ts +35 -0
- package/dist/orthogonality.d.ts.map +1 -0
- package/dist/otel-pipeline.d.ts +31 -0
- package/dist/otel-pipeline.d.ts.map +1 -0
- package/dist/paraphrase.d.ts +107 -0
- package/dist/paraphrase.d.ts.map +1 -0
- package/dist/{pareto-E-pembql.d.ts → pareto.d.ts} +9 -10
- package/dist/pareto.d.ts.map +1 -0
- package/dist/partition-held-out.d.ts +70 -0
- package/dist/partition-held-out.d.ts.map +1 -0
- package/dist/partition-held-out.test.d.ts +2 -0
- package/dist/partition-held-out.test.d.ts.map +1 -0
- package/dist/perf/index.d.ts +13 -119
- package/dist/perf/index.d.ts.map +1 -0
- package/dist/perf/integrity.d.ts +30 -0
- package/dist/perf/integrity.d.ts.map +1 -0
- package/dist/perf/journey.d.ts +45 -0
- package/dist/perf/journey.d.ts.map +1 -0
- package/dist/perf/ratchet.d.ts +47 -0
- package/dist/perf/ratchet.d.ts.map +1 -0
- package/dist/pipelines/budget-breach.d.ts +31 -0
- package/dist/pipelines/budget-breach.d.ts.map +1 -0
- package/dist/pipelines/budget-breach.test.d.ts +2 -0
- package/dist/pipelines/budget-breach.test.d.ts.map +1 -0
- package/dist/pipelines/failure-cluster.d.ts +38 -0
- package/dist/pipelines/failure-cluster.d.ts.map +1 -0
- package/dist/pipelines/failure-cluster.test.d.ts +2 -0
- package/dist/pipelines/failure-cluster.test.d.ts.map +1 -0
- package/dist/pipelines/first-divergence.d.ts +26 -0
- package/dist/pipelines/first-divergence.d.ts.map +1 -0
- package/dist/pipelines/first-divergence.test.d.ts +2 -0
- package/dist/pipelines/first-divergence.test.d.ts.map +1 -0
- package/dist/pipelines/index.d.ts +8 -173
- package/dist/pipelines/index.d.ts.map +1 -0
- package/dist/pipelines/judge-agreement.d.ts +26 -0
- package/dist/pipelines/judge-agreement.d.ts.map +1 -0
- package/dist/pipelines/judge-agreement.test.d.ts +2 -0
- package/dist/pipelines/judge-agreement.test.d.ts.map +1 -0
- package/dist/pipelines/regression.d.ts +23 -0
- package/dist/pipelines/regression.d.ts.map +1 -0
- package/dist/pipelines/regression.test.d.ts +2 -0
- package/dist/pipelines/regression.test.d.ts.map +1 -0
- package/dist/pipelines/stuck-loop.d.ts +32 -0
- package/dist/pipelines/stuck-loop.d.ts.map +1 -0
- package/dist/pipelines/stuck-loop.test.d.ts +2 -0
- package/dist/pipelines/stuck-loop.test.d.ts.map +1 -0
- package/dist/pipelines/tool-waste.d.ts +34 -0
- package/dist/pipelines/tool-waste.d.ts.map +1 -0
- package/dist/pipelines/tool-waste.test.d.ts +2 -0
- package/dist/pipelines/tool-waste.test.d.ts.map +1 -0
- package/dist/playbook.d.ts +16 -0
- package/dist/playbook.d.ts.map +1 -0
- package/dist/pr-review-benchmark.d.ts +88 -0
- package/dist/pr-review-benchmark.d.ts.map +1 -0
- package/dist/pr-review-benchmark.test.d.ts +2 -0
- package/dist/pr-review-benchmark.test.d.ts.map +1 -0
- package/dist/pre-registration.d.ts +125 -0
- package/dist/pre-registration.d.ts.map +1 -0
- package/dist/prm/builtin-rubrics.d.ts +33 -0
- package/dist/prm/builtin-rubrics.d.ts.map +1 -0
- package/dist/prm/index.d.ts +5 -104
- package/dist/prm/index.d.ts.map +1 -0
- package/dist/prm/inference.d.ts +29 -0
- package/dist/prm/inference.d.ts.map +1 -0
- package/dist/prm/inference.test.d.ts +2 -0
- package/dist/prm/inference.test.d.ts.map +1 -0
- package/dist/{rubric-Cc6UHvUb.d.ts → prm/rubric.d.ts} +10 -13
- package/dist/prm/rubric.d.ts.map +1 -0
- package/dist/prm/training-export.d.ts +38 -0
- package/dist/prm/training-export.d.ts.map +1 -0
- package/dist/produced-state.d.ts +63 -0
- package/dist/produced-state.d.ts.map +1 -0
- package/dist/produced-state.test.d.ts +8 -0
- package/dist/produced-state.test.d.ts.map +1 -0
- package/dist/profile/baselines.d.ts +37 -0
- package/dist/profile/baselines.d.ts.map +1 -0
- package/dist/profile/index.d.ts +105 -0
- package/dist/profile/index.d.ts.map +1 -0
- package/dist/promotion-gate.d.ts +93 -0
- package/dist/promotion-gate.d.ts.map +1 -0
- package/dist/prompt-registry.d.ts +41 -0
- package/dist/prompt-registry.d.ts.map +1 -0
- package/dist/propose-review-control.d.ts +49 -0
- package/dist/propose-review-control.d.ts.map +1 -0
- package/dist/propose-review-control.test.d.ts +2 -0
- package/dist/propose-review-control.test.d.ts.map +1 -0
- package/dist/propose-review.d.ts +155 -0
- package/dist/propose-review.d.ts.map +1 -0
- package/dist/{red-team-BWdoyleI.d.ts → red-team.d.ts} +14 -16
- package/dist/red-team.d.ts.map +1 -0
- package/dist/reference-replay-steering.d.ts +11 -0
- package/dist/reference-replay-steering.d.ts.map +1 -0
- package/dist/reference-replay.d.ts +176 -0
- package/dist/reference-replay.d.ts.map +1 -0
- package/dist/reflective-mutation.d.ts +79 -0
- package/dist/reflective-mutation.d.ts.map +1 -0
- package/dist/registry.d.ts +31 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/release-confidence.d.ts +128 -0
- package/dist/release-confidence.d.ts.map +1 -0
- package/dist/release-report.d.ts +11 -0
- package/dist/release-report.d.ts.map +1 -0
- package/dist/replay.d.ts +120 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/reporter.d.ts +14 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporting.d.ts +15 -15
- package/dist/reporting.d.ts.map +1 -0
- package/dist/researcher.d.ts +140 -0
- package/dist/researcher.d.ts.map +1 -0
- package/dist/reviewer.d.ts +118 -0
- package/dist/reviewer.d.ts.map +1 -0
- package/dist/reviewer.test.d.ts +2 -0
- package/dist/reviewer.test.d.ts.map +1 -0
- package/dist/reward-model-export.d.ts +60 -0
- package/dist/reward-model-export.d.ts.map +1 -0
- package/dist/rl/active-curriculum.d.ts +110 -0
- package/dist/rl/active-curriculum.d.ts.map +1 -0
- package/dist/rl/adaptation-eval.d.ts +109 -0
- package/dist/rl/adaptation-eval.d.ts.map +1 -0
- package/dist/{adversarial-DIVcDoI_.d.ts → rl/adversarial.d.ts} +6 -7
- package/dist/rl/adversarial.d.ts.map +1 -0
- package/dist/rl/compute-curves.d.ts +127 -0
- package/dist/rl/compute-curves.d.ts.map +1 -0
- package/dist/rl/contamination.d.ts +117 -0
- package/dist/rl/contamination.d.ts.map +1 -0
- package/dist/rl/corpus.d.ts +55 -0
- package/dist/rl/corpus.d.ts.map +1 -0
- package/dist/rl/corpus.test.d.ts +2 -0
- package/dist/rl/corpus.test.d.ts.map +1 -0
- package/dist/rl/dataset.d.ts +102 -0
- package/dist/rl/dataset.d.ts.map +1 -0
- package/dist/rl/dataset.test.d.ts +2 -0
- package/dist/rl/dataset.test.d.ts.map +1 -0
- package/dist/rl/exporters.d.ts +141 -0
- package/dist/rl/exporters.d.ts.map +1 -0
- package/dist/rl/index.d.ts +49 -0
- package/dist/rl/index.d.ts.map +1 -0
- package/dist/{off-policy-DiwuKKg7.d.ts → rl/off-policy.d.ts} +8 -9
- package/dist/rl/off-policy.d.ts.map +1 -0
- package/dist/rl/predictive-validity-researcher.d.ts +69 -0
- package/dist/rl/predictive-validity-researcher.d.ts.map +1 -0
- package/dist/rl/preferences.d.ts +141 -0
- package/dist/rl/preferences.d.ts.map +1 -0
- package/dist/rl/process-reward.d.ts +122 -0
- package/dist/rl/process-reward.d.ts.map +1 -0
- package/dist/rl/reward-hacking.d.ts +104 -0
- package/dist/rl/reward-hacking.d.ts.map +1 -0
- package/dist/rl/rl-campaign.d.ts +85 -0
- package/dist/rl/rl-campaign.d.ts.map +1 -0
- package/dist/rl/run-record-adapters.d.ts +56 -0
- package/dist/rl/run-record-adapters.d.ts.map +1 -0
- package/dist/rl/sim-fidelity.d.ts +166 -0
- package/dist/rl/sim-fidelity.d.ts.map +1 -0
- package/dist/rl/sim-fidelity.test.d.ts +2 -0
- package/dist/rl/sim-fidelity.test.d.ts.map +1 -0
- package/dist/rl/tournament.d.ts +115 -0
- package/dist/rl/tournament.d.ts.map +1 -0
- package/dist/rl/verifiable-reward.d.ts +124 -0
- package/dist/rl/verifiable-reward.d.ts.map +1 -0
- package/dist/rl.d.ts +1 -1192
- package/dist/rl.js +612 -612
- package/dist/rl.js.map +1 -1
- package/dist/{run-campaign-7WNXMDSN.js → run-campaign-WXY7KI67.js} +2 -2
- package/dist/run-critic.d.ts +23 -0
- package/dist/run-critic.d.ts.map +1 -0
- package/dist/run-evidence.d.ts +32 -0
- package/dist/run-evidence.d.ts.map +1 -0
- package/dist/{run-record-e7vj1uZQ.d.ts → run-record.d.ts} +16 -122
- package/dist/run-record.d.ts.map +1 -0
- package/dist/run-record.test.d.ts +2 -0
- package/dist/run-record.test.d.ts.map +1 -0
- package/dist/run-score.d.ts +31 -0
- package/dist/run-score.d.ts.map +1 -0
- package/dist/runtime-trajectory.d.ts +47 -0
- package/dist/runtime-trajectory.d.ts.map +1 -0
- package/dist/{test-graded-scenario-DeODGLra.d.ts → sandbox-harness.d.ts} +15 -60
- package/dist/sandbox-harness.d.ts.map +1 -0
- package/dist/sandbox-harness.test.d.ts +2 -0
- package/dist/sandbox-harness.test.d.ts.map +1 -0
- package/dist/sandbox-pool.d.ts +74 -0
- package/dist/sandbox-pool.d.ts.map +1 -0
- package/dist/sandbox-pool.test.d.ts +2 -0
- package/dist/sandbox-pool.test.d.ts.map +1 -0
- package/dist/scorecard.d.ts +133 -0
- package/dist/scorecard.d.ts.map +1 -0
- package/dist/scorecard.test.d.ts +2 -0
- package/dist/scorecard.test.d.ts.map +1 -0
- package/dist/self-play.d.ts +69 -0
- package/dist/self-play.d.ts.map +1 -0
- package/dist/semantic-concept-judge.d.ts +135 -0
- package/dist/semantic-concept-judge.d.ts.map +1 -0
- package/dist/semantic-concept-judge.test.d.ts +2 -0
- package/dist/semantic-concept-judge.test.d.ts.map +1 -0
- package/dist/{sequential-5iSVfzl2.d.ts → sequential.d.ts} +9 -10
- package/dist/sequential.d.ts.map +1 -0
- package/dist/{series-convergence-D5OWMBg6.d.ts → series-convergence.d.ts} +4 -5
- package/dist/series-convergence.d.ts.map +1 -0
- package/dist/slo.d.ts +48 -0
- package/dist/slo.d.ts.map +1 -0
- package/dist/state-continuity.d.ts +47 -0
- package/dist/state-continuity.d.ts.map +1 -0
- package/dist/{statistics-CCJpTGOS.d.ts → statistics.d.ts} +46 -48
- package/dist/statistics.d.ts.map +1 -0
- package/dist/statistics.test.d.ts +2 -0
- package/dist/statistics.test.d.ts.map +1 -0
- package/dist/steering-optimizer.d.ts +58 -0
- package/dist/steering-optimizer.d.ts.map +1 -0
- package/dist/steering.d.ts +24 -0
- package/dist/steering.d.ts.map +1 -0
- package/dist/storyboard/code-edit.d.ts +64 -0
- package/dist/storyboard/code-edit.d.ts.map +1 -0
- package/dist/storyboard/code-edit.test.d.ts +2 -0
- package/dist/storyboard/code-edit.test.d.ts.map +1 -0
- package/dist/storyboard/index.d.ts +16 -81
- package/dist/storyboard/index.d.ts.map +1 -0
- package/dist/storyboard/index.test.d.ts +2 -0
- package/dist/storyboard/index.test.d.ts.map +1 -0
- package/dist/{summary-report-BDOFevaT.d.ts → summary-report.d.ts} +23 -160
- package/dist/summary-report.d.ts.map +1 -0
- package/dist/telemetry/client.d.ts +35 -0
- package/dist/telemetry/client.d.ts.map +1 -0
- package/dist/telemetry/index.d.ts +17 -35
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/schema.d.ts +61 -0
- package/dist/telemetry/schema.d.ts.map +1 -0
- package/dist/telemetry/sink-fetch.d.ts +39 -0
- package/dist/telemetry/sink-fetch.d.ts.map +1 -0
- package/dist/telemetry/{file.d.ts → sink-file.d.ts} +5 -7
- package/dist/telemetry/sink-file.d.ts.map +1 -0
- package/dist/test-graded-scenario.d.ts +42 -0
- package/dist/test-graded-scenario.d.ts.map +1 -0
- package/dist/testing.d.ts +5 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +8 -0
- package/dist/testing.js.map +1 -0
- package/dist/tool-use-metrics.d.ts +35 -0
- package/dist/tool-use-metrics.d.ts.map +1 -0
- package/dist/trace/capture-fetch.d.ts +48 -0
- package/dist/trace/capture-fetch.d.ts.map +1 -0
- package/dist/trace/capture-fetch.test.d.ts +2 -0
- package/dist/trace/capture-fetch.test.d.ts.map +1 -0
- package/dist/{emitter-C2rqGH_l.d.ts → trace/emitter.d.ts} +9 -12
- package/dist/trace/emitter.d.ts.map +1 -0
- package/dist/trace/extract-usage.d.ts +46 -0
- package/dist/trace/extract-usage.d.ts.map +1 -0
- package/dist/trace/extract-usage.test.d.ts +2 -0
- package/dist/trace/extract-usage.test.d.ts.map +1 -0
- package/dist/trace/index.d.ts +15 -0
- package/dist/trace/index.d.ts.map +1 -0
- package/dist/{integrity-D2t12mMw.d.ts → trace/integrity.d.ts} +11 -14
- package/dist/trace/integrity.d.ts.map +1 -0
- package/dist/trace/otel-bridge.d.ts +29 -0
- package/dist/trace/otel-bridge.d.ts.map +1 -0
- package/dist/trace/otel-export.d.ts +52 -0
- package/dist/trace/otel-export.d.ts.map +1 -0
- package/dist/trace/otel.d.ts +57 -0
- package/dist/trace/otel.d.ts.map +1 -0
- package/dist/trace/otlp-attributes.d.ts +17 -0
- package/dist/trace/otlp-attributes.d.ts.map +1 -0
- package/dist/trace/query.d.ts +29 -0
- package/dist/trace/query.d.ts.map +1 -0
- package/dist/trace/query.test.d.ts +2 -0
- package/dist/trace/query.test.d.ts.map +1 -0
- package/dist/{raw-provider-sink-C46HDghv.d.ts → trace/raw-provider-sink.d.ts} +13 -14
- package/dist/trace/raw-provider-sink.d.ts.map +1 -0
- package/dist/{redact-B40YG2M_.d.ts → trace/redact.d.ts} +7 -8
- package/dist/trace/redact.d.ts.map +1 -0
- package/dist/{schema-m0gsnbt3.d.ts → trace/schema.d.ts} +29 -30
- package/dist/trace/schema.d.ts.map +1 -0
- package/dist/trace/store-to-otlp.d.ts +72 -0
- package/dist/trace/store-to-otlp.d.ts.map +1 -0
- package/dist/trace/store-to-otlp.test.d.ts +2 -0
- package/dist/trace/store-to-otlp.test.d.ts.map +1 -0
- package/dist/{store-BcFXE6LG.d.ts → trace/store.d.ts} +21 -12
- package/dist/trace/store.d.ts.map +1 -0
- package/dist/trace/store.test.d.ts +2 -0
- package/dist/trace/store.test.d.ts.map +1 -0
- package/dist/{analyst-C8HHvfJp.d.ts → trace-analyst/analyst.d.ts} +12 -14
- package/dist/trace-analyst/analyst.d.ts.map +1 -0
- package/dist/trace-analyst/analyst.test.d.ts +2 -0
- package/dist/trace-analyst/analyst.test.d.ts.map +1 -0
- package/dist/trace-analyst/behavioral-metrics.d.ts +40 -0
- package/dist/trace-analyst/behavioral-metrics.d.ts.map +1 -0
- package/dist/trace-analyst/behavioral-metrics.test.d.ts +2 -0
- package/dist/trace-analyst/behavioral-metrics.test.d.ts.map +1 -0
- package/dist/trace-analyst/hook.d.ts +55 -0
- package/dist/trace-analyst/hook.d.ts.map +1 -0
- package/dist/trace-analyst/index.d.ts +18 -0
- package/dist/trace-analyst/index.d.ts.map +1 -0
- package/dist/trace-analyst/insights.d.ts +71 -0
- package/dist/trace-analyst/insights.d.ts.map +1 -0
- package/dist/trace-analyst/insights.test.d.ts +2 -0
- package/dist/trace-analyst/insights.test.d.ts.map +1 -0
- package/dist/trace-analyst/otlp-flatten.d.ts +42 -0
- package/dist/trace-analyst/otlp-flatten.d.ts.map +1 -0
- package/dist/trace-analyst/otlp-span.d.ts +85 -0
- package/dist/trace-analyst/otlp-span.d.ts.map +1 -0
- package/dist/trace-analyst/otlp-span.test.d.ts +2 -0
- package/dist/trace-analyst/otlp-span.test.d.ts.map +1 -0
- package/dist/trace-analyst/otlp-to-run-records.d.ts +115 -0
- package/dist/trace-analyst/otlp-to-run-records.d.ts.map +1 -0
- package/dist/trace-analyst/otlp-to-run-records.test.d.ts +2 -0
- package/dist/trace-analyst/otlp-to-run-records.test.d.ts.map +1 -0
- package/dist/trace-analyst/otlp-to-run-records.timestamps.test.d.ts +2 -0
- package/dist/trace-analyst/otlp-to-run-records.timestamps.test.d.ts.map +1 -0
- package/dist/trace-analyst/prompts.d.ts +6 -0
- package/dist/trace-analyst/prompts.d.ts.map +1 -0
- package/dist/trace-analyst/store-otlp.d.ts +126 -0
- package/dist/trace-analyst/store-otlp.d.ts.map +1 -0
- package/dist/trace-analyst/store-otlp.test.d.ts +8 -0
- package/dist/trace-analyst/store-otlp.test.d.ts.map +1 -0
- package/dist/trace-analyst/store-otlp.timestamps.test.d.ts +2 -0
- package/dist/trace-analyst/store-otlp.timestamps.test.d.ts.map +1 -0
- package/dist/trace-analyst/store.d.ts +63 -0
- package/dist/trace-analyst/store.d.ts.map +1 -0
- package/dist/trace-analyst/tools.d.ts +44 -0
- package/dist/trace-analyst/tools.d.ts.map +1 -0
- package/dist/trace-analyst/tools.test.d.ts +10 -0
- package/dist/trace-analyst/tools.test.d.ts.map +1 -0
- package/dist/{store-C1YxJDEK.d.ts → trace-analyst/types.d.ts} +18 -74
- package/dist/trace-analyst/types.d.ts.map +1 -0
- package/dist/trace-contracts.d.ts +180 -0
- package/dist/trace-contracts.d.ts.map +1 -0
- package/dist/traced-analyst.d.ts +26 -0
- package/dist/traced-analyst.d.ts.map +1 -0
- package/dist/traced-judges.d.ts +27 -0
- package/dist/traced-judges.d.ts.map +1 -0
- package/dist/traces.d.ts +4 -960
- package/dist/traces.d.ts.map +1 -0
- package/dist/traces.js +41 -11
- package/dist/{trajectory-2TkpSEVh.d.ts → trajectory.d.ts} +8 -9
- package/dist/trajectory.d.ts.map +1 -0
- package/dist/{types-C7DGg5ex.d.ts → types.d.ts} +31 -33
- package/dist/types.d.ts.map +1 -0
- package/dist/ui-finding.d.ts +104 -0
- package/dist/ui-finding.d.ts.map +1 -0
- package/dist/verdict-cache.d.ts +78 -0
- package/dist/verdict-cache.d.ts.map +1 -0
- package/dist/verdict-cache.test.d.ts +2 -0
- package/dist/verdict-cache.test.d.ts.map +1 -0
- package/dist/{verdict-C9MlYujm.d.ts → verdict.d.ts} +2 -3
- package/dist/verdict.d.ts.map +1 -0
- package/dist/visual-diff.d.ts +32 -0
- package/dist/visual-diff.d.ts.map +1 -0
- package/dist/wire/handlers.d.ts +54 -0
- package/dist/wire/handlers.d.ts.map +1 -0
- package/dist/wire/index.d.ts +13 -570
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/wire/openapi.d.ts +3 -0
- package/dist/wire/openapi.d.ts.map +1 -0
- package/dist/wire/rpc.d.ts +21 -0
- package/dist/wire/rpc.d.ts.map +1 -0
- package/dist/wire/rubrics.d.ts +34 -0
- package/dist/wire/rubrics.d.ts.map +1 -0
- package/dist/wire/schemas.d.ts +410 -0
- package/dist/wire/schemas.d.ts.map +1 -0
- package/dist/wire/server.d.ts +60 -0
- package/dist/wire/server.d.ts.map +1 -0
- package/dist/workflow/event-schema.d.ts +5 -0
- package/dist/workflow/event-schema.d.ts.map +1 -0
- package/dist/workflow/feedback-pack.d.ts +99 -0
- package/dist/workflow/feedback-pack.d.ts.map +1 -0
- package/dist/workflow/index.d.ts +22 -495
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +1 -1
- package/dist/workflow/intelligence-export.d.ts +62 -0
- package/dist/workflow/intelligence-export.d.ts.map +1 -0
- package/dist/workflow/partner-report.d.ts +49 -0
- package/dist/workflow/partner-report.d.ts.map +1 -0
- package/dist/workflow/phase-graph.d.ts +43 -0
- package/dist/workflow/phase-graph.d.ts.map +1 -0
- package/dist/workflow/promotion-gate.d.ts +61 -0
- package/dist/workflow/promotion-gate.d.ts.map +1 -0
- package/dist/workflow/run-record.d.ts +12 -0
- package/dist/workflow/run-record.d.ts.map +1 -0
- package/dist/workflow/runtime-adapter.d.ts +20 -0
- package/dist/workflow/runtime-adapter.d.ts.map +1 -0
- package/dist/workflow/sanitize.d.ts +21 -0
- package/dist/workflow/sanitize.d.ts.map +1 -0
- package/dist/workflow/schema.d.ts +5 -0
- package/dist/workflow/schema.d.ts.map +1 -0
- package/dist/workflow/summary.d.ts +43 -0
- package/dist/workflow/summary.d.ts.map +1 -0
- package/dist/workflow/trace-event-fields.d.ts +6 -0
- package/dist/workflow/trace-event-fields.d.ts.map +1 -0
- package/dist/workflow/trajectory.d.ts +15 -0
- package/dist/workflow/trajectory.d.ts.map +1 -0
- package/dist/workflow/types.d.ts +68 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workspace-inspector.d.ts +67 -0
- package/dist/workspace-inspector.d.ts.map +1 -0
- package/dist/wrangler-deploy-runner.test.d.ts +2 -0
- package/dist/wrangler-deploy-runner.test.d.ts.map +1 -0
- package/docs/campaign-proposers.md +170 -0
- package/docs/concepts.md +8 -4
- package/docs/customer-journeys.md +15 -13
- package/docs/design/loop-taxonomy.md +34 -66
- package/docs/distributed-driver.md +14 -14
- package/docs/feature-guide.md +1 -1
- package/docs/hosted-ingest-spec.md +2 -3
- package/docs/multi-shot-optimization.md +8 -8
- package/docs/product-eval-adoption.md +1 -1
- package/docs/self-improvement-map.md +33 -29
- package/package.json +9 -15
- package/dist/calibration-BPmzuVPk.d.ts +0 -101
- package/dist/chunk-2K6UUZ7P.js.map +0 -1
- package/dist/chunk-CTBHKLEU.js.map +0 -1
- package/dist/chunk-E4GH6USR.js.map +0 -1
- package/dist/chunk-EGPMSBEZ.js.map +0 -1
- package/dist/chunk-KWRRMR3J.js.map +0 -1
- package/dist/chunk-MIFZUPEK.js.map +0 -1
- package/dist/chunk-MPQWFX6Y.js.map +0 -1
- package/dist/chunk-Q5LIB7BC.js.map +0 -1
- package/dist/chunk-QMUEXQJS.js.map +0 -1
- package/dist/chunk-SD2YFWQQ.js.map +0 -1
- package/dist/control-D6qwHXIR.d.ts +0 -259
- package/dist/corpus-B8A4BDR3.d.ts +0 -560
- package/dist/failure-cluster-DH9Flgcf.d.ts +0 -76
- package/dist/harness-optimizer-mOl9XX_O.d.ts +0 -106
- package/dist/index-Bx3gZ8xl.d.ts +0 -159
- package/dist/pre-registration-mAnCugl9.d.ts +0 -523
- package/dist/provenance-P-bCL2Fo.d.ts +0 -441
- package/dist/query-B7GGjRox.d.ts +0 -32
- package/dist/release-report-BEbWmVYj.d.ts +0 -233
- package/dist/run-critic-CmMf05uV.d.ts +0 -56
- package/dist/run-improvement-loop-DBahB8Ax.d.ts +0 -427
- package/dist/runtime-trajectory-BDgfGZSr.d.ts +0 -49
- package/dist/semantic-concept-judge-B9MgmBnM.d.ts +0 -624
- package/dist/sink-fetch-B1Yg4Til.d.ts +0 -101
- package/docs/design/external-agent-wedge.md +0 -89
- package/docs/design/phase-d-rfc.md +0 -125
- package/docs/design/phase4-consumer-migration.md +0 -70
- package/docs/design/primitives-integration-spec.md +0 -393
- package/docs/design/product-self-improvement-loop.md +0 -146
- package/docs/design/self-improvement-engine.md +0 -140
- package/docs/design/self-improvement-protocol.md +0 -223
- package/docs/design/self-improvement-roadmap.md +0 -106
- package/docs/design/substrate-gaps.md +0 -118
- package/docs/phase-b-pairing-kit.md +0 -188
- package/docs/phase-b-runbook.md +0 -176
- package/docs/pilot/README.md +0 -62
- package/docs/pilot/customer-checklist.md +0 -90
- package/docs/pilot/integration-foreign-stack.md +0 -296
- package/docs/pilot/integration-tangle-stack.md +0 -248
- package/docs/pilot/one-pager.md +0 -161
- package/docs/pilot/sample-insight-report.json +0 -172
- package/docs/quickstart-external.md +0 -229
- package/docs/research/belief-state-agent-eval-roadmap.md +0 -593
- package/docs/research/research-roadmap.md +0 -205
- package/docs/specs/driver-honest-spec.md +0 -251
- package/docs/specs/hermes-self-improvement-audit.md +0 -93
- package/docs/specs/profile-versioning.md +0 -291
- package/docs/three-package-architecture.md +0 -168
- /package/dist/{chunk-TBDR6PAI.js.map → chunk-IZCEK2HR.js.map} +0 -0
- /package/dist/{chunk-KW53MSA5.js.map → chunk-X74V6ESX.js.map} +0 -0
- /package/dist/{chunk-2KNZHH3P.js.map → chunk-Z6L6YSU6.js.map} +0 -0
- /package/dist/{run-campaign-7WNXMDSN.js.map → run-campaign-WXY7KI67.js.map} +0 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `runProfileMatrix` — the missing keystone between `runAgentMatrix` and the
|
|
3
|
+
* backend-integrity guard.
|
|
4
|
+
*
|
|
5
|
+
* The gap it closes: `runAgentMatrix` is a topology-opaque scheduler whose
|
|
6
|
+
* cells return a bare `{ output, verdict, costUsd }` — no `tokenUsage`, not a
|
|
7
|
+
* `RunRecord`. `assertRealBackend` / `summarizeBackendIntegrity` key on
|
|
8
|
+
* `RunRecord.tokenUsage`, so they cannot run on a raw matrix result. Every
|
|
9
|
+
* consumer therefore hand-writes the same bridge: fan a profile × scenario
|
|
10
|
+
* cartesian, call dispatch, fabricate a `RunRecord` with token usage, thread it
|
|
11
|
+
* back, run the integrity guard. That hand-rolled bridge is exactly the pile of
|
|
12
|
+
* bespoke `eval:*` scripts the adoption skills keep trying (and failing) to
|
|
13
|
+
* forbid.
|
|
14
|
+
*
|
|
15
|
+
* `runProfileMatrix` IS that bridge, once:
|
|
16
|
+
*
|
|
17
|
+
* - axis 3 (PROFILE) = `profiles: AgentProfile[]`
|
|
18
|
+
* - axis 1 (PERSONA/SCENARIO) = `scenarios: Scenario[]` (each scenario carries
|
|
19
|
+
* its persona; `personaOf` groups them for the `byPersona` pivot)
|
|
20
|
+
* - the scoring axis = `judges`
|
|
21
|
+
*
|
|
22
|
+
* It runs `runCampaign` once per profile (reusing its seeds, reps, bootstrap
|
|
23
|
+
* CIs, resumability, and the `LabeledScenarioStore` capture flywheel), maps
|
|
24
|
+
* every cell to a validated `RunRecord` carrying the real `tokenUsage` the
|
|
25
|
+
* dispatch reported via `ctx.cost.observeTokens`, and runs `assertRealBackend`
|
|
26
|
+
* BY CONSTRUCTION before returning — so a stub-backend run fails loudly instead
|
|
27
|
+
* of reporting a clean 0/N leaderboard.
|
|
28
|
+
*
|
|
29
|
+
* Dispatch contract: a dispatch that calls an LLM MUST report usage via
|
|
30
|
+
* `ctx.cost.observeTokens({ input, output })` (and cost via `ctx.cost.observe`).
|
|
31
|
+
* A dispatch that reports zero tokens is indistinguishable from a stub and the
|
|
32
|
+
* integrity guard treats it as one.
|
|
33
|
+
*/
|
|
34
|
+
import { type AgentProfile } from '../../agent-profile';
|
|
35
|
+
import { AgentEvalError } from '../../errors';
|
|
36
|
+
import { type BackendIntegrityReport } from '../../integrity/backend-integrity';
|
|
37
|
+
import { type RunRecord, type RunSplitTag } from '../../run-record';
|
|
38
|
+
import type { CampaignStorage } from '../storage';
|
|
39
|
+
import type { CampaignResult, DispatchContext, JudgeConfig, LabeledScenarioSource, LabeledScenarioStore, Scenario } from '../types';
|
|
40
|
+
/** Thrown when the matrix is misconfigured (no profiles, a profile whose model
|
|
41
|
+
* lacks a snapshot version, etc.). Distinct from `BackendIntegrityError`,
|
|
42
|
+
* which signals a stub backend at run time. */
|
|
43
|
+
export declare class ProfileMatrixError extends AgentEvalError {
|
|
44
|
+
constructor(message: string);
|
|
45
|
+
}
|
|
46
|
+
/** Dispatch for one cell: render `profile` against `scenario`, returning the
|
|
47
|
+
* artifact the judges score. Report LLM usage via `ctx.cost.observeTokens`
|
|
48
|
+
* and `ctx.cost.observe` — the integrity guard depends on it. */
|
|
49
|
+
export type ProfileDispatchFn<TScenario extends Scenario, TArtifact> = (profile: AgentProfile, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
|
|
50
|
+
export interface RunProfileMatrixOptions<TScenario extends Scenario, TArtifact> {
|
|
51
|
+
/** Axis 3 — the agent-under-test configurations. Each is one column. */
|
|
52
|
+
profiles: AgentProfile[];
|
|
53
|
+
/** Axis 1 — the persona/scenario corpus, run against every profile. */
|
|
54
|
+
scenarios: TScenario[];
|
|
55
|
+
/** Renders one (profile, scenario) cell. */
|
|
56
|
+
dispatch: ProfileDispatchFn<TScenario, TArtifact>;
|
|
57
|
+
/** The scoring axis. */
|
|
58
|
+
judges?: JudgeConfig<TArtifact, TScenario>[];
|
|
59
|
+
/** Where each profile's campaign writes artifacts/traces. One subdir per
|
|
60
|
+
* profile. */
|
|
61
|
+
runDir: string;
|
|
62
|
+
/** Git SHA the harness ran from — stamped onto every RunRecord (mandatory
|
|
63
|
+
* for paper-grade records). */
|
|
64
|
+
commitSha: string;
|
|
65
|
+
/** Logical experiment id shared across the whole matrix so the promotion
|
|
66
|
+
* gate can pair profiles on matched scenarios. Default: a hash of the
|
|
67
|
+
* profile + scenario ids. */
|
|
68
|
+
experimentId?: string;
|
|
69
|
+
/** Which split these runs belong to. Default `'search'`. */
|
|
70
|
+
splitTag?: RunSplitTag;
|
|
71
|
+
/** Replicates per (profile, scenario) cell for CI bands. Default 1. */
|
|
72
|
+
reps?: number;
|
|
73
|
+
/** Campaign seed (per profile). Default 42. */
|
|
74
|
+
seed?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Backend-integrity posture, enforced AFTER the matrix completes:
|
|
77
|
+
* - `'assert'` (default) — throw `BackendIntegrityError` if the run was a
|
|
78
|
+
* stub (and, with `allowMixed:false`, if it was mixed).
|
|
79
|
+
* - `'warn'` — log the verdict but never throw.
|
|
80
|
+
* - `'off'` — skip the guard entirely (only for offline/replay analysis).
|
|
81
|
+
*/
|
|
82
|
+
integrity?: 'assert' | 'warn' | 'off';
|
|
83
|
+
/** Forwarded to `assertRealBackend`. Default true (tolerate partial 429
|
|
84
|
+
* cascades); set false for strict CI gates. */
|
|
85
|
+
allowMixed?: boolean;
|
|
86
|
+
/** Max concurrent cells WITHIN each profile's campaign. Default 2.
|
|
87
|
+
* Profiles run sequentially so the cost ceiling is honored deterministically. */
|
|
88
|
+
maxConcurrency?: number;
|
|
89
|
+
/** Cumulative USD cap per profile campaign. */
|
|
90
|
+
costCeiling?: number;
|
|
91
|
+
/** Capture flywheel — forwarded to each campaign. */
|
|
92
|
+
labeledStore?: LabeledScenarioStore | 'off';
|
|
93
|
+
captureSource?: LabeledScenarioSource;
|
|
94
|
+
/** Storage backend. Default `fsCampaignStorage`. Pass
|
|
95
|
+
* `inMemoryCampaignStorage()` for edge/CF-Worker/test runs. */
|
|
96
|
+
storage?: CampaignStorage;
|
|
97
|
+
/** Test seam — override the wall clock. */
|
|
98
|
+
now?: () => Date;
|
|
99
|
+
/** Optional persona key per scenario — drives the `byPersona` pivot. When
|
|
100
|
+
* unset, `byPersona` is omitted. */
|
|
101
|
+
personaOf?: (scenario: TScenario) => string;
|
|
102
|
+
/** Validate every produced RunRecord with `validateRunRecord` (fail-loud).
|
|
103
|
+
* Default true — catches bad model snapshots and non-finite judge dims at
|
|
104
|
+
* the boundary instead of letting them poison downstream analysis. */
|
|
105
|
+
validate?: boolean;
|
|
106
|
+
/** Corpus-by-default: derive the trajectory text (`prompt` + `completion`)
|
|
107
|
+
* for each cell from its artifact + scenario. When set, every produced
|
|
108
|
+
* record carries `prompt`/`completion` (a `CorpusRecord`) so the run's
|
|
109
|
+
* graded trajectories can be appended to the durable RL corpus with no
|
|
110
|
+
* side-channel — `appendToCorpus(result.records, path)`. Fail-soft: a
|
|
111
|
+
* throwing or undefined-returning extractor just omits the text. */
|
|
112
|
+
corpusText?: (artifact: TArtifact, scenario: TScenario) => {
|
|
113
|
+
prompt: string;
|
|
114
|
+
completion: string;
|
|
115
|
+
} | undefined;
|
|
116
|
+
}
|
|
117
|
+
export interface ProfileSummary {
|
|
118
|
+
profileId: string;
|
|
119
|
+
profileHash: string;
|
|
120
|
+
model: string;
|
|
121
|
+
/** RunRecords produced for this profile (= scenarios × reps). */
|
|
122
|
+
records: number;
|
|
123
|
+
/** Mean composite across this profile's records. */
|
|
124
|
+
meanComposite: number;
|
|
125
|
+
totalCostUsd: number;
|
|
126
|
+
/** Per-profile integrity verdict — surfaces a single profile that ran stub
|
|
127
|
+
* even when the matrix as a whole looks real. */
|
|
128
|
+
integrity: BackendIntegrityReport;
|
|
129
|
+
}
|
|
130
|
+
export interface ScenarioRollup {
|
|
131
|
+
meanComposite: number;
|
|
132
|
+
n: number;
|
|
133
|
+
}
|
|
134
|
+
export interface RunProfileMatrixResult<TArtifact, TScenario extends Scenario> {
|
|
135
|
+
matrixId: string;
|
|
136
|
+
experimentId: string;
|
|
137
|
+
/** One RunRecord per (profile, scenario, rep) cell — the integrity-checked,
|
|
138
|
+
* paper-grade output. Feed straight into `analyzeRuns`, `HeldOutGate`,
|
|
139
|
+
* scorecards, the hosted wire format. */
|
|
140
|
+
records: RunRecord[];
|
|
141
|
+
byProfile: Record<string, ProfileSummary>;
|
|
142
|
+
byScenario: Record<string, ScenarioRollup>;
|
|
143
|
+
/** Present only when `personaOf` was supplied. */
|
|
144
|
+
byPersona?: Record<string, ScenarioRollup>;
|
|
145
|
+
/** Whole-matrix integrity report (the one `integrity:'assert'` enforces). */
|
|
146
|
+
integrity: BackendIntegrityReport;
|
|
147
|
+
/** The raw per-profile campaign results, keyed by profile id. */
|
|
148
|
+
campaigns: Record<string, CampaignResult<TArtifact, TScenario>>;
|
|
149
|
+
}
|
|
150
|
+
export declare function runProfileMatrix<TScenario extends Scenario, TArtifact>(opts: RunProfileMatrixOptions<TScenario, TArtifact>): Promise<RunProfileMatrixResult<TArtifact, TScenario>>;
|
|
151
|
+
//# sourceMappingURL=run-profile-matrix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-profile-matrix.d.ts","sourceRoot":"","sources":["../../../src/campaign/presets/run-profile-matrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `runSkillOpt` — the SkillOpt epoch hill-climb (Microsoft, arXiv:2605.23904).
|
|
3
|
+
* Unlike `runOptimization`'s population/promote-top-K search, SkillOpt is a
|
|
4
|
+
* sequential, held-out-gated hill-climb on ONE skill document:
|
|
5
|
+
*
|
|
6
|
+
* each epoch:
|
|
7
|
+
* 1. reflect on the CURRENT surface's weakest TRAIN scenarios/dimensions
|
|
8
|
+
* (never the held-out split — proposals must not see the acceptance axis)
|
|
9
|
+
* 2. propose ≤ `patchesPerEpoch` bounded patches (≤ `editBudget` ops each)
|
|
10
|
+
* 3. apply each; score the candidate on the HELD-OUT split
|
|
11
|
+
* 4. ACCEPT the first patch that STRICTLY improves the held-out composite;
|
|
12
|
+
* otherwise push it to the rejected-edit buffer (fed back so the model
|
|
13
|
+
* does not re-propose dead ends)
|
|
14
|
+
* 5. anneal the edit budget down after consecutive rejections (the
|
|
15
|
+
* "textual learning rate" decay); refresh the slow-update meta note
|
|
16
|
+
* 6. stop at `maxEpochs` or after `patience` epochs with no acceptance
|
|
17
|
+
*
|
|
18
|
+
* The accept-only-if-held-out-improves rule is the same discipline as
|
|
19
|
+
* `HeldOutGate`/`defaultProductionGate`, applied per edit instead of once at
|
|
20
|
+
* the end — which is why the held-out composite is monotonically
|
|
21
|
+
* non-decreasing and a regression can never ship. `runCampaign` is the
|
|
22
|
+
* measurement; `applySkillPatch` applies the edits; `skillOptProposer` proposes
|
|
23
|
+
* them.
|
|
24
|
+
*/
|
|
25
|
+
import type { RejectedEdit, SkillOptProposer } from '../proposers/skill-opt';
|
|
26
|
+
import { type RunCampaignOptions } from '../run-campaign';
|
|
27
|
+
import type { DispatchContext, Scenario } from '../types';
|
|
28
|
+
export interface RunSkillOptOptions<TScenario extends Scenario, TArtifact> extends Omit<RunCampaignOptions<TScenario, TArtifact>, 'dispatch' | 'scenarios'> {
|
|
29
|
+
/** The skill document being optimized. */
|
|
30
|
+
baselineSurface: string;
|
|
31
|
+
/** Dispatcher taking the CURRENT skill surface + scenario → artifact. */
|
|
32
|
+
dispatchWithSurface: (surface: string, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
|
|
33
|
+
proposer: SkillOptProposer;
|
|
34
|
+
/** Scenarios the optimizer reflects on for evidence. MUST be disjoint from
|
|
35
|
+
* `holdoutScenarios` — proposals never see the acceptance axis. */
|
|
36
|
+
trainScenarios: TScenario[];
|
|
37
|
+
/** Held-out scenarios. An edit is accepted ONLY if it strictly improves the
|
|
38
|
+
* mean composite here. */
|
|
39
|
+
holdoutScenarios: TScenario[];
|
|
40
|
+
maxEpochs: number;
|
|
41
|
+
/** Candidate patches proposed per epoch. Default 2. */
|
|
42
|
+
patchesPerEpoch?: number;
|
|
43
|
+
/** Initial ops-per-patch cap (the textual learning rate). Default 3. */
|
|
44
|
+
editBudget?: number;
|
|
45
|
+
/** Strict acceptance margin: accept iff the held-out composite improves by
|
|
46
|
+
* MORE than this. Default 0 (any strict improvement). */
|
|
47
|
+
minImprovement?: number;
|
|
48
|
+
/** Stop after this many consecutive epochs with no acceptance. Default =
|
|
49
|
+
* `maxEpochs` (never early-stop). */
|
|
50
|
+
patience?: number;
|
|
51
|
+
/** Shrink the edit budget by 1 after 2 consecutive rejected epochs (min 1).
|
|
52
|
+
* Default true. */
|
|
53
|
+
budgetAnneal?: boolean;
|
|
54
|
+
/** Cap on the rejected-edit buffer (most-recent kept). Default 12. */
|
|
55
|
+
rejectedBufferSize?: number;
|
|
56
|
+
/** Refresh the slow-update meta note every N epochs. Default 2. 0 disables. */
|
|
57
|
+
slowMetaEvery?: number;
|
|
58
|
+
/** Top-K weak scenarios/dimensions surfaced as evidence each epoch. Default 3. */
|
|
59
|
+
evidenceK?: number;
|
|
60
|
+
/** Abort signal forwarded to the patch-proposing LLM calls. */
|
|
61
|
+
signal?: AbortSignal;
|
|
62
|
+
}
|
|
63
|
+
export interface AcceptedEdit {
|
|
64
|
+
epoch: number;
|
|
65
|
+
label: string;
|
|
66
|
+
rationale: string;
|
|
67
|
+
/** Held-out composite improvement vs the surface before this edit. */
|
|
68
|
+
holdoutDelta: number;
|
|
69
|
+
}
|
|
70
|
+
export interface SkillOptEpochRecord {
|
|
71
|
+
epoch: number;
|
|
72
|
+
editBudget: number;
|
|
73
|
+
proposed: number;
|
|
74
|
+
/** The accepted edit this epoch, or null if every proposal was rejected. */
|
|
75
|
+
accepted: AcceptedEdit | null;
|
|
76
|
+
rejected: RejectedEdit[];
|
|
77
|
+
/** Held-out composite of the CURRENT surface at the END of the epoch. */
|
|
78
|
+
holdoutComposite: number;
|
|
79
|
+
}
|
|
80
|
+
export interface RunSkillOptResult {
|
|
81
|
+
winnerSurface: string;
|
|
82
|
+
baselineHoldoutComposite: number;
|
|
83
|
+
winnerHoldoutComposite: number;
|
|
84
|
+
/** `winnerHoldoutComposite - baselineHoldoutComposite` — monotonically ≥ 0
|
|
85
|
+
* by construction (only strictly-improving edits are accepted). */
|
|
86
|
+
lift: number;
|
|
87
|
+
acceptedEdits: AcceptedEdit[];
|
|
88
|
+
rejectedEdits: RejectedEdit[];
|
|
89
|
+
epochsRun: number;
|
|
90
|
+
history: SkillOptEpochRecord[];
|
|
91
|
+
/** Total cost across every scoring campaign (train evidence + holdout
|
|
92
|
+
* acceptance) the hill-climb ran. */
|
|
93
|
+
totalCostUsd: number;
|
|
94
|
+
}
|
|
95
|
+
export declare function runSkillOpt<TScenario extends Scenario, TArtifact>(opts: RunSkillOptOptions<TScenario, TArtifact>): Promise<RunSkillOptResult>;
|
|
96
|
+
//# sourceMappingURL=run-skill-opt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-skill-opt.d.ts","sourceRoot":"","sources":["../../../src/campaign/presets/run-skill-opt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,KAAK,kBAAkB,EAAe,MAAM,iBAAiB,CAAA;AAGtE,OAAO,KAAK,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEzE,MAAM,WAAW,kBAAkB,CAAC,SAAS,SAAS,QAAQ,EAAE,SAAS,CACvE,SAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAChF,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,yEAAyE;IACzE,mBAAmB,EAAE,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,EACnB,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,SAAS,CAAC,CAAA;IACvB,QAAQ,EAAE,gBAAgB,CAAA;IAC1B;wEACoE;IACpE,cAAc,EAAE,SAAS,EAAE,CAAA;IAC3B;+BAC2B;IAC3B,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;8DAC0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;0CACsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;wBACoB;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,sBAAsB,EAAE,MAAM,CAAA;IAC9B;wEACoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B;0CACsC;IACtC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,WAAW,CAAC,SAAS,SAAS,QAAQ,EAAE,SAAS,EACrE,IAAI,EAAE,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,iBAAiB,CAAC,CAqJ5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared finding→text helpers for the curator-style proposers (`memoryCurationProposer`
|
|
3
|
+
* dedup-and-replace, `aceProposer` append-mostly). One copy so the two proposers
|
|
4
|
+
* extract lessons + normalize keys identically and cannot drift apart.
|
|
5
|
+
*/
|
|
6
|
+
import type { MutableSurface } from '../types';
|
|
7
|
+
/** A finding can be a raw string or a structured analyst finding. Pulls the
|
|
8
|
+
* most actionable text (recommended_action > claim > lesson > text > message). */
|
|
9
|
+
export declare function findingToLesson(f: unknown): string | null;
|
|
10
|
+
/** Normalize for dedup/idempotency: lowercase, collapse whitespace, strip
|
|
11
|
+
* trailing punctuation. */
|
|
12
|
+
export declare function normKey(s: string): string;
|
|
13
|
+
/** Curator proposers are prompt-tier — they manage a text block in the surface.
|
|
14
|
+
* A code-tier surface has no prompt to append to; fail loud rather than
|
|
15
|
+
* silently coercing. */
|
|
16
|
+
export declare function surfaceToText(surface: MutableSurface): string;
|
|
17
|
+
/** Body text strictly between `startMarker` and `endMarker`; '' if absent. */
|
|
18
|
+
export declare function extractBlockBody(text: string, startMarker: string, endMarker: string): string;
|
|
19
|
+
/** Remove the delimited block (and surrounding trailing whitespace), trimmed,
|
|
20
|
+
* so the caller can re-emit a fresh block. */
|
|
21
|
+
export declare function stripBlock(text: string, startMarker: string, endMarker: string): string;
|
|
22
|
+
//# sourceMappingURL=_findings-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_findings-text.d.ts","sourceRoot":"","sources":["../../../src/campaign/proposers/_findings-text.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9C;mFACmF;AACnF,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQzD;AAED;4BAC4B;AAC5B,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzC;AAED;;yBAEyB;AACzB,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAK7D;AAOD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK7F;AAED;+CAC+C;AAC/C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKvF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aceProposer` — Agentic Context Engineering: an APPEND-MOSTLY curator, the
|
|
3
|
+
* deliberate contrast to `memoryCurationProposer`'s dedup-and-replace. ACE's
|
|
4
|
+
* thesis (arXiv:2510.04618) is that aggressively deduping/rewriting a context
|
|
5
|
+
* causes "context collapse" — hard-won specific lessons get summarized away. So
|
|
6
|
+
* the playbook GROWS by appending each generation's new lessons as provenance-
|
|
7
|
+
* tagged delta bullets; existing bullets are preserved verbatim, never merged.
|
|
8
|
+
*
|
|
9
|
+
* Each generation it:
|
|
10
|
+
* 1. reads the playbook block already in the parent surface (verbatim);
|
|
11
|
+
* 2. turns this generation's `findings` into lessons, keeping only the ones not
|
|
12
|
+
* already present (idempotency — a recurring finding is not re-appended, but
|
|
13
|
+
* a genuinely NEW lesson always is, even if similar to an old one);
|
|
14
|
+
* 3. appends the new lessons as `- [gN] <lesson>` deltas and re-emits the block.
|
|
15
|
+
*
|
|
16
|
+
* Bounded WITHOUT collapse: when the playbook exceeds `maxEntries`, the OLDEST
|
|
17
|
+
* deltas are evicted (FIFO) — recency is kept, but no two distinct lessons are
|
|
18
|
+
* ever merged into one. Deterministic (no LLM) so a lift is attributable to the
|
|
19
|
+
* accumulated lessons, not a rewrite's model noise.
|
|
20
|
+
*
|
|
21
|
+
* Fail-loud: with no new lesson this generation it returns NO candidate (the
|
|
22
|
+
* playbook is unchanged — nothing to propose), never a fabricated bullet.
|
|
23
|
+
*/
|
|
24
|
+
import type { SurfaceProposer } from '../types';
|
|
25
|
+
export interface AceProposerOptions {
|
|
26
|
+
/** Max delta bullets retained in the playbook. On overflow the OLDEST are
|
|
27
|
+
* evicted (FIFO) — never merged. Default 50 (ACE keeps a long context). */
|
|
28
|
+
maxEntries?: number;
|
|
29
|
+
/** Heading rendered above the bullets inside the block. */
|
|
30
|
+
sectionHeading?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function aceProposer(opts?: AceProposerOptions): SurfaceProposer;
|
|
33
|
+
//# sourceMappingURL=ace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ace.d.ts","sourceRoot":"","sources":["../../../src/campaign/proposers/ace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAqC,eAAe,EAAE,MAAM,UAAU,CAAA;AAalF,MAAM,WAAW,kBAAkB;IACjC;gFAC4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAwBD,wBAAgB,WAAW,CAAC,IAAI,GAAE,kBAAuB,GAAG,eAAe,CAgD1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ace.test.d.ts","sourceRoot":"","sources":["../../../src/campaign/proposers/ace.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared core for prompt-tier "analysis → one LLM edit" proposers. `haloProposer`
|
|
3
|
+
* and `traceAnalystProposer` differ ONLY in who produces the findings; the
|
|
4
|
+
* materialize-traces → apply-via-`APPLY_SYSTEM` → candidate pipeline is
|
|
5
|
+
* identical. Keeping it in one place IS the fairness contract their head-to-head
|
|
6
|
+
* (`compareProposers`) depends on — the apply step can no longer drift between the
|
|
7
|
+
* two engines being compared.
|
|
8
|
+
*/
|
|
9
|
+
import type { LlmClientOptions } from '../../llm-client';
|
|
10
|
+
import type { ProposeContext, SurfaceProposer } from '../types';
|
|
11
|
+
export declare const APPLY_SYSTEM = "You apply a trace-analysis report to an agent instruction prompt. Output ONLY the full revised prompt \u2014 no preamble, no commentary, no code fences. Make the minimal edits that address the report findings; preserve everything else verbatim.";
|
|
12
|
+
/** Serialize a surface (string or structured) into prompt text. */
|
|
13
|
+
export declare function surfaceToPromptText(surface: unknown): string;
|
|
14
|
+
export interface AnalysisEditProposerOptions {
|
|
15
|
+
kind: string;
|
|
16
|
+
label: string;
|
|
17
|
+
baseUrl: string;
|
|
18
|
+
apiKey?: string;
|
|
19
|
+
applyModel: string;
|
|
20
|
+
fetchImpl?: LlmClientOptions['fetch'];
|
|
21
|
+
/** Resolve the OTLP traces (JSONL) for THIS generation. Empty → `noTracesError`. */
|
|
22
|
+
resolveTraces: (ctx: ProposeContext) => string | Promise<string>;
|
|
23
|
+
/** Produce the analysis REPORT string from the materialized trace file. Owns
|
|
24
|
+
* its engine-specific failure + no-findings throws. */
|
|
25
|
+
analyze: (tracePath: string, ctx: ProposeContext) => Promise<string>;
|
|
26
|
+
noTracesError: string;
|
|
27
|
+
rationale: (report: string) => string;
|
|
28
|
+
}
|
|
29
|
+
/** Build a `SurfaceProposer` that runs `analyze` over the generation's OTLP
|
|
30
|
+
* traces and applies the report to the surface via one identical LLM edit. */
|
|
31
|
+
export declare function analysisEditProposer(opts: AnalysisEditProposerOptions): SurfaceProposer;
|
|
32
|
+
//# sourceMappingURL=analysis-edit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis-edit.d.ts","sourceRoot":"","sources":["../../../src/campaign/proposers/analysis-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,KAAK,EAAE,cAAc,EAAqB,eAAe,EAAE,MAAM,UAAU,CAAA;AAElF,eAAO,MAAM,YAAY,yPAC0N,CAAA;AAEnP,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACrC,oFAAoF;IACpF,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChE;4DACwD;IACxD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACpE,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;CACtC;AAED;+EAC+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,GAAG,eAAe,CAgCvF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `evolutionaryProposer` — adapts a stateless `Mutator` (population mutation:
|
|
3
|
+
* GEPA / AxGEPA / reflective-mutation) into a `SurfaceProposer`. This is
|
|
4
|
+
* the evolutionary strategy: each generation, mutate the current best surface
|
|
5
|
+
* into N candidates, measure, select. No generation memory beyond the current
|
|
6
|
+
* surface; the loop body handles ranking + promotion.
|
|
7
|
+
*
|
|
8
|
+
* The reflective alternative is agent-runtime's runtime proposer with a
|
|
9
|
+
* `reflectiveGenerator` / `agenticGenerator`: it reasons over the report +
|
|
10
|
+
* trace findings to propose targeted edits rather than blind mutations. Both
|
|
11
|
+
* conform to `SurfaceProposer`; the improvement loop is identical either way.
|
|
12
|
+
*/
|
|
13
|
+
import type { Mutator, SurfaceProposer } from '../types';
|
|
14
|
+
export interface EvolutionaryProposerOptions<TFindings = unknown> {
|
|
15
|
+
mutator: Mutator<TFindings>;
|
|
16
|
+
/** External findings fed to the mutator each generation. Default: []. */
|
|
17
|
+
findings?: TFindings[];
|
|
18
|
+
}
|
|
19
|
+
export declare function evolutionaryProposer<TFindings = unknown>(opts: EvolutionaryProposerOptions<TFindings>): SurfaceProposer<TFindings>;
|
|
20
|
+
//# sourceMappingURL=evolutionary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evolutionary.d.ts","sourceRoot":"","sources":["../../../src/campaign/proposers/evolutionary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAExD,MAAM,WAAW,2BAA2B,CAAC,SAAS,GAAG,OAAO;IAC9D,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,wBAAgB,oBAAoB,CAAC,SAAS,GAAG,OAAO,EACtD,IAAI,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAC3C,eAAe,CAAC,SAAS,CAAC,CAY5B"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FAPO (Fully Autonomous Prompt Optimization) is an orchestration policy, not
|
|
3
|
+
* a new prompt mutation primitive. The paper's loop evaluates an inspectable
|
|
4
|
+
* workflow, attributes failures to an edit level, proposes ONE scoped change,
|
|
5
|
+
* reviews it, measures it, and escalates from prompt -> parameters -> structure
|
|
6
|
+
* only when prompt-level search is exhausted and attribution supports the
|
|
7
|
+
* higher-cost edit.
|
|
8
|
+
*
|
|
9
|
+
* This substrate proposer encodes that policy while keeping the edit generators
|
|
10
|
+
* pluggable:
|
|
11
|
+
* - prompt: usually `gepaProposer`, `skillOptProposer`, or a runtime reflective proposer
|
|
12
|
+
* - parameter: `parameterSweepProposer` or a caller-supplied config proposer
|
|
13
|
+
* - structural: a caller-supplied code/worktree proposer from agent-runtime
|
|
14
|
+
*
|
|
15
|
+
* It deliberately does not import Claude Code, LangGraph, or Cisco's tenant
|
|
16
|
+
* runtime. agent-eval owns measurement and proposer contracts; runtime-shaped
|
|
17
|
+
* code generation stays downstream.
|
|
18
|
+
*
|
|
19
|
+
* Grounded sources:
|
|
20
|
+
* - Kassianik et al., "FAPO: Fully Autonomous Prompt Optimization of
|
|
21
|
+
* Multi-Step LLM Pipelines", arXiv:2606.19605v1.
|
|
22
|
+
* - cisco-foundation-ai/fully-automated-prompt-optimization at
|
|
23
|
+
* 376b50c57d5e2423e5a5de46e0d315a761d272d8.
|
|
24
|
+
*/
|
|
25
|
+
import type { ProposeContext, ProposedCandidate, SurfaceProposer } from '../types';
|
|
26
|
+
export type FapoOptimizationLevel = 'prompt' | 'parameter' | 'structural';
|
|
27
|
+
export interface FapoScopeContract {
|
|
28
|
+
/** Levels the tenant/playbook allows. Defaults to the levels with proposers. */
|
|
29
|
+
allowedLevels?: readonly FapoOptimizationLevel[];
|
|
30
|
+
/** Explicitly forbidden levels; wins over `allowedLevels`. */
|
|
31
|
+
forbiddenLevels?: readonly FapoOptimizationLevel[];
|
|
32
|
+
}
|
|
33
|
+
export interface FapoFailureCluster {
|
|
34
|
+
label: string;
|
|
35
|
+
level: FapoOptimizationLevel;
|
|
36
|
+
count: number;
|
|
37
|
+
confidence?: 'high' | 'medium' | 'low';
|
|
38
|
+
suggestedFix?: string;
|
|
39
|
+
caseIds?: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface FapoAttributionSignals {
|
|
42
|
+
counts: Record<FapoOptimizationLevel, number>;
|
|
43
|
+
clusters: FapoFailureCluster[];
|
|
44
|
+
}
|
|
45
|
+
export interface FapoReviewIssue {
|
|
46
|
+
checkName: string;
|
|
47
|
+
severity: 'block' | 'warn';
|
|
48
|
+
description: string;
|
|
49
|
+
location?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface FapoReviewResult {
|
|
52
|
+
verdict: 'pass' | 'warn' | 'fail';
|
|
53
|
+
issues?: FapoReviewIssue[];
|
|
54
|
+
suggestions?: string[];
|
|
55
|
+
}
|
|
56
|
+
export interface FapoReviewInput<TFindings = unknown> {
|
|
57
|
+
level: FapoOptimizationLevel;
|
|
58
|
+
candidate: ProposedCandidate;
|
|
59
|
+
context: ProposeContext<TFindings>;
|
|
60
|
+
reason: string;
|
|
61
|
+
}
|
|
62
|
+
export interface FapoProposerOptions<TFindings = unknown> {
|
|
63
|
+
/** Level-specific candidate proposers. At least one is required. */
|
|
64
|
+
proposers?: Partial<Record<FapoOptimizationLevel, SurfaceProposer<TFindings>>>;
|
|
65
|
+
/** Convenience aliases for `proposers.<level>`. */
|
|
66
|
+
promptProposer?: SurfaceProposer<TFindings>;
|
|
67
|
+
parameterProposer?: SurfaceProposer<TFindings>;
|
|
68
|
+
structuralProposer?: SurfaceProposer<TFindings>;
|
|
69
|
+
/** Tenant/playbook-derived allowed and forbidden edit levels. */
|
|
70
|
+
scope?: FapoScopeContract;
|
|
71
|
+
/**
|
|
72
|
+
* Independent reviewer hook. Return `fail` to block a candidate before eval,
|
|
73
|
+
* mirroring FAPO's variant-reviewer phase.
|
|
74
|
+
*/
|
|
75
|
+
reviewCandidate?: (input: FapoReviewInput<TFindings>) => Promise<FapoReviewResult>;
|
|
76
|
+
/**
|
|
77
|
+
* FAPO proposes one scoped change per cycle. Keep this at 1 unless you are
|
|
78
|
+
* intentionally relaxing the paper loop for a batch experiment.
|
|
79
|
+
*/
|
|
80
|
+
proposalsPerCycle?: number;
|
|
81
|
+
/** Consecutive non-improving variants required before a level is exhausted. Default 3. */
|
|
82
|
+
plateauWindow?: number;
|
|
83
|
+
/** Distinct strategies required before declaring a plateau. Default 3. */
|
|
84
|
+
minDistinctStrategies?: number;
|
|
85
|
+
/** Candidate score delta needed to count as an improvement. Default 0. */
|
|
86
|
+
minImprovement?: number;
|
|
87
|
+
/** Paper-faithful default: try prompt edits before escalating. */
|
|
88
|
+
promptFirst?: boolean;
|
|
89
|
+
/** Paper-faithful default: try parameter/config edits before structural code edits. */
|
|
90
|
+
parameterBeforeStructural?: boolean;
|
|
91
|
+
}
|
|
92
|
+
/** Build a FAPO policy proposer from level-specific candidate generators. */
|
|
93
|
+
export declare function fapoProposer<TFindings = unknown>(opts: FapoProposerOptions<TFindings>): SurfaceProposer<TFindings>;
|
|
94
|
+
export declare function extractFapoAttributionSignals(findings: readonly unknown[]): FapoAttributionSignals;
|
|
95
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
96
|
+
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
97
|
+
[key: string]: JsonValue;
|
|
98
|
+
};
|
|
99
|
+
export interface ParameterChange {
|
|
100
|
+
path: string | readonly string[];
|
|
101
|
+
value: JsonValue;
|
|
102
|
+
}
|
|
103
|
+
export interface ParameterCandidate {
|
|
104
|
+
label: string;
|
|
105
|
+
rationale: string;
|
|
106
|
+
/** Deep-merged into the current JSON surface. */
|
|
107
|
+
patch?: Record<string, JsonValue>;
|
|
108
|
+
/** Dot-path writes, e.g. `{ path: 'retrieval.k', value: 10 }`. */
|
|
109
|
+
changes?: readonly ParameterChange[];
|
|
110
|
+
}
|
|
111
|
+
export interface ParameterSweepProposerOptions {
|
|
112
|
+
candidates: readonly ParameterCandidate[];
|
|
113
|
+
/** Optional parser for non-JSON config surface strings. */
|
|
114
|
+
parse?: (surface: string) => Record<string, JsonValue>;
|
|
115
|
+
/** Optional serializer for non-JSON config surface strings. */
|
|
116
|
+
stringify?: (config: Record<string, JsonValue>) => string;
|
|
117
|
+
}
|
|
118
|
+
/** Config/parameter-level proposer for FAPO's middle escalation level. */
|
|
119
|
+
export declare function parameterSweepProposer(opts: ParameterSweepProposerOptions): SurfaceProposer;
|
|
120
|
+
//# sourceMappingURL=fapo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fapo.d.ts","sourceRoot":"","sources":["../../../src/campaign/proposers/fapo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `gepaProposer` — a reflective `SurfaceProposer` for prompt-tier surfaces.
|
|
3
|
+
* Each generation it reflects on the prior best candidate's per-scenario
|
|
4
|
+
* scores + weakest dimensions, asks an LLM to propose targeted rewrites of
|
|
5
|
+
* the current surface, and returns them as the next population.
|
|
6
|
+
*
|
|
7
|
+
* Maps onto the GEPA paper (Agrawal et al., arXiv:2507.19457):
|
|
8
|
+
* - *Reflection*: each generation reflects on the best parent's weakest
|
|
9
|
+
* dimensions + per-scenario top/bottom scores to propose targeted rewrites.
|
|
10
|
+
* - *Pareto frontier*: `runOptimization` maintains the non-dominated set of
|
|
11
|
+
* surfaces across generations (per-scenario objective vectors) and supplies
|
|
12
|
+
* it as `ctx.paretoParents`. A surface uniquely best on one hard scenario
|
|
13
|
+
* survives even when its mean composite is lower.
|
|
14
|
+
* - *Combine complementary lessons*: when the frontier has >1 member, the
|
|
15
|
+
* first population slot is a merge of those parents' strengths (one LLM
|
|
16
|
+
* call citing each parent's winning scenarios). Toggle via `combineParents`.
|
|
17
|
+
* Dominance is computed by the package-canonical `paretoFrontier` (`pareto.ts`).
|
|
18
|
+
*
|
|
19
|
+
* Optional `constraints` move structured-doc guards into the proposer
|
|
20
|
+
* (preserve H2 section headings, cap sentence-level edits) — useful when
|
|
21
|
+
* the surface IS a structured procedure like a SKILL.md / runbook /
|
|
22
|
+
* judge rubric. When `constraints` is omitted, behavior is unchanged.
|
|
23
|
+
*
|
|
24
|
+
* The proposer is surface-agnostic — any string surface in any consumer opts
|
|
25
|
+
* in by selecting it. Reuses the generic reflection primitive
|
|
26
|
+
* (`buildReflectionPrompt` / `parseReflectionResponse`) and the router client.
|
|
27
|
+
*
|
|
28
|
+
* Earns its keep where there is real per-instance signal (which the
|
|
29
|
+
* dimensional + per-scenario evidence + the `LabeledScenarioStore` flywheel
|
|
30
|
+
* now provide). For thin-signal surfaces it degrades to plain reflection.
|
|
31
|
+
* On generation 0 (no history) it reflects on the current surface against
|
|
32
|
+
* the mutation primitives alone.
|
|
33
|
+
*/
|
|
34
|
+
import { type LlmClientOptions } from '../../llm-client';
|
|
35
|
+
import type { SurfaceProposer } from '../types';
|
|
36
|
+
export interface GepaProposerConstraints {
|
|
37
|
+
/** H2 section headings that MUST appear unchanged in every candidate.
|
|
38
|
+
* When set, the proposer auto-detects current H2s if this is empty AND
|
|
39
|
+
* rejects any candidate that drops or renames a preserved heading.
|
|
40
|
+
* Use when the surface is a structured doc (SKILL.md, runbook,
|
|
41
|
+
* sectioned system prompt, judge rubric). */
|
|
42
|
+
preserveSections?: string[];
|
|
43
|
+
/** Maximum sentence-level edits per candidate vs the parent surface.
|
|
44
|
+
* Rejection threshold = maxSentenceEdits × 2 (counts adds + removes).
|
|
45
|
+
* Inspired by SkillOpt's edit-budget as a "textual learning rate."
|
|
46
|
+
* Cap prevents an LLM rewrite from overwriting useful prior rules. */
|
|
47
|
+
maxSentenceEdits?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface GepaProposerOptions {
|
|
50
|
+
/** Router transport (apiKey/baseUrl). */
|
|
51
|
+
llm: LlmClientOptions;
|
|
52
|
+
/** Model that performs the reflection. */
|
|
53
|
+
model: string;
|
|
54
|
+
/** What is being optimized — appears in the reflection prompt for orientation. */
|
|
55
|
+
target: string;
|
|
56
|
+
/** Surface-specific mutation levers offered to the model. */
|
|
57
|
+
mutationPrimitives?: string[];
|
|
58
|
+
/** Top/bottom scenarios surfaced as evidence each generation. Default 3. */
|
|
59
|
+
evidenceK?: number;
|
|
60
|
+
/** Reflection sampling temperature. Default 0.7. */
|
|
61
|
+
temperature?: number;
|
|
62
|
+
/** Reflection max tokens. Default 6000. */
|
|
63
|
+
maxTokens?: number;
|
|
64
|
+
/** Structured-doc constraints. Candidates violating any are rejected
|
|
65
|
+
* post-parse and dropped from the returned population. */
|
|
66
|
+
constraints?: GepaProposerConstraints;
|
|
67
|
+
/** GEPA combine-complementary-lessons: when the loop supplies a Pareto
|
|
68
|
+
* frontier of >1 non-dominated parents (`ctx.paretoParents`), spend one
|
|
69
|
+
* slot of the population on a merge of their strengths. Default `true` —
|
|
70
|
+
* this is the GEPA-faithful behavior; the merge only fires once the
|
|
71
|
+
* frontier has more than one member (generation ≥ 1). Set `false` for
|
|
72
|
+
* pure single-parent reflection. */
|
|
73
|
+
combineParents?: boolean;
|
|
74
|
+
/** Cap on how many frontier parents feed one combine prompt (highest
|
|
75
|
+
* composite first), to bound prompt size. Default 4. */
|
|
76
|
+
combineMaxParents?: number;
|
|
77
|
+
}
|
|
78
|
+
export declare function gepaProposer(opts: GepaProposerOptions): SurfaceProposer;
|
|
79
|
+
/** Extract H2 headings (`## Foo`) from a markdown surface. Exported for
|
|
80
|
+
* consumers building custom mutators that share the same invariant. */
|
|
81
|
+
export declare function extractH2Sections(text: string): string[];
|
|
82
|
+
/** Sentence-level edit distance — count distinct add/remove ops between
|
|
83
|
+
* two surfaces via a normalised line-by-line set diff. Treats trivial
|
|
84
|
+
* whitespace as identical. Exported for tests + consumer-side validators. */
|
|
85
|
+
export declare function countSentenceEdits(baseline: string, candidate: string): number;
|
|
86
|
+
//# sourceMappingURL=gepa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gepa.d.ts","sourceRoot":"","sources":["../../../src/campaign/proposers/gepa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAOjE,OAAO,KAAK,EAAqC,eAAe,EAAE,MAAM,UAAU,CAAA;AA6BlF,MAAM,WAAW,uBAAuB;IACtC;;;;kDAI8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B;;;2EAGuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,GAAG,EAAE,gBAAgB,CAAA;IACrB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;+DAC2D;IAC3D,WAAW,CAAC,EAAE,uBAAuB,CAAA;IACrC;;;;;yCAKqC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;6DACyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAmHvE;AA2CD;wEACwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOxD;AAED;;8EAE8E;AAC9E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAY9E"}
|