niceeval 0.13.3 → 0.13.4-canary.39

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 (487) hide show
  1. package/INDEX.md +5 -5
  2. package/dist/agents/index.cjs +2 -2
  3. package/dist/agents/index.cjs.map +1 -1
  4. package/dist/agents/project.json +6 -0
  5. package/dist/agents/streaming.cjs.map +1 -1
  6. package/dist/agents/types.cjs.map +1 -1
  7. package/dist/agents/types.d.cts +1 -1
  8. package/dist/agents/types.d.mts +1 -1
  9. package/dist/agents/types.d.ts +1 -1
  10. package/dist/analysis/bindings.d.cts +8 -8
  11. package/dist/analysis/bindings.d.mts +8 -8
  12. package/dist/analysis/bindings.d.ts +8 -8
  13. package/dist/analysis/contracts.cjs.map +1 -1
  14. package/dist/analysis/contracts.d.cts +8 -19
  15. package/dist/analysis/contracts.d.mts +8 -19
  16. package/dist/analysis/contracts.d.ts +8 -19
  17. package/dist/analysis/experiment-groups.cjs +7 -14
  18. package/dist/analysis/experiment-groups.cjs.map +1 -1
  19. package/dist/analysis/index.cjs.map +1 -1
  20. package/dist/analysis/index.d.cts +1 -1
  21. package/dist/analysis/index.d.mts +1 -1
  22. package/dist/analysis/index.d.ts +1 -1
  23. package/dist/cli/application.cjs +4 -13
  24. package/dist/cli/application.cjs.map +1 -1
  25. package/dist/cli/application.d.cts +62 -59
  26. package/dist/cli/application.d.mts +62 -59
  27. package/dist/cli/application.d.ts +62 -59
  28. package/dist/cli/application.js +6 -12
  29. package/dist/cli/bootstrap.cjs +28 -2
  30. package/dist/cli/bootstrap.cjs.map +1 -1
  31. package/dist/cli/contribution.cjs +185 -0
  32. package/dist/cli/contribution.cjs.map +1 -0
  33. package/dist/cli/contribution.d.cts +55 -0
  34. package/dist/cli/contribution.d.mts +55 -0
  35. package/dist/cli/contribution.d.ts +55 -0
  36. package/dist/cli/contribution.js +20 -0
  37. package/dist/cli/contribution.js.map +1 -0
  38. package/dist/cli/node-application.cjs +119 -87
  39. package/dist/cli/node-application.cjs.map +1 -1
  40. package/dist/cli/node-application.d.cts +2 -8
  41. package/dist/cli/node-application.d.mts +2 -8
  42. package/dist/cli/node-application.d.ts +2 -8
  43. package/dist/cli/node-application.js +12 -22
  44. package/dist/cli/program.cjs +87 -2756
  45. package/dist/cli/program.cjs.map +1 -1
  46. package/dist/cli/program.d.cts +11 -332
  47. package/dist/cli/program.d.mts +11 -332
  48. package/dist/cli/program.d.ts +11 -332
  49. package/dist/cli/program.js +4 -28
  50. package/dist/cli.cjs +0 -3
  51. package/dist/cli.cjs.map +1 -1
  52. package/dist/cli.d.cts +0 -1
  53. package/dist/cli.d.mts +0 -1
  54. package/dist/cli.d.ts +0 -1
  55. package/dist/cli.js +6 -14
  56. package/dist/define.cjs +1 -1
  57. package/dist/define.cjs.map +1 -1
  58. package/dist/docker/cache-administration.cjs +8 -0
  59. package/dist/docker/cache-administration.cjs.map +1 -0
  60. package/dist/docker/cache-administration.d.cts +33 -0
  61. package/dist/docker/cache-administration.d.mts +33 -0
  62. package/dist/docker/cache-administration.d.ts +33 -0
  63. package/dist/docker/cache-administration.js +6 -0
  64. package/dist/docker/cache-administration.js.map +1 -0
  65. package/dist/docker/cache-live.cjs +27 -0
  66. package/dist/docker/cache-live.cjs.map +1 -0
  67. package/dist/docker/cache-live.d.cts +3 -0
  68. package/dist/docker/cache-live.d.mts +3 -0
  69. package/dist/docker/cache-live.d.ts +3 -0
  70. package/dist/docker/cache-live.js +6 -0
  71. package/dist/docker/cache-live.js.map +1 -0
  72. package/dist/docker/cli/contribution.cjs +223 -0
  73. package/dist/docker/cli/contribution.cjs.map +1 -0
  74. package/dist/docker/cli/contribution.d.cts +48 -0
  75. package/dist/docker/cli/contribution.d.mts +48 -0
  76. package/dist/docker/cli/contribution.d.ts +48 -0
  77. package/dist/docker/cli/contribution.js +8 -0
  78. package/dist/docker/cli/contribution.js.map +1 -0
  79. package/dist/eval/cli/contribution.cjs +62 -0
  80. package/dist/eval/cli/contribution.cjs.map +1 -0
  81. package/dist/eval/cli/contribution.d.cts +21 -0
  82. package/dist/eval/cli/contribution.d.mts +21 -0
  83. package/dist/eval/cli/contribution.d.ts +21 -0
  84. package/dist/eval/cli/contribution.js +8 -0
  85. package/dist/eval/cli/contribution.js.map +1 -0
  86. package/dist/eval/host/index.cjs +23 -0
  87. package/dist/eval/host/index.cjs.map +1 -0
  88. package/dist/eval/host/index.d.cts +27 -0
  89. package/dist/eval/host/index.d.mts +27 -0
  90. package/dist/eval/host/index.d.ts +27 -0
  91. package/dist/eval/host/index.js +8 -0
  92. package/dist/eval/host/index.js.map +1 -0
  93. package/dist/eval/host/index.mjs +8 -0
  94. package/dist/eval/host/index.mjs.map +1 -0
  95. package/dist/experiment/host/cli/contribution.cjs +835 -0
  96. package/dist/experiment/host/cli/contribution.cjs.map +1 -0
  97. package/dist/experiment/host/cli/contribution.d.cts +329 -0
  98. package/dist/experiment/host/cli/contribution.d.mts +329 -0
  99. package/dist/experiment/host/cli/contribution.d.ts +329 -0
  100. package/dist/experiment/host/cli/contribution.js +22 -0
  101. package/dist/experiment/host/cli/contribution.js.map +1 -0
  102. package/dist/experiment/host/cli/index.cjs +9 -0
  103. package/dist/experiment/host/cli/index.cjs.map +1 -0
  104. package/dist/experiment/host/cli/index.d.cts +2 -0
  105. package/dist/experiment/host/cli/index.d.mts +2 -0
  106. package/dist/experiment/host/cli/index.d.ts +2 -0
  107. package/dist/experiment/host/cli/index.js +10 -0
  108. package/dist/experiment/host/cli/index.js.map +1 -0
  109. package/dist/experiment/host/cli/terminal.cjs +15 -0
  110. package/dist/experiment/host/cli/terminal.cjs.map +1 -0
  111. package/dist/experiment/host/cli/terminal.d.cts +14 -0
  112. package/dist/experiment/host/cli/terminal.d.mts +14 -0
  113. package/dist/experiment/host/cli/terminal.d.ts +14 -0
  114. package/dist/experiment/host/cli/terminal.js +8 -0
  115. package/dist/experiment/host/cli/terminal.js.map +1 -0
  116. package/dist/experiment/host/index.cjs +35 -58
  117. package/dist/experiment/host/index.cjs.map +1 -1
  118. package/dist/experiment/host/index.d.cts +5 -79
  119. package/dist/experiment/host/index.d.mts +5 -79
  120. package/dist/experiment/host/index.d.ts +5 -79
  121. package/dist/experiment/host/index.js +4 -2
  122. package/dist/experiment/host/index.mjs +4 -2
  123. package/dist/experiment/host/operations.cjs +678 -0
  124. package/dist/experiment/host/operations.cjs.map +1 -0
  125. package/dist/experiment/host/operations.d.cts +19 -0
  126. package/dist/experiment/host/operations.d.mts +19 -0
  127. package/dist/experiment/host/operations.d.ts +19 -0
  128. package/dist/experiment/host/operations.js +24 -0
  129. package/dist/experiment/host/operations.js.map +1 -0
  130. package/dist/experiment/host/presentation.cjs +81 -0
  131. package/dist/experiment/host/presentation.cjs.map +1 -0
  132. package/dist/experiment/host/presentation.d.cts +9 -0
  133. package/dist/experiment/host/presentation.d.mts +9 -0
  134. package/dist/experiment/host/presentation.d.ts +9 -0
  135. package/dist/experiment/host/presentation.js +8 -0
  136. package/dist/experiment/host/presentation.js.map +1 -0
  137. package/dist/experiment/host/teardown.cjs +394 -0
  138. package/dist/experiment/host/teardown.cjs.map +1 -0
  139. package/dist/experiment/host/teardown.d.cts +5 -0
  140. package/dist/experiment/host/teardown.d.mts +5 -0
  141. package/dist/experiment/host/teardown.d.ts +5 -0
  142. package/dist/experiment/host/teardown.js +8 -0
  143. package/dist/experiment/host/teardown.js.map +1 -0
  144. package/dist/experiment/host/types.cjs +9 -0
  145. package/dist/experiment/host/types.cjs.map +1 -0
  146. package/dist/experiment/host/types.d.cts +423 -0
  147. package/dist/experiment/host/types.d.mts +423 -0
  148. package/dist/experiment/host/types.d.ts +423 -0
  149. package/dist/experiment/host/types.js +6 -0
  150. package/dist/experiment/host/types.js.map +1 -0
  151. package/dist/i18n/en.cjs +8 -50
  152. package/dist/i18n/en.cjs.map +1 -1
  153. package/dist/i18n/en.d.cts +2 -6
  154. package/dist/i18n/en.d.mts +2 -6
  155. package/dist/i18n/en.d.ts +2 -6
  156. package/dist/o11y/project.json +6 -0
  157. package/dist/project/cli/contribution.cjs +66 -0
  158. package/dist/project/cli/contribution.cjs.map +1 -0
  159. package/dist/project/cli/contribution.d.cts +17 -0
  160. package/dist/project/cli/contribution.d.mts +17 -0
  161. package/dist/project/cli/contribution.d.ts +17 -0
  162. package/dist/project/cli/contribution.js +8 -0
  163. package/dist/project/cli/contribution.js.map +1 -0
  164. package/dist/project/cli/index.cjs +7 -0
  165. package/dist/project/cli/index.cjs.map +1 -0
  166. package/dist/project/cli/index.d.cts +1 -0
  167. package/dist/project/cli/index.d.mts +1 -0
  168. package/dist/project/cli/index.d.ts +1 -0
  169. package/dist/project/cli/index.js +8 -0
  170. package/dist/project/cli/index.js.map +1 -0
  171. package/dist/project/host/index.cjs +11 -0
  172. package/dist/project/host/index.cjs.map +1 -0
  173. package/dist/project/host/index.d.cts +4 -0
  174. package/dist/project/host/index.d.mts +4 -0
  175. package/dist/project/host/index.d.ts +4 -0
  176. package/dist/project/host/index.js +14 -0
  177. package/dist/project/host/index.js.map +1 -0
  178. package/dist/project/host/index.mjs +14 -0
  179. package/dist/project/host/index.mjs.map +1 -0
  180. package/dist/project/host.cjs +59 -0
  181. package/dist/project/host.cjs.map +1 -0
  182. package/dist/project/host.d.cts +17 -0
  183. package/dist/project/host.d.mts +17 -0
  184. package/dist/project/host.d.ts +17 -0
  185. package/dist/project/host.js +6 -0
  186. package/dist/project/host.js.map +1 -0
  187. package/dist/project/index.cjs +11 -0
  188. package/dist/project/index.cjs.map +1 -0
  189. package/dist/project/index.d.cts +4 -0
  190. package/dist/project/index.d.mts +4 -0
  191. package/dist/project/index.d.ts +4 -0
  192. package/dist/project/index.js +14 -0
  193. package/dist/project/index.js.map +1 -0
  194. package/dist/project/node.cjs +91 -0
  195. package/dist/project/node.cjs.map +1 -0
  196. package/dist/project/node.d.cts +6 -0
  197. package/dist/project/node.d.mts +6 -0
  198. package/dist/project/node.d.ts +6 -0
  199. package/dist/project/node.js +12 -0
  200. package/dist/project/node.js.map +1 -0
  201. package/dist/project/services.cjs +17 -0
  202. package/dist/project/services.cjs.map +1 -0
  203. package/dist/project/services.d.cts +47 -0
  204. package/dist/project/services.d.mts +47 -0
  205. package/dist/project/services.d.ts +47 -0
  206. package/dist/project/services.js +12 -0
  207. package/dist/project/services.js.map +1 -0
  208. package/dist/project/templates.cjs +28 -0
  209. package/dist/project/templates.cjs.map +1 -0
  210. package/dist/project/templates.d.cts +4 -0
  211. package/dist/project/templates.d.mts +4 -0
  212. package/dist/project/templates.d.ts +4 -0
  213. package/dist/project/templates.js +12 -0
  214. package/dist/project/templates.js.map +1 -0
  215. package/dist/project.json +6 -0
  216. package/dist/record/family/catalog.d.cts +10 -10
  217. package/dist/record/family/catalog.d.mts +10 -10
  218. package/dist/record/family/catalog.d.ts +10 -10
  219. package/dist/record/family/file-changes.d.cts +8 -8
  220. package/dist/record/family/file-changes.d.mts +8 -8
  221. package/dist/record/family/file-changes.d.ts +8 -8
  222. package/dist/record/host/cli/contribution.cjs +206 -0
  223. package/dist/record/host/cli/contribution.cjs.map +1 -0
  224. package/dist/record/host/cli/contribution.d.cts +32 -0
  225. package/dist/record/host/cli/contribution.d.mts +32 -0
  226. package/dist/record/host/cli/contribution.d.ts +32 -0
  227. package/dist/record/host/cli/contribution.js +10 -0
  228. package/dist/record/host/cli/contribution.js.map +1 -0
  229. package/dist/record/host/cli/index.cjs +8 -0
  230. package/dist/record/host/cli/index.cjs.map +1 -0
  231. package/dist/record/host/cli/index.d.cts +1 -0
  232. package/dist/record/host/cli/index.d.mts +1 -0
  233. package/dist/record/host/cli/index.d.ts +1 -0
  234. package/dist/record/host/cli/index.js +10 -0
  235. package/dist/record/host/cli/index.js.map +1 -0
  236. package/dist/record/host/cli/presentation.cjs +122 -0
  237. package/dist/record/host/cli/presentation.cjs.map +1 -0
  238. package/dist/record/host/cli/presentation.d.cts +7 -0
  239. package/dist/record/host/cli/presentation.d.mts +7 -0
  240. package/dist/record/host/cli/presentation.d.ts +7 -0
  241. package/dist/record/host/cli/presentation.js +12 -0
  242. package/dist/record/host/cli/presentation.js.map +1 -0
  243. package/dist/record/host/index.cjs.map +1 -1
  244. package/dist/record/host/index.d.cts +1 -1
  245. package/dist/record/host/index.d.mts +1 -1
  246. package/dist/record/host/index.d.ts +1 -1
  247. package/dist/record/host/runtime.cjs +184 -1
  248. package/dist/record/host/runtime.cjs.map +1 -1
  249. package/dist/record/host/types.cjs.map +1 -1
  250. package/dist/record/host/types.d.cts +120 -0
  251. package/dist/record/host/types.d.mts +120 -0
  252. package/dist/record/host/types.d.ts +120 -0
  253. package/dist/record/project.json +6 -0
  254. package/dist/report/assets/styles.css +80 -0
  255. package/dist/report/cli/contribution.cjs +325 -0
  256. package/dist/report/cli/contribution.cjs.map +1 -0
  257. package/dist/report/cli/contribution.d.cts +143 -0
  258. package/dist/report/cli/contribution.d.mts +143 -0
  259. package/dist/report/cli/contribution.d.ts +143 -0
  260. package/dist/report/cli/contribution.js +12 -0
  261. package/dist/report/cli/contribution.js.map +1 -0
  262. package/dist/report/client-dist/app.js +9 -9
  263. package/dist/report/components/attempt-detail/content.cjs +1 -1
  264. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  265. package/dist/report/components/entity-lists/compute.cjs +5 -0
  266. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  267. package/dist/report/components/entity-lists/compute.d.cts +2 -0
  268. package/dist/report/components/entity-lists/compute.d.mts +2 -0
  269. package/dist/report/components/entity-lists/compute.d.ts +2 -0
  270. package/dist/report/components/entity-lists/content.cjs +35 -12
  271. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  272. package/dist/report/components/entity-lists/index.cjs +0 -3
  273. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  274. package/dist/report/components/summaries/index.cjs +2 -4
  275. package/dist/report/components/summaries/index.cjs.map +1 -1
  276. package/dist/report/definition/cell.cjs +7 -2
  277. package/dist/report/definition/cell.cjs.map +1 -1
  278. package/dist/report/definition/cell.d.cts +2 -0
  279. package/dist/report/definition/cell.d.mts +2 -0
  280. package/dist/report/definition/cell.d.ts +2 -0
  281. package/dist/report/definition/primitives/assertion-evidence.cjs +190 -4
  282. package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -1
  283. package/dist/report/definition/primitives/assertion-evidence.d.cts +4 -0
  284. package/dist/report/definition/primitives/assertion-evidence.d.mts +4 -0
  285. package/dist/report/definition/primitives/assertion-evidence.d.ts +4 -0
  286. package/dist/report/execution/machine.cjs +2 -3
  287. package/dist/report/execution/machine.cjs.map +1 -1
  288. package/dist/report/execution/machine.d.cts +11 -8
  289. package/dist/report/execution/machine.d.mts +11 -8
  290. package/dist/report/execution/machine.d.ts +11 -8
  291. package/dist/report/host/from-record.cjs +13 -8
  292. package/dist/report/host/from-record.cjs.map +1 -1
  293. package/dist/report/host/index.cjs +5 -1
  294. package/dist/report/host/index.cjs.map +1 -1
  295. package/dist/report/host/index.d.cts +1 -0
  296. package/dist/report/host/index.d.mts +1 -0
  297. package/dist/report/host/index.d.ts +1 -0
  298. package/dist/report/host/index.js +8 -2
  299. package/dist/report/host/index.mjs +8 -2
  300. package/dist/report/host/machine.cjs +23 -22
  301. package/dist/report/host/machine.cjs.map +1 -1
  302. package/dist/report/host/machine.d.cts +1 -1
  303. package/dist/report/host/machine.d.mts +1 -1
  304. package/dist/report/host/machine.d.ts +1 -1
  305. package/dist/report/host/node/loader.cjs +4 -2
  306. package/dist/report/host/node/loader.cjs.map +1 -1
  307. package/dist/report/host/node/loader.d.cts +3 -1
  308. package/dist/report/host/node/loader.d.mts +3 -1
  309. package/dist/report/host/node/loader.d.ts +3 -1
  310. package/dist/report/host/node.cjs +44 -9
  311. package/dist/report/host/node.cjs.map +1 -1
  312. package/dist/report/host/node.d.cts +13 -3
  313. package/dist/report/host/node.d.mts +13 -3
  314. package/dist/report/host/node.d.ts +13 -3
  315. package/dist/report/host/node.js +44 -32
  316. package/dist/report/host/operations.cjs +14 -0
  317. package/dist/report/host/operations.cjs.map +1 -0
  318. package/dist/report/host/operations.d.cts +39 -0
  319. package/dist/report/host/operations.d.mts +39 -0
  320. package/dist/report/host/operations.d.ts +39 -0
  321. package/dist/report/host/operations.js +10 -0
  322. package/dist/report/host/operations.js.map +1 -0
  323. package/dist/report/model/chart/plot.cjs +1 -1
  324. package/dist/report/model/chart/plot.cjs.map +1 -1
  325. package/dist/report/model/locale.cjs +4 -0
  326. package/dist/report/model/locale.cjs.map +1 -1
  327. package/dist/report/model/locale.d.cts +3 -1
  328. package/dist/report/model/locale.d.mts +3 -1
  329. package/dist/report/model/locale.d.ts +3 -1
  330. package/dist/report/react/styles.css +80 -0
  331. package/dist/runner/build-preparation.cjs +5 -5
  332. package/dist/runner/build-preparation.cjs.map +1 -1
  333. package/dist/runner/build-preparation.d.cts +2 -3
  334. package/dist/runner/build-preparation.d.mts +2 -3
  335. package/dist/runner/build-preparation.d.ts +2 -3
  336. package/dist/runner/feedback/coordinator.cjs +18 -15
  337. package/dist/runner/feedback/coordinator.cjs.map +1 -1
  338. package/dist/runner/feedback/coordinator.d.cts +6 -0
  339. package/dist/runner/feedback/coordinator.d.mts +6 -0
  340. package/dist/runner/feedback/coordinator.d.ts +6 -0
  341. package/dist/runner/ledger.cjs +3 -13
  342. package/dist/runner/ledger.cjs.map +1 -1
  343. package/dist/runner/ledger.d.cts +1 -3
  344. package/dist/runner/ledger.d.mts +1 -3
  345. package/dist/runner/ledger.d.ts +1 -3
  346. package/dist/runner/run.cjs +63 -18
  347. package/dist/runner/run.cjs.map +1 -1
  348. package/dist/runner/session.cjs +10 -0
  349. package/dist/runner/session.cjs.map +1 -1
  350. package/dist/runner/session.d.cts +25 -0
  351. package/dist/runner/session.d.mts +25 -0
  352. package/dist/runner/session.d.ts +25 -0
  353. package/dist/runner/types.cjs.map +1 -1
  354. package/dist/runner/types.d.cts +1 -2
  355. package/dist/runner/types.d.mts +1 -2
  356. package/dist/runner/types.d.ts +1 -2
  357. package/dist/sandbox/build-coordinator.cjs +38 -19
  358. package/dist/sandbox/build-coordinator.cjs.map +1 -1
  359. package/dist/sandbox/build-coordinator.d.cts +47 -7
  360. package/dist/sandbox/build-coordinator.d.mts +47 -7
  361. package/dist/sandbox/build-coordinator.d.ts +47 -7
  362. package/dist/sandbox/build-coordinator.js +8 -4
  363. package/dist/sandbox/cli/contribution.cjs +128 -0
  364. package/dist/sandbox/cli/contribution.cjs.map +1 -0
  365. package/dist/sandbox/cli/contribution.d.cts +71 -0
  366. package/dist/sandbox/cli/contribution.d.mts +71 -0
  367. package/dist/sandbox/cli/contribution.d.ts +71 -0
  368. package/dist/sandbox/cli/contribution.js +8 -0
  369. package/dist/sandbox/cli/contribution.js.map +1 -0
  370. package/dist/sandbox/cli-commands.cjs +14 -21
  371. package/dist/sandbox/cli-commands.cjs.map +1 -1
  372. package/dist/sandbox/cli-commands.d.cts +12 -8
  373. package/dist/sandbox/cli-commands.d.mts +12 -8
  374. package/dist/sandbox/cli-commands.d.ts +12 -8
  375. package/dist/sandbox/compose.cjs +22 -2
  376. package/dist/sandbox/compose.cjs.map +1 -1
  377. package/dist/sandbox/compose.d.cts +1 -1
  378. package/dist/sandbox/compose.d.mts +1 -1
  379. package/dist/sandbox/compose.d.ts +1 -1
  380. package/dist/sandbox/docker-profile/cli.cjs +13 -9
  381. package/dist/sandbox/docker-profile/cli.cjs.map +1 -1
  382. package/dist/sandbox/docker-profile/cli.d.cts +2 -0
  383. package/dist/sandbox/docker-profile/cli.d.mts +2 -0
  384. package/dist/sandbox/docker-profile/cli.d.ts +2 -0
  385. package/dist/sandbox/docker-profile/runtime.cjs +68 -7
  386. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  387. package/dist/sandbox/docker-profile/runtime.d.cts +19 -1
  388. package/dist/sandbox/docker-profile/runtime.d.mts +19 -1
  389. package/dist/sandbox/docker-profile/runtime.d.ts +19 -1
  390. package/dist/sandbox/docker-profile/runtime.js +10 -8
  391. package/dist/sandbox/docker-profile/schema.cjs +68 -19
  392. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  393. package/dist/sandbox/docker-profile/schema.d.cts +23 -9
  394. package/dist/sandbox/docker-profile/schema.d.mts +23 -9
  395. package/dist/sandbox/docker-profile/schema.d.ts +23 -9
  396. package/dist/sandbox/docker-task-build-cache.cjs +532 -0
  397. package/dist/sandbox/docker-task-build-cache.cjs.map +1 -0
  398. package/dist/sandbox/docker-task-build-cache.d.cts +68 -0
  399. package/dist/sandbox/docker-task-build-cache.d.mts +68 -0
  400. package/dist/sandbox/docker-task-build-cache.d.ts +68 -0
  401. package/dist/sandbox/docker-task-build-cache.js +20 -0
  402. package/dist/sandbox/docker-task-build-cache.js.map +1 -0
  403. package/dist/sandbox/docker.cjs +50 -0
  404. package/dist/sandbox/docker.cjs.map +1 -1
  405. package/dist/sandbox/docker.d.cts +15 -0
  406. package/dist/sandbox/docker.d.mts +15 -0
  407. package/dist/sandbox/docker.d.ts +15 -0
  408. package/dist/sandbox/dockerfile-build.cjs +55 -5
  409. package/dist/sandbox/dockerfile-build.cjs.map +1 -1
  410. package/dist/sandbox/dockerfile-build.d.cts +2 -2
  411. package/dist/sandbox/dockerfile-build.d.mts +2 -2
  412. package/dist/sandbox/dockerfile-build.d.ts +2 -2
  413. package/dist/sandbox/index.cjs +5 -3
  414. package/dist/sandbox/index.cjs.map +1 -1
  415. package/dist/sandbox/index.d.cts +4 -3
  416. package/dist/sandbox/index.d.mts +4 -3
  417. package/dist/sandbox/index.d.ts +4 -3
  418. package/dist/sandbox/index.js +16 -14
  419. package/dist/sandbox/index.mjs +16 -14
  420. package/dist/sandbox/keep.cjs +1 -3
  421. package/dist/sandbox/keep.cjs.map +1 -1
  422. package/dist/sandbox/layer.cjs +70 -79
  423. package/dist/sandbox/layer.cjs.map +1 -1
  424. package/dist/sandbox/layer.d.cts +6 -12
  425. package/dist/sandbox/layer.d.mts +6 -12
  426. package/dist/sandbox/layer.d.ts +6 -12
  427. package/dist/sandbox/layer.js +16 -18
  428. package/dist/sandbox/ledger-paths.cjs +4 -18
  429. package/dist/sandbox/ledger-paths.cjs.map +1 -1
  430. package/dist/sandbox/ledger-paths.d.cts +3 -13
  431. package/dist/sandbox/ledger-paths.d.mts +3 -13
  432. package/dist/sandbox/ledger-paths.d.ts +3 -13
  433. package/dist/sandbox/ledger-paths.js +4 -8
  434. package/dist/sandbox/registry.cjs +1 -1
  435. package/dist/sandbox/registry.cjs.map +1 -1
  436. package/dist/sandbox/runtime.cjs +27 -37
  437. package/dist/sandbox/runtime.cjs.map +1 -1
  438. package/dist/sandbox/runtime.d.cts +1 -2
  439. package/dist/sandbox/runtime.d.mts +1 -2
  440. package/dist/sandbox/runtime.d.ts +1 -2
  441. package/dist/sandbox/runtime.js +6 -8
  442. package/dist/sandbox/types.cjs.map +1 -1
  443. package/dist/sandbox/types.d.cts +3 -3
  444. package/dist/sandbox/types.d.mts +3 -3
  445. package/dist/sandbox/types.d.ts +3 -3
  446. package/dist/sources/project.json +6 -0
  447. package/dist/vendor/remark/remark-gfm.cjs +72 -72
  448. package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
  449. package/dist/vendor/remark/remark-parse.cjs +54 -54
  450. package/dist/vendor/remark/remark-parse.cjs.map +1 -1
  451. package/dist/vendor/remark/remark.cjs +125 -125
  452. package/dist/vendor/remark/remark.cjs.map +2 -2
  453. package/docs-site/zh/README.md +1 -1
  454. package/docs-site/zh/explanation/assert.mdx +4 -0
  455. package/docs-site/zh/explanation/judge.mdx +40 -9
  456. package/docs-site/zh/reference/cli.mdx +67 -43
  457. package/docs-site/zh/reference/define-agent.mdx +2 -2
  458. package/docs-site/zh/reference/report-components.mdx +4 -3
  459. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +6 -0
  460. package/docs-site/zh/troubleshooting/debugging.mdx +28 -1
  461. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +4 -2
  462. package/docs-site/zh/tutorials/concurrency.mdx +2 -2
  463. package/docs-site/zh/tutorials/custom-reports.mdx +175 -9
  464. package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -7
  465. package/docs-site/zh/tutorials/eval-groups.mdx +1 -2
  466. package/docs-site/zh/tutorials/evaluation-kinds.mdx +39 -6
  467. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +14 -5
  468. package/docs-site/zh/tutorials/sandbox-providers.mdx +1 -28
  469. package/docs-site/zh/tutorials/sandbox-reuse.mdx +1 -1
  470. package/docs-site/zh/tutorials/viewing-results.mdx +2 -0
  471. package/package.json +24 -19
  472. package/README.md +0 -176
  473. package/README.zh.md +0 -176
  474. package/dist/cli/record.cjs +0 -246
  475. package/dist/cli/record.cjs.map +0 -1
  476. package/dist/cli/record.d.cts +0 -40
  477. package/dist/cli/record.d.mts +0 -40
  478. package/dist/cli/record.d.ts +0 -40
  479. package/dist/cli/record.js +0 -10
  480. package/dist/cli/record.js.map +0 -1
  481. package/dist/sandbox/local.cjs +0 -361
  482. package/dist/sandbox/local.cjs.map +0 -1
  483. package/dist/sandbox/local.d.cts +0 -80
  484. package/dist/sandbox/local.d.mts +0 -80
  485. package/dist/sandbox/local.d.ts +0 -80
  486. package/dist/sandbox/local.js +0 -6
  487. package/dist/sandbox/local.js.map +0 -1
@@ -93,6 +93,8 @@ export interface DockerSandboxResources {
93
93
  readonly cpus?: number;
94
94
  readonly memoryBytes?: number;
95
95
  readonly pidsLimit?: number;
96
+ /** Dedicated, control-owned storage mounted at /var/lib/docker for inner DinD. */
97
+ readonly dockerDataBytes?: number;
96
98
  /** 把镜像 rootfs 设为只读;需要写入的路径必须逐一声明为有界 tmpfs。 */
97
99
  readonly readOnlyRootfs?: boolean;
98
100
  readonly tmpfs?: Readonly<globalThis.Record<string, DockerSandboxTmpfsOptions>>;
@@ -113,6 +115,7 @@ export interface ManagedDockerResources extends DockerSandboxResources {
113
115
  readonly cpus: number;
114
116
  readonly memoryBytes: number;
115
117
  readonly pidsLimit: number;
118
+ readonly dockerDataBytes: number;
116
119
  readonly readOnlyRootfs: true;
117
120
  }
118
121
  export interface DockerSandboxReadiness {
@@ -134,6 +137,8 @@ export type DockerSandboxAccess = {
134
137
  } | {
135
138
  readonly mode: "dind";
136
139
  readonly isolation: "raw-privileged";
140
+ /** Required only when resources.dockerDataBytes requests control-owned storage. */
141
+ readonly storageProfile?: string;
137
142
  } | {
138
143
  readonly mode: "dind";
139
144
  readonly isolation: "managed-rootless";
@@ -149,6 +154,7 @@ export type DockerSandboxOptions = (DockerSandboxCommonOptions & {
149
154
  } | {
150
155
  readonly mode: "dind";
151
156
  readonly isolation: "raw-privileged";
157
+ readonly storageProfile?: string;
152
158
  };
153
159
  readonly resources?: DockerSandboxResources;
154
160
  }) | (DockerSandboxCommonOptions & {
@@ -173,11 +179,6 @@ export interface VercelSandboxOptions {
173
179
  /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */
174
180
  readonly pathPrepend?: readonly string[];
175
181
  }
176
- export interface LocalSandboxOptions {
177
- readonly dir?: string;
178
- /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */
179
- readonly pathPrepend?: readonly string[];
180
- }
181
182
  export interface CustomProviderSandboxOptions {
182
183
  readonly name: string;
183
184
  readonly targetPlatform: SandboxTargetPlatform;
@@ -430,7 +431,6 @@ export interface SandboxTemplateDefinition {
430
431
  export interface BuiltinSandboxPlannerServices {
431
432
  /** 只读 control-plane 探测;测试可注入确定值或 typed failure。 */
432
433
  readonly dockerBuildPlatform: Effect.Effect<string, SandboxProviderPlanningError>;
433
- readonly hostPlatform: SandboxTargetPlatform;
434
434
  }
435
435
  export interface BuiltinSandboxFactories {
436
436
  readonly dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
@@ -438,7 +438,6 @@ export interface BuiltinSandboxFactories {
438
438
  readonly dockerImageSourceLayer: (options: DockerImageSourceOptions) => SandboxLayer<"template-bearing", "prepare-only">;
439
439
  readonly e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
440
440
  readonly vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
441
- readonly localSandbox: (options?: LocalSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
442
441
  }
443
442
  export interface CommandOnlySandboxLayerState {
444
443
  readonly kind: "command-only";
@@ -524,10 +523,6 @@ export interface VercelProviderPlan {
524
523
  readonly lifetime: SandboxProviderLifetime;
525
524
  readonly pathPrepend: readonly string[];
526
525
  }
527
- export interface LocalProviderPlan {
528
- readonly directory: string;
529
- readonly pathPrepend: readonly string[];
530
- }
531
526
  export interface CustomProviderPlan {
532
527
  readonly name: string;
533
528
  }
@@ -544,7 +539,6 @@ export declare function createBuiltinSandboxFactories(services: BuiltinSandboxPl
544
539
  export declare const dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
545
540
  export declare const e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
546
541
  export declare const vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
547
- export declare const localSandbox: (options?: LocalSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
548
542
  /**
549
543
  * 统一的单容器 Docker factory。Docker access用判别联合选择显式socket、raw DinD或managed DinD;
550
544
  * 宿主路径/profile只保存到私有runtime binding。本函数不连接Docker,provider接线由后续层负责。
@@ -93,6 +93,8 @@ export interface DockerSandboxResources {
93
93
  readonly cpus?: number;
94
94
  readonly memoryBytes?: number;
95
95
  readonly pidsLimit?: number;
96
+ /** Dedicated, control-owned storage mounted at /var/lib/docker for inner DinD. */
97
+ readonly dockerDataBytes?: number;
96
98
  /** 把镜像 rootfs 设为只读;需要写入的路径必须逐一声明为有界 tmpfs。 */
97
99
  readonly readOnlyRootfs?: boolean;
98
100
  readonly tmpfs?: Readonly<globalThis.Record<string, DockerSandboxTmpfsOptions>>;
@@ -113,6 +115,7 @@ export interface ManagedDockerResources extends DockerSandboxResources {
113
115
  readonly cpus: number;
114
116
  readonly memoryBytes: number;
115
117
  readonly pidsLimit: number;
118
+ readonly dockerDataBytes: number;
116
119
  readonly readOnlyRootfs: true;
117
120
  }
118
121
  export interface DockerSandboxReadiness {
@@ -134,6 +137,8 @@ export type DockerSandboxAccess = {
134
137
  } | {
135
138
  readonly mode: "dind";
136
139
  readonly isolation: "raw-privileged";
140
+ /** Required only when resources.dockerDataBytes requests control-owned storage. */
141
+ readonly storageProfile?: string;
137
142
  } | {
138
143
  readonly mode: "dind";
139
144
  readonly isolation: "managed-rootless";
@@ -149,6 +154,7 @@ export type DockerSandboxOptions = (DockerSandboxCommonOptions & {
149
154
  } | {
150
155
  readonly mode: "dind";
151
156
  readonly isolation: "raw-privileged";
157
+ readonly storageProfile?: string;
152
158
  };
153
159
  readonly resources?: DockerSandboxResources;
154
160
  }) | (DockerSandboxCommonOptions & {
@@ -173,11 +179,6 @@ export interface VercelSandboxOptions {
173
179
  /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */
174
180
  readonly pathPrepend?: readonly string[];
175
181
  }
176
- export interface LocalSandboxOptions {
177
- readonly dir?: string;
178
- /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */
179
- readonly pathPrepend?: readonly string[];
180
- }
181
182
  export interface CustomProviderSandboxOptions {
182
183
  readonly name: string;
183
184
  readonly targetPlatform: SandboxTargetPlatform;
@@ -430,7 +431,6 @@ export interface SandboxTemplateDefinition {
430
431
  export interface BuiltinSandboxPlannerServices {
431
432
  /** 只读 control-plane 探测;测试可注入确定值或 typed failure。 */
432
433
  readonly dockerBuildPlatform: Effect.Effect<string, SandboxProviderPlanningError>;
433
- readonly hostPlatform: SandboxTargetPlatform;
434
434
  }
435
435
  export interface BuiltinSandboxFactories {
436
436
  readonly dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
@@ -438,7 +438,6 @@ export interface BuiltinSandboxFactories {
438
438
  readonly dockerImageSourceLayer: (options: DockerImageSourceOptions) => SandboxLayer<"template-bearing", "prepare-only">;
439
439
  readonly e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
440
440
  readonly vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
441
- readonly localSandbox: (options?: LocalSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
442
441
  }
443
442
  export interface CommandOnlySandboxLayerState {
444
443
  readonly kind: "command-only";
@@ -524,10 +523,6 @@ export interface VercelProviderPlan {
524
523
  readonly lifetime: SandboxProviderLifetime;
525
524
  readonly pathPrepend: readonly string[];
526
525
  }
527
- export interface LocalProviderPlan {
528
- readonly directory: string;
529
- readonly pathPrepend: readonly string[];
530
- }
531
526
  export interface CustomProviderPlan {
532
527
  readonly name: string;
533
528
  }
@@ -544,7 +539,6 @@ export declare function createBuiltinSandboxFactories(services: BuiltinSandboxPl
544
539
  export declare const dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
545
540
  export declare const e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
546
541
  export declare const vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
547
- export declare const localSandbox: (options?: LocalSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
548
542
  /**
549
543
  * 统一的单容器 Docker factory。Docker access用判别联合选择显式socket、raw DinD或managed DinD;
550
544
  * 宿主路径/profile只保存到私有runtime binding。本函数不连接Docker,provider接线由后续层负责。
@@ -93,6 +93,8 @@ export interface DockerSandboxResources {
93
93
  readonly cpus?: number;
94
94
  readonly memoryBytes?: number;
95
95
  readonly pidsLimit?: number;
96
+ /** Dedicated, control-owned storage mounted at /var/lib/docker for inner DinD. */
97
+ readonly dockerDataBytes?: number;
96
98
  /** 把镜像 rootfs 设为只读;需要写入的路径必须逐一声明为有界 tmpfs。 */
97
99
  readonly readOnlyRootfs?: boolean;
98
100
  readonly tmpfs?: Readonly<globalThis.Record<string, DockerSandboxTmpfsOptions>>;
@@ -113,6 +115,7 @@ export interface ManagedDockerResources extends DockerSandboxResources {
113
115
  readonly cpus: number;
114
116
  readonly memoryBytes: number;
115
117
  readonly pidsLimit: number;
118
+ readonly dockerDataBytes: number;
116
119
  readonly readOnlyRootfs: true;
117
120
  }
118
121
  export interface DockerSandboxReadiness {
@@ -134,6 +137,8 @@ export type DockerSandboxAccess = {
134
137
  } | {
135
138
  readonly mode: "dind";
136
139
  readonly isolation: "raw-privileged";
140
+ /** Required only when resources.dockerDataBytes requests control-owned storage. */
141
+ readonly storageProfile?: string;
137
142
  } | {
138
143
  readonly mode: "dind";
139
144
  readonly isolation: "managed-rootless";
@@ -149,6 +154,7 @@ export type DockerSandboxOptions = (DockerSandboxCommonOptions & {
149
154
  } | {
150
155
  readonly mode: "dind";
151
156
  readonly isolation: "raw-privileged";
157
+ readonly storageProfile?: string;
152
158
  };
153
159
  readonly resources?: DockerSandboxResources;
154
160
  }) | (DockerSandboxCommonOptions & {
@@ -173,11 +179,6 @@ export interface VercelSandboxOptions {
173
179
  /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */
174
180
  readonly pathPrepend?: readonly string[];
175
181
  }
176
- export interface LocalSandboxOptions {
177
- readonly dir?: string;
178
- /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */
179
- readonly pathPrepend?: readonly string[];
180
- }
181
182
  export interface CustomProviderSandboxOptions {
182
183
  readonly name: string;
183
184
  readonly targetPlatform: SandboxTargetPlatform;
@@ -430,7 +431,6 @@ export interface SandboxTemplateDefinition {
430
431
  export interface BuiltinSandboxPlannerServices {
431
432
  /** 只读 control-plane 探测;测试可注入确定值或 typed failure。 */
432
433
  readonly dockerBuildPlatform: Effect.Effect<string, SandboxProviderPlanningError>;
433
- readonly hostPlatform: SandboxTargetPlatform;
434
434
  }
435
435
  export interface BuiltinSandboxFactories {
436
436
  readonly dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
@@ -438,7 +438,6 @@ export interface BuiltinSandboxFactories {
438
438
  readonly dockerImageSourceLayer: (options: DockerImageSourceOptions) => SandboxLayer<"template-bearing", "prepare-only">;
439
439
  readonly e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
440
440
  readonly vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
441
- readonly localSandbox: (options?: LocalSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
442
441
  }
443
442
  export interface CommandOnlySandboxLayerState {
444
443
  readonly kind: "command-only";
@@ -524,10 +523,6 @@ export interface VercelProviderPlan {
524
523
  readonly lifetime: SandboxProviderLifetime;
525
524
  readonly pathPrepend: readonly string[];
526
525
  }
527
- export interface LocalProviderPlan {
528
- readonly directory: string;
529
- readonly pathPrepend: readonly string[];
530
- }
531
526
  export interface CustomProviderPlan {
532
527
  readonly name: string;
533
528
  }
@@ -544,7 +539,6 @@ export declare function createBuiltinSandboxFactories(services: BuiltinSandboxPl
544
539
  export declare const dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
545
540
  export declare const e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
546
541
  export declare const vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
547
- export declare const localSandbox: (options?: LocalSandboxOptions) => SandboxLayer<"template-bearing", "prepare-only">;
548
542
  /**
549
543
  * 统一的单容器 Docker factory。Docker access用判别联合选择显式socket、raw DinD或managed DinD;
550
544
  * 宿主路径/profile只保存到私有runtime binding。本函数不连接Docker,provider接线由后续层负责。
@@ -21,22 +21,20 @@ const __niceevalExport8 = __niceevalCanonical["e2bSandbox"];
21
21
  export { __niceevalExport8 as e2bSandbox };
22
22
  const __niceevalExport9 = __niceevalCanonical["isSandboxLayer"];
23
23
  export { __niceevalExport9 as isSandboxLayer };
24
- const __niceevalExport10 = __niceevalCanonical["localSandbox"];
25
- export { __niceevalExport10 as localSandbox };
26
- const __niceevalExport11 = __niceevalCanonical["planSandboxTemplate"];
27
- export { __niceevalExport11 as planSandboxTemplate };
28
- const __niceevalExport12 = __niceevalCanonical["sandboxLayer"];
29
- export { __niceevalExport12 as sandboxLayer };
30
- const __niceevalExport13 = __niceevalCanonical["sandboxLayerStateOf"];
31
- export { __niceevalExport13 as sandboxLayerStateOf };
32
- const __niceevalExport14 = __niceevalCanonical["sandboxProviderBindingOf"];
33
- export { __niceevalExport14 as sandboxProviderBindingOf };
34
- const __niceevalExport15 = __niceevalCanonical["sandboxProviderPlan"];
35
- export { __niceevalExport15 as sandboxProviderPlan };
36
- const __niceevalExport16 = __niceevalCanonical["sandboxTemplateCommandPlanLocator"];
37
- export { __niceevalExport16 as sandboxTemplateCommandPlanLocator };
38
- const __niceevalExport17 = __niceevalCanonical["sandboxTemplateIdentity"];
39
- export { __niceevalExport17 as sandboxTemplateIdentity };
40
- const __niceevalExport18 = __niceevalCanonical["vercelSandbox"];
41
- export { __niceevalExport18 as vercelSandbox };
24
+ const __niceevalExport10 = __niceevalCanonical["planSandboxTemplate"];
25
+ export { __niceevalExport10 as planSandboxTemplate };
26
+ const __niceevalExport11 = __niceevalCanonical["sandboxLayer"];
27
+ export { __niceevalExport11 as sandboxLayer };
28
+ const __niceevalExport12 = __niceevalCanonical["sandboxLayerStateOf"];
29
+ export { __niceevalExport12 as sandboxLayerStateOf };
30
+ const __niceevalExport13 = __niceevalCanonical["sandboxProviderBindingOf"];
31
+ export { __niceevalExport13 as sandboxProviderBindingOf };
32
+ const __niceevalExport14 = __niceevalCanonical["sandboxProviderPlan"];
33
+ export { __niceevalExport14 as sandboxProviderPlan };
34
+ const __niceevalExport15 = __niceevalCanonical["sandboxTemplateCommandPlanLocator"];
35
+ export { __niceevalExport15 as sandboxTemplateCommandPlanLocator };
36
+ const __niceevalExport16 = __niceevalCanonical["sandboxTemplateIdentity"];
37
+ export { __niceevalExport16 as sandboxTemplateIdentity };
38
+ const __niceevalExport17 = __niceevalCanonical["vercelSandbox"];
39
+ export { __niceevalExport17 as vercelSandbox };
42
40
  //# sourceMappingURL=layer.js.map
@@ -1,22 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_LEDGER_GIT_DIR = void 0;
4
- exports.registerLedgerPaths = registerLedgerPaths;
5
- exports.unregisterLedgerPaths = unregisterLedgerPaths;
6
- exports.ledgerPathsFor = ledgerPathsFor;
7
- /** 云 provider 的私有分类账默认 git 目录;runner 与 detached 读回共用这一口径。 */
3
+ exports.DEFAULT_LEDGER_EXPORT_DIR = exports.DEFAULT_LEDGER_GIT_DIR = void 0;
4
+ /** 隔离 provider 内的私有分类账路径;runner 与 detached keep 共用唯一口径。 */
8
5
  exports.DEFAULT_LEDGER_GIT_DIR = "/tmp/.niceeval-ledger";
9
- const overrides = new Map();
10
- /** provider 在创建沙箱实例时登记一份专属路径(如 local 在 create() 里调用)。 */
11
- function registerLedgerPaths(sandboxId, paths) {
12
- overrides.set(sandboxId, paths);
13
- }
14
- /** provider 在 stop() 里注销(不影响磁盘上的目录本身——删除由调用方另行负责)。 */
15
- function unregisterLedgerPaths(sandboxId) {
16
- overrides.delete(sandboxId);
17
- }
18
- /** ledger.ts 的读取入口:没有登记过就返回 undefined,调用方落到自己的默认常量。 */
19
- function ledgerPathsFor(sandboxId) {
20
- return overrides.get(sandboxId);
21
- }
6
+ /** 整相导出文件的 runner 私有落点,与 ledger 使用同一固定前缀。 */
7
+ exports.DEFAULT_LEDGER_EXPORT_DIR = "/tmp/.niceeval-ledger-export";
22
8
  //# sourceMappingURL=ledger-paths.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-paths.js","sourceRoot":"","sources":["ledger-paths.ts"],"names":[],"mappings":";;;AAoBA,kDAEC;AAED,sDAEC;AAED,wCAEC;AAdD,6DAA6D;AAChD,QAAA,sBAAsB,GAAG,uBAAuB,CAAC;AAC9D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;AACjD,yDAAyD;AACzD,SAAgB,mBAAmB,CAAC,SAAiB,EAAE,KAAkB;IACrE,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AACD,sDAAsD;AACtD,SAAgB,qBAAqB,CAAC,SAAiB;IACnD,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC;AACD,uDAAuD;AACvD,SAAgB,cAAc,CAAC,SAAiB;IAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC","sourcesContent":["// 变更分类账(runner/ledger.ts)GIT_DIR / 导出目录的覆盖登记表,按 sandboxId 做键。\n//\n// 多数 provider 每次创建都是全新隔离文件系统(容器 / microVM),固定的沙箱内路径天然不会跨\n// 实例互相踩踏。宿主本身即工作树的 provider(如 local)不享有这份隔离——同一台宿主机上先后\n// 或并发跑的多个 attempt 共享同一个 /tmp,分类账若固定用同一个宿主路径,会在同机多次运行之间\n// 相互覆盖彼此的 git 索引与 HEAD。\n//\n// 这里不是在 ledger.ts 里认 provider 名分支:ledger.ts 只问「这个 sandboxId 有没有登记过覆盖\n// 路径,没有就用默认值」,登记者是谁、为什么要登记完全不需要 ledger.ts 关心(核心不出现\n// `provider == local` 分支,见 docs/architecture.md)。\nexport interface LedgerPaths {\n /** 覆盖 runner/ledger.ts 的 GIT_DIR(私有分类账 git 目录)。 */\n gitDir: string;\n /** 覆盖 runner/ledger.ts 的整相导出目录。 */\n exportDir: string;\n}\n/** 云 provider 的私有分类账默认 git 目录;runner 与 detached 读回共用这一口径。 */\nexport const DEFAULT_LEDGER_GIT_DIR = \"/tmp/.niceeval-ledger\";\nconst overrides = new Map<string, LedgerPaths>();\n/** provider 在创建沙箱实例时登记一份专属路径(如 local 在 create() 里调用)。 */\nexport function registerLedgerPaths(sandboxId: string, paths: LedgerPaths): void {\n overrides.set(sandboxId, paths);\n}\n/** provider 在 stop() 里注销(不影响磁盘上的目录本身——删除由调用方另行负责)。 */\nexport function unregisterLedgerPaths(sandboxId: string): void {\n overrides.delete(sandboxId);\n}\n/** ledger.ts 的读取入口:没有登记过就返回 undefined,调用方落到自己的默认常量。 */\nexport function ledgerPathsFor(sandboxId: string): LedgerPaths | undefined {\n return overrides.get(sandboxId);\n}\n"]}
1
+ {"version":3,"file":"ledger-paths.js","sourceRoot":"","sources":["ledger-paths.ts"],"names":[],"mappings":";;;AAAA,2DAA2D;AAC9C,QAAA,sBAAsB,GAAG,uBAAuB,CAAC;AAC9D,6CAA6C;AAChC,QAAA,yBAAyB,GAAG,8BAA8B,CAAC","sourcesContent":["/** 隔离 provider 内的私有分类账路径;runner 与 detached keep 共用唯一口径。 */\nexport const DEFAULT_LEDGER_GIT_DIR = \"/tmp/.niceeval-ledger\";\n/** 整相导出文件的 runner 私有落点,与 ledger 使用同一固定前缀。 */\nexport const DEFAULT_LEDGER_EXPORT_DIR = \"/tmp/.niceeval-ledger-export\";\n"]}
@@ -1,14 +1,4 @@
1
- export interface LedgerPaths {
2
- /** 覆盖 runner/ledger.ts 的 GIT_DIR(私有分类账 git 目录)。 */
3
- gitDir: string;
4
- /** 覆盖 runner/ledger.ts 的整相导出目录。 */
5
- exportDir: string;
6
- }
7
- /** 云 provider 的私有分类账默认 git 目录;runner 与 detached 读回共用这一口径。 */
1
+ /** 隔离 provider 内的私有分类账路径;runner 与 detached keep 共用唯一口径。 */
8
2
  export declare const DEFAULT_LEDGER_GIT_DIR = "/tmp/.niceeval-ledger";
9
- /** provider 在创建沙箱实例时登记一份专属路径(如 local 在 create() 里调用)。 */
10
- export declare function registerLedgerPaths(sandboxId: string, paths: LedgerPaths): void;
11
- /** provider 在 stop() 里注销(不影响磁盘上的目录本身——删除由调用方另行负责)。 */
12
- export declare function unregisterLedgerPaths(sandboxId: string): void;
13
- /** ledger.ts 的读取入口:没有登记过就返回 undefined,调用方落到自己的默认常量。 */
14
- export declare function ledgerPathsFor(sandboxId: string): LedgerPaths | undefined;
3
+ /** 整相导出文件的 runner 私有落点,与 ledger 使用同一固定前缀。 */
4
+ export declare const DEFAULT_LEDGER_EXPORT_DIR = "/tmp/.niceeval-ledger-export";
@@ -1,14 +1,4 @@
1
- export interface LedgerPaths {
2
- /** 覆盖 runner/ledger.ts 的 GIT_DIR(私有分类账 git 目录)。 */
3
- gitDir: string;
4
- /** 覆盖 runner/ledger.ts 的整相导出目录。 */
5
- exportDir: string;
6
- }
7
- /** 云 provider 的私有分类账默认 git 目录;runner 与 detached 读回共用这一口径。 */
1
+ /** 隔离 provider 内的私有分类账路径;runner 与 detached keep 共用唯一口径。 */
8
2
  export declare const DEFAULT_LEDGER_GIT_DIR = "/tmp/.niceeval-ledger";
9
- /** provider 在创建沙箱实例时登记一份专属路径(如 local 在 create() 里调用)。 */
10
- export declare function registerLedgerPaths(sandboxId: string, paths: LedgerPaths): void;
11
- /** provider 在 stop() 里注销(不影响磁盘上的目录本身——删除由调用方另行负责)。 */
12
- export declare function unregisterLedgerPaths(sandboxId: string): void;
13
- /** ledger.ts 的读取入口:没有登记过就返回 undefined,调用方落到自己的默认常量。 */
14
- export declare function ledgerPathsFor(sandboxId: string): LedgerPaths | undefined;
3
+ /** 整相导出文件的 runner 私有落点,与 ledger 使用同一固定前缀。 */
4
+ export declare const DEFAULT_LEDGER_EXPORT_DIR = "/tmp/.niceeval-ledger-export";
@@ -1,14 +1,4 @@
1
- export interface LedgerPaths {
2
- /** 覆盖 runner/ledger.ts 的 GIT_DIR(私有分类账 git 目录)。 */
3
- gitDir: string;
4
- /** 覆盖 runner/ledger.ts 的整相导出目录。 */
5
- exportDir: string;
6
- }
7
- /** 云 provider 的私有分类账默认 git 目录;runner 与 detached 读回共用这一口径。 */
1
+ /** 隔离 provider 内的私有分类账路径;runner 与 detached keep 共用唯一口径。 */
8
2
  export declare const DEFAULT_LEDGER_GIT_DIR = "/tmp/.niceeval-ledger";
9
- /** provider 在创建沙箱实例时登记一份专属路径(如 local 在 create() 里调用)。 */
10
- export declare function registerLedgerPaths(sandboxId: string, paths: LedgerPaths): void;
11
- /** provider 在 stop() 里注销(不影响磁盘上的目录本身——删除由调用方另行负责)。 */
12
- export declare function unregisterLedgerPaths(sandboxId: string): void;
13
- /** ledger.ts 的读取入口:没有登记过就返回 undefined,调用方落到自己的默认常量。 */
14
- export declare function ledgerPathsFor(sandboxId: string): LedgerPaths | undefined;
3
+ /** 整相导出文件的 runner 私有落点,与 ledger 使用同一固定前缀。 */
4
+ export declare const DEFAULT_LEDGER_EXPORT_DIR = "/tmp/.niceeval-ledger-export";
@@ -1,12 +1,8 @@
1
1
  import { createRequire as __niceevalCreateRequire } from "node:module";
2
2
  const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
3
  const __niceevalCanonical = __niceevalRequire("./ledger-paths.cjs");
4
- const __niceevalExport0 = __niceevalCanonical["DEFAULT_LEDGER_GIT_DIR"];
5
- export { __niceevalExport0 as DEFAULT_LEDGER_GIT_DIR };
6
- const __niceevalExport1 = __niceevalCanonical["ledgerPathsFor"];
7
- export { __niceevalExport1 as ledgerPathsFor };
8
- const __niceevalExport2 = __niceevalCanonical["registerLedgerPaths"];
9
- export { __niceevalExport2 as registerLedgerPaths };
10
- const __niceevalExport3 = __niceevalCanonical["unregisterLedgerPaths"];
11
- export { __niceevalExport3 as unregisterLedgerPaths };
4
+ const __niceevalExport0 = __niceevalCanonical["DEFAULT_LEDGER_EXPORT_DIR"];
5
+ export { __niceevalExport0 as DEFAULT_LEDGER_EXPORT_DIR };
6
+ const __niceevalExport1 = __niceevalCanonical["DEFAULT_LEDGER_GIT_DIR"];
7
+ export { __niceevalExport1 as DEFAULT_LEDGER_GIT_DIR };
12
8
  //# sourceMappingURL=ledger-paths.js.map
@@ -9,7 +9,7 @@ exports.stopAllSandboxes = stopAllSandboxes;
9
9
  //
10
10
  // 中断(Ctrl+C)时,正常路径靠 Effect 的 Sample finalizer 跑 sb.stop() 停容器。但 finalizer
11
11
  // 这条路不是 100% 可靠:vsb.stop() 这类远端调用可能慢/挂,用户等不及再按一次 Ctrl+C,进程
12
- // 就被硬退了 —— 沙箱成了孤儿(只有本身带超时的 provider 才会自己回收它;local 这类不会)。
12
+ // 就被硬退了 —— 沙箱成了孤儿(只有本身带超时的 provider 才会自己回收它)。
13
13
  //
14
14
  // 这里维护一份独立于 Effect 的登记表,让 cli 在「二次中断 / graceful 清理超时 / 正常返回后」
15
15
  // 都能直接、带超时地强停所有还活着的沙箱。stop 不再静默吞异常(原 `.catch(() => {})`),失败打到
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["registry.ts"],"names":[],"mappings":"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","sourcesContent":["// 活动沙箱登记表 + 强制清理兜底。\n//\n// 中断(Ctrl+C)时,正常路径靠 Effect 的 Sample finalizer 跑 sb.stop() 停容器。但 finalizer\n// 这条路不是 100% 可靠:vsb.stop() 这类远端调用可能慢/挂,用户等不及再按一次 Ctrl+C,进程\n// 就被硬退了 —— 沙箱成了孤儿(只有本身带超时的 provider 才会自己回收它;local 这类不会)。\n//\n// 这里维护一份独立于 Effect 的登记表,让 cli 在「二次中断 / graceful 清理超时 / 正常返回后」\n// 都能直接、带超时地强停所有还活着的沙箱。stop 不再静默吞异常(原 `.catch(() => {})`),失败打到\n// stderr,这样孤儿至少留下痕迹可查。\nimport { Effect } from \"effect\";\nimport type { Sandbox } from \"../types.ts\";\nimport { t } from \"../i18n/index.ts\";\nimport { reportDiagnostic } from \"../runner/feedback/sink.ts\";\nconst live = new Set<Sandbox>();\n// 单个 stop 的默认超时:vsb.stop() 偶发慢/挂,清理不能无限等。到点就放弃、记一笔,\n// 让流程继续走到退出 —— 没停掉的沙箱会继续运行并计费,直到 provider 自己的超时(如果有)回收它。\nconst DEFAULT_STOP_TIMEOUT_MS = 8000;\nexport function registerSandbox(sb: Sandbox): void {\n live.add(sb);\n}\n/** 留存提交成功后把沙箱移出本次 run 的内存强清集合(不 stop——现场归持久注册表管理)。 */\nexport function unregisterSandbox(sb: Sandbox): void {\n live.delete(sb);\n}\nexport function liveSandboxCount(): number {\n return live.size;\n}\n/**\n * 带超时地停单个沙箱。只有真实成功才从登记表移除;失败 / 超时保留所有权,让同轮后续\n * 强清可以重试,进程退出后也仍可由 provider 元数据认领。异常打到 stderr 不再静默吞。\n * 供 Sample finalizer 与兜底强清共用,避免重复实现 stop 语义。\n */\nexport async function stopSandbox(sb: Sandbox, timeoutMs = DEFAULT_STOP_TIMEOUT_MS): Promise<void> {\n let stopped = false;\n try {\n // 超时走 Effect Clock/Sleep:到点 timeoutFail 中断等待 fiber,不再手工维护 timer。\n // sb.stop() 是 provider Promise 叶子,原样保留,失败/超时都不从登记表移除,供同轮重试。\n await Effect.runPromise(Effect.tryPromise({\n try: () => sb.stop(),\n catch: (cause) => cause,\n }).pipe(Effect.timeoutFail({\n duration: timeoutMs,\n onTimeout: () => new Error(t(\"sandbox.stopTimeout\", { timeoutMs })),\n })));\n stopped = true;\n }\n catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n // 稳定 key 不含具体 sandbox id:同一类失败(如 provider 限流导致大批 stop 超时)去重折叠成\n // 一条永久事件、count 累加,而不是刷屏出几十行几乎相同的诊断;具体是哪个沙箱失败进 data。\n reportDiagnostic({\n key: \"sandbox-stop-failed\",\n severity: \"warning\",\n message: t(\"sandbox.stopFailed\", { id: sb.sandboxId, message: msg }).trimEnd(),\n data: { sandboxId: sb.sandboxId, message: msg },\n });\n }\n finally {\n if (stopped)\n live.delete(sb);\n }\n}\n/**\n * 兜底强清:并发停掉所有还登记着的沙箱(各自带超时、各自兜错,绝不抛)。返回尝试停的数量。\n * cli 在二次中断 / graceful 清理超时 / 正常返回后调用 —— 正常跑完时登记表已空,是个 no-op。\n */\nexport async function stopAllSandboxes(timeoutMs = DEFAULT_STOP_TIMEOUT_MS): Promise<number> {\n const all = [...live];\n if (all.length === 0)\n return 0;\n reportDiagnostic({\n key: \"sandbox-force-cleanup\",\n severity: \"warning\",\n message: t(\"sandbox.forceCleanup\", { count: all.length }).trimEnd(),\n data: { count: all.length },\n });\n await Promise.allSettled(all.map((sb) => stopSandbox(sb, timeoutMs)));\n return all.length;\n}\n"]}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["registry.ts"],"names":[],"mappings":"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","sourcesContent":["// 活动沙箱登记表 + 强制清理兜底。\n//\n// 中断(Ctrl+C)时,正常路径靠 Effect 的 Sample finalizer 跑 sb.stop() 停容器。但 finalizer\n// 这条路不是 100% 可靠:vsb.stop() 这类远端调用可能慢/挂,用户等不及再按一次 Ctrl+C,进程\n// 就被硬退了 —— 沙箱成了孤儿(只有本身带超时的 provider 才会自己回收它)。\n//\n// 这里维护一份独立于 Effect 的登记表,让 cli 在「二次中断 / graceful 清理超时 / 正常返回后」\n// 都能直接、带超时地强停所有还活着的沙箱。stop 不再静默吞异常(原 `.catch(() => {})`),失败打到\n// stderr,这样孤儿至少留下痕迹可查。\nimport { Effect } from \"effect\";\nimport type { Sandbox } from \"../types.ts\";\nimport { t } from \"../i18n/index.ts\";\nimport { reportDiagnostic } from \"../runner/feedback/sink.ts\";\nconst live = new Set<Sandbox>();\n// 单个 stop 的默认超时:vsb.stop() 偶发慢/挂,清理不能无限等。到点就放弃、记一笔,\n// 让流程继续走到退出 —— 没停掉的沙箱会继续运行并计费,直到 provider 自己的超时(如果有)回收它。\nconst DEFAULT_STOP_TIMEOUT_MS = 8000;\nexport function registerSandbox(sb: Sandbox): void {\n live.add(sb);\n}\n/** 留存提交成功后把沙箱移出本次 run 的内存强清集合(不 stop——现场归持久注册表管理)。 */\nexport function unregisterSandbox(sb: Sandbox): void {\n live.delete(sb);\n}\nexport function liveSandboxCount(): number {\n return live.size;\n}\n/**\n * 带超时地停单个沙箱。只有真实成功才从登记表移除;失败 / 超时保留所有权,让同轮后续\n * 强清可以重试,进程退出后也仍可由 provider 元数据认领。异常打到 stderr 不再静默吞。\n * 供 Sample finalizer 与兜底强清共用,避免重复实现 stop 语义。\n */\nexport async function stopSandbox(sb: Sandbox, timeoutMs = DEFAULT_STOP_TIMEOUT_MS): Promise<void> {\n let stopped = false;\n try {\n // 超时走 Effect Clock/Sleep:到点 timeoutFail 中断等待 fiber,不再手工维护 timer。\n // sb.stop() 是 provider Promise 叶子,原样保留,失败/超时都不从登记表移除,供同轮重试。\n await Effect.runPromise(Effect.tryPromise({\n try: () => sb.stop(),\n catch: (cause) => cause,\n }).pipe(Effect.timeoutFail({\n duration: timeoutMs,\n onTimeout: () => new Error(t(\"sandbox.stopTimeout\", { timeoutMs })),\n })));\n stopped = true;\n }\n catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n // 稳定 key 不含具体 sandbox id:同一类失败(如 provider 限流导致大批 stop 超时)去重折叠成\n // 一条永久事件、count 累加,而不是刷屏出几十行几乎相同的诊断;具体是哪个沙箱失败进 data。\n reportDiagnostic({\n key: \"sandbox-stop-failed\",\n severity: \"warning\",\n message: t(\"sandbox.stopFailed\", { id: sb.sandboxId, message: msg }).trimEnd(),\n data: { sandboxId: sb.sandboxId, message: msg },\n });\n }\n finally {\n if (stopped)\n live.delete(sb);\n }\n}\n/**\n * 兜底强清:并发停掉所有还登记着的沙箱(各自带超时、各自兜错,绝不抛)。返回尝试停的数量。\n * cli 在二次中断 / graceful 清理超时 / 正常返回后调用 —— 正常跑完时登记表已空,是个 no-op。\n */\nexport async function stopAllSandboxes(timeoutMs = DEFAULT_STOP_TIMEOUT_MS): Promise<number> {\n const all = [...live];\n if (all.length === 0)\n return 0;\n reportDiagnostic({\n key: \"sandbox-force-cleanup\",\n severity: \"warning\",\n message: t(\"sandbox.forceCleanup\", { count: all.length }).trimEnd(),\n data: { count: all.length },\n });\n await Promise.allSettled(all.map((sb) => stopSandbox(sb, timeoutMs)));\n return all.length;\n}\n"]}
@@ -10,7 +10,6 @@ exports.buildDockerfileAgentImageWithServices = buildDockerfileAgentImageWithSer
10
10
  exports.materializeDockerImageProviderPlan = materializeDockerImageProviderPlan;
11
11
  exports.materializeE2BProviderPlan = materializeE2BProviderPlan;
12
12
  exports.materializeVercelProviderPlan = materializeVercelProviderPlan;
13
- exports.materializeLocalProviderPlan = materializeLocalProviderPlan;
14
13
  exports.materializeCustomProviderPlan = materializeCustomProviderPlan;
15
14
  exports.materializeCustomCaseProviderPlan = materializeCustomCaseProviderPlan;
16
15
  exports.collectDockerComposeProviderBuildPreparation = collectDockerComposeProviderBuildPreparation;
@@ -79,15 +78,16 @@ function deadlineOptions(deadline) {
79
78
  function configuredLifetime(value) {
80
79
  return value._tag === "Configured" ? value.milliseconds : undefined;
81
80
  }
82
- async function managedContainerSession(binding, resources) {
81
+ async function managedContainerSession(binding, resources, signal) {
83
82
  const lease = await (0, runtime_ts_1.createDockerProfileLease)(binding);
84
83
  try {
85
84
  const reservation = await (0, runtime_ts_1.acquireDockerProfileReservation)(lease, "container", {
86
85
  cpus: resources.cpus ?? 0,
87
86
  memoryBytes: resources.memoryBytes ?? 0,
88
87
  pids: resources.pidsLimit ?? 0,
88
+ ephemeralDiskBytes: resources.dockerDataBytes ?? 0,
89
89
  containers: 1,
90
- });
90
+ }, signal);
91
91
  const labels = Object.freeze({
92
92
  "niceeval.profile-id": binding.profile.profileId,
93
93
  "niceeval.invocation-id": lease.invocationId,
@@ -254,10 +254,10 @@ function materializeDockerfileProviderPlan(plan, context) {
254
254
  const { DockerSandbox, classifyProvisionError, reconcileProvision } = yield* (0, backend_ts_1.providerBoundaryEffect)(() => __niceevalDynamicImport("./docker.cjs"));
255
255
  const managed = plan.profileBinding === undefined
256
256
  ? undefined
257
- : yield* (0, backend_ts_1.providerBoundaryEffect)(() => managedContainerSession(plan.profileBinding, plan.resources));
257
+ : yield* (0, backend_ts_1.providerBoundaryEffect)(() => managedContainerSession(plan.profileBinding, plan.resources, context.signal));
258
258
  const provisionToken = managed?.reservation.provisionToken ?? (0, node_crypto_1.randomUUID)();
259
259
  return yield* effect_1.Effect.gen(function* () {
260
- const backend = yield* (0, retry_ts_1.withProvisionRetry)((0, backend_ts_1.providerBoundaryEffect)(() => DockerSandbox.create({
260
+ const createOptions = {
261
261
  ...deadlineOptions(context.deadline),
262
262
  runtime: "node24",
263
263
  image: resolved.locator,
@@ -273,7 +273,9 @@ function materializeDockerfileProviderPlan(plan, context) {
273
273
  runIdentity: (0, run_identity_ts_1.currentRunIdentity)(),
274
274
  ...(plan.profileBinding === undefined ? {} : {
275
275
  dockerSocketPath: plan.profileBinding.dockerSocketPath,
276
- dns: plan.profileBinding.profile.policy.network.dns.servers,
276
+ ...(plan.profileBinding.profile.policy.level === "managed-rootless/v1"
277
+ ? { dns: plan.profileBinding.profile.policy.network.dns.servers }
278
+ : {}),
277
279
  managedLabels: managed?.labels,
278
280
  rootlessAttestation: {
279
281
  daemonId: plan.profileBinding.daemonId,
@@ -281,14 +283,12 @@ function materializeDockerfileProviderPlan(plan, context) {
281
283
  },
282
284
  afterStop: managed?.finish,
283
285
  }),
284
- })), classifyProvisionError, boundProvisionSlot(context), context.feedback, (0, backend_ts_1.providerBoundaryEffect)(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath)));
285
- if (managed !== undefined) {
286
- yield* (0, backend_ts_1.providerBoundaryEffect)(() => (0, runtime_ts_1.commitDockerProfileReservation)(managed.lease, managed.reservation.reservationId, {
287
- containerId: backend.sandboxId,
288
- ...(backend.managedNetworkId === undefined ? {} : { networkId: backend.managedNetworkId }),
289
- attemptId: context.evalId,
290
- }));
291
- }
286
+ };
287
+ const backend = yield* (0, retry_ts_1.withProvisionRetry)((0, backend_ts_1.providerBoundaryEffect)(() => managed === undefined
288
+ ? DockerSandbox.create(createOptions)
289
+ : DockerSandbox.createControlled(createOptions, (create) => (0, runtime_ts_1.createDockerProfileContainer)(managed.lease, managed.reservation.reservationId, { ...create, attemptId: context.evalId }))), classifyProvisionError, boundProvisionSlot(context), context.feedback, managed === undefined
290
+ ? (0, backend_ts_1.providerBoundaryEffect)(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath))
291
+ : effect_1.Effect.void);
292
292
  return wrapSingleSandbox(backend, context, { image: resolved.locator });
293
293
  }).pipe(effect_1.Effect.onError(() => managed === undefined
294
294
  ? effect_1.Effect.void
@@ -384,10 +384,10 @@ function materializeDockerImageProviderPlan(plan, context) {
384
384
  const { DockerSandbox, classifyProvisionError, reconcileProvision } = yield* (0, backend_ts_1.providerBoundaryEffect)(() => __niceevalDynamicImport("./docker.cjs"));
385
385
  const managed = plan.profileBinding === undefined
386
386
  ? undefined
387
- : yield* (0, backend_ts_1.providerBoundaryEffect)(() => managedContainerSession(plan.profileBinding, plan.resources));
387
+ : yield* (0, backend_ts_1.providerBoundaryEffect)(() => managedContainerSession(plan.profileBinding, plan.resources, context.signal));
388
388
  const provisionToken = managed?.reservation.provisionToken ?? (0, node_crypto_1.randomUUID)();
389
389
  return yield* effect_1.Effect.gen(function* () {
390
- const backend = yield* (0, retry_ts_1.withProvisionRetry)((0, backend_ts_1.providerBoundaryEffect)(() => DockerSandbox.create({
390
+ const createOptions = {
391
391
  ...deadlineOptions(context.deadline),
392
392
  runtime: "node24",
393
393
  image: plan.image,
@@ -403,7 +403,9 @@ function materializeDockerImageProviderPlan(plan, context) {
403
403
  runIdentity: (0, run_identity_ts_1.currentRunIdentity)(),
404
404
  ...(plan.profileBinding === undefined ? {} : {
405
405
  dockerSocketPath: plan.profileBinding.dockerSocketPath,
406
- dns: plan.profileBinding.profile.policy.network.dns.servers,
406
+ ...(plan.profileBinding.profile.policy.level === "managed-rootless/v1"
407
+ ? { dns: plan.profileBinding.profile.policy.network.dns.servers }
408
+ : {}),
407
409
  managedLabels: managed?.labels,
408
410
  rootlessAttestation: {
409
411
  daemonId: plan.profileBinding.daemonId,
@@ -411,14 +413,12 @@ function materializeDockerImageProviderPlan(plan, context) {
411
413
  },
412
414
  afterStop: managed?.finish,
413
415
  }),
414
- })), classifyProvisionError, boundProvisionSlot(context), context.feedback, (0, backend_ts_1.providerBoundaryEffect)(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath)));
415
- if (managed !== undefined) {
416
- yield* (0, backend_ts_1.providerBoundaryEffect)(() => (0, runtime_ts_1.commitDockerProfileReservation)(managed.lease, managed.reservation.reservationId, {
417
- containerId: backend.sandboxId,
418
- ...(backend.managedNetworkId === undefined ? {} : { networkId: backend.managedNetworkId }),
419
- attemptId: context.evalId,
420
- }));
421
- }
416
+ };
417
+ const backend = yield* (0, retry_ts_1.withProvisionRetry)((0, backend_ts_1.providerBoundaryEffect)(() => managed === undefined
418
+ ? DockerSandbox.create(createOptions)
419
+ : DockerSandbox.createControlled(createOptions, (create) => (0, runtime_ts_1.createDockerProfileContainer)(managed.lease, managed.reservation.reservationId, { ...create, attemptId: context.evalId }))), classifyProvisionError, boundProvisionSlot(context), context.feedback, managed === undefined
420
+ ? (0, backend_ts_1.providerBoundaryEffect)(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath))
421
+ : effect_1.Effect.void);
422
422
  return wrapSingleSandbox(backend, context, { image: plan.image });
423
423
  }).pipe(effect_1.Effect.onError(() => managed === undefined
424
424
  ? effect_1.Effect.void
@@ -457,16 +457,6 @@ function materializeVercelProviderPlan(plan, context) {
457
457
  return wrapSingleSandbox(backend, context, { snapshotId: plan.snapshotId });
458
458
  }));
459
459
  }
460
- function materializeLocalProviderPlan(plan, context) {
461
- return materializationEffect(context, effect_1.Effect.gen(function* () {
462
- const { LocalSandbox } = yield* (0, backend_ts_1.providerBoundaryEffect)(() => __niceevalDynamicImport("./local.cjs"));
463
- return wrapSingleSandbox(yield* (0, backend_ts_1.providerBoundaryEffect)(() => LocalSandbox.create({
464
- ...deadlineOptions(context.deadline),
465
- dir: plan.directory,
466
- pathPrepend: plan.pathPrepend,
467
- })), context, { directory: plan.directory });
468
- }));
469
- }
470
460
  function materializeCustomProviderPlan(plan, context, create) {
471
461
  return effect_1.Effect.flatMap(create({ deadline: context.deadline, runtime: "node24", feedback: context.feedback }).pipe(effect_1.Effect.mapError((cause) => runtimeFailure(context, "sandbox.materialization-failed", cause))), (sandbox) => effect_1.Effect.try({
472
462
  try: () => wrapSingleSandbox((0, backend_ts_1.customSandboxBackend)(sandbox), context, { provider: plan.name }),
@@ -657,8 +647,8 @@ function collectDockerfileProviderBuildPreparation(plan, published, evalId) {
657
647
  let network;
658
648
  try {
659
649
  reservation = await (0, runtime_ts_1.acquireDockerProfileReservation)(lease, "build", {
660
- cpus: 0, memoryBytes: 0, pids: 0, containers: 0,
661
- });
650
+ cpus: 0, memoryBytes: 0, pids: 0, containers: 0, ephemeralDiskBytes: 0,
651
+ }, buildContext.signal);
662
652
  const labels = Object.freeze({
663
653
  "niceeval.profile-id": plan.profileBinding.profile.profileId,
664
654
  "niceeval.invocation-id": lease.invocationId,