reeval 0.4.0 → 0.6.1

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 (222) hide show
  1. package/THIRD_PARTY_NOTICES.md +5 -5
  2. package/assets/package.json +1 -1
  3. package/assets/pnpm-lock.yaml +61 -66
  4. package/dist/{agent-C9dLMCM7.js → agent-BrqDHAx6.js} +5 -5
  5. package/dist/{agent-C9dLMCM7.js.map → agent-BrqDHAx6.js.map} +1 -1
  6. package/dist/{agent-M70OWyfG.js → agent-bHgHIPVD.js} +4 -4
  7. package/dist/{agent-M70OWyfG.js.map → agent-bHgHIPVD.js.map} +1 -1
  8. package/dist/{analysis-CxSCt1YY.js → analysis-BV3TCznv.js} +9 -5
  9. package/dist/analysis-BV3TCznv.js.map +1 -0
  10. package/dist/{assemble-BmVT26kf.js → assemble-BB_dcnfh.js} +41 -15
  11. package/dist/assemble-BB_dcnfh.js.map +1 -0
  12. package/dist/assemble-DcLLkwnB.js +2 -0
  13. package/dist/bridge/index.mjs +1 -1
  14. package/dist/capture-EvOaSXj_.js +2 -0
  15. package/dist/capture-tcMRp6ks.js +587 -0
  16. package/dist/capture-tcMRp6ks.js.map +1 -0
  17. package/dist/{cli-BdxFLEIc.js → cli-BM-qbqO_.js} +80 -56
  18. package/dist/cli-BM-qbqO_.js.map +1 -0
  19. package/dist/cli.js +2 -2
  20. package/dist/{command-BtcBitmY.js → command-BT9i1I5S.js} +15 -14
  21. package/dist/command-BT9i1I5S.js.map +1 -0
  22. package/dist/command-Bn_kbh3B.js +2 -0
  23. package/dist/{command-ByqQ-v-j.js → command-BpoZJVeI.js} +14 -14
  24. package/dist/{command-ByqQ-v-j.js.map → command-BpoZJVeI.js.map} +1 -1
  25. package/dist/{command-CIsO5xdR.js → command-DATlIXj1.js} +10 -10
  26. package/dist/{command-CIsO5xdR.js.map → command-DATlIXj1.js.map} +1 -1
  27. package/dist/{command-CQiFfn-C.js → command-DITkSzxp.js} +71 -21
  28. package/dist/command-DITkSzxp.js.map +1 -0
  29. package/dist/{commands-CPrrZ2mI.js → commands-C0SFWd1T.js} +9 -7
  30. package/dist/commands-C0SFWd1T.js.map +1 -0
  31. package/dist/{commands-D3Dxgh60.js → commands-CDty3r_G.js} +1 -1
  32. package/dist/{config-B93Csktg.js → config-Cy_vLUbw.js} +13 -9
  33. package/dist/config-Cy_vLUbw.js.map +1 -0
  34. package/dist/db-4nMvBFNX.js +2 -0
  35. package/dist/{db-SpvY8l1g.js → db-iskAs8Ox.js} +13 -10
  36. package/dist/db-iskAs8Ox.js.map +1 -0
  37. package/dist/{dist-C2k9IvL3.js → dist-Dmm3bnKA.js} +4 -4
  38. package/dist/{dist-C2k9IvL3.js.map → dist-Dmm3bnKA.js.map} +1 -1
  39. package/dist/{docker-uNaAGE2C.js → docker-B9wx9-KX.js} +8 -4
  40. package/dist/{docker-uNaAGE2C.js.map → docker-B9wx9-KX.js.map} +1 -1
  41. package/dist/{docker-C2YwD_dh.js → docker-Ctnty6xd.js} +2 -2
  42. package/dist/{docker-C2YwD_dh.js.map → docker-Ctnty6xd.js.map} +1 -1
  43. package/dist/{docker-Bv1ZC6V7.js → docker-Di4o89kZ.js} +1 -1
  44. package/dist/{doctor-COH-levb.js → doctor-BMUVi-gC.js} +17 -16
  45. package/dist/doctor-BMUVi-gC.js.map +1 -0
  46. package/dist/duration-JsJrIWXq.js +26 -0
  47. package/dist/duration-JsJrIWXq.js.map +1 -0
  48. package/dist/{egress-C7Obb71D.js → egress-3bdvDu1s.js} +86 -24
  49. package/dist/{egress-C7Obb71D.js.map → egress-3bdvDu1s.js.map} +1 -1
  50. package/dist/{environment-lDFQY2BF.js → environment-DiCljXMD.js} +43 -40
  51. package/dist/environment-DiCljXMD.js.map +1 -0
  52. package/dist/errors-yDAEwmZo.js +15 -0
  53. package/dist/errors-yDAEwmZo.js.map +1 -0
  54. package/dist/files-BM78_nnF.js +2 -0
  55. package/dist/{files-CMoTBEul.js → files-CITwkC4O.js} +2 -2
  56. package/dist/{files-CMoTBEul.js.map → files-CITwkC4O.js.map} +1 -1
  57. package/dist/files-C_CsTMtM.js +2 -0
  58. package/dist/{files-BLlrhU4-.js → files-Ca0d6Uq3.js} +2 -2
  59. package/dist/{files-BLlrhU4-.js.map → files-Ca0d6Uq3.js.map} +1 -1
  60. package/dist/{files-BO9P6msM.js → files-DGhQZaXT.js} +92 -8
  61. package/dist/files-DGhQZaXT.js.map +1 -0
  62. package/dist/files-vgLA9tcj.js +2 -0
  63. package/dist/{git-LJp55bkf.js → git-BzyBakoB.js} +2 -2
  64. package/dist/{git-LJp55bkf.js.map → git-BzyBakoB.js.map} +1 -1
  65. package/dist/{harness-BbMShUC-.js → harness-8-dnGNgT.js} +2 -2
  66. package/dist/{harness-BbMShUC-.js.map → harness-8-dnGNgT.js.map} +1 -1
  67. package/dist/harness.d.ts +1 -1
  68. package/dist/harness.js +1 -1
  69. package/dist/{header-sPQ9Lq2S.js → header-IE-uIvX0.js} +2 -2
  70. package/dist/{header-sPQ9Lq2S.js.map → header-IE-uIvX0.js.map} +1 -1
  71. package/dist/{images-Pph_XJ68.js → images-QBtOj-_q.js} +6 -6
  72. package/dist/{images-Pph_XJ68.js.map → images-QBtOj-_q.js.map} +1 -1
  73. package/dist/index.d.ts +8 -4
  74. package/dist/index.js +51 -84
  75. package/dist/index.js.map +1 -1
  76. package/dist/{init-BcYpzHXs.js → init-B47uIoHu.js} +7 -9
  77. package/dist/init-B47uIoHu.js.map +1 -0
  78. package/dist/init-DIAJuCs2.js +2 -0
  79. package/dist/{jiti-DWsGEgxD.js → jiti-BcJHCtrb.js} +2 -2
  80. package/dist/{jiti-DWsGEgxD.js.map → jiti-BcJHCtrb.js.map} +1 -1
  81. package/dist/{judge-D6wqgTDp.js → judge-7WjNdU9z.js} +5 -5
  82. package/dist/judge-7WjNdU9z.js.map +1 -0
  83. package/dist/judge.d.ts +1 -1
  84. package/dist/judge.js +1 -1
  85. package/dist/{matchers-DbFPZQgA.js → matchers-Bp-OH1vj.js} +2 -2
  86. package/dist/{matchers-DbFPZQgA.js.map → matchers-Bp-OH1vj.js.map} +1 -1
  87. package/dist/{model-CJ6USX6C.js → model-BeoRxCcJ.js} +1 -1
  88. package/dist/{model-f0wprGPm.js → model-Bv8uUZ07.js} +2 -2
  89. package/dist/{model-f0wprGPm.js.map → model-Bv8uUZ07.js.map} +1 -1
  90. package/dist/model-C_B5JrhL.js +2 -0
  91. package/dist/{model-DUZtNaYR.js → model-Cp6NoAT3.js} +8 -6
  92. package/dist/{model-DUZtNaYR.js.map → model-Cp6NoAT3.js.map} +1 -1
  93. package/dist/{model-ORtLm2UB.js → model-CtrJdFi6.js} +157 -7
  94. package/dist/model-CtrJdFi6.js.map +1 -0
  95. package/dist/{node-OXPxBD2N.js → node-Co7EXge0.js} +4 -3
  96. package/dist/{node-OXPxBD2N.js.map → node-Co7EXge0.js.map} +1 -1
  97. package/dist/{options-Ftb2gE01.js → options-DVB78W8X.js} +161 -58
  98. package/dist/options-DVB78W8X.js.map +1 -0
  99. package/dist/{patch-BxqggH-T.js → patch-CGCVipPu.js} +2 -2
  100. package/dist/{patch-BxqggH-T.js.map → patch-CGCVipPu.js.map} +1 -1
  101. package/dist/{paths-CBvm6pap.js → paths-BmR-7tx3.js} +7 -3
  102. package/dist/{paths-CBvm6pap.js.map → paths-BmR-7tx3.js.map} +1 -1
  103. package/dist/{plan-BkhLKrsN.js → plan-Bsge1_cc.js} +3 -3
  104. package/dist/{plan-BkhLKrsN.js.map → plan-Bsge1_cc.js.map} +1 -1
  105. package/dist/{preflight-D3cJETui.js → preflight-B5ue4TlX.js} +1 -1
  106. package/dist/{preflight-CuvY0o3B.js → preflight-BOstyJDX.js} +3 -3
  107. package/dist/{preflight-CuvY0o3B.js.map → preflight-BOstyJDX.js.map} +1 -1
  108. package/dist/{prepare-CVuTk5F9.js → prepare-ChIEi8hP.js} +2 -2
  109. package/dist/{prepare-BI9j2-H-.js → prepare-jpXfdH-9.js} +6 -5
  110. package/dist/prepare-jpXfdH-9.js.map +1 -0
  111. package/dist/{provenance-6n49wska.js → provenance-BTJCjEPg.js} +2 -2
  112. package/dist/{provenance-6n49wska.js.map → provenance-BTJCjEPg.js.map} +1 -1
  113. package/dist/{providers-BFapaM2D.js → providers-BJCxWIm4.js} +4 -4
  114. package/dist/{providers-BFapaM2D.js.map → providers-BJCxWIm4.js.map} +1 -1
  115. package/dist/{providers-Cay8pI0y.js → providers-DxVIaae1.js} +1 -1
  116. package/dist/query-BtLxk32J.js +2 -0
  117. package/dist/{query-CnstTDt8.js → query-Cpe659ni.js} +3 -3
  118. package/dist/{query-CnstTDt8.js.map → query-Cpe659ni.js.map} +1 -1
  119. package/dist/{questions-Cm321-Mo.js → questions-ZdT3JDyQ.js} +4 -4
  120. package/dist/{questions-Cm321-Mo.js.map → questions-ZdT3JDyQ.js.map} +1 -1
  121. package/dist/{results-D9GgBYw5.js → results-CiJzkjNI.js} +4 -4
  122. package/dist/{results-D9GgBYw5.js.map → results-CiJzkjNI.js.map} +1 -1
  123. package/dist/{root-Zeokqt3-.js → root-CvdRlRZX.js} +3 -3
  124. package/dist/{root-Zeokqt3-.js.map → root-CvdRlRZX.js.map} +1 -1
  125. package/dist/{sandbox-CO__l-i1.js → sandbox--ZXuscAZ.js} +4 -3
  126. package/dist/sandbox--ZXuscAZ.js.map +1 -0
  127. package/dist/sandbox.d.ts +1 -1
  128. package/dist/sandbox.js +1 -1
  129. package/dist/server-CN3lGbK-.js +2 -0
  130. package/dist/{server-DsmIrBzi.js → server-CSSXF89R.js} +9 -9
  131. package/dist/{server-DsmIrBzi.js.map → server-CSSXF89R.js.map} +1 -1
  132. package/dist/{source-DJ1c8jwe.js → source-BcHShRWU.js} +2 -2
  133. package/dist/{source-DJ1c8jwe.js.map → source-BcHShRWU.js.map} +1 -1
  134. package/dist/source-CxLRUqU2.js +2 -0
  135. package/dist/{src-B1OT_Zhf.js → src-B3J1D0nL.js} +51 -68
  136. package/dist/src-B3J1D0nL.js.map +1 -0
  137. package/dist/{src-V-iU5X9S.js → src-BRdoxjJS.js} +16 -16
  138. package/dist/{src-V-iU5X9S.js.map → src-BRdoxjJS.js.map} +1 -1
  139. package/dist/src-Ba3zMSdv.js +3 -0
  140. package/dist/{src-D0RdqpNb.js → src-BjVw2K4H.js} +4 -4
  141. package/dist/{src-D0RdqpNb.js.map → src-BjVw2K4H.js.map} +1 -1
  142. package/dist/src-BpVFmHqj.js +3 -0
  143. package/dist/src-CJONyPRm.js +3 -0
  144. package/dist/src-CLO4dUg7.js +3 -0
  145. package/dist/{src-BAiYD4eC.js → src-CdwJuMBO.js} +25 -5
  146. package/dist/src-CdwJuMBO.js.map +1 -0
  147. package/dist/{src-DWk0e7ix.js → src-Czhg5ONv.js} +54 -58
  148. package/dist/src-Czhg5ONv.js.map +1 -0
  149. package/dist/src-DQCjANtm.js +3 -0
  150. package/dist/{src-DfEAlC9s.js → src-Dk96a9w7.js} +4 -4
  151. package/dist/{src-DfEAlC9s.js.map → src-Dk96a9w7.js.map} +1 -1
  152. package/dist/{src-BmBFlEIe.js → src-DyQJdvp2.js} +8 -6
  153. package/dist/{src-BmBFlEIe.js.map → src-DyQJdvp2.js.map} +1 -1
  154. package/dist/{src-BC5FFzE8.js → src-a6y9cGkR.js} +1 -1
  155. package/dist/src-yCDQ7kpQ.js +4 -0
  156. package/dist/state-CeYoWFWx.js +2 -0
  157. package/dist/{state-DFbJrVi3.js → state-evRYxV_q.js} +17 -17
  158. package/dist/{state-DFbJrVi3.js.map → state-evRYxV_q.js.map} +1 -1
  159. package/dist/studio-app/assets/{index-B1Pf3LAT.css → index-CUx6GoL5.css} +1 -1
  160. package/dist/studio-app/assets/{index-BhorHbrj.js → index-WQPq5K3E.js} +9 -9
  161. package/dist/studio-app/index.html +2 -2
  162. package/dist/{summary-WR5qLj_z.js → summary-CIw18kb-.js} +6 -6
  163. package/dist/{summary-WR5qLj_z.js.map → summary-CIw18kb-.js.map} +1 -1
  164. package/dist/{summary-CEMYhzXm.js → summary-DTUCNA-v.js} +5 -3
  165. package/dist/summary-DTUCNA-v.js.map +1 -0
  166. package/dist/{tools-DN-cJcfi.js → tools-By2WuNxm.js} +3 -3
  167. package/dist/{tools-DN-cJcfi.js.map → tools-By2WuNxm.js.map} +1 -1
  168. package/dist/{types-B_CqVrOS.d.ts → types-C2Gl05_c.d.ts} +128 -13
  169. package/dist/types-C5vI3g1C.js.map +1 -1
  170. package/dist/view/index.d.ts +56 -5
  171. package/dist/view/index.js +5 -5
  172. package/dist/views-BEurSpHC.js +3 -0
  173. package/dist/{views-DNbUdW9d.js → views-BJ0i1Iuw.js} +4 -4
  174. package/dist/{views-DNbUdW9d.js.map → views-BJ0i1Iuw.js.map} +1 -1
  175. package/dist/{worker-entry-CJmG4hhE.js → worker-entry-mCctDzig.js} +6 -6
  176. package/dist/{worker-entry-CJmG4hhE.js.map → worker-entry-mCctDzig.js.map} +1 -1
  177. package/dist/{workspace-QtlJtRut.js → workspace-Bl1SiRQa.js} +4 -4
  178. package/dist/{workspace-QtlJtRut.js.map → workspace-Bl1SiRQa.js.map} +1 -1
  179. package/dist/{workspace-CmSp2MXO.js → workspace-CvAPfa8b.js} +1 -1
  180. package/package.json +7 -7
  181. package/dist/analysis-CxSCt1YY.js.map +0 -1
  182. package/dist/assemble-BmVT26kf.js.map +0 -1
  183. package/dist/assemble-DZiN1p_E.js +0 -2
  184. package/dist/cli-BdxFLEIc.js.map +0 -1
  185. package/dist/command-BtcBitmY.js.map +0 -1
  186. package/dist/command-CQiFfn-C.js.map +0 -1
  187. package/dist/command-DllipyoK.js +0 -2
  188. package/dist/commands-CPrrZ2mI.js.map +0 -1
  189. package/dist/config-B93Csktg.js.map +0 -1
  190. package/dist/db-DIE0bsNO.js +0 -2
  191. package/dist/db-SpvY8l1g.js.map +0 -1
  192. package/dist/doctor-COH-levb.js.map +0 -1
  193. package/dist/environment-lDFQY2BF.js.map +0 -1
  194. package/dist/errors-CSxfJ4qu.js +0 -11
  195. package/dist/errors-CSxfJ4qu.js.map +0 -1
  196. package/dist/files-BO9P6msM.js.map +0 -1
  197. package/dist/files-BRWmQJ-9.js +0 -2
  198. package/dist/files-BvHCFWgD.js +0 -2
  199. package/dist/files-Bwr8UW4b.js +0 -2
  200. package/dist/init-BcYpzHXs.js.map +0 -1
  201. package/dist/init-YS5qBRwV.js +0 -2
  202. package/dist/judge-D6wqgTDp.js.map +0 -1
  203. package/dist/model-CNoc8t2Y.js +0 -2
  204. package/dist/model-ORtLm2UB.js.map +0 -1
  205. package/dist/options-Ftb2gE01.js.map +0 -1
  206. package/dist/prepare-BI9j2-H-.js.map +0 -1
  207. package/dist/query-Br77sQYj.js +0 -2
  208. package/dist/sandbox-CO__l-i1.js.map +0 -1
  209. package/dist/server-D5Zq3I5N.js +0 -2
  210. package/dist/source-BgqURlel.js +0 -2
  211. package/dist/src-B1OT_Zhf.js.map +0 -1
  212. package/dist/src-BAiYD4eC.js.map +0 -1
  213. package/dist/src-Bi2Y3EkE.js +0 -3
  214. package/dist/src-C8WNyopo.js +0 -3
  215. package/dist/src-CYz-TreZ.js +0 -3
  216. package/dist/src-C_91Ln3Z.js +0 -4
  217. package/dist/src-DWk0e7ix.js.map +0 -1
  218. package/dist/src-gPJFzHcK.js +0 -3
  219. package/dist/src-gVzsO4_f.js +0 -3
  220. package/dist/state-Joc2b4qk.js +0 -2
  221. package/dist/summary-CEMYhzXm.js.map +0 -1
  222. package/dist/views-DnYbVkKg.js +0 -3
@@ -1,13 +1,82 @@
1
1
  import { a as maskedMatch, i as findSecrets } from "./redact-DJ9JCShu.js";
2
- import { t as BUILD_ID } from "./root-Zeokqt3-.js";
3
- import { t as RUN_ID } from "./paths-CBvm6pap.js";
2
+ import { t as BUILD_ID } from "./root-CvdRlRZX.js";
3
+ import { t as RUN_ID } from "./paths-BmR-7tx3.js";
4
4
  import { a as fromCwd, c as relativeFile, l as sha256 } from "./ids-Bp6ut7ZD.js";
5
- import { t as runHeader } from "./header-sPQ9Lq2S.js";
5
+ import { r as repoTop, t as git } from "./git-BzyBakoB.js";
6
+ import { t as runHeader } from "./header-IE-uIvX0.js";
6
7
  import { s as readableRecord, t as NewerSchemaError } from "./record-CbuQH4l1.js";
7
- import { o as renderSummary } from "./summary-CEMYhzXm.js";
8
- import { dirname, join } from "node:path";
8
+ import { o as renderSummary } from "./summary-DTUCNA-v.js";
9
+ import { dirname, isAbsolute, join } from "node:path";
9
10
  import { randomBytes } from "node:crypto";
10
11
  import { link, mkdir, readFile, readdir, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
12
+ //#region src/history/ignore.ts
13
+ /**
14
+ * Un-ignores recorded artifacts. A parent `*.log` would otherwise drop `setup.log` and
15
+ * `checks/<n>.log` when someone `git add`s the history folder.
16
+ */
17
+ const HISTORY_GITIGNORE = `# Un-ignore recorded files. A parent *.log drops setup.log and checks/*.log.
18
+ !*.json
19
+ !*.jsonl
20
+ !*.md
21
+ !*.patch
22
+ !*.log
23
+ `;
24
+ const historyGitignorePath = (historyDir) => join(historyDir, ".gitignore");
25
+ /** Writes the history-folder `.gitignore` when it's missing; leaves a file that's already there. */
26
+ async function ensureHistoryGitignore(historyDir) {
27
+ const path = historyGitignorePath(historyDir);
28
+ try {
29
+ await readFile(path);
30
+ } catch (error) {
31
+ if (error.code !== "ENOENT") throw error;
32
+ await mkdir(historyDir, { recursive: true });
33
+ await writeFile(path, HISTORY_GITIGNORE);
34
+ }
35
+ return path;
36
+ }
37
+ /** `git check-ignore -v` one line: `<source>:<line>:<pattern><TAB><pathname>`. */
38
+ function parseCheckIgnore(line) {
39
+ const tab = line.indexOf(" ");
40
+ if (tab < 0) return null;
41
+ const meta = line.slice(0, tab);
42
+ const pathname = line.slice(tab + 1);
43
+ const match = meta.match(/^(.*):(\d+):(.*)$/);
44
+ if (!match) return null;
45
+ const [, source, lineNo, rule] = match;
46
+ if (!source || !rule) return null;
47
+ if (rule.startsWith("!")) return null;
48
+ return {
49
+ path: pathname,
50
+ rule,
51
+ source: `${source}:${lineNo}`
52
+ };
53
+ }
54
+ /**
55
+ * Files among `files` that git would ignore (so `git add` of the history folder would drop them).
56
+ * Empty when this isn't a git repo or git can't tell.
57
+ */
58
+ async function ignoredRecordedFiles(root, files) {
59
+ if (files.length === 0) return [];
60
+ const top = await repoTop(root);
61
+ if (!top) return [];
62
+ const r = await git(top, [
63
+ "check-ignore",
64
+ "-v",
65
+ "--no-index",
66
+ "--stdin"
67
+ ], { input: `${files.map((f) => relativeFile(top, f)).join("\n")}\n` });
68
+ if (r.code !== 0) return [];
69
+ return r.stdout.toString("utf8").split("\n").filter(Boolean).flatMap((line) => {
70
+ const parsed = parseCheckIgnore(line);
71
+ if (!parsed) return [];
72
+ const abs = isAbsolute(parsed.path) ? parsed.path : join(top, parsed.path);
73
+ return [{
74
+ ...parsed,
75
+ path: fromCwd(abs)
76
+ }];
77
+ });
78
+ }
79
+ //#endregion
11
80
  //#region src/history/secret-scan.ts
12
81
  /** Findings shown per file; the rest are counted. */
13
82
  const SHOWN = 5;
@@ -305,7 +374,7 @@ async function writeRun(dir, record, artifacts) {
305
374
  };
306
375
  }
307
376
  const keeps = (e, level) => level === "all" || level === "failures" && (e.outcome === "fail" || e.outcome === "infra_error");
308
- const refsOf = (e) => e.attempts.flatMap((a) => [...Object.values(a.files), ...a.checks.flatMap((c) => c.log ? [c.log] : [])]);
377
+ const refsOf = (e) => e.attempts.flatMap((a) => [...Object.values(a.files).flatMap((v) => Array.isArray(v) ? v : v ? [v] : []), ...a.checks.flatMap((c) => c.log ? [c.log] : [])]);
309
378
  /** Why a patch that looked like it held a secret isn't in the record. Starts with `SECRET_NOTE`. */
310
379
  const SECRET_NOTE = "not kept: it looked like it held a secret";
311
380
  /** Promotes a scratch run into the committed history folder. reeval never commits it. */
@@ -360,16 +429,31 @@ async function recordRun(options) {
360
429
  throw new HistoryError(`Refusing to record ${runId}: ${found.length} file(s) look like they contain a secret:\n${lines.map((l) => ` ${l}`).join("\n")}\nCheck them, then pass --skip-secret-scan if these are false positives.`);
361
430
  }
362
431
  }
432
+ await ensureHistoryGitignore(options.historyDir);
363
433
  const written = await writeRun(options.historyDir, record, files);
364
434
  const bytes = [...files.values()].reduce((n, b) => n + b.length, encodeRecord(record).length);
435
+ if (!written.created) return {
436
+ ...written,
437
+ files: files.size,
438
+ bytes,
439
+ droppedPatch,
440
+ ignored: []
441
+ };
442
+ const writtenPaths = [
443
+ written.recordPath,
444
+ historyGitignorePath(options.historyDir),
445
+ ...[...files.keys()].map((path) => join(written.artifactDir ?? options.historyDir, ...path.split("/")))
446
+ ];
447
+ const ignored = await ignoredRecordedFiles(options.root, writtenPaths);
365
448
  return {
366
449
  ...written,
367
450
  files: files.size,
368
451
  bytes,
369
- droppedPatch
452
+ droppedPatch,
453
+ ignored
370
454
  };
371
455
  }
372
456
  //#endregion
373
457
  export { listRuns as a, recentRecords as c, recordRun as d, runDir as f, writeRun as h, encodeRecord as i, recordFile as l, warnUnreadable as m, NewerRecordError as n, parseRecord as o, scratchDir as p, SECRET_NOTE as r, readRecord as s, HistoryError as t, recordNames as u };
374
458
 
375
- //# sourceMappingURL=files-BO9P6msM.js.map
459
+ //# sourceMappingURL=files-DGhQZaXT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files-DGhQZaXT.js","names":[],"sources":["../src/history/ignore.ts","../src/history/secret-scan.ts","../src/history/files.ts"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { n as listAnalyses, r as listNotes } from "./files-CITwkC4O.js";
2
+ export { listAnalyses, listNotes };
@@ -1,5 +1,5 @@
1
1
  import { o as redactSecrets } from "./redact-DJ9JCShu.js";
2
- import { et as run } from "./src-V-iU5X9S.js";
2
+ import { et as run } from "./src-BRdoxjJS.js";
3
3
  import { resolve } from "node:path";
4
4
  //#region src/git.ts
5
5
  /** Runs git without a shell. Never include credentials in `args`; pass them through `env`. */
@@ -41,4 +41,4 @@ async function gitText(cwd, args, options) {
41
41
  //#endregion
42
42
  export { gitText as n, repoTop as r, git as t };
43
43
 
44
- //# sourceMappingURL=git-LJp55bkf.js.map
44
+ //# sourceMappingURL=git-BzyBakoB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-LJp55bkf.js","names":[],"sources":["../src/git.ts"],"mappings":";;;;;AASA,eAAsB,IACpB,KACA,MACA,UAAsB,CAAC,GACH;CACpB,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM;EAC/B;EACA,KAAK;GAAE,qBAAqB;GAAK,QAAQ;GAAK,GAAG,QAAQ;EAAI;EAC7D,OAAO,QAAQ;EACf,UAAU;EACV,QAAQ;CACV,CAAC;CACD,OAAO;EAAE,MAAM,EAAE;EAAU,QAAQ,EAAE;EAAQ,QAAQ,cAAc,EAAE,MAAM;CAAE;AAC/E;;;;;AAMA,eAAsB,QAAQ,MAAsC;CAClE,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,aAAa,CAAC;CACtD,OAAO,EAAE,SAAS,IAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI;AAC1E;AAEA,IAAa,WAAb,cAA8B,MAAM;CAClC,OAAgB;AAClB;;AAGA,eAAsB,QAAQ,KAAa,MAAgB,SAAuC;CAChG,MAAM,IAAI,MAAM,IAAI,KAAK,MAAM,OAAO;CACtC,IAAI,EAAE,SAAS,GAAG,MAAM,IAAI,SAAS,OAAO,KAAK,GAAG,WAAW,EAAE,OAAO,KAAK,GAAG;CAChF,OAAO,EAAE,OAAO,SAAS,MAAM,CAAC,CAAC,KAAK;AACxC"}
1
+ {"version":3,"file":"git-BzyBakoB.js","names":[],"sources":["../src/git.ts"],"mappings":";;;;;AASA,eAAsB,IACpB,KACA,MACA,UAAsB,CAAC,GACH;CACpB,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM;EAC/B;EACA,KAAK;GAAE,qBAAqB;GAAK,QAAQ;GAAK,GAAG,QAAQ;EAAI;EAC7D,OAAO,QAAQ;EACf,UAAU;EACV,QAAQ;CACV,CAAC;CACD,OAAO;EAAE,MAAM,EAAE;EAAU,QAAQ,EAAE;EAAQ,QAAQ,cAAc,EAAE,MAAM;CAAE;AAC/E;;;;;AAMA,eAAsB,QAAQ,MAAsC;CAClE,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,aAAa,CAAC;CACtD,OAAO,EAAE,SAAS,IAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI;AAC1E;AAEA,IAAa,WAAb,cAA8B,MAAM;CAClC,OAAgB;AAClB;;AAGA,eAAsB,QAAQ,KAAa,MAAgB,SAAuC;CAChG,MAAM,IAAI,MAAM,IAAI,KAAK,MAAM,OAAO;CACtC,IAAI,EAAE,SAAS,GAAG,MAAM,IAAI,SAAS,OAAO,KAAK,GAAG,WAAW,EAAE,OAAO,KAAK,GAAG;CAChF,OAAO,EAAE,OAAO,SAAS,MAAM,CAAC,CAAC,KAAK;AACxC"}
@@ -1,4 +1,4 @@
1
- import { t as UsageError } from "./errors-CSxfJ4qu.js";
1
+ import { n as UsageError } from "./errors-yDAEwmZo.js";
2
2
  import { s as resolveOpenCodeProvider } from "./opencode-providers-DJVocFOU.js";
3
3
  //#region src/harness.ts
4
4
  /**
@@ -128,4 +128,4 @@ const fakeHarness = (options = {}) => {
128
128
  //#endregion
129
129
  export { fakeHarness as a, opencodeModelError as c, cursor as i, pi as l, claudeCode as n, goose as o, codex as r, opencode as s, antigravity as t };
130
130
 
131
- //# sourceMappingURL=harness-BbMShUC-.js.map
131
+ //# sourceMappingURL=harness-8-dnGNgT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-BbMShUC-.js","names":[],"sources":["../src/harness.ts"],"mappings":"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"}
1
+ {"version":3,"file":"harness-8-dnGNgT.js","names":[],"sources":["../src/harness.ts"],"mappings":"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"}
package/dist/harness.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as OpenCodeHarnessDescriptor, B as GooseHarnessDescriptor, P as FakeHarnessDescriptor, R as FakeScriptStep, U as HarnessDescriptor, _ as CursorHarnessDescriptor, l as ClaudeCodeHarnessDescriptor, nt as PiHarnessDescriptor, r as AntigravityHarnessDescriptor, t as AgentHarnessDescriptor, u as CodexHarnessDescriptor, x as Duration } from "./types-B_CqVrOS.js";
1
+ import { H as FakeScriptStep, R as FakeHarnessDescriptor, T as Duration, W as GooseHarnessDescriptor, m as CodexHarnessDescriptor, ot as PiHarnessDescriptor, p as ClaudeCodeHarnessDescriptor, q as HarnessDescriptor, r as AntigravityHarnessDescriptor, rt as OpenCodeHarnessDescriptor, t as AgentHarnessDescriptor, x as CursorHarnessDescriptor } from "./types-C2Gl05_c.js";
2
2
  //#region src/harness.d.ts
3
3
  /**
4
4
  * Cursor's agent through the Cursor TypeScript SDK, in the sandbox. `model` is required (the SDK
package/dist/harness.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as fakeHarness, c as opencodeModelError, i as cursor, l as pi, n as claudeCode, o as goose, r as codex, s as opencode, t as antigravity } from "./harness-BbMShUC-.js";
1
+ import { a as fakeHarness, c as opencodeModelError, i as cursor, l as pi, n as claudeCode, o as goose, r as codex, s as opencode, t as antigravity } from "./harness-8-dnGNgT.js";
2
2
  export { antigravity, claudeCode, codex, cursor, fakeHarness, goose, opencode, opencodeModelError, pi };
@@ -1,4 +1,4 @@
1
- import { M as cellEffort } from "./model-ORtLm2UB.js";
1
+ import { V as cellEffort } from "./model-CtrJdFi6.js";
2
2
  //#region src/view/header.ts
3
3
  /** The derived header of one run: what listings, indexes and comparisons need without the record. */
4
4
  function runHeader(record, recorded) {
@@ -75,4 +75,4 @@ function runHeader(record, recorded) {
75
75
  //#endregion
76
76
  export { runHeader as t };
77
77
 
78
- //# sourceMappingURL=header-sPQ9Lq2S.js.map
78
+ //# sourceMappingURL=header-IE-uIvX0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-sPQ9Lq2S.js","names":[],"sources":["../src/view/header.ts"],"mappings":";;;AAIA,SAAgB,UAAU,QAAmB,UAAiC;CAC5E,OAAO;EACL,OAAO,OAAO;EACd;EACA,QAAQ,OAAO;EACf,WAAW,OAAO;EAClB,YAAY,OAAO;EACnB,QAAQ,OAAO;EACf,KAAK,OAAO,MACR;GAAE,KAAK,OAAO,IAAI;GAAK,QAAQ,OAAO,IAAI;GAAQ,OAAO,OAAO,IAAI;EAAM,IAC1E;EACJ,QAAQ,OAAO,OAAO;EACtB,IACE,OAAO,OAAO,SAAS,OACnB;GACE,UAAU,OAAO,OAAO;GACxB,QAAQ,OAAO,OAAO;GACtB,IAAI,OAAO,OAAO;EACpB,IACA;EACN,WAAW,OAAO,MAAM,UAAU,KAAK,MAAM,EAAE,EAAE;EACjD,SAAS,OAAO;EAChB,OAAO,OAAO,KAAK;EACnB,OAAO;GACL,UAAU,OAAO,MAAM,OAAO,KAAK,MAAM,EAAE,EAAE;GAC7C,WAAW,CAAC,GAAG,IAAI,IAAI,OAAO,MAAM,OAAO,SAAS,MAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAE,CAAC,CAAC;GAC5F,WAAW,OAAO,MAAM,UAAU,KAAK,MAAM,EAAE,EAAE;GACjD,cAAc,OAAO,aAAa,KAC/B,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,QAAQ,YAAY,EAAE,CAAC,CAAC,MAAM,GAAG,EAAE,GAClE;GACA,YAAY,OAAO,MAAM,MAAM;GAC/B,aAAa,OAAO,MAAM,MAAM;GAChC,cAAc,OAAO,MAAM,MAAM;GACjC,WAAW,OAAO,MAAM,MAAM;GAC9B,kBAAkB,OAAO,MAAM;EACjC;EACA,OAAO,OAAO,MAAM,KAAK,OAAO;GAC9B,IAAI,EAAE;GACN,KAAK,EAAE;GACP,MAAM,EAAE;GACR,aAAa,EAAE;GACf,SAAS,EAAE;GACX,SAAS,EAAE;GACX,UAAU,EAAE;GACZ,OAAO,EAAE,MAAM,KAAK,OAAO;IACzB,KAAK,EAAE;IACP,MAAM,EAAE;IACR,GAAI,EAAE,YAAY,KAAA,IAAY,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;IACxD,SAAS,EAAE;IACX,OAAO,EAAE;IACT,aAAa,EAAE;IACf,mBAAmB,EAAE;IACrB,MAAM,EAAE;IACR,aAAa,EAAE;IACf,kBAAkB,EAAE;IACpB,MAAM,EAAE;IACR,MAAM,EAAE;IACR,MAAM,EAAE;IACR,YAAY,EAAE;IACd,SAAS,EAAE;IACX,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,QAAQ,WAAW,GAAG,EAAE,GAAG;IAC3B,GAAI,EAAE,OACF,EACE,MAAM;KACJ,IAAI,EAAE,KAAK;KACX,QAAQ,EAAE,KAAK;KACf,IAAI,EAAE,KAAK,SAAS;KACpB,IAAI,EAAE,KAAK,SAAS;KACpB,aAAa,EAAE,KAAK;IACtB,EACF,IACA,CAAC;GACP,EAAE;EACJ,EAAE;CACJ;AACF"}
1
+ {"version":3,"file":"header-IE-uIvX0.js","names":[],"sources":["../src/view/header.ts"],"mappings":";;;AAIA,SAAgB,UAAU,QAAmB,UAAiC;CAC5E,OAAO;EACL,OAAO,OAAO;EACd;EACA,QAAQ,OAAO;EACf,WAAW,OAAO;EAClB,YAAY,OAAO;EACnB,QAAQ,OAAO;EACf,KAAK,OAAO,MACR;GAAE,KAAK,OAAO,IAAI;GAAK,QAAQ,OAAO,IAAI;GAAQ,OAAO,OAAO,IAAI;EAAM,IAC1E;EACJ,QAAQ,OAAO,OAAO;EACtB,IACE,OAAO,OAAO,SAAS,OACnB;GACE,UAAU,OAAO,OAAO;GACxB,QAAQ,OAAO,OAAO;GACtB,IAAI,OAAO,OAAO;EACpB,IACA;EACN,WAAW,OAAO,MAAM,UAAU,KAAK,MAAM,EAAE,EAAE;EACjD,SAAS,OAAO;EAChB,OAAO,OAAO,KAAK;EACnB,OAAO;GACL,UAAU,OAAO,MAAM,OAAO,KAAK,MAAM,EAAE,EAAE;GAC7C,WAAW,CAAC,GAAG,IAAI,IAAI,OAAO,MAAM,OAAO,SAAS,MAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAE,CAAC,CAAC;GAC5F,WAAW,OAAO,MAAM,UAAU,KAAK,MAAM,EAAE,EAAE;GACjD,cAAc,OAAO,aAAa,KAC/B,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,QAAQ,YAAY,EAAE,CAAC,CAAC,MAAM,GAAG,EAAE,GAClE;GACA,YAAY,OAAO,MAAM,MAAM;GAC/B,aAAa,OAAO,MAAM,MAAM;GAChC,cAAc,OAAO,MAAM,MAAM;GACjC,WAAW,OAAO,MAAM,MAAM;GAC9B,kBAAkB,OAAO,MAAM;EACjC;EACA,OAAO,OAAO,MAAM,KAAK,OAAO;GAC9B,IAAI,EAAE;GACN,KAAK,EAAE;GACP,MAAM,EAAE;GACR,aAAa,EAAE;GACf,SAAS,EAAE;GACX,SAAS,EAAE;GACX,UAAU,EAAE;GACZ,OAAO,EAAE,MAAM,KAAK,OAAO;IACzB,KAAK,EAAE;IACP,MAAM,EAAE;IACR,GAAI,EAAE,YAAY,KAAA,IAAY,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;IACxD,SAAS,EAAE;IACX,OAAO,EAAE;IACT,aAAa,EAAE;IACf,mBAAmB,EAAE;IACrB,MAAM,EAAE;IACR,aAAa,EAAE;IACf,kBAAkB,EAAE;IACpB,MAAM,EAAE;IACR,MAAM,EAAE;IACR,MAAM,EAAE;IACR,YAAY,EAAE;IACd,SAAS,EAAE;IACX,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,QAAQ,WAAW,GAAG,EAAE,GAAG;IAC3B,GAAI,EAAE,OACF,EACE,MAAM;KACJ,IAAI,EAAE,KAAK;KACX,QAAQ,EAAE,KAAK;KACf,IAAI,EAAE,KAAK,SAAS;KACpB,IAAI,EAAE,KAAK,SAAS;KACpB,aAAa,EAAE,KAAK;IACtB,EACF,IACA,CAAC;GACP,EAAE;EACJ,EAAE;CACJ;AACF"}
@@ -1,8 +1,8 @@
1
- import { I as LABEL, U as imageFor, X as imageInfo, c as dockerfileTag, d as installLayerTag, h as usesEsBase, m as resolveFrom, n as REEVAL_BASE_ARG, ot as isTransient, s as contextHash, u as harnessImageFor } from "./src-V-iU5X9S.js";
2
- import { d as sandboxId } from "./options-Ftb2gE01.js";
3
- import { n as prepareAll } from "./preflight-CuvY0o3B.js";
4
- import { i as installSteps, o as projectPath, r as imageHarness } from "./prepare-BI9j2-H-.js";
5
- import { n as createProviders, r as dockerKey } from "./providers-BFapaM2D.js";
1
+ import { I as LABEL, U as imageFor, X as imageInfo, c as dockerfileTag, d as installLayerTag, h as usesEsBase, m as resolveFrom, n as REEVAL_BASE_ARG, ot as isTransient, s as contextHash, u as harnessImageFor } from "./src-BRdoxjJS.js";
2
+ import { d as sandboxId } from "./options-DVB78W8X.js";
3
+ import { n as prepareAll } from "./preflight-BOstyJDX.js";
4
+ import { i as installSteps, o as projectPath, r as imageHarness } from "./prepare-jpXfdH-9.js";
5
+ import { n as createProviders, r as dockerKey } from "./providers-BJCxWIm4.js";
6
6
  //#region src/sandbox/images.ts
7
7
  /** The distinct Docker sandbox and harness pairs, in first-use order, with how many evals use each. */
8
8
  function imageTargets(uses) {
@@ -283,4 +283,4 @@ const harnessFor = (harness) => ({
283
283
  //#endregion
284
284
  export { buildImages, esImages, imagePlanLines, imageStages, imageStatusLines, imageTargets };
285
285
 
286
- //# sourceMappingURL=images-Pph_XJ68.js.map
286
+ //# sourceMappingURL=images-QBtOj-_q.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"images-Pph_XJ68.js","names":[],"sources":["../src/sandbox/images.ts"],"mappings":"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"}
1
+ {"version":3,"file":"images-QBtOj-_q.js","names":[],"sources":["../src/sandbox/images.ts"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as EvalFn, C as EgressRecord, D as EnvironmentInput, Dt as RunRecord, E as EnvironmentHelpers, G as HarnessOption, H as HarnessData, J as JudgeCallOptions, K as HistoryConfig, M as ExecResult, O as EnvironmentSpec, Q as McpServer, S as EgressPolicy, St as EvalEntry, T as Environment, V as GroupOptions, W as HarnessEdit, Y as JudgeFailure, Z as JudgeOptions, at as ProfileDefaults, bt as AttemptRecord, c as CellRole, d as CompareAnswer, dt as SetupStep, f as CompareCut, ft as SkillSource, gt as TurnData, h as ConfigHelpers, ht as Turn, i as AttemptContext, it as Profile, j as EvalOptions, k as EsConfig, lt as Secret, m as CompareQuestion, mt as TranscriptEvent, o as Budget, ot as ProfileLimit, p as CompareOptions, q as HostFile, rt as PinnableKey, s as Cell, tt as PairVote, ut as SecretTemplate, v as Diff, vt as Verdict, w as EnvVars, x as Duration, xt as CellRecord, y as DirectoryOptions, yt as WebEventType } from "./types-B_CqVrOS.js";
1
+ import { $ as JudgeFailure, A as EnvironmentHelpers, C as DirectoryOptions, Ct as Verdict, D as EgressRecord, Dt as AttemptRecord, E as EgressPolicy, F as EvalOptions, Ft as RunRecord, G as GroupOptions, I as ExecResult, J as HarnessEdit, K as HarnessData, M as EnvironmentSpec, N as EsConfig, O as EnvVars, Ot as CellRecord, P as EvalFn, Q as JudgeCallOptions, S as Diff, T as Duration, Tt as WebEventType, X as HistoryConfig, Y as HarnessOption, Z as HostFile, _ as CompareOptions, _t as SkillSource, a as BackgroundHandle, at as PairVote, bt as Turn, c as Capture, ct as Profile, d as Cell, f as CellRole, g as CompareCut, gt as SetupStep, h as CompareAnswer, ht as ServeHandle, i as AttemptContext, j as EnvironmentInput, k as Environment, kt as EvalEntry, l as CaptureCall, lt as ProfileDefaults, mt as SecretTemplate, nt as McpServer, pt as Secret, s as Budget, st as PinnableKey, tt as JudgeOptions, u as CaptureOptions, ut as ProfileLimit, v as CompareQuestion, wt as Viewport, xt as TurnData, y as ConfigHelpers, yt as TranscriptEvent } from "./types-C2Gl05_c.js";
2
2
  import { Duplex } from "node:stream";
3
3
  import { ExpectStatic, Tester } from "@vitest/expect";
4
4
  import "@ai-sdk/harness";
@@ -59,15 +59,19 @@ export declare const DEFAULT_SKILL_EXCLUDE: readonly string[];
59
59
  */
60
60
  export declare const DEFAULT_DIRECTORY_IGNORES: readonly string[];
61
61
  /**
62
- * What an eval runs in: skills, MCP servers, files, rules, variables, secrets and setup steps.
63
- * Pass a spec, or a callback that destructures the typed helpers it needs:
62
+ * What an eval runs in: the sandbox, skills, MCP servers, files, rules, variables, secrets and
63
+ * setup steps. Pass a spec, or a callback that destructures the typed helpers it needs:
64
64
  *
65
65
  * defineEnvironment('genkit', ({ secret, skill }) => ({
66
+ * sandbox: docker({ from: 'node:24-bookworm' }),
66
67
  * env: { GOOGLE_GENAI_API_KEY: secret.fromEnv('GOOGLE_GENERATIVE_AI_API_KEY') },
67
68
  * skills: [skill.local('../skills/genkit')],
68
69
  * }))
69
70
  *
70
71
  * The callback runs once, synchronously. Relative paths resolve against the calling file.
72
+ * `extend` / `extendEnvironment` replace `sandbox` entirely when the child sets one; when
73
+ * the child omits it, the parent's sandbox is kept. A bare `defineEnvironment('plain', {})`
74
+ * that is not an extend uses the cascaded option sandbox, else implicit Docker.
71
75
  */
72
76
  export declare function defineEnvironment(name: string, input: EnvironmentInput): Environment;
73
77
  //#endregion
@@ -100,5 +104,5 @@ export declare class HarnessCapabilityError extends Error {
100
104
  name: string;
101
105
  }
102
106
  //#endregion
103
- export type { AttemptContext, AttemptRecord, Budget, Cell, CellRecord, CellRole, CompareAnswer, CompareCut, CompareOptions, CompareQuestion, ConfigHelpers, Diff, DirectoryOptions, Duration, EgressPolicy, EgressRecord, EnvVars, Environment, EnvironmentHelpers, EnvironmentInput, EnvironmentSpec, EsConfig, EvalEntry, EvalFn, EvalOptions, ExecResult, GroupOptions, HarnessData, HarnessEdit, HarnessOption, HistoryConfig, HostFile, JudgeCallOptions, JudgeFailure, JudgeOptions, McpServer, PairVote, PinnableKey, Profile, ProfileDefaults, ProfileLimit, RunRecord, Secret, SecretTemplate, SetupStep, SkillSource, TranscriptEvent, Turn, TurnData, Verdict, WebEventType };
107
+ export type { AttemptContext, AttemptRecord, BackgroundHandle, Budget, Capture, CaptureCall, CaptureOptions, Cell, CellRecord, CellRole, CompareAnswer, CompareCut, CompareOptions, CompareQuestion, ConfigHelpers, Diff, DirectoryOptions, Duration, EgressPolicy, EgressRecord, EnvVars, Environment, EnvironmentHelpers, EnvironmentInput, EnvironmentSpec, EsConfig, EvalEntry, EvalFn, EvalOptions, ExecResult, GroupOptions, HarnessData, HarnessEdit, HarnessOption, HistoryConfig, HostFile, JudgeCallOptions, JudgeFailure, JudgeOptions, McpServer, PairVote, PinnableKey, Profile, ProfileDefaults, ProfileLimit, RunRecord, Secret, SecretTemplate, ServeHandle, SetupStep, SkillSource, TranscriptEvent, Turn, TurnData, Verdict, Viewport, WebEventType };
104
108
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,78 +1,29 @@
1
- import { n as isTimeout, t as UsageError } from "./errors-CSxfJ4qu.js";
2
- import { C as workspaceLabel, T as parseDuration, _ as isSecretTemplate, c as defineEnvironment, g as isSecret, m as isHostFile, n as DEFAULT_SKILL_EXCLUDE, t as DEFAULT_DIRECTORY_IGNORES, u as filesOf, v as mcpHosts, w as workspaceOf, x as stepCommand, y as parseGitRepo } from "./environment-lDFQY2BF.js";
1
+ import { n as UsageError, r as isTimeout, t as TimeoutError } from "./errors-yDAEwmZo.js";
2
+ import { t as parseDuration } from "./duration-JsJrIWXq.js";
3
3
  import { t as inCI } from "./env-BQqj93gu.js";
4
4
  import { o as redactSecrets, s as registerSecret } from "./redact-DJ9JCShu.js";
5
+ import { C as stepCommand, E as workspaceOf, T as workspaceLabel, _ as isSecret, b as parseGitRepo, c as defineEnvironment, d as filesOf, h as isHostFile, n as DEFAULT_SKILL_EXCLUDE, t as DEFAULT_DIRECTORY_IGNORES, v as isSecretTemplate, y as mcpHosts } from "./environment-DiCljXMD.js";
5
6
  import { t as InfraError } from "./types-C5vI3g1C.js";
6
- import { _ as layoutOf, a as unenforceable, h as expectedBlockedFor, n as allowedHosts, o as createFakeSandbox, p as brokeringFor, r as egressLabel, t as DEFAULT_EGRESS_ALLOW, v as refusedMcp } from "./egress-C7Obb71D.js";
7
+ import { _ as layoutOf, a as unenforceable, h as expectedBlockedFor, n as allowedHosts, o as createFakeSandbox, p as brokeringFor, r as egressLabel, t as DEFAULT_EGRESS_ALLOW, v as refusedMcp } from "./egress-3bdvDu1s.js";
7
8
  import { c as relativeFile, i as evalSlug, l as sha256, n as attemptKey, r as evalId, s as recordFileName, t as attemptId } from "./ids-Bp6ut7ZD.js";
8
- import { c as judgeModelName, d as isApiError, i as badJudgeList, u as runJudge } from "./judge-D6wqgTDp.js";
9
- import { S as placeholder, et as run, tt as shellQuote } from "./src-V-iU5X9S.js";
10
- import { a as evalPlan, d as sandboxId, f as secretVarsIn, i as checkOptions, l as matchesTags, m as unbrokeredError, n as cascade, o as expand, p as unbrokered, s as harnessId, t as brokeredIn } from "./options-Ftb2gE01.js";
11
- import { n as badCharacterAt, o as defineConfig } from "./config-B93Csktg.js";
12
- import { a as withLease, c as registerGroup, l as registerTest, o as collectingFile, p as expect, s as getRunContext, t as HarnessCapabilityError } from "./matchers-DbFPZQgA.js";
9
+ import { c as judgeModelName, d as isApiError, i as badJudgeList, u as runJudge } from "./judge-7WjNdU9z.js";
10
+ import { S as placeholder, et as run, tt as shellQuote } from "./src-BRdoxjJS.js";
11
+ import { a as evalPlan, d as sandboxId, f as sandboxSetBy, h as unbrokeredError, i as checkOptions, l as matchesTags, m as unbrokered, n as cascade, o as expand, p as secretVarsIn, s as harnessId, t as brokeredIn } from "./options-DVB78W8X.js";
12
+ import { n as badCharacterAt, o as defineConfig } from "./config-Cy_vLUbw.js";
13
+ import { a as withLease, c as registerGroup, l as registerTest, o as collectingFile, p as expect, s as getRunContext, t as HarnessCapabilityError } from "./matchers-Bp-OH1vj.js";
13
14
  import { a as withDebug, i as debugTrace, n as attemptDebug, r as debugLog, t as AttemptDebug } from "./attempt-CGPV3BZY.js";
14
- import { t as attemptDebugDir } from "./files-BLlrhU4-.js";
15
+ import { t as attemptDebugDir } from "./files-Ca0d6Uq3.js";
15
16
  import { n as clip, r as formatDuration, t as capMiddle } from "./text-gEcKjAyp.js";
17
+ import { a as asCheck, i as writeCaptureSidecars, n as serveCommand, o as createChecks, t as capturePage } from "./capture-tcMRp6ks.js";
16
18
  import { t as contextTaker } from "./context-loi9OCZv.js";
17
19
  import { t as PrepareError } from "./provider-CmAYTQQs.js";
18
- import { i as preparedWorkspace } from "./workspace-QtlJtRut.js";
19
- import { n as judgeDiff } from "./patch-BxqggH-T.js";
20
+ import { i as preparedWorkspace } from "./workspace-Bl1SiRQa.js";
21
+ import { n as judgeDiff } from "./patch-CGCVipPu.js";
20
22
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
21
23
  import { basename, isAbsolute, join, relative, sep } from "node:path";
22
24
  import { setTimeout as setTimeout$1 } from "node:timers/promises";
23
25
  import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
24
26
  import { parse } from "yaml";
25
- //#region src/attempt/checks.ts
26
- /** Runs a check or setup step with the checks' brokered secrets swapped in (see brokerPhases). */
27
- const asCheck = (a, fn) => a.phases ? a.phases.checks(fn) : fn();
28
- function requireSandbox(a) {
29
- if (!a.sandbox) throw new Error("No sandbox yet: call c.send() or await c.sandbox() before c.exec() or c.readFile()");
30
- return a.sandbox;
31
- }
32
- /**
33
- * Phase 4, checks: `c.exec` runs with the checks' variables and secrets, each run recorded and
34
- * timed; `c.readFile` reads the sandbox as is.
35
- */
36
- function createChecks(a) {
37
- const checkEnv = () => a.env?.checkVars ?? {};
38
- const exec = async (command) => {
39
- const box = requireSandbox(a);
40
- const start = performance.now();
41
- a.report({
42
- kind: "check-start",
43
- command
44
- });
45
- const r = await a.timed("checksMs", () => asCheck(a, () => box.exec(command, {
46
- signal: a.signal,
47
- env: checkEnv()
48
- })));
49
- const durationMs = Math.round(performance.now() - start);
50
- a.record.checks.push({
51
- command,
52
- ...r,
53
- durationMs
54
- });
55
- debugLog("check", `$ ${clip(command, 160)} → exit ${r.exitCode} · ${formatDuration(durationMs)}`);
56
- debugTrace("check", "output", {
57
- command,
58
- ...r,
59
- durationMs
60
- }, `check output: ${clip(command, 80)}`);
61
- a.report({
62
- kind: "check-end",
63
- command,
64
- exitCode: r.exitCode,
65
- ms: durationMs
66
- });
67
- return r;
68
- };
69
- const readFile = (path) => requireSandbox(a).readFile(path);
70
- return {
71
- exec,
72
- readFile
73
- };
74
- }
75
- //#endregion
76
27
  //#region src/attempt/debug.ts
77
28
  /** Which config and profile the attempt runs under, and where each resolved option came from. */
78
29
  function tracePlan(debug, spec, ctx) {
@@ -448,7 +399,12 @@ async function resolveEnvironment(environment, optionsEnv, root, where, rulesFil
448
399
  };
449
400
  let egressSet = false;
450
401
  let workspace;
402
+ let sandboxSet = false;
451
403
  for (const { spec } of environment.layers) {
404
+ if (spec.sandbox !== void 0) {
405
+ if (sandboxSet) overrides.add("sandbox");
406
+ sandboxSet = true;
407
+ }
452
408
  if (spec.workspace !== void 0) {
453
409
  if (workspace) overrides.add("workspace");
454
410
  workspace = spec.workspace;
@@ -908,7 +864,7 @@ async function callMcpTool(sandbox, servers, name, tool, signal) {
908
864
  //#region src/harness/index.ts
909
865
  async function createHarness(descriptor) {
910
866
  if (descriptor.kind === "fake") return createFakeHarness(descriptor);
911
- const { createAgentHarness } = await import("./agent-M70OWyfG.js");
867
+ const { createAgentHarness } = await import("./agent-bHgHIPVD.js");
912
868
  return createAgentHarness(descriptor);
913
869
  }
914
870
  /** Where each harness's agent looks for repo skills, relative to the workspace. */
@@ -935,8 +891,8 @@ async function prepareEnvironment(a, root, runId, where, signal) {
935
891
  if (debug) traceEnvironment(debug, spec, env);
936
892
  record.image = null;
937
893
  if (spec.sandbox.kind === "docker") {
938
- const { preparedFor } = await import("./preflight-D3cJETui.js");
939
- const { dockerProvider } = await import("./providers-Cay8pI0y.js");
894
+ const { preparedFor } = await import("./preflight-B5ue4TlX.js");
895
+ const { dockerProvider } = await import("./providers-DxVIaae1.js");
940
896
  signal.throwIfAborted();
941
897
  const prepared = preparedFor(root, runId, dockerProvider(), spec.sandbox, spec.harness);
942
898
  if (!prepared) throw new InfraError(`The sandbox image for ${where} wasn't prepared before the run started`);
@@ -1144,7 +1100,7 @@ async function createSandbox(descriptor, options) {
1144
1100
  switch (descriptor.kind) {
1145
1101
  case "fake": return await createFakeSandbox(descriptor, options.env);
1146
1102
  case "docker": {
1147
- const { createDockerSandbox } = await import("./docker-Bv1ZC6V7.js");
1103
+ const { createDockerSandbox } = await import("./docker-Di4o89kZ.js");
1148
1104
  return await createDockerSandbox(descriptor, options);
1149
1105
  }
1150
1106
  }
@@ -1157,16 +1113,13 @@ async function createSandbox(descriptor, options) {
1157
1113
  //#region src/attempt/record.ts
1158
1114
  function classify(error, signal) {
1159
1115
  const message = error instanceof Error ? error.message : String(error);
1160
- if (signal.aborted) {
1161
- const reason = signal.reason instanceof Error ? signal.reason.message : String(signal.reason);
1162
- return isTimeout(reason) ? {
1163
- kind: "timeout",
1164
- message: "The eval timed out"
1165
- } : {
1166
- kind: "aborted",
1167
- message: "The run was cancelled"
1168
- };
1169
- }
1116
+ if (signal.aborted) return isTimeout(signal.reason) ? {
1117
+ kind: "timeout",
1118
+ message: "The eval timed out"
1119
+ } : {
1120
+ kind: "aborted",
1121
+ message: "The run was cancelled"
1122
+ };
1170
1123
  if (error instanceof InfraError) return {
1171
1124
  kind: "infra",
1172
1125
  message
@@ -1231,6 +1184,7 @@ async function writeRecord(a, stagingDir, id) {
1231
1184
  const { record, spec } = a;
1232
1185
  const recordPath = join(stagingDir, "evals", recordFileName(attemptKey(id, spec.cell.key, spec.n)));
1233
1186
  await mkdir(join(stagingDir, "evals"), { recursive: true });
1187
+ await writeCaptureSidecars(stagingDir, recordFileName(attemptKey(id, spec.cell.key, spec.n)), a.artifactBlobs);
1234
1188
  const tmp = `${recordPath}.${process.pid}.tmp`;
1235
1189
  await writeFile(tmp, redactSecrets(JSON.stringify(record, null, 2)));
1236
1190
  await rename(tmp, recordPath);
@@ -1356,7 +1310,10 @@ function createAttempt(spec, signal, progress) {
1356
1310
  },
1357
1311
  signal,
1358
1312
  judgeErrored: false,
1359
- judgeErrors: []
1313
+ judgeErrors: [],
1314
+ captureNames: /* @__PURE__ */ new Set(),
1315
+ backgrounds: [],
1316
+ artifactBlobs: /* @__PURE__ */ new Map()
1360
1317
  };
1361
1318
  }
1362
1319
  const startTimeoutMs = (harness) => parseDuration(harness.startTimeout ?? "90s");
@@ -1716,6 +1673,8 @@ async function attemptBody(spec, fn, { signal: testSignal, setMeta, progress, un
1716
1673
  turns: a.turns,
1717
1674
  exec,
1718
1675
  readFile,
1676
+ serve: (command, port) => serveCommand(a, command, port),
1677
+ capture: (target, options) => capturePage(a, target, options),
1719
1678
  attempt: {
1720
1679
  id: attemptId(spec.cell.key, spec.n),
1721
1680
  cell: spec.cell,
@@ -1751,11 +1710,12 @@ async function attemptBody(spec, fn, { signal: testSignal, setMeta, progress, un
1751
1710
  if (only) throw new Error(more.length ? `${more.length + 1} judge calls failed:\n${a.judgeErrors.join("\n")}` : only);
1752
1711
  } catch (error) {
1753
1712
  recordFailure(a, error, timedOut());
1754
- if (timedOut()) throw new Error(`Eval timed out after ${spec.timeoutMs / 1e3}s`);
1713
+ if (timedOut()) throw new TimeoutError(`Eval timed out after ${spec.timeoutMs / 1e3}s`);
1755
1714
  throw error;
1756
1715
  } finally {
1757
1716
  if (!a.signal.aborted) await unawaited().catch(() => {});
1758
1717
  clock?.clear();
1718
+ for (const bg of a.backgrounds) await bg.kill().catch(() => {});
1759
1719
  const { sandbox } = a;
1760
1720
  if (sandbox && !a.signal.aborted) await takeContext(sandbox, AbortSignal.timeout(3e4));
1761
1721
  if (sandbox) a.report({ kind: "cleanup" });
@@ -1791,6 +1751,7 @@ function configLevel(config) {
1791
1751
  env: config.env,
1792
1752
  egress: config.egress !== void 0 ? { inherited: config.egress } : {},
1793
1753
  judge: config.judge,
1754
+ capture: config.capture,
1794
1755
  timeout: void 0,
1795
1756
  tags: [],
1796
1757
  pin: [],
@@ -1832,14 +1793,15 @@ function planEval(declaration, ctx) {
1832
1793
  if (mcp) throw new UsageError(`${where} on ${harnessId(planned.harness)}: ${mcp}`);
1833
1794
  }
1834
1795
  const path = ctx.file ? relativeFile(ctx.config.root, ctx.file) : null;
1835
- const setBy = {
1836
- sandbox: resolved.sources?.sandbox ?? ctx.config.file,
1837
- harness: resolved.sources?.harness ?? ctx.config.file
1838
- };
1796
+ const harnessBy = resolved.sources?.harness ?? ctx.config.file;
1839
1797
  const plan = evalPlan(resolvedEval, plannedAttempts, {
1840
1798
  configFile: ctx.config.file,
1841
1799
  file: path
1842
1800
  });
1801
+ const setByOf = (planned) => ({
1802
+ sandbox: sandboxSetBy(planned, resolved, ctx.config.file),
1803
+ harness: harnessBy
1804
+ });
1843
1805
  if (resolvedEval.skip) {
1844
1806
  const [first] = expand(resolved);
1845
1807
  if (!first) return [];
@@ -1852,7 +1814,7 @@ function planEval(declaration, ctx) {
1852
1814
  label: "",
1853
1815
  harness: first.harness,
1854
1816
  sandbox: first.sandbox,
1855
- setBy,
1817
+ setBy: setByOf(first),
1856
1818
  gate: "none",
1857
1819
  brokered: [],
1858
1820
  secretVars: [],
@@ -1870,6 +1832,7 @@ function planEval(declaration, ctx) {
1870
1832
  if (!cells.includes(planned.cell.key)) cells.push(planned.cell.key);
1871
1833
  const workspace = workspaceOf(planned.environment.layers);
1872
1834
  const files = filesOf(planned.environment.layers);
1835
+ const setBy = setByOf(planned);
1873
1836
  const attempt = {
1874
1837
  name,
1875
1838
  groups,
@@ -1912,7 +1875,11 @@ function planEval(declaration, ctx) {
1912
1875
  timeoutMs,
1913
1876
  env: resolved.env,
1914
1877
  judge: resolved.judge,
1915
- sources: resolved.sources ?? {},
1878
+ capture: resolved.capture,
1879
+ sources: {
1880
+ ...resolved.sources,
1881
+ sandbox: setBy.sandbox
1882
+ },
1916
1883
  notes: resolvedEval.notes
1917
1884
  }
1918
1885
  };