reeval 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/dist/{agent-Dhd5FJCZ.js → agent-6FefIhX7.js} +6 -6
- package/dist/{agent-Dhd5FJCZ.js.map → agent-6FefIhX7.js.map} +1 -1
- package/dist/{agent-gjBiZis8.js → agent-WSmTaesf.js} +52 -17
- package/dist/agent-WSmTaesf.js.map +1 -0
- package/dist/{analysis-BV3TCznv.js → analysis-DlGBDjTj.js} +4 -4
- package/dist/{analysis-BV3TCznv.js.map → analysis-DlGBDjTj.js.map} +1 -1
- package/dist/{assemble-Dd_mZYnu.js → assemble-BCZzTyR7.js} +259 -18
- package/dist/assemble-BCZzTyR7.js.map +1 -0
- package/dist/assemble-C5qq5yT2.js +2 -0
- package/dist/capture-Bp74Z6Fr.js +1257 -0
- package/dist/capture-Bp74Z6Fr.js.map +1 -0
- package/dist/capture-DS-cPyuE.js +2 -0
- package/dist/{cli-r9CDqoFL.js → cli-CVrMh_qz.js} +210 -112
- package/dist/cli-CVrMh_qz.js.map +1 -0
- package/dist/{cli-spec-DOyxAMc2.js → cli-spec-CKEYa8V2.js} +6 -5
- package/dist/cli-spec-CKEYa8V2.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{client-LsfDiD-X.js → client-Bbo9SPlK.js} +31 -201
- package/dist/client-Bbo9SPlK.js.map +1 -0
- package/dist/{command-l4ZFCeMh.js → command-BFP0hKEb.js} +7 -7
- package/dist/{command-l4ZFCeMh.js.map → command-BFP0hKEb.js.map} +1 -1
- package/dist/command-BrmXUC-W.js +2 -0
- package/dist/{command-DMR69l5G.js → command-C5xFPKHM.js} +21 -20
- package/dist/command-C5xFPKHM.js.map +1 -0
- package/dist/{command-Cej2t3y-.js → command-CzIFp1JQ.js} +10 -10
- package/dist/{command-Cej2t3y-.js.map → command-CzIFp1JQ.js.map} +1 -1
- package/dist/{command-D6r2pwO5.js → command-DUT5l13I.js} +221 -54
- package/dist/command-DUT5l13I.js.map +1 -0
- package/dist/{commands-BA_NCh2h.js → commands-CLmPBrTS.js} +6 -6
- package/dist/{commands-BA_NCh2h.js.map → commands-CLmPBrTS.js.map} +1 -1
- package/dist/{commands-DgOUkcSO.js → commands-fI3G2Wnh.js} +1 -1
- package/dist/{config-DuQDCx0B.js → config-CGvBeewH.js} +18 -8
- package/dist/config-CGvBeewH.js.map +1 -0
- package/dist/{context-CvUv7DUb.js → context-DbSMEVKs.js} +1 -5
- package/dist/{context-CvUv7DUb.js.map → context-DbSMEVKs.js.map} +1 -1
- package/dist/{db-o_osRkqr.js → db-CSSFtGcN.js} +1 -1
- package/dist/{db-CjX7JF4o.js → db-CfQFwJtq.js} +209 -40
- package/dist/db-CfQFwJtq.js.map +1 -0
- package/dist/{docker-DaUaG4XZ.js → docker-CRQGQbIt.js} +17 -5
- package/dist/docker-CRQGQbIt.js.map +1 -0
- package/dist/{docker-ZaYeKE2w.js → docker-DV2GNgle.js} +2 -2
- package/dist/{docker-ZaYeKE2w.js.map → docker-DV2GNgle.js.map} +1 -1
- package/dist/{docker-Dnya8eo9.js → docker-Df_YOxxB.js} +1 -1
- package/dist/{doctor-Bk6aJeec.js → doctor-DlKycx5H.js} +13 -13
- package/dist/{doctor-Bk6aJeec.js.map → doctor-DlKycx5H.js.map} +1 -1
- package/dist/{egress-BKbyriEa.js → egress-BhzNh7Yi.js} +18 -10
- package/dist/egress-BhzNh7Yi.js.map +1 -0
- package/dist/{environment-DiCljXMD.js → environment-1jE-HhO-.js} +2 -2
- package/dist/{environment-DiCljXMD.js.map → environment-1jE-HhO-.js.map} +1 -1
- package/dist/fake-instructions-CUI33I_F.js +32 -0
- package/dist/fake-instructions-CUI33I_F.js.map +1 -0
- package/dist/family-D2b7WD10.js +67 -0
- package/dist/family-D2b7WD10.js.map +1 -0
- package/dist/files-AiEKuEZe.js +2 -0
- package/dist/files-BMCvfB4X.js +2 -0
- package/dist/{files-TNrZJQ3Y.js → files-CSzVADHn.js} +5 -5
- package/dist/{files-TNrZJQ3Y.js.map → files-CSzVADHn.js.map} +1 -1
- package/dist/{files-BSMSnQMa.js → files-DJUFg-4e.js} +3 -3
- package/dist/{files-BSMSnQMa.js.map → files-DJUFg-4e.js.map} +1 -1
- package/dist/{git-DNGtrOg9.js → git-DfG-YJ1u.js} +2 -2
- package/dist/{git-DNGtrOg9.js.map → git-DfG-YJ1u.js.map} +1 -1
- package/dist/{harness-CDRaaGvR.js → harness-CeCp2GSW.js} +52 -12
- package/dist/harness-CeCp2GSW.js.map +1 -0
- package/dist/harness.d.ts +26 -13
- package/dist/harness.js +1 -1
- package/dist/{header-BZF8Xss1.js → header-CALhmafp.js} +10 -3
- package/dist/{header-BZF8Xss1.js.map → header-CALhmafp.js.map} +1 -1
- package/dist/{images-BpwFDT1E.js → images-BMgdpMAX.js} +6 -6
- package/dist/{images-BpwFDT1E.js.map → images-BMgdpMAX.js.map} +1 -1
- package/dist/index.d.ts +17 -5
- package/dist/index.js +165 -67
- package/dist/index.js.map +1 -1
- package/dist/init-B6vegaP_.js +2 -0
- package/dist/{init-CBWt1rZT.js → init-BIdLF0F9.js} +4 -4
- package/dist/{init-CBWt1rZT.js.map → init-BIdLF0F9.js.map} +1 -1
- package/dist/{invocations-DArYWyXN.js → invocations-CLaL8AuW.js} +3 -3
- package/dist/{invocations-DArYWyXN.js.map → invocations-CLaL8AuW.js.map} +1 -1
- package/dist/{judge-7WjNdU9z.js → judge-CeYPN8P_.js} +2 -2
- package/dist/{judge-7WjNdU9z.js.map → judge-CeYPN8P_.js.map} +1 -1
- package/dist/judge.d.ts +5 -4
- package/dist/judge.js +4 -3
- package/dist/judge.js.map +1 -1
- package/dist/{live-DZkCtmNP.js → live-S0qODb6o.js} +2 -2
- package/dist/{live-DZkCtmNP.js.map → live-S0qODb6o.js.map} +1 -1
- package/dist/{model-Cp6NoAT3.js → model-B1BZoZ9b.js} +9 -8
- package/dist/model-B1BZoZ9b.js.map +1 -0
- package/dist/{model-DyQbu7KF.js → model-BOnlAPzs.js} +288 -38
- package/dist/model-BOnlAPzs.js.map +1 -0
- package/dist/{model-Bv8uUZ07.js → model-DEQo3FkZ.js} +6 -6
- package/dist/model-DEQo3FkZ.js.map +1 -0
- package/dist/model-DWeg5J7z.js +2 -0
- package/dist/{model-BeoRxCcJ.js → model-FXko2kl7.js} +1 -1
- package/dist/{options-Ge_x32XE.js → options-CKqyPGxX.js} +161 -34
- package/dist/options-CKqyPGxX.js.map +1 -0
- package/dist/pairs-DDsjgm5F.js +149 -0
- package/dist/pairs-DDsjgm5F.js.map +1 -0
- package/dist/{patch-CGCVipPu.js → patch-bDV8YFW0.js} +2 -2
- package/dist/{patch-CGCVipPu.js.map → patch-bDV8YFW0.js.map} +1 -1
- package/dist/{plan-BqBadHYj.js → plan-DUydFc_1.js} +69 -31
- package/dist/plan-DUydFc_1.js.map +1 -0
- package/dist/{preflight-CyaAZE9r.js → preflight-BkoSxf4C.js} +3 -3
- package/dist/{preflight-CyaAZE9r.js.map → preflight-BkoSxf4C.js.map} +1 -1
- package/dist/{preflight-CFtZNTLt.js → preflight-D5LW7Oqi.js} +1 -1
- package/dist/{prepare-Zr1xOMUX.js → prepare-CUAWHebF.js} +5 -5
- package/dist/{prepare-Zr1xOMUX.js.map → prepare-CUAWHebF.js.map} +1 -1
- package/dist/{prepare-Dl7-t3fO.js → prepare-oji2oO8W.js} +2 -2
- package/dist/process-CSVO_jsc.js +119 -0
- package/dist/process-CSVO_jsc.js.map +1 -0
- package/dist/{provenance-Byl2T6LJ.js → provenance-D7HK3vzt.js} +2 -2
- package/dist/{provenance-Byl2T6LJ.js.map → provenance-D7HK3vzt.js.map} +1 -1
- package/dist/{providers-Cflw7Ks-.js → providers-B1DzMvmH.js} +3 -3
- package/dist/{providers-Cflw7Ks-.js.map → providers-B1DzMvmH.js.map} +1 -1
- package/dist/{providers-SBMExI53.js → providers-CpEfNU1F.js} +1 -1
- package/dist/{query-DUSLlic0.js → query-BjBMLa-C.js} +2 -2
- package/dist/{query-DUSLlic0.js.map → query-BjBMLa-C.js.map} +1 -1
- package/dist/query-oPO_XrTy.js +2 -0
- package/dist/{questions-ZdT3JDyQ.js → questions-B8by4Bbt.js} +28 -119
- package/dist/questions-B8by4Bbt.js.map +1 -0
- package/dist/{record-CbuQH4l1.js → record-BRP9vZrj.js} +21 -1
- package/dist/record-BRP9vZrj.js.map +1 -0
- package/dist/{results-owJR-NFm.js → results-Di7m8dQ3.js} +4 -4
- package/dist/{results-owJR-NFm.js.map → results-Di7m8dQ3.js.map} +1 -1
- package/dist/{resume-BL4Yw7Ld.js → resume-SUz1GskV.js} +4 -4
- package/dist/{resume-BL4Yw7Ld.js.map → resume-SUz1GskV.js.map} +1 -1
- package/dist/runtime-DdsfnRz_.js +344 -0
- package/dist/runtime-DdsfnRz_.js.map +1 -0
- package/dist/{sandbox--ZXuscAZ.js → sandbox-D5v-of6d.js} +10 -5
- package/dist/sandbox-D5v-of6d.js.map +1 -0
- package/dist/sandbox.d.ts +4 -3
- package/dist/sandbox.js +1 -1
- package/dist/{server-yFVUxAm0.js → server-BNnXtmS8.js} +9 -9
- package/dist/{server-yFVUxAm0.js.map → server-BNnXtmS8.js.map} +1 -1
- package/dist/server-BNwoKzlm.js +2 -0
- package/dist/source-Bk_0ZaEY.js +2 -0
- package/dist/{source-M3gS517R.js → source-Dof0NQBm.js} +2 -2
- package/dist/{source-M3gS517R.js.map → source-Dof0NQBm.js.map} +1 -1
- package/dist/{src-79JhW-zG.js → src-8rRXy4u9.js} +71 -124
- package/dist/src-8rRXy4u9.js.map +1 -0
- package/dist/src-BGWuWp6I.js +3 -0
- package/dist/src-BRt0O02i.js +3 -0
- package/dist/src-Bx2x1ekD.js +3 -0
- package/dist/{src-s-VffoYK.js → src-C1E9HDWO.js} +5 -3
- package/dist/{src-s-VffoYK.js.map → src-C1E9HDWO.js.map} +1 -1
- package/dist/{src-IOr1rhEg.js → src-COgE7991.js} +10 -8
- package/dist/{src-IOr1rhEg.js.map → src-COgE7991.js.map} +1 -1
- package/dist/{src-CokPbYCb.js → src-C_4Umgh2.js} +23 -14
- package/dist/{src-CokPbYCb.js.map → src-C_4Umgh2.js.map} +1 -1
- package/dist/{src-DxFJrMUA.js → src-D95O-Smv.js} +12 -7
- package/dist/{src-DxFJrMUA.js.map → src-D95O-Smv.js.map} +1 -1
- package/dist/{src-DTcalvuF.js → src-DDNXsD9H.js} +28 -4
- package/dist/{src-DTcalvuF.js.map → src-DDNXsD9H.js.map} +1 -1
- package/dist/src-DLa-ESW0.js +4 -0
- package/dist/{src-DSE0FWaU.js → src-DVy58-zZ.js} +2 -2
- package/dist/{src-DSE0FWaU.js.map → src-DVy58-zZ.js.map} +1 -1
- package/dist/src-cN0aB-WR.js +3 -0
- package/dist/{src-DH0jhpoi.js → src-cdIVjC5b.js} +1 -1
- package/dist/src-sIsDHWYq.js +3 -0
- package/dist/state-Bo5zg4da.js +2 -0
- package/dist/{state-DEj_utaE.js → state-CiXyLqg0.js} +10 -10
- package/dist/{state-DEj_utaE.js.map → state-CiXyLqg0.js.map} +1 -1
- package/dist/studio-app/assets/index-B9MCTfuu.css +2 -0
- package/dist/studio-app/assets/{index-Bbl0oTxu.js → index-CROH2NB3.js} +12 -12
- package/dist/studio-app/index.html +2 -2
- package/dist/{summary-D012KlUM.js → summary-2OAWF2N7.js} +7 -7
- package/dist/{summary-D012KlUM.js.map → summary-2OAWF2N7.js.map} +1 -1
- package/dist/{summary--FBuB_sr.js → summary-BTksrIxn.js} +63 -5
- package/dist/summary-BTksrIxn.js.map +1 -0
- package/dist/testing.d.ts +14 -0
- package/dist/testing.js +2 -0
- package/dist/{tools-CJHw-zCo.js → tools-B10Uj7OI.js} +4 -4
- package/dist/tools-B10Uj7OI.js.map +1 -0
- package/dist/types-C5vI3g1C.js.map +1 -1
- package/dist/{types-BsRSknLe.d.ts → types-D8RLfkFP.d.ts} +453 -42
- package/dist/{usage-DsYUqIUM.js → usage-DDF_6tkV.js} +4 -2
- package/dist/{usage-DsYUqIUM.js.map → usage-DDF_6tkV.js.map} +1 -1
- package/dist/view/index.d.ts +60 -15
- package/dist/view/index.js +7 -6
- package/dist/views-Cs2Oqayd.js +3 -0
- package/dist/{views-jhL9Jb8A.js → views-Dqa5ojfZ.js} +4 -4
- package/dist/{views-jhL9Jb8A.js.map → views-Dqa5ojfZ.js.map} +1 -1
- package/dist/{worker-entry-OwnsrUdr.js → worker-entry-BAikHl9F.js} +9 -4
- package/dist/worker-entry-BAikHl9F.js.map +1 -0
- package/dist/{workspace-C4_J0pqb.js → workspace-C-TrNIUc.js} +4 -4
- package/dist/{workspace-C4_J0pqb.js.map → workspace-C-TrNIUc.js.map} +1 -1
- package/dist/{workspace-wudSz_W-.js → workspace-Do_SiWBs.js} +1 -1
- package/docker/Dockerfile +7 -5
- package/package.json +9 -4
- package/dist/agent-gjBiZis8.js.map +0 -1
- package/dist/assemble-D8sZ4Jiv.js +0 -2
- package/dist/assemble-Dd_mZYnu.js.map +0 -1
- package/dist/capture-CisAmy-G.js +0 -587
- package/dist/capture-CisAmy-G.js.map +0 -1
- package/dist/capture-DquyqAHC.js +0 -2
- package/dist/cli-r9CDqoFL.js.map +0 -1
- package/dist/cli-spec-DOyxAMc2.js.map +0 -1
- package/dist/client-LsfDiD-X.js.map +0 -1
- package/dist/command-Cxfgghqo.js +0 -2
- package/dist/command-D6r2pwO5.js.map +0 -1
- package/dist/command-DMR69l5G.js.map +0 -1
- package/dist/config-DuQDCx0B.js.map +0 -1
- package/dist/db-CjX7JF4o.js.map +0 -1
- package/dist/docker-DaUaG4XZ.js.map +0 -1
- package/dist/egress-BKbyriEa.js.map +0 -1
- package/dist/files-DmZGPsWK.js +0 -2
- package/dist/files-Tb8wY0Ze.js +0 -2
- package/dist/harness-CDRaaGvR.js.map +0 -1
- package/dist/init-1THeGfut.js +0 -2
- package/dist/model-Bv8uUZ07.js.map +0 -1
- package/dist/model-Cp6NoAT3.js.map +0 -1
- package/dist/model-D_pF3Vcl.js +0 -2
- package/dist/model-DyQbu7KF.js.map +0 -1
- package/dist/options-Ge_x32XE.js.map +0 -1
- package/dist/plan-BqBadHYj.js.map +0 -1
- package/dist/query-CvutWHaL.js +0 -2
- package/dist/questions-ZdT3JDyQ.js.map +0 -1
- package/dist/record-CbuQH4l1.js.map +0 -1
- package/dist/sandbox--ZXuscAZ.js.map +0 -1
- package/dist/server-CNPsB0cT.js +0 -2
- package/dist/source-Cmc5SKFn.js +0 -2
- package/dist/src--L8B4WGa.js +0 -3
- package/dist/src-79JhW-zG.js.map +0 -1
- package/dist/src-BLN459er.js +0 -3
- package/dist/src-Bz66jDtE.js +0 -3
- package/dist/src-CfUwg9UY.js +0 -3
- package/dist/src-DV_3QDHA.js +0 -4
- package/dist/src-Ljh2vKXm.js +0 -3
- package/dist/state-DkqbCVVp.js +0 -2
- package/dist/studio-app/assets/index-CUx6GoL5.css +0 -2
- package/dist/summary--FBuB_sr.js.map +0 -1
- package/dist/tools-CJHw-zCo.js.map +0 -1
- package/dist/views-yPmmoo8f.js +0 -3
- package/dist/worker-entry-OwnsrUdr.js.map +0 -1
|
@@ -2,13 +2,13 @@ import { n as UsageError } from "./errors-yDAEwmZo.js";
|
|
|
2
2
|
import { t as parseDuration } from "./duration-JsJrIWXq.js";
|
|
3
3
|
import { t as inCI } from "./env-BQqj93gu.js";
|
|
4
4
|
import { u as ownFileURL } from "./root-CvdRlRZX.js";
|
|
5
|
-
import { _ as isSecret, p as helpersFor } from "./environment-
|
|
6
|
-
import { c as DEFAULT_HARNESS, g as isAgentKind, l as HARNESS_EXAMPLE, m as credentialOf, s as AGENTS } from "./egress-
|
|
5
|
+
import { _ as isSecret, p as helpersFor } from "./environment-1jE-HhO-.js";
|
|
6
|
+
import { c as DEFAULT_HARNESS, g as isAgentKind, l as HARNESS_EXAMPLE, m as credentialOf, s as AGENTS } from "./egress-BhzNh7Yi.js";
|
|
7
7
|
import { a as fromCwd } from "./ids-Bp6ut7ZD.js";
|
|
8
8
|
import { t as esJiti } from "./jiti-BcJHCtrb.js";
|
|
9
|
-
import { a as checkModelString, i as badJudgeList, s as judgeCredentials } from "./judge-
|
|
10
|
-
import { i as checkOptions, r as checkHarnesses, u as profileJudge } from "./options-
|
|
11
|
-
import { t as docker } from "./sandbox
|
|
9
|
+
import { a as checkModelString, i as badJudgeList, s as judgeCredentials } from "./judge-CeYPN8P_.js";
|
|
10
|
+
import { i as checkOptions, r as checkHarnesses, u as profileJudge } from "./options-CKqyPGxX.js";
|
|
11
|
+
import { t as docker } from "./sandbox-D5v-of6d.js";
|
|
12
12
|
import { existsSync } from "node:fs";
|
|
13
13
|
import { availableParallelism, totalmem } from "node:os";
|
|
14
14
|
import { dirname, join, resolve } from "node:path";
|
|
@@ -75,6 +75,15 @@ const CONFIG_FILES = [
|
|
|
75
75
|
"cjs"
|
|
76
76
|
].map((ext) => `reeval.config.${ext}`);
|
|
77
77
|
const DEFAULT_CONFIG_FILE = "reeval.config.ts";
|
|
78
|
+
/** The names `findConfig` looks for, as doctor and the missing-config error list them. */
|
|
79
|
+
const configFilesPhrase = () => `${CONFIG_FILES[0]} (or ${CONFIG_FILES.slice(1).join(", ")})`;
|
|
80
|
+
/** Usage error when `findConfig()` finds nothing: same names as doctor, plus `reeval init`. */
|
|
81
|
+
const missingConfigMessage = () => `No ${configFilesPhrase()} here or above. Run reeval init.`;
|
|
82
|
+
/** A found config path, or the missing-config usage error. */
|
|
83
|
+
function requireConfig(path) {
|
|
84
|
+
if (path === void 0) throw new UsageError(missingConfigMessage());
|
|
85
|
+
return path;
|
|
86
|
+
}
|
|
78
87
|
/**
|
|
79
88
|
* The nearest config file in `from` or a directory above it, up to the filesystem root, the way
|
|
80
89
|
* Vitest and ESLint find theirs. A git or workspace root doesn't stop the search: a nested
|
|
@@ -95,7 +104,8 @@ const configPathFor = (flag) => flag === void 0 ? findConfig() : resolve(flag);
|
|
|
95
104
|
const configLabel = (path) => fromCwd(path) || path;
|
|
96
105
|
/**
|
|
97
106
|
* Loads the config at `path` (see `configPathFor`); its directory is the project root. Without a
|
|
98
|
-
*
|
|
107
|
+
* path, every key takes its default and the current directory is the root. `reeval run` and
|
|
108
|
+
* `reeval image build` refuse a missing file before this.
|
|
99
109
|
*/
|
|
100
110
|
async function loadConfig(path, command = "run", profile = void 0) {
|
|
101
111
|
if (path === void 0) return resolveConfig({}, process.cwd(), DEFAULT_CONFIG_FILE);
|
|
@@ -442,6 +452,6 @@ function malformedCredentials(config, env = process.env, options = {}) {
|
|
|
442
452
|
});
|
|
443
453
|
}
|
|
444
454
|
//#endregion
|
|
445
|
-
export {
|
|
455
|
+
export { configPathFor as a, findConfig as c, malformedCredentials as d, missingCredentials as f, selectProfile as h, configLabel as i, hostCapacity as l, resolveConcurrency as m, badCharacterAt as n, defaultConcurrency as o, requireConfig as p, configFilesPhrase as r, defineConfig as s, CONFIG_FILES as t, loadConfig as u };
|
|
446
456
|
|
|
447
|
-
//# sourceMappingURL=config-
|
|
457
|
+
//# sourceMappingURL=config-CGvBeewH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-CGvBeewH.js","names":[],"sources":["../src/config.ts"],"mappings":"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"}
|
|
@@ -89,10 +89,6 @@ function contextTaker(a) {
|
|
|
89
89
|
};
|
|
90
90
|
}
|
|
91
91
|
const ADAPTER_HOME = /^~\/\.ai-sdk-harness\/\.harness-bootstrap\/[^/]+\/implementation\/home\//;
|
|
92
|
-
/**
|
|
93
|
-
* Paths older Cursor records may still list as context. No current harness writes session
|
|
94
|
-
* state into the paths reeval records.
|
|
95
|
-
*/
|
|
96
92
|
const RETIRED_RUNTIME_STATE = /* @__PURE__ */ new Set([".cursor/cli-config.json", ".cursor/skills-cursor/.sync-manifest.json"]);
|
|
97
93
|
/** A context path that is some agent CLI's own runtime state, whichever harness recorded it. */
|
|
98
94
|
function isRuntimeState(path) {
|
|
@@ -102,4 +98,4 @@ function isRuntimeState(path) {
|
|
|
102
98
|
//#endregion
|
|
103
99
|
export { isRuntimeState as n, contextTaker as t };
|
|
104
100
|
|
|
105
|
-
//# sourceMappingURL=context-
|
|
101
|
+
//# sourceMappingURL=context-DbSMEVKs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-
|
|
1
|
+
{"version":3,"file":"context-DbSMEVKs.js","names":[],"sources":["../src/attempt/context.ts"],"mappings":";;AAKA,MAAM,qBAAqB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;AAEA,MAAM,gBAAgB;;;;;AAMtB,MAAM,gBAAgB;CACpB,GAAG,mBAAmB,KAAK,MAAM,SAAS,GAAG;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,eAAe,aAAa,KAAc,QAAqD;CAC7F,MAAM,eAAe,YAAY,cAAc,gBAAgB,mBAAmB,KAAK,GAAG,EAAE;CAC5F,MAAM,SAAS,cAAc,cAAc,KAAK,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,wBAAwB,aAAa;CAC/G,MAAM,IAAI,MAAM,IAAI,KAAK,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI;CAC7D,IAAI,GAAG,aAAa,GAAG,OAAO,CAAC;CAC/B,MAAM,QAAQ,MAAM,IAAI,KAAK,uBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,EAAA,EAAI,UAAU;CAC5F,OAAO,EAAE,OACN,MAAM,IAAI,CAAC,CACX,OAAO,OAAO,CAAC,CACf,KAAK,SAAS;EACb,MAAM,CAAC,KAAK,GAAG,QAAQ,KAAK,MAAM,GAAI;EACtC,MAAM,OAAO,KAAK,KAAK,GAAI;EAC3B,OAAO;GACL,MAAM,QAAQ,KAAK,WAAW,GAAG,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,KAAK,MAAM,MAAM;GAC5E,QAAQ,OAAO;EACjB;CACF,CAAC;AACL;;;;;AAMA,SAAgB,aAAa,GAAY;CACvC,IAAI,QAAQ;CACZ,OAAO,OAAO,KAAc,WAAwB;EAClD,IAAI,SAAS,EAAE,KAAK,QAAQ,SAAS,UAAU;EAC/C,QAAQ;EACR,EAAE,OAAO,UAAU,MAAM,aAAa,KAAK,MAAM;CACnD;AACF;AAEA,MAAM,eAAe;AAErB,MAAM,wCAAwB,IAAI,IAAI,CACpC,2BACA,2CACF,CAAC;;AAGD,SAAgB,eAAe,MAAuB;CACpD,IAAI,CAAC,KAAK,WAAW,IAAI,GAAG,OAAO;CACnC,OAAO,sBAAsB,IAAI,KAAK,QAAQ,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5E"}
|
|
@@ -3,9 +3,9 @@ import { n as UsageError } from "./errors-yDAEwmZo.js";
|
|
|
3
3
|
import { d as ownRequire, t as BUILD_ID } from "./root-CvdRlRZX.js";
|
|
4
4
|
import { t as RUN_ID } from "./paths-BmR-7tx3.js";
|
|
5
5
|
import { c as relativeFile, l as sha256 } from "./ids-Bp6ut7ZD.js";
|
|
6
|
-
import { n as isRuntimeState } from "./context-
|
|
7
|
-
import {
|
|
8
|
-
import { m as warnUnreadable, p as scratchDir, s as readRecord, u as recordNames } from "./files-
|
|
6
|
+
import { n as isRuntimeState } from "./context-DbSMEVKs.js";
|
|
7
|
+
import { G as contrastEffort, J as effortOf, lt as wilson, nt as liftInterval, st as round3 } from "./model-BOnlAPzs.js";
|
|
8
|
+
import { m as warnUnreadable, p as scratchDir, s as readRecord, u as recordNames } from "./files-CSzVADHn.js";
|
|
9
9
|
import { dirname, join } from "node:path";
|
|
10
10
|
import { mkdir, readFile, stat } from "node:fs/promises";
|
|
11
11
|
/** A failing verdict this close to its threshold points at the judge, not the agent. */
|
|
@@ -15,9 +15,12 @@ CREATE TABLE effort_m (
|
|
|
15
15
|
run_id TEXT, eval_key TEXT, cell_key TEXT, role TEXT, variant TEXT, harness TEXT,
|
|
16
16
|
environment TEXT, n INTEGER, tools_median REAL, tools_q1 REAL, tools_q3 REAL,
|
|
17
17
|
agent_s_median REAL, agent_s_q1 REAL, agent_s_q3 REAL, file_edits_median REAL,
|
|
18
|
+
tokens_median REAL, tokens_q1 REAL, tokens_q3 REAL,
|
|
18
19
|
control_key TEXT, control_n INTEGER, control_tools_median REAL, control_agent_s_median REAL,
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
control_tokens_median REAL,
|
|
21
|
+
tools_ratio REAL, agent_s_ratio REAL, agent_s_delta REAL, tokens_ratio REAL,
|
|
22
|
+
tools_p REAL, agent_s_p REAL, tokens_p REAL,
|
|
23
|
+
separated INTEGER, verdict TEXT, time_verdict TEXT, tokens_verdict TEXT, tokens_note TEXT
|
|
21
24
|
);
|
|
22
25
|
CREATE TABLE factor_effects_m (
|
|
23
26
|
factor TEXT, level TEXT, baseline TEXT, context TEXT, tier TEXT, run_id TEXT, eval_key TEXT,
|
|
@@ -25,18 +28,38 @@ CREATE TABLE factor_effects_m (
|
|
|
25
28
|
control_pass INTEGER, control_counted INTEGER, points REAL, lo REAL, hi REAL,
|
|
26
29
|
within_noise INTEGER, pass_verdict TEXT, tools_ratio REAL, tools_ratios TEXT,
|
|
27
30
|
agent_s_ratio REAL, tools_p REAL, consistent INTEGER, separated INTEGER, effort_verdict TEXT,
|
|
31
|
+
tokens_ratio REAL, tokens_p REAL, tokens_verdict TEXT, tokens_note TEXT,
|
|
28
32
|
note TEXT
|
|
29
33
|
);
|
|
30
34
|
CREATE TABLE flaky_m (
|
|
31
35
|
eval_key TEXT, cell_key TEXT, fingerprint TEXT, runs INTEGER, flaky_runs INTEGER,
|
|
32
36
|
first_seen TEXT, last_seen TEXT, pass INTEGER, counted INTEGER, infra_error INTEGER,
|
|
33
|
-
|
|
37
|
+
pass_at_1 REAL, lo REAL, hi REAL, verdict TEXT, cause TEXT, min_attempts INTEGER
|
|
34
38
|
);
|
|
35
39
|
CREATE TABLE drift_m (
|
|
36
40
|
run_id TEXT, prev_run_id TEXT, eval_key TEXT, cell_key TEXT, changed TEXT,
|
|
37
41
|
changed_paths TEXT, noise INTEGER, real_changed TEXT
|
|
38
42
|
);
|
|
39
43
|
`;
|
|
44
|
+
const FAMILY_COLUMNS = [
|
|
45
|
+
"run_id",
|
|
46
|
+
"family_id",
|
|
47
|
+
"harness",
|
|
48
|
+
"variant",
|
|
49
|
+
"pairs",
|
|
50
|
+
"points",
|
|
51
|
+
"lo",
|
|
52
|
+
"hi",
|
|
53
|
+
"within_noise",
|
|
54
|
+
"verdict",
|
|
55
|
+
"tools_ratio",
|
|
56
|
+
"tools_p",
|
|
57
|
+
"effort_verdict",
|
|
58
|
+
"agent_s_ratio",
|
|
59
|
+
"tokens_ratio",
|
|
60
|
+
"tokens_p",
|
|
61
|
+
"tokens_verdict"
|
|
62
|
+
];
|
|
40
63
|
const DERIVED = [
|
|
41
64
|
"effort_m",
|
|
42
65
|
"factor_effects_m",
|
|
@@ -76,6 +99,14 @@ function passCols(v, c) {
|
|
|
76
99
|
pass_verdict: Math.min(v.counted, c.counted) < 2 ? "insufficient" : noise ? "noise" : "effect"
|
|
77
100
|
};
|
|
78
101
|
}
|
|
102
|
+
function tokenCols(e) {
|
|
103
|
+
return {
|
|
104
|
+
tokens_ratio: r4(e?.tokensRatio ?? null),
|
|
105
|
+
tokens_p: r4(e?.tokensP ?? null),
|
|
106
|
+
tokens_verdict: e?.tokensVerdict ?? null,
|
|
107
|
+
tokens_note: e?.tokensNote ?? null
|
|
108
|
+
};
|
|
109
|
+
}
|
|
79
110
|
function effortCols(e) {
|
|
80
111
|
return {
|
|
81
112
|
tools_ratio: r4(e?.toolsRatio ?? null),
|
|
@@ -84,7 +115,8 @@ function effortCols(e) {
|
|
|
84
115
|
tools_p: r4(e?.toolsP ?? null),
|
|
85
116
|
consistent: e && (e.verdict === "fewer" || e.verdict === "more") ? 1 : 0,
|
|
86
117
|
separated: e?.separated ? 1 : 0,
|
|
87
|
-
effort_verdict: e?.verdict ?? null
|
|
118
|
+
effort_verdict: e?.verdict ?? null,
|
|
119
|
+
...tokenCols(e)
|
|
88
120
|
};
|
|
89
121
|
}
|
|
90
122
|
/** Across strata: an effect when ≥ 2/3 of them show it in the same direction at p < 0.05. */
|
|
@@ -106,7 +138,36 @@ function pooledEffort(strata) {
|
|
|
106
138
|
tools_p: r4(known.length ? Math.max(...known.map((s) => s.toolsP ?? 1)) : null),
|
|
107
139
|
consistent: verdict === "fewer" || verdict === "more" ? count(verdict) : 0,
|
|
108
140
|
separated: known.filter((s) => s.separated).length,
|
|
109
|
-
effort_verdict: verdict
|
|
141
|
+
effort_verdict: verdict,
|
|
142
|
+
...pooledTokens(known)
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Token verdict over the strata that reported usage. A stratum without token samples is
|
|
147
|
+
* dropped from this pool only — not `insufficient`, and it does not blank tokens on the rest.
|
|
148
|
+
*/
|
|
149
|
+
function pooledTokens(known) {
|
|
150
|
+
const withTokens = known.filter((s) => s.tokensVerdict !== null);
|
|
151
|
+
if (withTokens.length === 0) return {
|
|
152
|
+
tokens_ratio: null,
|
|
153
|
+
tokens_p: null,
|
|
154
|
+
tokens_verdict: null,
|
|
155
|
+
tokens_note: null
|
|
156
|
+
};
|
|
157
|
+
const k = withTokens.length;
|
|
158
|
+
const count = (v) => withTokens.filter((s) => s.tokensVerdict === v).length;
|
|
159
|
+
const needed = Math.ceil(2 * k / 3);
|
|
160
|
+
let verdict = "noise";
|
|
161
|
+
if (count("fewer") >= needed && count("more") === 0) verdict = "fewer";
|
|
162
|
+
else if (count("more") >= needed && count("fewer") === 0) verdict = "more";
|
|
163
|
+
else if (count("insufficient") === k) verdict = "insufficient";
|
|
164
|
+
const sorted = [...withTokens.map((s) => s.tokensRatio).filter((r) => r !== null)].sort((a, b) => a - b);
|
|
165
|
+
const mid = sorted.length ? sorted.length % 2 ? sorted[(sorted.length - 1) / 2] : (sorted[sorted.length / 2 - 1] + sorted[sorted.length / 2]) / 2 : null;
|
|
166
|
+
return {
|
|
167
|
+
tokens_ratio: r4(mid),
|
|
168
|
+
tokens_p: r4(Math.max(...withTokens.map((s) => s.tokensP ?? 1))),
|
|
169
|
+
tokens_verdict: verdict,
|
|
170
|
+
tokens_note: known.some((s) => s.tokensNote) || withTokens.length < known.length ? "some cells did not report usage" : null
|
|
110
171
|
};
|
|
111
172
|
}
|
|
112
173
|
const merge = (sides) => ({
|
|
@@ -124,7 +185,9 @@ function insertAll(db, table, rows) {
|
|
|
124
185
|
function deriveFacts(db) {
|
|
125
186
|
for (const table of DERIVED) db.exec(`DELETE FROM ${table}`);
|
|
126
187
|
const cells = db.prepare("SELECT c.*, r.started_at FROM cells c JOIN runs r USING (run_id) ORDER BY c.run_id, c.rowid").all();
|
|
127
|
-
const attempts = db.prepare(
|
|
188
|
+
const attempts = db.prepare(`SELECT run_id, eval_key, cell_key, key, outcome, error_kind, tools, agent_ms, file_edits,
|
|
189
|
+
input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, reasoning_tokens
|
|
190
|
+
FROM attempts ORDER BY run_id, rowid`).all();
|
|
128
191
|
const nearThreshold = new Set(db.prepare(`SELECT DISTINCT run_id, attempt_key FROM judgements WHERE verdict = 'fail' AND ABS(score - threshold) <= ${JUDGE_MARGIN}`).all().map((r) => `${r.run_id}\0${r.attempt_key}`));
|
|
129
192
|
const samples = /* @__PURE__ */ new Map();
|
|
130
193
|
const byCell = /* @__PURE__ */ new Map();
|
|
@@ -132,10 +195,12 @@ function deriveFacts(db) {
|
|
|
132
195
|
const id = cellId(a.run_id, a.eval_key, a.cell_key);
|
|
133
196
|
byCell.set(id, [...byCell.get(id) ?? [], a]);
|
|
134
197
|
if (a.outcome !== "pass" && a.outcome !== "fail") continue;
|
|
198
|
+
const tokens = a.input_tokens === null ? void 0 : a.input_tokens + (a.output_tokens ?? 0) + (a.cache_read_tokens ?? 0) + (a.cache_write_tokens ?? 0) + (a.reasoning_tokens ?? 0);
|
|
135
199
|
samples.set(id, [...samples.get(id) ?? [], {
|
|
136
200
|
tools: a.tools,
|
|
137
201
|
agentMs: a.agent_ms,
|
|
138
|
-
fileEdits: a.file_edits
|
|
202
|
+
fileEdits: a.file_edits,
|
|
203
|
+
...tokens !== void 0 ? { tokens } : {}
|
|
139
204
|
}]);
|
|
140
205
|
}
|
|
141
206
|
const side = (c) => ({
|
|
@@ -164,18 +229,26 @@ function deriveFacts(db) {
|
|
|
164
229
|
agent_s_q1: own ? s1(own.agentMs.q1) : null,
|
|
165
230
|
agent_s_q3: own ? s1(own.agentMs.q3) : null,
|
|
166
231
|
file_edits_median: own?.fileEdits ?? null,
|
|
232
|
+
tokens_median: own?.tokens?.median ?? null,
|
|
233
|
+
tokens_q1: own?.tokens?.q1 ?? null,
|
|
234
|
+
tokens_q3: own?.tokens?.q3 ?? null,
|
|
167
235
|
control_key: control?.key ?? null,
|
|
168
236
|
control_n: vs?.control.n ?? null,
|
|
169
237
|
control_tools_median: vs?.control.tools.median ?? null,
|
|
170
238
|
control_agent_s_median: vs ? s1(vs.control.agentMs.median) : null,
|
|
239
|
+
control_tokens_median: vs?.control.tokens?.median ?? null,
|
|
171
240
|
tools_ratio: r4(vs?.toolsRatio ?? null),
|
|
172
241
|
agent_s_ratio: r4(vs?.agentMsRatio ?? null),
|
|
173
242
|
agent_s_delta: vs ? s1(vs.agentMsDelta) : null,
|
|
243
|
+
tokens_ratio: r4(vs?.tokensRatio ?? null),
|
|
174
244
|
tools_p: r4(vs?.toolsP ?? null),
|
|
175
245
|
agent_s_p: r4(vs?.agentMsP ?? null),
|
|
246
|
+
tokens_p: r4(vs?.tokensP ?? null),
|
|
176
247
|
separated: vs ? vs.separated ? 1 : 0 : null,
|
|
177
248
|
verdict: vs?.verdict ?? null,
|
|
178
|
-
time_verdict: vs?.timeVerdict ?? null
|
|
249
|
+
time_verdict: vs?.timeVerdict ?? null,
|
|
250
|
+
tokens_verdict: vs?.tokensVerdict ?? null,
|
|
251
|
+
tokens_note: vs?.tokensNote ?? null
|
|
179
252
|
};
|
|
180
253
|
}));
|
|
181
254
|
const pairs = [];
|
|
@@ -276,15 +349,20 @@ function deriveFacts(db) {
|
|
|
276
349
|
first.context
|
|
277
350
|
].join("\0");
|
|
278
351
|
strata.set(id, [...strata.get(id) ?? [], {
|
|
352
|
+
evalKey: first.evalKey,
|
|
353
|
+
pool: first.pool,
|
|
279
354
|
v,
|
|
280
355
|
c
|
|
281
356
|
}]);
|
|
282
357
|
}
|
|
283
358
|
for (const [id, list] of strata) {
|
|
284
|
-
|
|
359
|
+
const poolsByEval = /* @__PURE__ */ new Map();
|
|
360
|
+
for (const s of list) poolsByEval.set(s.evalKey, /* @__PURE__ */ new Set([...poolsByEval.get(s.evalKey) ?? [], s.pool]));
|
|
361
|
+
const comparable = list.filter((s) => (poolsByEval.get(s.evalKey)?.size ?? 0) === 1);
|
|
362
|
+
if (new Set(comparable.map((s) => s.evalKey)).size < 2) continue;
|
|
285
363
|
const [factor, level, baseline, context] = id.split("\0");
|
|
286
|
-
const v = merge(
|
|
287
|
-
const c = merge(
|
|
364
|
+
const v = merge(comparable.map((s) => s.v));
|
|
365
|
+
const c = merge(comparable.map((s) => s.c));
|
|
288
366
|
factorRows.push({
|
|
289
367
|
...head({
|
|
290
368
|
factor,
|
|
@@ -295,13 +373,38 @@ function deriveFacts(db) {
|
|
|
295
373
|
tier: "pooled",
|
|
296
374
|
run_id: null,
|
|
297
375
|
eval_key: null,
|
|
298
|
-
strata:
|
|
376
|
+
strata: comparable.length,
|
|
299
377
|
runs: null,
|
|
300
378
|
...passCols(v, c),
|
|
301
|
-
...pooledEffort(
|
|
302
|
-
note: "pass
|
|
379
|
+
...pooledEffort(comparable.map((s) => contrastEffort(s.v.samples, s.c.samples))),
|
|
380
|
+
note: "pass@1: summed counts; effort: an effect in at least 2/3 of strata"
|
|
303
381
|
});
|
|
304
382
|
}
|
|
383
|
+
const familyLifts = db.prepare(`SELECT ${FAMILY_COLUMNS.join(", ")} FROM family_lift_m`).all();
|
|
384
|
+
for (const f of familyLifts) factorRows.push({
|
|
385
|
+
factor: "environment",
|
|
386
|
+
level: f.variant,
|
|
387
|
+
baseline: "control",
|
|
388
|
+
context: f.harness,
|
|
389
|
+
tier: "paired",
|
|
390
|
+
run_id: f.run_id,
|
|
391
|
+
eval_key: f.family_id,
|
|
392
|
+
strata: f.pairs,
|
|
393
|
+
runs: 1,
|
|
394
|
+
points: f.points,
|
|
395
|
+
lo: f.lo,
|
|
396
|
+
hi: f.hi,
|
|
397
|
+
within_noise: f.within_noise,
|
|
398
|
+
pass_verdict: f.verdict === "insufficient" ? "insufficient" : f.within_noise ? "noise" : "effect",
|
|
399
|
+
tools_ratio: f.tools_ratio,
|
|
400
|
+
agent_s_ratio: f.agent_s_ratio,
|
|
401
|
+
tools_p: f.tools_p,
|
|
402
|
+
effort_verdict: f.effort_verdict,
|
|
403
|
+
tokens_ratio: f.tokens_ratio,
|
|
404
|
+
tokens_p: f.tokens_p,
|
|
405
|
+
tokens_verdict: f.tokens_verdict,
|
|
406
|
+
note: "paired by case over a pooled evaluate.each: strata is the paired cases"
|
|
407
|
+
});
|
|
305
408
|
const driftRows = [];
|
|
306
409
|
const series = /* @__PURE__ */ new Map();
|
|
307
410
|
for (const c of cells) {
|
|
@@ -407,7 +510,7 @@ function deriveFacts(db) {
|
|
|
407
510
|
pass,
|
|
408
511
|
counted: pass + fail,
|
|
409
512
|
infra_error: infra,
|
|
410
|
-
|
|
513
|
+
pass_at_1: round3(pass / (pass + fail)),
|
|
411
514
|
lo: round3(w.low),
|
|
412
515
|
hi: round3(w.high),
|
|
413
516
|
verdict: pass + fail >= 6 ? "flaky" : "insufficient",
|
|
@@ -421,7 +524,7 @@ function deriveFacts(db) {
|
|
|
421
524
|
//#endregion
|
|
422
525
|
//#region src/history/db.ts
|
|
423
526
|
/** Bump when the tables or views change: a database from another version is rebuilt. */
|
|
424
|
-
const DB_VERSION =
|
|
527
|
+
const DB_VERSION = 9;
|
|
425
528
|
/** This build of reeval, like the header cache: another reeval re-derives every row. */
|
|
426
529
|
const BUILD = BUILD_ID;
|
|
427
530
|
const historyDbPath = (root) => join(root, ".reeval", "history.db");
|
|
@@ -459,16 +562,33 @@ CREATE TABLE runs (
|
|
|
459
562
|
);
|
|
460
563
|
CREATE TABLE evals (
|
|
461
564
|
run_id TEXT NOT NULL, key TEXT NOT NULL, id TEXT, slug TEXT, file TEXT, groups TEXT, name TEXT,
|
|
462
|
-
tags TEXT, fingerprint TEXT, outcome TEXT,
|
|
565
|
+
tags TEXT, fingerprint TEXT, outcome TEXT, pass_at_1 REAL, sources TEXT, family_id TEXT,
|
|
566
|
+
case_index INTEGER,
|
|
463
567
|
PRIMARY KEY (run_id, key)
|
|
464
568
|
);
|
|
569
|
+
-- Each pooled evaluate.each per run: its cases, and each cell's pass rate over them.
|
|
570
|
+
CREATE TABLE families (
|
|
571
|
+
run_id TEXT NOT NULL, family_id TEXT NOT NULL, file TEXT, groups TEXT, name TEXT,
|
|
572
|
+
cases INTEGER, ran INTEGER, cell_key TEXT NOT NULL, cell_cases INTEGER, pass INTEGER,
|
|
573
|
+
counted INTEGER, pass_rate REAL, lo REAL, hi REAL, method TEXT, outcome TEXT,
|
|
574
|
+
PRIMARY KEY (run_id, family_id, cell_key)
|
|
575
|
+
);
|
|
576
|
+
CREATE TABLE family_lift_m (
|
|
577
|
+
run_id TEXT NOT NULL, family_id TEXT NOT NULL, name TEXT, harness TEXT, variant TEXT,
|
|
578
|
+
cell_key TEXT, control TEXT,
|
|
579
|
+
pairs INTEGER, variant_rate REAL, control_rate REAL, discordant_vc INTEGER,
|
|
580
|
+
discordant_cv INTEGER, points REAL, lo REAL, hi REAL, method TEXT, p REAL,
|
|
581
|
+
within_noise INTEGER, verdict TEXT, min_lift REAL, outcome TEXT, tools_ratio REAL,
|
|
582
|
+
tools_p REAL, effort_verdict TEXT, agent_s_ratio REAL, agent_s_p REAL, time_verdict TEXT,
|
|
583
|
+
tokens_ratio REAL, tokens_p REAL, tokens_verdict TEXT
|
|
584
|
+
);
|
|
465
585
|
CREATE TABLE cells (
|
|
466
586
|
run_id TEXT NOT NULL, eval_key TEXT NOT NULL, key TEXT NOT NULL, role TEXT, variant TEXT,
|
|
467
|
-
harness TEXT, harness_kind TEXT, model TEXT,
|
|
468
|
-
sandbox TEXT, gate TEXT, gate_pass_rate REAL, fingerprint TEXT,
|
|
469
|
-
fp_harness TEXT, fp_environment TEXT, fp_image TEXT, fp_agent_cli TEXT,
|
|
470
|
-
fp_context TEXT, runs INTEGER, pass INTEGER, fail INTEGER, infra_error INTEGER,
|
|
471
|
-
skipped INTEGER,
|
|
587
|
+
harness TEXT, harness_kind TEXT, model TEXT, reasoning_effort TEXT, environment TEXT,
|
|
588
|
+
environment_digest TEXT, sandbox TEXT, gate TEXT, gate_pass_rate REAL, fingerprint TEXT,
|
|
589
|
+
fp_sources TEXT, fp_harness TEXT, fp_environment TEXT, fp_image TEXT, fp_agent_cli TEXT,
|
|
590
|
+
fp_judge TEXT, fp_context TEXT, runs INTEGER, pass INTEGER, fail INTEGER, infra_error INTEGER,
|
|
591
|
+
skipped INTEGER, pass_at_1 REAL, outcome TEXT, lift_vs TEXT, lift_points REAL, lift_lo REAL,
|
|
472
592
|
lift_hi REAL, within_noise INTEGER, min_lift REAL, comparable TEXT,
|
|
473
593
|
PRIMARY KEY (run_id, eval_key, key)
|
|
474
594
|
);
|
|
@@ -478,7 +598,8 @@ CREATE TABLE attempts (
|
|
|
478
598
|
error_message TEXT, duration_ms INTEGER, image_id TEXT, turns INTEGER, tools INTEGER,
|
|
479
599
|
file_edits INTEGER, setup_ms INTEGER, agent_ms INTEGER, checks_ms INTEGER, judge_ms INTEGER,
|
|
480
600
|
last_text TEXT, input_tokens INTEGER, output_tokens INTEGER, cache_read_tokens INTEGER,
|
|
481
|
-
cache_write_tokens INTEGER, reasoning_tokens INTEGER, served_model TEXT,
|
|
601
|
+
cache_write_tokens INTEGER, reasoning_tokens INTEGER, served_model TEXT, oom_kills INTEGER,
|
|
602
|
+
reasoning_effort TEXT, served_reasoning_effort TEXT,
|
|
482
603
|
PRIMARY KEY (run_id, key)
|
|
483
604
|
);
|
|
484
605
|
CREATE TABLE judgements (
|
|
@@ -507,7 +628,20 @@ CREATE TABLE tool_calls (
|
|
|
507
628
|
run_id TEXT NOT NULL, attempt_key TEXT NOT NULL, line INTEGER NOT NULL, turn INTEGER,
|
|
508
629
|
tool TEXT, target TEXT, ok INTEGER, duration_ms INTEGER
|
|
509
630
|
);
|
|
631
|
+
-- Every expect / expect.soft matcher call each attempt made, in call order (seq from 1).
|
|
632
|
+
CREATE TABLE assertions (
|
|
633
|
+
run_id TEXT NOT NULL, attempt_key TEXT NOT NULL, eval_key TEXT NOT NULL, cell_key TEXT NOT NULL,
|
|
634
|
+
seq INTEGER NOT NULL, label TEXT NOT NULL, labelled INTEGER, matcher TEXT, status TEXT,
|
|
635
|
+
soft INTEGER, message TEXT, duration_ms INTEGER
|
|
636
|
+
);
|
|
637
|
+
-- Each check (assertion label) per cell over its counted attempts; on a variant, its control's too.
|
|
638
|
+
CREATE TABLE cell_checks (
|
|
639
|
+
run_id TEXT NOT NULL, eval_key TEXT NOT NULL, cell_key TEXT NOT NULL, label TEXT NOT NULL,
|
|
640
|
+
pass INTEGER, fail INTEGER, error INTEGER, not_run INTEGER, control_pass INTEGER,
|
|
641
|
+
control_fail INTEGER, control_error INTEGER, control_not_run INTEGER, verdict TEXT
|
|
642
|
+
);
|
|
510
643
|
${DERIVED_TABLES}
|
|
644
|
+
CREATE INDEX assertions_by_attempt ON assertions (run_id, attempt_key);
|
|
511
645
|
CREATE INDEX cells_by_eval ON cells (eval_key, key);
|
|
512
646
|
CREATE INDEX tool_calls_by_attempt ON tool_calls (run_id, attempt_key);
|
|
513
647
|
CREATE INDEX context_by_attempt ON attempt_context (run_id, attempt_key);
|
|
@@ -520,12 +654,18 @@ const VIEWS = `
|
|
|
520
654
|
CREATE VIEW lift AS
|
|
521
655
|
SELECT c.run_id, r.started_at, r.branch, c.eval_key, c.harness, c.model, c.variant,
|
|
522
656
|
c.lift_vs AS control, c.pass AS variant_pass, c.pass + c.fail AS variant_counted,
|
|
523
|
-
k.pass AS control_pass, k.pass + k.fail AS control_counted, c.
|
|
657
|
+
k.pass AS control_pass, k.pass + k.fail AS control_counted, c.pass_at_1 AS variant_pass_at_1,
|
|
658
|
+
k.pass_at_1 AS control_pass_at_1, c.lift_points AS points,
|
|
524
659
|
c.lift_lo AS lo, c.lift_hi AS hi, c.within_noise, c.min_lift, c.outcome, c.fingerprint
|
|
525
660
|
FROM cells c JOIN runs r USING (run_id)
|
|
526
661
|
JOIN cells k ON k.run_id = c.run_id AND k.eval_key = c.eval_key AND k.key = c.lift_vs
|
|
527
662
|
WHERE c.role = 'variant';
|
|
528
663
|
|
|
664
|
+
-- Each variant against its control over a pooled evaluate.each's cases, paired by case, per run.
|
|
665
|
+
CREATE VIEW family_lift AS
|
|
666
|
+
SELECT f.*, r.started_at, r.branch
|
|
667
|
+
FROM family_lift_m f JOIN runs r USING (run_id);
|
|
668
|
+
|
|
529
669
|
-- Cells with mixed outcomes, pooled over runs whose fingerprints match once agent runtime state is
|
|
530
670
|
-- left out; 'flaky' needs FLAKY_MIN_ATTEMPTS counted attempts, else 'insufficient'.
|
|
531
671
|
CREATE VIEW flaky_cells AS SELECT * FROM flaky_m;
|
|
@@ -534,7 +674,7 @@ CREATE VIEW flaky_cells AS SELECT * FROM flaky_m;
|
|
|
534
674
|
-- paths, and noise = 1 when only agent runtime state changed (not a real change).
|
|
535
675
|
CREATE VIEW drift AS SELECT * FROM drift_m;
|
|
536
676
|
|
|
537
|
-
-- Tool calls
|
|
677
|
+
-- Tool calls, agent time and tokens per cell, and a variant's against its control in the same run.
|
|
538
678
|
CREATE VIEW effort AS SELECT * FROM effort_m;
|
|
539
679
|
|
|
540
680
|
-- What a factor (environment, harness, model) did, by evidence tier: controlled (one run),
|
|
@@ -557,19 +697,32 @@ CREATE VIEW skill_reads AS
|
|
|
557
697
|
JOIN cells c ON c.run_id = a.run_id AND c.eval_key = a.eval_key AND c.key = a.cell_key
|
|
558
698
|
JOIN env_skills s ON s.run_id = c.run_id AND s.digest = c.environment_digest;
|
|
559
699
|
|
|
560
|
-
-- Failed attempts with the cell's harness, model
|
|
700
|
+
-- Failed attempts and infra errors (an OOM kill among them) with the cell's harness, model, each
|
|
701
|
+
-- of its environment's skills and the label of the first check that failed.
|
|
561
702
|
CREATE VIEW failing_attempts AS
|
|
562
703
|
SELECT a.run_id, r.started_at, a.eval_key, a.key AS attempt_key, a.cell_key, c.harness,
|
|
563
|
-
c.model, c.environment, s.name AS skill, a.
|
|
704
|
+
c.model, c.environment, s.name AS skill, a.outcome, a.error_kind, a.error_message,
|
|
705
|
+
a.duration_ms, a.oom_kills,
|
|
706
|
+
(SELECT x.label FROM assertions x WHERE x.run_id = a.run_id AND x.attempt_key = a.key
|
|
707
|
+
AND x.status = 'fail' ORDER BY x.seq LIMIT 1) AS first_failed_check
|
|
564
708
|
FROM attempts a JOIN runs r USING (run_id)
|
|
565
709
|
JOIN cells c ON c.run_id = a.run_id AND c.eval_key = a.eval_key AND c.key = a.cell_key
|
|
566
710
|
LEFT JOIN env_skills s ON s.run_id = c.run_id AND s.digest = c.environment_digest
|
|
567
|
-
WHERE a.outcome
|
|
711
|
+
WHERE a.outcome IN ('fail', 'infra_error');
|
|
568
712
|
|
|
569
|
-
--
|
|
713
|
+
-- Each check of a variant cell beside its control's: whether it tells them apart.
|
|
714
|
+
CREATE VIEW check_discrimination AS
|
|
715
|
+
SELECT k.run_id, k.eval_key, c.harness, c.variant, c.key AS cell_key, k.label,
|
|
716
|
+
k.pass AS variant_pass, k.fail AS variant_fail, k.not_run AS variant_not_run,
|
|
717
|
+
k.control_pass, k.control_fail, k.control_not_run, k.verdict
|
|
718
|
+
FROM cell_checks k
|
|
719
|
+
JOIN cells c ON c.run_id = k.run_id AND c.eval_key = k.eval_key AND c.key = k.cell_key
|
|
720
|
+
WHERE c.role = 'variant' AND k.verdict IS NOT NULL;
|
|
721
|
+
|
|
722
|
+
-- One eval per run: outcome and pass@1, with the branch and pull request.
|
|
570
723
|
CREATE VIEW eval_trend AS
|
|
571
724
|
SELECT e.eval_key, r.run_id, r.started_at, r.branch, r.pr_number, r.recorded, e.outcome,
|
|
572
|
-
e.
|
|
725
|
+
e.pass_at_1, e.fingerprint
|
|
573
726
|
FROM (SELECT key AS eval_key, * FROM evals) e JOIN runs r USING (run_id);
|
|
574
727
|
|
|
575
728
|
-- Each judge question's pass rate per cell per run, where it differs from that cell's last run.
|
|
@@ -589,6 +742,7 @@ CREATE VIEW verdict_flips AS
|
|
|
589
742
|
`;
|
|
590
743
|
const VIEW_NAMES = [
|
|
591
744
|
"lift",
|
|
745
|
+
"family_lift",
|
|
592
746
|
"effort",
|
|
593
747
|
"factor_effects",
|
|
594
748
|
"skill_reads",
|
|
@@ -596,7 +750,8 @@ const VIEW_NAMES = [
|
|
|
596
750
|
"drift",
|
|
597
751
|
"failing_attempts",
|
|
598
752
|
"eval_trend",
|
|
599
|
-
"verdict_flips"
|
|
753
|
+
"verdict_flips",
|
|
754
|
+
"check_discrimination"
|
|
600
755
|
];
|
|
601
756
|
const json = (value) => JSON.stringify(value);
|
|
602
757
|
/** `attempts.last_text` is the agent's final message, capped: most "why" questions start there. */
|
|
@@ -649,14 +804,16 @@ function insertRun(db, record, recorded, transcripts) {
|
|
|
649
804
|
for (const s of env.skills) run("INSERT INTO env_skills VALUES (?, ?, ?, ?, ?, ?, ?)", record.runId, env.digest, s.name, s.source, s.commit, s.sha256, s.placement);
|
|
650
805
|
}
|
|
651
806
|
for (const e of record.evals) {
|
|
652
|
-
run(`INSERT INTO evals VALUES (${Array(
|
|
807
|
+
run(`INSERT INTO evals VALUES (${Array(14).fill("?").join(", ")})`, record.runId, e.key, e.id, e.slug, e.file, json(e.group), e.name, json(e.tags), e.fingerprint, e.outcome, e.passRate, json(e.sources), e.family?.id ?? null, e.family?.case ?? null);
|
|
653
808
|
for (const c of e.cells) {
|
|
654
809
|
const p = c.fingerprintParts;
|
|
655
|
-
run(`INSERT INTO cells VALUES (${Array(
|
|
810
|
+
run(`INSERT INTO cells VALUES (${Array(36).fill("?").join(", ")})`, record.runId, e.key, c.key, c.role, c.variant ?? null, c.harness, c.harnessKind, c.model, c.effort ?? null, c.environment, c.environmentDigest, c.sandbox, typeof c.gate === "string" ? c.gate : "passRate", typeof c.gate === "string" ? null : c.gate.passRate, c.fingerprint, p.sources, p.harness, p.environment, p.image, p.agentCli, p.judge, p.context, c.runs, c.pass, c.fail, c.infraError, c.skipped, c.passRate, c.outcome, c.lift?.vs ?? null, c.lift?.points ?? null, c.lift?.interval.lo ?? null, c.lift?.interval.hi ?? null, c.lift ? c.lift.withinNoise ? 1 : 0 : null, c.lift?.minLift ?? null, comparableFingerprint(c, e.attempts));
|
|
811
|
+
for (const k of c.checks ?? []) run(`INSERT INTO cell_checks VALUES (${Array(13).fill("?").join(", ")})`, record.runId, e.key, c.key, k.label, k.pass, k.fail, k.error, k.notRun, k.control?.pass ?? null, k.control?.fail ?? null, k.control?.error ?? null, k.control?.notRun ?? null, k.verdict ?? null);
|
|
656
812
|
}
|
|
657
813
|
for (const a of e.attempts) {
|
|
658
|
-
run(`INSERT INTO attempts VALUES (${Array(
|
|
814
|
+
run(`INSERT INTO attempts VALUES (${Array(30).fill("?").join(", ")})`, record.runId, e.key, a.cell, a.key, a.id, a.n, a.seq, a.startedAt, a.outcome, a.error?.kind ?? null, a.error?.message ?? null, a.durationMs, a.imageId, a.turns.length, a.activity.tools, a.activity.fileEdits, a.timings.setupMs, a.timings.agentMs, a.timings.checksMs, a.timings.judgeMs, a.turns.at(-1)?.text.slice(0, 2048) ?? null, a.usage?.input ?? null, a.usage?.output ?? null, a.usage?.cacheRead ?? null, a.usage?.cacheWrite ?? null, a.usage?.reasoning ?? null, a.turns.findLast((t) => t.model)?.model ?? null, a.error?.resource?.cause === "oom" ? a.error.resource.kills : 0, a.effort ?? null, a.servedEffort ?? null);
|
|
659
815
|
for (const c of a.context) run("INSERT INTO attempt_context VALUES (?, ?, ?, ?, ?)", record.runId, a.key, c.path, c.sha256, isRuntimeState(c.path) ? 1 : 0);
|
|
816
|
+
for (const [i, x] of (a.assertions ?? []).entries()) run(`INSERT INTO assertions VALUES (${Array(12).fill("?").join(", ")})`, record.runId, a.key, e.key, a.cell, i + 1, x.label, x.labelled ? 1 : 0, x.matcher, x.status, x.soft ? 1 : 0, x.message ?? null, x.durationMs ?? null);
|
|
660
817
|
const transcript = transcripts.get(a.key);
|
|
661
818
|
for (const t of transcript ? toolCalls(transcript) : []) run("INSERT INTO tool_calls VALUES (?, ?, ?, ?, ?, ?, ?, ?)", record.runId, a.key, t.line, t.turn, t.tool, t.target, t.ok ? 1 : 0, t.durationMs);
|
|
662
819
|
for (const j of a.judgements) run("INSERT OR IGNORE INTO judgements VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", record.runId, a.key, j.key, j.question, j.verdict, j.score, j.threshold, j.model, j.resolvedModel ?? null, a.files.judgeInput?.path ?? null);
|
|
@@ -670,10 +827,20 @@ function insertRun(db, record, recorded, transcripts) {
|
|
|
670
827
|
});
|
|
671
828
|
}
|
|
672
829
|
}
|
|
830
|
+
for (const f of record.families ?? []) {
|
|
831
|
+
for (const r of f.rates) run(`INSERT INTO families VALUES (${Array(16).fill("?").join(", ")})`, record.runId, f.id, f.file, json(f.group), f.name, f.cases, f.ran, r.cell, r.cases, r.pass, r.counted, r.rate, r.interval.lo, r.interval.hi, r.interval.method, f.outcome);
|
|
832
|
+
for (const l of f.lifts) {
|
|
833
|
+
const e = l.effort;
|
|
834
|
+
const cell = record.evals.find((x) => x.family?.id === f.id && x.cells.some((c) => c.key === l.variant))?.cells.find((c) => c.key === l.variant);
|
|
835
|
+
run(`INSERT INTO family_lift_m VALUES (${Array(30).fill("?").join(", ")})`, record.runId, f.id, f.name, cell?.harness ?? null, cell?.variant ?? cell?.environment ?? null, l.variant, l.vs, l.pairs, l.variantRate, l.controlRate, l.discordant?.variantOnly ?? null, l.discordant?.controlOnly ?? null, l.points, l.interval.lo, l.interval.hi, l.interval.method, l.p, l.withinNoise ? 1 : 0, l.verdict, l.minLift ?? null, l.outcome, e?.tools.ratio ?? null, e?.tools.p ?? null, e?.tools.verdict ?? null, e?.agentMs.ratio ?? null, e?.agentMs.p ?? null, e?.agentMs.verdict ?? null, e?.tokens?.ratio ?? null, e?.tokens?.p ?? null, e?.tokens?.verdict ?? null);
|
|
836
|
+
}
|
|
837
|
+
}
|
|
673
838
|
}
|
|
674
839
|
const DATA_TABLES = [
|
|
675
840
|
"runs",
|
|
676
841
|
"evals",
|
|
842
|
+
"families",
|
|
843
|
+
"family_lift_m",
|
|
677
844
|
"cells",
|
|
678
845
|
"attempts",
|
|
679
846
|
"judgements",
|
|
@@ -681,7 +848,9 @@ const DATA_TABLES = [
|
|
|
681
848
|
"env_skills",
|
|
682
849
|
"artifacts",
|
|
683
850
|
"attempt_context",
|
|
684
|
-
"tool_calls"
|
|
851
|
+
"tool_calls",
|
|
852
|
+
"assertions",
|
|
853
|
+
"cell_checks"
|
|
685
854
|
];
|
|
686
855
|
function removeRun(db, runId) {
|
|
687
856
|
for (const table of DATA_TABLES) db.prepare(`DELETE FROM ${table} WHERE run_id = ?`).run(runId);
|
|
@@ -804,7 +973,7 @@ async function openHistoryDb(root, historyDir, options = {}) {
|
|
|
804
973
|
}
|
|
805
974
|
},
|
|
806
975
|
schema() {
|
|
807
|
-
return db.prepare(`SELECT name, type FROM sqlite_schema WHERE type IN ('table', 'view') AND name NOT IN ('meta', 'files', ${DERIVED.map((d) => `'${d}'`).join(", ")}) AND name NOT LIKE 'sqlite_%' ORDER BY type, name`).all().map((o) => ({
|
|
976
|
+
return db.prepare(`SELECT name, type FROM sqlite_schema WHERE type IN ('table', 'view') AND name NOT IN ('meta', 'files', 'family_lift_m', ${DERIVED.map((d) => `'${d}'`).join(", ")}) AND name NOT LIKE 'sqlite_%' ORDER BY type, name`).all().map((o) => ({
|
|
808
977
|
...o,
|
|
809
978
|
columns: db.prepare(`PRAGMA table_info("${o.name}")`).all().map((c) => c.name)
|
|
810
979
|
}));
|
|
@@ -815,4 +984,4 @@ async function openHistoryDb(root, historyDir, options = {}) {
|
|
|
815
984
|
//#endregion
|
|
816
985
|
export { historyDbPath as a, toolCalls as c, comparableFingerprint as i, SQLITE_NODE as n, nodeAtLeast as o, VIEW_NAMES as r, openHistoryDb as s, LAST_TEXT_LIMIT as t };
|
|
817
986
|
|
|
818
|
-
//# sourceMappingURL=db-
|
|
987
|
+
//# sourceMappingURL=db-CfQFwJtq.js.map
|