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
@@ -79,6 +79,19 @@ export interface DockerSandboxOptions {
79
79
  */
80
80
  pathPrepend?: readonly string[];
81
81
  }
82
+ export interface DockerControlCreateSpec {
83
+ readonly image: string;
84
+ readonly command: readonly string[];
85
+ readonly entrypoint?: string;
86
+ readonly environment: readonly string[];
87
+ readonly workingDir: string;
88
+ readonly user?: string;
89
+ readonly tmpfs: Readonly<Record<string, string>>;
90
+ }
91
+ export interface DockerControlCreateResult {
92
+ readonly containerId: string;
93
+ readonly networkId: string;
94
+ }
82
95
  export declare function assertRootlessPrivilegedDaemon(info: {
83
96
  readonly ID?: string;
84
97
  readonly SecurityOptions?: readonly string[];
@@ -184,6 +197,8 @@ export declare class DockerSandbox implements SandboxProviderBackend, SandboxReu
184
197
  }>;
185
198
  /** 创建并启动一个 Docker 沙箱。 */
186
199
  static create(options?: DockerSandboxOptions): Promise<DockerSandbox>;
200
+ /** Control service owns create/remove; this handle only starts, initializes and detaches. */
201
+ static createControlled(options: DockerSandboxOptions, create: (spec: DockerControlCreateSpec) => Promise<DockerControlCreateResult>): Promise<DockerSandbox>;
187
202
  /** DinD 容器 kill-on-failure 前收集有界诊断,普通 Docker 保持原错误形状。 */
188
203
  private withInitializationDiagnostics;
189
204
  /** 拉镜像、起容器、装基础工具、备好工作区与 npm 前缀。 */
@@ -79,6 +79,19 @@ export interface DockerSandboxOptions {
79
79
  */
80
80
  pathPrepend?: readonly string[];
81
81
  }
82
+ export interface DockerControlCreateSpec {
83
+ readonly image: string;
84
+ readonly command: readonly string[];
85
+ readonly entrypoint?: string;
86
+ readonly environment: readonly string[];
87
+ readonly workingDir: string;
88
+ readonly user?: string;
89
+ readonly tmpfs: Readonly<Record<string, string>>;
90
+ }
91
+ export interface DockerControlCreateResult {
92
+ readonly containerId: string;
93
+ readonly networkId: string;
94
+ }
82
95
  export declare function assertRootlessPrivilegedDaemon(info: {
83
96
  readonly ID?: string;
84
97
  readonly SecurityOptions?: readonly string[];
@@ -184,6 +197,8 @@ export declare class DockerSandbox implements SandboxProviderBackend, SandboxReu
184
197
  }>;
185
198
  /** 创建并启动一个 Docker 沙箱。 */
186
199
  static create(options?: DockerSandboxOptions): Promise<DockerSandbox>;
200
+ /** Control service owns create/remove; this handle only starts, initializes and detaches. */
201
+ static createControlled(options: DockerSandboxOptions, create: (spec: DockerControlCreateSpec) => Promise<DockerControlCreateResult>): Promise<DockerSandbox>;
187
202
  /** DinD 容器 kill-on-failure 前收集有界诊断,普通 Docker 保持原错误形状。 */
188
203
  private withInitializationDiagnostics;
189
204
  /** 拉镜像、起容器、装基础工具、备好工作区与 npm 前缀。 */
@@ -79,6 +79,19 @@ export interface DockerSandboxOptions {
79
79
  */
80
80
  pathPrepend?: readonly string[];
81
81
  }
82
+ export interface DockerControlCreateSpec {
83
+ readonly image: string;
84
+ readonly command: readonly string[];
85
+ readonly entrypoint?: string;
86
+ readonly environment: readonly string[];
87
+ readonly workingDir: string;
88
+ readonly user?: string;
89
+ readonly tmpfs: Readonly<Record<string, string>>;
90
+ }
91
+ export interface DockerControlCreateResult {
92
+ readonly containerId: string;
93
+ readonly networkId: string;
94
+ }
82
95
  export declare function assertRootlessPrivilegedDaemon(info: {
83
96
  readonly ID?: string;
84
97
  readonly SecurityOptions?: readonly string[];
@@ -184,6 +197,8 @@ export declare class DockerSandbox implements SandboxProviderBackend, SandboxReu
184
197
  }>;
185
198
  /** 创建并启动一个 Docker 沙箱。 */
186
199
  static create(options?: DockerSandboxOptions): Promise<DockerSandbox>;
200
+ /** Control service owns create/remove; this handle only starts, initializes and detaches. */
201
+ static createControlled(options: DockerSandboxOptions, create: (spec: DockerControlCreateSpec) => Promise<DockerControlCreateResult>): Promise<DockerSandbox>;
187
202
  /** DinD 容器 kill-on-failure 前收集有界诊断,普通 Docker 保持原错误形状。 */
188
203
  private withInitializationDiagnostics;
189
204
  /** 拉镜像、起容器、装基础工具、备好工作区与 npm 前缀。 */
@@ -10,10 +10,13 @@ exports.runBuildCommand = runBuildCommand;
10
10
  // 内容寻址 template alias。构建只发生在 build coordinator;attempt 只消费 locator。
11
11
  // 契约单源:docs/feature/sandbox/case.md「按需构建单 Sandbox」「Run 级构建协调」。
12
12
  const node_child_process_1 = require("node:child_process");
13
+ const node_crypto_1 = require("node:crypto");
13
14
  const promises_1 = require("node:fs/promises");
14
15
  const node_path_1 = require("node:path");
15
16
  const effect_1 = require("effect");
17
+ const build_coordinator_ts_1 = require("./build-coordinator.cjs");
16
18
  const identity_ts_1 = require("./identity.cjs");
19
+ const docker_task_build_cache_ts_1 = require("./docker-task-build-cache.cjs");
17
20
  const dockerfile_identity_ts_1 = require("./dockerfile-identity.cjs");
18
21
  var dockerfile_identity_ts_2 = require("./dockerfile-identity.cjs");
19
22
  Object.defineProperty(exports, "DOCKERFILE_MATERIALIZER_REVISION", { enumerable: true, get: function () { return dockerfile_identity_ts_2.DOCKERFILE_MATERIALIZER_REVISION; } });
@@ -38,6 +41,12 @@ function collectDockerfileBuildFromIdentity(input) {
38
41
  message: "Dockerfile build inputs changed after physical planning. Restart the Run to plan the new inputs.",
39
42
  }));
40
43
  }
44
+ const authorityFingerprint = input.provider === "docker" && input.dockerSocketPath === undefined
45
+ ? yield* effect_1.Effect.tryPromise({
46
+ try: () => (0, docker_task_build_cache_ts_1.dockerTaskBuildAuthorityFingerprint)(),
47
+ catch: (cause) => new DockerfileBuildCollectionError({ message: cause instanceof Error ? cause.message : String(cause) }),
48
+ })
49
+ : JSON.stringify(identity.providerIdentityMarker ?? [input.provider, input.dockerSocketPath ?? "default"]);
41
50
  return yield* effect_1.Effect.try({
42
51
  try: () => {
43
52
  const caseKey = (0, identity_ts_1.computeCaseKey)({
@@ -56,12 +65,19 @@ function collectDockerfileBuildFromIdentity(input) {
56
65
  platform: input.platform,
57
66
  ...(input.dockerSocketPath === undefined ? {} : { dockerSocketPath: input.dockerSocketPath }),
58
67
  };
68
+ const scopeId = (0, build_coordinator_ts_1.materializationScopeId)({
69
+ providerFamily: input.provider,
70
+ authorityFingerprint,
71
+ materializationProtocolVersion: 1,
72
+ });
59
73
  return Object.freeze({
60
74
  buildKey: identity.buildKey,
61
75
  caseKey,
62
76
  details,
63
77
  ...(identity.providerIdentityMarker === undefined ? {} : { providerIdentityMarker: identity.providerIdentityMarker }),
64
78
  work: Object.freeze({
79
+ ref: (0, build_coordinator_ts_1.sandboxBuildRef)(scopeId, identity.buildKey),
80
+ scopeId,
65
81
  buildKey: identity.buildKey,
66
82
  provider: input.provider,
67
83
  label: `${input.provider}:dockerfile:${input.profile}`,
@@ -90,6 +106,21 @@ function dockerfileBuildProvider(collections, hooks = {}) {
90
106
  const runDockerBuild = hooks.runDockerBuild ?? defaultRunDockerBuild;
91
107
  const templateExists = hooks.e2bTemplateExists ?? defaultE2BTemplateExists;
92
108
  const buildE2BTemplate = hooks.buildE2BTemplate ?? defaultBuildE2BTemplate;
109
+ const managedDockerCache = hooks.dockerImageExists === undefined && hooks.runDockerBuild === undefined &&
110
+ collections.every((collection) => collection.details.dockerSocketPath === undefined)
111
+ ? (0, docker_task_build_cache_ts_1.makeTaskBuildCacheService)()
112
+ : undefined;
113
+ const source = (work, locator, origin, detail) => ({
114
+ locator,
115
+ source: origin,
116
+ acquireUse: async () => {
117
+ const lease = detail.provider === "docker" && managedDockerCache !== undefined
118
+ ? await managedDockerCache.acquireUse(work.buildKey, locator, buildManifestDigest(work), detail.dockerSocketPath)
119
+ : { release() { } };
120
+ return { locator, release: () => lease.release() };
121
+ },
122
+ release() { },
123
+ });
93
124
  const detailFor = (work) => {
94
125
  const detail = details.get(work.buildKey);
95
126
  if (detail === undefined) {
@@ -102,27 +133,46 @@ function dockerfileBuildProvider(collections, hooks = {}) {
102
133
  const detail = detailFor(work);
103
134
  if (detail.provider === "docker") {
104
135
  const tag = dockerBuildTag(work.buildKey);
105
- return (await imageExists(tag, detail.dockerSocketPath)) ? tag : undefined;
136
+ if (managedDockerCache !== undefined) {
137
+ return await managedDockerCache.lookup(work.buildKey, tag, buildManifestDigest(work), detail.dockerSocketPath)
138
+ ? { _tag: "Hit", source: source(work, tag, "cache", detail) }
139
+ : { _tag: "Miss" };
140
+ }
141
+ return (await imageExists(tag, detail.dockerSocketPath))
142
+ ? { _tag: "Hit", source: source(work, tag, "cache", detail) }
143
+ : { _tag: "Miss" };
106
144
  }
107
145
  const name = e2bBuildName(work.buildKey);
108
- return (await templateExists(name, signal)) ? name : undefined;
146
+ return (await templateExists(name, signal))
147
+ ? { _tag: "Hit", source: source(work, name, "cache", detail) }
148
+ : { _tag: "Miss" };
109
149
  },
110
150
  async build(work, ctx) {
111
151
  const detail = detailFor(work);
112
152
  if (detail.provider === "docker") {
113
153
  const tag = dockerBuildTag(work.buildKey);
114
154
  await runDockerBuild(detail, tag, ctx);
115
- return tag;
155
+ await managedDockerCache?.publish(work.buildKey, tag, buildManifestDigest(work), ctx.operationId, detail.dockerSocketPath);
156
+ return source(work, tag, "build", detail);
116
157
  }
117
158
  const name = e2bBuildName(work.buildKey);
118
159
  await buildE2BTemplate(detail, name, ctx);
119
- return name;
160
+ return source(work, name, "build", detail);
120
161
  },
121
162
  };
122
163
  }
164
+ function buildManifestDigest(work) {
165
+ return (0, node_crypto_1.createHash)("sha256").update(JSON.stringify({
166
+ schemaVersion: 1,
167
+ scopeId: work.scopeId,
168
+ buildKey: work.buildKey,
169
+ provider: work.provider,
170
+ inputs: work.inputs,
171
+ })).digest("hex");
172
+ }
123
173
  function routeBuildProviders(routes) {
124
174
  const providerFor = (work) => {
125
- const provider = routes.get(work.buildKey);
175
+ const provider = routes.get(work.ref);
126
176
  if (provider === undefined)
127
177
  throw new Error(`no sandbox build provider for BuildKey ${work.buildKey.slice(0, 12)}…`);
128
178
  return provider;
@@ -1 +1 @@
1
- {"version":3,"file":"dockerfile-build.js","sourceRoot":"","sources":["dockerfile-build.ts"],"names":[],"mappings":"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","sourcesContent":["// 单 Dockerfile case 的 Run 级按需构建:Docker 产出内容寻址 image tag,E2B 产出\n// 内容寻址 template alias。构建只发生在 build coordinator;attempt 只消费 locator。\n// 契约单源:docs/feature/sandbox/case.md「按需构建单 Sandbox」「Run 级构建协调」。\nimport { spawn } from \"node:child_process\";\nimport { readFile } from \"node:fs/promises\";\nimport { isAbsolute, resolve as resolvePath } from \"node:path\";\nimport { Data, Effect } from \"effect\";\nimport type { SandboxBuildExecutionContext, SandboxBuildProvider, SandboxBuildWork } from \"./build-coordinator.ts\";\nimport { detectDockerBuildPlatform, normalizeBuildPlatform } from \"./compose.ts\";\nimport { computeCaseKey, type BuildKey, type CaseKey } from \"./identity.ts\";\nimport { DOCKERFILE_MATERIALIZER_REVISION, resolveDockerfileBuildIdentity, type DockerfileBuildIdentity, } from \"./dockerfile-identity.ts\";\nimport type { SandboxLocation } from \"./layer.ts\";\nexport { DOCKERFILE_MATERIALIZER_REVISION } from \"./dockerfile-identity.ts\";\ninterface DockerfileBuildDetails {\n readonly provider: \"docker\" | \"e2b\";\n readonly contextDir: string;\n readonly dockerfilePath: string;\n readonly dockerfile: string;\n readonly buildArgs?: Readonly<globalThis.Record<string, string>>;\n readonly target?: string;\n readonly platform: string;\n readonly dockerSocketPath?: string;\n /** managed profile 在 daemon bridge=none 时为本次 build 创建的独占 bridge。 */\n readonly dockerNetworkMode?: string;\n}\nexport interface DockerfileBuildCollection {\n readonly buildKey: BuildKey;\n readonly caseKey: CaseKey;\n readonly work: SandboxBuildWork;\n readonly details: DockerfileBuildDetails;\n readonly providerIdentityMarker?: import(\"../shared/types.ts\").JsonValue;\n}\nexport class DockerfileBuildCollectionError extends Data.TaggedError(\"DockerfileBuildCollectionError\")<{\n readonly message: string;\n}> {\n}\n/** ProviderModule 的 typed Dockerfile 收集入口;不从作者输入逆向重建计划。 */\nexport function collectDockerfileBuildFromIdentity(input: {\n readonly provider: \"docker\" | \"e2b\";\n readonly profile: string;\n readonly context: SandboxLocation;\n readonly dockerfile: string;\n readonly buildArgs: Readonly<Record<string, string>>;\n readonly target?: string;\n readonly platform: string;\n readonly expected: DockerfileBuildIdentity;\n readonly dockerSocketPath?: string;\n}): Effect.Effect<DockerfileBuildCollection, DockerfileBuildCollectionError> {\n return Effect.gen(function* () {\n const context = input.context._tag === \"Url\" ? new URL(input.context.value) : input.context.value;\n const identity = yield* resolveDockerfileBuildIdentity({\n provider: input.provider,\n context,\n dockerfile: input.dockerfile,\n buildArgs: input.buildArgs,\n ...(input.target === undefined ? {} : { target: input.target }),\n platform: input.platform,\n label: `sandbox profile ${input.profile}`,\n }).pipe(Effect.mapError((cause) => new DockerfileBuildCollectionError({ message: cause.message })));\n if (identity.buildKey !== input.expected.buildKey) {\n return yield* Effect.fail(new DockerfileBuildCollectionError({\n message: \"Dockerfile build inputs changed after physical planning. Restart the Run to plan the new inputs.\",\n }));\n }\n return yield* Effect.try({\n try: () => {\n const caseKey = computeCaseKey({\n caseKind: \"on-demand-build\",\n materializerRevision: DOCKERFILE_MATERIALIZER_REVISION,\n buildKeys: [identity.buildKey],\n caseParams: { provider: input.provider, profile: input.profile, buildKey: identity.buildKey },\n });\n const details: DockerfileBuildDetails = {\n provider: input.provider,\n contextDir: identity.contextDir,\n dockerfilePath: identity.dockerfilePath,\n dockerfile: identity.dockerfile,\n buildArgs: input.buildArgs,\n ...(input.target === undefined ? {} : { target: input.target }),\n platform: input.platform,\n ...(input.dockerSocketPath === undefined ? {} : { dockerSocketPath: input.dockerSocketPath }),\n };\n return Object.freeze({\n buildKey: identity.buildKey,\n caseKey,\n details,\n ...(identity.providerIdentityMarker === undefined ? {} : { providerIdentityMarker: identity.providerIdentityMarker }),\n work: Object.freeze({\n buildKey: identity.buildKey,\n provider: input.provider,\n label: `${input.provider}:dockerfile:${input.profile}`,\n inputs: Object.freeze({\n kind: \"dockerfile\",\n profile: input.profile,\n platform: input.platform,\n context: identity.contextDir,\n dockerfile: identity.dockerfilePath,\n contextFilterRules: identity.contextFilterRules,\n args: input.buildArgs,\n }),\n }),\n });\n },\n catch: (cause) => new DockerfileBuildCollectionError({\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n });\n });\n}\ninterface DockerfileProviderHooks {\n readonly dockerImageExists?: (tag: string, dockerSocketPath?: string) => Promise<boolean>;\n readonly runDockerBuild?: (details: DockerfileBuildDetails, tag: string, ctx: SandboxBuildExecutionContext) => Promise<void>;\n readonly e2bTemplateExists?: (name: string, signal: AbortSignal) => Promise<boolean>;\n readonly buildE2BTemplate?: (details: DockerfileBuildDetails, name: string, ctx: SandboxBuildExecutionContext) => Promise<void>;\n}\n/** collection 同批创建 provider,避免从公开 JsonValue provenance 反解本地绝对路径。 */\nexport function dockerfileBuildProvider(collections: readonly DockerfileBuildCollection[], hooks: DockerfileProviderHooks = {}): SandboxBuildProvider {\n const details = new Map(collections.map((collection) => [collection.buildKey, collection.details]));\n const imageExists = hooks.dockerImageExists ?? defaultDockerImageExists;\n const runDockerBuild = hooks.runDockerBuild ?? defaultRunDockerBuild;\n const templateExists = hooks.e2bTemplateExists ?? defaultE2BTemplateExists;\n const buildE2BTemplate = hooks.buildE2BTemplate ?? defaultBuildE2BTemplate;\n const detailFor = (work: SandboxBuildWork): DockerfileBuildDetails => {\n const detail = details.get(work.buildKey);\n if (detail === undefined) {\n throw new Error(`unknown Dockerfile BuildKey ${work.buildKey.slice(0, 12)}…`);\n }\n return detail;\n };\n return {\n async lookup(work, signal) {\n const detail = detailFor(work);\n if (detail.provider === \"docker\") {\n const tag = dockerBuildTag(work.buildKey);\n return (await imageExists(tag, detail.dockerSocketPath)) ? tag : undefined;\n }\n const name = e2bBuildName(work.buildKey);\n return (await templateExists(name, signal)) ? name : undefined;\n },\n async build(work, ctx) {\n const detail = detailFor(work);\n if (detail.provider === \"docker\") {\n const tag = dockerBuildTag(work.buildKey);\n await runDockerBuild(detail, tag, ctx);\n return tag;\n }\n const name = e2bBuildName(work.buildKey);\n await buildE2BTemplate(detail, name, ctx);\n return name;\n },\n };\n}\nexport function routeBuildProviders(routes: ReadonlyMap<BuildKey, SandboxBuildProvider>): SandboxBuildProvider {\n const providerFor = (work: SandboxBuildWork): SandboxBuildProvider => {\n const provider = routes.get(work.buildKey);\n if (provider === undefined)\n throw new Error(`no sandbox build provider for BuildKey ${work.buildKey.slice(0, 12)}…`);\n return provider;\n };\n return {\n lookup: (work, signal) => providerFor(work).lookup(work, signal),\n build: (work, ctx) => providerFor(work).build(work, ctx),\n async cancel(work) {\n await providerFor(work).cancel?.(work);\n },\n };\n}\nfunction dockerBuildTag(buildKey: BuildKey): string {\n return `niceeval-build:${buildKey.slice(0, 32)}`;\n}\nfunction e2bBuildName(buildKey: BuildKey): string {\n return `niceeval-build-${buildKey.slice(0, 40)}`;\n}\nasync function defaultDockerImageExists(tag: string, dockerSocketPath?: string): Promise<boolean> {\n return await commandSucceeded(\"docker\", [\n ...(dockerSocketPath === undefined ? [] : [\"--host\", `unix://${dockerSocketPath}`]),\n \"image\", \"inspect\", tag,\n ]);\n}\nasync function defaultRunDockerBuild(details: DockerfileBuildDetails, tag: string, ctx: SandboxBuildExecutionContext): Promise<void> {\n const connection = details.dockerSocketPath === undefined ? [] : [\"--host\", `unix://${details.dockerSocketPath}`];\n const buildArgs = [\n \"--platform\",\n details.platform,\n \"--file\",\n details.dockerfilePath,\n \"--tag\",\n tag,\n ...Object.entries(details.buildArgs ?? {}).flatMap(([key, value]) => [\"--build-arg\", `${key}=${value}`]),\n ...(details.target !== undefined ? [\"--target\", details.target] : []),\n details.contextDir,\n ];\n if (details.dockerNetworkMode === undefined) {\n await runBuildCommand(\"docker\", [...connection, \"build\", ...buildArgs], ctx.signal);\n return;\n }\n // managed daemon 关闭默认 bridge。现代 BuildKit 不接受任意 network ID 作为\n // `docker build --network`,所以为 reservation 建短生命周期 docker-container builder,\n // 把 builder 自身绑定到 watchdog 所有的独占网络,并将结果显式 load 回 profile daemon。\n const builderName = `niceeval-${details.dockerNetworkMode.slice(0, 24)}`;\n await runBuildCommand(\"docker\", [\n ...connection,\n \"buildx\", \"create\",\n \"--driver\", \"docker-container\",\n \"--driver-opt\", `network=${details.dockerNetworkMode}`,\n \"--name\", builderName,\n ], ctx.signal);\n try {\n await runBuildCommand(\"docker\", [\n ...connection,\n \"buildx\", \"build\",\n \"--builder\", builderName,\n \"--load\",\n ...buildArgs,\n ], ctx.signal);\n }\n finally {\n await runBuildCommand(\"docker\", [\n ...connection,\n \"buildx\", \"rm\", \"--force\", builderName,\n ], new AbortController().signal).catch(() => undefined);\n }\n}\nasync function defaultE2BTemplateExists(name: string, signal: AbortSignal): Promise<boolean> {\n // e2b 是 optional peer;仅 E2B Dockerfile 构建路径加载。\n const { Template } = await __niceevalDynamicImport(\"e2b\");\n return await Template.exists(name, { signal });\n}\nasync function defaultBuildE2BTemplate(details: DockerfileBuildDetails, name: string, ctx: SandboxBuildExecutionContext): Promise<void> {\n if (details.buildArgs !== undefined && Object.keys(details.buildArgs).length > 0) {\n throw new Error(\"E2B Dockerfile builds do not support build args; bake stable values into the Dockerfile\");\n }\n if (details.target !== undefined) {\n throw new Error(\"E2B Dockerfile builds do not support a target stage; make the desired stage the final stage\");\n }\n // e2b 是 optional peer;仅 E2B Dockerfile 构建路径加载。\n const { Template } = await __niceevalDynamicImport(\"e2b\");\n const ignore = await dockerIgnorePatterns(details.contextDir);\n const template = Template({\n fileContextPath: details.contextDir,\n ...(ignore.length > 0 ? { fileIgnorePatterns: ignore } : {}),\n }).fromDockerfile(details.dockerfile);\n await Template.build(template, name, { signal: ctx.signal });\n}\nasync function dockerIgnorePatterns(contextDir: string): Promise<string[]> {\n const raw = await readFile(resolvePath(contextDir, \".dockerignore\"), \"utf8\").catch(() => \"\");\n return raw\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0 && !line.startsWith(\"#\"));\n}\nasync function commandSucceeded(command: string, args: readonly string[]): Promise<boolean> {\n try {\n await runBuildCommand(command, args, new AbortController().signal);\n return true;\n }\n catch {\n return false;\n }\n}\nconst BUILD_STDERR_LIMIT = 64 * 1024;\n/**\n * 运行会持续输出进度的 builder CLI。stdout 必须主动 drain:若只创建 pipe 却无人读取,\n * Docker/BuildKit 写满 OS pipe buffer 后会永久阻塞,看起来像一个无 CPU 的超长构建。\n * stderr 只保留尾部用于失败诊断,避免长构建把进度输出无限堆进内存。\n */\nexport function runBuildCommand(command: string, args: readonly string[], signal: AbortSignal): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const child = spawn(command, args, { stdio: [\"ignore\", \"pipe\", \"pipe\"], signal });\n let stderr = \"\";\n child.stdout?.resume();\n child.stderr?.on(\"data\", (chunk: Buffer) => {\n stderr += chunk.toString();\n if (stderr.length > BUILD_STDERR_LIMIT)\n stderr = stderr.slice(-BUILD_STDERR_LIMIT);\n });\n child.on(\"error\", reject);\n child.on(\"close\", (code) => {\n if (code === 0)\n resolve();\n else\n reject(new Error(`${command} ${args.join(\" \")} failed (${code ?? \"signal\"}): ${stderr.trim()}`));\n });\n });\n}\n"]}
1
+ {"version":3,"file":"dockerfile-build.js","sourceRoot":"","sources":["dockerfile-build.ts"],"names":[],"mappings":"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","sourcesContent":["// 单 Dockerfile case 的 Run 级按需构建:Docker 产出内容寻址 image tag,E2B 产出\n// 内容寻址 template alias。构建只发生在 build coordinator;attempt 只消费 locator。\n// 契约单源:docs/feature/sandbox/case.md「按需构建单 Sandbox」「Run 级构建协调」。\nimport { spawn } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport { readFile } from \"node:fs/promises\";\nimport { isAbsolute, resolve as resolvePath } from \"node:path\";\nimport { Data, Effect } from \"effect\";\nimport { materializationScopeId, sandboxBuildRef, type SandboxBuildArtifactSource, type SandboxBuildExecutionContext, type SandboxBuildProvider, type SandboxBuildWork, } from \"./build-coordinator.ts\";\nimport { detectDockerBuildPlatform, normalizeBuildPlatform } from \"./compose.ts\";\nimport { computeCaseKey, type BuildKey, type CaseKey } from \"./identity.ts\";\nimport { dockerTaskBuildAuthorityFingerprint, makeTaskBuildCacheService } from \"./docker-task-build-cache.ts\";\nimport { DOCKERFILE_MATERIALIZER_REVISION, resolveDockerfileBuildIdentity, type DockerfileBuildIdentity, } from \"./dockerfile-identity.ts\";\nimport type { SandboxLocation } from \"./layer.ts\";\nexport { DOCKERFILE_MATERIALIZER_REVISION } from \"./dockerfile-identity.ts\";\ninterface DockerfileBuildDetails {\n readonly provider: \"docker\" | \"e2b\";\n readonly contextDir: string;\n readonly dockerfilePath: string;\n readonly dockerfile: string;\n readonly buildArgs?: Readonly<globalThis.Record<string, string>>;\n readonly target?: string;\n readonly platform: string;\n readonly dockerSocketPath?: string;\n /** managed profile 在 daemon bridge=none 时为本次 build 创建的独占 bridge。 */\n readonly dockerNetworkMode?: string;\n}\nexport interface DockerfileBuildCollection {\n readonly buildKey: BuildKey;\n readonly caseKey: CaseKey;\n readonly work: SandboxBuildWork;\n readonly details: DockerfileBuildDetails;\n readonly providerIdentityMarker?: import(\"../shared/types.ts\").JsonValue;\n}\nexport class DockerfileBuildCollectionError extends Data.TaggedError(\"DockerfileBuildCollectionError\")<{\n readonly message: string;\n}> {\n}\n/** ProviderModule 的 typed Dockerfile 收集入口;不从作者输入逆向重建计划。 */\nexport function collectDockerfileBuildFromIdentity(input: {\n readonly provider: \"docker\" | \"e2b\";\n readonly profile: string;\n readonly context: SandboxLocation;\n readonly dockerfile: string;\n readonly buildArgs: Readonly<Record<string, string>>;\n readonly target?: string;\n readonly platform: string;\n readonly expected: DockerfileBuildIdentity;\n readonly dockerSocketPath?: string;\n}): Effect.Effect<DockerfileBuildCollection, DockerfileBuildCollectionError> {\n return Effect.gen(function* () {\n const context = input.context._tag === \"Url\" ? new URL(input.context.value) : input.context.value;\n const identity = yield* resolveDockerfileBuildIdentity({\n provider: input.provider,\n context,\n dockerfile: input.dockerfile,\n buildArgs: input.buildArgs,\n ...(input.target === undefined ? {} : { target: input.target }),\n platform: input.platform,\n label: `sandbox profile ${input.profile}`,\n }).pipe(Effect.mapError((cause) => new DockerfileBuildCollectionError({ message: cause.message })));\n if (identity.buildKey !== input.expected.buildKey) {\n return yield* Effect.fail(new DockerfileBuildCollectionError({\n message: \"Dockerfile build inputs changed after physical planning. Restart the Run to plan the new inputs.\",\n }));\n }\n const authorityFingerprint = input.provider === \"docker\" && input.dockerSocketPath === undefined\n ? yield* Effect.tryPromise({\n try: () => dockerTaskBuildAuthorityFingerprint(),\n catch: (cause) => new DockerfileBuildCollectionError({ message: cause instanceof Error ? cause.message : String(cause) }),\n })\n : JSON.stringify(identity.providerIdentityMarker ?? [input.provider, input.dockerSocketPath ?? \"default\"]);\n return yield* Effect.try({\n try: () => {\n const caseKey = computeCaseKey({\n caseKind: \"on-demand-build\",\n materializerRevision: DOCKERFILE_MATERIALIZER_REVISION,\n buildKeys: [identity.buildKey],\n caseParams: { provider: input.provider, profile: input.profile, buildKey: identity.buildKey },\n });\n const details: DockerfileBuildDetails = {\n provider: input.provider,\n contextDir: identity.contextDir,\n dockerfilePath: identity.dockerfilePath,\n dockerfile: identity.dockerfile,\n buildArgs: input.buildArgs,\n ...(input.target === undefined ? {} : { target: input.target }),\n platform: input.platform,\n ...(input.dockerSocketPath === undefined ? {} : { dockerSocketPath: input.dockerSocketPath }),\n };\n const scopeId = materializationScopeId({\n providerFamily: input.provider,\n authorityFingerprint,\n materializationProtocolVersion: 1,\n });\n return Object.freeze({\n buildKey: identity.buildKey,\n caseKey,\n details,\n ...(identity.providerIdentityMarker === undefined ? {} : { providerIdentityMarker: identity.providerIdentityMarker }),\n work: Object.freeze({\n ref: sandboxBuildRef(scopeId, identity.buildKey),\n scopeId,\n buildKey: identity.buildKey,\n provider: input.provider,\n label: `${input.provider}:dockerfile:${input.profile}`,\n inputs: Object.freeze({\n kind: \"dockerfile\",\n profile: input.profile,\n platform: input.platform,\n context: identity.contextDir,\n dockerfile: identity.dockerfilePath,\n contextFilterRules: identity.contextFilterRules,\n args: input.buildArgs,\n }),\n }),\n });\n },\n catch: (cause) => new DockerfileBuildCollectionError({\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n });\n });\n}\ninterface DockerfileProviderHooks {\n readonly dockerImageExists?: (tag: string, dockerSocketPath?: string) => Promise<boolean>;\n readonly runDockerBuild?: (details: DockerfileBuildDetails, tag: string, ctx: SandboxBuildExecutionContext) => Promise<void>;\n readonly e2bTemplateExists?: (name: string, signal: AbortSignal) => Promise<boolean>;\n readonly buildE2BTemplate?: (details: DockerfileBuildDetails, name: string, ctx: SandboxBuildExecutionContext) => Promise<void>;\n}\n/** collection 同批创建 provider,避免从公开 JsonValue provenance 反解本地绝对路径。 */\nexport function dockerfileBuildProvider(collections: readonly DockerfileBuildCollection[], hooks: DockerfileProviderHooks = {}): SandboxBuildProvider {\n const details = new Map(collections.map((collection) => [collection.buildKey, collection.details]));\n const imageExists = hooks.dockerImageExists ?? defaultDockerImageExists;\n const runDockerBuild = hooks.runDockerBuild ?? defaultRunDockerBuild;\n const templateExists = hooks.e2bTemplateExists ?? defaultE2BTemplateExists;\n const buildE2BTemplate = hooks.buildE2BTemplate ?? defaultBuildE2BTemplate;\n const managedDockerCache = hooks.dockerImageExists === undefined && hooks.runDockerBuild === undefined &&\n collections.every((collection) => collection.details.dockerSocketPath === undefined)\n ? makeTaskBuildCacheService()\n : undefined;\n const source = (work: SandboxBuildWork, locator: string, origin: \"cache\" | \"build\", detail: DockerfileBuildDetails): SandboxBuildArtifactSource => ({\n locator,\n source: origin,\n acquireUse: async () => {\n const lease = detail.provider === \"docker\" && managedDockerCache !== undefined\n ? await managedDockerCache.acquireUse(work.buildKey, locator, buildManifestDigest(work), detail.dockerSocketPath)\n : { release() { } };\n return { locator, release: () => lease.release() };\n },\n release() { },\n });\n const detailFor = (work: SandboxBuildWork): DockerfileBuildDetails => {\n const detail = details.get(work.buildKey);\n if (detail === undefined) {\n throw new Error(`unknown Dockerfile BuildKey ${work.buildKey.slice(0, 12)}…`);\n }\n return detail;\n };\n return {\n async lookup(work, signal) {\n const detail = detailFor(work);\n if (detail.provider === \"docker\") {\n const tag = dockerBuildTag(work.buildKey);\n if (managedDockerCache !== undefined) {\n return await managedDockerCache.lookup(work.buildKey, tag, buildManifestDigest(work), detail.dockerSocketPath)\n ? { _tag: \"Hit\", source: source(work, tag, \"cache\", detail) }\n : { _tag: \"Miss\" };\n }\n return (await imageExists(tag, detail.dockerSocketPath))\n ? { _tag: \"Hit\", source: source(work, tag, \"cache\", detail) }\n : { _tag: \"Miss\" };\n }\n const name = e2bBuildName(work.buildKey);\n return (await templateExists(name, signal))\n ? { _tag: \"Hit\", source: source(work, name, \"cache\", detail) }\n : { _tag: \"Miss\" };\n },\n async build(work, ctx) {\n const detail = detailFor(work);\n if (detail.provider === \"docker\") {\n const tag = dockerBuildTag(work.buildKey);\n await runDockerBuild(detail, tag, ctx);\n await managedDockerCache?.publish(work.buildKey, tag, buildManifestDigest(work), ctx.operationId, detail.dockerSocketPath);\n return source(work, tag, \"build\", detail);\n }\n const name = e2bBuildName(work.buildKey);\n await buildE2BTemplate(detail, name, ctx);\n return source(work, name, \"build\", detail);\n },\n };\n}\nfunction buildManifestDigest(work: SandboxBuildWork): string {\n return createHash(\"sha256\").update(JSON.stringify({\n schemaVersion: 1,\n scopeId: work.scopeId,\n buildKey: work.buildKey,\n provider: work.provider,\n inputs: work.inputs,\n })).digest(\"hex\");\n}\nexport function routeBuildProviders(routes: ReadonlyMap<import(\"./build-coordinator.ts\").SandboxBuildRef, SandboxBuildProvider>): SandboxBuildProvider {\n const providerFor = (work: SandboxBuildWork): SandboxBuildProvider => {\n const provider = routes.get(work.ref);\n if (provider === undefined)\n throw new Error(`no sandbox build provider for BuildKey ${work.buildKey.slice(0, 12)}…`);\n return provider;\n };\n return {\n lookup: (work, signal) => providerFor(work).lookup(work, signal),\n build: (work, ctx) => providerFor(work).build(work, ctx),\n async cancel(work) {\n await providerFor(work).cancel?.(work);\n },\n };\n}\nfunction dockerBuildTag(buildKey: BuildKey): string {\n return `niceeval-build:${buildKey.slice(0, 32)}`;\n}\nfunction e2bBuildName(buildKey: BuildKey): string {\n return `niceeval-build-${buildKey.slice(0, 40)}`;\n}\nasync function defaultDockerImageExists(tag: string, dockerSocketPath?: string): Promise<boolean> {\n return await commandSucceeded(\"docker\", [\n ...(dockerSocketPath === undefined ? [] : [\"--host\", `unix://${dockerSocketPath}`]),\n \"image\", \"inspect\", tag,\n ]);\n}\nasync function defaultRunDockerBuild(details: DockerfileBuildDetails, tag: string, ctx: SandboxBuildExecutionContext): Promise<void> {\n const connection = details.dockerSocketPath === undefined ? [] : [\"--host\", `unix://${details.dockerSocketPath}`];\n const buildArgs = [\n \"--platform\",\n details.platform,\n \"--file\",\n details.dockerfilePath,\n \"--tag\",\n tag,\n ...Object.entries(details.buildArgs ?? {}).flatMap(([key, value]) => [\"--build-arg\", `${key}=${value}`]),\n ...(details.target !== undefined ? [\"--target\", details.target] : []),\n details.contextDir,\n ];\n if (details.dockerNetworkMode === undefined) {\n await runBuildCommand(\"docker\", [...connection, \"build\", ...buildArgs], ctx.signal);\n return;\n }\n // managed daemon 关闭默认 bridge。现代 BuildKit 不接受任意 network ID 作为\n // `docker build --network`,所以为 reservation 建短生命周期 docker-container builder,\n // 把 builder 自身绑定到 watchdog 所有的独占网络,并将结果显式 load 回 profile daemon。\n const builderName = `niceeval-${details.dockerNetworkMode.slice(0, 24)}`;\n await runBuildCommand(\"docker\", [\n ...connection,\n \"buildx\", \"create\",\n \"--driver\", \"docker-container\",\n \"--driver-opt\", `network=${details.dockerNetworkMode}`,\n \"--name\", builderName,\n ], ctx.signal);\n try {\n await runBuildCommand(\"docker\", [\n ...connection,\n \"buildx\", \"build\",\n \"--builder\", builderName,\n \"--load\",\n ...buildArgs,\n ], ctx.signal);\n }\n finally {\n await runBuildCommand(\"docker\", [\n ...connection,\n \"buildx\", \"rm\", \"--force\", builderName,\n ], new AbortController().signal).catch(() => undefined);\n }\n}\nasync function defaultE2BTemplateExists(name: string, signal: AbortSignal): Promise<boolean> {\n // e2b 是 optional peer;仅 E2B Dockerfile 构建路径加载。\n const { Template } = await __niceevalDynamicImport(\"e2b\");\n return await Template.exists(name, { signal });\n}\nasync function defaultBuildE2BTemplate(details: DockerfileBuildDetails, name: string, ctx: SandboxBuildExecutionContext): Promise<void> {\n if (details.buildArgs !== undefined && Object.keys(details.buildArgs).length > 0) {\n throw new Error(\"E2B Dockerfile builds do not support build args; bake stable values into the Dockerfile\");\n }\n if (details.target !== undefined) {\n throw new Error(\"E2B Dockerfile builds do not support a target stage; make the desired stage the final stage\");\n }\n // e2b 是 optional peer;仅 E2B Dockerfile 构建路径加载。\n const { Template } = await __niceevalDynamicImport(\"e2b\");\n const ignore = await dockerIgnorePatterns(details.contextDir);\n const template = Template({\n fileContextPath: details.contextDir,\n ...(ignore.length > 0 ? { fileIgnorePatterns: ignore } : {}),\n }).fromDockerfile(details.dockerfile);\n await Template.build(template, name, { signal: ctx.signal });\n}\nasync function dockerIgnorePatterns(contextDir: string): Promise<string[]> {\n const raw = await readFile(resolvePath(contextDir, \".dockerignore\"), \"utf8\").catch(() => \"\");\n return raw\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0 && !line.startsWith(\"#\"));\n}\nasync function commandSucceeded(command: string, args: readonly string[]): Promise<boolean> {\n try {\n await runBuildCommand(command, args, new AbortController().signal);\n return true;\n }\n catch {\n return false;\n }\n}\nconst BUILD_STDERR_LIMIT = 64 * 1024;\n/**\n * 运行会持续输出进度的 builder CLI。stdout 必须主动 drain:若只创建 pipe 却无人读取,\n * Docker/BuildKit 写满 OS pipe buffer 后会永久阻塞,看起来像一个无 CPU 的超长构建。\n * stderr 只保留尾部用于失败诊断,避免长构建把进度输出无限堆进内存。\n */\nexport function runBuildCommand(command: string, args: readonly string[], signal: AbortSignal): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const child = spawn(command, args, { stdio: [\"ignore\", \"pipe\", \"pipe\"], signal });\n let stderr = \"\";\n child.stdout?.resume();\n child.stderr?.on(\"data\", (chunk: Buffer) => {\n stderr += chunk.toString();\n if (stderr.length > BUILD_STDERR_LIMIT)\n stderr = stderr.slice(-BUILD_STDERR_LIMIT);\n });\n child.on(\"error\", reject);\n child.on(\"close\", (code) => {\n if (code === 0)\n resolve();\n else\n reject(new Error(`${command} ${args.join(\" \")} failed (${code ?? \"signal\"}): ${stderr.trim()}`));\n });\n });\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import type { SandboxBuildExecutionContext, SandboxBuildProvider, SandboxBuildWork } from "./build-coordinator.cjs";
2
+ import { type SandboxBuildExecutionContext, type SandboxBuildProvider, type SandboxBuildWork } from "./build-coordinator.cjs";
3
3
  import { type BuildKey, type CaseKey } from "./identity.cjs";
4
4
  import { type DockerfileBuildIdentity } from "./dockerfile-identity.cjs";
5
5
  import type { SandboxLocation } from "./layer.cjs";
@@ -50,7 +50,7 @@ interface DockerfileProviderHooks {
50
50
  }
51
51
  /** collection 同批创建 provider,避免从公开 JsonValue provenance 反解本地绝对路径。 */
52
52
  export declare function dockerfileBuildProvider(collections: readonly DockerfileBuildCollection[], hooks?: DockerfileProviderHooks): SandboxBuildProvider;
53
- export declare function routeBuildProviders(routes: ReadonlyMap<BuildKey, SandboxBuildProvider>): SandboxBuildProvider;
53
+ export declare function routeBuildProviders(routes: ReadonlyMap<import("./build-coordinator.cjs").SandboxBuildRef, SandboxBuildProvider>): SandboxBuildProvider;
54
54
  /**
55
55
  * 运行会持续输出进度的 builder CLI。stdout 必须主动 drain:若只创建 pipe 却无人读取,
56
56
  * Docker/BuildKit 写满 OS pipe buffer 后会永久阻塞,看起来像一个无 CPU 的超长构建。
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import type { SandboxBuildExecutionContext, SandboxBuildProvider, SandboxBuildWork } from "./build-coordinator.mjs";
2
+ import { type SandboxBuildExecutionContext, type SandboxBuildProvider, type SandboxBuildWork } from "./build-coordinator.mjs";
3
3
  import { type BuildKey, type CaseKey } from "./identity.mjs";
4
4
  import { type DockerfileBuildIdentity } from "./dockerfile-identity.mjs";
5
5
  import type { SandboxLocation } from "./layer.mjs";
@@ -50,7 +50,7 @@ interface DockerfileProviderHooks {
50
50
  }
51
51
  /** collection 同批创建 provider,避免从公开 JsonValue provenance 反解本地绝对路径。 */
52
52
  export declare function dockerfileBuildProvider(collections: readonly DockerfileBuildCollection[], hooks?: DockerfileProviderHooks): SandboxBuildProvider;
53
- export declare function routeBuildProviders(routes: ReadonlyMap<BuildKey, SandboxBuildProvider>): SandboxBuildProvider;
53
+ export declare function routeBuildProviders(routes: ReadonlyMap<import("./build-coordinator.mjs").SandboxBuildRef, SandboxBuildProvider>): SandboxBuildProvider;
54
54
  /**
55
55
  * 运行会持续输出进度的 builder CLI。stdout 必须主动 drain:若只创建 pipe 却无人读取,
56
56
  * Docker/BuildKit 写满 OS pipe buffer 后会永久阻塞,看起来像一个无 CPU 的超长构建。
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import type { SandboxBuildExecutionContext, SandboxBuildProvider, SandboxBuildWork } from "./build-coordinator.js";
2
+ import { type SandboxBuildExecutionContext, type SandboxBuildProvider, type SandboxBuildWork } from "./build-coordinator.js";
3
3
  import { type BuildKey, type CaseKey } from "./identity.js";
4
4
  import { type DockerfileBuildIdentity } from "./dockerfile-identity.js";
5
5
  import type { SandboxLocation } from "./layer.js";
@@ -50,7 +50,7 @@ interface DockerfileProviderHooks {
50
50
  }
51
51
  /** collection 同批创建 provider,避免从公开 JsonValue provenance 反解本地绝对路径。 */
52
52
  export declare function dockerfileBuildProvider(collections: readonly DockerfileBuildCollection[], hooks?: DockerfileProviderHooks): SandboxBuildProvider;
53
- export declare function routeBuildProviders(routes: ReadonlyMap<BuildKey, SandboxBuildProvider>): SandboxBuildProvider;
53
+ export declare function routeBuildProviders(routes: ReadonlyMap<import("./build-coordinator.js").SandboxBuildRef, SandboxBuildProvider>): SandboxBuildProvider;
54
54
  /**
55
55
  * 运行会持续输出进度的 builder CLI。stdout 必须主动 drain:若只创建 pipe 却无人读取,
56
56
  * Docker/BuildKit 写满 OS pipe buffer 后会永久阻塞,看起来像一个无 CPU 的超长构建。
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DOCKER_PROFILE_SCHEMA_VERSION = exports.DOCKER_EXECUTION_PROFILE_SCHEMA_VERSION = exports.dockerProfileError = exports.DockerProfileError = exports.NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE = exports.NICEEVAL_OMP_DOCKER_IMAGE = exports.NICEEVAL_OPENCODE_DOCKER_IMAGE = exports.NICEEVAL_OPENCLAW_DOCKER_IMAGE = exports.NICEEVAL_HERMES_DOCKER_IMAGE = exports.NICEEVAL_CODEX_DOCKER_IMAGE = exports.NICEEVAL_CLAUDE_CODE_DOCKER_IMAGE = exports.NICEEVAL_BUB_DOCKER_IMAGE = exports.normalizeSandboxCapture = exports.restoreCheckpoint = exports.createCheckpoint = exports.buildFailureOrigin = exports.startSandboxBuilds = exports.prepareSandboxBuilds = exports.SANDBOX_BUILD_ACTIVITY = exports.looksLikeDigestRef = exports.assertPureDataIdentity = exports.credentialIdentityContribution = exports.resolveFloatingImageTag = exports.computeCaseKey = exports.computeBuildKey = exports.materializeDockerComposeProviderCase = exports.buildComposeOverlay = exports.findComposeBlacklistViolations = exports.assertComposeBlacklist = exports.inspectComposeYaml = exports.leakGateHintsFromComposeFile = exports.collectComposeBuilds = exports.dockerComposeBuildProvider = exports.COMPOSE_MATERIALIZER_REVISION = exports.registerSandboxContent = exports.SandboxCommandExitError = exports.installTool = exports.checkout = exports.defineSandboxCommand = exports.shell = exports.command = exports.defineSandboxCase = exports.localSandbox = exports.vercelSandbox = exports.e2bSandbox = exports.dockerComposeSandbox = exports.dockerSandbox = exports.sandboxLayer = exports.CustomSandboxMaterializationError = exports.defineSandbox = void 0;
4
- exports.resolveDockerProfileSelector = exports.resolveDockerProfileAlias = exports.resolveDockerProfile = exports.resolveDockerExecutionProfile = exports.parseDockerProfileRegistry = exports.indexDockerProfiles = exports.createDockerProfileRegistry = exports.parseDockerExecutionProfileV1 = exports.parseDockerExecutionProfile = exports.makeDockerExecutionProfileV1 = exports.isDockerExecutionProfileV1 = exports.dockerProfilePublicSummaryOf = exports.dockerProfileDigestOf = exports.dockerExecutionProfileV1Digest = exports.dockerProfileSemanticPolicyRevisionOf = exports.dockerExecutionProfileSemanticPolicyRevisionOf = exports.decodeDockerExecutionProfileV1 = exports.createDockerExecutionProfileV1 = exports.DockerExecutionProfileSchema = exports.DockerExecutionProfileV1Schema = exports.DOCKER_PROFILE_NETWORK_DENY_CIDRS = exports.DOCKER_PROFILE_NETWORK_POLICY_VERSION = void 0;
3
+ exports.DOCKER_EXECUTION_PROFILE_SCHEMA_VERSION = exports.dockerProfileError = exports.DockerProfileError = exports.sandboxBuildRef = exports.materializationScopeId = exports.NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE = exports.NICEEVAL_OMP_DOCKER_IMAGE = exports.NICEEVAL_OPENCODE_DOCKER_IMAGE = exports.NICEEVAL_OPENCLAW_DOCKER_IMAGE = exports.NICEEVAL_HERMES_DOCKER_IMAGE = exports.NICEEVAL_CODEX_DOCKER_IMAGE = exports.NICEEVAL_CLAUDE_CODE_DOCKER_IMAGE = exports.NICEEVAL_BUB_DOCKER_IMAGE = exports.normalizeSandboxCapture = exports.restoreCheckpoint = exports.createCheckpoint = exports.buildFailureOrigin = exports.startSandboxBuilds = exports.prepareSandboxBuilds = exports.SANDBOX_BUILD_ACTIVITY = exports.looksLikeDigestRef = exports.assertPureDataIdentity = exports.credentialIdentityContribution = exports.resolveFloatingImageTag = exports.computeCaseKey = exports.computeBuildKey = exports.materializeDockerComposeProviderCase = exports.buildComposeOverlay = exports.findComposeBlacklistViolations = exports.assertComposeBlacklist = exports.inspectComposeYaml = exports.leakGateHintsFromComposeFile = exports.collectComposeBuilds = exports.dockerComposeBuildProvider = exports.COMPOSE_MATERIALIZER_REVISION = exports.registerSandboxContent = exports.SandboxCommandExitError = exports.installTool = exports.checkout = exports.defineSandboxCommand = exports.shell = exports.command = exports.defineSandboxCase = exports.vercelSandbox = exports.e2bSandbox = exports.dockerComposeSandbox = exports.dockerSandbox = exports.sandboxLayer = exports.CustomSandboxMaterializationError = exports.defineSandbox = void 0;
4
+ exports.resolveDockerProfileSelector = exports.resolveDockerProfileAlias = exports.resolveDockerProfile = exports.resolveDockerExecutionProfile = exports.parseDockerProfileRegistry = exports.indexDockerProfiles = exports.createDockerProfileRegistry = exports.parseDockerExecutionProfileV1 = exports.parseDockerExecutionProfile = exports.makeDockerExecutionProfileV1 = exports.isDockerExecutionProfileV1 = exports.dockerProfilePublicSummaryOf = exports.dockerProfileDigestOf = exports.dockerExecutionProfileV1Digest = exports.dockerProfileSemanticPolicyRevisionOf = exports.dockerExecutionProfileSemanticPolicyRevisionOf = exports.decodeDockerExecutionProfileV1 = exports.createDockerExecutionProfileV1 = exports.DockerExecutionProfileSchema = exports.DockerExecutionProfileV1Schema = exports.DOCKER_PROFILE_NETWORK_DENY_CIDRS = exports.DOCKER_PROFILE_NETWORK_POLICY_VERSION = exports.DOCKER_PROFILE_SCHEMA_VERSION = void 0;
5
5
  // niceeval/sandbox 公开导出:「在哪里跑」相关的类型 + 工厂 + 扩展点。
6
6
  // 具体 provider 实现类(DockerSandbox / VercelSandbox / E2BSandbox)是内部实现细节,不在此导出——
7
7
  // 需要自定义 provider 时用 defineSandbox(),不需要直接 new 内置实现类。
@@ -14,7 +14,6 @@ Object.defineProperty(exports, "dockerSandbox", { enumerable: true, get: functio
14
14
  Object.defineProperty(exports, "dockerComposeSandbox", { enumerable: true, get: function () { return layer_ts_1.dockerComposeSandbox; } });
15
15
  Object.defineProperty(exports, "e2bSandbox", { enumerable: true, get: function () { return layer_ts_1.e2bSandbox; } });
16
16
  Object.defineProperty(exports, "vercelSandbox", { enumerable: true, get: function () { return layer_ts_1.vercelSandbox; } });
17
- Object.defineProperty(exports, "localSandbox", { enumerable: true, get: function () { return layer_ts_1.localSandbox; } });
18
17
  Object.defineProperty(exports, "defineSandboxCase", { enumerable: true, get: function () { return layer_ts_1.defineSandboxCase; } });
19
18
  var commands_ts_1 = require("./commands.cjs");
20
19
  Object.defineProperty(exports, "command", { enumerable: true, get: function () { return commands_ts_1.command; } });
@@ -63,6 +62,9 @@ Object.defineProperty(exports, "NICEEVAL_OPENCLAW_DOCKER_IMAGE", { enumerable: t
63
62
  Object.defineProperty(exports, "NICEEVAL_OPENCODE_DOCKER_IMAGE", { enumerable: true, get: function () { return docker_agent_image_ts_1.NICEEVAL_OPENCODE_DOCKER_IMAGE; } });
64
63
  Object.defineProperty(exports, "NICEEVAL_OMP_DOCKER_IMAGE", { enumerable: true, get: function () { return docker_agent_image_ts_1.NICEEVAL_OMP_DOCKER_IMAGE; } });
65
64
  Object.defineProperty(exports, "NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE", { enumerable: true, get: function () { return docker_agent_image_ts_1.NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE; } });
65
+ var build_coordinator_ts_2 = require("./build-coordinator.cjs");
66
+ Object.defineProperty(exports, "materializationScopeId", { enumerable: true, get: function () { return build_coordinator_ts_2.materializationScopeId; } });
67
+ Object.defineProperty(exports, "sandboxBuildRef", { enumerable: true, get: function () { return build_coordinator_ts_2.sandboxBuildRef; } });
66
68
  var errors_ts_1 = require("./docker-profile/errors.cjs");
67
69
  Object.defineProperty(exports, "DockerProfileError", { enumerable: true, get: function () { return errors_ts_1.DockerProfileError; } });
68
70
  Object.defineProperty(exports, "dockerProfileError", { enumerable: true, get: function () { return errors_ts_1.dockerProfileError; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,gDAAgD;AAChD,6EAA6E;AAC7E,qDAAqD;AACrD,0CAA6C;AAApC,0GAAA,aAAa,OAAA;AACtB,uCAA+K;AAAtK,6HAAA,iCAAiC,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AACzJ,6CAAqE;AAA5D,sGAAA,OAAO,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,mHAAA,oBAAoB,OAAA;AAC7C,6DAA8D;AAArD,+GAAA,QAAQ,OAAA;AAAE,kHAAA,WAAW,OAAA;AAC9B,iDAA0D;AAAjD,wHAAA,uBAAuB,OAAA;AAChC,2CAAsD;AAA7C,oHAAA,sBAAsB,OAAA;AAC/B,2CAAqR;AAA5Q,2HAAA,6BAA6B,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAAE,0HAAA,4BAA4B,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAAE,4HAAA,8BAA8B,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAAE,kIAAA,oCAAoC,OAAA;AAC7P,6CAAsK;AAA7J,8GAAA,eAAe,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAAE,6HAAA,8BAA8B,OAAA;AAAE,qHAAA,sBAAsB,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAC7I,+DAA+H;AAAtH,8HAAA,sBAAsB,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AAAE,0HAAA,kBAAkB,OAAA;AAAE,0HAAA,kBAAkB,OAAA;AAC7F,iDAAsE;AAA7D,iHAAA,gBAAgB,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAC5C,wDAAkE;AAAzD,wHAAA,uBAAuB,OAAA;AAEhC,iEAAsS;AAA7R,kIAAA,yBAAyB,OAAA;AAAE,0IAAA,iCAAiC,OAAA;AAAE,oIAAA,2BAA2B,OAAA;AAAE,qIAAA,4BAA4B,OAAA;AAAE,uIAAA,8BAA8B,OAAA;AAAE,uIAAA,8BAA8B,OAAA;AAAE,kIAAA,yBAAyB,OAAA;AAAE,+IAAA,sCAAsC,OAAA;AAUnQ,wDAAqF;AAA5E,+GAAA,kBAAkB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAE/C,wDAA+lB;AAAtlB,oIAAA,uCAAuC,OAAA;AAAE,0HAAA,6BAA6B,OAAA;AAAE,kIAAA,qCAAqC,OAAA;AAAE,8HAAA,iCAAiC,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,2IAAA,8CAA8C,OAAA;AAAE,kIAAA,qCAAqC,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AAAE,uHAAA,0BAA0B,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AAAE,wHAAA,2BAA2B,OAAA;AAAE,0HAAA,6BAA6B,OAAA;AAEzjB,4DAA2O;AAAlO,0HAAA,2BAA2B,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAAE,yHAAA,0BAA0B,OAAA;AAAE,4HAAA,6BAA6B,OAAA;AAAE,mHAAA,oBAAoB,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAAE,2HAAA,4BAA4B,OAAA","sourcesContent":["// niceeval/sandbox 公开导出:「在哪里跑」相关的类型 + 工厂 + 扩展点。\n// 具体 provider 实现类(DockerSandbox / VercelSandbox / E2BSandbox)是内部实现细节,不在此导出——\n// 需要自定义 provider 时用 defineSandbox(),不需要直接 new 内置实现类。\nexport { defineSandbox } from \"../define.ts\";\nexport { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, localSandbox, defineSandboxCase, } from \"./layer.ts\";\nexport { command, shell, defineSandboxCommand } from \"./commands.ts\";\nexport { checkout, installTool } from \"./prepare-commands.ts\";\nexport { SandboxCommandExitError } from \"./operations.ts\";\nexport { registerSandboxContent } from \"./content.ts\";\nexport { COMPOSE_MATERIALIZER_REVISION, dockerComposeBuildProvider, collectComposeBuilds, leakGateHintsFromComposeFile, inspectComposeYaml, assertComposeBlacklist, findComposeBlacklistViolations, buildComposeOverlay, materializeDockerComposeProviderCase, } from \"./compose.ts\";\nexport { computeBuildKey, computeCaseKey, resolveFloatingImageTag, credentialIdentityContribution, assertPureDataIdentity, looksLikeDigestRef, } from \"./identity.ts\";\nexport { SANDBOX_BUILD_ACTIVITY, prepareSandboxBuilds, startSandboxBuilds, buildFailureOrigin, } from \"./build-coordinator.ts\";\nexport { createCheckpoint, restoreCheckpoint } from \"./checkpoint.ts\";\nexport { normalizeSandboxCapture, } from \"./record/attachment.ts\";\nexport type { SandboxCaptureInput, SandboxCaptureInputError, } from \"./record/attachment.ts\";\nexport { NICEEVAL_BUB_DOCKER_IMAGE, NICEEVAL_CLAUDE_CODE_DOCKER_IMAGE, NICEEVAL_CODEX_DOCKER_IMAGE, NICEEVAL_HERMES_DOCKER_IMAGE, NICEEVAL_OPENCLAW_DOCKER_IMAGE, NICEEVAL_OPENCODE_DOCKER_IMAGE, NICEEVAL_OMP_DOCKER_IMAGE, NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE, } from \"./docker-agent-image.ts\";\nexport type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, LocalSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from \"./layer.ts\";\nexport type { SandboxCommand, SandboxCommandContext, SandboxCommandTarget, SandboxCleanupCommand, SandboxCommandIdentity, SandboxCommandIdentityValue, SandboxCommandOptions, StableSandboxCommand, AttemptRef, } from \"./commands.ts\";\nexport type { CheckoutOptions, InstallToolOptions } from \"./prepare-commands.ts\";\nexport type { RegisteredSandboxContent } from \"./content.ts\";\nexport type { Sandbox, SandboxOperations, SandboxTransferOperations, SandboxProvider, SandboxRuntime, SandboxHook, SandboxHookContext, CommandResult, CommandOptions, SuccessfulCommandResult, } from \"../types.ts\";\nexport type { SandboxCaseKind, ServiceController, MaterializedSandboxCase, SandboxGroupEntry, SandboxResourceGroup, SandboxMaterializeContext, } from \"./case-types.ts\";\nexport type { BuildKey, CaseKey, BuildKeyInput, CaseKeyInput, ImageRefResolution, CredentialRef, } from \"./identity.ts\";\nexport type { ComposeBuildCollection, ComposeInspection, ComposeServiceInspection, ComposeBlacklistFinding, ComposeOverlay, MaterializeComposeOpts, } from \"./compose.ts\";\nexport type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from \"./build-coordinator.ts\";\nexport { DockerProfileError, dockerProfileError, } from \"./docker-profile/errors.ts\";\nexport type { DockerProfileErrorCode, DockerProfileErrorOptions, } from \"./docker-profile/errors.ts\";\nexport { DOCKER_EXECUTION_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_NETWORK_POLICY_VERSION, DOCKER_PROFILE_NETWORK_DENY_CIDRS, DockerExecutionProfileV1Schema, DockerExecutionProfileSchema, createDockerExecutionProfileV1, decodeDockerExecutionProfileV1, dockerExecutionProfileSemanticPolicyRevisionOf, dockerProfileSemanticPolicyRevisionOf, dockerExecutionProfileV1Digest, dockerProfileDigestOf, dockerProfilePublicSummaryOf, isDockerExecutionProfileV1, makeDockerExecutionProfileV1, parseDockerExecutionProfile, parseDockerExecutionProfileV1, } from \"./docker-profile/schema.ts\";\nexport type { DockerExecutionProfileSecurityLevel, DockerExecutionProfileV1, DockerExecutionProfileV1Draft, DockerProfileNetworkPolicy, DockerProfilePublicSummary, DockerProfileUnixEndpoint, } from \"./docker-profile/schema.ts\";\nexport { createDockerProfileRegistry, indexDockerProfiles, parseDockerProfileRegistry, resolveDockerExecutionProfile, resolveDockerProfile, resolveDockerProfileAlias, resolveDockerProfileSelector, } from \"./docker-profile/registry.ts\";\nexport type { DockerProfileRegistryEntry, DockerProfileRegistryFileFacts, DockerProfileRegistryIndex, DockerProfileRegistryInput, DockerProfileRegistryOptions, ResolvedDockerProfileEntry, } from \"./docker-profile/registry.ts\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,gDAAgD;AAChD,6EAA6E;AAC7E,qDAAqD;AACrD,0CAA6C;AAApC,0GAAA,aAAa,OAAA;AACtB,uCAAiK;AAAxJ,6HAAA,iCAAiC,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAC3I,6CAAqE;AAA5D,sGAAA,OAAO,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,mHAAA,oBAAoB,OAAA;AAC7C,6DAA8D;AAArD,+GAAA,QAAQ,OAAA;AAAE,kHAAA,WAAW,OAAA;AAC9B,iDAA0D;AAAjD,wHAAA,uBAAuB,OAAA;AAChC,2CAAsD;AAA7C,oHAAA,sBAAsB,OAAA;AAC/B,2CAAqR;AAA5Q,2HAAA,6BAA6B,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAAE,0HAAA,4BAA4B,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAAE,4HAAA,8BAA8B,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAAE,kIAAA,oCAAoC,OAAA;AAC7P,6CAAsK;AAA7J,8GAAA,eAAe,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAAE,6HAAA,8BAA8B,OAAA;AAAE,qHAAA,sBAAsB,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAC7I,+DAA+H;AAAtH,8HAAA,sBAAsB,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AAAE,0HAAA,kBAAkB,OAAA;AAAE,0HAAA,kBAAkB,OAAA;AAC7F,iDAAsE;AAA7D,iHAAA,gBAAgB,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAC5C,wDAAkE;AAAzD,wHAAA,uBAAuB,OAAA;AAEhC,iEAAsS;AAA7R,kIAAA,yBAAyB,OAAA;AAAE,0IAAA,iCAAiC,OAAA;AAAE,oIAAA,2BAA2B,OAAA;AAAE,qIAAA,4BAA4B,OAAA;AAAE,uIAAA,8BAA8B,OAAA;AAAE,uIAAA,8BAA8B,OAAA;AAAE,kIAAA,yBAAyB,OAAA;AAAE,+IAAA,sCAAsC,OAAA;AAUnQ,+DAAiF;AAAxE,8HAAA,sBAAsB,OAAA;AAAE,uHAAA,eAAe,OAAA;AAChD,wDAAqF;AAA5E,+GAAA,kBAAkB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAE/C,wDAA+lB;AAAtlB,oIAAA,uCAAuC,OAAA;AAAE,0HAAA,6BAA6B,OAAA;AAAE,kIAAA,qCAAqC,OAAA;AAAE,8HAAA,iCAAiC,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,2IAAA,8CAA8C,OAAA;AAAE,kIAAA,qCAAqC,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AAAE,uHAAA,0BAA0B,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AAAE,wHAAA,2BAA2B,OAAA;AAAE,0HAAA,6BAA6B,OAAA;AAEzjB,4DAA2O;AAAlO,0HAAA,2BAA2B,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAAE,yHAAA,0BAA0B,OAAA;AAAE,4HAAA,6BAA6B,OAAA;AAAE,mHAAA,oBAAoB,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAAE,2HAAA,4BAA4B,OAAA","sourcesContent":["// niceeval/sandbox 公开导出:「在哪里跑」相关的类型 + 工厂 + 扩展点。\n// 具体 provider 实现类(DockerSandbox / VercelSandbox / E2BSandbox)是内部实现细节,不在此导出——\n// 需要自定义 provider 时用 defineSandbox(),不需要直接 new 内置实现类。\nexport { defineSandbox } from \"../define.ts\";\nexport { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, defineSandboxCase, } from \"./layer.ts\";\nexport { command, shell, defineSandboxCommand } from \"./commands.ts\";\nexport { checkout, installTool } from \"./prepare-commands.ts\";\nexport { SandboxCommandExitError } from \"./operations.ts\";\nexport { registerSandboxContent } from \"./content.ts\";\nexport { COMPOSE_MATERIALIZER_REVISION, dockerComposeBuildProvider, collectComposeBuilds, leakGateHintsFromComposeFile, inspectComposeYaml, assertComposeBlacklist, findComposeBlacklistViolations, buildComposeOverlay, materializeDockerComposeProviderCase, } from \"./compose.ts\";\nexport { computeBuildKey, computeCaseKey, resolveFloatingImageTag, credentialIdentityContribution, assertPureDataIdentity, looksLikeDigestRef, } from \"./identity.ts\";\nexport { SANDBOX_BUILD_ACTIVITY, prepareSandboxBuilds, startSandboxBuilds, buildFailureOrigin, } from \"./build-coordinator.ts\";\nexport { createCheckpoint, restoreCheckpoint } from \"./checkpoint.ts\";\nexport { normalizeSandboxCapture, } from \"./record/attachment.ts\";\nexport type { SandboxCaptureInput, SandboxCaptureInputError, } from \"./record/attachment.ts\";\nexport { NICEEVAL_BUB_DOCKER_IMAGE, NICEEVAL_CLAUDE_CODE_DOCKER_IMAGE, NICEEVAL_CODEX_DOCKER_IMAGE, NICEEVAL_HERMES_DOCKER_IMAGE, NICEEVAL_OPENCLAW_DOCKER_IMAGE, NICEEVAL_OPENCODE_DOCKER_IMAGE, NICEEVAL_OMP_DOCKER_IMAGE, NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE, } from \"./docker-agent-image.ts\";\nexport type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from \"./layer.ts\";\nexport type { SandboxCommand, SandboxCommandContext, SandboxCommandTarget, SandboxCleanupCommand, SandboxCommandIdentity, SandboxCommandIdentityValue, SandboxCommandOptions, StableSandboxCommand, AttemptRef, } from \"./commands.ts\";\nexport type { CheckoutOptions, InstallToolOptions } from \"./prepare-commands.ts\";\nexport type { RegisteredSandboxContent } from \"./content.ts\";\nexport type { Sandbox, SandboxOperations, SandboxTransferOperations, SandboxProvider, SandboxRuntime, SandboxHook, SandboxHookContext, CommandResult, CommandOptions, SuccessfulCommandResult, } from \"../types.ts\";\nexport type { SandboxCaseKind, ServiceController, MaterializedSandboxCase, SandboxGroupEntry, SandboxResourceGroup, SandboxMaterializeContext, } from \"./case-types.ts\";\nexport type { BuildKey, CaseKey, BuildKeyInput, CaseKeyInput, ImageRefResolution, CredentialRef, } from \"./identity.ts\";\nexport type { ComposeBuildCollection, ComposeInspection, ComposeServiceInspection, ComposeBlacklistFinding, ComposeOverlay, MaterializeComposeOpts, } from \"./compose.ts\";\nexport type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildRef, MaterializationScopeId, SandboxBuildLookup, SandboxBuildArtifactSource, SandboxBuildUseHandle, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from \"./build-coordinator.ts\";\nexport { materializationScopeId, sandboxBuildRef } from \"./build-coordinator.ts\";\nexport { DockerProfileError, dockerProfileError, } from \"./docker-profile/errors.ts\";\nexport type { DockerProfileErrorCode, DockerProfileErrorOptions, } from \"./docker-profile/errors.ts\";\nexport { DOCKER_EXECUTION_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_NETWORK_POLICY_VERSION, DOCKER_PROFILE_NETWORK_DENY_CIDRS, DockerExecutionProfileV1Schema, DockerExecutionProfileSchema, createDockerExecutionProfileV1, decodeDockerExecutionProfileV1, dockerExecutionProfileSemanticPolicyRevisionOf, dockerProfileSemanticPolicyRevisionOf, dockerExecutionProfileV1Digest, dockerProfileDigestOf, dockerProfilePublicSummaryOf, isDockerExecutionProfileV1, makeDockerExecutionProfileV1, parseDockerExecutionProfile, parseDockerExecutionProfileV1, } from \"./docker-profile/schema.ts\";\nexport type { DockerExecutionProfileSecurityLevel, DockerExecutionProfileV1, DockerExecutionProfileV1Draft, DockerProfileNetworkPolicy, DockerProfilePublicSummary, DockerProfileUnixEndpoint, } from \"./docker-profile/schema.ts\";\nexport { createDockerProfileRegistry, indexDockerProfiles, parseDockerProfileRegistry, resolveDockerExecutionProfile, resolveDockerProfile, resolveDockerProfileAlias, resolveDockerProfileSelector, } from \"./docker-profile/registry.ts\";\nexport type { DockerProfileRegistryEntry, DockerProfileRegistryFileFacts, DockerProfileRegistryIndex, DockerProfileRegistryInput, DockerProfileRegistryOptions, ResolvedDockerProfileEntry, } from \"./docker-profile/registry.ts\";\n"]}
@@ -1,5 +1,5 @@
1
1
  export { defineSandbox } from "../define.cjs";
2
- export { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, localSandbox, defineSandboxCase, } from "./layer.cjs";
2
+ export { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, defineSandboxCase, } from "./layer.cjs";
3
3
  export { command, shell, defineSandboxCommand } from "./commands.cjs";
4
4
  export { checkout, installTool } from "./prepare-commands.cjs";
5
5
  export { SandboxCommandExitError } from "./operations.cjs";
@@ -11,7 +11,7 @@ export { createCheckpoint, restoreCheckpoint } from "./checkpoint.cjs";
11
11
  export { normalizeSandboxCapture, } from "./record/attachment.cjs";
12
12
  export type { SandboxCaptureInput, SandboxCaptureInputError, } from "./record/attachment.cjs";
13
13
  export { NICEEVAL_BUB_DOCKER_IMAGE, NICEEVAL_CLAUDE_CODE_DOCKER_IMAGE, NICEEVAL_CODEX_DOCKER_IMAGE, NICEEVAL_HERMES_DOCKER_IMAGE, NICEEVAL_OPENCLAW_DOCKER_IMAGE, NICEEVAL_OPENCODE_DOCKER_IMAGE, NICEEVAL_OMP_DOCKER_IMAGE, NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE, } from "./docker-agent-image.cjs";
14
- export type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, LocalSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from "./layer.cjs";
14
+ export type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from "./layer.cjs";
15
15
  export type { SandboxCommand, SandboxCommandContext, SandboxCommandTarget, SandboxCleanupCommand, SandboxCommandIdentity, SandboxCommandIdentityValue, SandboxCommandOptions, StableSandboxCommand, AttemptRef, } from "./commands.cjs";
16
16
  export type { CheckoutOptions, InstallToolOptions } from "./prepare-commands.cjs";
17
17
  export type { RegisteredSandboxContent } from "./content.cjs";
@@ -19,7 +19,8 @@ export type { Sandbox, SandboxOperations, SandboxTransferOperations, SandboxProv
19
19
  export type { SandboxCaseKind, ServiceController, MaterializedSandboxCase, SandboxGroupEntry, SandboxResourceGroup, SandboxMaterializeContext, } from "./case-types.cjs";
20
20
  export type { BuildKey, CaseKey, BuildKeyInput, CaseKeyInput, ImageRefResolution, CredentialRef, } from "./identity.cjs";
21
21
  export type { ComposeBuildCollection, ComposeInspection, ComposeServiceInspection, ComposeBlacklistFinding, ComposeOverlay, MaterializeComposeOpts, } from "./compose.cjs";
22
- export type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from "./build-coordinator.cjs";
22
+ export type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildRef, MaterializationScopeId, SandboxBuildLookup, SandboxBuildArtifactSource, SandboxBuildUseHandle, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from "./build-coordinator.cjs";
23
+ export { materializationScopeId, sandboxBuildRef } from "./build-coordinator.cjs";
23
24
  export { DockerProfileError, dockerProfileError, } from "./docker-profile/errors.cjs";
24
25
  export type { DockerProfileErrorCode, DockerProfileErrorOptions, } from "./docker-profile/errors.cjs";
25
26
  export { DOCKER_EXECUTION_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_NETWORK_POLICY_VERSION, DOCKER_PROFILE_NETWORK_DENY_CIDRS, DockerExecutionProfileV1Schema, DockerExecutionProfileSchema, createDockerExecutionProfileV1, decodeDockerExecutionProfileV1, dockerExecutionProfileSemanticPolicyRevisionOf, dockerProfileSemanticPolicyRevisionOf, dockerExecutionProfileV1Digest, dockerProfileDigestOf, dockerProfilePublicSummaryOf, isDockerExecutionProfileV1, makeDockerExecutionProfileV1, parseDockerExecutionProfile, parseDockerExecutionProfileV1, } from "./docker-profile/schema.cjs";
@@ -1,5 +1,5 @@
1
1
  export { defineSandbox } from "../define.mjs";
2
- export { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, localSandbox, defineSandboxCase, } from "./layer.mjs";
2
+ export { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, defineSandboxCase, } from "./layer.mjs";
3
3
  export { command, shell, defineSandboxCommand } from "./commands.mjs";
4
4
  export { checkout, installTool } from "./prepare-commands.mjs";
5
5
  export { SandboxCommandExitError } from "./operations.mjs";
@@ -11,7 +11,7 @@ export { createCheckpoint, restoreCheckpoint } from "./checkpoint.mjs";
11
11
  export { normalizeSandboxCapture, } from "./record/attachment.mjs";
12
12
  export type { SandboxCaptureInput, SandboxCaptureInputError, } from "./record/attachment.mjs";
13
13
  export { NICEEVAL_BUB_DOCKER_IMAGE, NICEEVAL_CLAUDE_CODE_DOCKER_IMAGE, NICEEVAL_CODEX_DOCKER_IMAGE, NICEEVAL_HERMES_DOCKER_IMAGE, NICEEVAL_OPENCLAW_DOCKER_IMAGE, NICEEVAL_OPENCODE_DOCKER_IMAGE, NICEEVAL_OMP_DOCKER_IMAGE, NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE, } from "./docker-agent-image.mjs";
14
- export type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, LocalSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from "./layer.mjs";
14
+ export type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from "./layer.mjs";
15
15
  export type { SandboxCommand, SandboxCommandContext, SandboxCommandTarget, SandboxCleanupCommand, SandboxCommandIdentity, SandboxCommandIdentityValue, SandboxCommandOptions, StableSandboxCommand, AttemptRef, } from "./commands.mjs";
16
16
  export type { CheckoutOptions, InstallToolOptions } from "./prepare-commands.mjs";
17
17
  export type { RegisteredSandboxContent } from "./content.mjs";
@@ -19,7 +19,8 @@ export type { Sandbox, SandboxOperations, SandboxTransferOperations, SandboxProv
19
19
  export type { SandboxCaseKind, ServiceController, MaterializedSandboxCase, SandboxGroupEntry, SandboxResourceGroup, SandboxMaterializeContext, } from "./case-types.mjs";
20
20
  export type { BuildKey, CaseKey, BuildKeyInput, CaseKeyInput, ImageRefResolution, CredentialRef, } from "./identity.mjs";
21
21
  export type { ComposeBuildCollection, ComposeInspection, ComposeServiceInspection, ComposeBlacklistFinding, ComposeOverlay, MaterializeComposeOpts, } from "./compose.mjs";
22
- export type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from "./build-coordinator.mjs";
22
+ export type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildRef, MaterializationScopeId, SandboxBuildLookup, SandboxBuildArtifactSource, SandboxBuildUseHandle, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from "./build-coordinator.mjs";
23
+ export { materializationScopeId, sandboxBuildRef } from "./build-coordinator.mjs";
23
24
  export { DockerProfileError, dockerProfileError, } from "./docker-profile/errors.mjs";
24
25
  export type { DockerProfileErrorCode, DockerProfileErrorOptions, } from "./docker-profile/errors.mjs";
25
26
  export { DOCKER_EXECUTION_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_NETWORK_POLICY_VERSION, DOCKER_PROFILE_NETWORK_DENY_CIDRS, DockerExecutionProfileV1Schema, DockerExecutionProfileSchema, createDockerExecutionProfileV1, decodeDockerExecutionProfileV1, dockerExecutionProfileSemanticPolicyRevisionOf, dockerProfileSemanticPolicyRevisionOf, dockerExecutionProfileV1Digest, dockerProfileDigestOf, dockerProfilePublicSummaryOf, isDockerExecutionProfileV1, makeDockerExecutionProfileV1, parseDockerExecutionProfile, parseDockerExecutionProfileV1, } from "./docker-profile/schema.mjs";
@@ -1,5 +1,5 @@
1
1
  export { defineSandbox } from "../define.js";
2
- export { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, localSandbox, defineSandboxCase, } from "./layer.js";
2
+ export { CustomSandboxMaterializationError, sandboxLayer, dockerSandbox, dockerComposeSandbox, e2bSandbox, vercelSandbox, defineSandboxCase, } from "./layer.js";
3
3
  export { command, shell, defineSandboxCommand } from "./commands.js";
4
4
  export { checkout, installTool } from "./prepare-commands.js";
5
5
  export { SandboxCommandExitError } from "./operations.js";
@@ -11,7 +11,7 @@ export { createCheckpoint, restoreCheckpoint } from "./checkpoint.js";
11
11
  export { normalizeSandboxCapture, } from "./record/attachment.js";
12
12
  export type { SandboxCaptureInput, SandboxCaptureInputError, } from "./record/attachment.js";
13
13
  export { NICEEVAL_BUB_DOCKER_IMAGE, NICEEVAL_CLAUDE_CODE_DOCKER_IMAGE, NICEEVAL_CODEX_DOCKER_IMAGE, NICEEVAL_HERMES_DOCKER_IMAGE, NICEEVAL_OPENCLAW_DOCKER_IMAGE, NICEEVAL_OPENCODE_DOCKER_IMAGE, NICEEVAL_OMP_DOCKER_IMAGE, NICEEVAL_DEEPSEEK_HARNESS_DOCKER_IMAGE, } from "./docker-agent-image.js";
14
- export type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, LocalSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from "./layer.js";
14
+ export type { SandboxLayer, SandboxLayerKind, SandboxLayerLifecycle, DockerImageSource, DockerfileSource, DockerSandboxSource, DockerSandboxAccess, DockerSandboxOptions, DockerSandboxCommonOptions, DockerSandboxReadiness, ManagedDockerResources, DockerComposeSandboxOptions, DockerSandboxResources, DockerSandboxTmpfsOptions, E2BSandboxOptions, VercelSandboxOptions, CustomProviderSandboxOptions, CustomCaseSandboxOptions, CustomCaseServices, CustomCaseMaterializedServices, CustomCaseMaterializeResult, SandboxTargetPlatform, SandboxLeakGate, } from "./layer.js";
15
15
  export type { SandboxCommand, SandboxCommandContext, SandboxCommandTarget, SandboxCleanupCommand, SandboxCommandIdentity, SandboxCommandIdentityValue, SandboxCommandOptions, StableSandboxCommand, AttemptRef, } from "./commands.js";
16
16
  export type { CheckoutOptions, InstallToolOptions } from "./prepare-commands.js";
17
17
  export type { RegisteredSandboxContent } from "./content.js";
@@ -19,7 +19,8 @@ export type { Sandbox, SandboxOperations, SandboxTransferOperations, SandboxProv
19
19
  export type { SandboxCaseKind, ServiceController, MaterializedSandboxCase, SandboxGroupEntry, SandboxResourceGroup, SandboxMaterializeContext, } from "./case-types.js";
20
20
  export type { BuildKey, CaseKey, BuildKeyInput, CaseKeyInput, ImageRefResolution, CredentialRef, } from "./identity.js";
21
21
  export type { ComposeBuildCollection, ComposeInspection, ComposeServiceInspection, ComposeBlacklistFinding, ComposeOverlay, MaterializeComposeOpts, } from "./compose.js";
22
- export type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from "./build-coordinator.js";
22
+ export type { SandboxBuildWork, SandboxBuildProvider, SandboxBuildRef, MaterializationScopeId, SandboxBuildLookup, SandboxBuildArtifactSource, SandboxBuildUseHandle, SandboxBuildExecutionContext, SandboxBuildPreparation, SandboxBuildFailure, PrepareSandboxBuildsOptions, } from "./build-coordinator.js";
23
+ export { materializationScopeId, sandboxBuildRef } from "./build-coordinator.js";
23
24
  export { DockerProfileError, dockerProfileError, } from "./docker-profile/errors.js";
24
25
  export type { DockerProfileErrorCode, DockerProfileErrorOptions, } from "./docker-profile/errors.js";
25
26
  export { DOCKER_EXECUTION_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_SCHEMA_VERSION, DOCKER_PROFILE_NETWORK_POLICY_VERSION, DOCKER_PROFILE_NETWORK_DENY_CIDRS, DockerExecutionProfileV1Schema, DockerExecutionProfileSchema, createDockerExecutionProfileV1, decodeDockerExecutionProfileV1, dockerExecutionProfileSemanticPolicyRevisionOf, dockerProfileSemanticPolicyRevisionOf, dockerExecutionProfileV1Digest, dockerProfileDigestOf, dockerProfilePublicSummaryOf, isDockerExecutionProfileV1, makeDockerExecutionProfileV1, parseDockerExecutionProfile, parseDockerExecutionProfileV1, } from "./docker-profile/schema.js";
@@ -105,12 +105,12 @@ const __niceevalExport50 = __niceevalCanonical["isDockerExecutionProfileV1"];
105
105
  export { __niceevalExport50 as isDockerExecutionProfileV1 };
106
106
  const __niceevalExport51 = __niceevalCanonical["leakGateHintsFromComposeFile"];
107
107
  export { __niceevalExport51 as leakGateHintsFromComposeFile };
108
- const __niceevalExport52 = __niceevalCanonical["localSandbox"];
109
- export { __niceevalExport52 as localSandbox };
110
- const __niceevalExport53 = __niceevalCanonical["looksLikeDigestRef"];
111
- export { __niceevalExport53 as looksLikeDigestRef };
112
- const __niceevalExport54 = __niceevalCanonical["makeDockerExecutionProfileV1"];
113
- export { __niceevalExport54 as makeDockerExecutionProfileV1 };
108
+ const __niceevalExport52 = __niceevalCanonical["looksLikeDigestRef"];
109
+ export { __niceevalExport52 as looksLikeDigestRef };
110
+ const __niceevalExport53 = __niceevalCanonical["makeDockerExecutionProfileV1"];
111
+ export { __niceevalExport53 as makeDockerExecutionProfileV1 };
112
+ const __niceevalExport54 = __niceevalCanonical["materializationScopeId"];
113
+ export { __niceevalExport54 as materializationScopeId };
114
114
  const __niceevalExport55 = __niceevalCanonical["materializeDockerComposeProviderCase"];
115
115
  export { __niceevalExport55 as materializeDockerComposeProviderCase };
116
116
  const __niceevalExport56 = __niceevalCanonical["normalizeSandboxCapture"];
@@ -137,12 +137,14 @@ const __niceevalExport66 = __niceevalCanonical["resolveFloatingImageTag"];
137
137
  export { __niceevalExport66 as resolveFloatingImageTag };
138
138
  const __niceevalExport67 = __niceevalCanonical["restoreCheckpoint"];
139
139
  export { __niceevalExport67 as restoreCheckpoint };
140
- const __niceevalExport68 = __niceevalCanonical["sandboxLayer"];
141
- export { __niceevalExport68 as sandboxLayer };
142
- const __niceevalExport69 = __niceevalCanonical["shell"];
143
- export { __niceevalExport69 as shell };
144
- const __niceevalExport70 = __niceevalCanonical["startSandboxBuilds"];
145
- export { __niceevalExport70 as startSandboxBuilds };
146
- const __niceevalExport71 = __niceevalCanonical["vercelSandbox"];
147
- export { __niceevalExport71 as vercelSandbox };
140
+ const __niceevalExport68 = __niceevalCanonical["sandboxBuildRef"];
141
+ export { __niceevalExport68 as sandboxBuildRef };
142
+ const __niceevalExport69 = __niceevalCanonical["sandboxLayer"];
143
+ export { __niceevalExport69 as sandboxLayer };
144
+ const __niceevalExport70 = __niceevalCanonical["shell"];
145
+ export { __niceevalExport70 as shell };
146
+ const __niceevalExport71 = __niceevalCanonical["startSandboxBuilds"];
147
+ export { __niceevalExport71 as startSandboxBuilds };
148
+ const __niceevalExport72 = __niceevalCanonical["vercelSandbox"];
149
+ export { __niceevalExport72 as vercelSandbox };
148
150
  //# sourceMappingURL=index.js.map