niceeval 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (679) hide show
  1. package/INDEX.md +4 -2
  2. package/dist/adapter-usage.cjs.map +1 -1
  3. package/dist/adapter-usage.d.cts +1 -1
  4. package/dist/adapter-usage.d.mts +1 -1
  5. package/dist/adapter-usage.d.ts +1 -1
  6. package/dist/adapter.cjs +8 -7
  7. package/dist/adapter.cjs.map +1 -1
  8. package/dist/adapter.d.cts +21 -21
  9. package/dist/adapter.d.mts +21 -21
  10. package/dist/adapter.d.ts +21 -21
  11. package/dist/agents/{effect-runtime.cjs → agent-effects.cjs} +12 -18
  12. package/dist/agents/agent-effects.cjs.map +1 -0
  13. package/dist/agents/agent-effects.d.cts +23 -0
  14. package/dist/agents/agent-effects.d.mts +23 -0
  15. package/dist/agents/agent-effects.d.ts +23 -0
  16. package/dist/agents/agent-effects.js +16 -0
  17. package/dist/agents/agent-effects.js.map +1 -0
  18. package/dist/agents/ai-sdk.cjs +1 -1
  19. package/dist/agents/ai-sdk.cjs.map +1 -1
  20. package/dist/agents/bub.cjs +31 -18
  21. package/dist/agents/bub.cjs.map +1 -1
  22. package/dist/agents/bub.d.cts +9 -12
  23. package/dist/agents/bub.d.mts +9 -12
  24. package/dist/agents/bub.d.ts +9 -12
  25. package/dist/agents/claude-code-native.cjs +2 -2
  26. package/dist/agents/claude-code-native.cjs.map +1 -1
  27. package/dist/agents/claude-code.cjs +17 -11
  28. package/dist/agents/claude-code.cjs.map +1 -1
  29. package/dist/agents/claude-code.d.cts +11 -11
  30. package/dist/agents/claude-code.d.mts +11 -11
  31. package/dist/agents/claude-code.d.ts +11 -11
  32. package/dist/agents/codex-app-server.cjs +2 -2
  33. package/dist/agents/codex-app-server.cjs.map +1 -1
  34. package/dist/agents/codex.cjs +18 -12
  35. package/dist/agents/codex.cjs.map +1 -1
  36. package/dist/agents/codex.d.cts +12 -12
  37. package/dist/agents/codex.d.mts +12 -12
  38. package/dist/agents/codex.d.ts +12 -12
  39. package/dist/agents/deepseek-harness.cjs +2 -2
  40. package/dist/agents/deepseek-harness.cjs.map +1 -1
  41. package/dist/agents/hermes.cjs +3 -3
  42. package/dist/agents/hermes.cjs.map +1 -1
  43. package/dist/agents/index.cjs +3 -3
  44. package/dist/agents/index.cjs.map +1 -1
  45. package/dist/agents/index.d.cts +3 -3
  46. package/dist/agents/index.d.mts +3 -3
  47. package/dist/agents/index.d.ts +3 -3
  48. package/dist/agents/index.js +2 -2
  49. package/dist/agents/index.mjs +2 -2
  50. package/dist/agents/mcp.cjs.map +1 -1
  51. package/dist/agents/mcp.d.cts +2 -2
  52. package/dist/agents/mcp.d.mts +2 -2
  53. package/dist/agents/mcp.d.ts +2 -2
  54. package/dist/agents/omp.cjs +2 -2
  55. package/dist/agents/omp.cjs.map +1 -1
  56. package/dist/agents/openai-compat.cjs +2 -2
  57. package/dist/agents/openai-compat.cjs.map +1 -1
  58. package/dist/agents/openclaw.cjs +3 -3
  59. package/dist/agents/openclaw.cjs.map +1 -1
  60. package/dist/agents/opencode.cjs +16 -4
  61. package/dist/agents/opencode.cjs.map +1 -1
  62. package/dist/agents/plugin-extensions.cjs +71 -0
  63. package/dist/agents/plugin-extensions.cjs.map +1 -0
  64. package/dist/agents/plugin-extensions.d.cts +26 -0
  65. package/dist/agents/plugin-extensions.d.mts +26 -0
  66. package/dist/agents/plugin-extensions.d.ts +26 -0
  67. package/dist/agents/plugin-extensions.js +8 -0
  68. package/dist/agents/plugin-extensions.js.map +1 -0
  69. package/dist/agents/post-setup.cjs +14 -3
  70. package/dist/agents/post-setup.cjs.map +1 -1
  71. package/dist/agents/post-setup.d.cts +4 -2
  72. package/dist/agents/post-setup.d.mts +4 -2
  73. package/dist/agents/post-setup.d.ts +4 -2
  74. package/dist/agents/post-setup.js +8 -6
  75. package/dist/agents/sdk-streams.cjs +3 -3
  76. package/dist/agents/sdk-streams.cjs.map +1 -1
  77. package/dist/agents/{session-slot.cjs → session-key.cjs} +4 -4
  78. package/dist/agents/session-key.cjs.map +1 -0
  79. package/dist/agents/session-key.d.cts +12 -0
  80. package/dist/agents/session-key.d.mts +12 -0
  81. package/dist/agents/session-key.d.ts +12 -0
  82. package/dist/agents/session-key.js +6 -0
  83. package/dist/agents/session-key.js.map +1 -0
  84. package/dist/agents/shared.cjs +2 -2
  85. package/dist/agents/shared.cjs.map +1 -1
  86. package/dist/agents/shared.d.cts +4 -4
  87. package/dist/agents/shared.d.mts +4 -4
  88. package/dist/agents/shared.d.ts +4 -4
  89. package/dist/agents/skills.cjs.map +1 -1
  90. package/dist/agents/skills.d.cts +3 -3
  91. package/dist/agents/skills.d.mts +3 -3
  92. package/dist/agents/skills.d.ts +3 -3
  93. package/dist/agents/types.cjs.map +1 -1
  94. package/dist/agents/types.d.cts +55 -54
  95. package/dist/agents/types.d.mts +55 -54
  96. package/dist/agents/types.d.ts +55 -54
  97. package/dist/agents/ui-message-stream.cjs +4 -4
  98. package/dist/agents/ui-message-stream.cjs.map +1 -1
  99. package/dist/agents/unrecognized-events.cjs +32 -0
  100. package/dist/agents/unrecognized-events.cjs.map +1 -0
  101. package/dist/agents/unrecognized-events.d.cts +8 -0
  102. package/dist/agents/unrecognized-events.d.mts +8 -0
  103. package/dist/agents/unrecognized-events.d.ts +8 -0
  104. package/dist/agents/unrecognized-events.js +6 -0
  105. package/dist/agents/unrecognized-events.js.map +1 -0
  106. package/dist/assertions/api.cjs.map +1 -1
  107. package/dist/assertions/api.d.cts +3 -0
  108. package/dist/assertions/api.d.mts +3 -0
  109. package/dist/assertions/api.d.ts +3 -0
  110. package/dist/assertions/collection.cjs +1 -1
  111. package/dist/assertions/collection.cjs.map +1 -1
  112. package/dist/assertions/judge.cjs +1 -1
  113. package/dist/assertions/judge.cjs.map +1 -1
  114. package/dist/assertions/match.cjs +52 -21
  115. package/dist/assertions/match.cjs.map +1 -1
  116. package/dist/assertions/match.d.cts +16 -5
  117. package/dist/assertions/match.d.mts +16 -5
  118. package/dist/assertions/match.d.ts +16 -5
  119. package/dist/assertions/match.js +96 -94
  120. package/dist/assertions/measurements.cjs +22 -6
  121. package/dist/assertions/measurements.cjs.map +1 -1
  122. package/dist/assertions/measurements.d.cts +8 -1
  123. package/dist/assertions/measurements.d.mts +8 -1
  124. package/dist/assertions/measurements.d.ts +8 -1
  125. package/dist/assertions/numeric.cjs +2 -0
  126. package/dist/assertions/numeric.cjs.map +1 -1
  127. package/dist/assertions/numeric.d.cts +1 -1
  128. package/dist/assertions/numeric.d.mts +1 -1
  129. package/dist/assertions/numeric.d.ts +1 -1
  130. package/dist/assertions/quantity.cjs +42 -0
  131. package/dist/assertions/quantity.cjs.map +1 -0
  132. package/dist/assertions/quantity.d.cts +18 -0
  133. package/dist/assertions/quantity.d.mts +18 -0
  134. package/dist/assertions/quantity.d.ts +18 -0
  135. package/dist/assertions/quantity.js +22 -0
  136. package/dist/assertions/quantity.js.map +1 -0
  137. package/dist/assertions/record/attachment.cjs +2 -0
  138. package/dist/assertions/record/attachment.cjs.map +1 -1
  139. package/dist/assertions/record/codec.cjs +5 -1
  140. package/dist/assertions/record/codec.cjs.map +1 -1
  141. package/dist/assertions/record/model.cjs.map +1 -1
  142. package/dist/assertions/record/model.d.cts +3 -1
  143. package/dist/assertions/record/model.d.mts +3 -1
  144. package/dist/assertions/record/model.d.ts +3 -1
  145. package/dist/assertions/runtime.cjs +11 -6
  146. package/dist/assertions/runtime.cjs.map +1 -1
  147. package/dist/cli/program.cjs +3 -0
  148. package/dist/cli/program.cjs.map +1 -1
  149. package/dist/context/assert-first.cjs +6 -4
  150. package/dist/context/assert-first.cjs.map +1 -1
  151. package/dist/context/assert-first.d.cts +9 -3
  152. package/dist/context/assert-first.d.mts +9 -3
  153. package/dist/context/assert-first.d.ts +9 -3
  154. package/dist/context/notes.cjs +47 -0
  155. package/dist/context/notes.cjs.map +1 -0
  156. package/dist/context/notes.d.cts +10 -0
  157. package/dist/context/notes.d.mts +10 -0
  158. package/dist/context/notes.d.ts +10 -0
  159. package/dist/context/notes.js +6 -0
  160. package/dist/context/notes.js.map +1 -0
  161. package/dist/context/send-failures.cjs +1 -7
  162. package/dist/context/send-failures.cjs.map +1 -1
  163. package/dist/context/send-failures.d.cts +2 -3
  164. package/dist/context/send-failures.d.mts +2 -3
  165. package/dist/context/send-failures.d.ts +2 -3
  166. package/dist/context/send-retry.cjs +0 -1
  167. package/dist/context/send-retry.cjs.map +1 -1
  168. package/dist/context/send-retry.d.cts +1 -2
  169. package/dist/context/send-retry.d.mts +1 -2
  170. package/dist/context/send-retry.d.ts +1 -2
  171. package/dist/context/session.cjs +10 -17
  172. package/dist/context/session.cjs.map +1 -1
  173. package/dist/context/session.d.cts +4 -10
  174. package/dist/context/session.d.mts +4 -10
  175. package/dist/context/session.d.ts +4 -10
  176. package/dist/define.cjs +88 -65
  177. package/dist/define.cjs.map +1 -1
  178. package/dist/define.d.cts +3 -3
  179. package/dist/define.d.mts +3 -3
  180. package/dist/define.d.ts +3 -3
  181. package/dist/eval/cli/contribution.cjs +1 -1
  182. package/dist/eval/cli/contribution.cjs.map +1 -1
  183. package/dist/eval/host/index.cjs +1 -1
  184. package/dist/eval/host/index.cjs.map +1 -1
  185. package/dist/eval/record/evaluation.cjs +1 -1
  186. package/dist/eval/record/evaluation.cjs.map +1 -1
  187. package/dist/eval/record/membership-provenance.d.cts +3 -3
  188. package/dist/eval/record/membership-provenance.d.mts +3 -3
  189. package/dist/eval/record/membership-provenance.d.ts +3 -3
  190. package/dist/eval/record/score.cjs +2 -2
  191. package/dist/eval/record/score.cjs.map +1 -1
  192. package/dist/eval/record/sealed-assertion.cjs +1 -1
  193. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  194. package/dist/eval/record/verdict.cjs +2 -2
  195. package/dist/eval/record/verdict.cjs.map +1 -1
  196. package/dist/expect/index.cjs +10 -1
  197. package/dist/expect/index.cjs.map +1 -1
  198. package/dist/expect/index.d.cts +3 -1
  199. package/dist/expect/index.d.mts +3 -1
  200. package/dist/expect/index.d.ts +3 -1
  201. package/dist/expect/index.js +92 -76
  202. package/dist/expect/index.mjs +92 -76
  203. package/dist/experiment/host/cli/contribution.cjs +52 -39
  204. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  205. package/dist/experiment/host/cli/contribution.d.cts +18 -4
  206. package/dist/experiment/host/cli/contribution.d.mts +18 -4
  207. package/dist/experiment/host/cli/contribution.d.ts +18 -4
  208. package/dist/experiment/host/cli/contribution.js +2 -2
  209. package/dist/experiment/host/cli/debug-protocol.cjs +2 -2
  210. package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -1
  211. package/dist/experiment/host/cli/debug-protocol.d.cts +2 -2
  212. package/dist/experiment/host/cli/debug-protocol.d.mts +2 -2
  213. package/dist/experiment/host/cli/debug-protocol.d.ts +2 -2
  214. package/dist/experiment/host/cli/output-protocol.cjs +1 -1
  215. package/dist/experiment/host/cli/output-protocol.cjs.map +1 -1
  216. package/dist/experiment/host/cli/output-protocol.d.cts +2 -2
  217. package/dist/experiment/host/cli/output-protocol.d.mts +2 -2
  218. package/dist/experiment/host/cli/output-protocol.d.ts +2 -2
  219. package/dist/experiment/host/current.cjs +2 -2
  220. package/dist/experiment/host/current.cjs.map +1 -1
  221. package/dist/experiment/host/index.cjs +1 -1
  222. package/dist/experiment/host/index.cjs.map +1 -1
  223. package/dist/experiment/host/operations.cjs +21 -22
  224. package/dist/experiment/host/operations.cjs.map +1 -1
  225. package/dist/experiment/host/runtime.cjs +8 -9
  226. package/dist/experiment/host/runtime.cjs.map +1 -1
  227. package/dist/experiment/host/runtime.d.cts +3 -3
  228. package/dist/experiment/host/runtime.d.mts +3 -3
  229. package/dist/experiment/host/runtime.d.ts +3 -3
  230. package/dist/experiment/host/teardown.cjs +3 -3
  231. package/dist/experiment/host/teardown.cjs.map +1 -1
  232. package/dist/experiment/host/teardown.d.cts +3 -3
  233. package/dist/experiment/host/teardown.d.mts +3 -3
  234. package/dist/experiment/host/teardown.d.ts +3 -3
  235. package/dist/experiment/host/types.cjs.map +1 -1
  236. package/dist/experiment/host/types.d.cts +19 -19
  237. package/dist/experiment/host/types.d.mts +19 -19
  238. package/dist/experiment/host/types.d.ts +19 -19
  239. package/dist/index.cjs +3 -3
  240. package/dist/index.cjs.map +1 -1
  241. package/dist/index.d.cts +3 -3
  242. package/dist/index.d.mts +3 -3
  243. package/dist/index.d.ts +3 -3
  244. package/dist/index.js +2 -2
  245. package/dist/index.mjs +2 -2
  246. package/dist/inspection/assertions.cjs +1 -1
  247. package/dist/inspection/assertions.cjs.map +1 -1
  248. package/dist/inspection/cli/contribution.cjs +8 -7
  249. package/dist/inspection/cli/contribution.cjs.map +1 -1
  250. package/dist/inspection/facts.cjs +4 -4
  251. package/dist/inspection/facts.cjs.map +1 -1
  252. package/dist/inspection/index.cjs +1 -5
  253. package/dist/inspection/index.cjs.map +1 -1
  254. package/dist/inspection/index.d.cts +1 -2
  255. package/dist/inspection/index.d.mts +1 -2
  256. package/dist/inspection/index.d.ts +1 -2
  257. package/dist/inspection/index.js +20 -26
  258. package/dist/inspection/lifecycle.cjs +7 -0
  259. package/dist/inspection/lifecycle.cjs.map +1 -0
  260. package/dist/inspection/lifecycle.d.cts +4 -0
  261. package/dist/inspection/lifecycle.d.mts +4 -0
  262. package/dist/inspection/lifecycle.d.ts +4 -0
  263. package/dist/inspection/lifecycle.js +6 -0
  264. package/dist/inspection/lifecycle.js.map +1 -0
  265. package/dist/inspection/notes.cjs +40 -0
  266. package/dist/inspection/notes.cjs.map +1 -0
  267. package/dist/inspection/notes.d.cts +12 -0
  268. package/dist/inspection/notes.d.mts +12 -0
  269. package/dist/inspection/notes.d.ts +12 -0
  270. package/dist/inspection/notes.js +8 -0
  271. package/dist/inspection/notes.js.map +1 -0
  272. package/dist/inspection/overview.cjs +12 -15
  273. package/dist/inspection/overview.cjs.map +1 -1
  274. package/dist/inspection/overview.d.cts +8 -6
  275. package/dist/inspection/overview.d.mts +8 -6
  276. package/dist/inspection/overview.d.ts +8 -6
  277. package/dist/inspection/planned-attempt.cjs +45 -0
  278. package/dist/inspection/planned-attempt.cjs.map +1 -0
  279. package/dist/inspection/planned-attempt.d.cts +109 -0
  280. package/dist/inspection/planned-attempt.d.mts +109 -0
  281. package/dist/inspection/planned-attempt.d.ts +109 -0
  282. package/dist/inspection/planned-attempt.js +24 -0
  283. package/dist/inspection/planned-attempt.js.map +1 -0
  284. package/dist/inspection/project-result.cjs +5 -5
  285. package/dist/inspection/project-result.cjs.map +1 -1
  286. package/dist/inspection/project-result.d.cts +58 -57
  287. package/dist/inspection/project-result.d.mts +58 -57
  288. package/dist/inspection/project-result.d.ts +58 -57
  289. package/dist/inspection/project-result.js +4 -4
  290. package/dist/inspection/project.cjs +3 -3
  291. package/dist/inspection/project.cjs.map +1 -1
  292. package/dist/inspection/protocol-values.cjs +1 -1
  293. package/dist/inspection/protocol-values.cjs.map +1 -1
  294. package/dist/inspection/protocol-values.d.cts +1 -1
  295. package/dist/inspection/protocol-values.d.mts +1 -1
  296. package/dist/inspection/protocol-values.d.ts +1 -1
  297. package/dist/inspection/protocol.cjs +8 -8
  298. package/dist/inspection/protocol.cjs.map +1 -1
  299. package/dist/inspection/protocol.d.cts +237 -219
  300. package/dist/inspection/protocol.d.mts +237 -219
  301. package/dist/inspection/protocol.d.ts +237 -219
  302. package/dist/inspection/public.cjs +1 -5
  303. package/dist/inspection/public.cjs.map +1 -1
  304. package/dist/inspection/public.d.cts +1 -2
  305. package/dist/inspection/public.d.mts +1 -2
  306. package/dist/inspection/public.d.ts +1 -2
  307. package/dist/inspection/public.js +14 -20
  308. package/dist/inspection/public.mjs +166 -129
  309. package/dist/inspection/query.cjs +1 -1
  310. package/dist/inspection/query.cjs.map +1 -1
  311. package/dist/inspection/results.cjs +61 -52
  312. package/dist/inspection/results.cjs.map +1 -1
  313. package/dist/inspection/results.d.cts +157 -140
  314. package/dist/inspection/results.d.mts +157 -140
  315. package/dist/inspection/results.d.ts +157 -140
  316. package/dist/inspection/select.cjs +33 -28
  317. package/dist/inspection/select.cjs.map +1 -1
  318. package/dist/inspection/source.cjs +1 -1
  319. package/dist/inspection/source.cjs.map +1 -1
  320. package/dist/inspection/sources.cjs +2 -2
  321. package/dist/inspection/sources.cjs.map +1 -1
  322. package/dist/inspection/trace.cjs +9 -8
  323. package/dist/inspection/trace.cjs.map +1 -1
  324. package/dist/inspection/trace.d.cts +4 -4
  325. package/dist/inspection/trace.d.mts +4 -4
  326. package/dist/inspection/trace.d.ts +4 -4
  327. package/dist/loaders/index.cjs +7 -279
  328. package/dist/loaders/index.cjs.map +1 -1
  329. package/dist/loaders/index.d.cts +2 -95
  330. package/dist/loaders/index.d.mts +2 -95
  331. package/dist/loaders/index.d.ts +2 -95
  332. package/dist/loaders/index.js +10 -12
  333. package/dist/loaders/index.mjs +10 -12
  334. package/dist/loaders/runtime.cjs +283 -0
  335. package/dist/loaders/runtime.cjs.map +1 -0
  336. package/dist/loaders/runtime.d.cts +95 -0
  337. package/dist/loaders/runtime.d.mts +95 -0
  338. package/dist/loaders/runtime.d.ts +95 -0
  339. package/dist/loaders/runtime.js +16 -0
  340. package/dist/loaders/runtime.js.map +1 -0
  341. package/dist/migrations/judge-provider.md +6 -6
  342. package/dist/{model-slots.cjs → model-roles.cjs} +12 -12
  343. package/dist/{model-slots.cjs.map → model-roles.cjs.map} +1 -1
  344. package/dist/{model-slots.d.cts → model-roles.d.cts} +10 -10
  345. package/dist/{model-slots.d.mts → model-roles.d.mts} +10 -10
  346. package/dist/{model-slots.d.ts → model-roles.d.ts} +10 -10
  347. package/dist/model-roles.js +14 -0
  348. package/dist/model-roles.js.map +1 -0
  349. package/dist/o11y/adapter-usage-projection.cjs +9 -8
  350. package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
  351. package/dist/o11y/adapter-usage-projection.d.cts +23 -15
  352. package/dist/o11y/adapter-usage-projection.d.mts +23 -15
  353. package/dist/o11y/adapter-usage-projection.d.ts +23 -15
  354. package/dist/o11y/cache-read.cjs +14 -14
  355. package/dist/o11y/cache-read.cjs.map +1 -1
  356. package/dist/o11y/cache-read.d.cts +5 -5
  357. package/dist/o11y/cache-read.d.mts +5 -5
  358. package/dist/o11y/cache-read.d.ts +5 -5
  359. package/dist/o11y/derive.cjs.map +1 -1
  360. package/dist/o11y/derive.d.cts +2 -2
  361. package/dist/o11y/derive.d.mts +2 -2
  362. package/dist/o11y/derive.d.ts +2 -2
  363. package/dist/o11y/eval-usage.cjs +9 -9
  364. package/dist/o11y/eval-usage.cjs.map +1 -1
  365. package/dist/o11y/eval-usage.d.cts +7 -7
  366. package/dist/o11y/eval-usage.d.mts +7 -7
  367. package/dist/o11y/eval-usage.d.ts +7 -7
  368. package/dist/o11y/parsers/bub.cjs +57 -81
  369. package/dist/o11y/parsers/bub.cjs.map +1 -1
  370. package/dist/o11y/parsers/index.cjs.map +1 -1
  371. package/dist/o11y/parsers/index.d.cts +2 -0
  372. package/dist/o11y/parsers/index.d.mts +2 -0
  373. package/dist/o11y/parsers/index.d.ts +2 -0
  374. package/dist/o11y/parsers/opencode.cjs +129 -217
  375. package/dist/o11y/parsers/opencode.cjs.map +1 -1
  376. package/dist/o11y/parsers/opencode.d.cts +2 -5
  377. package/dist/o11y/parsers/opencode.d.mts +2 -5
  378. package/dist/o11y/parsers/opencode.d.ts +2 -5
  379. package/dist/o11y/types.cjs.map +1 -1
  380. package/dist/o11y/types.d.cts +1 -1
  381. package/dist/o11y/types.d.mts +1 -1
  382. package/dist/o11y/types.d.ts +1 -1
  383. package/dist/plugin/contracts.cjs +170 -120
  384. package/dist/plugin/contracts.cjs.map +1 -1
  385. package/dist/plugin/contracts.d.cts +102 -90
  386. package/dist/plugin/contracts.d.mts +102 -90
  387. package/dist/plugin/contracts.d.ts +102 -90
  388. package/dist/plugin/contracts.js +16 -12
  389. package/dist/plugin/index.cjs.map +1 -1
  390. package/dist/plugin/index.d.cts +1 -1
  391. package/dist/plugin/index.d.mts +1 -1
  392. package/dist/plugin/index.d.ts +1 -1
  393. package/dist/plugin/link.cjs +69 -64
  394. package/dist/plugin/link.cjs.map +1 -1
  395. package/dist/plugin/link.d.cts +5 -3
  396. package/dist/plugin/link.d.mts +5 -3
  397. package/dist/plugin/link.d.ts +5 -3
  398. package/dist/plugin/link.js +12 -8
  399. package/dist/record/codec/seal-manifest.d.cts +3 -3
  400. package/dist/record/codec/seal-manifest.d.mts +3 -3
  401. package/dist/record/codec/seal-manifest.d.ts +3 -3
  402. package/dist/record/family/attempt-note/definition.cjs +12 -0
  403. package/dist/record/family/attempt-note/definition.cjs.map +1 -0
  404. package/dist/record/family/attempt-note/definition.d.cts +6 -0
  405. package/dist/record/family/attempt-note/definition.d.mts +6 -0
  406. package/dist/record/family/attempt-note/definition.d.ts +6 -0
  407. package/dist/record/family/attempt-note/definition.js +6 -0
  408. package/dist/record/family/attempt-note/definition.js.map +1 -0
  409. package/dist/record/family/attempt-note/persistence.cjs +10 -0
  410. package/dist/record/family/attempt-note/persistence.cjs.map +1 -0
  411. package/dist/record/family/attempt-note/persistence.d.cts +6 -0
  412. package/dist/record/family/attempt-note/persistence.d.mts +6 -0
  413. package/dist/record/family/attempt-note/persistence.d.ts +6 -0
  414. package/dist/record/family/attempt-note/persistence.js +6 -0
  415. package/dist/record/family/attempt-note/persistence.js.map +1 -0
  416. package/dist/record/family/attempt-note/schema.cjs +20 -0
  417. package/dist/record/family/attempt-note/schema.cjs.map +1 -0
  418. package/dist/record/family/attempt-note/schema.d.cts +21 -0
  419. package/dist/record/family/attempt-note/schema.d.mts +21 -0
  420. package/dist/record/family/attempt-note/schema.d.ts +21 -0
  421. package/dist/record/family/attempt-note/schema.js +10 -0
  422. package/dist/record/family/attempt-note/schema.js.map +1 -0
  423. package/dist/record/family/catalog.cjs +32 -29
  424. package/dist/record/family/catalog.cjs.map +1 -1
  425. package/dist/record/family/catalog.d.cts +7 -2
  426. package/dist/record/family/catalog.d.mts +7 -2
  427. package/dist/record/family/catalog.d.ts +7 -2
  428. package/dist/record/family/current.cjs +48 -45
  429. package/dist/record/family/current.cjs.map +1 -1
  430. package/dist/record/family/current.d.cts +15 -0
  431. package/dist/record/family/current.d.mts +15 -0
  432. package/dist/record/family/current.d.ts +15 -0
  433. package/dist/record/model/index.js +66 -64
  434. package/dist/record/model/run-context.cjs +9 -3
  435. package/dist/record/model/run-context.cjs.map +1 -1
  436. package/dist/record/model/run-context.d.cts +9 -2
  437. package/dist/record/model/run-context.d.mts +9 -2
  438. package/dist/record/model/run-context.d.ts +9 -2
  439. package/dist/record/model/run-context.js +8 -6
  440. package/dist/record/model/seal-manifest.d.cts +1 -1
  441. package/dist/record/model/seal-manifest.d.mts +1 -1
  442. package/dist/record/model/seal-manifest.d.ts +1 -1
  443. package/dist/run/cli/contribution.cjs +6 -32
  444. package/dist/run/cli/contribution.cjs.map +1 -1
  445. package/dist/run/host/runtime.cjs +1 -1
  446. package/dist/run/host/runtime.cjs.map +1 -1
  447. package/dist/run/storage/sqlite.cjs +7 -7
  448. package/dist/run/storage/sqlite.cjs.map +1 -1
  449. package/dist/runner/adapter-usage.cjs +5 -3
  450. package/dist/runner/adapter-usage.cjs.map +1 -1
  451. package/dist/runner/adapter-usage.d.cts +2 -2
  452. package/dist/runner/adapter-usage.d.mts +2 -2
  453. package/dist/runner/adapter-usage.d.ts +2 -2
  454. package/dist/runner/adoption.cjs +9 -12
  455. package/dist/runner/adoption.cjs.map +1 -1
  456. package/dist/runner/attempt-notes.cjs +8 -0
  457. package/dist/runner/attempt-notes.cjs.map +1 -0
  458. package/dist/runner/attempt-notes.d.cts +4 -0
  459. package/dist/runner/attempt-notes.d.mts +4 -0
  460. package/dist/runner/attempt-notes.d.ts +4 -0
  461. package/dist/runner/attempt-notes.js +8 -0
  462. package/dist/runner/attempt-notes.js.map +1 -0
  463. package/dist/runner/attempt.cjs +61 -73
  464. package/dist/runner/attempt.cjs.map +1 -1
  465. package/dist/runner/attempt.d.cts +3 -3
  466. package/dist/runner/attempt.d.mts +3 -3
  467. package/dist/runner/attempt.d.ts +3 -3
  468. package/dist/runner/command-plan.cjs +21 -26
  469. package/dist/runner/command-plan.cjs.map +1 -1
  470. package/dist/runner/command-plan.d.cts +4 -4
  471. package/dist/runner/command-plan.d.mts +4 -4
  472. package/dist/runner/command-plan.d.ts +4 -4
  473. package/dist/runner/command-plan.js +4 -4
  474. package/dist/runner/config-identity.cjs.map +1 -1
  475. package/dist/runner/config-identity.d.cts +2 -2
  476. package/dist/runner/config-identity.d.mts +2 -2
  477. package/dist/runner/config-identity.d.ts +2 -2
  478. package/dist/runner/discover.cjs +6 -6
  479. package/dist/runner/discover.cjs.map +1 -1
  480. package/dist/runner/eval-selection.cjs +2 -2
  481. package/dist/runner/eval-selection.cjs.map +1 -1
  482. package/dist/runner/eval-selection.d.cts +2 -2
  483. package/dist/runner/eval-selection.d.mts +2 -2
  484. package/dist/runner/eval-selection.d.ts +2 -2
  485. package/dist/runner/feedback/human.cjs +1 -1
  486. package/dist/runner/feedback/human.cjs.map +1 -1
  487. package/dist/runner/feedback/json.cjs +4 -2
  488. package/dist/runner/feedback/json.cjs.map +1 -1
  489. package/dist/runner/feedback/json.d.cts +1 -1
  490. package/dist/runner/feedback/json.d.mts +1 -1
  491. package/dist/runner/feedback/json.d.ts +1 -1
  492. package/dist/runner/feedback/sink.cjs +1 -1
  493. package/dist/runner/feedback/sink.cjs.map +1 -1
  494. package/dist/runner/feedback/sink.d.cts +1 -1
  495. package/dist/runner/feedback/sink.d.mts +1 -1
  496. package/dist/runner/feedback/sink.d.ts +1 -1
  497. package/dist/runner/fingerprint.cjs +1 -1
  498. package/dist/runner/fingerprint.cjs.map +1 -1
  499. package/dist/runner/project-target.cjs.map +1 -1
  500. package/dist/runner/project-target.d.cts +2 -2
  501. package/dist/runner/project-target.d.mts +2 -2
  502. package/dist/runner/project-target.d.ts +2 -2
  503. package/dist/runner/record/attachments.cjs +2 -2
  504. package/dist/runner/record/attachments.cjs.map +1 -1
  505. package/dist/runner/record/planning.cjs +8 -2
  506. package/dist/runner/record/planning.cjs.map +1 -1
  507. package/dist/runner/record.cjs +2 -0
  508. package/dist/runner/record.cjs.map +1 -1
  509. package/dist/runner/report.cjs +3 -3
  510. package/dist/runner/report.cjs.map +1 -1
  511. package/dist/runner/report.d.cts +1 -1
  512. package/dist/runner/report.d.mts +1 -1
  513. package/dist/runner/report.d.ts +1 -1
  514. package/dist/runner/reuse-plan.cjs +2 -2
  515. package/dist/runner/reuse-plan.cjs.map +1 -1
  516. package/dist/runner/run.cjs +10 -45
  517. package/dist/runner/run.cjs.map +1 -1
  518. package/dist/runner/sandbox-pool.cjs +1 -2
  519. package/dist/runner/sandbox-pool.cjs.map +1 -1
  520. package/dist/runner/setup-prefix-preparation.cjs +1 -1
  521. package/dist/runner/setup-prefix-preparation.cjs.map +1 -1
  522. package/dist/runner/teardown-registry.cjs +2 -2
  523. package/dist/runner/teardown-registry.cjs.map +1 -1
  524. package/dist/runner/teardown-registry.d.cts +1 -1
  525. package/dist/runner/teardown-registry.d.mts +1 -1
  526. package/dist/runner/teardown-registry.d.ts +1 -1
  527. package/dist/runner/types.cjs +4 -4
  528. package/dist/runner/types.cjs.map +1 -1
  529. package/dist/runner/types.d.cts +64 -93
  530. package/dist/runner/types.d.mts +64 -93
  531. package/dist/runner/types.d.ts +64 -93
  532. package/dist/runner/types.js +2 -2
  533. package/dist/sandbox/action.cjs +1 -1
  534. package/dist/sandbox/action.cjs.map +1 -1
  535. package/dist/sandbox/cli/contribution.cjs +17 -14
  536. package/dist/sandbox/cli/contribution.cjs.map +1 -1
  537. package/dist/sandbox/cli/contribution.d.cts +1 -1
  538. package/dist/sandbox/cli/contribution.d.mts +1 -1
  539. package/dist/sandbox/cli/contribution.d.ts +1 -1
  540. package/dist/sandbox/commands.cjs +1 -1
  541. package/dist/sandbox/commands.cjs.map +1 -1
  542. package/dist/sandbox/commands.d.cts +1 -1
  543. package/dist/sandbox/commands.d.mts +1 -1
  544. package/dist/sandbox/commands.d.ts +1 -1
  545. package/dist/sandbox/compose.cjs +2 -2
  546. package/dist/sandbox/compose.cjs.map +1 -1
  547. package/dist/sandbox/docker-profile/registry.cjs +5 -9
  548. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  549. package/dist/sandbox/docker-profile/registry.d.cts +0 -3
  550. package/dist/sandbox/docker-profile/registry.d.mts +0 -3
  551. package/dist/sandbox/docker-profile/registry.d.ts +0 -3
  552. package/dist/sandbox/docker-profile/registry.js +6 -12
  553. package/dist/sandbox/docker-profile/runtime.cjs +1 -1
  554. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  555. package/dist/sandbox/docker-profile/schema.cjs +12 -16
  556. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  557. package/dist/sandbox/docker-profile/schema.d.cts +2 -6
  558. package/dist/sandbox/docker-profile/schema.d.mts +2 -6
  559. package/dist/sandbox/docker-profile/schema.d.ts +2 -6
  560. package/dist/sandbox/docker-profile/schema.js +24 -32
  561. package/dist/sandbox/incus.cjs +2 -2
  562. package/dist/sandbox/incus.cjs.map +1 -1
  563. package/dist/sandbox/index.cjs +4 -35
  564. package/dist/sandbox/index.cjs.map +1 -1
  565. package/dist/sandbox/index.d.cts +4 -8
  566. package/dist/sandbox/index.d.mts +4 -8
  567. package/dist/sandbox/index.d.ts +4 -8
  568. package/dist/sandbox/index.js +116 -172
  569. package/dist/sandbox/index.mjs +116 -172
  570. package/dist/sandbox/layer.cjs +3 -3
  571. package/dist/sandbox/layer.cjs.map +1 -1
  572. package/dist/sandbox/link.cjs +5 -0
  573. package/dist/sandbox/link.cjs.map +1 -1
  574. package/dist/sandbox/link.d.cts +3 -0
  575. package/dist/sandbox/link.d.mts +3 -0
  576. package/dist/sandbox/link.d.ts +3 -0
  577. package/dist/sandbox/runtime.cjs +9 -4
  578. package/dist/sandbox/runtime.cjs.map +1 -1
  579. package/dist/shared/failure-class.cjs +5 -5
  580. package/dist/shared/failure-class.cjs.map +1 -1
  581. package/dist/shared/failure-class.d.cts +4 -10
  582. package/dist/shared/failure-class.d.mts +4 -10
  583. package/dist/shared/failure-class.d.ts +4 -10
  584. package/dist/shared/types.cjs.map +1 -1
  585. package/dist/shared/types.d.cts +1 -1
  586. package/dist/shared/types.d.mts +1 -1
  587. package/dist/shared/types.d.ts +1 -1
  588. package/dist/show/contribution.cjs +17 -2
  589. package/dist/show/contribution.cjs.map +1 -1
  590. package/dist/show/contribution.d.cts +14 -0
  591. package/dist/show/contribution.d.mts +14 -0
  592. package/dist/show/contribution.d.ts +14 -0
  593. package/dist/show/model.cjs +8 -5
  594. package/dist/show/model.cjs.map +1 -1
  595. package/dist/show/model.d.cts +11 -8
  596. package/dist/show/model.d.mts +11 -8
  597. package/dist/show/model.d.ts +11 -8
  598. package/dist/show/render.cjs +34 -22
  599. package/dist/show/render.cjs.map +1 -1
  600. package/dist/sources/projector.cjs +1 -1
  601. package/dist/sources/projector.cjs.map +1 -1
  602. package/dist/types.cjs +1 -1
  603. package/dist/types.cjs.map +1 -1
  604. package/dist/types.d.cts +1 -1
  605. package/dist/types.d.mts +1 -1
  606. package/dist/types.d.ts +1 -1
  607. package/dist/types.js +2 -2
  608. package/dist/view/app-dist/.vite/manifest.json +2 -2
  609. package/dist/view/app-dist/assets/{index-B3ijZRph.js → index-CxrOUvHC.js} +17 -17
  610. package/dist/view/app-dist/assets/{quality-cost-scatter-B--DfJ9s.js → quality-cost-scatter-B6Aiss7x.js} +1 -1
  611. package/dist/view/app-dist/index.html +1 -1
  612. package/dist/view/cli/contribution.cjs +1 -1
  613. package/dist/view/cli/contribution.cjs.map +1 -1
  614. package/dist/view/function-runtime.mjs +318 -121
  615. package/dist/view/http-protocol.d.cts +1 -1
  616. package/dist/view/http-protocol.d.mts +1 -1
  617. package/dist/view/http-protocol.d.ts +1 -1
  618. package/dist/view/inspection-host.cjs +2 -2
  619. package/dist/view/inspection-host.cjs.map +1 -1
  620. package/dist/view/inspection-host.d.cts +349 -331
  621. package/dist/view/inspection-host.d.mts +349 -331
  622. package/dist/view/inspection-host.d.ts +349 -331
  623. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +6 -6
  624. package/docs-site/zh/examples/integrations/claude-sdk.mdx +5 -5
  625. package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
  626. package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
  627. package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
  628. package/docs-site/zh/explanation/adapter.mdx +6 -6
  629. package/docs-site/zh/explanation/assert.mdx +7 -7
  630. package/docs-site/zh/explanation/drive.mdx +4 -4
  631. package/docs-site/zh/explanation/hitl.mdx +2 -2
  632. package/docs-site/zh/explanation/judge.mdx +2 -2
  633. package/docs-site/zh/introduction.mdx +2 -2
  634. package/docs-site/zh/reference/builtin-agents.mdx +46 -49
  635. package/docs-site/zh/reference/cli.mdx +16 -14
  636. package/docs-site/zh/reference/define-agent.mdx +19 -19
  637. package/docs-site/zh/reference/define-config.mdx +7 -15
  638. package/docs-site/zh/reference/define-eval.mdx +20 -14
  639. package/docs-site/zh/reference/define-experiment.mdx +18 -39
  640. package/docs-site/zh/reference/events.mdx +1 -1
  641. package/docs-site/zh/reference/expect.mdx +21 -0
  642. package/docs-site/zh/reference/official-adapters.mdx +12 -5
  643. package/docs-site/zh/troubleshooting/debugging.mdx +2 -2
  644. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +1 -1
  645. package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
  646. package/docs-site/zh/tutorials/authoring.mdx +2 -2
  647. package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
  648. package/docs-site/zh/tutorials/concurrency.mdx +8 -8
  649. package/docs-site/zh/tutorials/configuration.mdx +5 -5
  650. package/docs-site/zh/tutorials/control-run-cost.mdx +19 -19
  651. package/docs-site/zh/tutorials/eval-groups.mdx +1 -1
  652. package/docs-site/zh/tutorials/evaluation-kinds.mdx +5 -5
  653. package/docs-site/zh/tutorials/experiment-services.mdx +32 -32
  654. package/docs-site/zh/tutorials/handle-execution-failures.mdx +2 -28
  655. package/docs-site/zh/tutorials/plugins.mdx +49 -143
  656. package/docs-site/zh/tutorials/sandbox-agent.mdx +1 -1
  657. package/docs-site/zh/tutorials/sandbox-reuse.mdx +7 -7
  658. package/docs-site/zh/tutorials/upgrade-0-18.mdx +1 -1
  659. package/docs-site/zh/tutorials/upgrade-0-19.mdx +121 -0
  660. package/docs-site/zh/tutorials/upgrade-0-20.mdx +12 -0
  661. package/docs-site/zh/tutorials/verify-judge.mdx +2 -2
  662. package/docs-site/zh/tutorials/viewing-results.mdx +2 -2
  663. package/docs-site/zh/tutorials/write-experiment.mdx +1 -1
  664. package/docs-site/zh/tutorials/write-send.mdx +13 -13
  665. package/package.json +1 -1
  666. package/dist/agents/effect-runtime.cjs.map +0 -1
  667. package/dist/agents/effect-runtime.d.cts +0 -29
  668. package/dist/agents/effect-runtime.d.mts +0 -29
  669. package/dist/agents/effect-runtime.d.ts +0 -29
  670. package/dist/agents/effect-runtime.js +0 -16
  671. package/dist/agents/effect-runtime.js.map +0 -1
  672. package/dist/agents/session-slot.cjs.map +0 -1
  673. package/dist/agents/session-slot.d.cts +0 -12
  674. package/dist/agents/session-slot.d.mts +0 -12
  675. package/dist/agents/session-slot.d.ts +0 -12
  676. package/dist/agents/session-slot.js +0 -6
  677. package/dist/agents/session-slot.js.map +0 -1
  678. package/dist/model-slots.js +0 -14
  679. package/dist/model-slots.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"contribution.js","sourceRoot":"","sources":["contribution.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect } from \"effect\";\nimport { CliArguments, CliInvocationFacts, CliOutput, CliPath, type CliOptionDefinition, type CliParsedTokens, } from \"../../cli/application.ts\";\nimport { CliFeatureError, type CliCommandContribution } from \"../../cli/contribution.ts\";\nimport { ProjectConfiguration } from \"../../cli/project-configuration.ts\";\nimport type { ProjectStateDatabase } from \"../../record/sqlite/project-state-database.ts\";\nimport { runSandboxCommandEffect, type SandboxCommandFacts, type SandboxCommandFlags, } from \"../cli-commands.ts\";\nimport { doctorExitCode, doctorIncusProvider, renderIncusDoctorReport, } from \"../incus.ts\";\n/** Sandbox owns this schema: its flags never enter the core CLI parser. */\nexport const SANDBOX_CLI_OPTIONS = Object.freeze({\n all: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Destroy every kept sandbox.\", visibility: \"public\" }) }),\n window: Object.freeze({ type: \"string\", help: Object.freeze({ summary: \"Select one recorded change window.\", visibility: \"public\" }) }),\n path: Object.freeze({ type: \"string\", help: Object.freeze({ summary: \"Select one path in a sandbox diff.\", visibility: \"public\" }) }),\n \"leave-running\": Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Keep a sandbox alive after leaving its shell.\", visibility: \"public\" }) }),\n record: Object.freeze({ type: \"string\", help: Object.freeze({ summary: \"Use a specific NiceEval record root.\", visibility: \"public\" }) }),\n orphans: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Inspect unregistered sandbox instances left by terminated runs.\", visibility: \"public\" }) }),\n force: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Prune unverified orphan candidates too.\", visibility: \"public\" }) }),\n development: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Diagnose the isolated Incus development domain instead of reference.\", visibility: \"public\" }) }),\n help: Object.freeze({ type: \"boolean\", short: \"h\", help: Object.freeze({ summary: \"Show Sandbox command help.\", visibility: \"public\" }) }),\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nconst SANDBOX_HELP = `niceeval sandbox — inspect and manage kept sandboxes\n\nUsage:\n niceeval sandbox list [--orphans] [--record <record-root>]\n niceeval sandbox enter <id> [--leave-running] [--record <record-root>]\n niceeval sandbox history <id> [--record <record-root>]\n niceeval sandbox diff <id> [--window <window>] [--path <file>] [--record <record-root>]\n niceeval sandbox stop <id...> [--all] [--record <record-root>]\n niceeval sandbox prune [--force] [--record <record-root>]\n niceeval sandbox provider doctor incus [--development]\n\nCommands:\n list list kept sandboxes or inspect orphan candidates\n enter open a shell in a kept sandbox\n history show the kept sandbox's change windows\n diff print patches from one or all change windows\n stop destroy kept sandboxes and remove their registry entries\n prune destroy orphaned sandbox instances\n provider diagnose a sandbox provider (currently incus)\n`;\nconst PROVIDER_DOCTOR_HELP = `niceeval sandbox provider doctor — diagnose a sandbox provider\n\nUsage:\n niceeval sandbox provider doctor incus [--development]\n\nDefault reports the Incus reference domain. --development reports the isolated\ndevelopment domain separately. Doctor is fail closed and read-only; it never\ncreates, pulls, imports, or destroys allocations.\n`;\nconst SANDBOX_SUBCOMMANDS = [\"list\", \"enter\", \"history\", \"diff\", \"stop\", \"prune\", \"provider\"] as const;\ntype SandboxSubcommand = (typeof SANDBOX_SUBCOMMANDS)[number];\ninterface ParsedSandboxArgs {\n readonly positionals: readonly string[];\n readonly providedOptions: readonly string[];\n readonly flags: SandboxCommandFlags;\n readonly help: boolean;\n readonly development: boolean;\n}\ntype SandboxCliError = CliFeatureError;\nfunction sandboxFailure(operation: string, cause: unknown, exitCode = 1): SandboxCliError {\n return new CliFeatureError({ feature: \"sandbox\", operation, cause, exitCode });\n}\nfunction isSandboxSubcommand(value: string | undefined): value is SandboxSubcommand {\n return value !== undefined && (SANDBOX_SUBCOMMANDS as readonly string[]).includes(value);\n}\nfunction parseSandboxArgs(argv: readonly string[], parse: (argv: readonly string[], options: Readonly<Record<string, CliOptionDefinition>>) => CliParsedTokens): ParsedSandboxArgs {\n const parsed = parse(argv, SANDBOX_CLI_OPTIONS);\n return Object.freeze({\n positionals: Object.freeze([...parsed.positionals]),\n providedOptions: Object.freeze(parsed.tokens\n .filter((token) => token.kind === \"option\")\n .map((token) => token.name)),\n help: parsed.values.help === true,\n development: parsed.values.development === true,\n flags: Object.freeze({\n all: parsed.values.all === true,\n ...(typeof parsed.values.window === \"string\" ? { window: parsed.values.window } : {}),\n ...(typeof parsed.values.path === \"string\" ? { path: parsed.values.path } : {}),\n leaveRunning: parsed.values[\"leave-running\"] === true,\n ...(typeof parsed.values.record === \"string\" ? { record: parsed.values.record } : {}),\n orphans: parsed.values.orphans === true,\n force: parsed.values.force === true,\n }),\n });\n}\nconst SANDBOX_SUBCOMMAND_OPTIONS: Readonly<Record<SandboxSubcommand, readonly string[]>> = Object.freeze({\n list: Object.freeze([\"orphans\", \"record\", \"help\"]),\n enter: Object.freeze([\"leave-running\", \"record\", \"help\"]),\n history: Object.freeze([\"record\", \"help\"]),\n diff: Object.freeze([\"window\", \"path\", \"record\", \"help\"]),\n stop: Object.freeze([\"all\", \"record\", \"help\"]),\n prune: Object.freeze([\"force\", \"record\", \"help\"]),\n provider: Object.freeze([\"development\", \"help\"]),\n});\nfunction write(channel: \"stdout\" | \"stderr\", text: string): Effect.Effect<void, SandboxCliError, CliOutput> {\n return Effect.flatMap(CliOutput, (output) => channel === \"stdout\" ? output.writeStdout(text) : output.writeStderr(text)).pipe(Effect.mapError((cause) => sandboxFailure(`write ${channel}`, cause)));\n}\nfunction unknownSandboxCommand(command: string | undefined): string {\n return command === undefined\n ? `usage: niceeval sandbox <${SANDBOX_SUBCOMMANDS.join(\"|\")}> …\\n`\n : `unknown sandbox command ${JSON.stringify(command)}\\n${SANDBOX_HELP}`;\n}\nfunction runProviderDoctor(parsed: ParsedSandboxArgs): Effect.Effect<number, SandboxCliError, CliOutput> {\n return Effect.gen(function* () {\n const [, action, provider] = parsed.positionals;\n if (action === undefined || action === \"help\") {\n yield* write(\"stdout\", PROVIDER_DOCTOR_HELP);\n return action === undefined ? 1 : 0;\n }\n if (action !== \"doctor\") {\n yield* write(\"stderr\", `unknown sandbox provider command ${JSON.stringify(action)}\\n${PROVIDER_DOCTOR_HELP}`);\n return 1;\n }\n if (provider === undefined) {\n yield* write(\"stderr\", `usage: niceeval sandbox provider doctor <provider>\\n${PROVIDER_DOCTOR_HELP}`);\n return 1;\n }\n if (provider !== \"incus\") {\n yield* write(\"stderr\", `sandbox provider doctor does not support ${JSON.stringify(provider)}. Currently only incus is implemented.\\n`);\n return 1;\n }\n if (parsed.positionals.length > 3) {\n yield* write(\"stderr\", `niceeval sandbox provider doctor incus does not accept extra arguments.\\n${PROVIDER_DOCTOR_HELP}`);\n return 1;\n }\n const report = yield* Effect.tryPromise({\n try: () => doctorIncusProvider({\n domain: parsed.development ? \"development\" : \"reference\",\n }),\n catch: (cause) => sandboxFailure(\"doctor incus provider\", cause),\n });\n yield* write(\"stdout\", renderIncusDoctorReport(report));\n return doctorExitCode(report);\n });\n}\n/**\n * Feature-owned root contribution. Syntax outcomes deliberately finish before\n * credential preparation, so help, version, empty input, and unknown input do\n * not load .env, config, or a provider SDK.\n */\nexport const sandboxCliCommand: CliCommandContribution<CliArguments | CliInvocationFacts | CliOutput | CliPath | ProjectConfiguration | ProjectStateDatabase, SandboxCliError> = Object.freeze({\n name: \"sandbox\",\n summary: \"inspect, enter, and clean up kept sandboxes\",\n options: SANDBOX_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const argumentsService = yield* CliArguments;\n const parsed = yield* Effect.try({\n try: () => parseSandboxArgs(argv, argumentsService.parse),\n catch: (cause) => sandboxFailure(\"parse sandbox command\", cause, 1),\n });\n const subcommand = parsed.positionals[0];\n if (subcommand === undefined && parsed.help) {\n yield* write(\"stdout\", SANDBOX_HELP);\n return 0;\n }\n if (!isSandboxSubcommand(subcommand)) {\n yield* write(\"stderr\", unknownSandboxCommand(subcommand));\n return 1;\n }\n const unsupportedOption = parsed.providedOptions.find((name) => !SANDBOX_SUBCOMMAND_OPTIONS[subcommand].includes(name));\n if (unsupportedOption !== undefined) {\n yield* write(\"stderr\", `niceeval sandbox ${subcommand} does not accept --${unsupportedOption}.\\n`);\n return 1;\n }\n if (parsed.help) {\n yield* write(\"stdout\", subcommand === \"provider\" ? PROVIDER_DOCTOR_HELP : SANDBOX_HELP);\n return 0;\n }\n if (subcommand === \"provider\") {\n return yield* runProviderDoctor(parsed);\n }\n const invocation = yield* CliInvocationFacts;\n const facts = yield* invocation.facts.pipe(Effect.mapError((cause) => sandboxFailure(\"read invocation facts\", cause)));\n const configuration = yield* ProjectConfiguration;\n yield* configuration.prepare(facts.cwd).pipe(Effect.mapError((cause) => sandboxFailure(\"prepare project credentials\", cause)));\n const path = yield* CliPath;\n const record = parsed.flags.record === undefined ? undefined : path.resolve(facts.cwd, parsed.flags.record);\n const commandFacts: SandboxCommandFacts = Object.freeze({\n leaseHolder: `${facts.pid}@${facts.hostname}`,\n ...(facts.noColor === undefined ? {} : { noColor: facts.noColor }),\n stdout: facts.stdout,\n });\n const output = yield* CliOutput;\n return yield* runSandboxCommandEffect(facts.cwd, [...parsed.positionals], record === undefined ? parsed.flags : { ...parsed.flags, record }, { out: output.writeStdoutSync, err: output.writeStderrSync }, commandFacts).pipe(Effect.mapError((cause) => sandboxFailure(\"run sandbox command\", cause)));\n }),\n});\n"]}
1
+ {"version":3,"file":"contribution.js","sourceRoot":"","sources":["contribution.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,6DAAiJ;AACjJ,+DAAyF;AACzF,iFAA0E;AAE1E,wDAAkH;AAClH,0CAA4F;AAC5F,2EAA2E;AAC9D,QAAA,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9H,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACvI,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACrI,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,+CAA+C,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC5J,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAChJ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,iEAAiE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACtK,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC5I,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,sEAAsE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC/K,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;CACrF,CAAC,CAAC;AAC3D,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;AACF,MAAM,oBAAoB,GAAG;;;;;;;;CAQ5B,CAAC;AACF,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AAUvG,SAAS,cAAc,CAAC,SAAiB,EAAE,KAAc,EAAE,QAAQ,GAAG,CAAC;IACnE,OAAO,IAAI,iCAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAyB;IAClD,OAAO,KAAK,KAAK,SAAS,IAAK,mBAAyC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7F,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAuB,EAAE,KAA2G;IAC1J,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,2BAAmB,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACnD,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;aACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC1C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;QACjC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI;QAC/C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACjB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI;YAC/B,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,IAAI;YACrD,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;YACvC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;SACtC,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,MAAM,0BAA0B,GAA2D,MAAM,CAAC,MAAM,CAAC;IACrG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;CACnD,CAAC,CAAC;AACH,SAAS,KAAK,CAAC,OAA4B,EAAE,IAAY;IACrD,OAAO,eAAM,CAAC,OAAO,CAAC,0BAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACzM,CAAC;AACD,SAAS,qBAAqB,CAAC,OAA2B;IACtD,OAAO,OAAO,KAAK,SAAS;QACxB,CAAC,CAAC,4BAA4B,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO;QAClE,CAAC,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,YAAY,EAAE,CAAC;AAChF,CAAC;AACD,SAAS,iBAAiB,CAAC,MAAyB;IAChD,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5C,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC7C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,oBAAoB,EAAE,CAAC,CAAC;YAC9G,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,uDAAuD,oBAAoB,EAAE,CAAC,CAAC;YACtG,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,4CAA4C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;YACvI,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,4EAA4E,oBAAoB,EAAE,CAAC,CAAC;YAC3H,OAAO,CAAC,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;YACpC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,8BAAmB,EAAC;gBAC3B,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;aAC3D,CAAC;YACF,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,uBAAuB,EAAE,KAAK,CAAC;SACnE,CAAC,CAAC;QACH,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAC,CAAC;QACxD,OAAO,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC;AACD;;;;GAIG;AACU,QAAA,iBAAiB,GAAmJ,MAAM,CAAC,MAAM,CAAC;IAC3L,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,6CAA6C;IACtD,OAAO,EAAE,2BAAmB;IAC5B,GAAG,EAAE,CAAC,IAAuB,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClD,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,6BAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC;YAC7B,GAAG,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC;YACzD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;SACtE,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACrC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC;QACb,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACxH,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,UAAU,sBAAsB,iBAAiB,KAAK,CAAC,CAAC;YACnG,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACxF,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,mCAAkB,CAAC;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACvH,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,+CAAoB,CAAC;QAClD,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/H,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,wBAAO,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5G,MAAM,YAAY,GAAwB,MAAM,CAAC,MAAM,CAAC;YACpD,WAAW,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;YAC7C,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAClE,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,0BAAS,CAAC;QAChC,OAAO,KAAK,CAAC,CAAC,IAAA,yCAAuB,EAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5S,CAAC,CAAC;CACL,CAAC,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport { CliArguments, CliInvocationFacts, CliOutput, CliPath, type CliOptionDefinition, type CliParsedTokens, } from \"../../cli/application.ts\";\nimport { CliFeatureError, type CliCommandContribution } from \"../../cli/contribution.ts\";\nimport { ProjectConfiguration } from \"../../cli/project-configuration.ts\";\nimport type { ProjectStateDatabase } from \"../../record/sqlite/project-state-database.ts\";\nimport { runSandboxCommandEffect, type SandboxCommandFacts, type SandboxCommandFlags, } from \"../cli-commands.ts\";\nimport { doctorExitCode, doctorIncusProvider, renderIncusDoctorReport, } from \"../incus.ts\";\n/** Sandbox owns this schema: its flags never enter the core CLI parser. */\nexport const SANDBOX_CLI_OPTIONS = Object.freeze({\n all: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Destroy every kept sandbox.\", visibility: \"public\" }) }),\n window: Object.freeze({ type: \"string\", help: Object.freeze({ summary: \"Select one recorded change window.\", visibility: \"public\" }) }),\n path: Object.freeze({ type: \"string\", help: Object.freeze({ summary: \"Select one path in a sandbox diff.\", visibility: \"public\" }) }),\n \"leave-running\": Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Keep a sandbox alive after leaving its shell.\", visibility: \"public\" }) }),\n \"record-root\": Object.freeze({ type: \"string\", help: Object.freeze({ summary: \"Use a specific NiceEval record root.\", visibility: \"public\" }) }),\n orphans: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Inspect unregistered sandbox instances left by terminated runs.\", visibility: \"public\" }) }),\n force: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Prune unverified orphan candidates too.\", visibility: \"public\" }) }),\n development: Object.freeze({ type: \"boolean\", help: Object.freeze({ summary: \"Diagnose the isolated Incus development domain instead of reference.\", visibility: \"public\" }) }),\n help: Object.freeze({ type: \"boolean\", short: \"h\", help: Object.freeze({ summary: \"Show Sandbox command help.\", visibility: \"public\" }) }),\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nconst SANDBOX_HELP = `niceeval sandbox — inspect and manage kept sandboxes\n\nUsage:\n niceeval sandbox list [--orphans] [--record-root <record-root>]\n niceeval sandbox enter <id> [--leave-running] [--record-root <record-root>]\n niceeval sandbox history <id> [--record-root <record-root>]\n niceeval sandbox diff <id> [--window <window>] [--path <file>] [--record-root <record-root>]\n niceeval sandbox stop <id...> [--all] [--record-root <record-root>]\n niceeval sandbox prune [--force] [--record-root <record-root>]\n niceeval sandbox provider doctor incus [--development]\n\nCommands:\n list list kept sandboxes or inspect orphan candidates\n enter open a shell in a kept sandbox\n history show the kept sandbox's change windows\n diff print patches from one or all change windows\n stop destroy kept sandboxes and remove their registry entries\n prune destroy orphaned sandbox instances\n provider diagnose a sandbox provider (currently incus)\n`;\nconst PROVIDER_DOCTOR_HELP = `niceeval sandbox provider doctor — diagnose a sandbox provider\n\nUsage:\n niceeval sandbox provider doctor incus [--development]\n\nDefault reports the Incus reference domain. --development reports the isolated\ndevelopment domain separately. Doctor is fail closed and read-only; it never\ncreates, pulls, imports, or destroys allocations.\n`;\nconst SANDBOX_SUBCOMMANDS = [\"list\", \"enter\", \"history\", \"diff\", \"stop\", \"prune\", \"provider\"] as const;\ntype SandboxSubcommand = (typeof SANDBOX_SUBCOMMANDS)[number];\ninterface ParsedSandboxArgs {\n readonly positionals: readonly string[];\n readonly providedOptions: readonly string[];\n readonly flags: SandboxCommandFlags;\n readonly help: boolean;\n readonly development: boolean;\n}\ntype SandboxCliError = CliFeatureError;\nfunction sandboxFailure(operation: string, cause: unknown, exitCode = 1): SandboxCliError {\n return new CliFeatureError({ feature: \"sandbox\", operation, cause, exitCode });\n}\nfunction isSandboxSubcommand(value: string | undefined): value is SandboxSubcommand {\n return value !== undefined && (SANDBOX_SUBCOMMANDS as readonly string[]).includes(value);\n}\nfunction parseSandboxArgs(argv: readonly string[], parse: (argv: readonly string[], options: Readonly<Record<string, CliOptionDefinition>>) => CliParsedTokens): ParsedSandboxArgs {\n if (argv.some((token) => token === \"--record\" || token.startsWith(\"--record=\"))) {\n throw new TypeError(\"sandbox --record is no longer supported. Use --record-root.\");\n }\n const parsed = parse(argv, SANDBOX_CLI_OPTIONS);\n return Object.freeze({\n positionals: Object.freeze([...parsed.positionals]),\n providedOptions: Object.freeze(parsed.tokens\n .filter((token) => token.kind === \"option\")\n .map((token) => token.name)),\n help: parsed.values.help === true,\n development: parsed.values.development === true,\n flags: Object.freeze({\n all: parsed.values.all === true,\n ...(typeof parsed.values.window === \"string\" ? { window: parsed.values.window } : {}),\n ...(typeof parsed.values.path === \"string\" ? { path: parsed.values.path } : {}),\n leaveRunning: parsed.values[\"leave-running\"] === true,\n ...(typeof parsed.values[\"record-root\"] === \"string\" ? { record: parsed.values[\"record-root\"] } : {}),\n orphans: parsed.values.orphans === true,\n force: parsed.values.force === true,\n }),\n });\n}\nconst SANDBOX_SUBCOMMAND_OPTIONS: Readonly<Record<SandboxSubcommand, readonly string[]>> = Object.freeze({\n list: Object.freeze([\"orphans\", \"record-root\", \"help\"]),\n enter: Object.freeze([\"leave-running\", \"record-root\", \"help\"]),\n history: Object.freeze([\"record-root\", \"help\"]),\n diff: Object.freeze([\"window\", \"path\", \"record-root\", \"help\"]),\n stop: Object.freeze([\"all\", \"record-root\", \"help\"]),\n prune: Object.freeze([\"force\", \"record-root\", \"help\"]),\n provider: Object.freeze([\"development\", \"help\"]),\n});\nfunction write(channel: \"stdout\" | \"stderr\", text: string): Effect.Effect<void, SandboxCliError, CliOutput> {\n return Effect.flatMap(CliOutput, (output) => channel === \"stdout\" ? output.writeStdout(text) : output.writeStderr(text)).pipe(Effect.mapError((cause) => sandboxFailure(`write ${channel}`, cause)));\n}\nfunction unknownSandboxCommand(command: string | undefined): string {\n return command === undefined\n ? `usage: niceeval sandbox <${SANDBOX_SUBCOMMANDS.join(\"|\")}> …\\n`\n : `unknown sandbox command ${JSON.stringify(command)}\\n${SANDBOX_HELP}`;\n}\nfunction runProviderDoctor(parsed: ParsedSandboxArgs): Effect.Effect<number, SandboxCliError, CliOutput> {\n return Effect.gen(function* () {\n const [, action, provider] = parsed.positionals;\n if (action === undefined || action === \"help\") {\n yield* write(\"stdout\", PROVIDER_DOCTOR_HELP);\n return action === undefined ? 1 : 0;\n }\n if (action !== \"doctor\") {\n yield* write(\"stderr\", `unknown sandbox provider command ${JSON.stringify(action)}\\n${PROVIDER_DOCTOR_HELP}`);\n return 1;\n }\n if (provider === undefined) {\n yield* write(\"stderr\", `usage: niceeval sandbox provider doctor <provider>\\n${PROVIDER_DOCTOR_HELP}`);\n return 1;\n }\n if (provider !== \"incus\") {\n yield* write(\"stderr\", `sandbox provider doctor does not support ${JSON.stringify(provider)}. Currently only incus is implemented.\\n`);\n return 1;\n }\n if (parsed.positionals.length > 3) {\n yield* write(\"stderr\", `niceeval sandbox provider doctor incus does not accept extra arguments.\\n${PROVIDER_DOCTOR_HELP}`);\n return 1;\n }\n const report = yield* Effect.tryPromise({\n try: () => doctorIncusProvider({\n domain: parsed.development ? \"development\" : \"reference\",\n }),\n catch: (cause) => sandboxFailure(\"doctor incus provider\", cause),\n });\n yield* write(\"stdout\", renderIncusDoctorReport(report));\n return doctorExitCode(report);\n });\n}\n/**\n * Feature-owned root contribution. Syntax outcomes deliberately finish before\n * credential preparation, so help, version, empty input, and unknown input do\n * not load .env, config, or a provider SDK.\n */\nexport const sandboxCliCommand: CliCommandContribution<CliArguments | CliInvocationFacts | CliOutput | CliPath | ProjectConfiguration | ProjectStateDatabase, SandboxCliError> = Object.freeze({\n name: \"sandbox\",\n summary: \"inspect, enter, and clean up kept sandboxes\",\n options: SANDBOX_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const argumentsService = yield* CliArguments;\n const parsed = yield* Effect.try({\n try: () => parseSandboxArgs(argv, argumentsService.parse),\n catch: (cause) => sandboxFailure(\"parse sandbox command\", cause, 1),\n });\n const subcommand = parsed.positionals[0];\n if (subcommand === undefined && parsed.help) {\n yield* write(\"stdout\", SANDBOX_HELP);\n return 0;\n }\n if (!isSandboxSubcommand(subcommand)) {\n yield* write(\"stderr\", unknownSandboxCommand(subcommand));\n return 1;\n }\n const unsupportedOption = parsed.providedOptions.find((name) => !SANDBOX_SUBCOMMAND_OPTIONS[subcommand].includes(name));\n if (unsupportedOption !== undefined) {\n yield* write(\"stderr\", `niceeval sandbox ${subcommand} does not accept --${unsupportedOption}.\\n`);\n return 1;\n }\n if (parsed.help) {\n yield* write(\"stdout\", subcommand === \"provider\" ? PROVIDER_DOCTOR_HELP : SANDBOX_HELP);\n return 0;\n }\n if (subcommand === \"provider\") {\n return yield* runProviderDoctor(parsed);\n }\n const invocation = yield* CliInvocationFacts;\n const facts = yield* invocation.facts.pipe(Effect.mapError((cause) => sandboxFailure(\"read invocation facts\", cause)));\n const configuration = yield* ProjectConfiguration;\n yield* configuration.prepare(facts.cwd).pipe(Effect.mapError((cause) => sandboxFailure(\"prepare project credentials\", cause)));\n const path = yield* CliPath;\n const record = parsed.flags.record === undefined ? undefined : path.resolve(facts.cwd, parsed.flags.record);\n const commandFacts: SandboxCommandFacts = Object.freeze({\n leaseHolder: `${facts.pid}@${facts.hostname}`,\n ...(facts.noColor === undefined ? {} : { noColor: facts.noColor }),\n stdout: facts.stdout,\n });\n const output = yield* CliOutput;\n return yield* runSandboxCommandEffect(facts.cwd, [...parsed.positionals], record === undefined ? parsed.flags : { ...parsed.flags, record }, { out: output.writeStdoutSync, err: output.writeStderrSync }, commandFacts).pipe(Effect.mapError((cause) => sandboxFailure(\"run sandbox command\", cause)));\n }),\n});\n"]}
@@ -32,7 +32,7 @@ export declare const SANDBOX_CLI_OPTIONS: Readonly<{
32
32
  visibility: "public";
33
33
  }>;
34
34
  }>;
35
- record: Readonly<{
35
+ "record-root": Readonly<{
36
36
  type: "string";
37
37
  help: Readonly<{
38
38
  summary: "Use a specific NiceEval record root.";
@@ -32,7 +32,7 @@ export declare const SANDBOX_CLI_OPTIONS: Readonly<{
32
32
  visibility: "public";
33
33
  }>;
34
34
  }>;
35
- record: Readonly<{
35
+ "record-root": Readonly<{
36
36
  type: "string";
37
37
  help: Readonly<{
38
38
  summary: "Use a specific NiceEval record root.";
@@ -32,7 +32,7 @@ export declare const SANDBOX_CLI_OPTIONS: Readonly<{
32
32
  visibility: "public";
33
33
  }>;
34
34
  }>;
35
- record: Readonly<{
35
+ "record-root": Readonly<{
36
36
  type: "string";
37
37
  help: Readonly<{
38
38
  summary: "Use a specific NiceEval record root.";
@@ -125,7 +125,7 @@ function normalizeCommandMetadata(value) {
125
125
  ...(value.provides === undefined ? {} : { provides: value.provides }),
126
126
  }, "defineSandboxCommand identity");
127
127
  }
128
- // @concord-code ne-sandbox-define-command
128
+ // @concord-code
129
129
  // @concord-implements docs/feature/sandbox/library/operations.md
130
130
  // @concord-implements docs/feature/sandbox/prepare-commands.md
131
131
  function defineSandboxCommand(identity, run) {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["commands.ts"],"names":[],"mappings":"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","sourcesContent":["// SandboxLayer 的准备命令声明与稳定身份。\n// 这里只描述作者面与供后续 linker/runner 消费的纯数据,不负责调度或生命周期执行。\nimport { Schema, SchemaGetter } from \"effect\";\nimport type { DiagnosticInput, JsonValue } from \"../shared/types.ts\";\nimport type { SandboxOperations } from \"./types.ts\";\nimport { digestBytes, digestOf } from \"./identity.ts\";\nimport { defineSandboxAction, normalizeSandboxBeforeMetadata, sandboxStep, sandboxShellStep, type NormalizedSandboxBeforeMetadata, type SandboxAction, type SandboxActionInstanceOptions, type SandboxActionRef, type SandboxAfterAction, type SandboxBeforeActionOptions, type SandboxCapability, } from \"./action.ts\";\nimport { isRegisteredSandboxContent, type RegisteredSandboxContent } from \"./content.ts\";\nexport type MaybePromise<T> = T | Promise<T>;\nexport interface SandboxCommandOptions {\n readonly cwd?: string;\n readonly env?: Readonly<globalThis.Record<string, string>>;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly stdin?: string;\n}\nexport interface SandboxExecOptions extends SandboxCommandOptions {\n}\nexport interface CommandActionOptions extends SandboxExecOptions, SandboxBeforeActionOptions {\n}\nexport interface CommandAfterActionOptions extends SandboxExecOptions {\n readonly id: string;\n}\nexport interface ShellActionInput extends SandboxExecOptions, SandboxBeforeActionOptions {\n readonly command: string;\n readonly inputs?: readonly RegisteredSandboxContent[];\n}\nexport interface ShellAfterActionInput extends SandboxExecOptions {\n readonly id: string;\n readonly command: string;\n readonly inputs?: readonly RegisteredSandboxContent[];\n}\nexport interface CommandActionFactory {\n (executable: string, args: readonly string[], options: CommandActionOptions): SandboxAction;\n (executable: string, args?: readonly string[], options?: SandboxCommandOptions): StableSandboxCommand;\n readonly after: (executable: string, args: readonly string[], options: CommandAfterActionOptions) => SandboxAfterAction;\n}\nexport interface ShellActionFactory {\n (input: ShellActionInput): SandboxAction;\n (script: string, options?: SandboxCommandOptions): StableSandboxCommand;\n readonly after: (input: ShellAfterActionInput) => SandboxAfterAction;\n}\n/**\n * prepare callback 取得的窄 Sandbox 视图。它没有 stop、宿主传输或 Provider-native SDK。\n */\nexport interface SandboxCommandTarget extends SandboxOperations {\n /** 当前 callback 可见的主物理 Sandbox 的 Provider-native ID。 */\n readonly sandboxId: string;\n copyPath(sourcePath: string, targetPath: string): Promise<void>;\n putContent(content: RegisteredSandboxContent, targetPath: string): Promise<void>;\n}\nexport interface AttemptRef {\n readonly id: string;\n readonly index: number;\n}\nexport type SandboxProgress = (update: {\n readonly message: string;\n readonly current?: number;\n readonly total?: number;\n}) => void;\nexport type SandboxDiagnosticSink = (input: DiagnosticInput) => void;\nexport type SandboxCleanupCommand = (sandbox: SandboxCommandTarget, context: Omit<SandboxCommandContext, \"onCleanup\">) => MaybePromise<void>;\nexport interface SandboxCommandContext {\n readonly phase: \"before\" | \"agent.post-setup\" | \"agent.pre-teardown\";\n /** 当前 Attempt 的 Eval Group;未分组 Eval 省略。 */\n readonly evalGroup?: {\n readonly id: string;\n readonly definitionHash: string;\n };\n readonly owner: {\n readonly kind: \"eval\";\n readonly id: string;\n } | {\n readonly kind: \"eval-group\";\n readonly id: string;\n } | {\n readonly kind: \"experiment\";\n readonly id: string;\n } | {\n readonly kind: \"agent\";\n readonly id: string;\n };\n readonly attempt: AttemptRef;\n readonly signal: AbortSignal;\n readonly progress: SandboxProgress;\n readonly diagnostic: SandboxDiagnosticSink;\n onCleanup(command: SandboxCleanupCommand): void;\n}\nexport interface SandboxCommand {\n (sandbox: SandboxCommandTarget, context: SandboxCommandContext): MaybePromise<void>;\n}\nexport type SandboxCommandIdentityValue = null | boolean | number | string | RegisteredSandboxContent | readonly SandboxCommandIdentityValue[] | {\n readonly [key: string]: SandboxCommandIdentityValue;\n};\nexport interface SandboxCommandIdentity {\n readonly id: string;\n readonly revision: string;\n readonly inputs: SandboxCommandIdentityValue;\n}\nexport interface SandboxCommandDefinition extends SandboxCommandIdentity {\n readonly changeFrequency?: number;\n readonly dependsOn?: readonly SandboxActionRef[];\n readonly requires?: readonly SandboxCapability[];\n readonly provides?: readonly SandboxCapability[];\n}\nconst STABLE_SANDBOX_COMMAND: unique symbol = Symbol(\"niceeval.sandbox.command.stable\");\nconst STABLE_SANDBOX_COMMANDS = new WeakSet<object>();\nconst SANDBOX_COMMAND_IDENTITIES = new WeakMap<object, SandboxCommandIdentity>();\nconst SANDBOX_COMMAND_METADATA = new WeakMap<object, SandboxCommandMetadata>();\nconst SANDBOX_COMMAND_PLANS = new WeakMap<object, SandboxCommandPlanNode>();\nexport interface SandboxCommandMetadata {\n readonly scheduling: NormalizedSandboxBeforeMetadata;\n /** Public defineSandboxCommand ids are occurrence ids; built-in factories need linker-scoped ids. */\n readonly explicitId: boolean;\n}\nexport interface StableSandboxCommand extends SandboxCommand {\n readonly [STABLE_SANDBOX_COMMAND]: true;\n}\n/**\n * `niceeval debug` 能证明的声明式命令。这里只保存执行闭包已经消费的同一份规范化数据;\n * 普通 `defineSandboxCommand(identity, run)` 不会因为 identity 看起来像内建 id 就获得计划。\n */\nexport type SandboxCommandPlanRedaction = \"env-values\" | \"header-values\" | \"stdin\" | \"sensitive-values\" | \"command\";\nexport type SandboxCommandPlanCommand = {\n readonly kind: \"argv\";\n readonly executable: string;\n readonly args: readonly string[];\n readonly cwd?: string;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly envKeys?: readonly string[];\n} | {\n readonly kind: \"shell\";\n readonly script: string;\n readonly cwd?: string;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly envKeys?: readonly string[];\n};\nexport interface SandboxCommandPlanCondition {\n readonly code: string;\n readonly summary: string;\n}\ninterface SandboxCommandPlanNodeBase {\n readonly label?: string;\n readonly condition?: SandboxCommandPlanCondition;\n}\nexport type SandboxCommandPlanNode = (SandboxCommandPlanNodeBase & {\n readonly truth: \"exact\";\n readonly command: SandboxCommandPlanCommand;\n readonly redactions?: readonly SandboxCommandPlanRedaction[];\n}) | (SandboxCommandPlanNodeBase & {\n readonly truth: \"conditional\";\n readonly children: readonly SandboxCommandPlanNode[];\n}) | (SandboxCommandPlanNodeBase & {\n readonly truth: \"opaque\";\n readonly reason: {\n readonly code: string;\n readonly summary: string;\n };\n}) | (SandboxCommandPlanNodeBase & {\n readonly truth: \"known-no-command\";\n readonly reason?: {\n readonly code: string;\n readonly summary: string;\n };\n});\nexport type SandboxCommandDeclaration = {\n readonly kind: \"stable\";\n readonly command: StableSandboxCommand;\n readonly identity: SandboxCommandIdentity;\n readonly metadata: SandboxCommandMetadata;\n} | {\n readonly kind: \"opaque\";\n readonly command: SandboxCommand;\n};\nconst STABLE_COMMAND_KEYS = new Set([\"cwd\", \"env\", \"user\", \"timeoutMs\", \"stdin\"]);\nfunction assertRecord(value: unknown, path: string): asserts value is globalThis.Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(`${path} must be an object`);\n }\n}\nfunction assertOnlyKeys(value: globalThis.Record<string, unknown>, allowed: ReadonlySet<string>, path: string): void {\n for (const key of Object.keys(value)) {\n if (!allowed.has(key))\n throw new TypeError(`${path}.${key} is not supported`);\n }\n}\nfunction nonEmptyString(value: unknown, path: string): string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new TypeError(`${path} must be a non-empty string`);\n }\n return value;\n}\nfunction normalizeCommandOptions(value: unknown, path: string): Readonly<SandboxCommandOptions> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n assertOnlyKeys(value, STABLE_COMMAND_KEYS, path);\n const normalized: {\n cwd?: string;\n env?: Readonly<globalThis.Record<string, string>>;\n user?: string;\n timeoutMs?: number;\n stdin?: string;\n } = {};\n if (value.cwd !== undefined)\n normalized.cwd = nonEmptyString(value.cwd, `${path}.cwd`);\n if (value.user !== undefined)\n normalized.user = nonEmptyString(value.user, `${path}.user`);\n if (value.timeoutMs !== undefined) {\n if (typeof value.timeoutMs !== \"number\" || !Number.isFinite(value.timeoutMs) || value.timeoutMs <= 0) {\n throw new TypeError(`${path}.timeoutMs must be a positive finite number`);\n }\n normalized.timeoutMs = value.timeoutMs;\n }\n if (value.stdin !== undefined) {\n if (typeof value.stdin !== \"string\")\n throw new TypeError(`${path}.stdin must be a string`);\n normalized.stdin = value.stdin;\n }\n if (value.env !== undefined) {\n assertRecord(value.env, `${path}.env`);\n const env = Object.create(null) as globalThis.Record<string, string>;\n for (const [key, child] of Object.entries(value.env)) {\n if (typeof child !== \"string\")\n throw new TypeError(`${path}.env.${key} must be a string`);\n env[key] = child;\n }\n normalized.env = Object.freeze(env);\n }\n return Object.freeze(normalized);\n}\nfunction cloneIdentityValue(value: unknown, path: string, ancestors: WeakSet<object>): SandboxCommandIdentityValue {\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\")\n return value;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value))\n throw new TypeError(`${path} must not contain a non-finite number`);\n return value;\n }\n if (isRegisteredSandboxContent(value))\n return value;\n if (typeof value !== \"object\") {\n throw new TypeError(`${path} must be pure identity data (no functions, undefined, symbols, or bigint)`);\n }\n if (ancestors.has(value))\n throw new TypeError(`${path} must not contain a cycle`);\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n return Object.freeze(value.map((child, index) => cloneIdentityValue(child, `${path}[${index}]`, ancestors)));\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new TypeError(`${path} must contain only plain objects, arrays, scalars, or registered content`);\n }\n const result = Object.create(null) as globalThis.Record<string, SandboxCommandIdentityValue>;\n for (const [key, child] of Object.entries(value as globalThis.Record<string, unknown>)) {\n result[key] = cloneIdentityValue(child, `${path}.${key}`, ancestors);\n }\n return Object.freeze(result);\n }\n finally {\n ancestors.delete(value);\n }\n}\nfunction normalizeIdentity(value: unknown, allowScheduling: boolean): Readonly<SandboxCommandIdentity> {\n assertRecord(value, \"defineSandboxCommand identity\");\n assertOnlyKeys(value, allowScheduling\n ? new Set([\"id\", \"revision\", \"inputs\", \"changeFrequency\", \"dependsOn\", \"requires\", \"provides\"])\n : new Set([\"id\", \"revision\", \"inputs\"]), \"defineSandboxCommand identity\");\n return Object.freeze({\n id: nonEmptyString(value.id, \"defineSandboxCommand identity.id\"),\n revision: nonEmptyString(value.revision, \"defineSandboxCommand identity.revision\"),\n inputs: cloneIdentityValue(value.inputs, \"defineSandboxCommand identity.inputs\", new WeakSet()),\n });\n}\nfunction normalizeCommandMetadata(value: SandboxCommandDefinition): NormalizedSandboxBeforeMetadata {\n return normalizeSandboxBeforeMetadata({\n id: value.id,\n ...(value.changeFrequency === undefined ? {} : { changeFrequency: value.changeFrequency }),\n ...(value.dependsOn === undefined ? {} : { dependsOn: value.dependsOn }),\n ...(value.requires === undefined ? {} : { requires: value.requires }),\n ...(value.provides === undefined ? {} : { provides: value.provides }),\n }, \"defineSandboxCommand identity\");\n}\n// @concord-code ne-sandbox-define-command\n// @concord-implements docs/feature/sandbox/library/operations.md\n// @concord-implements docs/feature/sandbox/prepare-commands.md\nexport function defineSandboxCommand(identity: SandboxCommandDefinition, run: SandboxCommand): StableSandboxCommand {\n return defineStableSandboxCommand(identity, run, true);\n}\n/** @internal 内建命令用它把执行与预览绑定到同一个 factory 产物;不从公开 identity 反推。 */\nexport function definePlannedSandboxCommand(identity: SandboxCommandIdentity, run: SandboxCommand, plan: SandboxCommandPlanNode): StableSandboxCommand {\n return defineStableSandboxCommand(identity, run, false, freezePlanNode(plan));\n}\nfunction defineStableSandboxCommand(identity: SandboxCommandDefinition, run: SandboxCommand, explicitId: boolean, plan?: SandboxCommandPlanNode): StableSandboxCommand {\n if (typeof run !== \"function\")\n throw new TypeError(\"defineSandboxCommand run must be a function\");\n const normalized = normalizeIdentity(identity, explicitId);\n const metadata = normalizeCommandMetadata(identity);\n const stable = (async (sandbox: SandboxCommandTarget, context: SandboxCommandContext): Promise<void> => {\n await run(sandbox, context);\n }) as StableSandboxCommand;\n Object.defineProperties(stable, {\n [STABLE_SANDBOX_COMMAND]: { value: true },\n });\n STABLE_SANDBOX_COMMANDS.add(stable);\n SANDBOX_COMMAND_IDENTITIES.set(stable, normalized);\n SANDBOX_COMMAND_METADATA.set(stable, Object.freeze({ scheduling: metadata, explicitId }));\n if (plan !== undefined)\n SANDBOX_COMMAND_PLANS.set(stable, plan);\n return Object.freeze(stable);\n}\nfunction freezePlanNode(node: SandboxCommandPlanNode): SandboxCommandPlanNode {\n const condition = node.condition === undefined ? {} : { condition: Object.freeze({ ...node.condition }) };\n const label = node.label === undefined ? {} : { label: node.label };\n if (node.truth === \"exact\") {\n const command = node.command.kind === \"argv\"\n ? Object.freeze({\n ...node.command,\n args: Object.freeze([...node.command.args]),\n ...(node.command.envKeys === undefined ? {} : { envKeys: Object.freeze([...node.command.envKeys]) }),\n })\n : Object.freeze({\n ...node.command,\n ...(node.command.envKeys === undefined ? {} : { envKeys: Object.freeze([...node.command.envKeys]) }),\n });\n return Object.freeze({\n truth: \"exact\" as const,\n ...label,\n ...condition,\n command,\n ...(node.redactions === undefined ? {} : { redactions: Object.freeze([...node.redactions]) }),\n });\n }\n if (node.truth === \"conditional\") {\n return Object.freeze({\n truth: \"conditional\" as const,\n ...label,\n ...condition,\n children: Object.freeze(node.children.map(freezePlanNode)),\n });\n }\n if (node.truth === \"opaque\") {\n return Object.freeze({\n truth: \"opaque\" as const,\n ...label,\n ...condition,\n reason: Object.freeze({ ...node.reason }),\n });\n }\n return Object.freeze({\n truth: \"known-no-command\" as const,\n ...label,\n ...condition,\n ...(node.reason === undefined ? {} : { reason: Object.freeze({ ...node.reason }) }),\n });\n}\nfunction planOptions(options: Readonly<SandboxCommandOptions>): {\n readonly cwd?: string;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly envKeys?: readonly string[];\n readonly redactions?: readonly SandboxCommandPlanRedaction[];\n} {\n const envKeys = options.env === undefined ? undefined : Object.freeze(Object.keys(options.env));\n const redactions: SandboxCommandPlanRedaction[] = [];\n if (envKeys !== undefined && envKeys.length > 0)\n redactions.push(\"env-values\");\n if (options.stdin !== undefined)\n redactions.push(\"stdin\");\n return Object.freeze({\n ...(options.cwd === undefined ? {} : { cwd: options.cwd }),\n ...(options.user === undefined ? {} : { user: options.user }),\n ...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),\n ...(envKeys === undefined || envKeys.length === 0 ? {} : { envKeys }),\n ...(redactions.length === 0 ? {} : { redactions: Object.freeze(redactions) }),\n });\n}\ninterface ExecActionPayload {\n readonly executable: string;\n readonly argsJson: string;\n readonly cwd: string;\n readonly hasCwd: boolean;\n readonly envJson: string;\n readonly user: string;\n readonly hasUser: boolean;\n readonly timeoutMs: number;\n readonly hasTimeout: boolean;\n readonly stdin: string;\n readonly hasStdin: boolean;\n readonly declaredInputsJson: string;\n}\nconst execActionPayloadSchema = Schema.Struct({\n executable: Schema.String,\n argsJson: Schema.String,\n cwd: Schema.String,\n hasCwd: Schema.Boolean,\n envJson: Schema.String,\n user: Schema.String,\n hasUser: Schema.Boolean,\n timeoutMs: Schema.Number,\n hasTimeout: Schema.Boolean,\n stdin: Schema.String,\n hasStdin: Schema.Boolean,\n declaredInputsJson: Schema.String,\n});\nconst execActionCanonicalInputSchema = Schema.Struct({\n executable: Schema.String,\n argsJson: Schema.String,\n cwd: Schema.String,\n hasCwd: Schema.Boolean,\n envKeysJson: Schema.String,\n envDigest: Schema.String,\n hasEnv: Schema.Boolean,\n user: Schema.String,\n hasUser: Schema.Boolean,\n timeoutMs: Schema.Number,\n hasTimeout: Schema.Boolean,\n stdinDigest: Schema.String,\n stdinBytes: Schema.Number,\n hasStdin: Schema.Boolean,\n declaredInputsJson: Schema.String,\n});\n/**\n * The action's Type side retains the bytes needed by the runtime while its Encoded side is the\n * public/debug projection used by defineSandboxAction. Automatic identity still includes the\n * private step payload, so redacting this projection cannot create a false cache hit.\n */\nconst execActionInputSchema = execActionCanonicalInputSchema.pipe(Schema.decodeTo(execActionPayloadSchema, {\n decode: SchemaGetter.transform((input) => ({\n executable: input.executable,\n argsJson: input.argsJson,\n cwd: input.cwd,\n hasCwd: input.hasCwd,\n envJson: \"\",\n user: input.user,\n hasUser: input.hasUser,\n timeoutMs: input.timeoutMs,\n hasTimeout: input.hasTimeout,\n stdin: \"\",\n hasStdin: input.hasStdin,\n declaredInputsJson: input.declaredInputsJson,\n })),\n encode: SchemaGetter.transform((payload) => {\n const env = payload.envJson === \"\"\n ? undefined\n : JSON.parse(payload.envJson) as globalThis.Record<string, string>;\n return {\n executable: payload.executable,\n argsJson: payload.argsJson,\n cwd: payload.cwd,\n hasCwd: payload.hasCwd,\n envKeysJson: JSON.stringify(env === undefined ? [] : Object.keys(env)),\n envDigest: env === undefined ? \"\" : `sha256:${digestOf(env)}`,\n hasEnv: env !== undefined,\n user: payload.user,\n hasUser: payload.hasUser,\n timeoutMs: payload.timeoutMs,\n hasTimeout: payload.hasTimeout,\n stdinDigest: payload.hasStdin ? `sha256:${digestBytes(payload.stdin)}` : \"\",\n stdinBytes: payload.hasStdin ? Buffer.byteLength(payload.stdin) : 0,\n hasStdin: payload.hasStdin,\n declaredInputsJson: payload.declaredInputsJson,\n };\n }),\n}));\nfunction execOptionsFromPayload(input: ExecActionPayload): SandboxCommandOptions {\n return Object.freeze({\n ...(input.hasCwd ? { cwd: input.cwd } : {}),\n ...(input.envJson === \"\" ? {} : { env: JSON.parse(input.envJson) as globalThis.Record<string, string> }),\n ...(input.hasUser ? { user: input.user } : {}),\n ...(input.hasTimeout ? { timeoutMs: input.timeoutMs } : {}),\n ...(input.hasStdin ? { stdin: input.stdin } : {}),\n });\n}\nconst commandActionFamily = defineSandboxAction({\n id: \"niceeval.sandbox.command\",\n input: execActionInputSchema,\n steps: (input) => [sandboxStep.exec({\n executable: input.executable,\n args: JSON.parse(input.argsJson) as string[],\n ...execOptionsFromPayload(input),\n })] as const,\n});\nconst shellActionFamily = defineSandboxAction({\n id: \"niceeval.sandbox.shell\",\n input: execActionInputSchema,\n steps: (input) => [sandboxShellStep({\n executable: \"/bin/sh\",\n args: [\"-lc\", input.executable],\n ...execOptionsFromPayload(input),\n }, input.executable)] as const,\n});\nconst INLINE_SCHEDULING_KEYS = [\"id\", \"changeFrequency\", \"dependsOn\", \"requires\", \"provides\", \"cache\"] as const;\nconst INLINE_EXEC_KEYS = [\"cwd\", \"env\", \"user\", \"timeoutMs\", \"stdin\"] as const;\nfunction pickExecOptions(value: globalThis.Record<string, unknown>): SandboxCommandOptions {\n return {\n ...(value.cwd === undefined ? {} : { cwd: value.cwd as string }),\n ...(value.env === undefined ? {} : { env: value.env as Readonly<globalThis.Record<string, string>> }),\n ...(value.user === undefined ? {} : { user: value.user as string }),\n ...(value.timeoutMs === undefined ? {} : { timeoutMs: value.timeoutMs as number }),\n ...(value.stdin === undefined ? {} : { stdin: value.stdin as string }),\n };\n}\nfunction normalizeInlineOptions(value: unknown, path: string, payloadKeys: readonly string[], after: boolean): {\n readonly id: string;\n readonly exec: Readonly<SandboxCommandOptions>;\n readonly scheduling?: SandboxActionInstanceOptions;\n} {\n assertRecord(value, path);\n assertOnlyKeys(value, new Set(after\n ? [\"id\", ...INLINE_EXEC_KEYS, ...payloadKeys]\n : [...INLINE_SCHEDULING_KEYS, ...INLINE_EXEC_KEYS, ...payloadKeys]), path);\n const id = nonEmptyString(value.id, `${path}.id`);\n const exec = normalizeCommandOptions(pickExecOptions(value), `${path} execution options`);\n if (after)\n return Object.freeze({ id, exec });\n normalizeSandboxBeforeMetadata({\n id,\n ...(value.changeFrequency === undefined ? {} : { changeFrequency: value.changeFrequency }),\n ...(value.dependsOn === undefined ? {} : { dependsOn: value.dependsOn }),\n ...(value.requires === undefined ? {} : { requires: value.requires }),\n ...(value.provides === undefined ? {} : { provides: value.provides }),\n ...(value.cache === undefined ? {} : { cache: value.cache }),\n }, path);\n const scheduling: SandboxActionInstanceOptions = Object.freeze({\n id,\n ...(value.changeFrequency === undefined ? {} : { changeFrequency: value.changeFrequency as number }),\n ...(value.dependsOn === undefined ? {} : { dependsOn: value.dependsOn as readonly SandboxActionRef[] }),\n ...(value.requires === undefined ? {} : { requires: value.requires as readonly SandboxCapability[] }),\n ...(value.provides === undefined ? {} : { provides: value.provides as readonly SandboxCapability[] }),\n ...(value.cache === undefined\n ? {}\n : { cache: value.cache as SandboxActionInstanceOptions[\"cache\"] }),\n });\n return Object.freeze({ id, exec, scheduling });\n}\nfunction execPayload(executable: string, args: readonly string[], options: Readonly<SandboxCommandOptions>, declaredInputs: readonly RegisteredSandboxContent[] = []): ExecActionPayload {\n const env = options.env === undefined\n ? \"\"\n : JSON.stringify(Object.fromEntries(Object.entries(options.env).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)));\n return Object.freeze({\n executable,\n argsJson: JSON.stringify(args),\n cwd: options.cwd ?? \"\",\n hasCwd: options.cwd !== undefined,\n envJson: env,\n user: options.user ?? \"\",\n hasUser: options.user !== undefined,\n timeoutMs: options.timeoutMs ?? 0,\n hasTimeout: options.timeoutMs !== undefined,\n stdin: options.stdin ?? \"\",\n hasStdin: options.stdin !== undefined,\n declaredInputsJson: JSON.stringify(declaredInputs.map((content) => ({\n kind: content.kind,\n digest: content.digest,\n })).sort((left, right) => left.digest < right.digest ? -1 : left.digest > right.digest ? 1 : 0)),\n });\n}\nfunction declaredShellInputs(value: unknown, path: string): readonly RegisteredSandboxContent[] {\n if (value === undefined)\n return Object.freeze([]);\n if (!Array.isArray(value) || value.some((entry) => !isRegisteredSandboxContent(entry))) {\n throw new TypeError(`${path} must contain registerSandboxContent() handles`);\n }\n return Object.freeze([...value]);\n}\nfunction legacyCommand(executable: string, args: readonly string[] = [], options?: SandboxCommandOptions): StableSandboxCommand {\n const normalizedExecutable = nonEmptyString(executable, \"command executable\");\n if (!Array.isArray(args) || args.some((arg) => typeof arg !== \"string\")) {\n throw new TypeError(\"command args must be an array of strings\");\n }\n const normalizedArgs = Object.freeze([...args]);\n const normalizedOptions = normalizeCommandOptions(options, \"command options\");\n const preview = planOptions(normalizedOptions);\n return definePlannedSandboxCommand({\n id: \"niceeval.sandbox.command\",\n revision: \"1\",\n inputs: {\n executable: normalizedExecutable,\n args: normalizedArgs,\n options: normalizedOptions as SandboxCommandIdentityValue,\n },\n }, async (sandbox) => {\n await sandbox.runCommandOrThrow(normalizedExecutable, normalizedArgs, normalizedOptions);\n }, {\n truth: \"exact\",\n command: {\n kind: \"argv\",\n executable: normalizedExecutable,\n args: normalizedArgs,\n ...(preview.cwd === undefined ? {} : { cwd: preview.cwd }),\n ...(preview.user === undefined ? {} : { user: preview.user }),\n ...(preview.timeoutMs === undefined ? {} : { timeoutMs: preview.timeoutMs }),\n ...(preview.envKeys === undefined ? {} : { envKeys: preview.envKeys }),\n },\n ...(preview.redactions === undefined ? {} : { redactions: preview.redactions }),\n });\n}\nfunction legacyShell(script: string, options?: SandboxCommandOptions): StableSandboxCommand {\n if (typeof script !== \"string\")\n throw new TypeError(\"shell script must be a string\");\n const normalizedOptions = normalizeCommandOptions(options, \"shell options\");\n const preview = planOptions(normalizedOptions);\n return definePlannedSandboxCommand({\n id: \"niceeval.sandbox.shell\",\n revision: \"1\",\n inputs: { script, options: normalizedOptions as SandboxCommandIdentityValue },\n }, async (sandbox) => {\n await sandbox.runShellOrThrow(script, normalizedOptions);\n }, {\n truth: \"exact\",\n command: {\n kind: \"shell\",\n script,\n ...(preview.cwd === undefined ? {} : { cwd: preview.cwd }),\n ...(preview.user === undefined ? {} : { user: preview.user }),\n ...(preview.timeoutMs === undefined ? {} : { timeoutMs: preview.timeoutMs }),\n ...(preview.envKeys === undefined ? {} : { envKeys: preview.envKeys }),\n },\n ...(preview.redactions === undefined ? {} : { redactions: preview.redactions }),\n });\n}\nconst commandImpl = (function (executable: string, args: readonly string[] = [], options?: SandboxCommandOptions | CommandActionOptions): StableSandboxCommand | SandboxAction {\n if (options !== undefined &&\n typeof options === \"object\" &&\n Object.prototype.hasOwnProperty.call(options, \"id\")) {\n const normalizedExecutable = nonEmptyString(executable, \"command executable\");\n if (!Array.isArray(args) || args.some((arg) => typeof arg !== \"string\")) {\n throw new TypeError(\"command args must be an array of strings\");\n }\n const normalized = normalizeInlineOptions(options, \"command options\", [], false);\n return commandActionFamily(execPayload(normalizedExecutable, Object.freeze([...args]), normalized.exec), normalized.scheduling);\n }\n return legacyCommand(executable, args, options);\n}) as CommandActionFactory;\nObject.defineProperty(commandImpl, \"after\", {\n value: (executable: string, args: readonly string[], options: CommandAfterActionOptions): SandboxAfterAction => {\n const normalizedExecutable = nonEmptyString(executable, \"command.after executable\");\n if (!Array.isArray(args) || args.some((arg) => typeof arg !== \"string\")) {\n throw new TypeError(\"command.after args must be an array of strings\");\n }\n const normalized = normalizeInlineOptions(options, \"command.after options\", [], true);\n return commandActionFamily.after(execPayload(normalizedExecutable, Object.freeze([...args]), normalized.exec), { id: normalized.id });\n },\n});\nexport const command = Object.freeze(commandImpl);\nconst shellImpl = (function (input: string | ShellActionInput, legacyOptions?: SandboxCommandOptions): StableSandboxCommand | SandboxAction {\n if (typeof input === \"string\")\n return legacyShell(input, legacyOptions);\n const normalized = normalizeInlineOptions(input, \"shell input\", [\"command\", \"inputs\"], false);\n const script = nonEmptyString(input.command, \"shell input.command\");\n const inputs = declaredShellInputs(input.inputs, \"shell input.inputs\");\n return shellActionFamily(execPayload(script, [], normalized.exec, inputs), normalized.scheduling);\n}) as ShellActionFactory;\nObject.defineProperty(shellImpl, \"after\", {\n value: (input: ShellAfterActionInput): SandboxAfterAction => {\n const normalized = normalizeInlineOptions(input, \"shell.after input\", [\"command\", \"inputs\"], true);\n const script = nonEmptyString(input.command, \"shell.after input.command\");\n const inputs = declaredShellInputs(input.inputs, \"shell.after input.inputs\");\n return shellActionFamily.after(execPayload(script, [], normalized.exec, inputs), { id: normalized.id });\n },\n});\nexport const shell = Object.freeze(shellImpl);\nexport function sandboxCommandDeclarationOf(command: SandboxCommand): SandboxCommandDeclaration {\n if (typeof command !== \"function\")\n throw new TypeError(\"SandboxLayer.before requires an Action or command function\");\n const identity = SANDBOX_COMMAND_IDENTITIES.get(command as object);\n if (STABLE_SANDBOX_COMMANDS.has(command as object) && identity !== undefined) {\n const metadata = SANDBOX_COMMAND_METADATA.get(command as object);\n if (metadata === undefined)\n throw new TypeError(\"Stable Sandbox command metadata is missing\");\n return Object.freeze({\n kind: \"stable\" as const,\n command: command as StableSandboxCommand,\n identity,\n metadata,\n });\n }\n return Object.freeze({ kind: \"opaque\" as const, command });\n}\nexport function sandboxCommandMetadataOf(command: SandboxCommand): SandboxCommandMetadata | undefined {\n return SANDBOX_COMMAND_METADATA.get(command as object);\n}\n/** @internal Layer dispatches by the private factory brand, never by function shape or identity fields. */\nexport function isStableSandboxCommand(value: unknown): value is StableSandboxCommand {\n return typeof value === \"function\" && STABLE_SANDBOX_COMMANDS.has(value as object);\n}\nexport function sandboxCommandIdentityOf(command: SandboxCommand): SandboxCommandIdentity | undefined {\n const declaration = sandboxCommandDeclarationOf(command);\n return declaration.kind === \"stable\" ? declaration.identity : undefined;\n}\n/** @internal 只读 factory 私有品牌;未知 stable command 仍是 opaque,绝不按 identity 猜。 */\nexport function sandboxCommandPlanOf(command: SandboxCommand): SandboxCommandPlanNode | undefined {\n return SANDBOX_COMMAND_PLANS.get(command as object);\n}\n/** Link/fingerprint 层可把 identity 投影成普通 JSON;content handle 只暴露 kind + digest。 */\nexport function sandboxCommandIdentityJson(value: SandboxCommandIdentityValue): JsonValue {\n if (isRegisteredSandboxContent(value))\n return { kind: value.kind, digest: value.digest };\n if (Array.isArray(value))\n return value.map((child) => sandboxCommandIdentityJson(child));\n if (value !== null && typeof value === \"object\") {\n return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, sandboxCommandIdentityJson(child)]));\n }\n return value;\n}\n"]}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["commands.ts"],"names":[],"mappings":"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","sourcesContent":["// SandboxLayer 的准备命令声明与稳定身份。\n// 这里只描述作者面与供后续 linker/runner 消费的纯数据,不负责调度或生命周期执行。\nimport { Schema, SchemaGetter } from \"effect\";\nimport type { DiagnosticInput, JsonValue } from \"../shared/types.ts\";\nimport type { SandboxOperations } from \"./types.ts\";\nimport { digestBytes, digestOf } from \"./identity.ts\";\nimport { defineSandboxAction, normalizeSandboxBeforeMetadata, sandboxStep, sandboxShellStep, type NormalizedSandboxBeforeMetadata, type SandboxAction, type SandboxActionInstanceOptions, type SandboxActionRef, type SandboxAfterAction, type SandboxBeforeActionOptions, type SandboxCapability, } from \"./action.ts\";\nimport { isRegisteredSandboxContent, type RegisteredSandboxContent } from \"./content.ts\";\nexport type MaybePromise<T> = T | Promise<T>;\nexport interface SandboxCommandOptions {\n readonly cwd?: string;\n readonly env?: Readonly<globalThis.Record<string, string>>;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly stdin?: string;\n}\nexport interface SandboxExecOptions extends SandboxCommandOptions {\n}\nexport interface CommandActionOptions extends SandboxExecOptions, SandboxBeforeActionOptions {\n}\nexport interface CommandAfterActionOptions extends SandboxExecOptions {\n readonly id: string;\n}\nexport interface ShellActionInput extends SandboxExecOptions, SandboxBeforeActionOptions {\n readonly command: string;\n readonly inputs?: readonly RegisteredSandboxContent[];\n}\nexport interface ShellAfterActionInput extends SandboxExecOptions {\n readonly id: string;\n readonly command: string;\n readonly inputs?: readonly RegisteredSandboxContent[];\n}\nexport interface CommandActionFactory {\n (executable: string, args: readonly string[], options: CommandActionOptions): SandboxAction;\n (executable: string, args?: readonly string[], options?: SandboxCommandOptions): StableSandboxCommand;\n readonly after: (executable: string, args: readonly string[], options: CommandAfterActionOptions) => SandboxAfterAction;\n}\nexport interface ShellActionFactory {\n (input: ShellActionInput): SandboxAction;\n (script: string, options?: SandboxCommandOptions): StableSandboxCommand;\n readonly after: (input: ShellAfterActionInput) => SandboxAfterAction;\n}\n/**\n * prepare callback 取得的窄 Sandbox 视图。它没有 stop、宿主传输或 Provider-native SDK。\n */\nexport interface SandboxCommandTarget extends SandboxOperations {\n /** 当前 callback 可见的主物理 Sandbox 的 Provider-native ID。 */\n readonly sandboxId: string;\n copyPath(sourcePath: string, targetPath: string): Promise<void>;\n putContent(content: RegisteredSandboxContent, targetPath: string): Promise<void>;\n}\nexport interface AttemptRef {\n readonly id: string;\n readonly index: number;\n}\nexport type SandboxProgress = (update: {\n readonly message: string;\n readonly current?: number;\n readonly total?: number;\n}) => void;\nexport type SandboxDiagnosticSink = (input: DiagnosticInput) => void;\nexport type SandboxCleanupCommand = (sandbox: SandboxCommandTarget, context: Omit<SandboxCommandContext, \"onCleanup\">) => MaybePromise<void>;\nexport interface SandboxCommandContext {\n readonly phase: \"before\" | \"agent.before\" | \"agent.after\";\n /** 当前 Attempt 的 Eval Group;未分组 Eval 省略。 */\n readonly evalGroup?: {\n readonly id: string;\n readonly definitionHash: string;\n };\n readonly owner: {\n readonly kind: \"eval\";\n readonly id: string;\n } | {\n readonly kind: \"eval-group\";\n readonly id: string;\n } | {\n readonly kind: \"experiment\";\n readonly id: string;\n } | {\n readonly kind: \"agent\";\n readonly id: string;\n };\n readonly attempt: AttemptRef;\n readonly signal: AbortSignal;\n readonly progress: SandboxProgress;\n readonly diagnostic: SandboxDiagnosticSink;\n onCleanup(command: SandboxCleanupCommand): void;\n}\nexport interface SandboxCommand {\n (sandbox: SandboxCommandTarget, context: SandboxCommandContext): MaybePromise<void>;\n}\nexport type SandboxCommandIdentityValue = null | boolean | number | string | RegisteredSandboxContent | readonly SandboxCommandIdentityValue[] | {\n readonly [key: string]: SandboxCommandIdentityValue;\n};\nexport interface SandboxCommandIdentity {\n readonly id: string;\n readonly revision: string;\n readonly inputs: SandboxCommandIdentityValue;\n}\nexport interface SandboxCommandDefinition extends SandboxCommandIdentity {\n readonly changeFrequency?: number;\n readonly dependsOn?: readonly SandboxActionRef[];\n readonly requires?: readonly SandboxCapability[];\n readonly provides?: readonly SandboxCapability[];\n}\nconst STABLE_SANDBOX_COMMAND: unique symbol = Symbol(\"niceeval.sandbox.command.stable\");\nconst STABLE_SANDBOX_COMMANDS = new WeakSet<object>();\nconst SANDBOX_COMMAND_IDENTITIES = new WeakMap<object, SandboxCommandIdentity>();\nconst SANDBOX_COMMAND_METADATA = new WeakMap<object, SandboxCommandMetadata>();\nconst SANDBOX_COMMAND_PLANS = new WeakMap<object, SandboxCommandPlanNode>();\nexport interface SandboxCommandMetadata {\n readonly scheduling: NormalizedSandboxBeforeMetadata;\n /** Public defineSandboxCommand ids are occurrence ids; built-in factories need linker-scoped ids. */\n readonly explicitId: boolean;\n}\nexport interface StableSandboxCommand extends SandboxCommand {\n readonly [STABLE_SANDBOX_COMMAND]: true;\n}\n/**\n * `niceeval debug` 能证明的声明式命令。这里只保存执行闭包已经消费的同一份规范化数据;\n * 普通 `defineSandboxCommand(identity, run)` 不会因为 identity 看起来像内建 id 就获得计划。\n */\nexport type SandboxCommandPlanRedaction = \"env-values\" | \"header-values\" | \"stdin\" | \"sensitive-values\" | \"command\";\nexport type SandboxCommandPlanCommand = {\n readonly kind: \"argv\";\n readonly executable: string;\n readonly args: readonly string[];\n readonly cwd?: string;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly envKeys?: readonly string[];\n} | {\n readonly kind: \"shell\";\n readonly script: string;\n readonly cwd?: string;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly envKeys?: readonly string[];\n};\nexport interface SandboxCommandPlanCondition {\n readonly code: string;\n readonly summary: string;\n}\ninterface SandboxCommandPlanNodeBase {\n readonly label?: string;\n readonly condition?: SandboxCommandPlanCondition;\n}\nexport type SandboxCommandPlanNode = (SandboxCommandPlanNodeBase & {\n readonly truth: \"exact\";\n readonly command: SandboxCommandPlanCommand;\n readonly redactions?: readonly SandboxCommandPlanRedaction[];\n}) | (SandboxCommandPlanNodeBase & {\n readonly truth: \"conditional\";\n readonly children: readonly SandboxCommandPlanNode[];\n}) | (SandboxCommandPlanNodeBase & {\n readonly truth: \"opaque\";\n readonly reason: {\n readonly code: string;\n readonly summary: string;\n };\n}) | (SandboxCommandPlanNodeBase & {\n readonly truth: \"known-no-command\";\n readonly reason?: {\n readonly code: string;\n readonly summary: string;\n };\n});\nexport type SandboxCommandDeclaration = {\n readonly kind: \"stable\";\n readonly command: StableSandboxCommand;\n readonly identity: SandboxCommandIdentity;\n readonly metadata: SandboxCommandMetadata;\n} | {\n readonly kind: \"opaque\";\n readonly command: SandboxCommand;\n};\nconst STABLE_COMMAND_KEYS = new Set([\"cwd\", \"env\", \"user\", \"timeoutMs\", \"stdin\"]);\nfunction assertRecord(value: unknown, path: string): asserts value is globalThis.Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(`${path} must be an object`);\n }\n}\nfunction assertOnlyKeys(value: globalThis.Record<string, unknown>, allowed: ReadonlySet<string>, path: string): void {\n for (const key of Object.keys(value)) {\n if (!allowed.has(key))\n throw new TypeError(`${path}.${key} is not supported`);\n }\n}\nfunction nonEmptyString(value: unknown, path: string): string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new TypeError(`${path} must be a non-empty string`);\n }\n return value;\n}\nfunction normalizeCommandOptions(value: unknown, path: string): Readonly<SandboxCommandOptions> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n assertOnlyKeys(value, STABLE_COMMAND_KEYS, path);\n const normalized: {\n cwd?: string;\n env?: Readonly<globalThis.Record<string, string>>;\n user?: string;\n timeoutMs?: number;\n stdin?: string;\n } = {};\n if (value.cwd !== undefined)\n normalized.cwd = nonEmptyString(value.cwd, `${path}.cwd`);\n if (value.user !== undefined)\n normalized.user = nonEmptyString(value.user, `${path}.user`);\n if (value.timeoutMs !== undefined) {\n if (typeof value.timeoutMs !== \"number\" || !Number.isFinite(value.timeoutMs) || value.timeoutMs <= 0) {\n throw new TypeError(`${path}.timeoutMs must be a positive finite number`);\n }\n normalized.timeoutMs = value.timeoutMs;\n }\n if (value.stdin !== undefined) {\n if (typeof value.stdin !== \"string\")\n throw new TypeError(`${path}.stdin must be a string`);\n normalized.stdin = value.stdin;\n }\n if (value.env !== undefined) {\n assertRecord(value.env, `${path}.env`);\n const env = Object.create(null) as globalThis.Record<string, string>;\n for (const [key, child] of Object.entries(value.env)) {\n if (typeof child !== \"string\")\n throw new TypeError(`${path}.env.${key} must be a string`);\n env[key] = child;\n }\n normalized.env = Object.freeze(env);\n }\n return Object.freeze(normalized);\n}\nfunction cloneIdentityValue(value: unknown, path: string, ancestors: WeakSet<object>): SandboxCommandIdentityValue {\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\")\n return value;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value))\n throw new TypeError(`${path} must not contain a non-finite number`);\n return value;\n }\n if (isRegisteredSandboxContent(value))\n return value;\n if (typeof value !== \"object\") {\n throw new TypeError(`${path} must be pure identity data (no functions, undefined, symbols, or bigint)`);\n }\n if (ancestors.has(value))\n throw new TypeError(`${path} must not contain a cycle`);\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n return Object.freeze(value.map((child, index) => cloneIdentityValue(child, `${path}[${index}]`, ancestors)));\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new TypeError(`${path} must contain only plain objects, arrays, scalars, or registered content`);\n }\n const result = Object.create(null) as globalThis.Record<string, SandboxCommandIdentityValue>;\n for (const [key, child] of Object.entries(value as globalThis.Record<string, unknown>)) {\n result[key] = cloneIdentityValue(child, `${path}.${key}`, ancestors);\n }\n return Object.freeze(result);\n }\n finally {\n ancestors.delete(value);\n }\n}\nfunction normalizeIdentity(value: unknown, allowScheduling: boolean): Readonly<SandboxCommandIdentity> {\n assertRecord(value, \"defineSandboxCommand identity\");\n assertOnlyKeys(value, allowScheduling\n ? new Set([\"id\", \"revision\", \"inputs\", \"changeFrequency\", \"dependsOn\", \"requires\", \"provides\"])\n : new Set([\"id\", \"revision\", \"inputs\"]), \"defineSandboxCommand identity\");\n return Object.freeze({\n id: nonEmptyString(value.id, \"defineSandboxCommand identity.id\"),\n revision: nonEmptyString(value.revision, \"defineSandboxCommand identity.revision\"),\n inputs: cloneIdentityValue(value.inputs, \"defineSandboxCommand identity.inputs\", new WeakSet()),\n });\n}\nfunction normalizeCommandMetadata(value: SandboxCommandDefinition): NormalizedSandboxBeforeMetadata {\n return normalizeSandboxBeforeMetadata({\n id: value.id,\n ...(value.changeFrequency === undefined ? {} : { changeFrequency: value.changeFrequency }),\n ...(value.dependsOn === undefined ? {} : { dependsOn: value.dependsOn }),\n ...(value.requires === undefined ? {} : { requires: value.requires }),\n ...(value.provides === undefined ? {} : { provides: value.provides }),\n }, \"defineSandboxCommand identity\");\n}\n// @concord-code\n// @concord-implements docs/feature/sandbox/library/operations.md\n// @concord-implements docs/feature/sandbox/prepare-commands.md\nexport function defineSandboxCommand(identity: SandboxCommandDefinition, run: SandboxCommand): StableSandboxCommand {\n return defineStableSandboxCommand(identity, run, true);\n}\n/** @internal 内建命令用它把执行与预览绑定到同一个 factory 产物;不从公开 identity 反推。 */\nexport function definePlannedSandboxCommand(identity: SandboxCommandIdentity, run: SandboxCommand, plan: SandboxCommandPlanNode): StableSandboxCommand {\n return defineStableSandboxCommand(identity, run, false, freezePlanNode(plan));\n}\nfunction defineStableSandboxCommand(identity: SandboxCommandDefinition, run: SandboxCommand, explicitId: boolean, plan?: SandboxCommandPlanNode): StableSandboxCommand {\n if (typeof run !== \"function\")\n throw new TypeError(\"defineSandboxCommand run must be a function\");\n const normalized = normalizeIdentity(identity, explicitId);\n const metadata = normalizeCommandMetadata(identity);\n const stable = (async (sandbox: SandboxCommandTarget, context: SandboxCommandContext): Promise<void> => {\n await run(sandbox, context);\n }) as StableSandboxCommand;\n Object.defineProperties(stable, {\n [STABLE_SANDBOX_COMMAND]: { value: true },\n });\n STABLE_SANDBOX_COMMANDS.add(stable);\n SANDBOX_COMMAND_IDENTITIES.set(stable, normalized);\n SANDBOX_COMMAND_METADATA.set(stable, Object.freeze({ scheduling: metadata, explicitId }));\n if (plan !== undefined)\n SANDBOX_COMMAND_PLANS.set(stable, plan);\n return Object.freeze(stable);\n}\nfunction freezePlanNode(node: SandboxCommandPlanNode): SandboxCommandPlanNode {\n const condition = node.condition === undefined ? {} : { condition: Object.freeze({ ...node.condition }) };\n const label = node.label === undefined ? {} : { label: node.label };\n if (node.truth === \"exact\") {\n const command = node.command.kind === \"argv\"\n ? Object.freeze({\n ...node.command,\n args: Object.freeze([...node.command.args]),\n ...(node.command.envKeys === undefined ? {} : { envKeys: Object.freeze([...node.command.envKeys]) }),\n })\n : Object.freeze({\n ...node.command,\n ...(node.command.envKeys === undefined ? {} : { envKeys: Object.freeze([...node.command.envKeys]) }),\n });\n return Object.freeze({\n truth: \"exact\" as const,\n ...label,\n ...condition,\n command,\n ...(node.redactions === undefined ? {} : { redactions: Object.freeze([...node.redactions]) }),\n });\n }\n if (node.truth === \"conditional\") {\n return Object.freeze({\n truth: \"conditional\" as const,\n ...label,\n ...condition,\n children: Object.freeze(node.children.map(freezePlanNode)),\n });\n }\n if (node.truth === \"opaque\") {\n return Object.freeze({\n truth: \"opaque\" as const,\n ...label,\n ...condition,\n reason: Object.freeze({ ...node.reason }),\n });\n }\n return Object.freeze({\n truth: \"known-no-command\" as const,\n ...label,\n ...condition,\n ...(node.reason === undefined ? {} : { reason: Object.freeze({ ...node.reason }) }),\n });\n}\nfunction planOptions(options: Readonly<SandboxCommandOptions>): {\n readonly cwd?: string;\n readonly user?: string;\n readonly timeoutMs?: number;\n readonly envKeys?: readonly string[];\n readonly redactions?: readonly SandboxCommandPlanRedaction[];\n} {\n const envKeys = options.env === undefined ? undefined : Object.freeze(Object.keys(options.env));\n const redactions: SandboxCommandPlanRedaction[] = [];\n if (envKeys !== undefined && envKeys.length > 0)\n redactions.push(\"env-values\");\n if (options.stdin !== undefined)\n redactions.push(\"stdin\");\n return Object.freeze({\n ...(options.cwd === undefined ? {} : { cwd: options.cwd }),\n ...(options.user === undefined ? {} : { user: options.user }),\n ...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),\n ...(envKeys === undefined || envKeys.length === 0 ? {} : { envKeys }),\n ...(redactions.length === 0 ? {} : { redactions: Object.freeze(redactions) }),\n });\n}\ninterface ExecActionPayload {\n readonly executable: string;\n readonly argsJson: string;\n readonly cwd: string;\n readonly hasCwd: boolean;\n readonly envJson: string;\n readonly user: string;\n readonly hasUser: boolean;\n readonly timeoutMs: number;\n readonly hasTimeout: boolean;\n readonly stdin: string;\n readonly hasStdin: boolean;\n readonly declaredInputsJson: string;\n}\nconst execActionPayloadSchema = Schema.Struct({\n executable: Schema.String,\n argsJson: Schema.String,\n cwd: Schema.String,\n hasCwd: Schema.Boolean,\n envJson: Schema.String,\n user: Schema.String,\n hasUser: Schema.Boolean,\n timeoutMs: Schema.Number,\n hasTimeout: Schema.Boolean,\n stdin: Schema.String,\n hasStdin: Schema.Boolean,\n declaredInputsJson: Schema.String,\n});\nconst execActionCanonicalInputSchema = Schema.Struct({\n executable: Schema.String,\n argsJson: Schema.String,\n cwd: Schema.String,\n hasCwd: Schema.Boolean,\n envKeysJson: Schema.String,\n envDigest: Schema.String,\n hasEnv: Schema.Boolean,\n user: Schema.String,\n hasUser: Schema.Boolean,\n timeoutMs: Schema.Number,\n hasTimeout: Schema.Boolean,\n stdinDigest: Schema.String,\n stdinBytes: Schema.Number,\n hasStdin: Schema.Boolean,\n declaredInputsJson: Schema.String,\n});\n/**\n * The action's Type side retains the bytes needed by the runtime while its Encoded side is the\n * public/debug projection used by defineSandboxAction. Automatic identity still includes the\n * private step payload, so redacting this projection cannot create a false cache hit.\n */\nconst execActionInputSchema = execActionCanonicalInputSchema.pipe(Schema.decodeTo(execActionPayloadSchema, {\n decode: SchemaGetter.transform((input) => ({\n executable: input.executable,\n argsJson: input.argsJson,\n cwd: input.cwd,\n hasCwd: input.hasCwd,\n envJson: \"\",\n user: input.user,\n hasUser: input.hasUser,\n timeoutMs: input.timeoutMs,\n hasTimeout: input.hasTimeout,\n stdin: \"\",\n hasStdin: input.hasStdin,\n declaredInputsJson: input.declaredInputsJson,\n })),\n encode: SchemaGetter.transform((payload) => {\n const env = payload.envJson === \"\"\n ? undefined\n : JSON.parse(payload.envJson) as globalThis.Record<string, string>;\n return {\n executable: payload.executable,\n argsJson: payload.argsJson,\n cwd: payload.cwd,\n hasCwd: payload.hasCwd,\n envKeysJson: JSON.stringify(env === undefined ? [] : Object.keys(env)),\n envDigest: env === undefined ? \"\" : `sha256:${digestOf(env)}`,\n hasEnv: env !== undefined,\n user: payload.user,\n hasUser: payload.hasUser,\n timeoutMs: payload.timeoutMs,\n hasTimeout: payload.hasTimeout,\n stdinDigest: payload.hasStdin ? `sha256:${digestBytes(payload.stdin)}` : \"\",\n stdinBytes: payload.hasStdin ? Buffer.byteLength(payload.stdin) : 0,\n hasStdin: payload.hasStdin,\n declaredInputsJson: payload.declaredInputsJson,\n };\n }),\n}));\nfunction execOptionsFromPayload(input: ExecActionPayload): SandboxCommandOptions {\n return Object.freeze({\n ...(input.hasCwd ? { cwd: input.cwd } : {}),\n ...(input.envJson === \"\" ? {} : { env: JSON.parse(input.envJson) as globalThis.Record<string, string> }),\n ...(input.hasUser ? { user: input.user } : {}),\n ...(input.hasTimeout ? { timeoutMs: input.timeoutMs } : {}),\n ...(input.hasStdin ? { stdin: input.stdin } : {}),\n });\n}\nconst commandActionFamily = defineSandboxAction({\n id: \"niceeval.sandbox.command\",\n input: execActionInputSchema,\n steps: (input) => [sandboxStep.exec({\n executable: input.executable,\n args: JSON.parse(input.argsJson) as string[],\n ...execOptionsFromPayload(input),\n })] as const,\n});\nconst shellActionFamily = defineSandboxAction({\n id: \"niceeval.sandbox.shell\",\n input: execActionInputSchema,\n steps: (input) => [sandboxShellStep({\n executable: \"/bin/sh\",\n args: [\"-lc\", input.executable],\n ...execOptionsFromPayload(input),\n }, input.executable)] as const,\n});\nconst INLINE_SCHEDULING_KEYS = [\"id\", \"changeFrequency\", \"dependsOn\", \"requires\", \"provides\", \"cache\"] as const;\nconst INLINE_EXEC_KEYS = [\"cwd\", \"env\", \"user\", \"timeoutMs\", \"stdin\"] as const;\nfunction pickExecOptions(value: globalThis.Record<string, unknown>): SandboxCommandOptions {\n return {\n ...(value.cwd === undefined ? {} : { cwd: value.cwd as string }),\n ...(value.env === undefined ? {} : { env: value.env as Readonly<globalThis.Record<string, string>> }),\n ...(value.user === undefined ? {} : { user: value.user as string }),\n ...(value.timeoutMs === undefined ? {} : { timeoutMs: value.timeoutMs as number }),\n ...(value.stdin === undefined ? {} : { stdin: value.stdin as string }),\n };\n}\nfunction normalizeInlineOptions(value: unknown, path: string, payloadKeys: readonly string[], after: boolean): {\n readonly id: string;\n readonly exec: Readonly<SandboxCommandOptions>;\n readonly scheduling?: SandboxActionInstanceOptions;\n} {\n assertRecord(value, path);\n assertOnlyKeys(value, new Set(after\n ? [\"id\", ...INLINE_EXEC_KEYS, ...payloadKeys]\n : [...INLINE_SCHEDULING_KEYS, ...INLINE_EXEC_KEYS, ...payloadKeys]), path);\n const id = nonEmptyString(value.id, `${path}.id`);\n const exec = normalizeCommandOptions(pickExecOptions(value), `${path} execution options`);\n if (after)\n return Object.freeze({ id, exec });\n normalizeSandboxBeforeMetadata({\n id,\n ...(value.changeFrequency === undefined ? {} : { changeFrequency: value.changeFrequency }),\n ...(value.dependsOn === undefined ? {} : { dependsOn: value.dependsOn }),\n ...(value.requires === undefined ? {} : { requires: value.requires }),\n ...(value.provides === undefined ? {} : { provides: value.provides }),\n ...(value.cache === undefined ? {} : { cache: value.cache }),\n }, path);\n const scheduling: SandboxActionInstanceOptions = Object.freeze({\n id,\n ...(value.changeFrequency === undefined ? {} : { changeFrequency: value.changeFrequency as number }),\n ...(value.dependsOn === undefined ? {} : { dependsOn: value.dependsOn as readonly SandboxActionRef[] }),\n ...(value.requires === undefined ? {} : { requires: value.requires as readonly SandboxCapability[] }),\n ...(value.provides === undefined ? {} : { provides: value.provides as readonly SandboxCapability[] }),\n ...(value.cache === undefined\n ? {}\n : { cache: value.cache as SandboxActionInstanceOptions[\"cache\"] }),\n });\n return Object.freeze({ id, exec, scheduling });\n}\nfunction execPayload(executable: string, args: readonly string[], options: Readonly<SandboxCommandOptions>, declaredInputs: readonly RegisteredSandboxContent[] = []): ExecActionPayload {\n const env = options.env === undefined\n ? \"\"\n : JSON.stringify(Object.fromEntries(Object.entries(options.env).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)));\n return Object.freeze({\n executable,\n argsJson: JSON.stringify(args),\n cwd: options.cwd ?? \"\",\n hasCwd: options.cwd !== undefined,\n envJson: env,\n user: options.user ?? \"\",\n hasUser: options.user !== undefined,\n timeoutMs: options.timeoutMs ?? 0,\n hasTimeout: options.timeoutMs !== undefined,\n stdin: options.stdin ?? \"\",\n hasStdin: options.stdin !== undefined,\n declaredInputsJson: JSON.stringify(declaredInputs.map((content) => ({\n kind: content.kind,\n digest: content.digest,\n })).sort((left, right) => left.digest < right.digest ? -1 : left.digest > right.digest ? 1 : 0)),\n });\n}\nfunction declaredShellInputs(value: unknown, path: string): readonly RegisteredSandboxContent[] {\n if (value === undefined)\n return Object.freeze([]);\n if (!Array.isArray(value) || value.some((entry) => !isRegisteredSandboxContent(entry))) {\n throw new TypeError(`${path} must contain registerSandboxContent() handles`);\n }\n return Object.freeze([...value]);\n}\nfunction legacyCommand(executable: string, args: readonly string[] = [], options?: SandboxCommandOptions): StableSandboxCommand {\n const normalizedExecutable = nonEmptyString(executable, \"command executable\");\n if (!Array.isArray(args) || args.some((arg) => typeof arg !== \"string\")) {\n throw new TypeError(\"command args must be an array of strings\");\n }\n const normalizedArgs = Object.freeze([...args]);\n const normalizedOptions = normalizeCommandOptions(options, \"command options\");\n const preview = planOptions(normalizedOptions);\n return definePlannedSandboxCommand({\n id: \"niceeval.sandbox.command\",\n revision: \"1\",\n inputs: {\n executable: normalizedExecutable,\n args: normalizedArgs,\n options: normalizedOptions as SandboxCommandIdentityValue,\n },\n }, async (sandbox) => {\n await sandbox.runCommandOrThrow(normalizedExecutable, normalizedArgs, normalizedOptions);\n }, {\n truth: \"exact\",\n command: {\n kind: \"argv\",\n executable: normalizedExecutable,\n args: normalizedArgs,\n ...(preview.cwd === undefined ? {} : { cwd: preview.cwd }),\n ...(preview.user === undefined ? {} : { user: preview.user }),\n ...(preview.timeoutMs === undefined ? {} : { timeoutMs: preview.timeoutMs }),\n ...(preview.envKeys === undefined ? {} : { envKeys: preview.envKeys }),\n },\n ...(preview.redactions === undefined ? {} : { redactions: preview.redactions }),\n });\n}\nfunction legacyShell(script: string, options?: SandboxCommandOptions): StableSandboxCommand {\n if (typeof script !== \"string\")\n throw new TypeError(\"shell script must be a string\");\n const normalizedOptions = normalizeCommandOptions(options, \"shell options\");\n const preview = planOptions(normalizedOptions);\n return definePlannedSandboxCommand({\n id: \"niceeval.sandbox.shell\",\n revision: \"1\",\n inputs: { script, options: normalizedOptions as SandboxCommandIdentityValue },\n }, async (sandbox) => {\n await sandbox.runShellOrThrow(script, normalizedOptions);\n }, {\n truth: \"exact\",\n command: {\n kind: \"shell\",\n script,\n ...(preview.cwd === undefined ? {} : { cwd: preview.cwd }),\n ...(preview.user === undefined ? {} : { user: preview.user }),\n ...(preview.timeoutMs === undefined ? {} : { timeoutMs: preview.timeoutMs }),\n ...(preview.envKeys === undefined ? {} : { envKeys: preview.envKeys }),\n },\n ...(preview.redactions === undefined ? {} : { redactions: preview.redactions }),\n });\n}\nconst commandImpl = (function (executable: string, args: readonly string[] = [], options?: SandboxCommandOptions | CommandActionOptions): StableSandboxCommand | SandboxAction {\n if (options !== undefined &&\n typeof options === \"object\" &&\n Object.prototype.hasOwnProperty.call(options, \"id\")) {\n const normalizedExecutable = nonEmptyString(executable, \"command executable\");\n if (!Array.isArray(args) || args.some((arg) => typeof arg !== \"string\")) {\n throw new TypeError(\"command args must be an array of strings\");\n }\n const normalized = normalizeInlineOptions(options, \"command options\", [], false);\n return commandActionFamily(execPayload(normalizedExecutable, Object.freeze([...args]), normalized.exec), normalized.scheduling);\n }\n return legacyCommand(executable, args, options);\n}) as CommandActionFactory;\nObject.defineProperty(commandImpl, \"after\", {\n value: (executable: string, args: readonly string[], options: CommandAfterActionOptions): SandboxAfterAction => {\n const normalizedExecutable = nonEmptyString(executable, \"command.after executable\");\n if (!Array.isArray(args) || args.some((arg) => typeof arg !== \"string\")) {\n throw new TypeError(\"command.after args must be an array of strings\");\n }\n const normalized = normalizeInlineOptions(options, \"command.after options\", [], true);\n return commandActionFamily.after(execPayload(normalizedExecutable, Object.freeze([...args]), normalized.exec), { id: normalized.id });\n },\n});\nexport const command = Object.freeze(commandImpl);\nconst shellImpl = (function (input: string | ShellActionInput, legacyOptions?: SandboxCommandOptions): StableSandboxCommand | SandboxAction {\n if (typeof input === \"string\")\n return legacyShell(input, legacyOptions);\n const normalized = normalizeInlineOptions(input, \"shell input\", [\"command\", \"inputs\"], false);\n const script = nonEmptyString(input.command, \"shell input.command\");\n const inputs = declaredShellInputs(input.inputs, \"shell input.inputs\");\n return shellActionFamily(execPayload(script, [], normalized.exec, inputs), normalized.scheduling);\n}) as ShellActionFactory;\nObject.defineProperty(shellImpl, \"after\", {\n value: (input: ShellAfterActionInput): SandboxAfterAction => {\n const normalized = normalizeInlineOptions(input, \"shell.after input\", [\"command\", \"inputs\"], true);\n const script = nonEmptyString(input.command, \"shell.after input.command\");\n const inputs = declaredShellInputs(input.inputs, \"shell.after input.inputs\");\n return shellActionFamily.after(execPayload(script, [], normalized.exec, inputs), { id: normalized.id });\n },\n});\nexport const shell = Object.freeze(shellImpl);\nexport function sandboxCommandDeclarationOf(command: SandboxCommand): SandboxCommandDeclaration {\n if (typeof command !== \"function\")\n throw new TypeError(\"SandboxLayer.before requires an Action or command function\");\n const identity = SANDBOX_COMMAND_IDENTITIES.get(command as object);\n if (STABLE_SANDBOX_COMMANDS.has(command as object) && identity !== undefined) {\n const metadata = SANDBOX_COMMAND_METADATA.get(command as object);\n if (metadata === undefined)\n throw new TypeError(\"Stable Sandbox command metadata is missing\");\n return Object.freeze({\n kind: \"stable\" as const,\n command: command as StableSandboxCommand,\n identity,\n metadata,\n });\n }\n return Object.freeze({ kind: \"opaque\" as const, command });\n}\nexport function sandboxCommandMetadataOf(command: SandboxCommand): SandboxCommandMetadata | undefined {\n return SANDBOX_COMMAND_METADATA.get(command as object);\n}\n/** @internal Layer dispatches by the private factory brand, never by function shape or identity fields. */\nexport function isStableSandboxCommand(value: unknown): value is StableSandboxCommand {\n return typeof value === \"function\" && STABLE_SANDBOX_COMMANDS.has(value as object);\n}\nexport function sandboxCommandIdentityOf(command: SandboxCommand): SandboxCommandIdentity | undefined {\n const declaration = sandboxCommandDeclarationOf(command);\n return declaration.kind === \"stable\" ? declaration.identity : undefined;\n}\n/** @internal 只读 factory 私有品牌;未知 stable command 仍是 opaque,绝不按 identity 猜。 */\nexport function sandboxCommandPlanOf(command: SandboxCommand): SandboxCommandPlanNode | undefined {\n return SANDBOX_COMMAND_PLANS.get(command as object);\n}\n/** Link/fingerprint 层可把 identity 投影成普通 JSON;content handle 只暴露 kind + digest。 */\nexport function sandboxCommandIdentityJson(value: SandboxCommandIdentityValue): JsonValue {\n if (isRegisteredSandboxContent(value))\n return { kind: value.kind, digest: value.digest };\n if (Array.isArray(value))\n return value.map((child) => sandboxCommandIdentityJson(child));\n if (value !== null && typeof value === \"object\") {\n return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, sandboxCommandIdentityJson(child)]));\n }\n return value;\n}\n"]}
@@ -57,7 +57,7 @@ export type SandboxProgress = (update: {
57
57
  export type SandboxDiagnosticSink = (input: DiagnosticInput) => void;
58
58
  export type SandboxCleanupCommand = (sandbox: SandboxCommandTarget, context: Omit<SandboxCommandContext, "onCleanup">) => MaybePromise<void>;
59
59
  export interface SandboxCommandContext {
60
- readonly phase: "before" | "agent.post-setup" | "agent.pre-teardown";
60
+ readonly phase: "before" | "agent.before" | "agent.after";
61
61
  /** 当前 Attempt 的 Eval Group;未分组 Eval 省略。 */
62
62
  readonly evalGroup?: {
63
63
  readonly id: string;
@@ -57,7 +57,7 @@ export type SandboxProgress = (update: {
57
57
  export type SandboxDiagnosticSink = (input: DiagnosticInput) => void;
58
58
  export type SandboxCleanupCommand = (sandbox: SandboxCommandTarget, context: Omit<SandboxCommandContext, "onCleanup">) => MaybePromise<void>;
59
59
  export interface SandboxCommandContext {
60
- readonly phase: "before" | "agent.post-setup" | "agent.pre-teardown";
60
+ readonly phase: "before" | "agent.before" | "agent.after";
61
61
  /** 当前 Attempt 的 Eval Group;未分组 Eval 省略。 */
62
62
  readonly evalGroup?: {
63
63
  readonly id: string;
@@ -57,7 +57,7 @@ export type SandboxProgress = (update: {
57
57
  export type SandboxDiagnosticSink = (input: DiagnosticInput) => void;
58
58
  export type SandboxCleanupCommand = (sandbox: SandboxCommandTarget, context: Omit<SandboxCommandContext, "onCleanup">) => MaybePromise<void>;
59
59
  export interface SandboxCommandContext {
60
- readonly phase: "before" | "agent.post-setup" | "agent.pre-teardown";
60
+ readonly phase: "before" | "agent.before" | "agent.after";
61
61
  /** 当前 Attempt 的 Eval Group;未分组 Eval 省略。 */
62
62
  readonly evalGroup?: {
63
63
  readonly id: string;
@@ -116,7 +116,7 @@ function probeDockerServerPlatform() {
116
116
  });
117
117
  }
118
118
  /** 从 Compose 原文抽取 services 的黑名单 / build / volume 面。未知字段忽略。 */
119
- // @concord-code ne-sandbox-compose-inspection
119
+ // @concord-code
120
120
  // @concord-implements docs/feature/sandbox/library.md
121
121
  // @concord-implements docs/feature/sandbox/architecture.md
122
122
  function inspectComposeYaml(raw) {
@@ -869,7 +869,7 @@ function composeMaterializationError(projectName, cause) {
869
869
  cause: error,
870
870
  });
871
871
  }
872
- // @concord-code ne-sandbox-compose-materialize
872
+ // @concord-code
873
873
  // @concord-implements docs/feature/sandbox/library.md
874
874
  // @concord-implements docs/feature/sandbox/architecture.md
875
875
  function materializeDockerComposeProviderCase(plan, opts) {