reeval 0.10.0 → 0.11.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.
Files changed (211) hide show
  1. package/README.md +62 -39
  2. package/THIRD_PARTY_NOTICES.md +75 -106
  3. package/dist/{adapter-DWlpOtRn.js → adapter-Bwy3QxAK.js} +2 -2
  4. package/dist/{adapter-DWlpOtRn.js.map → adapter-Bwy3QxAK.js.map} +1 -1
  5. package/dist/{agent-CURAwx_q.js → agent-D483ru7D.js} +5 -5
  6. package/dist/{agent-CURAwx_q.js.map → agent-D483ru7D.js.map} +1 -1
  7. package/dist/{agent-CaS_2Sce.js → agent-DpE80WPz.js} +4 -4
  8. package/dist/{agent-CaS_2Sce.js.map → agent-DpE80WPz.js.map} +1 -1
  9. package/dist/assemble-D5KGrwnJ.js +1 -0
  10. package/dist/{assemble-B9Alds-z.js → assemble-D9GWr-HS.js} +8 -8
  11. package/dist/{assemble-B9Alds-z.js.map → assemble-D9GWr-HS.js.map} +1 -1
  12. package/dist/bridge/index.mjs +13 -6
  13. package/dist/{capture-CNb9SuU5.js → capture-BQlGHiMC.js} +5 -5
  14. package/dist/{capture-CNb9SuU5.js.map → capture-BQlGHiMC.js.map} +1 -1
  15. package/dist/capture-CYGLpWxR.js +1 -0
  16. package/dist/{cli-D303Vj5N.js → cli-ClpPT8kn.js} +166 -492
  17. package/dist/cli-ClpPT8kn.js.map +1 -0
  18. package/dist/{cli-spec-BPZbQG2p.js → cli-spec-qmEnQ25_.js} +15 -6
  19. package/dist/cli-spec-qmEnQ25_.js.map +1 -0
  20. package/dist/cli.js +2 -2
  21. package/dist/{command-Bge8F7Ko.js → command-Bj39y-Wm.js} +33 -24
  22. package/dist/command-Bj39y-Wm.js.map +1 -0
  23. package/dist/{command-CMJtHKRa.js → command-BlM0y8jN.js} +6 -6
  24. package/dist/{command-CMJtHKRa.js.map → command-BlM0y8jN.js.map} +1 -1
  25. package/dist/command-C-cVjlny.js +1 -0
  26. package/dist/{command-BLfT7vnQ.js → command-DbAe1Rzb.js} +10 -11
  27. package/dist/command-DbAe1Rzb.js.map +1 -0
  28. package/dist/{command-BT9a37ZR.js → command-TgbzPizb.js} +15 -13
  29. package/dist/command-TgbzPizb.js.map +1 -0
  30. package/dist/{commands-1p-bIWhN.js → commands-CthqwkAn.js} +1 -1
  31. package/dist/{commands-BFx16WB8.js → commands-YUwlyTbr.js} +12 -9
  32. package/dist/commands-YUwlyTbr.js.map +1 -0
  33. package/dist/{config-DEgnUiU-.js → config-DrVSEVN0.js} +29 -11
  34. package/dist/config-DrVSEVN0.js.map +1 -0
  35. package/dist/contrasts-5zsj32gk.js +101 -0
  36. package/dist/contrasts-5zsj32gk.js.map +1 -0
  37. package/dist/db-CKg5NtiW.js +2 -0
  38. package/dist/{db-CdHizc4_.js → db-DfhipHEF.js} +17 -7
  39. package/dist/{db-CdHizc4_.js.map → db-DfhipHEF.js.map} +1 -1
  40. package/dist/{dist-B8hJImYt.js → dist-CuY4ehEk.js} +81 -14
  41. package/dist/dist-CuY4ehEk.js.map +1 -0
  42. package/dist/{docker-7b_2SaH7.js → docker-D1HZDS6q.js} +4 -4
  43. package/dist/{docker-7b_2SaH7.js.map → docker-D1HZDS6q.js.map} +1 -1
  44. package/dist/{docker-yauK-9X8.js → docker-DNmMPOBb.js} +1 -1
  45. package/dist/{docker-sZrNrr82.js → docker-DOvjji9I.js} +2 -2
  46. package/dist/{docker-sZrNrr82.js.map → docker-DOvjji9I.js.map} +1 -1
  47. package/dist/{doctor-BYNok4UO.js → doctor-D2MbNO8L.js} +14 -15
  48. package/dist/doctor-D2MbNO8L.js.map +1 -0
  49. package/dist/{egress-C4PZTSSe.js → egress-2-qzPvGi.js} +12 -13
  50. package/dist/egress-2-qzPvGi.js.map +1 -0
  51. package/dist/{environment-DNjRk0nU.js → environment-Cca6a4wB.js} +2 -3
  52. package/dist/environment-Cca6a4wB.js.map +1 -0
  53. package/dist/{evaluate-D4zeRGBF.js → evaluate-DKIl54Hb.js} +14 -17
  54. package/dist/evaluate-DKIl54Hb.js.map +1 -0
  55. package/dist/{evaluate-C1UVL21l.d.ts → evaluate-DMyaGQEj.d.ts} +2 -2
  56. package/dist/{files-DQmHE7pb.js → files-BXHZFWmx.js} +2 -2
  57. package/dist/{files-DQmHE7pb.js.map → files-BXHZFWmx.js.map} +1 -1
  58. package/dist/{files-BXUdY8tr.js → files-BpUYBwGu.js} +5 -5
  59. package/dist/{files-BXUdY8tr.js.map → files-BpUYBwGu.js.map} +1 -1
  60. package/dist/files-Bw8lWEjg.js +1 -0
  61. package/dist/files-D6J0iSdx.js +1 -0
  62. package/dist/{git-DfG-YJ1u.js → git-Crl3b87o.js} +2 -2
  63. package/dist/{git-DfG-YJ1u.js.map → git-Crl3b87o.js.map} +1 -1
  64. package/dist/{harness-B8QC9u0O.js → harness-CEuntrla.js} +2 -2
  65. package/dist/{harness-B8QC9u0O.js.map → harness-CEuntrla.js.map} +1 -1
  66. package/dist/harness.d.ts +1 -1
  67. package/dist/harness.js +1 -1
  68. package/dist/{header-hK-Z_Po9.js → header-DHQv_ZrF.js} +2 -2
  69. package/dist/{header-hK-Z_Po9.js.map → header-DHQv_ZrF.js.map} +1 -1
  70. package/dist/{images-0On0cztu.js → images-Bi3aGxb9.js} +6 -6
  71. package/dist/{images-0On0cztu.js.map → images-Bi3aGxb9.js.map} +1 -1
  72. package/dist/index.d.ts +2 -2
  73. package/dist/index.js +4 -4
  74. package/dist/{init-B77Rpcqc.js → init-Cl3f3NBT.js} +4 -4
  75. package/dist/{init-B77Rpcqc.js.map → init-Cl3f3NBT.js.map} +1 -1
  76. package/dist/init-fhOXED8F.js +1 -0
  77. package/dist/{invocations-DbGfBAA_.js → invocations-BYDPe3fV.js} +2 -2
  78. package/dist/{invocations-DbGfBAA_.js.map → invocations-BYDPe3fV.js.map} +1 -1
  79. package/dist/judge.d.ts +1 -1
  80. package/dist/{model-NM3ID0uR.js → model-CXhrziBe.js} +1 -1
  81. package/dist/{model-h_cDtcRr.js → model-D0IcOQao.js} +5 -4
  82. package/dist/model-D0IcOQao.js.map +1 -0
  83. package/dist/{model-oqcDplJG.js → model-DaX4bNLZ.js} +17 -8
  84. package/dist/model-DaX4bNLZ.js.map +1 -0
  85. package/dist/model-_bxNrk2h.js +1 -0
  86. package/dist/{options-Bh2W63dK.js → options-C0d0AzeR.js} +6 -7
  87. package/dist/options-C0d0AzeR.js.map +1 -0
  88. package/dist/{patch-Zac5aIRM.js → patch-B1bnfhN-.js} +2 -2
  89. package/dist/{patch-Zac5aIRM.js.map → patch-B1bnfhN-.js.map} +1 -1
  90. package/dist/{plan-C9Cy27Ay.js → plan-DgQxp9yy.js} +13 -7
  91. package/dist/plan-DgQxp9yy.js.map +1 -0
  92. package/dist/{preflight-D7iFPKeK.js → preflight-BRzD30L5.js} +3 -3
  93. package/dist/{preflight-D7iFPKeK.js.map → preflight-BRzD30L5.js.map} +1 -1
  94. package/dist/{preflight-CPWpQeBI.js → preflight-DlQvbySb.js} +1 -1
  95. package/dist/{prepare-doGxaAGR.js → prepare-B_y-AFMv.js} +6 -6
  96. package/dist/{prepare-doGxaAGR.js.map → prepare-B_y-AFMv.js.map} +1 -1
  97. package/dist/{prepare-BGjePFQl.js → prepare-DCKTLHN3.js} +2 -2
  98. package/dist/{provenance-DmE9uPVt.js → provenance-DQ0AXn6c.js} +3 -3
  99. package/dist/{provenance-DmE9uPVt.js.map → provenance-DQ0AXn6c.js.map} +1 -1
  100. package/dist/{providers-gDMko8fl.js → providers-B9yTdIqF.js} +1 -1
  101. package/dist/{providers-tAOD1NQN.js → providers-DoTq1jHW.js} +4 -4
  102. package/dist/{providers-tAOD1NQN.js.map → providers-DoTq1jHW.js.map} +1 -1
  103. package/dist/query-BO-ux7RB.js +139 -0
  104. package/dist/query-BO-ux7RB.js.map +1 -0
  105. package/dist/query-CRQfsw0e.js +1 -0
  106. package/dist/{questions-DjAwMxZ3.js → questions-C2dym2ce.js} +3 -3
  107. package/dist/{questions-DjAwMxZ3.js.map → questions-C2dym2ce.js.map} +1 -1
  108. package/dist/{remote-HDRt16ew.js → remote-CPPW86Q9.js} +3 -3
  109. package/dist/{remote-HDRt16ew.js.map → remote-CPPW86Q9.js.map} +1 -1
  110. package/dist/{results-DuauQI3Z.js → results-BE2f-1XS.js} +6 -5
  111. package/dist/results-BE2f-1XS.js.map +1 -0
  112. package/dist/{resume-BRfa8E_s.js → resume-Ca1c8vix.js} +3 -3
  113. package/dist/{resume-BRfa8E_s.js.map → resume-Ca1c8vix.js.map} +1 -1
  114. package/dist/{sandbox-D3A8oUb7.js → sandbox-DLrsvu7U.js} +2 -2
  115. package/dist/{sandbox-D3A8oUb7.js.map → sandbox-DLrsvu7U.js.map} +1 -1
  116. package/dist/sandbox.d.ts +1 -1
  117. package/dist/sandbox.js +1 -1
  118. package/dist/server-Dp8eOeK5.js +1 -0
  119. package/dist/{server-XDleKaF_.js → server-TUY5xA_A.js} +6 -6
  120. package/dist/{server-XDleKaF_.js.map → server-TUY5xA_A.js.map} +1 -1
  121. package/dist/{shared-DYpIb1BI.js → shared-CA61BuPJ.js} +25 -3
  122. package/dist/shared-CA61BuPJ.js.map +1 -0
  123. package/dist/{source-C8xumIWj.js → source-DJGS0a0u.js} +2 -2
  124. package/dist/{source-C8xumIWj.js.map → source-DJGS0a0u.js.map} +1 -1
  125. package/dist/source-DdbLGR1M.js +1 -0
  126. package/dist/{src-C_lPtowT.js → src-BxfCKA3_.js} +1 -1
  127. package/dist/{src-ofUaYbuY.js → src-CLoOMVWI.js} +1 -1
  128. package/dist/{src-Du8H85Qq.js → src-CcrQbpG8.js} +1 -1
  129. package/dist/{src-Dj9PAroc.js → src-DCFtJRp0.js} +1 -1
  130. package/dist/{src-jzagbuqH.js → src-DSYYPEOj.js} +1 -1
  131. package/dist/src-DYO3DdnQ.js +1 -0
  132. package/dist/{src-DTbrY1hi.js → src-WD-zgQYZ.js} +1 -1
  133. package/dist/{src-DNnG4e4R.js → src-_oI9AePb.js} +1 -1
  134. package/dist/{src-B7treWa8.js → src-ftu5wPSt.js} +127 -15
  135. package/dist/src-ftu5wPSt.js.map +1 -0
  136. package/dist/{src-DdyJEh2v.js → src-qsKCqv7a.js} +1 -1
  137. package/dist/{state-C__9swoG.js → state-DfpHox6b.js} +3 -3
  138. package/dist/{state-C__9swoG.js.map → state-DfpHox6b.js.map} +1 -1
  139. package/dist/state-DpAxYyED.js +1 -0
  140. package/dist/studio-app/assets/index-CBkhNAv8.js +58 -0
  141. package/dist/studio-app/index.html +1 -1
  142. package/dist/suite-Cw_7G2RM.js +429 -0
  143. package/dist/suite-Cw_7G2RM.js.map +1 -0
  144. package/dist/suite-DamAEnNF.js +1 -0
  145. package/dist/summary-BUKfU-9l.js +611 -0
  146. package/dist/summary-BUKfU-9l.js.map +1 -0
  147. package/dist/{summary-DgyjUh_l.js → summary-Baa4rTHS.js} +6 -6
  148. package/dist/{summary-DgyjUh_l.js.map → summary-Baa4rTHS.js.map} +1 -1
  149. package/dist/testing.d.ts +2 -2
  150. package/dist/testing.js +2 -2
  151. package/dist/{tools-GCyNYSc1.js → tools-DLHgetpx.js} +3 -3
  152. package/dist/{tools-GCyNYSc1.js.map → tools-DLHgetpx.js.map} +1 -1
  153. package/dist/{types-g17bRAzt.d.ts → types-BYdlwMwo.d.ts} +12 -7
  154. package/dist/view/index.d.ts +250 -2
  155. package/dist/view/index.js +4 -4
  156. package/dist/{views-BmQF4UCI.js → views-B8w2J-gD.js} +16 -26
  157. package/dist/views-B8w2J-gD.js.map +1 -0
  158. package/dist/views-DblnI3kA.js +2 -0
  159. package/dist/{worker-entry-yOchGYYv.js → worker-entry-DNnveLqx.js} +2 -2
  160. package/dist/{worker-entry-yOchGYYv.js.map → worker-entry-DNnveLqx.js.map} +1 -1
  161. package/dist/{workspace-CgyHEM0l.js → workspace-C4RA3srV.js} +4 -4
  162. package/dist/{workspace-CgyHEM0l.js.map → workspace-C4RA3srV.js.map} +1 -1
  163. package/dist/{workspace-D8sSgpiy.js → workspace-C_X0tdv6.js} +1 -1
  164. package/package.json +8 -8
  165. package/dist/assemble-J5MukZFY.js +0 -1
  166. package/dist/capture-jquXZBKK.js +0 -1
  167. package/dist/cli-D303Vj5N.js.map +0 -1
  168. package/dist/cli-spec-BPZbQG2p.js.map +0 -1
  169. package/dist/command-BLfT7vnQ.js.map +0 -1
  170. package/dist/command-BT9a37ZR.js.map +0 -1
  171. package/dist/command-Bge8F7Ko.js.map +0 -1
  172. package/dist/command-BkFjijN2.js +0 -1
  173. package/dist/commands-BFx16WB8.js.map +0 -1
  174. package/dist/config-DEgnUiU-.js.map +0 -1
  175. package/dist/db-Dm1cRJJP.js +0 -2
  176. package/dist/dist-B8hJImYt.js.map +0 -1
  177. package/dist/doctor-BYNok4UO.js.map +0 -1
  178. package/dist/duration-CEOQww97.js +0 -26
  179. package/dist/duration-CEOQww97.js.map +0 -1
  180. package/dist/egress-C4PZTSSe.js.map +0 -1
  181. package/dist/env-BQqj93gu.js +0 -21
  182. package/dist/env-BQqj93gu.js.map +0 -1
  183. package/dist/environment-DNjRk0nU.js.map +0 -1
  184. package/dist/evaluate-D4zeRGBF.js.map +0 -1
  185. package/dist/family-D2b7WD10.js +0 -67
  186. package/dist/family-D2b7WD10.js.map +0 -1
  187. package/dist/files-BhyltlDB.js +0 -1
  188. package/dist/files-ZZPqfAo6.js +0 -1
  189. package/dist/init-BrOWin3W.js +0 -1
  190. package/dist/model-h_cDtcRr.js.map +0 -1
  191. package/dist/model-nwWJvaUR.js +0 -1
  192. package/dist/model-oqcDplJG.js.map +0 -1
  193. package/dist/options-Bh2W63dK.js.map +0 -1
  194. package/dist/plan-C9Cy27Ay.js.map +0 -1
  195. package/dist/process-CSVO_jsc.js +0 -119
  196. package/dist/process-CSVO_jsc.js.map +0 -1
  197. package/dist/query-Bes9Kh6Y.js +0 -91
  198. package/dist/query-Bes9Kh6Y.js.map +0 -1
  199. package/dist/query-C_G_svLU.js +0 -1
  200. package/dist/results-DuauQI3Z.js.map +0 -1
  201. package/dist/server-C7sg1ndo.js +0 -1
  202. package/dist/shared-DYpIb1BI.js.map +0 -1
  203. package/dist/source-fGd0SaKP.js +0 -1
  204. package/dist/src-B7treWa8.js.map +0 -1
  205. package/dist/src-pJZOrYR9.js +0 -1
  206. package/dist/state-CgjQo29K.js +0 -1
  207. package/dist/studio-app/assets/index-DrQc2Yxd.js +0 -58
  208. package/dist/summary-BLAVLySU.js +0 -385
  209. package/dist/summary-BLAVLySU.js.map +0 -1
  210. package/dist/views-BW6oCDUQ.js +0 -2
  211. package/dist/views-BmQF4UCI.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
  <meta name="referrer" content="no-referrer" />
7
7
  <link rel="icon" type="image/svg+xml" href="./favicon.svg" />
8
8
  <title>reeval Studio</title>
9
- <script type="module" crossorigin src="./assets/index-DrQc2Yxd.js"></script>
9
+ <script type="module" crossorigin src="./assets/index-CBkhNAv8.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="./assets/index-CwQN3f_h.css">
11
11
  </head>
12
12
  <body>
@@ -0,0 +1,429 @@
1
+ import { $ as contrastEffort, Q as cellSamples, T as runOutcome, V as labelledJudgements, Z as cellEffort, dt as liftInterval, gt as round3 } from "./model-DaX4bNLZ.js";
2
+ //#region src/view/family.ts
3
+ const signed = (x) => `${x >= 0 ? "+" : "−"}${Math.round(Math.abs(x) * 100)}`;
4
+ const pct = (x) => `${Math.round(x * 100)}%`;
5
+ const pValue = (p) => p < .001 ? "<0.001" : String(p);
6
+ /** `pass@1 2/3 · 67% (95% 21…94)`, or `pass@1 67% over 3 cases (95% 30…100)` at several runs. */
7
+ function familyRateLabel(rate) {
8
+ const { interval: i } = rate;
9
+ const range = `95% ${Math.round(i.lo * 100)}…${Math.round(i.hi * 100)}`;
10
+ return i.method === "wilson" ? `pass@1 ${rate.pass}/${rate.counted} · ${pct(rate.rate)} (${range})` : `pass@1 ${pct(rate.rate)} over ${rate.cases} cases (${range})`;
11
+ }
12
+ const VERDICT_NOTE = {
13
+ lift: "",
14
+ drop: "",
15
+ noise: ", within noise",
16
+ insufficient: ", insufficient"
17
+ };
18
+ /**
19
+ * `pass@1 88% vs 20% lift +68 pts (95% +40…+82, paired, 18 vs 1 discordant, p <0.001)`. At
20
+ * one attempt a case, the counts are the discordant pairs; at several, the paired cases.
21
+ */
22
+ function familyLiftLabel(lift) {
23
+ const { interval: i } = lift;
24
+ const range = `95% ${signed(i.lo)}…${signed(i.hi)}`;
25
+ const pairs = lift.discordant ? `${lift.discordant.variantOnly} vs ${lift.discordant.controlOnly} discordant` : `${lift.pairs} cases`;
26
+ const p = lift.p === null ? "" : `, p ${pValue(lift.p)}`;
27
+ return `${`pass@1 ${pct(lift.variantRate)} vs ${pct(lift.controlRate)}`} lift ${signed(lift.points)} pts (${range}, paired, ${pairs}${p})${VERDICT_NOTE[lift.verdict]}`;
28
+ }
29
+ const metricText = (name, m) => !m || m.ratio === null ? [] : [`${name} ×${m.ratio.toFixed(2)} per case (${m.verdict}${m.p === null ? "" : `, signed-rank p ${pValue(m.p)}`})`];
30
+ /**
31
+ * `tools ×0.41 per case (fewer, signed-rank p 0.002) · agent time ×0.80 per case (noise, …)`;
32
+ * a metric whose control median is 0 has no ratio and is left out.
33
+ */
34
+ function familyEffortLabel(lift) {
35
+ const e = lift.effort;
36
+ if (!e) return null;
37
+ const parts = [
38
+ ...metricText("tools", e.tools),
39
+ ...metricText("agent time", e.agentMs),
40
+ ...metricText("tokens", e.tokens)
41
+ ];
42
+ return parts.length ? parts.join(" · ") : null;
43
+ }
44
+ /** `25 cases · paired` with a compare, and `3 of 25 cases` when a filter left some out. */
45
+ function familyHeadLabel(family) {
46
+ const cases = family.ran === family.cases ? `${family.cases} cases` : `${family.ran} of ${family.cases} cases`;
47
+ return family.lifts.length ? `${cases} · paired` : cases;
48
+ }
49
+ /**
50
+ * A case's short label: its name less the template's literal text before the first placeholder
51
+ * and after the last, so `fixes $id` labels `fixes GH-101` as `GH-101`.
52
+ */
53
+ function caseLabel(template, name) {
54
+ const matches = [...template.matchAll(/%#|%s|\$[A-Za-z_][A-Za-z0-9_]*/g)];
55
+ const first = matches[0];
56
+ const last = matches.at(-1);
57
+ if (!first || !last) return name;
58
+ const prefix = template.slice(0, first.index);
59
+ const suffix = template.slice((last.index ?? 0) + last[0].length);
60
+ if (!name.startsWith(prefix) || !name.endsWith(suffix)) return name;
61
+ return name.slice(prefix.length, name.length - suffix.length) || name;
62
+ }
63
+ /** The family's cases in list order. */
64
+ const familyCases = (family, evals) => evals.filter((e) => e.family?.id === family.id).sort((a, b) => (a.family?.case ?? 0) - (b.family?.case ?? 0));
65
+ //#endregion
66
+ //#region src/view/suite.ts
67
+ /** The fewest counted attempts a side for an effect to be anything but `unclear`. */
68
+ const EFFECT_MIN_COUNTED = 4;
69
+ /**
70
+ * The effect of `variant` against `control`, from the interval on their difference. A side
71
+ * with fewer than `EFFECT_MIN_COUNTED` counted attempts is `unclear`, whatever the interval.
72
+ */
73
+ function effectOf(variant, control, interval) {
74
+ if (variant.counted < 4 || control.counted < 4) return "unclear";
75
+ if (variant.pass * control.counted === control.pass * variant.counted) return "same";
76
+ if (!interval) return "unclear";
77
+ if (interval.low > 0) return "better";
78
+ if (interval.high < 0) return "worse";
79
+ return "unclear";
80
+ }
81
+ /** A check's passes over the attempts that answered it; `notRun` and `error` aren't counted. */
82
+ const checkSide = (t) => ({
83
+ pass: t.pass,
84
+ counted: t.pass + t.fail
85
+ });
86
+ /** The check's effect, on the same Newcombe interval the record stores for a cell's lift. */
87
+ function checkEffect(variant, control) {
88
+ const v = checkSide(variant);
89
+ const c = checkSide(control);
90
+ if (v.counted === 0 || c.counted === 0) return "unclear";
91
+ const { low, high } = liftInterval({
92
+ pass: v.pass,
93
+ n: v.counted
94
+ }, {
95
+ pass: c.pass,
96
+ n: c.counted
97
+ });
98
+ return effectOf(v, c, {
99
+ low: round3(low),
100
+ high: round3(high)
101
+ });
102
+ }
103
+ /** One path segment: `%`, `/` and `+` percent-encoded, so segments split back unambiguously. */
104
+ const factSegment = (s) => s.replace(/%/g, "%25").replace(/\//g, "%2F").replace(/\+/g, "%2B");
105
+ const cellSegment = (c) => [
106
+ c.harness,
107
+ c.environment,
108
+ c.sandbox
109
+ ].map(factSegment).join("+");
110
+ const counted = (a) => a.outcome === "pass" || a.outcome === "fail";
111
+ function evalAcross(cells) {
112
+ const harness = new Set(cells.map((c) => c.harness)).size > 1;
113
+ const change = cells.some((c) => c.role === "variant") || new Set(cells.map((c) => c.environment)).size > 1;
114
+ return harness && change ? "both" : harness ? "harness" : change ? "change" : "none";
115
+ }
116
+ /** The skill sources and files an environment placed; `local:` sources as their path. */
117
+ function contextOf(record, cell) {
118
+ const envs = record.environments.filter((e) => e.digest === cell.environmentDigest);
119
+ const env = envs.find((e) => e.name === cell.environment) ?? envs[0];
120
+ if (!env) return [];
121
+ return [...env.skills.map((s) => s.source.replace(/^local:/, "")), ...env.files.map((f) => f.path)];
122
+ }
123
+ /** The control a variant is measured against: its lift's, else the control on its harness and sandbox. */
124
+ function baselineOf(e, cell) {
125
+ if (cell.role !== "variant") return void 0;
126
+ const vs = cell.lift?.vs;
127
+ return vs ? e.cells.find((c) => c.key === vs) : e.cells.find((c) => c.role === "control" && c.harness === cell.harness && c.sandbox === cell.sandbox);
128
+ }
129
+ function checksOf(e, cell, baseline, base) {
130
+ const attempts = e.attempts.filter((a) => a.cell === cell.key && counted(a));
131
+ return (cell.checks ?? []).map((k, order) => {
132
+ const ran = k.pass + k.fail + k.error;
133
+ const answered = attempts.flatMap((a) => a.assertions ?? []).filter((x) => x.label === k.label && x.message);
134
+ const assertion = (answered.find((x) => x.status === "fail") ?? answered.find((x) => x.status === "error"))?.message ?? null;
135
+ const control = baseline ? baseline.checks?.find((x) => x.label === k.label) ?? {
136
+ pass: 0,
137
+ fail: 0,
138
+ error: 0,
139
+ notRun: 0
140
+ } : void 0;
141
+ const judged = attempts.flatMap((a) => labelledJudgements(a).filter((j) => j.check === k.label).map((j) => j.judgement));
142
+ const first = judged[0];
143
+ return {
144
+ path: `${base}/checks/${factSegment(k.label)}`,
145
+ label: k.label,
146
+ order,
147
+ outcome: ran === 0 ? { status: "not run" } : {
148
+ status: "ran",
149
+ passed: k.pass,
150
+ failed: k.fail,
151
+ errored: k.error,
152
+ notRun: k.notRun,
153
+ assertion
154
+ },
155
+ effect: control ? checkEffect(k, control) : null,
156
+ judge: first ? {
157
+ question: first.question,
158
+ threshold: first.threshold,
159
+ scores: judged.map((j) => j.score)
160
+ } : null
161
+ };
162
+ });
163
+ }
164
+ const informative = (line) => /[\p{L}\p{N}]/u.test(line);
165
+ /**
166
+ * An error's one line: its first line with any letter or digit in it, joined with the next one
167
+ * when it ends with `:`, since `Docker failed:` alone says nothing. A log line's `| ` is dropped.
168
+ */
169
+ function messageLine(text) {
170
+ const [first = "", next] = text.split("\n").map((l) => l.trim()).filter(informative);
171
+ return first.endsWith(":") && next ? `${first} ${next.replace(/^[|>]\s*/, "")}` : first;
172
+ }
173
+ /**
174
+ * The errors of a cell's failed and infra-error attempts that no failed check explains: every
175
+ * timeout, infra error and abort, and an assertion or judge error on an attempt whose recorded
176
+ * checks all passed (a throw in the eval's body), plus each turn's error, which is often why.
177
+ */
178
+ function errorsOf(e, cell) {
179
+ const out = [];
180
+ const add = (kind, text) => {
181
+ const message = messageLine(text);
182
+ const same = out.find((x) => x.kind === kind && x.message === message);
183
+ if (same) same.attempts++;
184
+ else out.push({
185
+ kind,
186
+ message,
187
+ attempts: 1
188
+ });
189
+ };
190
+ for (const a of e.attempts) {
191
+ if (a.cell !== cell.key) continue;
192
+ if (a.outcome !== "fail" && a.outcome !== "infra_error") continue;
193
+ for (const turn of a.turns ?? []) if (turn.error) add("turn", turn.error);
194
+ if (!a.error) continue;
195
+ if ((a.error.kind === "assertion" || a.error.kind === "judge") && (a.assertions ?? []).some((x) => x.status !== "pass")) continue;
196
+ add(a.error.kind, a.error.message);
197
+ }
198
+ return out;
199
+ }
200
+ function effortDiffers(e, cell, baseline) {
201
+ if (!baseline) return false;
202
+ const c = contrastEffort(cellSamples(e, cell.key), cellSamples(e, baseline.key));
203
+ if (!c) return false;
204
+ const moved = (v) => v === "fewer" || v === "more";
205
+ return moved(c.verdict) || moved(c.timeVerdict) || moved(c.tokensVerdict);
206
+ }
207
+ function questionsOf(e) {
208
+ return (e.answers ?? []).map((a) => ({
209
+ question: a.question,
210
+ votes: a.votes.length,
211
+ rates: a.rates.map((r) => ({
212
+ cut: r.cut,
213
+ name: r.name,
214
+ wins: r.wins,
215
+ n: r.n
216
+ })),
217
+ error: a.error ?? null
218
+ }));
219
+ }
220
+ function effortOf(e, cell) {
221
+ const effort = cellEffort(e, cell.key);
222
+ if (!effort || effort.n < 4) return null;
223
+ return {
224
+ tools: effort.tools.median,
225
+ agentMs: effort.agentMs.median,
226
+ tokens: effort.tokens?.median ?? null
227
+ };
228
+ }
229
+ /** A variant's effect from its stored lift; with none (nothing counted on a side), `unclear`. */
230
+ function cellEffect(cell, baseline, interval) {
231
+ if (cell.lift) return effectOf(cell.lift.variant, cell.lift.control, interval);
232
+ if (!baseline) return "unclear";
233
+ return effectOf({
234
+ pass: cell.pass,
235
+ counted: cell.pass + cell.fail
236
+ }, {
237
+ pass: baseline.pass,
238
+ counted: baseline.pass + baseline.fail
239
+ }, null);
240
+ }
241
+ function cellsOf(record, e, parent) {
242
+ const hasVariants = e.cells.some((c) => c.role === "variant");
243
+ return e.cells.map((cell, order) => {
244
+ const path = `${parent}/${cellSegment(cell)}`;
245
+ const baseline = baselineOf(e, cell);
246
+ const attempts = e.attempts.filter((a) => a.cell === cell.key && counted(a));
247
+ const lift = cell.lift;
248
+ const interval = lift ? {
249
+ low: lift.interval.lo,
250
+ high: lift.interval.hi
251
+ } : null;
252
+ return {
253
+ path,
254
+ key: cell.key,
255
+ harness: cell.harness,
256
+ environment: cell.environment,
257
+ sandbox: cell.sandbox,
258
+ variant: cell.variant ?? null,
259
+ baseline: hasVariants && cell.role === "control",
260
+ vs: baseline?.key ?? null,
261
+ order,
262
+ gated: cell.gate !== "none",
263
+ outcome: cell.outcome,
264
+ attempts: cell.runs,
265
+ passed: cell.pass,
266
+ failed: cell.fail,
267
+ infraError: cell.infraError,
268
+ skipped: cell.skipped,
269
+ fingerprint: cell.fingerprint,
270
+ context: contextOf(record, cell),
271
+ checks: checksOf(e, cell, baseline, path),
272
+ effect: cell.role === "variant" ? cellEffect(cell, baseline, interval) : null,
273
+ interval,
274
+ minLift: lift?.minLift ?? null,
275
+ effort: effortOf(e, cell),
276
+ effortDiffers: cell.role === "variant" && effortDiffers(e, cell, baseline),
277
+ errors: errorsOf(e, cell),
278
+ searches: attempts.map((a) => a.activity.webSearches),
279
+ fetches: attempts.map((a) => a.activity.webFetches)
280
+ };
281
+ });
282
+ }
283
+ function pooledEffect(lift) {
284
+ if (lift.verdict === "insufficient" || lift.pairs < 4) return "unclear";
285
+ if (lift.variantRate === lift.controlRate) return "same";
286
+ if (lift.interval.lo > 0) return "better";
287
+ if (lift.interval.hi < 0) return "worse";
288
+ return "unclear";
289
+ }
290
+ /** Fail beats infra error, which beats pass; skipped only when every one was. */
291
+ function worst(outcomes) {
292
+ if (outcomes.includes("fail")) return "fail";
293
+ if (outcomes.includes("infra_error")) return "infra_error";
294
+ if (outcomes.length && outcomes.every((o) => o === "skipped")) return "skipped";
295
+ return "pass";
296
+ }
297
+ function familyResult(record, family, cases, order) {
298
+ const path = factSegment(family.id);
299
+ const sample = cases[0];
300
+ const sorted = [...cases].sort((a, b) => (a.family?.case ?? 0) - (b.family?.case ?? 0));
301
+ const cellOf = (key) => sample.cells.find((c) => c.key === key);
302
+ return {
303
+ path,
304
+ id: family.id,
305
+ group: family.group,
306
+ name: family.name,
307
+ template: family.name,
308
+ order,
309
+ across: evalAcross(cases.flatMap((c) => c.cells)),
310
+ family: true,
311
+ todo: false,
312
+ outcome: worst([...family.outcome === "fail" ? ["fail"] : [], ...sorted.map((c) => c.outcome)]),
313
+ cells: null,
314
+ cases: sorted.map((c) => {
315
+ const label = caseLabel(family.name, c.name);
316
+ const casePath = `${path}/${factSegment(label)}`;
317
+ return {
318
+ path: casePath,
319
+ id: c.id,
320
+ label,
321
+ name: c.name,
322
+ order: c.family?.case ?? 0,
323
+ outcome: c.outcome,
324
+ cells: cellsOf(record, c, casePath)
325
+ };
326
+ }),
327
+ pooled: family.lifts.map((lift) => {
328
+ const cell = cellOf(lift.variant);
329
+ return {
330
+ path: `${path}/${cell ? cellSegment(cell) : factSegment(lift.variant)}`,
331
+ key: lift.variant,
332
+ vs: lift.vs,
333
+ effect: pooledEffect(lift),
334
+ pairs: lift.pairs,
335
+ interval: {
336
+ low: lift.interval.lo,
337
+ high: lift.interval.hi
338
+ },
339
+ minLift: lift.minLift ?? null,
340
+ outcome: lift.outcome
341
+ };
342
+ }),
343
+ questions: questionsOf(sample)
344
+ };
345
+ }
346
+ function evalResult(record, e, order) {
347
+ const path = factSegment(e.id);
348
+ return {
349
+ path,
350
+ id: e.id,
351
+ group: e.group,
352
+ name: e.name,
353
+ template: null,
354
+ order,
355
+ across: evalAcross(e.cells),
356
+ family: false,
357
+ todo: e.todo,
358
+ outcome: e.outcome,
359
+ cells: cellsOf(record, e, path),
360
+ cases: null,
361
+ pooled: null,
362
+ questions: questionsOf(e)
363
+ };
364
+ }
365
+ function pathsOf(files) {
366
+ const out = [];
367
+ const cell = (c) => {
368
+ out.push(c.path);
369
+ for (const k of c.checks) out.push(k.path);
370
+ if (c.effort) out.push(`${c.path}/effort`);
371
+ };
372
+ for (const file of files) for (const e of file.evals) {
373
+ out.push(e.path);
374
+ for (const c of e.cells ?? []) cell(c);
375
+ for (const k of e.cases ?? []) {
376
+ out.push(k.path);
377
+ for (const c of k.cells) cell(c);
378
+ }
379
+ for (const p of e.pooled ?? []) out.push(p.path);
380
+ }
381
+ return out;
382
+ }
383
+ /** The facts of a run, from its record. Pure: the same record always gives the same result. */
384
+ function suiteResult(record) {
385
+ const families = new Map((record.families ?? []).map((f) => [f.id, f]));
386
+ const byFile = /* @__PURE__ */ new Map();
387
+ const seen = /* @__PURE__ */ new Set();
388
+ const tally = {
389
+ pass: 0,
390
+ fail: 0,
391
+ infraError: 0,
392
+ skipped: 0
393
+ };
394
+ const count = (o) => {
395
+ if (o === "infra_error") tally.infraError++;
396
+ else tally[o]++;
397
+ };
398
+ for (const e of record.evals) {
399
+ const evals = byFile.get(e.file) ?? [];
400
+ byFile.set(e.file, evals);
401
+ count(e.outcome);
402
+ const family = e.family && families.get(e.family.id);
403
+ if (!family) {
404
+ evals.push(evalResult(record, e, evals.length));
405
+ continue;
406
+ }
407
+ if (seen.has(family.id)) continue;
408
+ seen.add(family.id);
409
+ if (family.outcome === "fail" && family.lifts.some((l) => l.outcome === "fail")) tally.fail++;
410
+ const cases = record.evals.filter((x) => x.family?.id === family.id);
411
+ evals.push(familyResult(record, family, cases, evals.length));
412
+ }
413
+ const files = [...byFile].sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([path, evals]) => ({
414
+ path,
415
+ evals
416
+ }));
417
+ return {
418
+ runId: record.runId,
419
+ status: record.status,
420
+ outcome: runOutcome(record),
421
+ tally,
422
+ files,
423
+ paths: pathsOf(files)
424
+ };
425
+ }
426
+ //#endregion
427
+ export { factSegment as a, caseLabel as c, familyHeadLabel as d, familyLiftLabel as f, evalAcross as i, familyCases as l, checkEffect as n, messageLine as o, familyRateLabel as p, effectOf as r, suiteResult as s, EFFECT_MIN_COUNTED as t, familyEffortLabel as u };
428
+
429
+ //# sourceMappingURL=suite-Cw_7G2RM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suite-Cw_7G2RM.js","names":[],"sources":["../src/view/family.ts","../src/view/suite.ts"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { s as suiteResult } from "./suite-Cw_7G2RM.js";