@tangle-network/agent-eval 0.180.0 → 0.181.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 +60 -0
- package/README.md +119 -159
- package/dist/adapters/http.d.ts +2 -2
- package/dist/{agent-profile-B7yErX0q.d.ts → agent-profile-CivaSsSy.d.ts} +4 -4
- package/dist/{agent-profile-B7yErX0q.d.ts.map → agent-profile-CivaSsSy.d.ts.map} +1 -1
- package/dist/{agent-profile-cell-0gSi5ffD.js → agent-profile-cell-Cv6UA-W_.js} +20 -57
- package/dist/agent-profile-cell-Cv6UA-W_.js.map +1 -0
- package/dist/{agent-profile-cell-CTOZJUuE.d.ts → agent-profile-cell-s__adRnK.d.ts} +3 -3
- package/dist/agent-profile-cell-s__adRnK.d.ts.map +1 -0
- package/dist/analyst/index.d.ts +10 -10
- package/dist/analyst/index.js +3 -3
- package/dist/ast-CP9ae9B0.js +557 -0
- package/dist/ast-CP9ae9B0.js.map +1 -0
- package/dist/ast-hI-vjW6J.d.ts +457 -0
- package/dist/ast-hI-vjW6J.d.ts.map +1 -0
- package/dist/{benchmark-command-D4vpnAdO.js → benchmark-command-B57n9vjz.js} +7 -6
- package/dist/{benchmark-command-D4vpnAdO.js.map → benchmark-command-B57n9vjz.js.map} +1 -1
- package/dist/benchmarks/index.d.ts +4 -4
- package/dist/benchmarks/index.js +3 -3
- package/dist/campaign/index.d.ts +6 -6
- package/dist/campaign/index.js +8 -8
- package/dist/{campaign-BGEurASO.js → campaign-4_ppJW5X.js} +12 -12
- package/dist/{campaign-BGEurASO.js.map → campaign-4_ppJW5X.js.map} +1 -1
- package/dist/{campaign-evidence-D8DBLqLI.js → campaign-evidence-B8oF9xQ6.js} +515 -471
- package/dist/campaign-evidence-B8oF9xQ6.js.map +1 -0
- package/dist/cli.js +4 -7
- package/dist/cli.js.map +1 -1
- package/dist/{client-BlLY6o2w.js → client-CXE-U1SA.js} +3 -1
- package/dist/client-CXE-U1SA.js.map +1 -0
- package/dist/{client-CuQgX33c.d.ts → client-kh2jOjTK.d.ts} +4 -4
- package/dist/{client-CuQgX33c.d.ts.map → client-kh2jOjTK.d.ts.map} +1 -1
- package/dist/contract/index.d.ts +13 -13
- package/dist/contract/index.js +10 -9
- package/dist/contract/index.js.map +1 -1
- package/dist/{default-registry-IGDE9XIC.d.ts → default-registry-BwDSWVzg.d.ts} +6 -6
- package/dist/{default-registry-IGDE9XIC.d.ts.map → default-registry-BwDSWVzg.d.ts.map} +1 -1
- package/dist/{define-agent-eval-Cx4Ls9ta.d.ts → define-agent-eval-CwOWWQt_.d.ts} +33 -12
- package/dist/define-agent-eval-CwOWWQt_.d.ts.map +1 -0
- package/dist/{define-agent-eval-Dzidv34q.js → define-agent-eval-Ddu33JH9.js} +134 -67
- package/dist/define-agent-eval-Ddu33JH9.js.map +1 -0
- package/dist/{dspy-rlm-engine-xKiWmj_G.js → dspy-rlm-engine-S53V0HhE.js} +2 -2
- package/dist/{dspy-rlm-engine-xKiWmj_G.js.map → dspy-rlm-engine-S53V0HhE.js.map} +1 -1
- package/dist/{engine-CX8ReXkn.d.ts → engine-DS1cysJy.d.ts} +10 -7
- package/dist/engine-DS1cysJy.d.ts.map +1 -0
- package/dist/{eval-campaign-Cs-7MiCs.js → eval-campaign-aYdtjtJR.js} +4 -4
- package/dist/{eval-campaign-Cs-7MiCs.js.map → eval-campaign-aYdtjtJR.js.map} +1 -1
- package/dist/{exact-types-B7LC1EyX.d.ts → exact-types-BZDe0W2D.d.ts} +2 -2
- package/dist/{exact-types-B7LC1EyX.d.ts.map → exact-types-BZDe0W2D.d.ts.map} +1 -1
- package/dist/experiment/index.d.ts +27 -477
- package/dist/experiment/index.d.ts.map +1 -1
- package/dist/experiment/index.js +95 -559
- package/dist/experiment/index.js.map +1 -1
- package/dist/{experiment-tracker-B3TiF5-u.d.ts → experiment-tracker-C7PfnF4b.d.ts} +2 -2
- package/dist/{experiment-tracker-B3TiF5-u.d.ts.map → experiment-tracker-C7PfnF4b.d.ts.map} +1 -1
- package/dist/{external-optimizer-process-Dlz8YxrT.js → external-optimizer-process-QDRURJAM.js} +3 -3
- package/dist/{external-optimizer-process-Dlz8YxrT.js.map → external-optimizer-process-QDRURJAM.js.map} +1 -1
- package/dist/{external-optimizer-subprocess-q3VzlGAO.js → external-optimizer-subprocess-D4dzUBZI.js} +3 -2
- package/dist/{external-optimizer-subprocess-q3VzlGAO.js.map → external-optimizer-subprocess-D4dzUBZI.js.map} +1 -1
- package/dist/{feedback-trajectory-eHWNv5Aj.d.ts → feedback-trajectory-CXmtITBo.d.ts} +3 -3
- package/dist/{feedback-trajectory-eHWNv5Aj.d.ts.map → feedback-trajectory-CXmtITBo.d.ts.map} +1 -1
- package/dist/hosted/index.d.ts +2 -2
- package/dist/hosted/index.d.ts.map +1 -1
- package/dist/hosted/index.js +1 -1
- package/dist/{index-BxWvILU8.d.ts → index-Bp_6sj3x.d.ts} +109 -56
- package/dist/index-Bp_6sj3x.d.ts.map +1 -0
- package/dist/{index-e7LXeRVa.d.ts → index-CJ3LhKIX.d.ts} +2 -2
- package/dist/{index-e7LXeRVa.d.ts.map → index-CJ3LhKIX.d.ts.map} +1 -1
- package/dist/{index-CiUjjEIa.d.ts → index-DNntP4ch.d.ts} +7 -7
- package/dist/{index-CiUjjEIa.d.ts.map → index-DNntP4ch.d.ts.map} +1 -1
- package/dist/{index-DxNYmx4a.d.ts → index-DoykkxW0.d.ts} +11 -11
- package/dist/{index-DxNYmx4a.d.ts.map → index-DoykkxW0.d.ts.map} +1 -1
- package/dist/index.d.ts +28 -28
- package/dist/index.js +24 -15
- package/dist/index.js.map +1 -1
- package/dist/{insight-report-DETqPc_A.d.ts → insight-report-D1qa0HWs.d.ts} +9 -5
- package/dist/{insight-report-DETqPc_A.d.ts.map → insight-report-D1qa0HWs.d.ts.map} +1 -1
- package/dist/{integrity-BKTcA-HP.d.ts → integrity-rGOfSUle.d.ts} +2 -2
- package/dist/{integrity-BKTcA-HP.d.ts.map → integrity-rGOfSUle.d.ts.map} +1 -1
- package/dist/{ledger-core-Cs9f7385.js → journal-Cs9f7385.js} +1 -1
- package/dist/journal-Cs9f7385.js.map +1 -0
- package/dist/{judge-calibration-C5CbMYce.d.ts → judge-calibration-DFtEMlde.d.ts} +31 -2
- package/dist/judge-calibration-DFtEMlde.d.ts.map +1 -0
- package/dist/{judge-calibration-BnpVKtnb.js → judge-calibration-DYmaBtJr.js} +48 -2
- package/dist/{judge-calibration-BnpVKtnb.js.map → judge-calibration-DYmaBtJr.js.map} +1 -1
- package/dist/ledger-core/index.d.ts +1 -1
- package/dist/ledger-core/index.js +1 -1
- package/dist/{llm-judge-v80Kmu9g.js → llm-judge-DEFZeSiu.js} +645 -456
- package/dist/llm-judge-DEFZeSiu.js.map +1 -0
- package/dist/{matrix-DeMmnWrP.d.ts → matrix-CyhW-vgJ.d.ts} +2 -2
- package/dist/{matrix-DeMmnWrP.d.ts.map → matrix-CyhW-vgJ.d.ts.map} +1 -1
- package/dist/meta-eval/index.d.ts +138 -7
- package/dist/meta-eval/index.d.ts.map +1 -1
- package/dist/meta-eval/index.js +245 -97
- package/dist/meta-eval/index.js.map +1 -1
- package/dist/{mint-Cc1_zwRQ.js → mint-ySIIkKlV.js} +2 -2
- package/dist/{mint-Cc1_zwRQ.js.map → mint-ySIIkKlV.js.map} +1 -1
- package/dist/multishot/golden/index.d.ts +1 -1
- package/dist/multishot/index.d.ts +2 -2
- package/dist/openapi.json +1 -1
- package/dist/outcome-store-BXlkwMPR.js +131 -0
- package/dist/outcome-store-BXlkwMPR.js.map +1 -0
- package/dist/{outcome-store-BYHIuO0e.d.ts → outcome-store-CNt4iZ67.d.ts} +18 -25
- package/dist/outcome-store-CNt4iZ67.d.ts.map +1 -0
- package/dist/{paired-promotion-decision-CGzg0cI_.d.ts → paired-promotion-decision-DPsMQm-0.d.ts} +13 -7
- package/dist/{paired-promotion-decision-CGzg0cI_.d.ts.map → paired-promotion-decision-DPsMQm-0.d.ts.map} +1 -1
- package/dist/pipelines/index.js +1 -1
- package/dist/{produced-state-Cv0kJJuP.js → produced-state-BHboMaab.js} +3 -3
- package/dist/{produced-state-Cv0kJJuP.js.map → produced-state-BHboMaab.js.map} +1 -1
- package/dist/profile-cell.d.ts +1 -1
- package/dist/profile-cell.js +1 -1
- package/dist/{promotion-policy-DWOm70gx.js → promotion-policy-CDMMxzb6.js} +28 -40
- package/dist/promotion-policy-CDMMxzb6.js.map +1 -0
- package/dist/{registry-ByVld1-5.d.ts → registry-BRbB6Y0v.d.ts} +4 -4
- package/dist/{registry-ByVld1-5.d.ts.map → registry-BRbB6Y0v.d.ts.map} +1 -1
- package/dist/{release-confidence-BAcNYOf1.d.ts → release-confidence-BcqeQTHW.d.ts} +3 -3
- package/dist/{release-confidence-BAcNYOf1.d.ts.map → release-confidence-BcqeQTHW.d.ts.map} +1 -1
- package/dist/{release-confidence-BcGCclTB.js → release-confidence-DMg8n18l.js} +2 -2
- package/dist/{release-confidence-BcGCclTB.js.map → release-confidence-DMg8n18l.js.map} +1 -1
- package/dist/reporting.d.ts +4 -4
- package/dist/reporting.js +3 -3
- package/dist/{researcher-jsW1X94L.d.ts → researcher-64T49THL.d.ts} +6 -6
- package/dist/{researcher-jsW1X94L.d.ts.map → researcher-64T49THL.d.ts.map} +1 -1
- package/dist/{reward-hacking-ZXEi9VCq.d.ts → reward-hacking-uzO_ihep.d.ts} +2 -2
- package/dist/{reward-hacking-ZXEi9VCq.d.ts.map → reward-hacking-uzO_ihep.d.ts.map} +1 -1
- package/dist/rl.d.ts +53 -99
- package/dist/rl.d.ts.map +1 -1
- package/dist/rl.js +182 -169
- package/dist/rl.js.map +1 -1
- package/dist/rollout/index.d.ts +1 -1
- package/dist/rollout/index.js +2 -2
- package/dist/{rollout-DmoJVqrF.js → rollout-B-UF5R6w.js} +2 -2
- package/dist/{rollout-DmoJVqrF.js.map → rollout-B-UF5R6w.js.map} +1 -1
- package/dist/rubric-predictive-validity-Bmj2_cll.d.ts +79 -0
- package/dist/rubric-predictive-validity-Bmj2_cll.d.ts.map +1 -0
- package/dist/rubric-predictive-validity-CCK-1B7w.js +178 -0
- package/dist/rubric-predictive-validity-CCK-1B7w.js.map +1 -0
- package/dist/{run-record-DTv1MdjK.d.ts → run-record-BiTWauyO.d.ts} +2 -2
- package/dist/{run-record-DTv1MdjK.d.ts.map → run-record-BiTWauyO.d.ts.map} +1 -1
- package/dist/run-record-Br-Yzt_k.js +464 -0
- package/dist/run-record-Br-Yzt_k.js.map +1 -0
- package/dist/{run-record-DQpSf7t-.js → run-record-DualPTn2.js} +2 -2
- package/dist/{run-record-DQpSf7t-.js.map → run-record-DualPTn2.js.map} +1 -1
- package/dist/{semantic-concept-judge-Bi6_iGqg.js → semantic-concept-judge-Bm5JDEKO.js} +3 -3
- package/dist/{semantic-concept-judge-Bi6_iGqg.js.map → semantic-concept-judge-Bm5JDEKO.js.map} +1 -1
- package/dist/{sequential-B5gXgcyp.js → sequential-DAsyV2T9.js} +42 -25
- package/dist/sequential-DAsyV2T9.js.map +1 -0
- package/dist/{series-convergence-DeG33RpC.d.ts → series-convergence-BnMs_uAr.d.ts} +3 -3
- package/dist/{series-convergence-DeG33RpC.d.ts.map → series-convergence-BnMs_uAr.d.ts.map} +1 -1
- package/dist/{skillopt-optimization-method-C3oYul8v.js → skillopt-optimization-method-CL_0aArC.js} +5 -5
- package/dist/{skillopt-optimization-method-C3oYul8v.js.map → skillopt-optimization-method-CL_0aArC.js.map} +1 -1
- package/dist/{statistical-heldout-0La5ZTlv.d.ts → statistical-heldout-CpVd6FmY.d.ts} +207 -144
- package/dist/statistical-heldout-CpVd6FmY.d.ts.map +1 -0
- package/dist/{store-tool-spans-4J1EDElP.d.ts → store-tool-spans-Dt-YdAuE.d.ts} +6 -6
- package/dist/{store-tool-spans-4J1EDElP.d.ts.map → store-tool-spans-Dt-YdAuE.d.ts.map} +1 -1
- package/dist/{summary-report-gMrbYawB.d.ts → summary-report-D1h4dlrK.d.ts} +3 -3
- package/dist/{summary-report-gMrbYawB.d.ts.map → summary-report-D1h4dlrK.d.ts.map} +1 -1
- package/dist/{summary-report-B16xy9Kd.js → summary-report-e-MaOAHV.js} +2 -2
- package/dist/{summary-report-B16xy9Kd.js.map → summary-report-e-MaOAHV.js.map} +1 -1
- package/dist/{tool-groups-2QA0S7dK.d.ts → tool-groups-B2bSNaJB.d.ts} +3 -3
- package/dist/tool-groups-B2bSNaJB.d.ts.map +1 -0
- package/dist/{tool-waste-B9tdWV6g.js → tool-waste-C7MU9u1e.js} +2 -2
- package/dist/{tool-waste-B9tdWV6g.js.map → tool-waste-C7MU9u1e.js.map} +1 -1
- package/dist/trace-repair/index.d.ts +2 -2
- package/dist/traces.d.ts +6 -6
- package/dist/traces.js +1 -1
- package/dist/{types-BmlkCrg0.d.ts → types-BvZoPTGa.d.ts} +3 -3
- package/dist/{types-BmlkCrg0.d.ts.map → types-BvZoPTGa.d.ts.map} +1 -1
- package/dist/{types-gvRsyJLh.d.ts → types-CBbLtr2J.d.ts} +38 -3
- package/dist/{types-gvRsyJLh.d.ts.map → types-CBbLtr2J.d.ts.map} +1 -1
- package/dist/{types-C34V4Vto.d.ts → types-CS0qk_Yp.d.ts} +4 -4
- package/dist/{types-C34V4Vto.d.ts.map → types-CS0qk_Yp.d.ts.map} +1 -1
- package/dist/{types-DzuaM493.d.ts → types-D7gEdPoQ.d.ts} +3 -3
- package/dist/{types-DzuaM493.d.ts.map → types-D7gEdPoQ.d.ts.map} +1 -1
- package/dist/wire/index.d.ts +2 -2
- package/docs/adapters-observability.md +14 -0
- package/docs/campaign-proposers.md +86 -128
- package/docs/charter.md +108 -112
- package/docs/concepts.md +157 -69
- package/docs/design/mlbenchmarks-book-review.md +440 -0
- package/docs/design/mlbenchmarks-review/observations.json +713 -0
- package/docs/design/mlbenchmarks-review/probes.mts +476 -0
- package/docs/design/mlbenchmarks-review/sources.json +200 -0
- package/docs/design/self-improvement-evidence-audit.md +263 -0
- package/docs/design.md +2 -1
- package/docs/eval-surface-map.md +95 -42
- package/docs/evaluation-integrity.md +220 -0
- package/docs/experiment.md +111 -55
- package/docs/feature-guide.md +5 -6
- package/docs/hosted-ingest-spec.md +4 -11
- package/docs/insight-report.md +187 -455
- package/docs/outcome-validity.md +182 -0
- package/docs/product-eval-adoption.md +1 -2
- package/docs/research-report-methodology.md +7 -7
- package/docs/search-history-receipts.md +8 -0
- package/docs/statistical-evidence.md +129 -0
- package/docs/verdicts.md +76 -49
- package/package.json +1 -1
- package/dist/agent-profile-cell-0gSi5ffD.js.map +0 -1
- package/dist/agent-profile-cell-CTOZJUuE.d.ts.map +0 -1
- package/dist/campaign-evidence-D8DBLqLI.js.map +0 -1
- package/dist/client-BlLY6o2w.js.map +0 -1
- package/dist/define-agent-eval-Cx4Ls9ta.d.ts.map +0 -1
- package/dist/define-agent-eval-Dzidv34q.js.map +0 -1
- package/dist/engine-CX8ReXkn.d.ts.map +0 -1
- package/dist/index-BxWvILU8.d.ts.map +0 -1
- package/dist/judge-calibration-C5CbMYce.d.ts.map +0 -1
- package/dist/ledger-core-Cs9f7385.js.map +0 -1
- package/dist/llm-judge-v80Kmu9g.js.map +0 -1
- package/dist/outcome-store-BYHIuO0e.d.ts.map +0 -1
- package/dist/outcome-store-ChBKlTd_.js +0 -75
- package/dist/outcome-store-ChBKlTd_.js.map +0 -1
- package/dist/promotion-policy-DWOm70gx.js.map +0 -1
- package/dist/rubric-predictive-validity-2D5Gw9z9.js +0 -131
- package/dist/rubric-predictive-validity-2D5Gw9z9.js.map +0 -1
- package/dist/rubric-predictive-validity-Dl1dvKCv.d.ts +0 -75
- package/dist/rubric-predictive-validity-Dl1dvKCv.d.ts.map +0 -1
- package/dist/run-record-CR63CpHK.js +0 -216
- package/dist/run-record-CR63CpHK.js.map +0 -1
- package/dist/sequential-B5gXgcyp.js.map +0 -1
- package/dist/statistical-heldout-0La5ZTlv.d.ts.map +0 -1
- package/dist/tool-groups-2QA0S7dK.d.ts.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { D as TraceAnalysisStore, i as AnalystFinding, n as AnalystContext } from "./types-
|
|
2
|
-
import { l as ExactCapableAnalyst } from "./exact-types-
|
|
3
|
-
import { n as AnalystRegistry, r as AnalystRegistryOptions } from "./registry-
|
|
4
|
-
import { a as TraceAnalystLimits, i as TraceAnalysisEngineResult, l as RawAnalystFinding, n as TraceAnalysisEngine } from "./engine-
|
|
5
|
-
import { t as TraceToolGroupName } from "./tool-groups-
|
|
1
|
+
import { D as TraceAnalysisStore, i as AnalystFinding, n as AnalystContext } from "./types-D7gEdPoQ.js";
|
|
2
|
+
import { l as ExactCapableAnalyst } from "./exact-types-BZDe0W2D.js";
|
|
3
|
+
import { n as AnalystRegistry, r as AnalystRegistryOptions } from "./registry-BRbB6Y0v.js";
|
|
4
|
+
import { a as TraceAnalystLimits, i as TraceAnalysisEngineResult, l as RawAnalystFinding, n as TraceAnalysisEngine } from "./engine-DS1cysJy.js";
|
|
5
|
+
import { t as TraceToolGroupName } from "./tool-groups-B2bSNaJB.js";
|
|
6
6
|
//#region src/trace-analyst/behavioral-metrics.d.ts
|
|
7
7
|
type SuboptimalCode = 'monotonic-input-growth' | 'output-length-decay' | 'single-tool-dependency' | 'no-self-verification';
|
|
8
8
|
interface SuboptimalSignal {
|
|
@@ -110,4 +110,4 @@ interface DefaultAnalystRegistryOptions {
|
|
|
110
110
|
declare function buildDefaultAnalystRegistry(options?: DefaultAnalystRegistryOptions): AnalystRegistry;
|
|
111
111
|
//#endregion
|
|
112
112
|
export { createTraceAnalyst as a, BehavioralAnalystOptions as c, TraceAnalystDefinition as i, behavioralAnalyst as l, buildDefaultAnalystRegistry as n, renderPriorFindings as o, CreateTraceAnalystOptions as r, runTraceAnalyst as s, DefaultAnalystRegistryOptions as t, deriveEfficiencyFindings as u };
|
|
113
|
-
//# sourceMappingURL=default-registry-
|
|
113
|
+
//# sourceMappingURL=default-registry-BwDSWVzg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-registry-
|
|
1
|
+
{"version":3,"file":"default-registry-BwDSWVzg.d.ts","names":[],"sources":["../src/trace-analyst/behavioral-metrics.ts","../src/analyst/behavioral-analyst.ts","../src/analyst/kind-factory.ts","../src/analyst/default-registry.ts"],"mappings":";;;;;;KAoBY;UAMK;EACf,MAAM;EACN;;EAEA;;EAEA,UAAU;;UAGK;;EAEf;EACA;;EAEA,gBAAgB;;EAEhB;EACA;EACA,eAAe;EACf;EACA;;EAEA;EACA;EACA,SAAS;;UAGM;EACf;EACA;EACA,sBAAsB;EACtB,uBAAuB;;;;UC1BR;;EAEf;;EAEA;;;;;;iBA+Dc,yBACd,SAAS,mBACT;EAAQ;EAAoB;IAC3B;;iBAkCa,kBACd,UAAS,2BACR,oBAAoB;;;;UCrHN;EACf;EACA;EACA;EACA;;EAEA,sBAAsB,SAAS;;EAE/B;;EAEA,WAAW;;EAEX,kBACE,OAAO,oBACP,SAAS,wCACe;EAC1B,SAAS,QAAQ;EACjB,eAAe,KAAK,mBAAmB,SAAS,mBAAmB;EACnE;EACA;;UAGe;EACf,QAAQ;;EAER;EACA;;;iBAIoB,gBAAgB;EACpC,YAAY;EACZ,QAAQ;EACR,OAAO;EACP,SAAS;EACT;IACE,QAAQ;;iBAgHI,mBACd,YAAY,wBACZ,SAAS,4BACR,oBAAoB;iBA2RP,oBAAoB,OAAO;;;UChc1B;;;;;;EAMf,SAAS;EACT,uBAAuB;;EAEvB;EACA,aAAa;EACb,WAAW;;iBAGG,4BACd,UAAS,gCACR"}
|
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
import { c as CostLedgerHandle, f as CostLedgerSummary, m as CostReceipt } from "./cost-ledger-DbQdN3nO.js";
|
|
2
|
-
import { _ as ProposalFinding } from "./types-
|
|
3
|
-
import { B as PowerPreflight, ft as EvidenceReceipt, it as CampaignEvidenceContext } from "./statistical-heldout-
|
|
4
|
-
import { H as SurfaceProposer, R as Scenario, S as JudgeConfig, a as CampaignResult, d as DispatchContext, j as MutableSurface, k as LabeledScenarioStore, p as Gate, v as GateResult } from "./types-
|
|
5
|
-
import {
|
|
6
|
-
import { o as InsightReport } from "./insight-report-
|
|
7
|
-
import { n as HostedTenant } from "./client-
|
|
2
|
+
import { _ as ProposalFinding } from "./types-D7gEdPoQ.js";
|
|
3
|
+
import { B as PowerPreflight, Mt as EvaluationClaim, ft as EvidenceReceipt, it as CampaignEvidenceContext } from "./statistical-heldout-CpVd6FmY.js";
|
|
4
|
+
import { H as SurfaceProposer, R as Scenario, S as JudgeConfig, a as CampaignResult, d as DispatchContext, j as MutableSurface, k as LabeledScenarioStore, p as Gate, v as GateResult } from "./types-CS0qk_Yp.js";
|
|
5
|
+
import { Ao as FinalEvidenceUse, Fi as RunImprovementLoopResult, Li as PremeasuredOptimizationBaseline, Qr as OptimizationMethod, Ri as RunOptimizationOptions, To as CampaignStorage, Yn as LoopProvenanceRecord, co as openAutoPr, di as ComparisonCost, fo as CampaignCellRetryPolicy, ia as SearchHistoryCoverageRow, ii as OptimizationMethodResult, ko as FinalEvidencePolicy, lo as RunEvalOptions, oa as SearchHistoryReceipt, or as CampaignComparisonUnits, po as RunCampaignOptions, ri as OptimizationMethodProvenance, ta as SearchHistoryAdmissionOptions } from "./index-Bp_6sj3x.js";
|
|
6
|
+
import { o as InsightReport } from "./insight-report-D1qa0HWs.js";
|
|
7
|
+
import { n as HostedTenant } from "./client-kh2jOjTK.js";
|
|
8
8
|
//#region src/campaign/presets/run-final-comparison.d.ts
|
|
9
9
|
interface FinalComparisonOptions<TScenario extends Scenario, TArtifact> extends Omit<RunCampaignOptions<TScenario, TArtifact>, 'dispatch'> {
|
|
10
10
|
baselineSurface: MutableSurface;
|
|
11
11
|
winnerSurface: MutableSurface;
|
|
12
12
|
dispatchWithSurface: (surface: MutableSurface, scenario: TScenario, ctx: Parameters<RunCampaignOptions<TScenario, TArtifact>['dispatch']>[1]) => Promise<TArtifact>;
|
|
13
13
|
gate: Gate<TArtifact, TScenario>;
|
|
14
|
+
claim?: EvaluationClaim;
|
|
15
|
+
finalEvidence?: FinalEvidencePolicy;
|
|
14
16
|
holdout?: 'measured' | 'deferred';
|
|
15
17
|
label?: string;
|
|
16
18
|
neutralize?: (winner: MutableSurface, baseline: MutableSurface) => MutableSurface;
|
|
17
19
|
}
|
|
18
20
|
/** Compare a search-selected surface without changing the search's selection. */
|
|
19
21
|
declare function runFinalComparison<TScenario extends Scenario, TArtifact>(opts: FinalComparisonOptions<TScenario, TArtifact>): Promise<{
|
|
22
|
+
claim?: {
|
|
23
|
+
use: "certification" | "comparison" | "development";
|
|
24
|
+
population: {
|
|
25
|
+
id: string;
|
|
26
|
+
description: string;
|
|
27
|
+
};
|
|
28
|
+
samplingFrame: string;
|
|
29
|
+
independentUnit: string;
|
|
30
|
+
generalization: "fixed-roster" | "new-units";
|
|
31
|
+
minimumEffect?: number | undefined;
|
|
32
|
+
} | undefined;
|
|
33
|
+
finalEvidence?: FinalEvidenceUse | undefined;
|
|
20
34
|
baselineOnHoldout: CampaignResult<TArtifact, TScenario>;
|
|
21
35
|
winnerOnHoldout: CampaignResult<TArtifact, TScenario>;
|
|
22
36
|
neutralizedOnHoldout?: CampaignResult<TArtifact, TScenario> | undefined;
|
|
@@ -37,6 +51,7 @@ interface SelfImproveMethodProvenance {
|
|
|
37
51
|
winnerContentHash: string;
|
|
38
52
|
diff: string;
|
|
39
53
|
optimizationMethod: NonNullable<SelfImproveProposerResult<Scenario, unknown>['optimization']>;
|
|
54
|
+
claim?: EvaluationClaim;
|
|
40
55
|
evidence: {
|
|
41
56
|
trainSplitDigest: `sha256:${string}`;
|
|
42
57
|
selectionSplitDigest: `sha256:${string}`;
|
|
@@ -45,6 +60,7 @@ interface SelfImproveMethodProvenance {
|
|
|
45
60
|
winnerCampaignDigest: `sha256:${string}`;
|
|
46
61
|
costReceiptsDigest: `sha256:${string}`;
|
|
47
62
|
neutralizedCampaignDigest?: `sha256:${string}`;
|
|
63
|
+
holdoutObservations?: CampaignComparisonUnits;
|
|
48
64
|
};
|
|
49
65
|
gate: Awaited<ReturnType<typeof runFinalComparison>>['gateResult'];
|
|
50
66
|
holdout?: 'deferred';
|
|
@@ -119,7 +135,7 @@ interface SelfImproveBudget {
|
|
|
119
135
|
* static holdout scenario and recording a meaningless lift. Unless
|
|
120
136
|
* `holdoutScenarios` reserves an explicit set, ALL scenarios train. */
|
|
121
137
|
holdout?: 'measured' | 'deferred';
|
|
122
|
-
/**
|
|
138
|
+
/** Repeated executions per scenario. A claim's independent-unit count stays unchanged. Default 1. */
|
|
123
139
|
reps?: number;
|
|
124
140
|
/** DEPTH dial forwarded to the proposer's `propose()` as
|
|
125
141
|
* `ctx.maxImprovementShots` — max iterations an agentic candidate generator
|
|
@@ -327,9 +343,15 @@ interface SelfImproveOptions<TScenario extends Scenario, TArtifact> extends Sear
|
|
|
327
343
|
searchLedger?: RunOptimizationOptions<TScenario, TArtifact>['searchLedger'];
|
|
328
344
|
/** Complete-method final measurement receipts; authority and environment remain caller-owned. */
|
|
329
345
|
evidence?: CampaignEvidenceContext;
|
|
346
|
+
/** Declare the population and independent units without requiring fresh data. */
|
|
347
|
+
claim?: EvaluationClaim;
|
|
348
|
+
/** Opt into durable fresh-evidence consumption for this final comparison. */
|
|
349
|
+
finalEvidence?: FinalEvidencePolicy;
|
|
330
350
|
}
|
|
331
351
|
interface SelfImproveProposerResult<TScenario extends Scenario, TArtifact> {
|
|
332
352
|
mode: 'proposer';
|
|
353
|
+
claim?: EvaluationClaim;
|
|
354
|
+
finalEvidence?: FinalEvidenceUse;
|
|
333
355
|
/** Composite mean across all scenarios, baseline run. When
|
|
334
356
|
* `budget.holdout === 'deferred'` this is measured on the improvement
|
|
335
357
|
* (search) split — no holdout campaign ran. */
|
|
@@ -395,10 +417,9 @@ interface SelfImproveProposerResult<TScenario extends Scenario, TArtifact> {
|
|
|
395
417
|
* Hosted-tier dashboards render this as the v3-vs-v4 decision view.
|
|
396
418
|
*/
|
|
397
419
|
insight: InsightReport;
|
|
398
|
-
/**
|
|
399
|
-
*
|
|
400
|
-
* fewer than
|
|
401
|
-
* pre-run version (run `gate: 'none'` first, budget the real search after). */
|
|
420
|
+
/** Approximate detectable lift from baseline holdout observations.
|
|
421
|
+
* Declared independent units determine n and baseline variance.
|
|
422
|
+
* Absent with fewer than three observations or a deferred holdout. */
|
|
402
423
|
power?: PowerPreflight;
|
|
403
424
|
/**
|
|
404
425
|
* Raw substrate result for advanced inspection — full per-generation
|
|
@@ -502,4 +523,4 @@ interface DefinedAgentEval<TScenario extends Scenario, TArtifact> {
|
|
|
502
523
|
declare function defineAgentEval<TScenario extends Scenario, TArtifact>(defaults: DefineAgentEvalOptions<TScenario, TArtifact>): DefinedAgentEval<TScenario, TArtifact>;
|
|
503
524
|
//#endregion
|
|
504
525
|
export { SelfImproveMethodResult as _, DefinedAgentEval as a, SelfImproveMethodOptions as c, SelfImproveProposerOptions as d, SelfImproveProposerResult as f, SelfImproveMethodProvenance as g, selfImprove as h, DefineAgentEvalOptions as i, SelfImproveOptions as l, SelfImproveRunError as m, AgentEvalEvaluateOptions as n, defineAgentEval as o, SelfImproveResult as p, AgentEvalImproveOptions as r, SelfImproveBudget as s, AgentEvalAgent as t, SelfImproveProgressEvent as u };
|
|
505
|
-
//# sourceMappingURL=define-agent-eval-
|
|
526
|
+
//# sourceMappingURL=define-agent-eval-CwOWWQt_.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-agent-eval-CwOWWQt_.d.ts","names":[],"sources":["../src/campaign/presets/run-final-comparison.ts","../src/contract/self-improve-method.ts","../src/contract/self-improve.ts","../src/contract/define-agent-eval.ts"],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { s as ValidationError } from "./errors-Dngq5h35.js";
|
|
2
2
|
import { a as spearmanR, r as pearsonR } from "./descriptive-1V17A-qa.js";
|
|
3
|
-
import { r as continuousAgreement } from "./judge-calibration-
|
|
3
|
+
import { r as continuousAgreement } from "./judge-calibration-DYmaBtJr.js";
|
|
4
4
|
import { i as pairedCohensDz } from "./effect-sizes-DiH8MGOH.js";
|
|
5
5
|
import { i as requiredPairedSampleSize, r as pairedMde } from "./power-and-mde-B8F2RdcD.js";
|
|
6
6
|
import { r as pairRunRecords } from "./paired-arms-D4aeIHUy.js";
|
|
7
7
|
import { o as pairedTTest, r as pairedBootstrap } from "./paired-tests-C8iCsioC.js";
|
|
8
8
|
import { r as welchsTTest } from "./baseline-BC-eBZ7U.js";
|
|
9
|
+
import { a as campaignCellToRunRecord, i as campaignCellTaskScore, n as campaignCellExecutionEvidence, r as campaignCellJudgeDimensions } from "./run-record-Br-Yzt_k.js";
|
|
10
|
+
import { B as surfaceDispatchRef, N as defineEvaluationClaim, T as pairedCampaignComposites, V as surfaceHash, Z as campaignSplitDigest, f as campaignMeasurementDigest, h as loopProvenanceArgsFromResult, k as powerPreflight, m as emitLoopProvenance, p as canonicalDigest, t as createCampaignEvidenceReceipt, tt as aggregatePairedHoldout, z as surfaceContentHash } from "./campaign-evidence-B8oF9xQ6.js";
|
|
9
11
|
import "./query-D1nLIKt7.js";
|
|
10
12
|
import { r as observedSplitScore } from "./reward-nw2xZGZG.js";
|
|
11
|
-
import { c as validateRunRecord, i as modelHasSnapshot } from "./run-record-
|
|
12
|
-
import { r as paretoChart } from "./summary-report-
|
|
13
|
-
import { C as assertSearchHistoryAdmissionOptions, I as runFinalComparison, L as openAutoPr, R as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { C as inMemoryCampaignStorage, S as fsCampaignStorage, x as createRunCostLedger } from "./external-optimizer-subprocess-q3VzlGAO.js";
|
|
17
|
-
import { t as createHostedClient } from "./client-BlLY6o2w.js";
|
|
13
|
+
import { c as validateRunRecord, i as modelHasSnapshot } from "./run-record-DualPTn2.js";
|
|
14
|
+
import { r as paretoChart } from "./summary-report-e-MaOAHV.js";
|
|
15
|
+
import { C as assertSearchHistoryAdmissionOptions, G as assertIndependentEvaluationSplit, I as runFinalComparison, J as reserveFinalEvidence, K as captureFinalEvidencePolicy, L as openAutoPr, Q as resolveRunDir, R as captureJudge, Y as runEval, d as combineComparisonCosts, f as costFromLedgerSummary, h as runImprovementLoop, q as evaluationUnitMap, u as executeOptimizationMethod, z as defaultProductionGate } from "./llm-judge-DEFZeSiu.js";
|
|
16
|
+
import { C as inMemoryCampaignStorage, S as fsCampaignStorage, x as createRunCostLedger } from "./external-optimizer-subprocess-D4dzUBZI.js";
|
|
17
|
+
import { t as createHostedClient } from "./client-CXE-U1SA.js";
|
|
18
18
|
//#region src/contamination-guard.ts
|
|
19
19
|
function checkCanaries(output, scenarios) {
|
|
20
20
|
const leaks = [];
|
|
@@ -83,7 +83,7 @@ async function analyzeRuns(opts) {
|
|
|
83
83
|
};
|
|
84
84
|
const judges = computeJudgeInsights(runs);
|
|
85
85
|
const interRater = opts.raterScores ? computeInterRater(opts.raterScores) : void 0;
|
|
86
|
-
const lift = computeLift(runs, opts.baselineCandidateId, opts.candidateCandidateId, split);
|
|
86
|
+
const lift = computeLift(runs, opts.baselineCandidateId, opts.candidateCandidateId, split, opts.independentUnitByScenarioId);
|
|
87
87
|
const failureClusters = opts.analyst ? await computeFailureClusters(runs, opts.analyst, split) : void 0;
|
|
88
88
|
const failureClasses = computeFailureClasses(runs, split);
|
|
89
89
|
const contamination = opts.canaryScenarios ? computeContamination(runs, opts.canaryScenarios) : void 0;
|
|
@@ -614,7 +614,7 @@ function computeInterRater(ratings) {
|
|
|
614
614
|
disagreementCases
|
|
615
615
|
};
|
|
616
616
|
}
|
|
617
|
-
function computeLift(runs, baselineId, candidateId, split) {
|
|
617
|
+
function computeLift(runs, baselineId, candidateId, split, independentUnitByScenarioId) {
|
|
618
618
|
let bId = baselineId;
|
|
619
619
|
let cId = candidateId;
|
|
620
620
|
if (!bId || !cId) {
|
|
@@ -633,9 +633,20 @@ function computeLift(runs, baselineId, candidateId, split) {
|
|
|
633
633
|
const candidate = runs.filter((r) => r.candidateId === cId);
|
|
634
634
|
if (baseline.length === 0 || candidate.length === 0) return void 0;
|
|
635
635
|
const pairing = pairRunRecords(baseline.filter((run) => Number.isFinite(compositeOf(run, split))), candidate.filter((run) => Number.isFinite(compositeOf(run, split))));
|
|
636
|
-
|
|
637
|
-
|
|
636
|
+
let pairedBaseline = pairing.pairs.map((pair) => compositeOf(pair.baseline, split));
|
|
637
|
+
let pairedCandidate = pairing.pairs.map((pair) => compositeOf(pair.treatment, split));
|
|
638
638
|
if (pairedBaseline.length === 0) return void 0;
|
|
639
|
+
const grouped = independentUnitByScenarioId ? aggregatePairedHoldout({
|
|
640
|
+
before: pairedBaseline,
|
|
641
|
+
after: pairedCandidate,
|
|
642
|
+
cellIds: pairing.pairs.map((pair, index) => `${pair.pairKey}:${index}`)
|
|
643
|
+
}, new Map(pairing.pairs.map((pair) => [pair.pairKey, independentUnitByScenarioId.get(pair.baseline.scenarioId)]))) : void 0;
|
|
644
|
+
if (grouped) {
|
|
645
|
+
pairedBaseline = grouped.before;
|
|
646
|
+
pairedCandidate = grouped.after;
|
|
647
|
+
}
|
|
648
|
+
const reverseInferredArms = grouped !== void 0 && (!baselineId || !candidateId) && mean(pairedBaseline) > mean(pairedCandidate);
|
|
649
|
+
if (reverseInferredArms) [pairedBaseline, pairedCandidate] = [pairedCandidate, pairedBaseline];
|
|
639
650
|
const baselineMean = mean(pairedBaseline);
|
|
640
651
|
const candidateMean = mean(pairedCandidate);
|
|
641
652
|
const delta = candidateMean - baselineMean;
|
|
@@ -663,10 +674,14 @@ function computeLift(runs, baselineId, candidateId, split) {
|
|
|
663
674
|
ci95: [bootstrap.low, bootstrap.high],
|
|
664
675
|
pValue: tTest.p,
|
|
665
676
|
n: pairedBaseline.length,
|
|
677
|
+
...grouped ? {
|
|
678
|
+
pairedRunN: pairing.pairs.length,
|
|
679
|
+
independentUnitIds: grouped.unitIds
|
|
680
|
+
} : {},
|
|
666
681
|
minimumRequired: 20,
|
|
667
682
|
decisionEligible: bootstrap.gateEligible,
|
|
668
|
-
unpairedBaseline: pairing.unpairedBaseline.length,
|
|
669
|
-
unpairedCandidate: pairing.unpairedTreatment.length,
|
|
683
|
+
unpairedBaseline: (reverseInferredArms ? pairing.unpairedTreatment : pairing.unpairedBaseline).length,
|
|
684
|
+
unpairedCandidate: (reverseInferredArms ? pairing.unpairedBaseline : pairing.unpairedTreatment).length,
|
|
670
685
|
cohensD: d,
|
|
671
686
|
mde,
|
|
672
687
|
requiredN
|
|
@@ -682,29 +697,26 @@ async function computeFailureClusters(runs, analyst, split) {
|
|
|
682
697
|
totalFailures: 0
|
|
683
698
|
};
|
|
684
699
|
const clusters = /* @__PURE__ */ new Map();
|
|
700
|
+
const recordCluster = (key, runId) => {
|
|
701
|
+
const cluster = clusters.get(key) ?? {
|
|
702
|
+
exemplars: [],
|
|
703
|
+
runs: 0
|
|
704
|
+
};
|
|
705
|
+
cluster.runs += 1;
|
|
706
|
+
if (cluster.exemplars.length < 5 && !cluster.exemplars.includes(runId)) cluster.exemplars.push(runId);
|
|
707
|
+
clusters.set(key, cluster);
|
|
708
|
+
};
|
|
685
709
|
for (const run of failed) try {
|
|
686
710
|
const result = await analyst.run(run.runId, { runRecord: run });
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
const c = clusters.get(key) ?? {
|
|
690
|
-
exemplars: [],
|
|
691
|
-
share: 0
|
|
692
|
-
};
|
|
693
|
-
if (c.exemplars.length < 5) c.exemplars.push(run.runId);
|
|
694
|
-
clusters.set(key, c);
|
|
695
|
-
}
|
|
711
|
+
const keys = new Set(result.findings.map((finding) => finding.area || finding.analyst_id || "unclassified"));
|
|
712
|
+
for (const key of keys) recordCluster(key, run.runId);
|
|
696
713
|
} catch {
|
|
697
|
-
|
|
698
|
-
exemplars: [],
|
|
699
|
-
share: 0
|
|
700
|
-
};
|
|
701
|
-
if (c.exemplars.length < 5) c.exemplars.push(run.runId);
|
|
702
|
-
clusters.set("analyst-error", c);
|
|
714
|
+
recordCluster("analyst-error", run.runId);
|
|
703
715
|
}
|
|
704
716
|
const clusterList = [...clusters.entries()].map(([id, c]) => ({
|
|
705
717
|
id,
|
|
706
718
|
name: id,
|
|
707
|
-
share: c.
|
|
719
|
+
share: c.runs / failed.length,
|
|
708
720
|
exemplars: c.exemplars
|
|
709
721
|
}));
|
|
710
722
|
clusterList.sort((a, b) => b.share - a.share);
|
|
@@ -966,16 +978,20 @@ function buildRecommendations(ctx) {
|
|
|
966
978
|
}
|
|
967
979
|
//#endregion
|
|
968
980
|
//#region src/contract/self-improve-reporting.ts
|
|
969
|
-
function
|
|
970
|
-
const
|
|
971
|
-
const
|
|
972
|
-
for (const [id, agg] of Object.entries(byScenario)) {
|
|
973
|
-
perScenario[id] = agg.meanComposite;
|
|
974
|
-
values.push(agg.meanComposite);
|
|
975
|
-
}
|
|
981
|
+
function pairedCompositeSummary(baseline, winner, independentUnitByScenarioId) {
|
|
982
|
+
const scores = pairedCampaignComposites(baseline, winner, independentUnitByScenarioId);
|
|
983
|
+
const perScenario = (campaign) => Object.fromEntries(Object.entries(campaign.aggregates.byScenario).map(([id, aggregate]) => [id, aggregate.meanComposite]));
|
|
976
984
|
return {
|
|
977
|
-
|
|
978
|
-
|
|
985
|
+
baseline: {
|
|
986
|
+
compositeMean: scores.beforeMean,
|
|
987
|
+
perScenario: perScenario(baseline)
|
|
988
|
+
},
|
|
989
|
+
winner: {
|
|
990
|
+
compositeMean: scores.afterMean,
|
|
991
|
+
perScenario: perScenario(winner)
|
|
992
|
+
},
|
|
993
|
+
baselineComposites: scores.before,
|
|
994
|
+
observations: scores.observations
|
|
979
995
|
};
|
|
980
996
|
}
|
|
981
997
|
/** 32-bit FNV-1a over raw UTF-16 code units, rendered as hex for a cell key.
|
|
@@ -1029,10 +1045,7 @@ async function runSelfImproveMethod(args) {
|
|
|
1029
1045
|
const evidenceContext = opts.evidence === void 0 ? void 0 : structuredClone(opts.evidence);
|
|
1030
1046
|
if (evidenceContext && budget.holdout === "deferred") throw new Error("selfImprove: evidence receipts require measured holdout");
|
|
1031
1047
|
const baselineSurface = structuredClone(opts.baselineSurface);
|
|
1032
|
-
const judge =
|
|
1033
|
-
...opts.judge,
|
|
1034
|
-
dimensions: opts.judge.dimensions.map((dimension) => ({ ...dimension }))
|
|
1035
|
-
};
|
|
1048
|
+
const judge = opts.judge;
|
|
1036
1049
|
const { selected, cost: methodCost, history } = await executeOptimizationMethod({
|
|
1037
1050
|
method: opts.method,
|
|
1038
1051
|
storage,
|
|
@@ -1080,9 +1093,12 @@ async function runSelfImproveMethod(args) {
|
|
|
1080
1093
|
}]);
|
|
1081
1094
|
const gate = opts.gate ?? defaultProductionGate({
|
|
1082
1095
|
holdoutScenarios: holdout,
|
|
1083
|
-
deltaThreshold: .05
|
|
1096
|
+
deltaThreshold: opts.claim?.minimumEffect ?? .05,
|
|
1097
|
+
independentUnitByScenarioId: opts.claim ? evaluationUnitMap(opts.claim, holdout) : void 0
|
|
1084
1098
|
});
|
|
1085
1099
|
const comparison = await runFinalComparison({
|
|
1100
|
+
claim: opts.claim,
|
|
1101
|
+
finalEvidence: opts.finalEvidence,
|
|
1086
1102
|
baselineSurface,
|
|
1087
1103
|
winnerSurface: selected.winnerSurface,
|
|
1088
1104
|
scenarios: holdout,
|
|
@@ -1135,12 +1151,15 @@ async function runSelfImproveMethod(args) {
|
|
|
1135
1151
|
})
|
|
1136
1152
|
} : void 0;
|
|
1137
1153
|
const deferred = comparison.holdout === "deferred";
|
|
1138
|
-
const
|
|
1139
|
-
const
|
|
1154
|
+
const report = deferred ? null : pairedCompositeSummary(comparison.baselineOnHoldout, comparison.winnerOnHoldout, opts.claim ? evaluationUnitMap(opts.claim, holdout) : void 0);
|
|
1155
|
+
const baseline = report?.baseline ?? null;
|
|
1156
|
+
const winner = report?.winner ?? null;
|
|
1140
1157
|
const lift = baseline && winner ? winner.compositeMean - baseline.compositeMean : void 0;
|
|
1141
1158
|
const insight = deferred ? void 0 : await analyzeRuns({
|
|
1142
1159
|
runs: [...cellsToRunRecords(comparison.baselineOnHoldout.cells, "baseline", runDir, baselineSurface, "holdout", opts.model), ...comparison.winnerOnHoldout === comparison.baselineOnHoldout ? [] : cellsToRunRecords(comparison.winnerOnHoldout.cells, "winner", runDir, selected.winnerSurface, "holdout", opts.model)],
|
|
1143
1160
|
baselineCandidateId: "baseline",
|
|
1161
|
+
independentUnitByScenarioId: opts.claim ? evaluationUnitMap(opts.claim, holdout) : void 0,
|
|
1162
|
+
decisionThreshold: opts.claim?.minimumEffect ?? .05,
|
|
1144
1163
|
...comparison.winnerOnHoldout === comparison.baselineOnHoldout ? {} : { candidateCandidateId: "winner" }
|
|
1145
1164
|
});
|
|
1146
1165
|
const cost = totalCost();
|
|
@@ -1161,6 +1180,7 @@ async function runSelfImproveMethod(args) {
|
|
|
1161
1180
|
winnerContentHash: surfaceContentHash(selected.winnerSurface),
|
|
1162
1181
|
diff: comparison.promotedDiff,
|
|
1163
1182
|
optimizationMethod: optimization,
|
|
1183
|
+
...opts.claim ? { claim: opts.claim } : {},
|
|
1164
1184
|
evidence: {
|
|
1165
1185
|
trainSplitDigest: campaignSplitDigest(train, budget.reps ?? 1),
|
|
1166
1186
|
selectionSplitDigest: campaignSplitDigest(selection, budget.reps ?? 1),
|
|
@@ -1168,6 +1188,7 @@ async function runSelfImproveMethod(args) {
|
|
|
1168
1188
|
baselineCampaignDigest: campaignMeasurementDigest(comparison.baselineOnHoldout),
|
|
1169
1189
|
winnerCampaignDigest: campaignMeasurementDigest(comparison.winnerOnHoldout),
|
|
1170
1190
|
costReceiptsDigest: canonicalDigest(receipts),
|
|
1191
|
+
...report ? { holdoutObservations: report.observations } : {},
|
|
1171
1192
|
...comparison.neutralizedOnHoldout ? { neutralizedCampaignDigest: campaignMeasurementDigest(comparison.neutralizedOnHoldout) } : {}
|
|
1172
1193
|
},
|
|
1173
1194
|
gate: comparison.gateResult,
|
|
@@ -1204,6 +1225,8 @@ async function runSelfImproveMethod(args) {
|
|
|
1204
1225
|
const result = {
|
|
1205
1226
|
...evidence ? { evidence } : {},
|
|
1206
1227
|
mode: "method",
|
|
1228
|
+
...opts.claim ? { claim: opts.claim } : {},
|
|
1229
|
+
...comparison.finalEvidence ? { finalEvidence: comparison.finalEvidence } : {},
|
|
1207
1230
|
searchHistoryCoverage: history,
|
|
1208
1231
|
baseline,
|
|
1209
1232
|
winner: {
|
|
@@ -1236,7 +1259,7 @@ async function runSelfImproveMethod(args) {
|
|
|
1236
1259
|
}
|
|
1237
1260
|
};
|
|
1238
1261
|
if (opts.hostedTenant) {
|
|
1239
|
-
const snapshot = (index, surface, campaign) => ({
|
|
1262
|
+
const snapshot = (index, surface, campaign, compositeMean) => ({
|
|
1240
1263
|
index,
|
|
1241
1264
|
surfaceHash: surfaceHash(surface),
|
|
1242
1265
|
surface,
|
|
@@ -1252,7 +1275,7 @@ async function runSelfImproveMethod(args) {
|
|
|
1252
1275
|
...cell.error ? { errorMessage: cell.error } : {}
|
|
1253
1276
|
};
|
|
1254
1277
|
}),
|
|
1255
|
-
compositeMean
|
|
1278
|
+
compositeMean,
|
|
1256
1279
|
costUsd: campaign.aggregates.cost.totalCostUsd,
|
|
1257
1280
|
durationMs: campaign.durationMs
|
|
1258
1281
|
});
|
|
@@ -1266,8 +1289,8 @@ async function runSelfImproveMethod(args) {
|
|
|
1266
1289
|
...opts.hostedLabels,
|
|
1267
1290
|
mode: "method"
|
|
1268
1291
|
},
|
|
1269
|
-
baseline: snapshot(0, baselineSurface, comparison.baselineOnHoldout),
|
|
1270
|
-
generations: [snapshot(1, selected.winnerSurface, comparison.winnerOnHoldout)],
|
|
1292
|
+
baseline: snapshot(0, baselineSurface, comparison.baselineOnHoldout, baseline?.compositeMean ?? null),
|
|
1293
|
+
generations: [snapshot(1, selected.winnerSurface, comparison.winnerOnHoldout, winner?.compositeMean ?? null)],
|
|
1271
1294
|
gateDecision: result.gateDecision,
|
|
1272
1295
|
...lift === void 0 ? {} : { holdoutLift: lift },
|
|
1273
1296
|
totalCostUsd: result.totalCostUsd,
|
|
@@ -1308,7 +1331,7 @@ function assertSelfImproveSearchMode(opts) {
|
|
|
1308
1331
|
if (budget?.populationSize !== void 0) throw new Error("selfImprove: method owns its candidates; budget.populationSize applies only to proposer mode");
|
|
1309
1332
|
if (budget?.candidateConcurrency !== void 0 || budget?.maxImprovementShots !== void 0 || opts.analyzeGeneration !== void 0 || opts.findings !== void 0 || opts.selectParent !== void 0 || opts.premeasuredBaseline !== void 0 || opts.selectionRankKey !== void 0 || opts.searchLedger !== void 0) throw new Error("selfImprove: candidateConcurrency, maxImprovementShots, analyzeGeneration, findings, selectParent, premeasuredBaseline, selectionRankKey, and searchLedger apply only to proposer mode");
|
|
1310
1333
|
}
|
|
1311
|
-
function splitMethodPartitions(searchScenarios, explicitSelection, fraction) {
|
|
1334
|
+
function splitMethodPartitions(searchScenarios, explicitSelection, fraction, unitByScenario) {
|
|
1312
1335
|
if (!Number.isFinite(fraction) || fraction <= 0 || fraction >= 1) throw new Error("selfImprove: budget.selectionFraction must be in (0, 1)");
|
|
1313
1336
|
const byId = /* @__PURE__ */ new Map();
|
|
1314
1337
|
for (const scenario of searchScenarios) {
|
|
@@ -1325,12 +1348,23 @@ function splitMethodPartitions(searchScenarios, explicitSelection, fraction) {
|
|
|
1325
1348
|
}
|
|
1326
1349
|
const train = searchScenarios.filter((scenario) => !selectionIds.has(scenario.id));
|
|
1327
1350
|
if (train.length === 0) throw new Error("selfImprove: method train split is empty");
|
|
1351
|
+
if (unitByScenario) {
|
|
1352
|
+
const selectedUnits = new Set([...selectionIds].map((id) => unitByScenario.get(id)));
|
|
1353
|
+
if (train.some((scenario) => selectedUnits.has(unitByScenario.get(scenario.id)))) throw new Error("selfImprove: training and selection share independent units");
|
|
1354
|
+
}
|
|
1328
1355
|
return {
|
|
1329
1356
|
train,
|
|
1330
1357
|
selection: explicitSelection.map((scenario) => byId.get(scenario.id))
|
|
1331
1358
|
};
|
|
1332
1359
|
}
|
|
1333
1360
|
if (searchScenarios.length < 2) throw new Error("selfImprove: method requires at least two non-final scenarios");
|
|
1361
|
+
if (unitByScenario) {
|
|
1362
|
+
const split = splitTrainHoldout(searchScenarios, fraction, unitByScenario);
|
|
1363
|
+
return {
|
|
1364
|
+
train: split.train,
|
|
1365
|
+
selection: split.holdout
|
|
1366
|
+
};
|
|
1367
|
+
}
|
|
1334
1368
|
const sorted = [...searchScenarios].sort((a, b) => stableScenarioHash(a.id) - stableScenarioHash(b.id));
|
|
1335
1369
|
const count = Math.max(1, Math.min(sorted.length - 1, Math.round(sorted.length * fraction)));
|
|
1336
1370
|
return {
|
|
@@ -1353,11 +1387,18 @@ function stableScenarioHash(value) {
|
|
|
1353
1387
|
}
|
|
1354
1388
|
return hash;
|
|
1355
1389
|
}
|
|
1356
|
-
/**
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1390
|
+
/** Deterministic split by scenario identity, or by source identity for new-unit claims. */
|
|
1391
|
+
function splitTrainHoldout(scenarios, fraction, unitByScenario) {
|
|
1392
|
+
if (unitByScenario) {
|
|
1393
|
+
const units = [...new Set(scenarios.map((scenario) => unitByScenario.get(scenario.id)))].sort((a, b) => stableScenarioHash(a) - stableScenarioHash(b) || (a < b ? -1 : a > b ? 1 : 0));
|
|
1394
|
+
if (units.length < 2) throw new Error("selfImprove: splitting needs at least two independent units");
|
|
1395
|
+
const count = Math.max(1, Math.min(units.length - 1, Math.round(units.length * fraction)));
|
|
1396
|
+
const finalUnits = new Set(units.slice(0, count));
|
|
1397
|
+
return {
|
|
1398
|
+
holdout: scenarios.filter((scenario) => finalUnits.has(unitByScenario.get(scenario.id))),
|
|
1399
|
+
train: scenarios.filter((scenario) => !finalUnits.has(unitByScenario.get(scenario.id)))
|
|
1400
|
+
};
|
|
1401
|
+
}
|
|
1361
1402
|
const sorted = [...scenarios].sort((a, b) => stableScenarioHash(a.id) - stableScenarioHash(b.id));
|
|
1362
1403
|
const nHoldout = Math.max(1, Math.min(sorted.length - 1, Math.round(sorted.length * fraction)));
|
|
1363
1404
|
return {
|
|
@@ -1378,6 +1419,17 @@ function winnerSearchCampaign(result) {
|
|
|
1378
1419
|
return result.baselineCampaign;
|
|
1379
1420
|
}
|
|
1380
1421
|
async function selfImprove(opts) {
|
|
1422
|
+
opts = {
|
|
1423
|
+
...opts,
|
|
1424
|
+
judge: captureJudge(opts.judge),
|
|
1425
|
+
...opts.claim || opts.finalEvidence ? {
|
|
1426
|
+
claim: opts.claim && defineEvaluationClaim(opts.claim),
|
|
1427
|
+
finalEvidence: opts.finalEvidence && captureFinalEvidencePolicy(opts.finalEvidence),
|
|
1428
|
+
scenarios: structuredClone(opts.scenarios),
|
|
1429
|
+
selectionScenarios: opts.selectionScenarios && structuredClone(opts.selectionScenarios),
|
|
1430
|
+
budget: opts.budget && structuredClone(opts.budget)
|
|
1431
|
+
} : {}
|
|
1432
|
+
};
|
|
1381
1433
|
const startedAt = Date.now();
|
|
1382
1434
|
const runDir = resolveRunDir(opts.runDir ?? (opts.method ? `.agent-eval/runs/self-improve-${startedAt}` : `mem://selfImprove-${startedAt}`));
|
|
1383
1435
|
const storage = opts.storage ?? (runDir.startsWith("mem://") ? inMemoryCampaignStorage() : fsCampaignStorage());
|
|
@@ -1400,6 +1452,8 @@ async function runSelfImprove(opts, costLedger, startedAt, runDir, storage) {
|
|
|
1400
1452
|
const holdoutMode = budget.holdout ?? "measured";
|
|
1401
1453
|
const holdoutDeferred = holdoutMode === "deferred";
|
|
1402
1454
|
const expectUsage = opts.expectUsage ?? "assert";
|
|
1455
|
+
const unitByScenario = opts.claim ? evaluationUnitMap(opts.claim, opts.scenarios) : void 0;
|
|
1456
|
+
const splitUnitByScenario = opts.claim?.generalization === "new-units" ? unitByScenario : void 0;
|
|
1403
1457
|
const explicitHoldout = budget.holdoutScenarios;
|
|
1404
1458
|
const { train, holdout } = explicitHoldout ? {
|
|
1405
1459
|
train: opts.scenarios.filter((s) => !explicitHoldout.some((h) => h.id === s.id)),
|
|
@@ -1407,11 +1461,16 @@ async function runSelfImprove(opts, costLedger, startedAt, runDir, storage) {
|
|
|
1407
1461
|
} : holdoutDeferred ? {
|
|
1408
1462
|
train: opts.scenarios,
|
|
1409
1463
|
holdout: []
|
|
1410
|
-
} : splitTrainHoldout(opts.scenarios, holdoutFraction);
|
|
1464
|
+
} : splitTrainHoldout(opts.scenarios, holdoutFraction, splitUnitByScenario);
|
|
1411
1465
|
if (train.length === 0) throw new Error("selfImprove: train split is empty. Reduce holdoutFraction or pass more scenarios.");
|
|
1412
1466
|
if (holdout.length === 0 && !holdoutDeferred) throw new Error("selfImprove: holdout split is empty. Pass more scenarios.");
|
|
1467
|
+
if (opts.claim?.generalization === "new-units") assertIndependentEvaluationSplit(opts.claim, holdout, train);
|
|
1468
|
+
if (opts.finalEvidence) {
|
|
1469
|
+
if (holdoutDeferred) throw new Error("final evidence requires measured holdout");
|
|
1470
|
+
if (opts.method) await reserveFinalEvidence(opts.finalEvidence, opts.claim, holdout, train);
|
|
1471
|
+
}
|
|
1413
1472
|
if (opts.method) {
|
|
1414
|
-
const partitions = splitMethodPartitions(train, opts.selectionScenarios, budget.selectionFraction ?? .25);
|
|
1473
|
+
const partitions = splitMethodPartitions(train, opts.selectionScenarios, budget.selectionFraction ?? .25, splitUnitByScenario);
|
|
1415
1474
|
return runSelfImproveMethod({
|
|
1416
1475
|
opts: {
|
|
1417
1476
|
...opts,
|
|
@@ -1435,7 +1494,8 @@ async function runSelfImprove(opts, costLedger, startedAt, runDir, storage) {
|
|
|
1435
1494
|
};
|
|
1436
1495
|
const gate = opts.gate ?? defaultProductionGate({
|
|
1437
1496
|
holdoutScenarios: holdout,
|
|
1438
|
-
deltaThreshold: .05
|
|
1497
|
+
deltaThreshold: opts.claim?.minimumEffect ?? .05,
|
|
1498
|
+
independentUnitByScenarioId: opts.claim ? evaluationUnitMap(opts.claim, holdout) : void 0
|
|
1439
1499
|
});
|
|
1440
1500
|
if (opts.onProgress) opts.onProgress({
|
|
1441
1501
|
kind: "baseline.started",
|
|
@@ -1455,6 +1515,8 @@ async function runSelfImprove(opts, costLedger, startedAt, runDir, storage) {
|
|
|
1455
1515
|
reps: budget.reps,
|
|
1456
1516
|
maxImprovementShots: budget.maxImprovementShots,
|
|
1457
1517
|
holdoutScenarios: holdout,
|
|
1518
|
+
claim: opts.claim,
|
|
1519
|
+
finalEvidence: opts.finalEvidence,
|
|
1458
1520
|
holdout: holdoutMode,
|
|
1459
1521
|
gate,
|
|
1460
1522
|
neutralize: opts.neutralize,
|
|
@@ -1480,16 +1542,16 @@ async function runSelfImprove(opts, costLedger, startedAt, runDir, storage) {
|
|
|
1480
1542
|
const reportSplit = holdoutDeferred ? "search" : "holdout";
|
|
1481
1543
|
const reportBaselineCampaign = holdoutDeferred ? result.baselineCampaign : result.baselineOnHoldout;
|
|
1482
1544
|
const reportWinnerCampaign = holdoutDeferred ? winnerSearchCampaign(result) : result.winnerOnHoldout;
|
|
1483
|
-
const
|
|
1484
|
-
const
|
|
1545
|
+
const reportUnitMap = opts.claim ? evaluationUnitMap(opts.claim, holdoutDeferred ? train : holdout) : void 0;
|
|
1546
|
+
const report = pairedCompositeSummary(reportBaselineCampaign, reportWinnerCampaign, reportUnitMap);
|
|
1547
|
+
const baseline = report.baseline;
|
|
1548
|
+
const winnerStats = report.winner;
|
|
1485
1549
|
let power;
|
|
1486
|
-
const baselineHoldoutComposites =
|
|
1487
|
-
const scores = Object.values(cell.judgeScores);
|
|
1488
|
-
return scores.length === 0 ? NaN : scores.reduce((sum, s) => sum + s.composite, 0) / scores.length;
|
|
1489
|
-
}).filter((v) => Number.isFinite(v));
|
|
1550
|
+
const baselineHoldoutComposites = holdoutDeferred ? [] : report.baselineComposites;
|
|
1490
1551
|
if (baselineHoldoutComposites.length >= 3) {
|
|
1491
1552
|
power = powerPreflight({
|
|
1492
1553
|
baselineComposites: baselineHoldoutComposites,
|
|
1554
|
+
deltaThreshold: opts.claim?.minimumEffect ?? .05,
|
|
1493
1555
|
sharedScorerChannel: true
|
|
1494
1556
|
});
|
|
1495
1557
|
if (opts.onProgress) opts.onProgress({
|
|
@@ -1518,6 +1580,8 @@ async function runSelfImprove(opts, costLedger, startedAt, runDir, storage) {
|
|
|
1518
1580
|
const insight = await analyzeRuns({
|
|
1519
1581
|
runs: [...cellsToRunRecords(reportBaselineCampaign.cells, "baseline", runDir, opts.baselineSurface, reportSplit, opts.model), ...reportWinnerCampaign === reportBaselineCampaign ? [] : cellsToRunRecords(reportWinnerCampaign.cells, "winner", runDir, result.winnerSurface, reportSplit, opts.model)],
|
|
1520
1582
|
baselineCandidateId: "baseline",
|
|
1583
|
+
independentUnitByScenarioId: reportUnitMap,
|
|
1584
|
+
decisionThreshold: opts.claim?.minimumEffect ?? .05,
|
|
1521
1585
|
...reportWinnerCampaign === reportBaselineCampaign ? {} : { candidateCandidateId: "winner" }
|
|
1522
1586
|
});
|
|
1523
1587
|
const durationMs = Date.now() - startedAt;
|
|
@@ -1530,13 +1594,16 @@ async function runSelfImprove(opts, costLedger, startedAt, runDir, storage) {
|
|
|
1530
1594
|
result,
|
|
1531
1595
|
costReceipts: costLedger.list(),
|
|
1532
1596
|
totalCostUsd: totalCost,
|
|
1533
|
-
totalDurationMs: durationMs
|
|
1597
|
+
totalDurationMs: durationMs,
|
|
1598
|
+
independentUnitByScenarioId: holdoutDeferred ? void 0 : reportUnitMap
|
|
1534
1599
|
}),
|
|
1535
1600
|
storage,
|
|
1536
1601
|
hostedClient: opts.hostedTenant ? createHostedClient(opts.hostedTenant) : void 0
|
|
1537
1602
|
});
|
|
1538
1603
|
if (opts.onProvenance) opts.onProvenance(provenance);
|
|
1539
1604
|
const summary = {
|
|
1605
|
+
...opts.claim ? { claim: opts.claim } : {},
|
|
1606
|
+
...result.finalEvidence ? { finalEvidence: result.finalEvidence } : {},
|
|
1540
1607
|
mode: "proposer",
|
|
1541
1608
|
baseline,
|
|
1542
1609
|
winner: {
|
|
@@ -1714,4 +1781,4 @@ function requirePositiveInteger(value, field) {
|
|
|
1714
1781
|
//#endregion
|
|
1715
1782
|
export { summarizeExecution as a, analyzeRuns as i, SelfImproveRunError as n, checkCanaries as o, selfImprove as r, defineAgentEval as t };
|
|
1716
1783
|
|
|
1717
|
-
//# sourceMappingURL=define-agent-eval-
|
|
1784
|
+
//# sourceMappingURL=define-agent-eval-Ddu33JH9.js.map
|