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.
Files changed (233) hide show
  1. package/README.md +12 -12
  2. package/dist/{agent-Dhd5FJCZ.js → agent-6FefIhX7.js} +6 -6
  3. package/dist/{agent-Dhd5FJCZ.js.map → agent-6FefIhX7.js.map} +1 -1
  4. package/dist/{agent-gjBiZis8.js → agent-WSmTaesf.js} +52 -17
  5. package/dist/agent-WSmTaesf.js.map +1 -0
  6. package/dist/{analysis-BV3TCznv.js → analysis-DlGBDjTj.js} +4 -4
  7. package/dist/{analysis-BV3TCznv.js.map → analysis-DlGBDjTj.js.map} +1 -1
  8. package/dist/{assemble-Dd_mZYnu.js → assemble-BCZzTyR7.js} +259 -18
  9. package/dist/assemble-BCZzTyR7.js.map +1 -0
  10. package/dist/assemble-C5qq5yT2.js +2 -0
  11. package/dist/capture-Bp74Z6Fr.js +1257 -0
  12. package/dist/capture-Bp74Z6Fr.js.map +1 -0
  13. package/dist/capture-DS-cPyuE.js +2 -0
  14. package/dist/{cli-r9CDqoFL.js → cli-CVrMh_qz.js} +210 -112
  15. package/dist/cli-CVrMh_qz.js.map +1 -0
  16. package/dist/{cli-spec-DOyxAMc2.js → cli-spec-CKEYa8V2.js} +6 -5
  17. package/dist/cli-spec-CKEYa8V2.js.map +1 -0
  18. package/dist/cli.js +2 -2
  19. package/dist/{client-LsfDiD-X.js → client-Bbo9SPlK.js} +31 -201
  20. package/dist/client-Bbo9SPlK.js.map +1 -0
  21. package/dist/{command-l4ZFCeMh.js → command-BFP0hKEb.js} +7 -7
  22. package/dist/{command-l4ZFCeMh.js.map → command-BFP0hKEb.js.map} +1 -1
  23. package/dist/command-BrmXUC-W.js +2 -0
  24. package/dist/{command-DMR69l5G.js → command-C5xFPKHM.js} +21 -20
  25. package/dist/command-C5xFPKHM.js.map +1 -0
  26. package/dist/{command-Cej2t3y-.js → command-CzIFp1JQ.js} +10 -10
  27. package/dist/{command-Cej2t3y-.js.map → command-CzIFp1JQ.js.map} +1 -1
  28. package/dist/{command-D6r2pwO5.js → command-DUT5l13I.js} +221 -54
  29. package/dist/command-DUT5l13I.js.map +1 -0
  30. package/dist/{commands-BA_NCh2h.js → commands-CLmPBrTS.js} +6 -6
  31. package/dist/{commands-BA_NCh2h.js.map → commands-CLmPBrTS.js.map} +1 -1
  32. package/dist/{commands-DgOUkcSO.js → commands-fI3G2Wnh.js} +1 -1
  33. package/dist/{config-DuQDCx0B.js → config-CGvBeewH.js} +18 -8
  34. package/dist/config-CGvBeewH.js.map +1 -0
  35. package/dist/{context-CvUv7DUb.js → context-DbSMEVKs.js} +1 -5
  36. package/dist/{context-CvUv7DUb.js.map → context-DbSMEVKs.js.map} +1 -1
  37. package/dist/{db-o_osRkqr.js → db-CSSFtGcN.js} +1 -1
  38. package/dist/{db-CjX7JF4o.js → db-CfQFwJtq.js} +209 -40
  39. package/dist/db-CfQFwJtq.js.map +1 -0
  40. package/dist/{docker-DaUaG4XZ.js → docker-CRQGQbIt.js} +17 -5
  41. package/dist/docker-CRQGQbIt.js.map +1 -0
  42. package/dist/{docker-ZaYeKE2w.js → docker-DV2GNgle.js} +2 -2
  43. package/dist/{docker-ZaYeKE2w.js.map → docker-DV2GNgle.js.map} +1 -1
  44. package/dist/{docker-Dnya8eo9.js → docker-Df_YOxxB.js} +1 -1
  45. package/dist/{doctor-Bk6aJeec.js → doctor-DlKycx5H.js} +13 -13
  46. package/dist/{doctor-Bk6aJeec.js.map → doctor-DlKycx5H.js.map} +1 -1
  47. package/dist/{egress-BKbyriEa.js → egress-BhzNh7Yi.js} +18 -10
  48. package/dist/egress-BhzNh7Yi.js.map +1 -0
  49. package/dist/{environment-DiCljXMD.js → environment-1jE-HhO-.js} +2 -2
  50. package/dist/{environment-DiCljXMD.js.map → environment-1jE-HhO-.js.map} +1 -1
  51. package/dist/fake-instructions-CUI33I_F.js +32 -0
  52. package/dist/fake-instructions-CUI33I_F.js.map +1 -0
  53. package/dist/family-D2b7WD10.js +67 -0
  54. package/dist/family-D2b7WD10.js.map +1 -0
  55. package/dist/files-AiEKuEZe.js +2 -0
  56. package/dist/files-BMCvfB4X.js +2 -0
  57. package/dist/{files-TNrZJQ3Y.js → files-CSzVADHn.js} +5 -5
  58. package/dist/{files-TNrZJQ3Y.js.map → files-CSzVADHn.js.map} +1 -1
  59. package/dist/{files-BSMSnQMa.js → files-DJUFg-4e.js} +3 -3
  60. package/dist/{files-BSMSnQMa.js.map → files-DJUFg-4e.js.map} +1 -1
  61. package/dist/{git-DNGtrOg9.js → git-DfG-YJ1u.js} +2 -2
  62. package/dist/{git-DNGtrOg9.js.map → git-DfG-YJ1u.js.map} +1 -1
  63. package/dist/{harness-CDRaaGvR.js → harness-CeCp2GSW.js} +52 -12
  64. package/dist/harness-CeCp2GSW.js.map +1 -0
  65. package/dist/harness.d.ts +26 -13
  66. package/dist/harness.js +1 -1
  67. package/dist/{header-BZF8Xss1.js → header-CALhmafp.js} +10 -3
  68. package/dist/{header-BZF8Xss1.js.map → header-CALhmafp.js.map} +1 -1
  69. package/dist/{images-BpwFDT1E.js → images-BMgdpMAX.js} +6 -6
  70. package/dist/{images-BpwFDT1E.js.map → images-BMgdpMAX.js.map} +1 -1
  71. package/dist/index.d.ts +17 -5
  72. package/dist/index.js +165 -67
  73. package/dist/index.js.map +1 -1
  74. package/dist/init-B6vegaP_.js +2 -0
  75. package/dist/{init-CBWt1rZT.js → init-BIdLF0F9.js} +4 -4
  76. package/dist/{init-CBWt1rZT.js.map → init-BIdLF0F9.js.map} +1 -1
  77. package/dist/{invocations-DArYWyXN.js → invocations-CLaL8AuW.js} +3 -3
  78. package/dist/{invocations-DArYWyXN.js.map → invocations-CLaL8AuW.js.map} +1 -1
  79. package/dist/{judge-7WjNdU9z.js → judge-CeYPN8P_.js} +2 -2
  80. package/dist/{judge-7WjNdU9z.js.map → judge-CeYPN8P_.js.map} +1 -1
  81. package/dist/judge.d.ts +5 -4
  82. package/dist/judge.js +4 -3
  83. package/dist/judge.js.map +1 -1
  84. package/dist/{live-DZkCtmNP.js → live-S0qODb6o.js} +2 -2
  85. package/dist/{live-DZkCtmNP.js.map → live-S0qODb6o.js.map} +1 -1
  86. package/dist/{model-Cp6NoAT3.js → model-B1BZoZ9b.js} +9 -8
  87. package/dist/model-B1BZoZ9b.js.map +1 -0
  88. package/dist/{model-DyQbu7KF.js → model-BOnlAPzs.js} +288 -38
  89. package/dist/model-BOnlAPzs.js.map +1 -0
  90. package/dist/{model-Bv8uUZ07.js → model-DEQo3FkZ.js} +6 -6
  91. package/dist/model-DEQo3FkZ.js.map +1 -0
  92. package/dist/model-DWeg5J7z.js +2 -0
  93. package/dist/{model-BeoRxCcJ.js → model-FXko2kl7.js} +1 -1
  94. package/dist/{options-Ge_x32XE.js → options-CKqyPGxX.js} +161 -34
  95. package/dist/options-CKqyPGxX.js.map +1 -0
  96. package/dist/pairs-DDsjgm5F.js +149 -0
  97. package/dist/pairs-DDsjgm5F.js.map +1 -0
  98. package/dist/{patch-CGCVipPu.js → patch-bDV8YFW0.js} +2 -2
  99. package/dist/{patch-CGCVipPu.js.map → patch-bDV8YFW0.js.map} +1 -1
  100. package/dist/{plan-BqBadHYj.js → plan-DUydFc_1.js} +69 -31
  101. package/dist/plan-DUydFc_1.js.map +1 -0
  102. package/dist/{preflight-CyaAZE9r.js → preflight-BkoSxf4C.js} +3 -3
  103. package/dist/{preflight-CyaAZE9r.js.map → preflight-BkoSxf4C.js.map} +1 -1
  104. package/dist/{preflight-CFtZNTLt.js → preflight-D5LW7Oqi.js} +1 -1
  105. package/dist/{prepare-Zr1xOMUX.js → prepare-CUAWHebF.js} +5 -5
  106. package/dist/{prepare-Zr1xOMUX.js.map → prepare-CUAWHebF.js.map} +1 -1
  107. package/dist/{prepare-Dl7-t3fO.js → prepare-oji2oO8W.js} +2 -2
  108. package/dist/process-CSVO_jsc.js +119 -0
  109. package/dist/process-CSVO_jsc.js.map +1 -0
  110. package/dist/{provenance-Byl2T6LJ.js → provenance-D7HK3vzt.js} +2 -2
  111. package/dist/{provenance-Byl2T6LJ.js.map → provenance-D7HK3vzt.js.map} +1 -1
  112. package/dist/{providers-Cflw7Ks-.js → providers-B1DzMvmH.js} +3 -3
  113. package/dist/{providers-Cflw7Ks-.js.map → providers-B1DzMvmH.js.map} +1 -1
  114. package/dist/{providers-SBMExI53.js → providers-CpEfNU1F.js} +1 -1
  115. package/dist/{query-DUSLlic0.js → query-BjBMLa-C.js} +2 -2
  116. package/dist/{query-DUSLlic0.js.map → query-BjBMLa-C.js.map} +1 -1
  117. package/dist/query-oPO_XrTy.js +2 -0
  118. package/dist/{questions-ZdT3JDyQ.js → questions-B8by4Bbt.js} +28 -119
  119. package/dist/questions-B8by4Bbt.js.map +1 -0
  120. package/dist/{record-CbuQH4l1.js → record-BRP9vZrj.js} +21 -1
  121. package/dist/record-BRP9vZrj.js.map +1 -0
  122. package/dist/{results-owJR-NFm.js → results-Di7m8dQ3.js} +4 -4
  123. package/dist/{results-owJR-NFm.js.map → results-Di7m8dQ3.js.map} +1 -1
  124. package/dist/{resume-BL4Yw7Ld.js → resume-SUz1GskV.js} +4 -4
  125. package/dist/{resume-BL4Yw7Ld.js.map → resume-SUz1GskV.js.map} +1 -1
  126. package/dist/runtime-DdsfnRz_.js +344 -0
  127. package/dist/runtime-DdsfnRz_.js.map +1 -0
  128. package/dist/{sandbox--ZXuscAZ.js → sandbox-D5v-of6d.js} +10 -5
  129. package/dist/sandbox-D5v-of6d.js.map +1 -0
  130. package/dist/sandbox.d.ts +4 -3
  131. package/dist/sandbox.js +1 -1
  132. package/dist/{server-yFVUxAm0.js → server-BNnXtmS8.js} +9 -9
  133. package/dist/{server-yFVUxAm0.js.map → server-BNnXtmS8.js.map} +1 -1
  134. package/dist/server-BNwoKzlm.js +2 -0
  135. package/dist/source-Bk_0ZaEY.js +2 -0
  136. package/dist/{source-M3gS517R.js → source-Dof0NQBm.js} +2 -2
  137. package/dist/{source-M3gS517R.js.map → source-Dof0NQBm.js.map} +1 -1
  138. package/dist/{src-79JhW-zG.js → src-8rRXy4u9.js} +71 -124
  139. package/dist/src-8rRXy4u9.js.map +1 -0
  140. package/dist/src-BGWuWp6I.js +3 -0
  141. package/dist/src-BRt0O02i.js +3 -0
  142. package/dist/src-Bx2x1ekD.js +3 -0
  143. package/dist/{src-s-VffoYK.js → src-C1E9HDWO.js} +5 -3
  144. package/dist/{src-s-VffoYK.js.map → src-C1E9HDWO.js.map} +1 -1
  145. package/dist/{src-IOr1rhEg.js → src-COgE7991.js} +10 -8
  146. package/dist/{src-IOr1rhEg.js.map → src-COgE7991.js.map} +1 -1
  147. package/dist/{src-CokPbYCb.js → src-C_4Umgh2.js} +23 -14
  148. package/dist/{src-CokPbYCb.js.map → src-C_4Umgh2.js.map} +1 -1
  149. package/dist/{src-DxFJrMUA.js → src-D95O-Smv.js} +12 -7
  150. package/dist/{src-DxFJrMUA.js.map → src-D95O-Smv.js.map} +1 -1
  151. package/dist/{src-DTcalvuF.js → src-DDNXsD9H.js} +28 -4
  152. package/dist/{src-DTcalvuF.js.map → src-DDNXsD9H.js.map} +1 -1
  153. package/dist/src-DLa-ESW0.js +4 -0
  154. package/dist/{src-DSE0FWaU.js → src-DVy58-zZ.js} +2 -2
  155. package/dist/{src-DSE0FWaU.js.map → src-DVy58-zZ.js.map} +1 -1
  156. package/dist/src-cN0aB-WR.js +3 -0
  157. package/dist/{src-DH0jhpoi.js → src-cdIVjC5b.js} +1 -1
  158. package/dist/src-sIsDHWYq.js +3 -0
  159. package/dist/state-Bo5zg4da.js +2 -0
  160. package/dist/{state-DEj_utaE.js → state-CiXyLqg0.js} +10 -10
  161. package/dist/{state-DEj_utaE.js.map → state-CiXyLqg0.js.map} +1 -1
  162. package/dist/studio-app/assets/index-B9MCTfuu.css +2 -0
  163. package/dist/studio-app/assets/{index-Bbl0oTxu.js → index-CROH2NB3.js} +12 -12
  164. package/dist/studio-app/index.html +2 -2
  165. package/dist/{summary-D012KlUM.js → summary-2OAWF2N7.js} +7 -7
  166. package/dist/{summary-D012KlUM.js.map → summary-2OAWF2N7.js.map} +1 -1
  167. package/dist/{summary--FBuB_sr.js → summary-BTksrIxn.js} +63 -5
  168. package/dist/summary-BTksrIxn.js.map +1 -0
  169. package/dist/testing.d.ts +14 -0
  170. package/dist/testing.js +2 -0
  171. package/dist/{tools-CJHw-zCo.js → tools-B10Uj7OI.js} +4 -4
  172. package/dist/tools-B10Uj7OI.js.map +1 -0
  173. package/dist/types-C5vI3g1C.js.map +1 -1
  174. package/dist/{types-BsRSknLe.d.ts → types-D8RLfkFP.d.ts} +453 -42
  175. package/dist/{usage-DsYUqIUM.js → usage-DDF_6tkV.js} +4 -2
  176. package/dist/{usage-DsYUqIUM.js.map → usage-DDF_6tkV.js.map} +1 -1
  177. package/dist/view/index.d.ts +60 -15
  178. package/dist/view/index.js +7 -6
  179. package/dist/views-Cs2Oqayd.js +3 -0
  180. package/dist/{views-jhL9Jb8A.js → views-Dqa5ojfZ.js} +4 -4
  181. package/dist/{views-jhL9Jb8A.js.map → views-Dqa5ojfZ.js.map} +1 -1
  182. package/dist/{worker-entry-OwnsrUdr.js → worker-entry-BAikHl9F.js} +9 -4
  183. package/dist/worker-entry-BAikHl9F.js.map +1 -0
  184. package/dist/{workspace-C4_J0pqb.js → workspace-C-TrNIUc.js} +4 -4
  185. package/dist/{workspace-C4_J0pqb.js.map → workspace-C-TrNIUc.js.map} +1 -1
  186. package/dist/{workspace-wudSz_W-.js → workspace-Do_SiWBs.js} +1 -1
  187. package/docker/Dockerfile +7 -5
  188. package/package.json +9 -4
  189. package/dist/agent-gjBiZis8.js.map +0 -1
  190. package/dist/assemble-D8sZ4Jiv.js +0 -2
  191. package/dist/assemble-Dd_mZYnu.js.map +0 -1
  192. package/dist/capture-CisAmy-G.js +0 -587
  193. package/dist/capture-CisAmy-G.js.map +0 -1
  194. package/dist/capture-DquyqAHC.js +0 -2
  195. package/dist/cli-r9CDqoFL.js.map +0 -1
  196. package/dist/cli-spec-DOyxAMc2.js.map +0 -1
  197. package/dist/client-LsfDiD-X.js.map +0 -1
  198. package/dist/command-Cxfgghqo.js +0 -2
  199. package/dist/command-D6r2pwO5.js.map +0 -1
  200. package/dist/command-DMR69l5G.js.map +0 -1
  201. package/dist/config-DuQDCx0B.js.map +0 -1
  202. package/dist/db-CjX7JF4o.js.map +0 -1
  203. package/dist/docker-DaUaG4XZ.js.map +0 -1
  204. package/dist/egress-BKbyriEa.js.map +0 -1
  205. package/dist/files-DmZGPsWK.js +0 -2
  206. package/dist/files-Tb8wY0Ze.js +0 -2
  207. package/dist/harness-CDRaaGvR.js.map +0 -1
  208. package/dist/init-1THeGfut.js +0 -2
  209. package/dist/model-Bv8uUZ07.js.map +0 -1
  210. package/dist/model-Cp6NoAT3.js.map +0 -1
  211. package/dist/model-D_pF3Vcl.js +0 -2
  212. package/dist/model-DyQbu7KF.js.map +0 -1
  213. package/dist/options-Ge_x32XE.js.map +0 -1
  214. package/dist/plan-BqBadHYj.js.map +0 -1
  215. package/dist/query-CvutWHaL.js +0 -2
  216. package/dist/questions-ZdT3JDyQ.js.map +0 -1
  217. package/dist/record-CbuQH4l1.js.map +0 -1
  218. package/dist/sandbox--ZXuscAZ.js.map +0 -1
  219. package/dist/server-CNPsB0cT.js +0 -2
  220. package/dist/source-Cmc5SKFn.js +0 -2
  221. package/dist/src--L8B4WGa.js +0 -3
  222. package/dist/src-79JhW-zG.js.map +0 -1
  223. package/dist/src-BLN459er.js +0 -3
  224. package/dist/src-Bz66jDtE.js +0 -3
  225. package/dist/src-CfUwg9UY.js +0 -3
  226. package/dist/src-DV_3QDHA.js +0 -4
  227. package/dist/src-Ljh2vKXm.js +0 -3
  228. package/dist/state-DkqbCVVp.js +0 -2
  229. package/dist/studio-app/assets/index-CUx6GoL5.css +0 -2
  230. package/dist/summary--FBuB_sr.js.map +0 -1
  231. package/dist/tools-CJHw-zCo.js.map +0 -1
  232. package/dist/views-yPmmoo8f.js +0 -3
  233. package/dist/worker-entry-OwnsrUdr.js.map +0 -1
@@ -1,10 +1,59 @@
1
1
  import { n as UsageError } from "./errors-yDAEwmZo.js";
2
2
  import { t as parseDuration } from "./duration-JsJrIWXq.js";
3
- import { E as workspaceOf, S as sandboxOf, T as workspaceLabel, g as isMovingRef, i as applied, l as emptyEnvironment, m as isEnvironment, o as checkEgress, r as EMPTY_BASELINE, s as checkEnv, w as unbrokeredSecrets, x as plannedSecrets } from "./environment-DiCljXMD.js";
4
- import { g as isAgentKind, i as plannedEgress, l as HARNESS_EXAMPLE, r as egressLabel } from "./egress-BKbyriEa.js";
5
- import { a as checkModelString, i as badJudgeList } from "./judge-7WjNdU9z.js";
6
- import { c as opencodeModelError } from "./harness-CDRaaGvR.js";
3
+ import { E as workspaceOf, S as sandboxOf, T as workspaceLabel, g as isMovingRef, i as applied, l as emptyEnvironment, m as isEnvironment, o as checkEgress, r as EMPTY_BASELINE, s as checkEnv, w as unbrokeredSecrets, x as plannedSecrets } from "./environment-1jE-HhO-.js";
4
+ import { g as isAgentKind, i as plannedEgress, l as HARNESS_EXAMPLE, r as egressLabel } from "./egress-BhzNh7Yi.js";
5
+ import { a as checkModelString, i as badJudgeList } from "./judge-CeYPN8P_.js";
6
+ import { c as opencodeModelError } from "./harness-CeCp2GSW.js";
7
7
  import { createHash } from "node:crypto";
8
+ //#region src/harness/effort.ts
9
+ /**
10
+ * The reasoning effort a harness asked for. Same user-facing name on every factory; the CLI's
11
+ * native flag may say thinking. Undefined when the factory left it unset. Fast is not this.
12
+ */
13
+ function harnessEffort(h) {
14
+ return "effort" in h && typeof h.effort === "string" ? h.effort : void 0;
15
+ }
16
+ /**
17
+ * The reasoning effort a served-model label recorded, e.g. `gpt-5.6-luna[effort=medium]` →
18
+ * `medium`. Fast (`[fast=true]`) is not effort and is ignored.
19
+ */
20
+ function effortFromModelLabel(model) {
21
+ const inner = model?.match(/\[([^\]]+)]/)?.[1];
22
+ if (!inner) return void 0;
23
+ for (const part of inner.split(",")) {
24
+ const eq = part.indexOf("=");
25
+ if (eq < 0) continue;
26
+ const key = part.slice(0, eq).trim();
27
+ if (key === "fast") continue;
28
+ if (/^(?:reasoning_)?effort$|^thinking$/.test(key)) {
29
+ const value = part.slice(eq + 1).trim();
30
+ if (value) return value;
31
+ }
32
+ }
33
+ }
34
+ /** The first reasoning-effort suffix among served-model labels; undefined when none name one. */
35
+ function servedEffortOf(models) {
36
+ if (!models) return void 0;
37
+ for (const model of models) {
38
+ const effort = effortFromModelLabel(model);
39
+ if (effort) return effort;
40
+ }
41
+ }
42
+ /** Unique reasoning-effort suffixes among served-model labels, in first-seen order. */
43
+ function resolvedEffortOf(models) {
44
+ if (!models) return [];
45
+ const seen = /* @__PURE__ */ new Set();
46
+ const out = [];
47
+ for (const model of models) {
48
+ const effort = effortFromModelLabel(model);
49
+ if (effort && !seen.has(effort)) {
50
+ seen.add(effort);
51
+ out.push(effort);
52
+ }
53
+ }
54
+ return out;
55
+ }
56
+ //#endregion
8
57
  //#region src/options.ts
9
58
  const KNOWN = [
10
59
  "harness",
@@ -63,16 +112,26 @@ const COMPARE_KEYS = [
63
112
  "gate",
64
113
  "minLift",
65
114
  "harness",
66
- "questions"
115
+ "questions",
116
+ "across"
117
+ ];
118
+ const QUESTION_KEYS = [
119
+ "question",
120
+ "model",
121
+ "across"
67
122
  ];
68
- const QUESTION_KEYS = ["question", "model"];
69
123
  const QUESTION_EXAMPLE = `questions: ['Which handles state more cleanly?']`;
70
- const ID = /^[A-Za-z0-9._:@+-]+$/;
124
+ const PAIR_FACTORS = ["environment", "harness"];
125
+ const ACROSS_HINT = `'environment' (vary the environment, same harness) or 'harness' (vary the harness, same environment)`;
126
+ const ACROSS_MEAN = " Did you mean \"across\"? It is the factor you vary: across: 'environment'.";
127
+ const ID = /^[A-Za-z0-9._:@+\-=[\]]+$/;
71
128
  const sanitize = (text) => (text.split("/").at(-1) ?? text).replace(/[^A-Za-z0-9._:@-]+/g, "-");
72
129
  function harnessId(h) {
73
130
  if (h.id) return h.id;
74
- if (h.kind === "fake") return "fake";
75
- return h.model ? `${h.kind}:${sanitize(h.model)}` : h.kind;
131
+ const effort = harnessEffort(h);
132
+ const suffix = effort ? `[effort=${sanitize(effort)}]` : "";
133
+ if (h.kind === "fake") return `fake${suffix}`;
134
+ return `${h.model ? `${h.kind}:${sanitize(h.model)}` : h.kind}${suffix}`;
76
135
  }
77
136
  function installId(install) {
78
137
  if (!install?.length) return "";
@@ -114,11 +173,15 @@ function checkQuestion(item, where) {
114
173
  if (item.trim()) return item;
115
174
  throw new UsageError(`compare.questions in ${where} is an empty string. Ask something, e.g. ${QUESTION_EXAMPLE}.`);
116
175
  }
117
- if (typeof item !== "object" || item === null || Array.isArray(item)) throw new UsageError(`compare.questions in ${where} takes strings or { question, model? } (got ${describe(item)}), e.g. ${QUESTION_EXAMPLE}.`);
176
+ if (typeof item !== "object" || item === null || Array.isArray(item)) throw new UsageError(`compare.questions in ${where} takes strings or { question, model?, across? } (got ${describe(item)}), e.g. ${QUESTION_EXAMPLE}.`);
118
177
  const unknown = Object.keys(item).filter((k) => !QUESTION_KEYS.includes(k));
119
- if (unknown.length) throw new UsageError(`compare.questions in ${where} takes { question, model? } (got ${unknown.map((k) => `"${k}"`).join(", ")}).`);
120
- const { question, model } = item;
178
+ if (unknown.length) {
179
+ const hint = unknown.some((k) => k === "cut" || k === "cuts") ? ACROSS_MEAN : "";
180
+ throw new UsageError(`compare.questions in ${where} takes { question, model?, across? } (got ${unknown.map((k) => `"${k}"`).join(", ")}).${hint}`);
181
+ }
182
+ const { question, model, across } = item;
121
183
  if (typeof question !== "string" || !question.trim()) throw new UsageError(`compare.questions in ${where} has an entry without its question (got ${describe(question)}), e.g. { question: 'Which is cleaner?', model: 'google/gemini-3.8-flash' }.`);
184
+ if (across !== void 0) checkAcross(across, where, question);
122
185
  if (model !== void 0) {
123
186
  if (typeof model !== "string" || checkModelString(model)) throw new UsageError(`compare.questions "${question}" in ${where}: model is a 'provider/model' string, e.g. 'google/gemini-3.8-flash' (got ${describe(model)})`);
124
187
  if (isEvaluationModel(model)) throw new UsageError(`compare.questions "${question}" in ${where} names ${model}, an evaluation model: it scores yes/no questions and can't pick between two attempts. Use a language model, e.g. 'google/gemini-3.8-flash'.`);
@@ -133,16 +196,31 @@ function checkQuestions(value, where) {
133
196
  const dupe = texts.find((t, i) => texts.indexOf(t) !== i);
134
197
  if (dupe) throw new UsageError(`compare.questions in ${where} asks "${dupe}" twice`);
135
198
  }
199
+ function checkAcross(value, where, question) {
200
+ if (PAIR_FACTORS.includes(value)) return;
201
+ throw new UsageError(`compare.questions "${question}" in ${where}: across is ${ACROSS_HINT} (got ${describe(value)}). Leave it out to vary both.`);
202
+ }
203
+ function checkAcrosses(value, where) {
204
+ const list = Array.isArray(value) ? value : [value];
205
+ if (list.length === 0) throw new UsageError(`compare.across in ${where} is ${ACROSS_HINT}, or a list of those (got ${describe(value)}). Leave it out to vary both.`);
206
+ const seen = /* @__PURE__ */ new Set();
207
+ for (const item of list) {
208
+ if (!PAIR_FACTORS.includes(item)) throw new UsageError(`compare.across in ${where} is ${ACROSS_HINT}, or a list of those (got ${describe(item)}).`);
209
+ if (seen.has(item)) throw new UsageError(`compare.across in ${where} lists "${item}" twice`);
210
+ seen.add(item);
211
+ }
212
+ }
136
213
  function checkCompare(value, where) {
137
214
  if (Array.isArray(value)) throw new UsageError(`compare must be an object in ${where}. Use compare: { baseline, variants: [...] }.`);
138
215
  const spec = value;
139
- if (typeof value !== "object" || value === null || !Array.isArray(spec.variants)) throw new UsageError(`compare takes { variants, baseline? } (got ${describe(value)}) in ${where}. Use compare: { variants: [a, b], baseline?, gate?, minLift?, harness?, questions? }.`);
216
+ if (typeof value !== "object" || value === null || !Array.isArray(spec.variants)) throw new UsageError(`compare takes { variants, baseline? } (got ${describe(value)}) in ${where}. Use compare: { variants: [a, b], baseline?, gate?, minLift?, harness?, questions?, across? }.`);
140
217
  for (const key of Object.keys(value)) if (!COMPARE_KEYS.includes(key)) {
141
- const hint = key === "question" ? `. Did you mean "questions"? It's a list: ${QUESTION_EXAMPLE}.` : "";
218
+ const hint = key === "question" ? `. Did you mean "questions"? It's a list: ${QUESTION_EXAMPLE}.` : key === "cut" || key === "cuts" ? `.${ACROSS_MEAN}` : "";
142
219
  throw new UsageError(`Unknown compare option "${key}" in ${where}${hint}`);
143
220
  }
144
- const { baseline, variants, gate, minLift, harness, questions } = spec;
221
+ const { baseline, variants, gate, minLift, harness, questions, across } = spec;
145
222
  if (questions !== void 0) checkQuestions(questions, where);
223
+ if (across !== void 0) checkAcrosses(across, where);
146
224
  if (baseline !== void 0 && !isEnvironment(baseline)) throw new UsageError(`compare.baseline in ${where} must be an environment from defineEnvironment (got ${describe(baseline)}). It is the control; variants are not layered on it or on the eval's environment. Leave it out to use the eval's environment as the control.`);
147
225
  if (gate !== void 0 && !GATES.includes(gate)) throw new UsageError(`compare.gate must be one of ${GATES.join(", ")} in ${where}`);
148
226
  if (minLift !== void 0 && !(typeof minLift === "number" && minLift >= -1 && minLift <= 1)) throw new UsageError(`compare.minLift is points from -1 to 1 (got ${minLift}) in ${where}`);
@@ -150,11 +228,17 @@ function checkCompare(value, where) {
150
228
  if (variants.length === 0) throw new UsageError(`compare has no variants in ${where}. Give at least one environment.`);
151
229
  for (const v of variants) if (!isEnvironment(v)) throw new UsageError(`compare takes environments (got ${describe(v)}) in ${where}. Variants share the eval's prompt and checks; if a variant needs different checks, write a separate eval.`);
152
230
  }
231
+ /** `compare: false` and `environment` beside `compare.baseline` are never legal options. */
232
+ function refuseIllegalCompare(options, where) {
233
+ if (options.compare === false) throw new UsageError(`compare: false can't be set in ${where}. A profile turns compare off with limit.compare: false, which runs the baseline and strips the variants. On a group or eval, omit compare or pass compare: { baseline, variants }.`);
234
+ const baseline = options.compare !== null && typeof options.compare === "object" && "baseline" in options.compare ? options.compare.baseline : void 0;
235
+ if (options.environment !== void 0 && baseline !== void 0) throw new UsageError(`environment and compare.baseline can't both be set in ${where}. compare: { baseline, variants } names every arm, so drop environment, or drop baseline to make environment the control.`);
236
+ }
153
237
  /** Throws on keys that aren't options, and on values of the wrong shape, suggesting a fix. */
154
238
  function checkOptions(options, where, allowed = KNOWN) {
155
239
  for (const key of Object.keys(options)) {
156
240
  if (allowed.includes(key)) continue;
157
- const hint = SUGGEST[key] ? ` Did you mean "${SUGGEST[key]}"?` : "";
241
+ const hint = key === "pool" ? " pool is an option of evaluate.each, beside the cases: evaluate.each(cases, { pool: false })." : SUGGEST[key] ? ` Did you mean "${SUGGEST[key]}"?` : "";
158
242
  throw new UsageError(`Unknown option "${key}" in ${where}.${hint}`);
159
243
  }
160
244
  const o = options;
@@ -178,10 +262,8 @@ function checkOptions(options, where, allowed = KNOWN) {
178
262
  if (Array.isArray(o.environment)) throw new UsageError(`environment takes one environment, not a list (${where}). To compare environments, use compare: { baseline, variants: [a, b] }. baseline is the control; variants are not layered on it.`);
179
263
  if (!isEnvironment(o.environment)) throw new UsageError(`environment in ${where} must come from defineEnvironment(…) (got ${describe(o.environment)})`);
180
264
  }
181
- const raw = options;
182
- if (raw.compare === false) throw new UsageError(`compare: false can't be set in ${where}. A profile turns compare off with limit.compare: false, which runs the baseline and strips the variants. On a group or eval, omit compare or pass compare: { baseline, variants }.`);
265
+ refuseIllegalCompare(options, where);
183
266
  if (o.compare !== void 0) checkCompare(o.compare, where);
184
- if (raw.environment !== void 0 && o.compare?.baseline !== void 0) throw new UsageError(`environment and compare.baseline can't both be set in ${where}. compare: { baseline, variants } names every arm, so drop environment, or drop baseline to make environment the control.`);
185
267
  if (o.pin !== void 0) {
186
268
  const bad = Array.isArray(o.pin) ? o.pin.filter((k) => !PINNABLE.includes(k)) : [o.pin];
187
269
  if (bad.length) throw new UsageError(`pin accepts harness, runs and compare (got ${bad.map(String).join(", ")}) in ${where}`);
@@ -191,20 +273,46 @@ function checkOptions(options, where, allowed = KNOWN) {
191
273
  const CAPTURE_KEYS = [
192
274
  "viewport",
193
275
  "timeout",
194
- "browser"
276
+ "browser",
277
+ "model"
195
278
  ];
196
- /** Throws unless `capture` is a shallow-merge object with a viewport, timeout and/or browser. */
279
+ const CAPTURE_SHAPE = "{ viewport?, timeout?, browser?, model? }";
280
+ const CAPTURE_CALL_ONLY = /* @__PURE__ */ new Set([
281
+ "instructions",
282
+ "wait",
283
+ "name",
284
+ "path"
285
+ ]);
286
+ /** Throws unless `capture` is a shallow-merge object with a viewport, timeout, browser and/or model. */
197
287
  function checkCapture(value, where) {
198
- if (typeof value !== "object" || value === null || Array.isArray(value)) throw new UsageError(`capture is { viewport?, timeout?, browser? } (got ${JSON.stringify(value)}) in ${where}`);
288
+ if (typeof value !== "object" || value === null || Array.isArray(value)) throw new UsageError(`capture is ${CAPTURE_SHAPE} (got ${JSON.stringify(value)}) in ${where}`);
199
289
  const o = value;
290
+ if (o.instructions !== void 0) throw new UsageError(`c.capture() instructions need a vision model in ${where}. instructions is call-only on the call.`);
200
291
  const unknown = Object.keys(o).filter((k) => !CAPTURE_KEYS.includes(k));
201
- if (unknown.length) throw new UsageError(`Unknown capture key "${unknown[0]}" in ${where}. Use viewport, timeout, browser.`);
202
- if (o.viewport !== void 0) {
203
- const { width, height } = o.viewport;
204
- if ((typeof o.viewport === "object" && o.viewport !== null ? Object.keys(o.viewport) : []).some((k) => k !== "width" && k !== "height") || !(Number.isInteger(width) && width > 0) || !(Number.isInteger(height) && height > 0)) throw new UsageError(`capture.viewport is { width, height } in CSS pixels (got ${JSON.stringify(o.viewport)}) in ${where}`);
292
+ if (unknown.length) {
293
+ const key = unknown[0] ?? "";
294
+ if (key === "use" || key === "fake") throw new UsageError(`Unknown capture key "${key}" in ${where}. Set capture.model. Tests pass fakeInstructions from reeval/testing as instructions.`);
295
+ if (CAPTURE_CALL_ONLY.has(key)) throw new UsageError(`c.capture() ${key} is call-only on the call in ${where}. Use viewport, timeout, browser, model.`);
296
+ throw new UsageError(`Unknown capture key "${key}" in ${where}. Use viewport, timeout, browser, model.`);
205
297
  }
298
+ if (o.viewport !== void 0) checkViewport(o.viewport, where);
206
299
  if (o.timeout !== void 0) parseDuration(o.timeout);
207
300
  if (o.browser !== void 0 && typeof o.browser !== "boolean") throw new UsageError(`capture.browser is true or false (got ${JSON.stringify(o.browser)}) in ${where}`);
301
+ if (o.model !== void 0) checkCaptureModel(o.model, where);
302
+ }
303
+ function checkViewport(value, where) {
304
+ if (value === "full-page") return;
305
+ if (typeof value !== "object" || value === null || Array.isArray(value)) throw new UsageError(`capture.viewport is { width, height } or 'full-page' (got ${JSON.stringify(value)}) in ${where}`);
306
+ const o = value;
307
+ const keys = Object.keys(o);
308
+ if (keys.includes("fullPage")) throw new UsageError(`capture.viewport is { width, height } or 'full-page' in ${where}, not { height, fullPage }. Use viewport: 'full-page' for a tall shot.`);
309
+ const width = o.width;
310
+ const height = o.height;
311
+ if (keys.some((k) => k !== "width" && k !== "height") || !(Number.isInteger(width) && width > 0) || !(Number.isInteger(height) && height > 0)) throw new UsageError(`capture.viewport is { width, height } or 'full-page' (got ${JSON.stringify(value)}) in ${where}`);
312
+ }
313
+ function checkCaptureModel(value, where) {
314
+ if (typeof value !== "string" || !value.includes("/")) throw new UsageError(`capture.model is a 'provider/model' string, e.g. 'google/gemini-3.8-flash' (got ${JSON.stringify(value)}) in ${where}`);
315
+ if (isEvaluationModel(value)) throw new UsageError(`capture.model "${value}" in ${where} is an evaluation model: it scores yes/no questions and can't drive a capture. Use a language model that accepts images, e.g. 'google/gemini-3.8-flash'.`);
208
316
  }
209
317
  function applyHarness(inherited, value, where) {
210
318
  if (value === void 0) return inherited;
@@ -246,14 +354,31 @@ function checkUnique(list, where) {
246
354
  const seen = /* @__PURE__ */ new Set();
247
355
  for (const item of list) {
248
356
  const key = harnessId(item);
249
- if (!ID.test(key)) throw new UsageError(`The harness id "${key}" in ${where} may only use letters, digits and . _ : @ + -`);
357
+ if (!ID.test(key)) throw new UsageError(`The harness id "${key}" in ${where} may only use letters, digits and . _ : @ + - [ ] =`);
250
358
  if (seen.has(key)) throw new UsageError(`Two harnesses in ${where} resolve to the id "${key}". Give one an id, e.g. cursor({ model: '…', id: '…' })`);
251
359
  seen.add(key);
252
360
  }
253
361
  }
254
- const plannedQuestions = (value) => (value ?? []).map((q) => typeof q === "string" ? { question: q } : {
255
- question: q.question,
256
- ...q.model !== void 0 ? { model: q.model } : {}
362
+ /** A question's own `across`, else the one `compare.across` names when it names exactly one. */
363
+ const plannedAcross = (own, compare) => {
364
+ if (own) return own;
365
+ const list = compare === void 0 ? void 0 : Array.isArray(compare) ? compare : [compare];
366
+ return list?.length === 1 ? list[0] : void 0;
367
+ };
368
+ const plannedQuestions = (value, compareAcross) => (value ?? []).map((q) => {
369
+ if (typeof q === "string") {
370
+ const across = plannedAcross(void 0, compareAcross);
371
+ return across ? {
372
+ question: q,
373
+ across
374
+ } : { question: q };
375
+ }
376
+ const across = plannedAcross(q.across, compareAcross);
377
+ return {
378
+ question: q.question,
379
+ ...q.model !== void 0 ? { model: q.model } : {},
380
+ ...across ? { across } : {}
381
+ };
257
382
  });
258
383
  function normalizeCompare(value) {
259
384
  if (value === void 0) return void 0;
@@ -267,7 +392,7 @@ function normalizeCompare(value) {
267
392
  ...value.minLift !== void 0 ? { minLift: value.minLift } : {},
268
393
  ...value.harness ? { harness: value.harness.map((h) => typeof h === "string" ? h : harnessId(h)) } : {},
269
394
  of: value.variants.length,
270
- questions: plannedQuestions(value.questions)
395
+ questions: plannedQuestions(value.questions, value.across)
271
396
  };
272
397
  }
273
398
  function applyLevel(out, options, where, egress = "own") {
@@ -597,9 +722,11 @@ function evalPlan(r, attempts, origin) {
597
722
  }
598
723
  function captureNote(c) {
599
724
  const parts = [];
600
- if (c.viewport) parts.push(`${c.viewport.width}×${c.viewport.height}`);
725
+ if (c.viewport === "full-page") parts.push("full-page");
726
+ else if (c.viewport) parts.push(`${c.viewport.width}×${c.viewport.height}`);
601
727
  if (c.timeout !== void 0) parts.push(typeof c.timeout === "number" ? `${c.timeout}ms` : c.timeout);
602
728
  if (c.browser === false) parts.push("browser false");
729
+ if (c.model) parts.push(`model ${c.model}`);
603
730
  return parts.length ? `capture: ${parts.join(" · ")}` : void 0;
604
731
  }
605
732
  /** `--tag a --tag !b`: every entry must hold. */
@@ -607,6 +734,6 @@ function matchesTags(tags, filters) {
607
734
  return filters.every((f) => f.startsWith("!") ? !tags.includes(f.slice(1)) : tags.includes(f));
608
735
  }
609
736
  //#endregion
610
- export { evalPlan as a, levelOf as c, sandboxId as d, sandboxSetBy as f, unbrokeredError as h, checkOptions as i, matchesTags as l, unbrokered as m, cascade as n, expand as o, secretVarsIn as p, checkHarnesses as r, harnessId as s, brokeredIn as t, profileJudge as u };
737
+ export { resolvedEffortOf as _, evalPlan as a, levelOf as c, sandboxId as d, sandboxSetBy as f, harnessEffort as g, unbrokeredError as h, checkOptions as i, matchesTags as l, unbrokered as m, cascade as n, expand as o, secretVarsIn as p, checkHarnesses as r, harnessId as s, brokeredIn as t, profileJudge as u, servedEffortOf as v };
611
738
 
612
- //# sourceMappingURL=options-Ge_x32XE.js.map
739
+ //# sourceMappingURL=options-CKqyPGxX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options-CKqyPGxX.js","names":["raw"],"sources":["../src/harness/effort.ts","../src/options.ts"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { n as clip } from "./text-gEcKjAyp.js";
2
+ //#region src/compare/pairs.ts
3
+ /** The side a pair names: an arm within a harness, a harness across them. */
4
+ const sideName = (cut, side) => cut === "within" ? side.arm : side.harness;
5
+ /** Every two-element combination, in the order given. */
6
+ function combinations(items) {
7
+ const out = [];
8
+ for (let i = 0; i < items.length; i++) for (let j = i + 1; j < items.length; j++) out.push([items[i], items[j]]);
9
+ return out;
10
+ }
11
+ /** Distinct values in first-seen order. */
12
+ const distinct = (values) => [...new Set(values)];
13
+ /** Both pair kinds, in the order `pairsOf` builds them. */
14
+ const ALL_CUTS = ["within", "across"];
15
+ /**
16
+ * The pair kinds a question asks: `environment` varies the environment and holds the harness
17
+ * (`within`); `harness` varies the harness and holds the environment (`across`). Unset, both.
18
+ */
19
+ const acrossOf = (across) => {
20
+ if (across === "environment") return ["within"];
21
+ if (across === "harness") return ["across"];
22
+ return ALL_CUTS;
23
+ };
24
+ /**
25
+ * The pairs to judge. Within a harness, for each run, every two environments; across harnesses,
26
+ * for each environment and run, every two harnesses. Attempts that failed their deterministic
27
+ * checks are left out (they still count in the pass rate), so a pair missing a side isn't
28
+ * judged. The control environment comes first, then environments and harnesses in the order they
29
+ * first appear. `kinds` keeps one pair kind; omitted or empty, both run.
30
+ */
31
+ function pairsOf(attempts, kinds) {
32
+ const eligible = attempts.filter((a) => a.checksPassed);
33
+ const find = (harness, arm, run) => eligible.find((a) => a.harness === harness && a.arm === arm && a.run === run);
34
+ const harnesses = distinct(attempts.map((a) => a.harness));
35
+ const arms = distinct([...attempts.filter((a) => a.control).map((a) => a.arm), ...attempts.map((a) => a.arm)]);
36
+ const runs = [...new Set(attempts.map((a) => a.run))].sort((x, y) => x - y);
37
+ const want = new Set(kinds?.length ? kinds : ALL_CUTS);
38
+ const pairs = [];
39
+ if (want.has("within")) for (const harness of harnesses) for (const run of runs) for (const [x, y] of combinations(arms)) {
40
+ const a = find(harness, x, run);
41
+ const b = find(harness, y, run);
42
+ if (a && b) pairs.push({
43
+ cut: "within",
44
+ harness,
45
+ run,
46
+ a,
47
+ b
48
+ });
49
+ }
50
+ if (want.has("across")) for (const arm of arms) for (const run of runs) for (const [x, y] of combinations(harnesses)) {
51
+ const a = find(x, arm, run);
52
+ const b = find(y, arm, run);
53
+ if (a && b) pairs.push({
54
+ cut: "across",
55
+ arm,
56
+ run,
57
+ a,
58
+ b
59
+ });
60
+ }
61
+ return pairs;
62
+ }
63
+ /** Optimistic pair sides from planned attempts: every check is assumed to pass. */
64
+ function plannedSides(attempts) {
65
+ return attempts.map((a) => ({
66
+ harness: a.cell.harness,
67
+ arm: a.cell.environment,
68
+ run: a.n,
69
+ diff: "",
70
+ checksPassed: true,
71
+ control: a.cell.role === "control"
72
+ }));
73
+ }
74
+ /** The two sides in the order the model sees them: `a` first, or `b` first when swapped. */
75
+ const slots = (pair, swapped) => swapped ? [pair.b, pair.a] : [pair.a, pair.b];
76
+ /** Maps a blinded pick (`A` is the first slot) back to the side's name. */
77
+ function winnerOf(pair, swapped, pick) {
78
+ if (pick === "tie") return "tie";
79
+ const [first, second] = slots(pair, swapped);
80
+ return sideName(pair.cut, pick === "A" ? first : second);
81
+ }
82
+ /** Distinct stored reasons, in vote order, capped at `n`. */
83
+ function sampleReasons(votes, n = 3) {
84
+ const seen = /* @__PURE__ */ new Set();
85
+ const out = [];
86
+ for (const v of votes) {
87
+ if (!v.reason || seen.has(v.reason)) continue;
88
+ seen.add(v.reason);
89
+ out.push(v.reason);
90
+ if (out.length >= n) break;
91
+ }
92
+ return out;
93
+ }
94
+ /** A stored reason: trimmed, capped, omitted when empty. */
95
+ function voteReason(text) {
96
+ const trimmed = text?.trim();
97
+ if (!trimmed) return void 0;
98
+ return clip(trimmed, 200);
99
+ }
100
+ /** The vote a pick makes, with the pair's names. */
101
+ function voteOf(question, pair, swapped, pick, reason) {
102
+ const why = voteReason(reason);
103
+ return {
104
+ question,
105
+ cut: pair.cut,
106
+ ...pair.cut === "within" ? { harness: pair.harness } : { arm: pair.arm },
107
+ run: pair.run,
108
+ a: sideName(pair.cut, pair.a),
109
+ b: sideName(pair.cut, pair.b),
110
+ winner: winnerOf(pair, swapped, pick),
111
+ swapped,
112
+ ...why ? { reason: why } : {}
113
+ };
114
+ }
115
+ /**
116
+ * Each side's wins over the decided votes it was in, per cut. A tie decides nothing, so it counts
117
+ * for neither side; both orders of a pair count, since each is its own judgement.
118
+ */
119
+ function ratesOf(votes) {
120
+ const rates = /* @__PURE__ */ new Map();
121
+ const rate = (cut, name) => {
122
+ const key = `${cut}\0${name}`;
123
+ let found = rates.get(key);
124
+ if (!found) {
125
+ found = {
126
+ cut,
127
+ name,
128
+ wins: 0,
129
+ n: 0
130
+ };
131
+ rates.set(key, found);
132
+ }
133
+ return found;
134
+ };
135
+ for (const v of votes) {
136
+ if (v.winner === "tie") continue;
137
+ for (const name of [v.a, v.b]) {
138
+ const r = rate(v.cut, name);
139
+ r.n++;
140
+ if (v.winner === name) r.wins++;
141
+ }
142
+ }
143
+ const order = ["within", "across"];
144
+ return [...rates.values()].sort((x, y) => order.indexOf(x.cut) - order.indexOf(y.cut));
145
+ }
146
+ //#endregion
147
+ export { sampleReasons as a, voteReason as c, ratesOf as i, pairsOf as n, slots as o, plannedSides as r, voteOf as s, acrossOf as t };
148
+
149
+ //# sourceMappingURL=pairs-DDsjgm5F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairs-DDsjgm5F.js","names":[],"sources":["../src/compare/pairs.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { f as globFilter } from "./environment-DiCljXMD.js";
1
+ import { f as globFilter } from "./environment-1jE-HhO-.js";
2
2
  //#region src/judge/patch.ts
3
3
  /** Installed dependencies: one entry per directory, never one per file. */
4
4
  const DEPENDENCY_DIR = /^(.*?(?:^|\/)(?:node_modules|\.venv|\.dart_tool|\.pub-cache|__pycache__)\/)/;
@@ -115,4 +115,4 @@ function diffPath(part) {
115
115
  //#endregion
116
116
  export { judgeDiff as n, patchForJudge as r, collapseDependencies as t };
117
117
 
118
- //# sourceMappingURL=patch-CGCVipPu.js.map
118
+ //# sourceMappingURL=patch-bDV8YFW0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch-CGCVipPu.js","names":[],"sources":["../src/judge/patch.ts"],"mappings":"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"}
1
+ {"version":3,"file":"patch-bDV8YFW0.js","names":[],"sources":["../src/judge/patch.ts"],"mappings":"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"}