@tangle-network/agent-eval 0.129.0 → 0.130.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 +14 -0
- package/README.md +1 -0
- package/dist/active-curriculum-C4mk67HP.js +214 -0
- package/dist/active-curriculum-C4mk67HP.js.map +1 -0
- package/dist/adversarial-smnADNFS.d.ts +21 -0
- package/dist/adversarial-smnADNFS.d.ts.map +1 -0
- package/dist/analyst/index.d.ts +81 -2872
- package/dist/analyst/index.d.ts.map +1 -0
- package/dist/analyst/index.js +319 -360
- package/dist/analyst/index.js.map +1 -1
- package/dist/analyst-BkTS3C58.d.ts +89 -0
- package/dist/analyst-BkTS3C58.d.ts.map +1 -0
- package/dist/analyst-LsnNpSkm.js +152 -0
- package/dist/analyst-LsnNpSkm.js.map +1 -0
- package/dist/analyze-runs-C1CavBMk.js +1067 -0
- package/dist/analyze-runs-C1CavBMk.js.map +1 -0
- package/dist/analyze-runs-FsgYCinh.d.ts +72 -0
- package/dist/analyze-runs-FsgYCinh.d.ts.map +1 -0
- package/dist/attribute-vocabulary-DLJ6303h.d.ts +54 -0
- package/dist/attribute-vocabulary-DLJ6303h.d.ts.map +1 -0
- package/dist/authenticity/index.d.ts +81 -79
- package/dist/authenticity/index.d.ts.map +1 -0
- package/dist/authenticity/index.js +209 -193
- package/dist/authenticity/index.js.map +1 -1
- package/dist/baseline-HsBvw_dk.js +550 -0
- package/dist/baseline-HsBvw_dk.js.map +1 -0
- package/dist/baseline-hG3K85h4.d.ts +125 -0
- package/dist/baseline-hG3K85h4.d.ts.map +1 -0
- package/dist/belief-state/index.d.ts +448 -1188
- package/dist/belief-state/index.d.ts.map +1 -0
- package/dist/belief-state/index.js +1617 -1709
- package/dist/belief-state/index.js.map +1 -1
- package/dist/benchmarks/index.d.ts +2 -891
- package/dist/benchmarks/index.js +2 -60
- package/dist/benchmarks-DviOvUNr.js +754 -0
- package/dist/benchmarks-DviOvUNr.js.map +1 -0
- package/dist/builder-eval/index.d.ts +150 -662
- package/dist/builder-eval/index.d.ts.map +1 -0
- package/dist/builder-eval/index.js +356 -345
- package/dist/builder-eval/index.js.map +1 -1
- package/dist/calibration-CNWWA6K8.js +94 -0
- package/dist/calibration-CNWWA6K8.js.map +1 -0
- package/dist/campaign/index.d.ts +5 -6381
- package/dist/campaign/index.js +3 -213
- package/dist/campaign-CBKZvQ1H.js +3885 -0
- package/dist/campaign-CBKZvQ1H.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +164 -175
- package/dist/cli.js.map +1 -1
- package/dist/client-C97NMzqi.d.ts +581 -0
- package/dist/client-C97NMzqi.d.ts.map +1 -0
- package/dist/client-CYzbdJOZ.js +637 -0
- package/dist/client-CYzbdJOZ.js.map +1 -0
- package/dist/code-agent-session-BjkMTQ7H.js +1390 -0
- package/dist/code-agent-session-BjkMTQ7H.js.map +1 -0
- package/dist/code-agent-session-DqqgOJaz.d.ts +143 -0
- package/dist/code-agent-session-DqqgOJaz.d.ts.map +1 -0
- package/dist/concurrency-DIxRZF_J.js +85 -0
- package/dist/concurrency-DIxRZF_J.js.map +1 -0
- package/dist/contract/index.d.ts +645 -5565
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +1730 -1938
- package/dist/contract/index.js.map +1 -1
- package/dist/control.d.ts +3 -1030
- package/dist/control.js +2 -33
- package/dist/cost-ledger-DIgQUFZZ.js +801 -0
- package/dist/cost-ledger-DIgQUFZZ.js.map +1 -0
- package/dist/cost-ledger-Dye6jCgg.d.ts +236 -0
- package/dist/cost-ledger-Dye6jCgg.d.ts.map +1 -0
- package/dist/dataset-BvtnC8Dc.d.ts +115 -0
- package/dist/dataset-BvtnC8Dc.d.ts.map +1 -0
- package/dist/default-registry-C-vFCSEc.js +2579 -0
- package/dist/default-registry-C-vFCSEc.js.map +1 -0
- package/dist/default-registry-CNPo-Vsb.d.ts +540 -0
- package/dist/default-registry-CNPo-Vsb.d.ts.map +1 -0
- package/dist/emitter-CPBAhxum.js +266 -0
- package/dist/emitter-CPBAhxum.js.map +1 -0
- package/dist/emitter-DGQGoLyj.d.ts +113 -0
- package/dist/emitter-DGQGoLyj.d.ts.map +1 -0
- package/dist/errors-8YnH8WlF.js +64 -0
- package/dist/errors-8YnH8WlF.js.map +1 -0
- package/dist/errors-CEk209JS.d.ts +76 -0
- package/dist/errors-CEk209JS.d.ts.map +1 -0
- package/dist/eval-campaign-DEm6c8ru.js +349 -0
- package/dist/eval-campaign-DEm6c8ru.js.map +1 -0
- package/dist/execution-tracks-CpgFPpS5.js +93 -0
- package/dist/execution-tracks-CpgFPpS5.js.map +1 -0
- package/dist/exporters-q9iL-2Jf.js +148 -0
- package/dist/exporters-q9iL-2Jf.js.map +1 -0
- package/dist/extract-usage-BrQ8mCLX.js +155 -0
- package/dist/extract-usage-BrQ8mCLX.js.map +1 -0
- package/dist/failure-cluster-CqcvCcdR.d.ts +59 -0
- package/dist/failure-cluster-CqcvCcdR.d.ts.map +1 -0
- package/dist/feedback-trajectory-CVaeREXV.d.ts +340 -0
- package/dist/feedback-trajectory-CVaeREXV.d.ts.map +1 -0
- package/dist/fuzz.d.ts +320 -646
- package/dist/fuzz.d.ts.map +1 -0
- package/dist/fuzz.js +670 -618
- package/dist/fuzz.js.map +1 -1
- package/dist/hf-dataset-DBJXXoY1.js +763 -0
- package/dist/hf-dataset-DBJXXoY1.js.map +1 -0
- package/dist/hosted/index.d.ts +11 -831
- package/dist/hosted/index.d.ts.map +1 -0
- package/dist/hosted/index.js +2 -37
- package/dist/index-2JJSA6-r2.d.ts +926 -0
- package/dist/index-2JJSA6-r2.d.ts.map +1 -0
- package/dist/index-6N0aYmpW.d.ts +217 -0
- package/dist/index-6N0aYmpW.d.ts.map +1 -0
- package/dist/index-BAvgST_9.d.ts +131 -0
- package/dist/index-BAvgST_9.d.ts.map +1 -0
- package/dist/index-BvnJuTGD.d.ts +68 -0
- package/dist/index-BvnJuTGD.d.ts.map +1 -0
- package/dist/index-C61Wi7yg.d.ts +547 -0
- package/dist/index-C61Wi7yg.d.ts.map +1 -0
- package/dist/index-CAPUUKaM.d.ts +335 -0
- package/dist/index-CAPUUKaM.d.ts.map +1 -0
- package/dist/index-DE5fb3EC.d.ts +2244 -0
- package/dist/index-DE5fb3EC.d.ts.map +1 -0
- package/dist/index-DSC51roc.d.ts +102 -0
- package/dist/index-DSC51roc.d.ts.map +1 -0
- package/dist/index.d.ts +3755 -15555
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11182 -11216
- package/dist/index.js.map +1 -1
- package/dist/integrity-BzRbCHzi.js +424 -0
- package/dist/integrity-BzRbCHzi.js.map +1 -0
- package/dist/integrity-rmVhXWA7.d.ts +61 -0
- package/dist/integrity-rmVhXWA7.d.ts.map +1 -0
- package/dist/judge-calibration-DFtEMlde.d.ts +146 -0
- package/dist/judge-calibration-DFtEMlde.d.ts.map +1 -0
- package/dist/ledger-core/index.d.ts +2 -0
- package/dist/ledger-core/index.js +2 -0
- package/dist/ledger-core-DtZz1RG0.js +388 -0
- package/dist/ledger-core-DtZz1RG0.js.map +1 -0
- package/dist/llm-client--GR4JbZE.js +687 -0
- package/dist/llm-client--GR4JbZE.js.map +1 -0
- package/dist/llm-client-B_nIBlYo.d.ts +290 -0
- package/dist/llm-client-B_nIBlYo.d.ts.map +1 -0
- package/dist/matrix/index.d.ts +3 -155
- package/dist/matrix/index.js +2 -8
- package/dist/matrix-BzQnu2S6.js +270 -0
- package/dist/matrix-BzQnu2S6.js.map +1 -0
- package/dist/meta-eval/index.d.ts +4 -1027
- package/dist/meta-eval/index.js +393 -390
- package/dist/meta-eval/index.js.map +1 -1
- package/dist/metrics-C9YY1OcL.js +239 -0
- package/dist/metrics-C9YY1OcL.js.map +1 -0
- package/dist/mint-yN2M2eh0.js +201 -0
- package/dist/mint-yN2M2eh0.js.map +1 -0
- package/dist/multi-layer-verifier-BHY1gWAc.d.ts +138 -0
- package/dist/multi-layer-verifier-BHY1gWAc.d.ts.map +1 -0
- package/dist/multishot/index.d.ts +273 -480
- package/dist/multishot/index.d.ts.map +1 -0
- package/dist/multishot/index.js +595 -548
- package/dist/multishot/index.js.map +1 -1
- package/dist/off-policy-DvgzvtIx.js +220 -0
- package/dist/off-policy-DvgzvtIx.js.map +1 -0
- package/dist/off-policy-mskQw8Mb.d.ts +153 -0
- package/dist/off-policy-mskQw8Mb.d.ts.map +1 -0
- package/dist/openapi.json +1 -1
- package/dist/opencode-sqlite-BGrHeDu3.js +318 -0
- package/dist/opencode-sqlite-BGrHeDu3.js.map +1 -0
- package/dist/outcome-store-BYHIuO0e.d.ts +65 -0
- package/dist/outcome-store-BYHIuO0e.d.ts.map +1 -0
- package/dist/outcome-store-ChBKlTd_.js +75 -0
- package/dist/outcome-store-ChBKlTd_.js.map +1 -0
- package/dist/paired-arms-D9D0wXj2.js +260 -0
- package/dist/paired-arms-D9D0wXj2.js.map +1 -0
- package/dist/pipelines/index.d.ts +95 -532
- package/dist/pipelines/index.d.ts.map +1 -0
- package/dist/pipelines/index.js +497 -478
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pre-registration-DakwTRXk.js +96 -0
- package/dist/pre-registration-DakwTRXk.js.map +1 -0
- package/dist/propose-review-control-LhIWGzHl.js +1458 -0
- package/dist/propose-review-control-LhIWGzHl.js.map +1 -0
- package/dist/query-CJ_DX8vl.d.ts +28 -0
- package/dist/query-CJ_DX8vl.d.ts.map +1 -0
- package/dist/query-Di7eEQ79.js +83 -0
- package/dist/query-Di7eEQ79.js.map +1 -0
- package/dist/raw-provider-sink-BQd7mzyT.js +201 -0
- package/dist/raw-provider-sink-BQd7mzyT.js.map +1 -0
- package/dist/raw-provider-sink-BU29Sh8h.d.ts +134 -0
- package/dist/raw-provider-sink-BU29Sh8h.d.ts.map +1 -0
- package/dist/redact-7Aq1ukl-.js +107 -0
- package/dist/redact-7Aq1ukl-.js.map +1 -0
- package/dist/release-report-Cz9NKH39.js +603 -0
- package/dist/release-report-Cz9NKH39.js.map +1 -0
- package/dist/release-report-mvB2G4_J.d.ts +244 -0
- package/dist/release-report-mvB2G4_J.d.ts.map +1 -0
- package/dist/replay-GnyotH0J.js +1741 -0
- package/dist/replay-GnyotH0J.js.map +1 -0
- package/dist/replay-OoidtG1E.d.ts +749 -0
- package/dist/replay-OoidtG1E.d.ts.map +1 -0
- package/dist/reporting.d.ts +6 -1312
- package/dist/reporting.js +6 -51
- package/dist/researcher-CwTdwXG1.d.ts +314 -0
- package/dist/researcher-CwTdwXG1.d.ts.map +1 -0
- package/dist/reward-hacking-eAnOsynk.d.ts +224 -0
- package/dist/reward-hacking-eAnOsynk.d.ts.map +1 -0
- package/dist/reward-hacking-qipEpKvY.js +596 -0
- package/dist/reward-hacking-qipEpKvY.js.map +1 -0
- package/dist/reward-nw2xZGZG.js +137 -0
- package/dist/reward-nw2xZGZG.js.map +1 -0
- package/dist/rl.d.ts +760 -4010
- package/dist/rl.d.ts.map +1 -0
- package/dist/rl.js +2325 -1958
- package/dist/rl.js.map +1 -1
- package/dist/rolldown-runtime-8H4AJuhK.js +14 -0
- package/dist/rollout/index.d.ts +3 -2087
- package/dist/rollout/index.js +8 -168
- package/dist/rollout-BOYjemfR.js +624 -0
- package/dist/rollout-BOYjemfR.js.map +1 -0
- package/dist/rubric-predictive-validity-B3xmbmS1.js +141 -0
- package/dist/rubric-predictive-validity-B3xmbmS1.js.map +1 -0
- package/dist/rubric-predictive-validity-Ku_clp_1.d.ts +74 -0
- package/dist/rubric-predictive-validity-Ku_clp_1.d.ts.map +1 -0
- package/dist/run-evidence-ClRX_8A9.d.ts +225 -0
- package/dist/run-evidence-ClRX_8A9.d.ts.map +1 -0
- package/dist/run-record-BuoE80Dq.js +467 -0
- package/dist/{chunk-56TAVBOK.js.map → run-record-BuoE80Dq.js.map} +1 -1
- package/dist/run-record-CnZu_gjl.d.ts +357 -0
- package/dist/run-record-CnZu_gjl.d.ts.map +1 -0
- package/dist/run-score-iEEAWiBY.js +41 -0
- package/dist/run-score-iEEAWiBY.js.map +1 -0
- package/dist/runtime-trajectory-1gyaTOoC.js +93 -0
- package/dist/runtime-trajectory-1gyaTOoC.js.map +1 -0
- package/dist/runtime-trajectory-BvSZcCHD.d.ts +50 -0
- package/dist/runtime-trajectory-BvSZcCHD.d.ts.map +1 -0
- package/dist/schema-BtVldJ3T.d.ts +206 -0
- package/dist/schema-BtVldJ3T.d.ts.map +1 -0
- package/dist/schema-C6DW4ZHR.js +821 -0
- package/dist/schema-C6DW4ZHR.js.map +1 -0
- package/dist/schema-CRhEY1SO.js +69 -0
- package/dist/schema-CRhEY1SO.js.map +1 -0
- package/dist/schema-Cef2cFmb.d.ts +408 -0
- package/dist/schema-Cef2cFmb.d.ts.map +1 -0
- package/dist/semantic-concept-judge-B6cWNJ2K.js +725 -0
- package/dist/semantic-concept-judge-B6cWNJ2K.js.map +1 -0
- package/dist/sequential-Br0mAPHA.js +148 -0
- package/dist/sequential-Br0mAPHA.js.map +1 -0
- package/dist/sequential-CYwq6Ff_.d.ts +141 -0
- package/dist/sequential-CYwq6Ff_.d.ts.map +1 -0
- package/dist/series-convergence-CjO2QdRW.js +43 -0
- package/dist/series-convergence-CjO2QdRW.js.map +1 -0
- package/dist/series-convergence-ofsqPWhs.d.ts +35 -0
- package/dist/series-convergence-ofsqPWhs.d.ts.map +1 -0
- package/dist/server-m5D9cvnG.js +1040 -0
- package/dist/server-m5D9cvnG.js.map +1 -0
- package/dist/skill-usage-C_pXm7lP.d.ts +534 -0
- package/dist/skill-usage-C_pXm7lP.d.ts.map +1 -0
- package/dist/skillopt-optimization-method-B7wX7XkF.d.ts +1739 -0
- package/dist/skillopt-optimization-method-B7wX7XkF.d.ts.map +1 -0
- package/dist/skillopt-optimization-method-D4ODwFVV.js +7712 -0
- package/dist/skillopt-optimization-method-D4ODwFVV.js.map +1 -0
- package/dist/statistics-Cmj6nynr.d.ts +514 -0
- package/dist/statistics-Cmj6nynr.d.ts.map +1 -0
- package/dist/statistics-CnnxdpOg.js +1437 -0
- package/dist/statistics-CnnxdpOg.js.map +1 -0
- package/dist/store-CT9YIIve.d.ts +117 -0
- package/dist/store-CT9YIIve.d.ts.map +1 -0
- package/dist/store-CxJry_cs.d.ts +229 -0
- package/dist/store-CxJry_cs.d.ts.map +1 -0
- package/dist/storyboard/index.d.ts +84 -203
- package/dist/storyboard/index.d.ts.map +1 -0
- package/dist/storyboard/index.js +609 -542
- package/dist/storyboard/index.js.map +1 -1
- package/dist/summary-report-BNs5nmXI.js +862 -0
- package/dist/summary-report-BNs5nmXI.js.map +1 -0
- package/dist/summary-report-Cj9gdw4i.d.ts +407 -0
- package/dist/summary-report-Cj9gdw4i.d.ts.map +1 -0
- package/dist/supervisor-run/index.d.ts +2 -959
- package/dist/supervisor-run/index.js +2 -65
- package/dist/supervisor-run-_lnTLM3z.js +1679 -0
- package/dist/supervisor-run-_lnTLM3z.js.map +1 -0
- package/dist/task-failure-attributes-CQZlB3et.js +311 -0
- package/dist/task-failure-attributes-CQZlB3et.js.map +1 -0
- package/dist/test-graded-scenario-BsqWLmPt.js +318 -0
- package/dist/test-graded-scenario-BsqWLmPt.js.map +1 -0
- package/dist/test-graded-scenario-D1TaI2va.d.ts +141 -0
- package/dist/test-graded-scenario-D1TaI2va.d.ts.map +1 -0
- package/dist/tools-BmuN627J.js +1085 -0
- package/dist/tools-BmuN627J.js.map +1 -0
- package/dist/trace-attributes.d.ts +2 -52
- package/dist/trace-attributes.js +131 -61
- package/dist/trace-attributes.js.map +1 -1
- package/dist/traces.d.ts +12 -2365
- package/dist/traces.js +12 -252
- package/dist/trajectory-D_7rLrvE.js +56 -0
- package/dist/trajectory-D_7rLrvE.js.map +1 -0
- package/dist/types-DGsxbAEd.d.ts +387 -0
- package/dist/types-DGsxbAEd.d.ts.map +1 -0
- package/dist/types-k9tZGKUg.d.ts +640 -0
- package/dist/types-k9tZGKUg.d.ts.map +1 -0
- package/dist/verdict-Dps8_okt.d.ts +37 -0
- package/dist/verdict-Dps8_okt.d.ts.map +1 -0
- package/dist/wire/index.d.ts +702 -1173
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/wire/index.js +2 -81
- package/package.json +17 -9
- package/dist/benchmarks/index.js.map +0 -1
- package/dist/campaign/index.js.map +0 -1
- package/dist/chunk-2QU3YOPR.js +0 -7374
- package/dist/chunk-2QU3YOPR.js.map +0 -1
- package/dist/chunk-3OCR4R5I.js +0 -728
- package/dist/chunk-3OCR4R5I.js.map +0 -1
- package/dist/chunk-3RF76KTD.js +0 -84
- package/dist/chunk-3RF76KTD.js.map +0 -1
- package/dist/chunk-56TAVBOK.js +0 -698
- package/dist/chunk-5DTSBUL2.js +0 -159
- package/dist/chunk-5DTSBUL2.js.map +0 -1
- package/dist/chunk-7FO3TNPI.js +0 -232
- package/dist/chunk-7FO3TNPI.js.map +0 -1
- package/dist/chunk-7ZZMD7UK.js +0 -386
- package/dist/chunk-7ZZMD7UK.js.map +0 -1
- package/dist/chunk-BOD4O7OF.js +0 -40
- package/dist/chunk-BOD4O7OF.js.map +0 -1
- package/dist/chunk-BSO5JDQH.js +0 -2335
- package/dist/chunk-BSO5JDQH.js.map +0 -1
- package/dist/chunk-C6LXANRU.js +0 -1550
- package/dist/chunk-C6LXANRU.js.map +0 -1
- package/dist/chunk-DODXQREJ.js +0 -752
- package/dist/chunk-DODXQREJ.js.map +0 -1
- package/dist/chunk-DRYIUNWY.js +0 -622
- package/dist/chunk-DRYIUNWY.js.map +0 -1
- package/dist/chunk-E7QXT7SX.js +0 -183
- package/dist/chunk-E7QXT7SX.js.map +0 -1
- package/dist/chunk-EG66UGL4.js +0 -341
- package/dist/chunk-EG66UGL4.js.map +0 -1
- package/dist/chunk-FXTVJPYD.js +0 -576
- package/dist/chunk-FXTVJPYD.js.map +0 -1
- package/dist/chunk-G7MGMCZD.js +0 -153
- package/dist/chunk-G7MGMCZD.js.map +0 -1
- package/dist/chunk-GGE4NNQT.js +0 -65
- package/dist/chunk-GGE4NNQT.js.map +0 -1
- package/dist/chunk-H23X7XKK.js +0 -181
- package/dist/chunk-H23X7XKK.js.map +0 -1
- package/dist/chunk-HHWE3POT.js +0 -94
- package/dist/chunk-HHWE3POT.js.map +0 -1
- package/dist/chunk-HPWUNB47.js +0 -289
- package/dist/chunk-HPWUNB47.js.map +0 -1
- package/dist/chunk-IYCLP2N2.js +0 -766
- package/dist/chunk-IYCLP2N2.js.map +0 -1
- package/dist/chunk-JHCHEVET.js +0 -274
- package/dist/chunk-JHCHEVET.js.map +0 -1
- package/dist/chunk-JQSF5DQT.js +0 -701
- package/dist/chunk-JQSF5DQT.js.map +0 -1
- package/dist/chunk-K4DBDHLK.js +0 -158
- package/dist/chunk-K4DBDHLK.js.map +0 -1
- package/dist/chunk-K6N6XJJX.js +0 -306
- package/dist/chunk-K6N6XJJX.js.map +0 -1
- package/dist/chunk-M4YBQKIJ.js +0 -1040
- package/dist/chunk-M4YBQKIJ.js.map +0 -1
- package/dist/chunk-MA6HLL3S.js +0 -65
- package/dist/chunk-MA6HLL3S.js.map +0 -1
- package/dist/chunk-MAZ26DC7.js +0 -99
- package/dist/chunk-MAZ26DC7.js.map +0 -1
- package/dist/chunk-NPCTHQIO.js +0 -91
- package/dist/chunk-NPCTHQIO.js.map +0 -1
- package/dist/chunk-NY44NC4A.js +0 -1056
- package/dist/chunk-NY44NC4A.js.map +0 -1
- package/dist/chunk-OIUOT4QD.js +0 -44
- package/dist/chunk-OIUOT4QD.js.map +0 -1
- package/dist/chunk-ONWEPEDO.js +0 -57
- package/dist/chunk-ONWEPEDO.js.map +0 -1
- package/dist/chunk-OWN5NPMC.js +0 -152
- package/dist/chunk-OWN5NPMC.js.map +0 -1
- package/dist/chunk-P6FYH6K4.js +0 -1161
- package/dist/chunk-P6FYH6K4.js.map +0 -1
- package/dist/chunk-PC4UYEBM.js +0 -166
- package/dist/chunk-PC4UYEBM.js.map +0 -1
- package/dist/chunk-PC5DOSM7.js +0 -579
- package/dist/chunk-PC5DOSM7.js.map +0 -1
- package/dist/chunk-PXE2VKMX.js +0 -140
- package/dist/chunk-PXE2VKMX.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -10
- package/dist/chunk-PZ5AY32C.js.map +0 -1
- package/dist/chunk-QB6BDBP2.js +0 -4464
- package/dist/chunk-QB6BDBP2.js.map +0 -1
- package/dist/chunk-RXHCETDZ.js +0 -536
- package/dist/chunk-RXHCETDZ.js.map +0 -1
- package/dist/chunk-RZTMDUO7.js +0 -49
- package/dist/chunk-RZTMDUO7.js.map +0 -1
- package/dist/chunk-SFLLL76A.js +0 -669
- package/dist/chunk-SFLLL76A.js.map +0 -1
- package/dist/chunk-SZLVEKMJ.js +0 -1446
- package/dist/chunk-SZLVEKMJ.js.map +0 -1
- package/dist/chunk-T4SQEITX.js +0 -95
- package/dist/chunk-T4SQEITX.js.map +0 -1
- package/dist/chunk-T6RLYGAD.js +0 -158
- package/dist/chunk-T6RLYGAD.js.map +0 -1
- package/dist/chunk-TJVT4QFF.js +0 -911
- package/dist/chunk-TJVT4QFF.js.map +0 -1
- package/dist/chunk-TQ7LNKZ3.js +0 -136
- package/dist/chunk-TQ7LNKZ3.js.map +0 -1
- package/dist/chunk-U4L7JRPZ.js +0 -1706
- package/dist/chunk-U4L7JRPZ.js.map +0 -1
- package/dist/chunk-U4PHLT2N.js +0 -419
- package/dist/chunk-U4PHLT2N.js.map +0 -1
- package/dist/chunk-VCZ5FQYW.js +0 -928
- package/dist/chunk-VCZ5FQYW.js.map +0 -1
- package/dist/chunk-VI2UW6B6.js +0 -162
- package/dist/chunk-VI2UW6B6.js.map +0 -1
- package/dist/chunk-VQMK5FMP.js +0 -247
- package/dist/chunk-VQMK5FMP.js.map +0 -1
- package/dist/chunk-WGXIEX7P.js +0 -116
- package/dist/chunk-WGXIEX7P.js.map +0 -1
- package/dist/chunk-WVATSFCP.js +0 -1553
- package/dist/chunk-WVATSFCP.js.map +0 -1
- package/dist/chunk-X4YIBDER.js +0 -1662
- package/dist/chunk-X4YIBDER.js.map +0 -1
- package/dist/chunk-YQN4ICPP.js +0 -355
- package/dist/chunk-YQN4ICPP.js.map +0 -1
- package/dist/chunk-ZET2UAYW.js +0 -89
- package/dist/chunk-ZET2UAYW.js.map +0 -1
- package/dist/chunk-ZHTZ4EYI.js +0 -1212
- package/dist/chunk-ZHTZ4EYI.js.map +0 -1
- package/dist/control.js.map +0 -1
- package/dist/hosted/index.js.map +0 -1
- package/dist/matrix/index.js.map +0 -1
- package/dist/reporting.js.map +0 -1
- package/dist/rollout/index.js.map +0 -1
- package/dist/run-campaign-OJJ7CZF4.js +0 -18
- package/dist/run-campaign-OJJ7CZF4.js.map +0 -1
- package/dist/supervisor-run/index.js.map +0 -1
- package/dist/traces.js.map +0 -1
- package/dist/wire/index.js.map +0 -1
|
@@ -1,366 +1,377 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "../
|
|
5
|
-
|
|
6
|
-
pearsonR,
|
|
7
|
-
spearmanR
|
|
8
|
-
} from "../chunk-ZHTZ4EYI.js";
|
|
9
|
-
import {
|
|
10
|
-
judgeSpans
|
|
11
|
-
} from "../chunk-ZET2UAYW.js";
|
|
12
|
-
import {
|
|
13
|
-
TraceEmitter
|
|
14
|
-
} from "../chunk-VQMK5FMP.js";
|
|
15
|
-
import "../chunk-MA6HLL3S.js";
|
|
16
|
-
import "../chunk-ONWEPEDO.js";
|
|
17
|
-
import "../chunk-PZ5AY32C.js";
|
|
18
|
-
|
|
19
|
-
// src/builder-eval/builder-session.ts
|
|
1
|
+
import { A as spearmanR, E as pearsonR } from "../statistics-CnnxdpOg.js";
|
|
2
|
+
import { t as TraceEmitter } from "../emitter-CPBAhxum.js";
|
|
3
|
+
import { a as judgeSpans } from "../query-Di7eEQ79.js";
|
|
4
|
+
import { r as SandboxHarness, t as runTestGradedScenario } from "../test-graded-scenario-BsqWLmPt.js";
|
|
5
|
+
//#region src/builder-eval/builder-session.ts
|
|
20
6
|
var BuilderSession = class {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}
|
|
7
|
+
store;
|
|
8
|
+
builderEmitter;
|
|
9
|
+
projectId;
|
|
10
|
+
chatId;
|
|
11
|
+
builderRunId;
|
|
12
|
+
lastBuildRunId;
|
|
13
|
+
defaultDriver;
|
|
14
|
+
constructor(store, init, driver) {
|
|
15
|
+
this.store = store;
|
|
16
|
+
this.projectId = init.projectId;
|
|
17
|
+
this.chatId = init.chatId ?? cryptoId();
|
|
18
|
+
this.defaultDriver = driver;
|
|
19
|
+
this.builderEmitter = new TraceEmitter(store);
|
|
20
|
+
}
|
|
21
|
+
/** Start the builder (L0) run for this chat. Returns the runId. */
|
|
22
|
+
async startChat(scenarioId = `${this.projectId}/chat`) {
|
|
23
|
+
await this.builderEmitter.startRun({
|
|
24
|
+
scenarioId,
|
|
25
|
+
projectId: this.projectId,
|
|
26
|
+
chatId: this.chatId,
|
|
27
|
+
layer: "builder"
|
|
28
|
+
});
|
|
29
|
+
this.builderRunId = this.builderEmitter.runId;
|
|
30
|
+
return this.builderRunId;
|
|
31
|
+
}
|
|
32
|
+
/** The emitter for builder-level spans (edits, LLM calls, tool invocations). */
|
|
33
|
+
get emitter() {
|
|
34
|
+
if (!this.builderRunId) throw new Error("BuilderSession.emitter: call startChat() first");
|
|
35
|
+
return this.builderEmitter;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ship the project's generated app: run the sandbox harness as a child
|
|
39
|
+
* Run (`layer='app-build'`). Returns the build result + runId.
|
|
40
|
+
*/
|
|
41
|
+
async ship(options) {
|
|
42
|
+
if (!this.builderRunId) throw new Error("BuilderSession.ship: call startChat() first");
|
|
43
|
+
const buildEmitter = new TraceEmitter(this.store);
|
|
44
|
+
await buildEmitter.startRun({
|
|
45
|
+
scenarioId: options.scenarioId ?? `${this.projectId}/build`,
|
|
46
|
+
projectId: this.projectId,
|
|
47
|
+
chatId: this.chatId,
|
|
48
|
+
parentRunId: this.builderRunId,
|
|
49
|
+
layer: "app-build"
|
|
50
|
+
});
|
|
51
|
+
const result = await new SandboxHarness(options.driver ?? this.defaultDriver).run(options.harness, buildEmitter);
|
|
52
|
+
await buildEmitter.endRun({
|
|
53
|
+
pass: result.passed,
|
|
54
|
+
score: result.score,
|
|
55
|
+
failureClass: result.passed ? "success" : "sandbox_failure"
|
|
56
|
+
});
|
|
57
|
+
this.lastBuildRunId = buildEmitter.runId;
|
|
58
|
+
return {
|
|
59
|
+
runId: buildEmitter.runId,
|
|
60
|
+
result
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Run a domain scenario against the just-built app as a grandchild Run
|
|
65
|
+
* (`layer='app-runtime'`). The `ship` call must precede this so the
|
|
66
|
+
* parent is set correctly; if no build exists yet the session attaches
|
|
67
|
+
* directly to the builder run (useful for prototypes).
|
|
68
|
+
*/
|
|
69
|
+
async runAppScenario(options) {
|
|
70
|
+
const parentRunId = this.lastBuildRunId ?? this.builderRunId;
|
|
71
|
+
if (!parentRunId) throw new Error("BuilderSession.runAppScenario: call startChat() + ship() first");
|
|
72
|
+
const { scenario, driver } = options;
|
|
73
|
+
const result = await runTestGradedScenario(scenario, this.store, {
|
|
74
|
+
driver: driver ?? this.defaultDriver,
|
|
75
|
+
provenance: {
|
|
76
|
+
codeSha: void 0,
|
|
77
|
+
promptSha: void 0,
|
|
78
|
+
modelFingerprint: void 0
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
await this.store.updateRun(result.runId, {
|
|
82
|
+
parentRunId,
|
|
83
|
+
projectId: this.projectId,
|
|
84
|
+
chatId: this.chatId,
|
|
85
|
+
layer: "app-runtime"
|
|
86
|
+
});
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
/** Record an end-of-chat meta score (judge verdict on whether the builder
|
|
90
|
+
* served the user's intent). Accepts a numeric score + optional rationale. */
|
|
91
|
+
async recordMetaScore(score, rationale) {
|
|
92
|
+
if (!this.builderRunId) throw new Error("BuilderSession.recordMetaScore: call startChat() first");
|
|
93
|
+
await this.builderEmitter.recordJudge({
|
|
94
|
+
judgeId: "builder-meta",
|
|
95
|
+
targetSpanId: this.builderRunId,
|
|
96
|
+
dimension: "user_intent_satisfaction",
|
|
97
|
+
score,
|
|
98
|
+
rationale,
|
|
99
|
+
name: "builder-meta"
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/** Close the builder Run with a final outcome. */
|
|
103
|
+
async endChat(outcome) {
|
|
104
|
+
await this.builderEmitter.endRun({
|
|
105
|
+
pass: outcome.pass,
|
|
106
|
+
score: outcome.score,
|
|
107
|
+
notes: outcome.notes
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Inline app-runtime run — for cases where the "scenario" isn't a
|
|
112
|
+
* SWE-bench-style test suite but a live agent interaction (LLM chat,
|
|
113
|
+
* domain flow). Returns an emitter bound to a fresh Run in the
|
|
114
|
+
* `app-runtime` layer; caller emits spans inside and calls
|
|
115
|
+
* `.endRun()` with the final verdict.
|
|
116
|
+
*/
|
|
117
|
+
async startAppRuntime(scenarioId) {
|
|
118
|
+
const parentRunId = this.lastBuildRunId ?? this.builderRunId;
|
|
119
|
+
if (!parentRunId) throw new Error("BuilderSession.startAppRuntime: call startChat() + (optionally) ship() first");
|
|
120
|
+
const emitter = new TraceEmitter(this.store);
|
|
121
|
+
await emitter.startRun({
|
|
122
|
+
scenarioId,
|
|
123
|
+
projectId: this.projectId,
|
|
124
|
+
chatId: this.chatId,
|
|
125
|
+
parentRunId,
|
|
126
|
+
layer: "app-runtime"
|
|
127
|
+
});
|
|
128
|
+
return emitter;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Lightweight "ship marker" — record an app-build Run with a caller-
|
|
132
|
+
* provided verdict. Use when there isn't a sandbox harness to run but
|
|
133
|
+
* you still want to mark the build state at publish time.
|
|
134
|
+
*/
|
|
135
|
+
async recordShipMarker(args) {
|
|
136
|
+
if (!this.builderRunId) throw new Error("BuilderSession.recordShipMarker: call startChat() first");
|
|
137
|
+
const emitter = new TraceEmitter(this.store);
|
|
138
|
+
await emitter.startRun({
|
|
139
|
+
scenarioId: args.scenarioId ?? `${this.projectId}/ship`,
|
|
140
|
+
projectId: this.projectId,
|
|
141
|
+
chatId: this.chatId,
|
|
142
|
+
parentRunId: this.builderRunId,
|
|
143
|
+
layer: "app-build"
|
|
144
|
+
});
|
|
145
|
+
await emitter.endRun({
|
|
146
|
+
pass: args.pass,
|
|
147
|
+
score: args.score,
|
|
148
|
+
failureClass: args.pass ? "success" : "sandbox_failure",
|
|
149
|
+
notes: args.notes
|
|
150
|
+
});
|
|
151
|
+
this.lastBuildRunId = emitter.runId;
|
|
152
|
+
return emitter.runId;
|
|
153
|
+
}
|
|
154
|
+
get lastBuildRunIdValue() {
|
|
155
|
+
return this.lastBuildRunId;
|
|
156
|
+
}
|
|
157
|
+
get builderRunIdValue() {
|
|
158
|
+
return this.builderRunId;
|
|
159
|
+
}
|
|
175
160
|
};
|
|
161
|
+
/**
|
|
162
|
+
* Reconstruct the most recent BuilderSession state for a given project —
|
|
163
|
+
* returns { builderRunId, lastBuildRunId, chatRuns }. For chat-first UIs
|
|
164
|
+
* this is how a resumed session finds its place in the edit history.
|
|
165
|
+
*/
|
|
176
166
|
async function resumeBuilderSession(store, projectId) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
167
|
+
const runs = await store.listRuns({ projectId });
|
|
168
|
+
const chatRuns = runs.filter((r) => r.layer === "builder").sort((a, b) => b.startedAt - a.startedAt);
|
|
169
|
+
const buildRuns = runs.filter((r) => r.layer === "app-build").sort((a, b) => b.startedAt - a.startedAt);
|
|
170
|
+
const appRuntimeRuns = runs.filter((r) => r.layer === "app-runtime").sort((a, b) => b.startedAt - a.startedAt);
|
|
171
|
+
return {
|
|
172
|
+
projectId,
|
|
173
|
+
chatRuns,
|
|
174
|
+
lastBuilderRun: chatRuns[0],
|
|
175
|
+
lastBuildRun: buildRuns[0],
|
|
176
|
+
lastAppRuntimeRuns: appRuntimeRuns
|
|
177
|
+
};
|
|
188
178
|
}
|
|
189
179
|
function cryptoId() {
|
|
190
|
-
|
|
191
|
-
|
|
180
|
+
if (typeof globalThis.crypto?.randomUUID === "function") return globalThis.crypto.randomUUID();
|
|
181
|
+
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
192
182
|
}
|
|
193
|
-
|
|
194
|
-
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/builder-eval/correlation.ts
|
|
185
|
+
/**
|
|
186
|
+
* Meta-eval correlation — the highest-leverage signal in the framework.
|
|
187
|
+
*
|
|
188
|
+
* Given a corpus of three-layer project reports, compute how well each
|
|
189
|
+
* pair of layers correlates. The question we care about most:
|
|
190
|
+
*
|
|
191
|
+
* Does `metaScore` (what the builder thinks it did) predict
|
|
192
|
+
* `runtimeScore` (what the user actually gets)?
|
|
193
|
+
*
|
|
194
|
+
* If r < ~0.4, the builder's self-scoring is broken — it's optimizing
|
|
195
|
+
* for something other than real-world success. If r > 0.7, meta_score
|
|
196
|
+
* is a usable proxy and can drive CI gates cheaply.
|
|
197
|
+
*
|
|
198
|
+
* Non-parametric rank correlation (Spearman) is also reported because
|
|
199
|
+
* meta scores are often ordinal-ish.
|
|
200
|
+
*/
|
|
195
201
|
function correlateLayers(reports) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
metaVsRuntime: pairwise(
|
|
204
|
-
reports,
|
|
205
|
-
(r) => r.metaScore,
|
|
206
|
-
(r) => r.runtimeScore
|
|
207
|
-
),
|
|
208
|
-
buildVsRuntime: pairwise(
|
|
209
|
-
reports,
|
|
210
|
-
(r) => r.buildScore,
|
|
211
|
-
(r) => r.runtimeScore
|
|
212
|
-
),
|
|
213
|
-
completeProjects
|
|
214
|
-
};
|
|
202
|
+
const completeProjects = reports.filter((r) => r.complete).length;
|
|
203
|
+
return {
|
|
204
|
+
metaVsBuild: pairwise(reports, (r) => r.metaScore, (r) => r.buildScore),
|
|
205
|
+
metaVsRuntime: pairwise(reports, (r) => r.metaScore, (r) => r.runtimeScore),
|
|
206
|
+
buildVsRuntime: pairwise(reports, (r) => r.buildScore, (r) => r.runtimeScore),
|
|
207
|
+
completeProjects
|
|
208
|
+
};
|
|
215
209
|
}
|
|
216
210
|
function pairwise(reports, a, b) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
211
|
+
const xs = [];
|
|
212
|
+
const ys = [];
|
|
213
|
+
for (const r of reports) {
|
|
214
|
+
const x = a(r);
|
|
215
|
+
const y = b(r);
|
|
216
|
+
if (x !== null && y !== null && Number.isFinite(x) && Number.isFinite(y)) {
|
|
217
|
+
xs.push(x);
|
|
218
|
+
ys.push(y);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (xs.length < 2) return void 0;
|
|
222
|
+
return {
|
|
223
|
+
n: xs.length,
|
|
224
|
+
pearson: pearsonR(xs, ys),
|
|
225
|
+
spearman: spearmanR(xs, ys)
|
|
226
|
+
};
|
|
233
227
|
}
|
|
234
|
-
|
|
235
|
-
|
|
228
|
+
//#endregion
|
|
229
|
+
//#region src/builder-eval/project-registry.ts
|
|
236
230
|
var ProjectRegistry = class {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
231
|
+
store;
|
|
232
|
+
constructor(store) {
|
|
233
|
+
this.store = store;
|
|
234
|
+
}
|
|
235
|
+
async listProjects() {
|
|
236
|
+
const runs = await this.store.listRuns();
|
|
237
|
+
const byProject = /* @__PURE__ */ new Map();
|
|
238
|
+
for (const r of runs) {
|
|
239
|
+
if (!r.projectId) continue;
|
|
240
|
+
const arr = byProject.get(r.projectId) ?? [];
|
|
241
|
+
arr.push(r);
|
|
242
|
+
byProject.set(r.projectId, arr);
|
|
243
|
+
}
|
|
244
|
+
const summaries = [];
|
|
245
|
+
for (const [projectId, projectRuns] of byProject) {
|
|
246
|
+
const sorted = projectRuns.slice().sort((a, b) => b.startedAt - a.startedAt);
|
|
247
|
+
const chats = projectRuns.filter((r) => r.layer === "builder");
|
|
248
|
+
const builds = projectRuns.filter((r) => r.layer === "app-build");
|
|
249
|
+
const runtimes = projectRuns.filter((r) => r.layer === "app-runtime");
|
|
250
|
+
const latest = sorted[0];
|
|
251
|
+
if (!latest) continue;
|
|
252
|
+
summaries.push({
|
|
253
|
+
projectId,
|
|
254
|
+
chatCount: chats.length,
|
|
255
|
+
buildCount: builds.length,
|
|
256
|
+
appRuntimeCount: runtimes.length,
|
|
257
|
+
lastActivityAt: latest.startedAt,
|
|
258
|
+
latestChatId: chats[0]?.chatId,
|
|
259
|
+
latestOutcome: latest.outcome ? {
|
|
260
|
+
pass: latest.outcome.pass ?? false,
|
|
261
|
+
score: latest.outcome.score
|
|
262
|
+
} : void 0
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
return summaries.sort((a, b) => b.lastActivityAt - a.lastActivityAt);
|
|
266
|
+
}
|
|
267
|
+
async projectTimeline(projectId) {
|
|
268
|
+
return (await this.store.listRuns({ projectId })).slice().sort((a, b) => a.startedAt - b.startedAt).map((run) => ({
|
|
269
|
+
run,
|
|
270
|
+
layerBucket: run.layer === "builder" ? "chat" : run.layer === "app-build" ? "build" : run.layer === "app-runtime" ? "runtime" : "other"
|
|
271
|
+
}));
|
|
272
|
+
}
|
|
273
|
+
async projectChats(projectId) {
|
|
274
|
+
const builderRuns = (await this.store.listRuns({
|
|
275
|
+
projectId,
|
|
276
|
+
layer: "builder"
|
|
277
|
+
})).sort((a, b) => b.startedAt - a.startedAt);
|
|
278
|
+
const childrenFor = async (runId) => this.store.listRuns({ parentRunId: runId });
|
|
279
|
+
const out = [];
|
|
280
|
+
for (const run of builderRuns) {
|
|
281
|
+
const spans = await this.store.spans({ runId: run.runId });
|
|
282
|
+
const children = await childrenFor(run.runId);
|
|
283
|
+
const build = children.find((c) => c.layer === "app-build");
|
|
284
|
+
const runtime = [];
|
|
285
|
+
if (build) {
|
|
286
|
+
const grands = await childrenFor(build.runId);
|
|
287
|
+
for (const g of grands) if (g.layer === "app-runtime") runtime.push(g.runId);
|
|
288
|
+
}
|
|
289
|
+
for (const c of children) if (c.layer === "app-runtime") runtime.push(c.runId);
|
|
290
|
+
out.push({
|
|
291
|
+
chatId: run.chatId ?? run.runId,
|
|
292
|
+
projectId,
|
|
293
|
+
builderRunId: run.runId,
|
|
294
|
+
startedAt: run.startedAt,
|
|
295
|
+
endedAt: run.endedAt,
|
|
296
|
+
status: run.status,
|
|
297
|
+
outcome: run.outcome,
|
|
298
|
+
llmTurns: spans.filter((s) => s.kind === "llm").length,
|
|
299
|
+
toolCalls: spans.filter((s) => s.kind === "tool").length,
|
|
300
|
+
buildRunId: build?.runId,
|
|
301
|
+
appRuntimeRunIds: runtime
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
return out;
|
|
305
|
+
}
|
|
310
306
|
};
|
|
311
|
-
|
|
312
|
-
|
|
307
|
+
//#endregion
|
|
308
|
+
//#region src/builder-eval/three-layer-eval.ts
|
|
309
|
+
/**
|
|
310
|
+
* Three-layer evaluation — the canonical scoring breakdown for
|
|
311
|
+
* builder-of-builders workflows.
|
|
312
|
+
*
|
|
313
|
+
* meta_score: did the builder understand + satisfy user intent?
|
|
314
|
+
* (judge verdict attached to the builder run)
|
|
315
|
+
* build_score: did the generated scaffold build + pass its own tests?
|
|
316
|
+
* (outcome.score on the app-build child run)
|
|
317
|
+
* runtime_score: did the generated agent pass its domain scenarios?
|
|
318
|
+
* (mean outcome.score over app-runtime grandchild runs)
|
|
319
|
+
*
|
|
320
|
+
* Returns a structured report per project. The cross-layer correlation
|
|
321
|
+
* is the highest-leverage signal the framework computes — if
|
|
322
|
+
* meta_score doesn't predict runtime_score, the builder's self-scoring
|
|
323
|
+
* is broken.
|
|
324
|
+
*
|
|
325
|
+
* Scaffold-only mode: when a project has no `app-runtime` runs (e.g. a
|
|
326
|
+
* scaffold-builder eval that grades compose + build without driving a
|
|
327
|
+
* runtime scenario), `kind` is `'scaffold-only'` and `complete` measures
|
|
328
|
+
* meta + build only. Consumers can tell the two apart without having to
|
|
329
|
+
* interpret null-runtime as either "not yet computed" or "N/A for this
|
|
330
|
+
* project shape".
|
|
331
|
+
*/
|
|
313
332
|
async function scoreProject(store, projectId) {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
333
|
+
const allRuns = await store.listRuns({ projectId });
|
|
334
|
+
const builder = latestByLayer(allRuns, "builder");
|
|
335
|
+
const build = latestByLayer(allRuns, "app-build");
|
|
336
|
+
const runtime = allRuns.filter((r) => r.layer === "app-runtime");
|
|
337
|
+
const metaScore = builder ? await extractMetaScore(store, builder.runId) : null;
|
|
338
|
+
const buildScore = build?.outcome?.score ?? null;
|
|
339
|
+
const runtimeScores = runtime.map((r) => r.outcome?.score).filter((s) => typeof s === "number");
|
|
340
|
+
const runtimeScore = runtimeScores.length > 0 ? runtimeScores.reduce((a, b) => a + b, 0) / runtimeScores.length : null;
|
|
341
|
+
const runtimePassed = runtime.filter((r) => r.outcome?.pass === true).length;
|
|
342
|
+
const runtimePassRate = runtime.length > 0 ? runtimePassed / runtime.length : null;
|
|
343
|
+
const kind = runtime.length === 0 ? "scaffold-only" : "full";
|
|
344
|
+
const complete = kind === "scaffold-only" ? metaScore !== null && buildScore !== null : metaScore !== null && buildScore !== null && runtimeScore !== null;
|
|
345
|
+
return {
|
|
346
|
+
projectId,
|
|
347
|
+
kind,
|
|
348
|
+
builderRunId: builder?.runId,
|
|
349
|
+
metaScore,
|
|
350
|
+
buildRunId: build?.runId,
|
|
351
|
+
buildScore,
|
|
352
|
+
appRuntimeRunIds: runtime.map((r) => r.runId),
|
|
353
|
+
runtimeScore,
|
|
354
|
+
runtimePassRate,
|
|
355
|
+
complete
|
|
356
|
+
};
|
|
338
357
|
}
|
|
358
|
+
/** Aggregate scoring across every project in a corpus. */
|
|
339
359
|
async function scoreAllProjects(store) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
360
|
+
const runs = await store.listRuns();
|
|
361
|
+
const projectIds = [...new Set(runs.map((r) => r.projectId).filter((p) => !!p))];
|
|
362
|
+
return Promise.all(projectIds.map((p) => scoreProject(store, p)));
|
|
343
363
|
}
|
|
344
364
|
function latestByLayer(runs, layer) {
|
|
345
|
-
|
|
346
|
-
return filtered[0];
|
|
365
|
+
return runs.filter((r) => r.layer === layer).sort((a, b) => b.startedAt - a.startedAt)[0];
|
|
347
366
|
}
|
|
348
367
|
async function extractMetaScore(store, builderRunId) {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
if (meta.score >= 0 && meta.score <= 1) return meta.score;
|
|
355
|
-
if (meta.score >= 0 && meta.score <= 10) return meta.score / 10;
|
|
356
|
-
return null;
|
|
368
|
+
const meta = (await judgeSpans(store, builderRunId)).find((s) => s.judgeId === "builder-meta" && s.dimension === "user_intent_satisfaction");
|
|
369
|
+
if (!meta) return null;
|
|
370
|
+
if (meta.score >= 0 && meta.score <= 1) return meta.score;
|
|
371
|
+
if (meta.score >= 0 && meta.score <= 10) return meta.score / 10;
|
|
372
|
+
return null;
|
|
357
373
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
correlateLayers,
|
|
362
|
-
resumeBuilderSession,
|
|
363
|
-
scoreAllProjects,
|
|
364
|
-
scoreProject
|
|
365
|
-
};
|
|
374
|
+
//#endregion
|
|
375
|
+
export { BuilderSession, ProjectRegistry, correlateLayers, resumeBuilderSession, scoreAllProjects, scoreProject };
|
|
376
|
+
|
|
366
377
|
//# sourceMappingURL=index.js.map
|