niceeval 0.15.1-canary.76 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/INDEX.md +45 -40
  2. package/dist/adapter-execution-trace.cjs.map +1 -1
  3. package/dist/adapter-execution-trace.d.cts +26 -0
  4. package/dist/adapter-execution-trace.d.mts +26 -0
  5. package/dist/adapter-execution-trace.d.ts +26 -0
  6. package/dist/adapter-usage.cjs.map +1 -1
  7. package/dist/adapter-usage.d.cts +9 -0
  8. package/dist/adapter-usage.d.mts +9 -0
  9. package/dist/adapter-usage.d.ts +9 -0
  10. package/dist/adapter.cjs +19 -4
  11. package/dist/adapter.cjs.map +1 -1
  12. package/dist/adapter.d.cts +37 -12
  13. package/dist/adapter.d.mts +37 -12
  14. package/dist/adapter.d.ts +37 -12
  15. package/dist/agents/ai-sdk.cjs +3 -0
  16. package/dist/agents/ai-sdk.cjs.map +1 -1
  17. package/dist/agents/bub.cjs +3 -0
  18. package/dist/agents/bub.cjs.map +1 -1
  19. package/dist/agents/claude-code-native.cjs +28 -2
  20. package/dist/agents/claude-code-native.cjs.map +1 -1
  21. package/dist/agents/claude-code.cjs +3 -0
  22. package/dist/agents/claude-code.cjs.map +1 -1
  23. package/dist/agents/codex.cjs +3 -0
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/coding-cli-versions.cjs +9 -10
  26. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  27. package/dist/agents/coding-cli-versions.d.cts +1 -1
  28. package/dist/agents/coding-cli-versions.d.mts +1 -1
  29. package/dist/agents/coding-cli-versions.d.ts +1 -1
  30. package/dist/agents/deepseek-harness.cjs +3 -0
  31. package/dist/agents/deepseek-harness.cjs.map +1 -1
  32. package/dist/agents/hermes.cjs +3 -0
  33. package/dist/agents/hermes.cjs.map +1 -1
  34. package/dist/agents/index.cjs.map +1 -1
  35. package/dist/agents/index.d.cts +3 -2
  36. package/dist/agents/index.d.mts +3 -2
  37. package/dist/agents/index.d.ts +3 -2
  38. package/dist/agents/omp.cjs +3 -0
  39. package/dist/agents/omp.cjs.map +1 -1
  40. package/dist/agents/openai-compat.cjs +6 -0
  41. package/dist/agents/openai-compat.cjs.map +1 -1
  42. package/dist/agents/openclaw.cjs +3 -0
  43. package/dist/agents/openclaw.cjs.map +1 -1
  44. package/dist/agents/opencode.cjs +3 -0
  45. package/dist/agents/opencode.cjs.map +1 -1
  46. package/dist/agents/sdk-streams.cjs +9 -0
  47. package/dist/agents/sdk-streams.cjs.map +1 -1
  48. package/dist/agents/ui-message-stream.cjs +3 -0
  49. package/dist/agents/ui-message-stream.cjs.map +1 -1
  50. package/dist/assertions/api.cjs.map +1 -1
  51. package/dist/assertions/api.d.cts +27 -5
  52. package/dist/assertions/api.d.mts +27 -5
  53. package/dist/assertions/api.d.ts +27 -5
  54. package/dist/assertions/collection.cjs +6 -0
  55. package/dist/assertions/collection.cjs.map +1 -1
  56. package/dist/assertions/collection.d.cts +4 -2
  57. package/dist/assertions/collection.d.mts +4 -2
  58. package/dist/assertions/collection.d.ts +4 -2
  59. package/dist/assertions/collection.js +12 -8
  60. package/dist/assertions/context-match.cjs +70 -0
  61. package/dist/assertions/context-match.cjs.map +1 -0
  62. package/dist/assertions/context-match.d.cts +107 -0
  63. package/dist/assertions/context-match.d.mts +107 -0
  64. package/dist/assertions/context-match.d.ts +107 -0
  65. package/dist/assertions/context-match.js +12 -0
  66. package/dist/assertions/context-match.js.map +1 -0
  67. package/dist/assertions/full-content.cjs +109 -0
  68. package/dist/assertions/full-content.cjs.map +1 -0
  69. package/dist/assertions/full-content.d.cts +6 -0
  70. package/dist/assertions/full-content.d.mts +6 -0
  71. package/dist/assertions/full-content.d.ts +6 -0
  72. package/dist/assertions/full-content.js +12 -0
  73. package/dist/assertions/full-content.js.map +1 -0
  74. package/dist/assertions/judge-presets.cjs +2 -34
  75. package/dist/assertions/judge-presets.cjs.map +1 -1
  76. package/dist/assertions/judge-presets.d.cts +6 -9
  77. package/dist/assertions/judge-presets.d.mts +6 -9
  78. package/dist/assertions/judge-presets.d.ts +6 -9
  79. package/dist/assertions/judge-presets.js +8 -8
  80. package/dist/assertions/judge.cjs +107 -29
  81. package/dist/assertions/judge.cjs.map +1 -1
  82. package/dist/assertions/judge.d.cts +2 -0
  83. package/dist/assertions/judge.d.mts +2 -0
  84. package/dist/assertions/judge.d.ts +2 -0
  85. package/dist/assertions/match.cjs +244 -5
  86. package/dist/assertions/match.cjs.map +1 -1
  87. package/dist/assertions/match.d.cts +43 -3
  88. package/dist/assertions/match.d.mts +43 -3
  89. package/dist/assertions/match.d.ts +43 -3
  90. package/dist/assertions/match.js +88 -78
  91. package/dist/assertions/material.cjs +520 -0
  92. package/dist/assertions/material.cjs.map +1 -0
  93. package/dist/assertions/material.d.cts +56 -0
  94. package/dist/assertions/material.d.mts +56 -0
  95. package/dist/assertions/material.d.ts +56 -0
  96. package/dist/assertions/material.js +20 -0
  97. package/dist/assertions/material.js.map +1 -0
  98. package/dist/assertions/record/attachment.cjs +5 -2
  99. package/dist/assertions/record/attachment.cjs.map +1 -1
  100. package/dist/assertions/record/codec.cjs +2 -1
  101. package/dist/assertions/record/codec.cjs.map +1 -1
  102. package/dist/assertions/record/model.cjs.map +1 -1
  103. package/dist/assertions/record/model.d.cts +6 -1
  104. package/dist/assertions/record/model.d.mts +6 -1
  105. package/dist/assertions/record/model.d.ts +6 -1
  106. package/dist/assertions/runtime.cjs +207 -14
  107. package/dist/assertions/runtime.cjs.map +1 -1
  108. package/dist/assertions/runtime.d.cts +9 -0
  109. package/dist/assertions/runtime.d.mts +9 -0
  110. package/dist/assertions/runtime.d.ts +9 -0
  111. package/dist/assertions/runtime.js +14 -8
  112. package/dist/assertions/score-match-audit.cjs +18 -8
  113. package/dist/assertions/score-match-audit.cjs.map +1 -1
  114. package/dist/assertions/score-match-gateway.cjs +83 -25
  115. package/dist/assertions/score-match-gateway.cjs.map +1 -1
  116. package/dist/assertions/score-match-gateway.d.cts +2 -0
  117. package/dist/assertions/score-match-gateway.d.mts +2 -0
  118. package/dist/assertions/score-match-gateway.d.ts +2 -0
  119. package/dist/assertions/value-composition.test-d.cjs +77 -0
  120. package/dist/assertions/value-composition.test-d.cjs.map +1 -0
  121. package/dist/assertions/value-composition.test-d.d.cts +1 -0
  122. package/dist/assertions/value-composition.test-d.d.mts +1 -0
  123. package/dist/assertions/value-composition.test-d.d.ts +1 -0
  124. package/dist/assertions/value-composition.test-d.js +4 -0
  125. package/dist/assertions/value-composition.test-d.js.map +1 -0
  126. package/dist/context/assert-first.cjs +207 -213
  127. package/dist/context/assert-first.cjs.map +1 -1
  128. package/dist/context/assert-first.d.cts +49 -23
  129. package/dist/context/assert-first.d.mts +49 -23
  130. package/dist/context/assert-first.d.ts +49 -23
  131. package/dist/context/session.cjs +111 -9
  132. package/dist/context/session.cjs.map +1 -1
  133. package/dist/context/session.d.cts +18 -0
  134. package/dist/context/session.d.mts +18 -0
  135. package/dist/context/session.d.ts +18 -0
  136. package/dist/define.cjs +17 -1
  137. package/dist/define.cjs.map +1 -1
  138. package/dist/eval/cli/contribution.cjs +2 -0
  139. package/dist/eval/cli/contribution.cjs.map +1 -1
  140. package/dist/eval/host/index.cjs +2 -0
  141. package/dist/eval/host/index.cjs.map +1 -1
  142. package/dist/eval/record/evaluation.cjs +3 -0
  143. package/dist/eval/record/evaluation.cjs.map +1 -1
  144. package/dist/eval/record/membership-provenance.d.cts +15 -15
  145. package/dist/eval/record/membership-provenance.d.mts +15 -15
  146. package/dist/eval/record/membership-provenance.d.ts +15 -15
  147. package/dist/eval/record/score.cjs +7 -0
  148. package/dist/eval/record/score.cjs.map +1 -1
  149. package/dist/eval/record/sealed-assertion.cjs +3 -0
  150. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  151. package/dist/eval/record/verdict.cjs +7 -0
  152. package/dist/eval/record/verdict.cjs.map +1 -1
  153. package/dist/expect/index.cjs +8 -2
  154. package/dist/expect/index.cjs.map +1 -1
  155. package/dist/expect/index.d.cts +9 -4
  156. package/dist/expect/index.d.mts +9 -4
  157. package/dist/expect/index.d.ts +9 -4
  158. package/dist/expect/index.js +72 -62
  159. package/dist/expect/index.mjs +72 -62
  160. package/dist/experiment/host/cli/contribution.cjs +37 -23
  161. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  162. package/dist/experiment/host/cli/contribution.d.cts +9 -1
  163. package/dist/experiment/host/cli/contribution.d.mts +9 -1
  164. package/dist/experiment/host/cli/contribution.d.ts +9 -1
  165. package/dist/experiment/host/current.cjs +74 -0
  166. package/dist/experiment/host/current.cjs.map +1 -0
  167. package/dist/experiment/host/current.d.cts +33 -0
  168. package/dist/experiment/host/current.d.mts +33 -0
  169. package/dist/experiment/host/current.d.ts +33 -0
  170. package/dist/experiment/host/current.js +10 -0
  171. package/dist/experiment/host/current.js.map +1 -0
  172. package/dist/experiment/host/index.cjs +17 -174
  173. package/dist/experiment/host/index.cjs.map +1 -1
  174. package/dist/experiment/host/index.d.cts +8 -54
  175. package/dist/experiment/host/index.d.mts +8 -54
  176. package/dist/experiment/host/index.d.ts +8 -54
  177. package/dist/experiment/host/operations.cjs +33 -10
  178. package/dist/experiment/host/operations.cjs.map +1 -1
  179. package/dist/experiment/host/operations.d.cts +29 -1
  180. package/dist/experiment/host/operations.d.mts +29 -1
  181. package/dist/experiment/host/operations.d.ts +29 -1
  182. package/dist/experiment/host/operations.js +6 -4
  183. package/dist/experiment/host/requirements.cjs +3 -0
  184. package/dist/experiment/host/requirements.cjs.map +1 -0
  185. package/dist/experiment/host/requirements.d.cts +3 -0
  186. package/dist/experiment/host/requirements.d.mts +3 -0
  187. package/dist/experiment/host/requirements.d.ts +3 -0
  188. package/dist/experiment/host/requirements.js +4 -0
  189. package/dist/experiment/host/requirements.js.map +1 -0
  190. package/dist/experiment/host/runtime.cjs +179 -0
  191. package/dist/experiment/host/runtime.cjs.map +1 -0
  192. package/dist/experiment/host/runtime.d.cts +79 -0
  193. package/dist/experiment/host/runtime.d.mts +79 -0
  194. package/dist/experiment/host/runtime.d.ts +79 -0
  195. package/dist/experiment/host/runtime.js +6 -0
  196. package/dist/experiment/host/runtime.js.map +1 -0
  197. package/dist/experiment/host/types.cjs.map +1 -1
  198. package/dist/experiment/host/types.d.cts +17 -16
  199. package/dist/experiment/host/types.d.mts +17 -16
  200. package/dist/experiment/host/types.d.ts +17 -16
  201. package/dist/fresh-import.cjs +2 -1
  202. package/dist/fresh-import.cjs.map +1 -1
  203. package/dist/index.cjs +4 -2
  204. package/dist/index.cjs.map +1 -1
  205. package/dist/index.d.cts +12 -6
  206. package/dist/index.d.mts +12 -6
  207. package/dist/index.d.ts +12 -6
  208. package/dist/index.js +32 -30
  209. package/dist/index.mjs +32 -30
  210. package/dist/inspection/artifacts.cjs +83 -54
  211. package/dist/inspection/artifacts.cjs.map +1 -1
  212. package/dist/inspection/artifacts.d.cts +8 -0
  213. package/dist/inspection/artifacts.d.mts +8 -0
  214. package/dist/inspection/artifacts.d.ts +8 -0
  215. package/dist/inspection/artifacts.js +2 -0
  216. package/dist/inspection/assertions.cjs +4 -1
  217. package/dist/inspection/assertions.cjs.map +1 -1
  218. package/dist/inspection/cli/contribution.cjs +27 -4
  219. package/dist/inspection/cli/contribution.cjs.map +1 -1
  220. package/dist/inspection/cli/contribution.d.cts +2 -1
  221. package/dist/inspection/cli/contribution.d.mts +2 -1
  222. package/dist/inspection/cli/contribution.d.ts +2 -1
  223. package/dist/inspection/execution-traces.cjs +114 -8
  224. package/dist/inspection/execution-traces.cjs.map +1 -1
  225. package/dist/inspection/execution-traces.d.cts +38 -0
  226. package/dist/inspection/execution-traces.d.mts +38 -0
  227. package/dist/inspection/execution-traces.d.ts +38 -0
  228. package/dist/inspection/facts.cjs +12 -0
  229. package/dist/inspection/facts.cjs.map +1 -1
  230. package/dist/inspection/limits.cjs +5 -1
  231. package/dist/inspection/limits.cjs.map +1 -1
  232. package/dist/inspection/limits.d.cts +4 -0
  233. package/dist/inspection/limits.d.mts +4 -0
  234. package/dist/inspection/limits.d.ts +4 -0
  235. package/dist/inspection/limits.js +6 -2
  236. package/dist/inspection/overview.cjs +74 -33
  237. package/dist/inspection/overview.cjs.map +1 -1
  238. package/dist/inspection/overview.d.cts +19 -1
  239. package/dist/inspection/overview.d.mts +19 -1
  240. package/dist/inspection/overview.d.ts +19 -1
  241. package/dist/inspection/overview.js +4 -2
  242. package/dist/inspection/project-input.cjs +9 -0
  243. package/dist/inspection/project-input.cjs.map +1 -0
  244. package/dist/inspection/project-input.d.cts +20 -0
  245. package/dist/inspection/project-input.d.mts +20 -0
  246. package/dist/inspection/project-input.d.ts +20 -0
  247. package/dist/inspection/project-input.js +8 -0
  248. package/dist/inspection/project-input.js.map +1 -0
  249. package/dist/inspection/project-result.cjs +60 -0
  250. package/dist/inspection/project-result.cjs.map +1 -0
  251. package/dist/inspection/project-result.d.cts +1264 -0
  252. package/dist/inspection/project-result.d.mts +1264 -0
  253. package/dist/inspection/project-result.d.ts +1264 -0
  254. package/dist/inspection/project-result.js +10 -0
  255. package/dist/inspection/project-result.js.map +1 -0
  256. package/dist/inspection/project-source.cjs +109 -0
  257. package/dist/inspection/project-source.cjs.map +1 -0
  258. package/dist/inspection/project-source.d.cts +10 -0
  259. package/dist/inspection/project-source.d.mts +10 -0
  260. package/dist/inspection/project-source.d.ts +10 -0
  261. package/dist/inspection/project-source.js +6 -0
  262. package/dist/inspection/project-source.js.map +1 -0
  263. package/dist/inspection/project.cjs +100 -0
  264. package/dist/inspection/project.cjs.map +1 -0
  265. package/dist/inspection/project.d.cts +3 -0
  266. package/dist/inspection/project.d.mts +3 -0
  267. package/dist/inspection/project.d.ts +3 -0
  268. package/dist/inspection/project.js +6 -0
  269. package/dist/inspection/project.js.map +1 -0
  270. package/dist/inspection/protocol.cjs +19 -9
  271. package/dist/inspection/protocol.cjs.map +1 -1
  272. package/dist/inspection/protocol.d.cts +5506 -38189
  273. package/dist/inspection/protocol.d.mts +5506 -38189
  274. package/dist/inspection/protocol.d.ts +5506 -38189
  275. package/dist/inspection/public.mjs +896 -84
  276. package/dist/inspection/query.cjs +2 -0
  277. package/dist/inspection/query.cjs.map +1 -1
  278. package/dist/inspection/results.cjs +234 -29
  279. package/dist/inspection/results.cjs.map +1 -1
  280. package/dist/inspection/results.d.cts +870 -13
  281. package/dist/inspection/results.d.mts +870 -13
  282. package/dist/inspection/results.d.ts +870 -13
  283. package/dist/inspection/results.js +36 -34
  284. package/dist/inspection/select.cjs +126 -14
  285. package/dist/inspection/select.cjs.map +1 -1
  286. package/dist/inspection/select.d.cts +1 -1
  287. package/dist/inspection/select.d.mts +1 -1
  288. package/dist/inspection/select.d.ts +1 -1
  289. package/dist/inspection/source.cjs +4 -0
  290. package/dist/inspection/source.cjs.map +1 -1
  291. package/dist/inspection/sources.cjs +5 -0
  292. package/dist/inspection/sources.cjs.map +1 -1
  293. package/dist/inspection/trace.cjs +82 -84
  294. package/dist/inspection/trace.cjs.map +1 -1
  295. package/dist/inspection/trace.d.cts +7 -2
  296. package/dist/inspection/trace.d.mts +7 -2
  297. package/dist/inspection/trace.d.ts +7 -2
  298. package/dist/model-slots.cjs +35 -0
  299. package/dist/model-slots.cjs.map +1 -0
  300. package/dist/model-slots.d.cts +19 -0
  301. package/dist/model-slots.d.mts +19 -0
  302. package/dist/model-slots.d.ts +19 -0
  303. package/dist/model-slots.js +8 -0
  304. package/dist/model-slots.js.map +1 -0
  305. package/dist/o11y/adapter-call-price.cjs +4 -0
  306. package/dist/o11y/adapter-call-price.cjs.map +1 -1
  307. package/dist/o11y/adapter-call-price.d.cts +24 -0
  308. package/dist/o11y/adapter-call-price.d.mts +24 -0
  309. package/dist/o11y/adapter-call-price.d.ts +24 -0
  310. package/dist/o11y/adapter-call-price.js +6 -2
  311. package/dist/o11y/adapter-usage-projection.cjs +158 -0
  312. package/dist/o11y/adapter-usage-projection.cjs.map +1 -0
  313. package/dist/o11y/adapter-usage-projection.d.cts +141 -0
  314. package/dist/o11y/adapter-usage-projection.d.mts +141 -0
  315. package/dist/o11y/adapter-usage-projection.d.ts +141 -0
  316. package/dist/o11y/adapter-usage-projection.js +20 -0
  317. package/dist/o11y/adapter-usage-projection.js.map +1 -0
  318. package/dist/o11y/eval-usage.cjs +149 -0
  319. package/dist/o11y/eval-usage.cjs.map +1 -0
  320. package/dist/o11y/eval-usage.d.cts +46 -0
  321. package/dist/o11y/eval-usage.d.mts +46 -0
  322. package/dist/o11y/eval-usage.d.ts +46 -0
  323. package/dist/o11y/eval-usage.js +8 -0
  324. package/dist/o11y/eval-usage.js.map +1 -0
  325. package/dist/o11y/judge-call-price.cjs +62 -0
  326. package/dist/o11y/judge-call-price.cjs.map +1 -0
  327. package/dist/o11y/judge-call-price.d.cts +3 -0
  328. package/dist/o11y/judge-call-price.d.mts +3 -0
  329. package/dist/o11y/judge-call-price.d.ts +3 -0
  330. package/dist/o11y/judge-call-price.js +6 -0
  331. package/dist/o11y/judge-call-price.js.map +1 -0
  332. package/dist/o11y/judge-usage-projection.cjs +134 -0
  333. package/dist/o11y/judge-usage-projection.cjs.map +1 -0
  334. package/dist/o11y/judge-usage-projection.d.cts +18 -0
  335. package/dist/o11y/judge-usage-projection.d.mts +18 -0
  336. package/dist/o11y/judge-usage-projection.d.ts +18 -0
  337. package/dist/o11y/judge-usage-projection.js +20 -0
  338. package/dist/o11y/judge-usage-projection.js.map +1 -0
  339. package/dist/o11y/judge-usage-receipt.cjs +135 -0
  340. package/dist/o11y/judge-usage-receipt.cjs.map +1 -0
  341. package/dist/o11y/judge-usage-receipt.d.cts +5 -0
  342. package/dist/o11y/judge-usage-receipt.d.mts +5 -0
  343. package/dist/o11y/judge-usage-receipt.d.ts +5 -0
  344. package/dist/o11y/judge-usage-receipt.js +6 -0
  345. package/dist/o11y/judge-usage-receipt.js.map +1 -0
  346. package/dist/o11y/judge-usage.cjs +171 -0
  347. package/dist/o11y/judge-usage.cjs.map +1 -0
  348. package/dist/o11y/judge-usage.d.cts +35 -0
  349. package/dist/o11y/judge-usage.d.mts +35 -0
  350. package/dist/o11y/judge-usage.d.ts +35 -0
  351. package/dist/o11y/judge-usage.js +6 -0
  352. package/dist/o11y/judge-usage.js.map +1 -0
  353. package/dist/plugin/contracts.cjs +2 -0
  354. package/dist/plugin/contracts.cjs.map +1 -1
  355. package/dist/plugin/link.cjs +7 -0
  356. package/dist/plugin/link.cjs.map +1 -1
  357. package/dist/record/attachment/protocol.cjs +8 -6
  358. package/dist/record/attachment/protocol.cjs.map +1 -1
  359. package/dist/record/attachment/protocol.d.cts +10 -0
  360. package/dist/record/attachment/protocol.d.mts +10 -0
  361. package/dist/record/attachment/protocol.d.ts +10 -0
  362. package/dist/record/attachment/protocol.js +38 -36
  363. package/dist/record/codec/seal-manifest.d.cts +3 -3
  364. package/dist/record/codec/seal-manifest.d.mts +3 -3
  365. package/dist/record/codec/seal-manifest.d.ts +3 -3
  366. package/dist/record/family/adapter-usage/definition.d.cts +1 -0
  367. package/dist/record/family/adapter-usage/definition.d.mts +1 -0
  368. package/dist/record/family/adapter-usage/definition.d.ts +1 -0
  369. package/dist/record/family/adapter-usage/persistence.cjs +1 -1
  370. package/dist/record/family/adapter-usage/persistence.cjs.map +1 -1
  371. package/dist/record/family/adapter-usage/persistence.d.cts +2 -1
  372. package/dist/record/family/adapter-usage/persistence.d.mts +2 -1
  373. package/dist/record/family/adapter-usage/persistence.d.ts +2 -1
  374. package/dist/record/family/adapter-usage/schema.cjs +21 -2
  375. package/dist/record/family/adapter-usage/schema.cjs.map +1 -1
  376. package/dist/record/family/adapter-usage/schema.d.cts +85 -0
  377. package/dist/record/family/adapter-usage/schema.d.mts +85 -0
  378. package/dist/record/family/adapter-usage/schema.d.ts +85 -0
  379. package/dist/record/family/adapter-usage/schema.js +18 -12
  380. package/dist/record/family/catalog.cjs +31 -27
  381. package/dist/record/family/catalog.cjs.map +1 -1
  382. package/dist/record/family/catalog.d.cts +94 -3
  383. package/dist/record/family/catalog.d.mts +94 -3
  384. package/dist/record/family/catalog.d.ts +94 -3
  385. package/dist/record/family/current.cjs +45 -42
  386. package/dist/record/family/current.cjs.map +1 -1
  387. package/dist/record/family/current.d.cts +240 -1
  388. package/dist/record/family/current.d.mts +240 -1
  389. package/dist/record/family/current.d.ts +240 -1
  390. package/dist/record/family/execution-traces/definition.d.cts +26 -0
  391. package/dist/record/family/execution-traces/definition.d.mts +26 -0
  392. package/dist/record/family/execution-traces/definition.d.ts +26 -0
  393. package/dist/record/family/execution-traces/definition.js +20 -14
  394. package/dist/record/family/execution-traces/schema.cjs +57 -1
  395. package/dist/record/family/execution-traces/schema.cjs.map +1 -1
  396. package/dist/record/family/execution-traces/schema.d.cts +114 -0
  397. package/dist/record/family/execution-traces/schema.d.mts +114 -0
  398. package/dist/record/family/execution-traces/schema.d.ts +114 -0
  399. package/dist/record/family/execution-traces/schema.js +18 -12
  400. package/dist/record/family/judge-usage/definition.cjs +12 -0
  401. package/dist/record/family/judge-usage/definition.cjs.map +1 -0
  402. package/dist/record/family/judge-usage/definition.d.cts +91 -0
  403. package/dist/record/family/judge-usage/definition.d.mts +91 -0
  404. package/dist/record/family/judge-usage/definition.d.ts +91 -0
  405. package/dist/record/family/judge-usage/definition.js +6 -0
  406. package/dist/record/family/judge-usage/definition.js.map +1 -0
  407. package/dist/record/family/judge-usage/persistence.cjs +10 -0
  408. package/dist/record/family/judge-usage/persistence.cjs.map +1 -0
  409. package/dist/record/family/judge-usage/persistence.d.cts +91 -0
  410. package/dist/record/family/judge-usage/persistence.d.mts +91 -0
  411. package/dist/record/family/judge-usage/persistence.d.ts +91 -0
  412. package/dist/record/family/judge-usage/persistence.js +6 -0
  413. package/dist/record/family/judge-usage/persistence.js.map +1 -0
  414. package/dist/record/family/judge-usage/schema.cjs +307 -0
  415. package/dist/record/family/judge-usage/schema.cjs.map +1 -0
  416. package/dist/record/family/judge-usage/schema.d.cts +351 -0
  417. package/dist/record/family/judge-usage/schema.d.mts +351 -0
  418. package/dist/record/family/judge-usage/schema.d.ts +351 -0
  419. package/dist/record/family/judge-usage/schema.js +18 -0
  420. package/dist/record/family/judge-usage/schema.js.map +1 -0
  421. package/dist/record/host/sqlite-host.cjs +55 -9
  422. package/dist/record/host/sqlite-host.cjs.map +1 -1
  423. package/dist/record/host/types.cjs.map +1 -1
  424. package/dist/record/host/types.d.cts +7 -0
  425. package/dist/record/host/types.d.mts +7 -0
  426. package/dist/record/host/types.d.ts +7 -0
  427. package/dist/record/model/run-context.cjs +7 -1
  428. package/dist/record/model/run-context.cjs.map +1 -1
  429. package/dist/record/model/run-context.d.cts +4 -0
  430. package/dist/record/model/run-context.d.mts +4 -0
  431. package/dist/record/model/run-context.d.ts +4 -0
  432. package/dist/record/model/seal-manifest.d.cts +1 -1
  433. package/dist/record/model/seal-manifest.d.mts +1 -1
  434. package/dist/record/model/seal-manifest.d.ts +1 -1
  435. package/dist/record/sqlite/client.cjs +18 -5
  436. package/dist/record/sqlite/client.cjs.map +1 -1
  437. package/dist/record/sqlite/client.d.cts +1 -1
  438. package/dist/record/sqlite/client.d.mts +1 -1
  439. package/dist/record/sqlite/client.d.ts +1 -1
  440. package/dist/record/sqlite/project-state-database.cjs +29 -8
  441. package/dist/record/sqlite/project-state-database.cjs.map +1 -1
  442. package/dist/run/host/runtime.cjs +4 -0
  443. package/dist/run/host/runtime.cjs.map +1 -1
  444. package/dist/run/storage/sqlite.cjs +20 -0
  445. package/dist/run/storage/sqlite.cjs.map +1 -1
  446. package/dist/runner/adapter-execution-trace.cjs +125 -2
  447. package/dist/runner/adapter-execution-trace.cjs.map +1 -1
  448. package/dist/runner/adapter-execution-trace.d.cts +1 -1
  449. package/dist/runner/adapter-execution-trace.d.mts +1 -1
  450. package/dist/runner/adapter-execution-trace.d.ts +1 -1
  451. package/dist/runner/adapter-usage.cjs +55 -7
  452. package/dist/runner/adapter-usage.cjs.map +1 -1
  453. package/dist/runner/adapter-usage.d.cts +9 -2
  454. package/dist/runner/adapter-usage.d.mts +9 -2
  455. package/dist/runner/adapter-usage.d.ts +9 -2
  456. package/dist/runner/adoption.cjs +9 -0
  457. package/dist/runner/adoption.cjs.map +1 -1
  458. package/dist/runner/attempt-cancellation.cjs +12 -0
  459. package/dist/runner/attempt-cancellation.cjs.map +1 -0
  460. package/dist/runner/attempt-cancellation.d.cts +6 -0
  461. package/dist/runner/attempt-cancellation.d.mts +6 -0
  462. package/dist/runner/attempt-cancellation.d.ts +6 -0
  463. package/dist/runner/attempt-cancellation.js +6 -0
  464. package/dist/runner/attempt-cancellation.js.map +1 -0
  465. package/dist/runner/attempt-resources.cjs +10 -4
  466. package/dist/runner/attempt-resources.cjs.map +1 -1
  467. package/dist/runner/attempt-resources.d.cts +2 -1
  468. package/dist/runner/attempt-resources.d.mts +2 -1
  469. package/dist/runner/attempt-resources.d.ts +2 -1
  470. package/dist/runner/attempt.cjs +1177 -1139
  471. package/dist/runner/attempt.cjs.map +1 -1
  472. package/dist/runner/config-identity.cjs +20 -1
  473. package/dist/runner/config-identity.cjs.map +1 -1
  474. package/dist/runner/config-identity.d.cts +5 -0
  475. package/dist/runner/config-identity.d.mts +5 -0
  476. package/dist/runner/config-identity.d.ts +5 -0
  477. package/dist/runner/discover.cjs +14 -0
  478. package/dist/runner/discover.cjs.map +1 -1
  479. package/dist/runner/discover.d.cts +3 -0
  480. package/dist/runner/discover.d.mts +3 -0
  481. package/dist/runner/discover.d.ts +3 -0
  482. package/dist/runner/feedback/human.cjs +9 -4
  483. package/dist/runner/feedback/human.cjs.map +1 -1
  484. package/dist/runner/fingerprint.cjs +1 -0
  485. package/dist/runner/fingerprint.cjs.map +1 -1
  486. package/dist/runner/judge-usage.cjs +18 -0
  487. package/dist/runner/judge-usage.cjs.map +1 -0
  488. package/dist/runner/judge-usage.d.cts +5 -0
  489. package/dist/runner/judge-usage.d.mts +5 -0
  490. package/dist/runner/judge-usage.d.ts +5 -0
  491. package/dist/runner/judge-usage.js +8 -0
  492. package/dist/runner/judge-usage.js.map +1 -0
  493. package/dist/runner/project-target.cjs.map +1 -1
  494. package/dist/runner/project-target.d.cts +2 -0
  495. package/dist/runner/project-target.d.mts +2 -0
  496. package/dist/runner/project-target.d.ts +2 -0
  497. package/dist/runner/record/planning.cjs +1 -0
  498. package/dist/runner/record/planning.cjs.map +1 -1
  499. package/dist/runner/record.cjs +4 -0
  500. package/dist/runner/record.cjs.map +1 -1
  501. package/dist/runner/reporters/braintrust.cjs +2 -0
  502. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  503. package/dist/runner/reuse-diagnostics.cjs +9 -10
  504. package/dist/runner/reuse-diagnostics.cjs.map +1 -1
  505. package/dist/runner/reuse-diagnostics.d.cts +5 -6
  506. package/dist/runner/reuse-diagnostics.d.mts +5 -6
  507. package/dist/runner/reuse-diagnostics.d.ts +5 -6
  508. package/dist/runner/reuse-diagnostics.js +4 -4
  509. package/dist/runner/reuse-plan.cjs +100 -48
  510. package/dist/runner/reuse-plan.cjs.map +1 -1
  511. package/dist/runner/reuse-plan.d.cts +60 -3
  512. package/dist/runner/reuse-plan.d.mts +60 -3
  513. package/dist/runner/reuse-plan.d.ts +60 -3
  514. package/dist/runner/reuse-plan.js +14 -10
  515. package/dist/runner/run.cjs +8 -6
  516. package/dist/runner/run.cjs.map +1 -1
  517. package/dist/runner/session.cjs +1 -1
  518. package/dist/runner/session.cjs.map +1 -1
  519. package/dist/runner/session.d.cts +1 -1
  520. package/dist/runner/session.d.mts +1 -1
  521. package/dist/runner/session.d.ts +1 -1
  522. package/dist/runner/source-producer.cjs +3 -1
  523. package/dist/runner/source-producer.cjs.map +1 -1
  524. package/dist/runner/types.cjs.map +1 -1
  525. package/dist/runner/types.d.cts +26 -5
  526. package/dist/runner/types.d.mts +26 -5
  527. package/dist/runner/types.d.ts +26 -5
  528. package/dist/sandbox/action.cjs +3 -0
  529. package/dist/sandbox/action.cjs.map +1 -1
  530. package/dist/sandbox/commands.cjs +3 -0
  531. package/dist/sandbox/commands.cjs.map +1 -1
  532. package/dist/sandbox/compose.cjs +6 -0
  533. package/dist/sandbox/compose.cjs.map +1 -1
  534. package/dist/sandbox/docker-profile/registry.cjs +7 -0
  535. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  536. package/dist/sandbox/docker-profile/runtime.cjs +3 -0
  537. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  538. package/dist/sandbox/docker-profile/schema.cjs +7 -0
  539. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  540. package/dist/sandbox/incus.cjs +7 -0
  541. package/dist/sandbox/incus.cjs.map +1 -1
  542. package/dist/sandbox/layer.cjs +12 -0
  543. package/dist/sandbox/layer.cjs.map +1 -1
  544. package/dist/shared/adapter-cleanup.cjs +18 -0
  545. package/dist/shared/adapter-cleanup.cjs.map +1 -0
  546. package/dist/shared/adapter-cleanup.d.cts +4 -0
  547. package/dist/shared/adapter-cleanup.d.mts +4 -0
  548. package/dist/shared/adapter-cleanup.d.ts +4 -0
  549. package/dist/shared/adapter-cleanup.js +10 -0
  550. package/dist/shared/adapter-cleanup.js.map +1 -0
  551. package/dist/shared/attempt-lifecycle.cjs +3 -0
  552. package/dist/shared/attempt-lifecycle.cjs.map +1 -0
  553. package/dist/shared/attempt-lifecycle.d.cts +13 -0
  554. package/dist/shared/attempt-lifecycle.d.mts +13 -0
  555. package/dist/shared/attempt-lifecycle.d.ts +13 -0
  556. package/dist/shared/attempt-lifecycle.js +4 -0
  557. package/dist/shared/attempt-lifecycle.js.map +1 -0
  558. package/dist/show/contribution.cjs +52 -14
  559. package/dist/show/contribution.cjs.map +1 -1
  560. package/dist/show/contribution.d.cts +23 -1
  561. package/dist/show/contribution.d.mts +23 -1
  562. package/dist/show/contribution.d.ts +23 -1
  563. package/dist/show/model.cjs +8 -1
  564. package/dist/show/model.cjs.map +1 -1
  565. package/dist/show/model.d.cts +10 -1
  566. package/dist/show/model.d.mts +10 -1
  567. package/dist/show/model.d.ts +10 -1
  568. package/dist/show/render.cjs +287 -49
  569. package/dist/show/render.cjs.map +1 -1
  570. package/dist/show/render.d.cts +3 -0
  571. package/dist/show/render.d.mts +3 -0
  572. package/dist/show/render.d.ts +3 -0
  573. package/dist/sources/projector.cjs +3 -0
  574. package/dist/sources/projector.cjs.map +1 -1
  575. package/dist/types.cjs.map +1 -1
  576. package/dist/types.d.cts +1 -1
  577. package/dist/types.d.mts +1 -1
  578. package/dist/types.d.ts +1 -1
  579. package/dist/view/app-dist/.vite/manifest.json +2 -2
  580. package/dist/view/app-dist/assets/index-CmVoXbwG.js +63 -0
  581. package/dist/view/app-dist/assets/{quality-cost-scatter-CFB3wnkN.js → quality-cost-scatter-BuLISaH4.js} +1 -1
  582. package/dist/view/app-dist/index.html +1 -1
  583. package/dist/view/cli/contribution.cjs +54 -21
  584. package/dist/view/cli/contribution.cjs.map +1 -1
  585. package/dist/view/cli/contribution.d.cts +2 -1
  586. package/dist/view/cli/contribution.d.mts +2 -1
  587. package/dist/view/cli/contribution.d.ts +2 -1
  588. package/dist/view/function-runtime.mjs +13231 -11647
  589. package/dist/view/http-protocol.cjs +3 -0
  590. package/dist/view/http-protocol.cjs.map +1 -1
  591. package/dist/view/http-protocol.d.cts +8 -0
  592. package/dist/view/http-protocol.d.mts +8 -0
  593. package/dist/view/http-protocol.d.ts +8 -0
  594. package/dist/view/inspection-host.cjs +17 -1
  595. package/dist/view/inspection-host.cjs.map +1 -1
  596. package/dist/view/render.cjs +1 -0
  597. package/dist/view/render.cjs.map +1 -1
  598. package/dist/view/render.d.cts +2 -1
  599. package/dist/view/render.d.mts +2 -1
  600. package/dist/view/render.d.ts +2 -1
  601. package/dist/view/revision.cjs.map +1 -1
  602. package/dist/view/revision.d.cts +12 -0
  603. package/dist/view/revision.d.mts +12 -0
  604. package/dist/view/revision.d.ts +12 -0
  605. package/dist/view/server.cjs +10 -9
  606. package/dist/view/server.cjs.map +1 -1
  607. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  608. package/docs-site/zh/explanation/adapter.mdx +2 -2
  609. package/docs-site/zh/explanation/assert.mdx +60 -24
  610. package/docs-site/zh/explanation/drive.mdx +1 -1
  611. package/docs-site/zh/explanation/evals.mdx +31 -29
  612. package/docs-site/zh/explanation/experiment.mdx +15 -15
  613. package/docs-site/zh/explanation/judge.mdx +23 -15
  614. package/docs-site/zh/explanation/overview.mdx +44 -21
  615. package/docs-site/zh/explanation/record.mdx +28 -13
  616. package/docs-site/zh/explanation/results-flow.mdx +37 -0
  617. package/docs-site/zh/explanation/runner.mdx +27 -6
  618. package/docs-site/zh/index.mdx +22 -115
  619. package/docs-site/zh/introduction.mdx +89 -61
  620. package/docs-site/zh/reference/cli.mdx +50 -26
  621. package/docs-site/zh/reference/define-agent.mdx +37 -5
  622. package/docs-site/zh/reference/define-eval.mdx +130 -29
  623. package/docs-site/zh/reference/define-experiment.mdx +251 -0
  624. package/docs-site/zh/reference/events.mdx +34 -30
  625. package/docs-site/zh/reference/expect.mdx +77 -2
  626. package/docs-site/zh/reference/official-adapters.mdx +2 -2
  627. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +43 -24
  628. package/docs-site/zh/troubleshooting/debugging.mdx +65 -42
  629. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +35 -28
  630. package/docs-site/zh/tutorials/accept-results.mdx +34 -24
  631. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +74 -43
  632. package/docs-site/zh/tutorials/agent-onboarding.mdx +27 -20
  633. package/docs-site/zh/tutorials/authoring.mdx +138 -121
  634. package/docs-site/zh/tutorials/ci-integration.mdx +46 -22
  635. package/docs-site/zh/tutorials/compare-runs.mdx +40 -13
  636. package/docs-site/zh/tutorials/concurrency.mdx +66 -62
  637. package/docs-site/zh/tutorials/configuration.mdx +17 -17
  638. package/docs-site/zh/tutorials/connect-otel.mdx +48 -37
  639. package/docs-site/zh/tutorials/connect-your-agent.mdx +80 -173
  640. package/docs-site/zh/tutorials/control-run-cost.mdx +63 -12
  641. package/docs-site/zh/tutorials/criteria-files.mdx +28 -21
  642. package/docs-site/zh/tutorials/custom-application.mdx +75 -55
  643. package/docs-site/zh/tutorials/dataset-fanout.mdx +32 -22
  644. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +38 -31
  645. package/docs-site/zh/tutorials/docker-in-docker.mdx +83 -89
  646. package/docs-site/zh/tutorials/eval-groups.mdx +70 -89
  647. package/docs-site/zh/tutorials/evaluation-kinds.mdx +12 -5
  648. package/docs-site/zh/tutorials/experiment-services.mdx +243 -0
  649. package/docs-site/zh/tutorials/fixtures.mdx +42 -26
  650. package/docs-site/zh/tutorials/handle-execution-failures.mdx +41 -19
  651. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +21 -16
  652. package/docs-site/zh/tutorials/niceeval-taste-application.mdx +394 -0
  653. package/docs-site/zh/tutorials/niceeval-taste.mdx +190 -0
  654. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +51 -39
  655. package/docs-site/zh/tutorials/plugins.mdx +55 -31
  656. package/docs-site/zh/tutorials/prebuilt-sandbox.mdx +204 -0
  657. package/docs-site/zh/tutorials/quickstart.mdx +91 -47
  658. package/docs-site/zh/tutorials/reporters.mdx +45 -30
  659. package/docs-site/zh/tutorials/rerun-and-cache.mdx +39 -40
  660. package/docs-site/zh/tutorials/sandbox-agent.mdx +65 -40
  661. package/docs-site/zh/tutorials/sandbox-providers.mdx +104 -282
  662. package/docs-site/zh/tutorials/sandbox-reuse.mdx +65 -97
  663. package/docs-site/zh/tutorials/select-and-preview.mdx +25 -20
  664. package/docs-site/zh/tutorials/verify-judge.mdx +49 -26
  665. package/docs-site/zh/tutorials/viewing-results.mdx +130 -80
  666. package/docs-site/zh/tutorials/write-experiment.mdx +116 -298
  667. package/docs-site/zh/tutorials/write-send.mdx +53 -52
  668. package/node_modules/undici/docs/docs/api/Agent.md +8 -8
  669. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  670. package/node_modules/undici/docs/docs/api/Errors.md +25 -0
  671. package/node_modules/undici/docs/docs/api/Interceptors.md +4 -3
  672. package/node_modules/undici/docs/docs/api/Pool.md +5 -6
  673. package/node_modules/undici/lib/api/readable.js +1 -2
  674. package/node_modules/undici/lib/core/request.js +23 -2
  675. package/node_modules/undici/lib/core/util.js +0 -39
  676. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
  677. package/node_modules/undici/lib/dispatcher/client-h2.js +52 -8
  678. package/node_modules/undici/lib/dispatcher/client.js +1 -1
  679. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -2
  680. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  681. package/node_modules/undici/lib/dispatcher/pool-base.js +63 -2
  682. package/node_modules/undici/lib/dispatcher/pool.js +90 -7
  683. package/node_modules/undici/lib/dispatcher/proxy-agent.js +16 -3
  684. package/node_modules/undici/lib/handler/deduplication-handler.js +24 -11
  685. package/node_modules/undici/lib/handler/redirect-handler.js +5 -0
  686. package/node_modules/undici/lib/handler/retry-handler.js +72 -13
  687. package/node_modules/undici/lib/interceptor/cache.js +4 -1
  688. package/node_modules/undici/lib/interceptor/decompress.js +236 -69
  689. package/node_modules/undici/lib/web/cache/cache.js +17 -8
  690. package/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  691. package/node_modules/undici/lib/web/cookies/index.js +19 -7
  692. package/node_modules/undici/lib/web/cookies/util.js +3 -1
  693. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -1
  694. package/node_modules/undici/lib/web/fetch/body.js +22 -15
  695. package/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  696. package/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  697. package/node_modules/undici/lib/web/fetch/headers.js +34 -31
  698. package/node_modules/undici/lib/web/fetch/index.js +38 -14
  699. package/node_modules/undici/lib/web/fetch/request.js +74 -79
  700. package/node_modules/undici/lib/web/fetch/response.js +43 -44
  701. package/node_modules/undici/lib/web/fetch/util.js +7 -7
  702. package/node_modules/undici/lib/web/infra/index.js +16 -1
  703. package/node_modules/undici/lib/web/webidl/index.js +2 -14
  704. package/node_modules/undici/lib/web/websocket/events.js +43 -26
  705. package/node_modules/undici/lib/web/websocket/receiver.js +5 -0
  706. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  707. package/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  708. package/node_modules/undici/package.json +1 -1
  709. package/node_modules/undici/types/diagnostics-channel.d.ts +2 -1
  710. package/node_modules/undici/types/interceptors.d.ts +1 -1
  711. package/node_modules/undici/types/webidl.d.ts +13 -7
  712. package/package.json +4 -4
  713. package/dist/view/app-dist/assets/index-DFzw1L97.js +0 -63
  714. package/docs-site/zh/tutorials/experiments.mdx +0 -101
@@ -1 +1 @@
1
- {"version":3,"file":"contribution.js","sourceRoot":"","sources":["contribution.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect, Result } from \"effect\";\nimport { CliArguments, CliInterruption, CliInvocationFacts, CliOutput, type CliOptionDefinition, } from \"../../../cli/application.ts\";\nimport { CliFeatureError, type CliCommandContribution } from \"../../../cli/contribution.ts\";\nimport { ProjectConfiguration } from \"../../../cli/project-configuration.ts\";\nimport { createFeedbackCoordinator, createHumanRenderer, createInputGuard, createJsonRenderer, renderHumanCommandPlan, resolveOutputForm, } from \"../../../runner/feedback/index.ts\";\nimport { renderSessionListText, renderSessionShowText } from \"../../../runner/session.ts\";\nimport type { CurrentReuseReadbackSnapshot } from \"../../../runner/reuse-readback.ts\";\nimport { browsableExperimentPaths } from \"../../../shared/aggregate.ts\";\nimport { experimentHost, type ExperimentHostDebugPlan, type ExperimentHostRenamePlan, type ExperimentHostRenameReason, type ExperimentHostRenameResult, type ExperimentHostRequirements, type ExperimentHostSharedStateEvidence, type ExperimentHostTeardownEvent, type ExperimentHostTeardownResult, } from \"../index.ts\";\nimport { ExperimentCliTerminal } from \"./terminal.ts\";\nexport { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from \"./plan-protocol.ts\";\ntype ExperimentCliRequirements = CliArguments | CliInterruption | CliInvocationFacts | CliOutput | ExperimentCliTerminal | ProjectConfiguration | ExperimentHostRequirements;\ntype ExperimentCliError = CliFeatureError;\nconst option = (type: \"string\" | \"boolean\", summary: string, multiple?: true) => Object.freeze({\n type,\n ...(multiple === undefined ? {} : { multiple }),\n help: Object.freeze({ summary, visibility: \"public\" as const }),\n});\nconst optionalTier = (summary: string, defaultValue: string, values: readonly string[], separated = false) => Object.freeze({\n type: \"boolean\" as const,\n optionalValue: Object.freeze({\n default: defaultValue,\n ...(separated ? { separated: true as const } : {}),\n values: Object.freeze([...values]),\n }),\n help: Object.freeze({ summary, visibility: \"public\" as const }),\n});\nconst HELP_OPTION = Object.freeze({\n type: \"boolean\" as const,\n short: \"h\",\n help: Object.freeze({ summary: \"Show command help.\", visibility: \"public\" as const }),\n});\nexport const CHECK_CLI_OPTIONS = Object.freeze({\n tag: option(\"string\", \"Select only Evals with this tag.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_NORMAL_CLI_OPTIONS = Object.freeze({\n attempts: option(\"string\", \"Run each selected Eval this many times.\"),\n \"max-concurrency\": option(\"string\", \"Limit concurrent Attempt execution.\"),\n \"max-build-concurrency\": option(\"string\", \"Limit concurrent Sandbox build preparation.\"),\n \"max-setup-prefix-concurrency\": option(\"string\", \"Limit concurrent Sandbox setup-prefix preparation.\"),\n \"sandbox-setup-cache\": option(\"string\", \"使用或绕过 Sandbox 准备缓存。\"),\n timeout: option(\"string\", \"Set the per-Attempt timeout in milliseconds.\"),\n budget: option(\"string\", \"Set the Invocation budget in USD.\"),\n tag: option(\"string\", \"Select only Evals with this tag.\"),\n junit: option(\"string\", \"Write a required JUnit report.\"),\n json: option(\"boolean\", \"Write the command's machine document or event stream.\"),\n dry: option(\"boolean\", \"Plan without creating an Invocation.\"),\n rerun: optionalTier(\"Require failed or all targets to run again.\", \"failed\", [\"failed\", \"all\"], true),\n \"keep-sandbox\": optionalTier(\"Keep failed or all finished Sandboxes.\", \"failed\", [\"failed\", \"all\"]),\n \"early-exit\": option(\"boolean\", \"Stop remaining attempts after a passing result.\"),\n \"no-early-exit\": option(\"boolean\", \"Force all configured attempts to run.\"),\n record: option(\"string\", \"Use this Record root.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_LIST_CLI_OPTIONS = Object.freeze({\n tag: option(\"string\", \"Select only Evals with this tag.\"),\n json: option(\"boolean\", \"Write the catalog machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_RENAME_CLI_OPTIONS = Object.freeze({\n run: option(\"string\", \"Select the exact source Run to adopt into the target Experiment.\", true),\n dry: option(\"boolean\", \"Preview the explicit Experiment rename.\"),\n json: option(\"boolean\", \"Write the rename machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_TEARDOWN_CLI_OPTIONS = Object.freeze({\n teardown: option(\"boolean\", \"Run explicit Experiment teardown recovery.\"),\n json: option(\"boolean\", \"Write machine output where the operation supports it.\"),\n \"recover-shared-state\": option(\"string\", \"Name a shared-state key for explicit recovery.\"),\n \"owner-token\": option(\"string\", \"Provide the exact shared-state owner token.\"),\n \"confirm-owner-terminated\": option(\"boolean\", \"Confirm the recorded owner has terminated.\"),\n \"confirm-remote-quiesced\": option(\"boolean\", \"Confirm remote shared state is quiesced.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const DEBUG_CLI_OPTIONS = Object.freeze({\n json: option(\"boolean\", \"Write the command-plan machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const ACCEPT_CLI_OPTIONS = Object.freeze({\n run: option(\"string\", \"Accept every member of one exact source Run.\", true),\n dry: option(\"boolean\", \"Preview acceptance without publishing a Run.\"),\n record: option(\"string\", \"Use this Record root.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const SESSION_CLI_OPTIONS = Object.freeze({\n all: option(\"boolean\", \"Include completed invocation status entries.\"),\n json: option(\"boolean\", \"Write the status machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\n/** `exp` is a command family; its composition schema is its own frozen union. */\nconst EXP_CLI_OPTIONS = Object.freeze({\n ...EXP_NORMAL_CLI_OPTIONS,\n ...EXP_LIST_CLI_OPTIONS,\n ...EXP_RENAME_CLI_OPTIONS,\n ...EXP_TEARDOWN_CLI_OPTIONS,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nconst SHARED_STATE_RECOVERY_USAGE = ` niceeval exp <selector> --teardown --recover-shared-state <key>\n --owner-token <token> --confirm-owner-terminated --confirm-remote-quiesced`;\nconst CHECK_HELP = `Check Experiment selection:\n niceeval check [<experiment-prefix> [<eval-prefix>...]] [--tag <tag>]\n\nOptions:\n --tag <tag> select only Evals with this tag\n -h, --help show this help\n`;\nconst EXP_HELP = `Run and maintain Experiments:\n niceeval exp [<experiment-prefix> [<eval-prefix>...]] [options]\n niceeval exp list [<experiment-prefix>] [--tag <tag>] [--json]\n niceeval exp rename <new-id> --run <source-run-id> [--dry] [--json]\n${SHARED_STATE_RECOVERY_USAGE}\n\nRun options:\n --attempts <n> run each selected Eval this many times\n --max-concurrency <n> limit concurrent Attempt execution\n --max-build-concurrency <n> limit concurrent Sandbox build preparation\n --max-setup-prefix-concurrency <n>\n limit concurrent Sandbox setup-prefix preparation\n --sandbox-setup-cache <use|bypass>\n select the Sandbox setup cache path\n --timeout <ms> set the per-Attempt timeout\n --budget <usd> set the Invocation budget\n --tag <tag> select only Evals with this tag\n --rerun[=failed|all] require selected targets to run again\n --keep-sandbox[=failed|all] retain selected finished Sandboxes\n --early-exit / --no-early-exit\n --dry plan without creating an Invocation\n --json write machine output or the Invocation event stream\n --junit <path> write a required JUnit report\n --record <root> use this Record root\n\nRecovery options:\n --teardown run only explicit Experiment teardown recovery\n --recover-shared-state <key> inspect or recover this immutable shared-state owner\n --owner-token <token> provide the exact owner token shown by inspection\n --confirm-owner-terminated confirm the recorded owner has terminated\n --confirm-remote-quiesced confirm remote shared state is quiesced\n -h, --help show this help\n`;\nconst DEBUG_HELP = `Inspect an Experiment lifecycle plan:\n niceeval debug <experiment-selector> [eval-selector] [--json]\n\nOptions:\n --json write the command-plan machine document\n -h, --help show this help\n`;\nconst ACCEPT_HELP = `Accept exact historical Attempt locators:\n niceeval accept @<locator>... [--record <root>]\n niceeval accept --run <exact-run-id> [--dry] [--record <root>]\n\nOptions:\n --run <run-id> accept one exact source Run\n --dry preview a whole-Run acceptance without writing\n --record <root> use this Record root\n -h, --help show this help\n`;\nconst SESSION_HELP = `Inspect project-local ephemeral Invocation status:\n niceeval session list [--all] [<experiment-prefix>]\n niceeval session show <invocation-id>\n\nOptions:\n --all include completed Invocation status entries\n --json write the status machine document\n -h, --help show this help\n`;\nconst EXP_COMMAND_SUMMARY = `list, plan, run, rename, or recover Experiments\n explicit sharedState recovery:\n${SHARED_STATE_RECOVERY_USAGE}`;\nfunction failure(operation: string, cause: unknown, exitCode = 1, display?: string): ExperimentCliError {\n return new CliFeatureError({\n feature: \"experiments\",\n operation,\n cause,\n exitCode,\n ...(display === undefined ? {} : { display }),\n });\n}\nfunction write(channel: \"stdout\" | \"stderr\", text: string): Effect.Effect<void, ExperimentCliError, CliOutput> {\n return Effect.flatMap(CliOutput, (output) => channel === \"stdout\" ? output.writeStdout(text) : output.writeStderr(text)).pipe(Effect.mapError((cause) => failure(`write ${channel}`, cause)));\n}\nfunction numberFlag(value: string | boolean | string[] | undefined, name: string, positive = false): number | undefined {\n if (value === undefined)\n return undefined;\n if (typeof value !== \"string\" || !/^[0-9]+(?:\\.[0-9]+)?$/u.test(value))\n throw new Error(`${name} requires a number.`);\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0 || (positive && (!Number.isInteger(parsed) || parsed === 0))) {\n throw new Error(positive ? `${name} requires a positive integer.` : `${name} requires a non-negative finite number.`);\n }\n return parsed;\n}\nfunction enumFlag(value: string | boolean | string[] | undefined, name: string, values: readonly string[]): string | undefined {\n if (value === undefined)\n return undefined;\n if (typeof value !== \"string\" || !values.includes(value))\n throw new Error(`${name} accepts ${values.join(\" or \")}.`);\n return value;\n}\nfunction jsonDocument(value: unknown): string {\n return `${JSON.stringify(value)}\\n`;\n}\nfunction catalogText(catalog: {\n readonly experiments: readonly {\n readonly id: string;\n readonly description?: string;\n readonly adapter: string;\n readonly model?: string;\n readonly attempts: number;\n readonly evalIds: readonly string[];\n readonly labels: Readonly<Record<string, string | number>>;\n }[];\n}): string {\n return catalog.experiments.map((experiment) => [\n experiment.id,\n experiment.description ?? \"—\",\n experiment.adapter,\n experiment.model ?? \"—\",\n `attempts=${experiment.attempts}`,\n `evals=${experiment.evalIds.length}`,\n `labels=${JSON.stringify(experiment.labels)}`,\n ].join(\"\\t\")).join(\"\\n\") + (catalog.experiments.length === 0 ? \"\" : \"\\n\");\n}\nfunction catalogJson(catalog: {\n readonly experiments: readonly {\n readonly id: string;\n readonly description?: string;\n readonly adapter: string;\n readonly model?: string;\n readonly attempts: number;\n readonly evalIds: readonly string[];\n readonly labels: Readonly<Record<string, string | number>>;\n }[];\n}): string {\n return jsonDocument({\n format: \"niceeval.experiments\",\n schemaVersion: 1,\n experiments: catalog.experiments.map((experiment) => ({\n experimentId: experiment.id,\n ...(experiment.description === undefined ? {} : { description: experiment.description }),\n adapter: experiment.adapter,\n ...(experiment.model === undefined ? {} : { model: experiment.model }),\n attempts: experiment.attempts,\n evalCount: experiment.evalIds.length,\n labels: experiment.labels,\n selectedEvalIds: experiment.evalIds,\n })),\n });\n}\nfunction checkText(result: {\n readonly status: string;\n readonly pairCount?: number;\n}): string {\n return result.status === \"linked\"\n ? `Sandbox layers linked: ${result.pairCount} pairs.\\n`\n : `Experiment selection: ${result.status}.\\n`;\n}\nfunction selectionProblemText(result: {\n readonly status: string;\n readonly selector?: string;\n readonly candidates?: readonly string[];\n readonly experimentIds?: readonly string[];\n}): string {\n if (result.status === \"experiment-no-match\") {\n return `No experiment matched: ${result.selector ?? \"(all)\"}. Available paths: ${browsableExperimentPaths(result.candidates ?? []).join(\", \") || \"(none)\"}.\nRun \\`niceeval exp <path> --dry\\` to preview a plan.\n`;\n }\n if (result.status === \"eval-no-match\") {\n return `No eval matched prefix: ${result.selector ?? \"\"} in experiments selected by ${(result.experimentIds ?? []).join(\", \") || \"(all)\"}.\nPositional args after the first select eval id prefixes. To run another experiment,\nrun it as its own command: niceeval exp ${result.selector ?? \"\"}\n`;\n }\n return `No evals selected: ${(result.experimentIds ?? []).join(\", \") || \"(all)\"} matched 0 evals. Available eval prefixes: ${browsableExperimentPaths(result.candidates ?? result.experimentIds ?? []).join(\", \") || \"(none)\"}.\nRun \\`niceeval exp ${(result.experimentIds ?? []).join(\", \") || \"(all)\"} --dry\\` to see what it covers, or drop the eval filter to run every eval selected by those experiments.\n`;\n}\nfunction acceptText(results: readonly {\n readonly runId: string;\n readonly sourceLocator: string;\n readonly locator: string;\n readonly fingerprint: string;\n}[]): string {\n return results.map((result) => `Accepted source Attempt ${result.sourceLocator} into new Run ${result.runId}. Result locator remains ${result.locator}. Current fingerprint: ${result.fingerprint}\n`).join(\"\");\n}\nfunction acceptRunPlanText(plan: {\n readonly sourceRunId: string;\n readonly members: readonly {\n readonly locator: string;\n readonly evalId: string;\n readonly attempt: number;\n }[];\n}): string {\n const members = plan.members.map((member) => ` ${member.evalId} #${String(member.attempt)} ${member.locator} eligible\\n`).join(\"\");\n return `Accept source Run ${plan.sourceRunId}\\n${members}\\n${String(plan.members.length)} members eligible\\nApply: niceeval accept --run ${plan.sourceRunId}\\n`;\n}\nfunction acceptedRunText(sourceRunId: string, results: readonly {\n readonly runId: string;\n readonly sourceLocator: string;\n readonly locator: string;\n readonly fingerprint: string;\n}[]): string {\n const targetRunId = results[0]?.runId ?? \"unknown\";\n return `Accepted source Run ${sourceRunId} into new Run ${targetRunId}. ${String(results.length)} reference members published.\\n${acceptText(results)}`;\n}\nfunction sharedStateEvidenceText(evidence: ExperimentHostSharedStateEvidence): string {\n return `sharedState recovery target:\n key: ${evidence.key}\n experiment: ${evidence.experimentId}\n owner token: ${evidence.ownerToken}\n host: ${evidence.host}\n PID: ${evidence.pid}\n process identity: ${evidence.processIdentity}\n heartbeat: ${evidence.heartbeatAt}\n`;\n}\nfunction teardownInspectionEvidence(inspection: ExperimentHostTeardownResult): ExperimentHostSharedStateEvidence | undefined {\n return \"evidence\" in inspection ? inspection.evidence : undefined;\n}\nfunction teardownInspectionProblemText(inspection: ExperimentHostTeardownResult): string | undefined {\n switch (inspection.status) {\n case \"no-evidence\":\n return `No recoverable sharedState ownership evidence exists for ${JSON.stringify(inspection.key)}.\\n`;\n case \"selection-not-unique\":\n return \"sharedState recovery requires an experiment selector that resolves to exactly one Experiment.\\n\";\n case \"experiment-mismatch\":\n return `sharedState key ${JSON.stringify(inspection.evidence.key)} belongs to experiment ${inspection.evidence.experimentId}, not ${inspection.selectedExperimentId}; refusing recovery.\\n`;\n case \"teardown-required\":\n return `error: sharedState recovery requires the selected Experiment ${inspection.experimentId} to declare teardown as a function. The active generation was left unchanged.\n`;\n case \"recovery-confirmation-required\":\n return `sharedState recovery requires \\`--teardown --recover-shared-state <key> --owner-token <token> --confirm-owner-terminated --confirm-remote-quiesced\\`.\n`;\n default:\n return undefined;\n }\n}\nfunction teardownFailure(operation: string, cause: unknown, recoveryKey?: string): ExperimentCliError {\n const code = typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"code\") === \"string\"\n ? String(Reflect.get(cause, \"code\"))\n : undefined;\n const message = cause instanceof Error ? cause.message : String(cause);\n const display = code === \"shared-state-recovery-registration-failed\" && recoveryKey !== undefined\n ? `error: sharedState recovery for ${recoveryKey} could not clear the exact interrupted teardown registration: ${message}. The recovery generation remains closed.\n`\n : code === \"shared-state-recovery-already-released-registration-failed\" && recoveryKey !== undefined\n ? `error: sharedState key ${recoveryKey} was already released, but NiceEval could not clear the exact stale teardown registration: ${message}. It did not rerun teardown.\n`\n : code === \"shared-state-recovery-completion-failed\"\n ? `sharedState recovery could not release its exact owner token: ${message}\\n`\n : recoveryKey === undefined\n ? undefined\n : `sharedState recovery refused: ${message}\\n`;\n return failure(operation, cause, 1, display);\n}\nfunction invocationText(result: {\n readonly receipt: {\n readonly invocationId: string;\n readonly createdRunIds: readonly string[];\n readonly completion: string;\n };\n readonly summary: {\n readonly passed: number;\n readonly failed: number;\n readonly skipped: number;\n readonly errored: number;\n readonly setupPrefixes: {\n readonly total: number;\n readonly hit: number;\n readonly prepared: number;\n readonly failed: number;\n };\n };\n}): string {\n return `Invocation ${result.receipt.invocationId} · ${result.receipt.completion}\\nRuns: ${result.receipt.createdRunIds.join(\", \") || \"none\"}\\nResults: ${result.summary.passed} passed · ${result.summary.failed} failed · ${result.summary.errored} errored · ${result.summary.skipped} skipped\\nSetup prefixes: ${result.summary.setupPrefixes.hit} hit · ${result.summary.setupPrefixes.prepared} prepared · ${result.summary.setupPrefixes.failed} failed (${result.summary.setupPrefixes.total} total)\\n`;\n}\nfunction dryRows(plan: {\n readonly slots: readonly {\n readonly state: \"reuse\" | \"gap\";\n readonly target: {\n readonly runId: string;\n readonly slotId: string;\n readonly experimentId: string;\n readonly evalId: string;\n readonly evalGroupId?: string;\n readonly evalGroupIndex?: number;\n readonly attempt: number;\n };\n readonly comparisons: readonly unknown[];\n readonly reason?: string;\n readonly scope?: string;\n }[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n readonly lockedPairs: readonly string[];\n}) {\n type ProjectedSlot = {\n readonly runId: string;\n readonly slotId: string;\n readonly experimentId: string;\n readonly evalId: string;\n readonly attempt: number;\n readonly state: \"reused\" | \"gap\";\n readonly comparisons: readonly unknown[];\n readonly reason?: string;\n readonly scope?: string;\n };\n const rows = new Map<string, {\n experimentId: string;\n evalId: string;\n evalGroupId?: string;\n evalGroupIndex?: number;\n slots: ProjectedSlot[];\n readbacks: CurrentReuseReadbackSnapshot[];\n locked?: true;\n }>();\n for (const slot of plan.slots) {\n const key = JSON.stringify([slot.target.experimentId, slot.target.evalId]);\n const row = rows.get(key) ?? {\n experimentId: slot.target.experimentId,\n evalId: slot.target.evalId,\n ...(slot.target.evalGroupId === undefined ? {} : { evalGroupId: slot.target.evalGroupId, evalGroupIndex: slot.target.evalGroupIndex }),\n slots: [],\n readbacks: [],\n };\n row.slots.push({\n ...slot.target,\n state: slot.state === \"reuse\" ? \"reused\" : \"gap\",\n comparisons: slot.comparisons,\n ...(slot.state === \"gap\" ? { reason: slot.reason, scope: slot.scope } : {}),\n });\n if (plan.lockedPairs.includes(key))\n row.locked = true;\n rows.set(key, row);\n }\n for (const readback of plan.readbacks) {\n const key = JSON.stringify([readback.target.experimentId, readback.target.evalId]);\n const row = rows.get(key) ?? { experimentId: readback.target.experimentId, evalId: readback.target.evalId, slots: [], readbacks: [] };\n row.readbacks.push(readback);\n if (plan.lockedPairs.includes(key))\n row.locked = true;\n rows.set(key, row);\n }\n return [...rows.values()].map((row) => ({\n ...row,\n slots: [...row.slots].sort((left, right) => left.attempt - right.attempt),\n readbacks: [...row.readbacks].sort((left, right) => left.target.attempt - right.target.attempt),\n })).sort((left, right) => left.experimentId.localeCompare(right.experimentId) || left.evalId.localeCompare(right.evalId));\n}\nfunction dryText(plan: Parameters<typeof dryRows>[0], shape: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configurations: number;\n readonly attempts: number;\n}, pluginCount: number): string {\n const rows = dryRows(plan);\n const reused = plan.slots.filter((slot) => slot.state === \"reuse\").length;\n const lines = [\n `plan: ${shape.totalAttempts} attempts · ${shape.evals} evals × ${shape.configurations} configs · runs ${shape.attempts}`,\n ...(reused === 0 ? [] : [`reuse: ${reused}/${shape.totalAttempts} exact current Record attempts`]),\n `plugins: ${pluginCount} lifecycle occurrences`,\n ];\n for (const row of rows) {\n const slots = row.slots;\n const reusedAttempts = slots.filter((slot) => slot.state === \"reused\").map((slot) => slot.attempt);\n const gaps = slots.filter((slot) => slot.state === \"gap\");\n const parts = [\n ...(row.locked ? [\"locked\"] : []),\n ...(reusedAttempts.length === 0 ? [] : [`reused ${reusedAttempts.join(\",\")}`]),\n ...gaps.map((slot) => `gap ${slot.attempt}:${slot.reason ?? \"unknown\"}`),\n ];\n lines.push(`${row.experimentId} ${row.evalId} ${parts.join(\" · \") || \"no slots\"}`);\n const hasIdentityGap = gaps.some((slot) => slot.reason === \"identity-mismatch\");\n for (const readback of row.readbacks) {\n const verdict = readback.state === \"reused\"\n ? readback.verdict\n : readback.verdict.state === \"available\"\n ? readback.verdict.value\n : readback.verdict.state;\n lines.push(` source ${readback.source.locator} · ${readback.state} · verdict ${verdict}`);\n if (hasIdentityGap && readback.state === \"prior\")\n lines.push(` accept: niceeval accept ${readback.source.locator}`);\n }\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\nfunction dryJson(plan: Parameters<typeof dryRows>[0], shape: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configurations: number;\n readonly attempts: number;\n}, plugins: readonly unknown[]): string {\n return jsonDocument({\n format: \"niceeval.current-reuse-plan/v1\",\n schemaVersion: 1,\n total: shape.totalAttempts,\n evals: shape.evals,\n configs: shape.configurations,\n attempts: shape.attempts,\n reused: plan.slots.filter((slot) => slot.state === \"reuse\").length,\n matrix: dryRows(plan),\n plugins,\n });\n}\nfunction renameText(result: ExperimentHostRenamePlan | ExperimentHostRenameResult): string {\n const heading = `Source Run ${result.sourceRunId}\\n${result.oldId ?? \"Unknown source Experiment\"} -> ${result.newId}\\n`;\n if (result.status === \"rejected\")\n return `${heading}error: ${result.reason}: ${result.detail}\\n`;\n if (result.status === \"done\")\n return `${heading}Accepted into new Run ${result.runId}. New members participate in current result selection; earlier Runs remain readable.\\n${result.migrated.map((entry) => ` ${entry.evalId} Attempt #${entry.attempt + 1} ${entry.sourceLocator} accepted`).join(\"\\n\")}\\n`;\n if (result.blocked !== undefined)\n return `${heading}error: ${result.blocked.reason}: ${result.blocked.detail}\\n`;\n return `${heading}${result.migrations.map((entry) => ` ${entry.evalId} Attempt #${entry.attempt + 1} ${entry.sourceLocator}`).join(\"\\n\")}\\n${result.migrations.length} members eligible. Applying publishes new current members; earlier Runs remain readable.\\nApply: niceeval exp rename ${result.newId} --run ${result.sourceRunId}\\n`;\n}\nfunction renameJson(result: ExperimentHostRenamePlan | ExperimentHostRenameResult): string {\n return jsonDocument({ format: \"niceeval.experimentRename\", schemaVersion: 1, ...result });\n}\nfunction parsed(argv: readonly string[], options: Readonly<Record<string, CliOptionDefinition>>) {\n return Effect.flatMap(CliArguments, (argumentsService) => Effect.try({\n try: () => argumentsService.parse(argv, options),\n catch: (cause) => failure(\"parse command\", cause),\n }));\n}\nfunction factsAndConfig() {\n return Effect.gen(function* () {\n const facts = yield* CliInvocationFacts;\n const invocation = yield* facts.facts.pipe(Effect.mapError((cause) => failure(\"read invocation facts\", cause)));\n const project = yield* ProjectConfiguration;\n const config = yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n return Object.freeze({ invocation, config });\n });\n}\nfunction selection(positionals: readonly string[]) {\n const [experimentSelector, ...evalSelectors] = positionals;\n return Object.freeze({\n ...(experimentSelector === undefined ? {} : { experimentSelector }),\n ...(evalSelectors.length === 0 ? {} : { evalSelectors: Object.freeze(evalSelectors) }),\n });\n}\nfunction overrides(values: Record<string, string | boolean | string[] | undefined>) {\n const attempts = numberFlag(values.attempts, \"--attempts\", true);\n const timeoutMs = numberFlag(values.timeout, \"--timeout\");\n const budget = numberFlag(values.budget, \"--budget\");\n const maxConcurrency = numberFlag(values[\"max-concurrency\"], \"--max-concurrency\", true);\n const maxBuildConcurrency = numberFlag(values[\"max-build-concurrency\"], \"--max-build-concurrency\", true);\n const maxSetupPrefixConcurrency = numberFlag(values[\"max-setup-prefix-concurrency\"], \"--max-setup-prefix-concurrency\", true);\n const rerun = enumFlag(values.rerun, \"--rerun\", [\"failed\", \"all\"]);\n const keepSandbox = enumFlag(values[\"keep-sandbox\"], \"--keep-sandbox\", [\"failed\", \"all\"]);\n const sandboxSetupCache = enumFlag(values[\"sandbox-setup-cache\"], \"--sandbox-setup-cache\", [\"use\", \"bypass\"]);\n return Object.freeze({\n ...(attempts === undefined ? {} : { attempts }),\n ...(timeoutMs === undefined ? {} : { timeoutMs }),\n ...(budget === undefined ? {} : { budget }),\n ...(maxConcurrency === undefined ? {} : { maxConcurrency }),\n ...(maxBuildConcurrency === undefined ? {} : { maxBuildConcurrency }),\n ...(maxSetupPrefixConcurrency === undefined ? {} : { maxSetupPrefixConcurrency }),\n ...(rerun === undefined ? {} : { rerun: rerun as \"failed\" | \"all\" }),\n ...(keepSandbox === undefined ? {} : { keepSandbox: keepSandbox as \"failed\" | \"all\" }),\n ...(sandboxSetupCache === undefined\n ? {}\n : { sandboxSetupCache: sandboxSetupCache as \"use\" | \"bypass\" }),\n ...(values[\"no-early-exit\"] === true ? { earlyExit: false } : values[\"early-exit\"] === true ? { earlyExit: true } : {}),\n });\n}\nconst checkCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"check\",\n summary: \"check Experiment and Sandbox selection\",\n options: CHECK_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, CHECK_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", CHECK_HELP).pipe(Effect.as(0));\n const { invocation, config } = yield* factsAndConfig();\n const result = yield* experimentHost.check({ cwd: invocation.cwd, config, ...selection(input.positionals) }).pipe(Effect.mapError((cause) => failure(\"check\", cause)));\n if (result.status !== \"linked\") {\n yield* write(\"stderr\", selectionProblemText(result));\n return 1;\n }\n yield* write(\"stdout\", checkText(result));\n return 0;\n }),\n});\nconst expCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"exp\",\n summary: EXP_COMMAND_SUMMARY,\n options: EXP_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n // First parse only determines the family branch. The second, branch-owned\n // schema rejects irrelevant flags before facts, config, or .env are read.\n const preliminary = yield* parsed(argv, EXP_CLI_OPTIONS);\n const teardownMode = preliminary.values.teardown === true;\n const preliminaryVerb = preliminary.positionals[0];\n if (preliminaryVerb === \"help\" && preliminary.positionals.length === 1) {\n return yield* write(\"stdout\", EXP_HELP).pipe(Effect.as(0));\n }\n const input = yield* parsed(argv, teardownMode\n ? EXP_TEARDOWN_CLI_OPTIONS\n : preliminaryVerb === \"list\"\n ? EXP_LIST_CLI_OPTIONS\n : preliminaryVerb === \"rename\"\n ? EXP_RENAME_CLI_OPTIONS\n : EXP_NORMAL_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", EXP_HELP).pipe(Effect.as(0));\n const [verb, ...rest] = input.positionals;\n const facts = yield* CliInvocationFacts;\n const invocation = yield* facts.facts.pipe(Effect.mapError((cause) => failure(\"read invocation facts\", cause)));\n if (teardownMode) {\n const project = yield* ProjectConfiguration;\n yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n if (typeof input.values[\"recover-shared-state\"] === \"string\" && input.values.json === true) {\n yield* write(\"stderr\", `error: explicit sharedState recovery does not support --json. Retry without --json; this recovery flow has a human-only interface.\n`);\n return 1;\n }\n if (input.positionals.length > 1) {\n return yield* write(\"stderr\", \"niceeval exp --teardown accepts at most one Experiment selector.\\n\").pipe(Effect.as(1));\n }\n const selector = input.positionals[0];\n const recoveryKey = typeof input.values[\"recover-shared-state\"] === \"string\"\n ? input.values[\"recover-shared-state\"]\n : undefined;\n const inspection = yield* experimentHost.teardown.inspect({\n cwd: invocation.cwd,\n currentHost: invocation.hostname,\n ...(selector === undefined ? {} : { experimentSelector: selector }),\n ...(recoveryKey === undefined ? {} : { recoveryKey }),\n }).pipe(Effect.mapError((cause) => failure(\"inspect teardown\", cause)));\n if (inspection.status === \"experiment-no-match\" || inspection.status === \"eval-no-match\" || inspection.status === \"empty-selection\") {\n yield* write(\"stderr\", selectionProblemText(inspection));\n return 1;\n }\n const evidence = teardownInspectionEvidence(inspection);\n if (evidence !== undefined)\n yield* write(\"stderr\", sharedStateEvidenceText(evidence));\n if (inspection.status === \"no-evidence\" ||\n inspection.status === \"selection-not-unique\" ||\n inspection.status === \"experiment-mismatch\") {\n yield* write(\"stderr\", teardownInspectionProblemText(inspection)!);\n return 1;\n }\n // Recovery evidence is deliberately available before confirmations. This\n // preserves the after-kill operator flow while keeping the normal\n // teardown path free of Record migration and Invocation construction.\n if (recoveryKey !== undefined && (typeof input.values[\"owner-token\"] !== \"string\" ||\n input.values[\"confirm-owner-terminated\"] !== true ||\n input.values[\"confirm-remote-quiesced\"] !== true)) {\n yield* write(\"stderr\", `sharedState recovery requires \\`--teardown --recover-shared-state <key> --owner-token <token> --confirm-owner-terminated --confirm-remote-quiesced\\`.\n`);\n return 1;\n }\n if (inspection.status === \"teardown-required\") {\n yield* write(\"stderr\", teardownInspectionProblemText(inspection)!);\n return 1;\n }\n const interruption = yield* CliInterruption;\n const output = yield* CliOutput;\n const result = yield* experimentHost.teardown.run({\n cwd: invocation.cwd,\n currentHost: invocation.hostname,\n ...(selector === undefined ? {} : { experimentSelector: selector }),\n ...(recoveryKey === undefined ? {} : { recoveryKey }),\n ...(typeof input.values[\"owner-token\"] === \"string\" ? { ownerToken: input.values[\"owner-token\"] } : {}),\n ...(input.values[\"confirm-owner-terminated\"] === true ? { confirmOwnerTerminated: true } : {}),\n ...(input.values[\"confirm-remote-quiesced\"] === true ? { confirmRemoteQuiesced: true } : {}),\n signal: interruption.invocationSignal,\n observer: Object.freeze({\n observe(event: ExperimentHostTeardownEvent) {\n if (event.type === \"diagnostic\")\n output.writeStderrSync(`${event.message}\\n`);\n },\n }),\n }).pipe(Effect.mapError((cause) => teardownFailure(\"run teardown\", cause, recoveryKey)));\n if (result.status === \"completed\") {\n for (const experiment of result.experiments) {\n if (experiment.outcome === \"succeeded\") {\n yield* write(\"stderr\", `teardown done: ${experiment.experimentId}\n`);\n }\n else if (experiment.outcome === \"failed\") {\n yield* write(\"stderr\", `teardown failed: ${experiment.experimentId}: ${experiment.error ?? \"unknown\"}\n`);\n }\n }\n }\n else if (result.status === \"recovered\" || result.status === \"already-released\") {\n if (result.status === \"recovered\") {\n yield* write(\"stderr\", `teardown done: ${result.experimentId}\n`);\n }\n if (result.status === \"already-released\")\n yield* write(\"stderr\", `sharedState key ${result.key} was already released after its cleanup; its immutable recovery generation is already complete.\n`);\n yield* write(\"stderr\", `explicitly recovered sharedState key ${result.key} for experiment ${result.experimentId}.\n`);\n }\n else if (result.status === \"recovery-teardown-failed\") {\n yield* write(\"stderr\", `teardown failed: ${result.evidence.experimentId}: ${result.error}\n`);\n }\n else {\n const changedEvidence = teardownInspectionEvidence(result);\n if (changedEvidence !== undefined)\n yield* write(\"stderr\", sharedStateEvidenceText(changedEvidence));\n const problem = teardownInspectionProblemText(result);\n if (problem !== undefined)\n yield* write(\"stderr\", problem);\n }\n return result.status === \"completed\" || result.status === \"recovered\" || result.status === \"already-released\" ? 0 : 1;\n }\n if (verb === \"list\") {\n if (rest.length > 1)\n return yield* write(\"stderr\", \"niceeval exp list accepts at most one experiment prefix.\\n\").pipe(Effect.as(1));\n const project = yield* ProjectConfiguration;\n yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n const result = yield* experimentHost.catalog({ cwd: invocation.cwd, ...selection(rest), ...(typeof input.values.tag === \"string\" ? { tag: input.values.tag } : {}) }).pipe(Effect.mapError((cause) => failure(\"list\", cause)));\n if (result.experiments.length === 0 && rest[0] !== undefined) {\n yield* write(\"stderr\", `No experiment matched: ${rest[0]}. Available paths: ${browsableExperimentPaths(result.experimentIds).join(\", \") || \"(none)\"}.\nRun \\`niceeval exp <path> --dry\\` to preview a plan.\n`);\n return 1;\n }\n yield* write(\"stdout\", input.values.json === true ? catalogJson(result) : catalogText(result));\n return 0;\n }\n if (verb === \"rename\") {\n const [newId] = rest;\n const sourceRuns = input.values.run;\n const sourceRunId = Array.isArray(sourceRuns) && sourceRuns.length === 1 ? sourceRuns[0] : typeof sourceRuns === \"string\" ? sourceRuns : undefined;\n if (newId === undefined || rest.length !== 1 || typeof sourceRunId !== \"string\" || sourceRunId.length === 0) {\n return yield* write(\"stderr\", \"usage: niceeval exp rename <new-id> --run <source-run-id> [--dry] [--json]\\n\").pipe(Effect.as(1));\n }\n const project = yield* ProjectConfiguration;\n const config = yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n const renameInput = { cwd: invocation.cwd, sourceRunId, newId, config };\n const result = input.values.dry === true\n ? yield* experimentHost.rename.plan(renameInput).pipe(Effect.mapError((cause) => failure(\"plan rename\", cause)))\n : yield* experimentHost.rename.apply(renameInput).pipe(Effect.mapError((cause) => failure(\"rename\", cause)));\n yield* write(\"stdout\", input.values.json === true ? renameJson(result) : renameText(result));\n return result.status === \"rejected\" || (result.status === \"plan\" && result.blocked !== undefined) ? 1 : 0;\n }\n const project = yield* ProjectConfiguration;\n const config = yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n const plan = yield* experimentHost.invocation.plan({\n cwd: invocation.cwd,\n config,\n ...selection(input.positionals),\n ...(typeof input.values.tag === \"string\" ? { tag: input.values.tag } : {}),\n ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}),\n overrides: overrides(input.values),\n preview: input.values.dry === true,\n }).pipe(Effect.mapError((cause) => failure(\"plan invocation\", cause)));\n if (plan.status !== \"ready\") {\n yield* write(\"stderr\", selectionProblemText(plan));\n return 1;\n }\n if (input.values.dry === true) {\n if (plan.dry === undefined)\n return yield* Effect.fail(failure(\"preview invocation\", new Error(\"Experiment Host did not return the requested dry plan.\")));\n yield* write(\"stdout\", input.values.json === true\n ? dryJson(plan.dry, plan.shape, plan.pluginAudit.occurrences)\n : dryText(plan.dry, plan.shape, plan.pluginAudit.occurrences.length));\n return 0;\n }\n const interruption = yield* CliInterruption;\n if (!(yield* Effect.sync(interruption.enterGracefulDispatch)))\n return yield* Effect.interrupt;\n const terminal = yield* ExperimentCliTerminal;\n const profile = resolveOutputForm({\n json: input.values.json === true,\n isTTY: invocation.stderr.isTTY,\n });\n const renderer = profile === \"human\"\n ? createHumanRenderer({\n io: terminal.feedback,\n command: [\"niceeval\", \"exp\", ...input.positionals].join(\" \").trim(),\n })\n : createJsonRenderer({ io: terminal.feedback });\n const coordinator = createFeedbackCoordinator({\n profile,\n renderer,\n io: terminal.feedback,\n // Experiment Host installs one lossless multiplexing sink for feedback\n // and the project-local Session observer.\n activateSink: false,\n });\n const outcome = yield* Effect.result(Effect.scoped(Effect.gen(function* () {\n yield* Effect.acquireRelease(Effect.sync(() => createInputGuard({\n stdin: terminal.stdin,\n stderrIsTTY: terminal.feedback.stderr.isTTY,\n coordinator,\n onInterrupt: interruption.requestInterrupt,\n })), (guard) => Effect.sync(guard.stop));\n return yield* experimentHost.invocation.run({\n plan: plan.plan,\n signal: interruption.invocationSignal,\n feedback: Object.freeze({ coordinator }),\n ...(typeof input.values.junit === \"string\" ? { junitPath: input.values.junit } : {}),\n });\n })));\n if (Result.isFailure(outcome)) {\n if (outcome.failure.code === \"runner-record-assertions-invalid\") {\n yield* write(\"stderr\", `error: ${outcome.failure.message}\\n`);\n return 1;\n }\n return yield* Effect.fail(failure(\"run invocation\", outcome.failure));\n }\n const result = outcome.success;\n if (result.exitCode === undefined) {\n return yield* Effect.fail(failure(\"finish invocation feedback\", new Error(\"Experiment Host returned without the requested presentation exit fold.\")));\n }\n return result.exitCode;\n }),\n});\nconst debugCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"debug\",\n summary: \"show one Experiment lifecycle plan\",\n options: DEBUG_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, DEBUG_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", DEBUG_HELP).pipe(Effect.as(0));\n const [experimentSelector, evalSelector] = input.positionals;\n if (experimentSelector === undefined || input.positionals.length > 2) {\n return yield* write(\"stderr\", `error: niceeval debug expects one Experiment selector and an optional Eval selector\n fix: niceeval debug <experiment> [eval] [--json]\n`).pipe(Effect.as(1));\n }\n const { invocation, config } = yield* factsAndConfig();\n const result = yield* experimentHost.debug({\n cwd: invocation.cwd,\n config,\n experimentSelector,\n ...(evalSelector === undefined ? {} : { evalSelector }),\n }).pipe(Effect.mapError((cause) => failure(\"debug\", cause)));\n switch (result.status) {\n case \"experiment-no-match\":\n yield* write(\"stderr\", `error: Experiment selector \"${result.selector}\" matched nothing\n exact candidates: ${result.candidates.join(\", \") || \"(none)\"}\n`);\n return 1;\n case \"experiment-ambiguous\":\n yield* write(\"stderr\", `error: Experiment selector \"${result.selector}\" is ambiguous\n exact candidates: ${result.candidates.join(\", \")}\n`);\n return 1;\n case \"eval-no-match\":\n yield* write(\"stderr\", `error: Eval selector \"${result.selector}\" matched nothing in Experiment \"${result.experimentId}\"\n exact candidates: ${result.candidates.join(\", \") || \"(none)\"}\n`);\n return 1;\n case \"eval-ambiguous\":\n yield* write(\"stderr\", `error: Eval selector \"${result.selector}\" is ambiguous in Experiment \"${result.experimentId}\"\n exact candidates: ${result.candidates.join(\", \")}\n`);\n return 1;\n case \"planned\":\n yield* write(\"stdout\", input.values.json === true\n ? jsonDocument({\n experimentId: result.experimentId,\n ...(result.evalId === undefined ? {} : { evalId: result.evalId }),\n evalIds: result.evalIds,\n setupPrefixPlan: result.setupPrefixPlan,\n commandPlan: result.commandPlan,\n })\n : `Setup-prefix plan: ${result.setupPrefixPlan.nodes.length} unique nodes · cache lookup not-probed\\n${renderHumanCommandPlan(result.commandPlan, {\n isTTY: invocation.stdout.isTTY,\n noColor: invocation.noColor,\n width: invocation.stdout.columns,\n })}`);\n return 0;\n }\n }),\n});\nconst acceptCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"accept\",\n summary: \"accept exact historical Attempt locators\",\n options: ACCEPT_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, ACCEPT_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", ACCEPT_HELP).pipe(Effect.as(0));\n const sourceRunIds = Array.isArray(input.values.run) ? input.values.run : [];\n const sourceRunId = sourceRunIds.length === 1 ? sourceRunIds[0] : undefined;\n if (sourceRunIds.length > 1)\n return yield* write(\"stderr\", \"niceeval accept --run requires one exact Run ID.\\n\").pipe(Effect.as(1));\n if ((sourceRunId === undefined && input.positionals.length === 0) || (sourceRunId !== undefined && input.positionals.length > 0) || (input.values.dry === true && sourceRunId === undefined)) {\n return yield* write(\"stderr\", \"usage: niceeval accept @<locator>... | niceeval accept --run <exact-run-id> [--dry]\\n\").pipe(Effect.as(1));\n }\n const { invocation, config } = yield* factsAndConfig();\n if (sourceRunId !== undefined) {\n if (input.values.dry === true) {\n const plan = yield* experimentHost.acceptRun.plan({ cwd: invocation.cwd, config, runId: sourceRunId, ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}) }).pipe(Effect.mapError((cause) => failure(\"accept\", cause, 1, `error: could not accept result: ${cause.message}\n`)));\n yield* write(\"stdout\", acceptRunPlanText(plan));\n return 0;\n }\n const accepted = yield* experimentHost.acceptRun.apply({ cwd: invocation.cwd, config, runId: sourceRunId, ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}) }).pipe(Effect.mapError((cause) => failure(\"accept\", cause, 1, `error: could not accept result: ${cause.message}\n`)));\n yield* write(\"stdout\", acceptedRunText(sourceRunId, accepted));\n return 0;\n }\n const result = yield* experimentHost.accept({ cwd: invocation.cwd, config, locators: Object.freeze(input.positionals), ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}) }).pipe(Effect.mapError((cause) => failure(\"accept\", cause, 1, `error: could not accept result: ${cause.message}\n`)));\n yield* write(\"stdout\", acceptText(result));\n return 0;\n }),\n});\nconst sessionCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"session\",\n summary: \"inspect project-local ephemeral Invocation status\",\n options: SESSION_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, SESSION_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", SESSION_HELP).pipe(Effect.as(0));\n const [verb = \"list\", value] = input.positionals;\n const facts = yield* CliInvocationFacts;\n const invocation = yield* facts.facts.pipe(Effect.mapError((cause) => failure(\"read invocation facts\", cause)));\n if (verb === \"list\") {\n const result = yield* experimentHost.invocationStatus.list({ cwd: invocation.cwd, ...(input.values.all === true ? { all: true } : {}), ...(value === undefined ? {} : { experimentSelector: value }) }).pipe(Effect.mapError((cause) => failure(\"list invocation status\", cause)));\n yield* write(\"stdout\", input.values.json === true ? jsonDocument(result) : renderSessionListText(result, Date.now(), input.values.all === true));\n return 0;\n }\n if (verb === \"show\" && value !== undefined && input.positionals.length === 2) {\n const result = yield* experimentHost.invocationStatus.show({ cwd: invocation.cwd, invocationSelector: value }).pipe(Effect.mapError((cause) => failure(\"show invocation status\", cause)));\n yield* write(\"stdout\", input.values.json === true ? jsonDocument(result) : renderSessionShowText(result));\n return 0;\n }\n return yield* write(\"stderr\", \"usage: niceeval session [list [<experiment-prefix>] | show <invocation-id>]\\n\").pipe(Effect.as(1));\n }),\n});\n/** The composition root receives frozen feature values; it never registers services. */\nexport const experimentCliContributions = Object.freeze([\n checkCommand,\n expCommand,\n debugCommand,\n acceptCommand,\n sessionCommand,\n] as const);\n"]}
1
+ {"version":3,"file":"contribution.js","sourceRoot":"","sources":["contribution.ts"],"names":[],"mappings":"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","sourcesContent":["import { rawExperimentHost as experimentHost } from \"../runtime.ts\";\nimport type { ExperimentHostRequirements } from \"../requirements.ts\";\nimport { Effect, Result } from \"effect\";\nimport { CliArguments, CliInterruption, CliInvocationFacts, CliOutput, type CliOptionDefinition, } from \"../../../cli/application.ts\";\nimport { CliFeatureError, type CliCommandContribution } from \"../../../cli/contribution.ts\";\nimport { ProjectConfiguration } from \"../../../cli/project-configuration.ts\";\nimport { createFeedbackCoordinator, createHumanRenderer, createInputGuard, createJsonRenderer, renderHumanCommandPlan, resolveOutputForm, } from \"../../../runner/feedback/index.ts\";\nimport { renderSessionListText, renderSessionShowText } from \"../../../runner/session.ts\";\nimport type { CurrentReuseReadbackSnapshot } from \"../../../runner/reuse-readback.ts\";\nimport { browsableExperimentPaths } from \"../../../shared/aggregate.ts\";\nimport { type ExperimentHostDebugPlan, type ExperimentHostRenamePlan, type ExperimentHostRenameReason, type ExperimentHostRenameResult, type ExperimentHostSharedStateEvidence, type ExperimentHostTeardownEvent, type ExperimentHostTeardownResult, } from \"../index.ts\";\nimport { ExperimentCliTerminal } from \"./terminal.ts\";\nexport { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from \"./plan-protocol.ts\";\ntype ExperimentCliRequirements = CliArguments | CliInterruption | CliInvocationFacts | CliOutput | ExperimentCliTerminal | ProjectConfiguration | ExperimentHostRequirements;\ntype ExperimentCliError = CliFeatureError;\nconst option = (type: \"string\" | \"boolean\", summary: string, multiple?: true) => Object.freeze({\n type,\n ...(multiple === undefined ? {} : { multiple }),\n help: Object.freeze({ summary, visibility: \"public\" as const }),\n});\nconst optionalTier = (summary: string, defaultValue: string, values: readonly string[], separated = false) => Object.freeze({\n type: \"boolean\" as const,\n optionalValue: Object.freeze({\n default: defaultValue,\n ...(separated ? { separated: true as const } : {}),\n values: Object.freeze([...values]),\n }),\n help: Object.freeze({ summary, visibility: \"public\" as const }),\n});\nconst HELP_OPTION = Object.freeze({\n type: \"boolean\" as const,\n short: \"h\",\n help: Object.freeze({ summary: \"Show command help.\", visibility: \"public\" as const }),\n});\nexport const CHECK_CLI_OPTIONS = Object.freeze({\n tag: option(\"string\", \"Select only Evals with this tag.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_NORMAL_CLI_OPTIONS = Object.freeze({\n experiment: option(\"string\", \"Select an exact Experiment ID; repeat to select a set.\", true),\n attempts: option(\"string\", \"Run each selected Eval this many times.\"),\n \"max-concurrency\": option(\"string\", \"Limit concurrent Attempt execution.\"),\n \"max-build-concurrency\": option(\"string\", \"Limit concurrent Sandbox build preparation.\"),\n \"max-setup-prefix-concurrency\": option(\"string\", \"Limit concurrent Sandbox setup-prefix preparation.\"),\n \"sandbox-setup-cache\": option(\"string\", \"使用或绕过 Sandbox 准备缓存。\"),\n timeout: option(\"string\", \"Set the per-Attempt timeout in milliseconds.\"),\n budget: option(\"string\", \"Set the Invocation budget in USD.\"),\n tag: option(\"string\", \"Select only Evals with this tag.\"),\n junit: option(\"string\", \"Write a required JUnit report.\"),\n json: option(\"boolean\", \"Write the command's machine document or event stream.\"),\n dry: option(\"boolean\", \"Plan without creating an Invocation.\"),\n rerun: optionalTier(\"Require failed or all targets to run again.\", \"failed\", [\"failed\", \"all\"], true),\n \"keep-sandbox\": optionalTier(\"Keep failed or all finished Sandboxes.\", \"failed\", [\"failed\", \"all\"]),\n \"early-exit\": option(\"boolean\", \"Stop remaining attempts after a passing result.\"),\n \"no-early-exit\": option(\"boolean\", \"Force all configured attempts to run.\"),\n record: option(\"string\", \"Use this Record root.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_LIST_CLI_OPTIONS = Object.freeze({\n tag: option(\"string\", \"Select only Evals with this tag.\"),\n json: option(\"boolean\", \"Write the catalog machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_RENAME_CLI_OPTIONS = Object.freeze({\n run: option(\"string\", \"Select the exact source Run to adopt into the target Experiment.\", true),\n dry: option(\"boolean\", \"Preview the explicit Experiment rename.\"),\n json: option(\"boolean\", \"Write the rename machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const EXP_TEARDOWN_CLI_OPTIONS = Object.freeze({\n teardown: option(\"boolean\", \"Run explicit Experiment teardown recovery.\"),\n json: option(\"boolean\", \"Write machine output where the operation supports it.\"),\n \"recover-shared-state\": option(\"string\", \"Name a shared-state key for explicit recovery.\"),\n \"owner-token\": option(\"string\", \"Provide the exact shared-state owner token.\"),\n \"confirm-owner-terminated\": option(\"boolean\", \"Confirm the recorded owner has terminated.\"),\n \"confirm-remote-quiesced\": option(\"boolean\", \"Confirm remote shared state is quiesced.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const DEBUG_CLI_OPTIONS = Object.freeze({\n json: option(\"boolean\", \"Write the command-plan machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const ACCEPT_CLI_OPTIONS = Object.freeze({\n run: option(\"string\", \"Accept every member of one exact source Run.\", true),\n dry: option(\"boolean\", \"Preview acceptance without publishing a Run.\"),\n record: option(\"string\", \"Use this Record root.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nexport const SESSION_CLI_OPTIONS = Object.freeze({\n all: option(\"boolean\", \"Include completed invocation status entries.\"),\n json: option(\"boolean\", \"Write the status machine document.\"),\n help: HELP_OPTION,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\n/** `exp` is a command family; its composition schema is its own frozen union. */\nconst EXP_CLI_OPTIONS = Object.freeze({\n ...EXP_NORMAL_CLI_OPTIONS,\n ...EXP_LIST_CLI_OPTIONS,\n ...EXP_RENAME_CLI_OPTIONS,\n ...EXP_TEARDOWN_CLI_OPTIONS,\n} satisfies Readonly<Record<string, CliOptionDefinition>>);\nconst SHARED_STATE_RECOVERY_USAGE = ` niceeval exp <selector> --teardown --recover-shared-state <key>\n --owner-token <token> --confirm-owner-terminated --confirm-remote-quiesced`;\nconst CHECK_HELP = `Check Experiment selection:\n niceeval check [<experiment-prefix> [<eval-prefix>...]] [--tag <tag>]\n\nOptions:\n --tag <tag> select only Evals with this tag\n -h, --help show this help\n`;\nconst EXP_HELP = `Run and maintain Experiments:\n niceeval exp [<experiment-prefix> [<eval-prefix>...]] [options]\n niceeval exp --experiment <exact-id> [--experiment <exact-id>...] [<eval-prefix>...] [options]\n niceeval exp list [<experiment-prefix>] [--tag <tag>] [--json]\n niceeval exp rename <new-id> --run <source-run-id> [--dry] [--json]\n${SHARED_STATE_RECOVERY_USAGE}\n\nRun options:\n --experiment <exact-id> select an exact Experiment ID (repeatable)\n --attempts <n> run each selected Eval this many times\n --max-concurrency <n> limit concurrent Attempt execution\n --max-build-concurrency <n> limit concurrent Sandbox build preparation\n --max-setup-prefix-concurrency <n>\n limit concurrent Sandbox setup-prefix preparation\n --sandbox-setup-cache <use|bypass>\n select the Sandbox setup cache path\n --timeout <ms> set the per-Attempt timeout\n --budget <usd> set the Invocation budget\n --tag <tag> select only Evals with this tag\n --rerun[=failed|all] require selected targets to run again\n --keep-sandbox[=failed|all] retain selected finished Sandboxes\n --early-exit / --no-early-exit\n --dry plan without creating an Invocation\n --json write machine output or the Invocation event stream\n --junit <path> write a required JUnit report\n --record <root> use this Record root\n\nRecovery options:\n --teardown run only explicit Experiment teardown recovery\n --recover-shared-state <key> inspect or recover this immutable shared-state owner\n --owner-token <token> provide the exact owner token shown by inspection\n --confirm-owner-terminated confirm the recorded owner has terminated\n --confirm-remote-quiesced confirm remote shared state is quiesced\n -h, --help show this help\n`;\nconst DEBUG_HELP = `Inspect an Experiment lifecycle plan:\n niceeval debug <experiment-selector> [eval-selector] [--json]\n\nOptions:\n --json write the command-plan machine document\n -h, --help show this help\n`;\nconst ACCEPT_HELP = `Accept exact historical Attempt locators:\n niceeval accept @<locator>... [--record <root>]\n niceeval accept --run <exact-run-id> [--dry] [--record <root>]\n\nOptions:\n --run <run-id> accept one exact source Run\n --dry preview a whole-Run acceptance without writing\n --record <root> use this Record root\n -h, --help show this help\n`;\nconst SESSION_HELP = `Inspect project-local ephemeral Invocation status:\n niceeval session list [--all] [<experiment-prefix>]\n niceeval session show <invocation-id>\n\nOptions:\n --all include completed Invocation status entries\n --json write the status machine document\n -h, --help show this help\n`;\nconst EXP_COMMAND_SUMMARY = `list, plan, run, rename, or recover Experiments\n explicit sharedState recovery:\n${SHARED_STATE_RECOVERY_USAGE}`;\nfunction failure(operation: string, cause: unknown, exitCode = 1, display?: string): ExperimentCliError {\n return new CliFeatureError({\n feature: \"experiments\",\n operation,\n cause,\n exitCode,\n ...(display === undefined ? {} : { display }),\n });\n}\nfunction write(channel: \"stdout\" | \"stderr\", text: string): Effect.Effect<void, ExperimentCliError, CliOutput> {\n return Effect.flatMap(CliOutput, (output) => channel === \"stdout\" ? output.writeStdout(text) : output.writeStderr(text)).pipe(Effect.mapError((cause) => failure(`write ${channel}`, cause)));\n}\nfunction numberFlag(value: string | boolean | string[] | undefined, name: string, positive = false): number | undefined {\n if (value === undefined)\n return undefined;\n if (typeof value !== \"string\" || !/^[0-9]+(?:\\.[0-9]+)?$/u.test(value))\n throw new Error(`${name} requires a number.`);\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0 || (positive && (!Number.isInteger(parsed) || parsed === 0))) {\n throw new Error(positive ? `${name} requires a positive integer.` : `${name} requires a non-negative finite number.`);\n }\n return parsed;\n}\nfunction enumFlag(value: string | boolean | string[] | undefined, name: string, values: readonly string[]): string | undefined {\n if (value === undefined)\n return undefined;\n if (typeof value !== \"string\" || !values.includes(value))\n throw new Error(`${name} accepts ${values.join(\" or \")}.`);\n return value;\n}\nfunction jsonDocument(value: unknown): string {\n return `${JSON.stringify(value)}\\n`;\n}\nfunction catalogText(catalog: {\n readonly experiments: readonly {\n readonly id: string;\n readonly description?: string;\n readonly adapter: string;\n readonly model?: string;\n readonly attempts: number;\n readonly evalIds: readonly string[];\n readonly labels: Readonly<Record<string, string | number>>;\n }[];\n}): string {\n return catalog.experiments.map((experiment) => [\n experiment.id,\n experiment.description ?? \"—\",\n experiment.adapter,\n experiment.model ?? \"—\",\n `attempts=${experiment.attempts}`,\n `evals=${experiment.evalIds.length}`,\n `labels=${JSON.stringify(experiment.labels)}`,\n ].join(\"\\t\")).join(\"\\n\") + (catalog.experiments.length === 0 ? \"\" : \"\\n\");\n}\nfunction catalogJson(catalog: {\n readonly experiments: readonly {\n readonly id: string;\n readonly description?: string;\n readonly adapter: string;\n readonly model?: string;\n readonly attempts: number;\n readonly evalIds: readonly string[];\n readonly labels: Readonly<Record<string, string | number>>;\n }[];\n}): string {\n return jsonDocument({\n format: \"niceeval.experiments\",\n schemaVersion: 1,\n experiments: catalog.experiments.map((experiment) => ({\n experimentId: experiment.id,\n ...(experiment.description === undefined ? {} : { description: experiment.description }),\n adapter: experiment.adapter,\n ...(experiment.model === undefined ? {} : { model: experiment.model }),\n attempts: experiment.attempts,\n evalCount: experiment.evalIds.length,\n labels: experiment.labels,\n selectedEvalIds: experiment.evalIds,\n })),\n });\n}\nfunction checkText(result: {\n readonly status: string;\n readonly pairCount?: number;\n}): string {\n return result.status === \"linked\"\n ? `Sandbox layers linked: ${result.pairCount} pairs.\\n`\n : `Experiment selection: ${result.status}.\\n`;\n}\nfunction selectionProblemText(result: {\n readonly status: string;\n readonly selector?: string;\n readonly candidates?: readonly string[];\n readonly experimentIds?: readonly string[];\n}): string {\n if (result.status === \"experiment-no-match\") {\n return `No experiment matched: ${result.selector ?? \"(all)\"}. Available paths: ${browsableExperimentPaths(result.candidates ?? []).join(\", \") || \"(none)\"}.\nRun \\`niceeval exp <path> --dry\\` to preview a plan.\n`;\n }\n if (result.status === \"eval-no-match\") {\n return `No eval matched prefix: ${result.selector ?? \"\"} in experiments selected by ${(result.experimentIds ?? []).join(\", \") || \"(all)\"}.\nPositional args after the first select eval id prefixes. To select separate experiments in one Invocation,\nuse: niceeval exp --experiment <first-id> --experiment <second-id>\n`;\n }\n return `No evals selected: ${(result.experimentIds ?? []).join(\", \") || \"(all)\"} matched 0 evals. Available eval prefixes: ${browsableExperimentPaths(result.candidates ?? result.experimentIds ?? []).join(\", \") || \"(none)\"}.\nRun \\`niceeval exp ${(result.experimentIds ?? []).join(\", \") || \"(all)\"} --dry\\` to see what it covers, or drop the eval filter to run every eval selected by those experiments.\n`;\n}\nfunction acceptText(results: readonly {\n readonly runId: string;\n readonly sourceLocator: string;\n readonly locator: string;\n readonly fingerprint: string;\n}[]): string {\n const accepted = results.map((result) => `Accepted source Attempt ${result.sourceLocator} into new Run ${result.runId}. Result locator remains ${result.locator}. Current fingerprint: ${result.fingerprint}\n`).join(\"\");\n const commands = [...new Set(results.map((result) => result.runId))]\n .map((runId) => `show: niceeval show --run ${runId}\\n`).join(\"\");\n return `${accepted}${commands}`;\n}\nfunction acceptRunPlanText(plan: {\n readonly sourceRunId: string;\n readonly members: readonly {\n readonly locator: string;\n readonly evalId: string;\n readonly attempt: number;\n }[];\n}): string {\n const members = plan.members.map((member) => ` ${member.evalId} #${String(member.attempt)} ${member.locator} eligible\\n`).join(\"\");\n return `Accept source Run ${plan.sourceRunId}\\n${members}\\n${String(plan.members.length)} members eligible\\nApply: niceeval accept --run ${plan.sourceRunId}\\n`;\n}\nfunction acceptedRunText(sourceRunId: string, results: readonly {\n readonly runId: string;\n readonly sourceLocator: string;\n readonly locator: string;\n readonly fingerprint: string;\n}[]): string {\n const targetRunId = results[0]?.runId ?? \"unknown\";\n return `Accepted source Run ${sourceRunId} into new Run ${targetRunId}. ${String(results.length)} reference members published.\\n${acceptText(results)}`;\n}\nfunction sharedStateEvidenceText(evidence: ExperimentHostSharedStateEvidence): string {\n return `sharedState recovery target:\n key: ${evidence.key}\n experiment: ${evidence.experimentId}\n owner token: ${evidence.ownerToken}\n host: ${evidence.host}\n PID: ${evidence.pid}\n process identity: ${evidence.processIdentity}\n heartbeat: ${evidence.heartbeatAt}\n`;\n}\nfunction teardownInspectionEvidence(inspection: ExperimentHostTeardownResult): ExperimentHostSharedStateEvidence | undefined {\n return \"evidence\" in inspection ? inspection.evidence : undefined;\n}\nfunction teardownInspectionProblemText(inspection: ExperimentHostTeardownResult): string | undefined {\n switch (inspection.status) {\n case \"no-evidence\":\n return `No recoverable sharedState ownership evidence exists for ${JSON.stringify(inspection.key)}.\\n`;\n case \"selection-not-unique\":\n return \"sharedState recovery requires an experiment selector that resolves to exactly one Experiment.\\n\";\n case \"experiment-mismatch\":\n return `sharedState key ${JSON.stringify(inspection.evidence.key)} belongs to experiment ${inspection.evidence.experimentId}, not ${inspection.selectedExperimentId}; refusing recovery.\\n`;\n case \"teardown-required\":\n return `error: sharedState recovery requires the selected Experiment ${inspection.experimentId} to declare teardown as a function. The active generation was left unchanged.\n`;\n case \"recovery-confirmation-required\":\n return `sharedState recovery requires \\`--teardown --recover-shared-state <key> --owner-token <token> --confirm-owner-terminated --confirm-remote-quiesced\\`.\n`;\n default:\n return undefined;\n }\n}\nfunction teardownFailure(operation: string, cause: unknown, recoveryKey?: string): ExperimentCliError {\n const code = typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"code\") === \"string\"\n ? String(Reflect.get(cause, \"code\"))\n : undefined;\n const message = cause instanceof Error ? cause.message : String(cause);\n const display = code === \"shared-state-recovery-registration-failed\" && recoveryKey !== undefined\n ? `error: sharedState recovery for ${recoveryKey} could not clear the exact interrupted teardown registration: ${message}. The recovery generation remains closed.\n`\n : code === \"shared-state-recovery-already-released-registration-failed\" && recoveryKey !== undefined\n ? `error: sharedState key ${recoveryKey} was already released, but NiceEval could not clear the exact stale teardown registration: ${message}. It did not rerun teardown.\n`\n : code === \"shared-state-recovery-completion-failed\"\n ? `sharedState recovery could not release its exact owner token: ${message}\\n`\n : recoveryKey === undefined\n ? undefined\n : `sharedState recovery refused: ${message}\\n`;\n return failure(operation, cause, 1, display);\n}\nfunction invocationText(result: {\n readonly receipt: {\n readonly invocationId: string;\n readonly createdRunIds: readonly string[];\n readonly completion: string;\n };\n readonly summary: {\n readonly passed: number;\n readonly failed: number;\n readonly skipped: number;\n readonly errored: number;\n readonly setupPrefixes: {\n readonly total: number;\n readonly hit: number;\n readonly prepared: number;\n readonly failed: number;\n };\n };\n}): string {\n return `Invocation ${result.receipt.invocationId} · ${result.receipt.completion}\\nRuns: ${result.receipt.createdRunIds.join(\", \") || \"none\"}\\nResults: ${result.summary.passed} passed · ${result.summary.failed} failed · ${result.summary.errored} errored · ${result.summary.skipped} skipped\\nSetup prefixes: ${result.summary.setupPrefixes.hit} hit · ${result.summary.setupPrefixes.prepared} prepared · ${result.summary.setupPrefixes.failed} failed (${result.summary.setupPrefixes.total} total)\\n`;\n}\nfunction dryRows(plan: {\n readonly slots: readonly {\n readonly state: \"reuse\" | \"gap\";\n readonly target: {\n readonly runId: string;\n readonly slotId: string;\n readonly experimentId: string;\n readonly evalId: string;\n readonly evalGroupId?: string;\n readonly evalGroupIndex?: number;\n readonly attempt: number;\n };\n readonly comparisons: readonly unknown[];\n readonly reason?: string;\n readonly scope?: string;\n }[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n readonly lockedPairs: readonly string[];\n}) {\n type ProjectedSlot = {\n readonly runId: string;\n readonly slotId: string;\n readonly experimentId: string;\n readonly evalId: string;\n readonly attempt: number;\n readonly state: \"reused\" | \"gap\";\n readonly comparisons: readonly unknown[];\n readonly reason?: string;\n readonly scope?: string;\n };\n const rows = new Map<string, {\n experimentId: string;\n evalId: string;\n evalGroupId?: string;\n evalGroupIndex?: number;\n slots: ProjectedSlot[];\n readbacks: CurrentReuseReadbackSnapshot[];\n locked?: true;\n }>();\n for (const slot of plan.slots) {\n const key = JSON.stringify([slot.target.experimentId, slot.target.evalId]);\n const row = rows.get(key) ?? {\n experimentId: slot.target.experimentId,\n evalId: slot.target.evalId,\n ...(slot.target.evalGroupId === undefined ? {} : { evalGroupId: slot.target.evalGroupId, evalGroupIndex: slot.target.evalGroupIndex }),\n slots: [],\n readbacks: [],\n };\n row.slots.push({\n ...slot.target,\n state: slot.state === \"reuse\" ? \"reused\" : \"gap\",\n comparisons: slot.comparisons,\n ...(slot.state === \"gap\" ? { reason: slot.reason, scope: slot.scope } : {}),\n });\n if (plan.lockedPairs.includes(key))\n row.locked = true;\n rows.set(key, row);\n }\n for (const readback of plan.readbacks) {\n const key = JSON.stringify([readback.target.experimentId, readback.target.evalId]);\n const row = rows.get(key) ?? { experimentId: readback.target.experimentId, evalId: readback.target.evalId, slots: [], readbacks: [] };\n row.readbacks.push(readback);\n if (plan.lockedPairs.includes(key))\n row.locked = true;\n rows.set(key, row);\n }\n return [...rows.values()].map((row) => ({\n ...row,\n slots: [...row.slots].sort((left, right) => left.attempt - right.attempt),\n readbacks: [...row.readbacks].sort((left, right) => left.target.attempt - right.target.attempt),\n })).sort((left, right) => left.experimentId.localeCompare(right.experimentId) || left.evalId.localeCompare(right.evalId));\n}\nfunction dryText(plan: Parameters<typeof dryRows>[0], shape: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configurations: number;\n readonly attempts: number;\n}, pluginCount: number): string {\n const rows = dryRows(plan);\n const reused = plan.slots.filter((slot) => slot.state === \"reuse\").length;\n const lines = [\n `plan: ${shape.totalAttempts} attempts · ${shape.evals} evals × ${shape.configurations} configs · runs ${shape.attempts}`,\n ...(reused === 0 ? [] : [`reuse: ${reused}/${shape.totalAttempts} exact current Record attempts`]),\n `plugins: ${pluginCount} lifecycle occurrences`,\n ];\n for (const row of rows) {\n const slots = row.slots;\n const reusedAttempts = slots.filter((slot) => slot.state === \"reused\").map((slot) => slot.attempt);\n const gaps = slots.filter((slot) => slot.state === \"gap\");\n const parts = [\n ...(row.locked ? [\"locked\"] : []),\n ...(reusedAttempts.length === 0 ? [] : [`reused ${reusedAttempts.join(\",\")}`]),\n ...gaps.map((slot) => `gap ${slot.attempt}:${slot.reason ?? \"unknown\"}`),\n ];\n lines.push(`${row.experimentId} ${row.evalId} ${parts.join(\" · \") || \"no slots\"}`);\n const hasIdentityGap = gaps.some((slot) => slot.reason === \"identity-mismatch\");\n for (const readback of row.readbacks) {\n const verdict = readback.state === \"reused\"\n ? readback.verdict\n : readback.verdict.state === \"available\"\n ? readback.verdict.value\n : readback.verdict.state;\n lines.push(` source ${readback.source.locator} · ${readback.state} · verdict ${verdict}`);\n if (hasIdentityGap && readback.state === \"prior\")\n lines.push(` accept: niceeval accept ${readback.source.locator}`);\n }\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\nfunction dryJson(plan: Parameters<typeof dryRows>[0], shape: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configurations: number;\n readonly attempts: number;\n}, plugins: readonly unknown[]): string {\n return jsonDocument({\n format: \"niceeval.current-reuse-plan/v1\",\n schemaVersion: 1,\n total: shape.totalAttempts,\n evals: shape.evals,\n configs: shape.configurations,\n attempts: shape.attempts,\n reused: plan.slots.filter((slot) => slot.state === \"reuse\").length,\n matrix: dryRows(plan),\n plugins,\n });\n}\nfunction renameText(result: ExperimentHostRenamePlan | ExperimentHostRenameResult): string {\n const heading = `Source Run ${result.sourceRunId}\\n${result.oldId ?? \"Unknown source Experiment\"} -> ${result.newId}\\n`;\n if (result.status === \"rejected\")\n return `${heading}error: ${result.reason}: ${result.detail}\\n`;\n if (result.status === \"done\")\n return `${heading}Accepted into new Run ${result.runId}. New members participate in current result selection; earlier Runs remain readable.\\n${result.migrated.map((entry) => ` ${entry.evalId} Attempt #${entry.attempt + 1} ${entry.sourceLocator} accepted`).join(\"\\n\")}\\n`;\n if (result.blocked !== undefined)\n return `${heading}error: ${result.blocked.reason}: ${result.blocked.detail}\\n`;\n return `${heading}${result.migrations.map((entry) => ` ${entry.evalId} Attempt #${entry.attempt + 1} ${entry.sourceLocator}`).join(\"\\n\")}\\n${result.migrations.length} members eligible. Applying publishes new current members; earlier Runs remain readable.\\nApply: niceeval exp rename ${result.newId} --run ${result.sourceRunId}\\n`;\n}\nfunction renameJson(result: ExperimentHostRenamePlan | ExperimentHostRenameResult): string {\n return jsonDocument({ format: \"niceeval.experimentRename\", schemaVersion: 1, ...result });\n}\nfunction parsed(argv: readonly string[], options: Readonly<Record<string, CliOptionDefinition>>) {\n return Effect.flatMap(CliArguments, (argumentsService) => Effect.try({\n try: () => argumentsService.parse(argv, options),\n catch: (cause) => failure(\"parse command\", cause),\n }));\n}\nfunction factsAndConfig() {\n return Effect.gen(function* () {\n const facts = yield* CliInvocationFacts;\n const invocation = yield* facts.facts.pipe(Effect.mapError((cause) => failure(\"read invocation facts\", cause)));\n const project = yield* ProjectConfiguration;\n const config = yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n return Object.freeze({ invocation, config });\n });\n}\nfunction selection(positionals: readonly string[], experimentIds?: readonly string[]) {\n if (experimentIds !== undefined) {\n return Object.freeze({\n experimentIds: Object.freeze([...new Set(experimentIds)]),\n ...(positionals.length === 0 ? {} : { evalSelectors: Object.freeze([...positionals]) }),\n });\n }\n const [experimentSelector, ...evalSelectors] = positionals;\n return Object.freeze({\n ...(experimentSelector === undefined ? {} : { experimentSelector }),\n ...(evalSelectors.length === 0 ? {} : { evalSelectors: Object.freeze(evalSelectors) }),\n });\n}\nfunction overrides(values: Record<string, string | boolean | string[] | undefined>) {\n const attempts = numberFlag(values.attempts, \"--attempts\", true);\n const timeoutMs = numberFlag(values.timeout, \"--timeout\");\n const budget = numberFlag(values.budget, \"--budget\");\n const maxConcurrency = numberFlag(values[\"max-concurrency\"], \"--max-concurrency\", true);\n const maxBuildConcurrency = numberFlag(values[\"max-build-concurrency\"], \"--max-build-concurrency\", true);\n const maxSetupPrefixConcurrency = numberFlag(values[\"max-setup-prefix-concurrency\"], \"--max-setup-prefix-concurrency\", true);\n const rerun = enumFlag(values.rerun, \"--rerun\", [\"failed\", \"all\"]);\n const keepSandbox = enumFlag(values[\"keep-sandbox\"], \"--keep-sandbox\", [\"failed\", \"all\"]);\n const sandboxSetupCache = enumFlag(values[\"sandbox-setup-cache\"], \"--sandbox-setup-cache\", [\"use\", \"bypass\"]);\n return Object.freeze({\n ...(attempts === undefined ? {} : { attempts }),\n ...(timeoutMs === undefined ? {} : { timeoutMs }),\n ...(budget === undefined ? {} : { budget }),\n ...(maxConcurrency === undefined ? {} : { maxConcurrency }),\n ...(maxBuildConcurrency === undefined ? {} : { maxBuildConcurrency }),\n ...(maxSetupPrefixConcurrency === undefined ? {} : { maxSetupPrefixConcurrency }),\n ...(rerun === undefined ? {} : { rerun: rerun as \"failed\" | \"all\" }),\n ...(keepSandbox === undefined ? {} : { keepSandbox: keepSandbox as \"failed\" | \"all\" }),\n ...(sandboxSetupCache === undefined\n ? {}\n : { sandboxSetupCache: sandboxSetupCache as \"use\" | \"bypass\" }),\n ...(values[\"no-early-exit\"] === true ? { earlyExit: false } : values[\"early-exit\"] === true ? { earlyExit: true } : {}),\n });\n}\nconst checkCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"check\",\n summary: \"check Experiment and Sandbox selection\",\n options: CHECK_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, CHECK_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", CHECK_HELP).pipe(Effect.as(0));\n const { invocation, config } = yield* factsAndConfig();\n const result = yield* experimentHost.check({ cwd: invocation.cwd, config, ...selection(input.positionals) }).pipe(Effect.mapError((cause) => failure(\"check\", cause)));\n if (result.status !== \"linked\") {\n yield* write(\"stderr\", selectionProblemText(result));\n return 1;\n }\n yield* write(\"stdout\", checkText(result));\n return 0;\n }),\n});\nconst expCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"exp\",\n summary: EXP_COMMAND_SUMMARY,\n options: EXP_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n // First parse only determines the family branch. The second, branch-owned\n // schema rejects irrelevant flags before facts, config, or .env are read.\n const preliminary = yield* parsed(argv, EXP_CLI_OPTIONS);\n const teardownMode = preliminary.values.teardown === true;\n const preliminaryVerb = preliminary.values.experiment === undefined ? preliminary.positionals[0] : undefined;\n if (preliminaryVerb === \"help\" && preliminary.positionals.length === 1) {\n return yield* write(\"stdout\", EXP_HELP).pipe(Effect.as(0));\n }\n const input = yield* parsed(argv, teardownMode\n ? EXP_TEARDOWN_CLI_OPTIONS\n : preliminaryVerb === \"list\"\n ? EXP_LIST_CLI_OPTIONS\n : preliminaryVerb === \"rename\"\n ? EXP_RENAME_CLI_OPTIONS\n : EXP_NORMAL_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", EXP_HELP).pipe(Effect.as(0));\n const [positionalVerb, ...rest] = input.positionals;\n const verb = input.values.experiment === undefined ? positionalVerb : undefined;\n const facts = yield* CliInvocationFacts;\n const invocation = yield* facts.facts.pipe(Effect.mapError((cause) => failure(\"read invocation facts\", cause)));\n if (teardownMode) {\n const project = yield* ProjectConfiguration;\n yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n if (typeof input.values[\"recover-shared-state\"] === \"string\" && input.values.json === true) {\n yield* write(\"stderr\", `error: explicit sharedState recovery does not support --json. Retry without --json; this recovery flow has a human-only interface.\n`);\n return 1;\n }\n if (input.positionals.length > 1) {\n return yield* write(\"stderr\", \"niceeval exp --teardown accepts at most one Experiment selector.\\n\").pipe(Effect.as(1));\n }\n const selector = input.positionals[0];\n const recoveryKey = typeof input.values[\"recover-shared-state\"] === \"string\"\n ? input.values[\"recover-shared-state\"]\n : undefined;\n const inspection = yield* experimentHost.teardown.inspect({\n cwd: invocation.cwd,\n currentHost: invocation.hostname,\n ...(selector === undefined ? {} : { experimentSelector: selector }),\n ...(recoveryKey === undefined ? {} : { recoveryKey }),\n }).pipe(Effect.mapError((cause) => failure(\"inspect teardown\", cause)));\n if (inspection.status === \"experiment-no-match\" || inspection.status === \"eval-no-match\" || inspection.status === \"empty-selection\") {\n yield* write(\"stderr\", selectionProblemText(inspection));\n return 1;\n }\n const evidence = teardownInspectionEvidence(inspection);\n if (evidence !== undefined)\n yield* write(\"stderr\", sharedStateEvidenceText(evidence));\n if (inspection.status === \"no-evidence\" ||\n inspection.status === \"selection-not-unique\" ||\n inspection.status === \"experiment-mismatch\") {\n yield* write(\"stderr\", teardownInspectionProblemText(inspection)!);\n return 1;\n }\n // Recovery evidence is deliberately available before confirmations. This\n // preserves the after-kill operator flow while keeping the normal\n // teardown path free of Record migration and Invocation construction.\n if (recoveryKey !== undefined && (typeof input.values[\"owner-token\"] !== \"string\" ||\n input.values[\"confirm-owner-terminated\"] !== true ||\n input.values[\"confirm-remote-quiesced\"] !== true)) {\n yield* write(\"stderr\", `sharedState recovery requires \\`--teardown --recover-shared-state <key> --owner-token <token> --confirm-owner-terminated --confirm-remote-quiesced\\`.\n`);\n return 1;\n }\n if (inspection.status === \"teardown-required\") {\n yield* write(\"stderr\", teardownInspectionProblemText(inspection)!);\n return 1;\n }\n const interruption = yield* CliInterruption;\n const output = yield* CliOutput;\n const result = yield* experimentHost.teardown.run({\n cwd: invocation.cwd,\n currentHost: invocation.hostname,\n ...(selector === undefined ? {} : { experimentSelector: selector }),\n ...(recoveryKey === undefined ? {} : { recoveryKey }),\n ...(typeof input.values[\"owner-token\"] === \"string\" ? { ownerToken: input.values[\"owner-token\"] } : {}),\n ...(input.values[\"confirm-owner-terminated\"] === true ? { confirmOwnerTerminated: true } : {}),\n ...(input.values[\"confirm-remote-quiesced\"] === true ? { confirmRemoteQuiesced: true } : {}),\n signal: interruption.invocationSignal,\n observer: Object.freeze({\n observe(event: ExperimentHostTeardownEvent) {\n if (event.type === \"diagnostic\")\n output.writeStderrSync(`${event.message}\\n`);\n },\n }),\n }).pipe(Effect.mapError((cause) => teardownFailure(\"run teardown\", cause, recoveryKey)));\n if (result.status === \"completed\") {\n for (const experiment of result.experiments) {\n if (experiment.outcome === \"succeeded\") {\n yield* write(\"stderr\", `teardown done: ${experiment.experimentId}\n`);\n }\n else if (experiment.outcome === \"failed\") {\n yield* write(\"stderr\", `teardown failed: ${experiment.experimentId}: ${experiment.error ?? \"unknown\"}\n`);\n }\n }\n }\n else if (result.status === \"recovered\" || result.status === \"already-released\") {\n if (result.status === \"recovered\") {\n yield* write(\"stderr\", `teardown done: ${result.experimentId}\n`);\n }\n if (result.status === \"already-released\")\n yield* write(\"stderr\", `sharedState key ${result.key} was already released after its cleanup; its immutable recovery generation is already complete.\n`);\n yield* write(\"stderr\", `explicitly recovered sharedState key ${result.key} for experiment ${result.experimentId}.\n`);\n }\n else if (result.status === \"recovery-teardown-failed\") {\n yield* write(\"stderr\", `teardown failed: ${result.evidence.experimentId}: ${result.error}\n`);\n }\n else {\n const changedEvidence = teardownInspectionEvidence(result);\n if (changedEvidence !== undefined)\n yield* write(\"stderr\", sharedStateEvidenceText(changedEvidence));\n const problem = teardownInspectionProblemText(result);\n if (problem !== undefined)\n yield* write(\"stderr\", problem);\n }\n return result.status === \"completed\" || result.status === \"recovered\" || result.status === \"already-released\" ? 0 : 1;\n }\n if (verb === \"list\") {\n if (rest.length > 1)\n return yield* write(\"stderr\", \"niceeval exp list accepts at most one experiment prefix.\\n\").pipe(Effect.as(1));\n const project = yield* ProjectConfiguration;\n yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n const result = yield* experimentHost.catalog({ cwd: invocation.cwd, ...selection(rest), ...(typeof input.values.tag === \"string\" ? { tag: input.values.tag } : {}) }).pipe(Effect.mapError((cause) => failure(\"list\", cause)));\n if (result.experiments.length === 0 && rest[0] !== undefined) {\n yield* write(\"stderr\", `No experiment matched: ${rest[0]}. Available paths: ${browsableExperimentPaths(result.experimentIds).join(\", \") || \"(none)\"}.\nRun \\`niceeval exp <path> --dry\\` to preview a plan.\n`);\n return 1;\n }\n yield* write(\"stdout\", input.values.json === true ? catalogJson(result) : catalogText(result));\n return 0;\n }\n if (verb === \"rename\") {\n const [newId] = rest;\n const sourceRuns = input.values.run;\n const sourceRunId = Array.isArray(sourceRuns) && sourceRuns.length === 1 ? sourceRuns[0] : typeof sourceRuns === \"string\" ? sourceRuns : undefined;\n if (newId === undefined || rest.length !== 1 || typeof sourceRunId !== \"string\" || sourceRunId.length === 0) {\n return yield* write(\"stderr\", \"usage: niceeval exp rename <new-id> --run <source-run-id> [--dry] [--json]\\n\").pipe(Effect.as(1));\n }\n const project = yield* ProjectConfiguration;\n const config = yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n const renameInput = { cwd: invocation.cwd, sourceRunId, newId, config };\n const result = input.values.dry === true\n ? yield* experimentHost.rename.plan(renameInput).pipe(Effect.mapError((cause) => failure(\"plan rename\", cause)))\n : yield* experimentHost.rename.apply(renameInput).pipe(Effect.mapError((cause) => failure(\"rename\", cause)));\n yield* write(\"stdout\", input.values.json === true ? renameJson(result) : renameText(result));\n return result.status === \"rejected\" || (result.status === \"plan\" && result.blocked !== undefined) ? 1 : 0;\n }\n const project = yield* ProjectConfiguration;\n const config = yield* project.load(invocation.cwd).pipe(Effect.mapError((cause) => failure(\"load config\", cause)));\n const plan = yield* experimentHost.invocation.plan({\n cwd: invocation.cwd,\n config,\n ...selection(input.positionals, Array.isArray(input.values.experiment) ? input.values.experiment : undefined),\n ...(typeof input.values.tag === \"string\" ? { tag: input.values.tag } : {}),\n ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}),\n overrides: overrides(input.values),\n preview: input.values.dry === true,\n }).pipe(Effect.mapError((cause) => failure(\"plan invocation\", cause)));\n if (plan.status !== \"ready\") {\n yield* write(\"stderr\", selectionProblemText(plan));\n return 1;\n }\n if (input.values.dry === true) {\n if (plan.dry === undefined)\n return yield* Effect.fail(failure(\"preview invocation\", new Error(\"Experiment Host did not return the requested dry plan.\")));\n yield* write(\"stdout\", input.values.json === true\n ? dryJson(plan.dry, plan.shape, plan.pluginAudit.occurrences)\n : dryText(plan.dry, plan.shape, plan.pluginAudit.occurrences.length));\n return 0;\n }\n const interruption = yield* CliInterruption;\n if (!(yield* Effect.sync(interruption.enterGracefulDispatch)))\n return yield* Effect.interrupt;\n const terminal = yield* ExperimentCliTerminal;\n const profile = resolveOutputForm({\n json: input.values.json === true,\n isTTY: invocation.stderr.isTTY,\n });\n const renderer = profile === \"human\"\n ? createHumanRenderer({\n io: terminal.feedback,\n command: [\"niceeval\", \"exp\", ...(Array.isArray(input.values.experiment)\n ? input.values.experiment.flatMap((id) => [\"--experiment\", id]) : []), ...input.positionals].join(\" \").trim(),\n })\n : createJsonRenderer({ io: terminal.feedback });\n const coordinator = createFeedbackCoordinator({\n profile,\n renderer,\n io: terminal.feedback,\n // Experiment Host installs one lossless multiplexing sink for feedback\n // and the project-local Session observer.\n activateSink: false,\n });\n const outcome = yield* Effect.result(Effect.scoped(Effect.gen(function* () {\n yield* Effect.acquireRelease(Effect.sync(() => createInputGuard({\n stdin: terminal.stdin,\n stderrIsTTY: terminal.feedback.stderr.isTTY,\n coordinator,\n onInterrupt: interruption.requestInterrupt,\n })), (guard) => Effect.sync(guard.stop));\n return yield* experimentHost.invocation.run({\n plan: plan.plan,\n signal: interruption.invocationSignal,\n feedback: Object.freeze({ coordinator }),\n ...(typeof input.values.junit === \"string\" ? { junitPath: input.values.junit } : {}),\n });\n })));\n if (Result.isFailure(outcome)) {\n if (outcome.failure.code === \"runner-record-assertions-invalid\") {\n yield* write(\"stderr\", `error: ${outcome.failure.message}\\n`);\n return 1;\n }\n return yield* Effect.fail(failure(\"run invocation\", outcome.failure));\n }\n const result = outcome.success;\n if (result.exitCode === undefined) {\n return yield* Effect.fail(failure(\"finish invocation feedback\", new Error(\"Experiment Host returned without the requested presentation exit fold.\")));\n }\n return result.exitCode;\n }),\n});\nconst debugCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"debug\",\n summary: \"show one Experiment lifecycle plan\",\n options: DEBUG_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, DEBUG_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", DEBUG_HELP).pipe(Effect.as(0));\n const [experimentSelector, evalSelector] = input.positionals;\n if (experimentSelector === undefined || input.positionals.length > 2) {\n return yield* write(\"stderr\", `error: niceeval debug expects one Experiment selector and an optional Eval selector\n fix: niceeval debug <experiment> [eval] [--json]\n`).pipe(Effect.as(1));\n }\n const { invocation, config } = yield* factsAndConfig();\n const result = yield* experimentHost.debug({\n cwd: invocation.cwd,\n config,\n experimentSelector,\n ...(evalSelector === undefined ? {} : { evalSelector }),\n }).pipe(Effect.mapError((cause) => failure(\"debug\", cause)));\n switch (result.status) {\n case \"experiment-no-match\":\n yield* write(\"stderr\", `error: Experiment selector \"${result.selector}\" matched nothing\n exact candidates: ${result.candidates.join(\", \") || \"(none)\"}\n`);\n return 1;\n case \"experiment-ambiguous\":\n yield* write(\"stderr\", `error: Experiment selector \"${result.selector}\" is ambiguous\n exact candidates: ${result.candidates.join(\", \")}\n`);\n return 1;\n case \"eval-no-match\":\n yield* write(\"stderr\", `error: Eval selector \"${result.selector}\" matched nothing in Experiment \"${result.experimentId}\"\n exact candidates: ${result.candidates.join(\", \") || \"(none)\"}\n`);\n return 1;\n case \"eval-ambiguous\":\n yield* write(\"stderr\", `error: Eval selector \"${result.selector}\" is ambiguous in Experiment \"${result.experimentId}\"\n exact candidates: ${result.candidates.join(\", \")}\n`);\n return 1;\n case \"planned\":\n yield* write(\"stdout\", input.values.json === true\n ? jsonDocument({\n experimentId: result.experimentId,\n ...(result.evalId === undefined ? {} : { evalId: result.evalId }),\n evalIds: result.evalIds,\n setupPrefixPlan: result.setupPrefixPlan,\n commandPlan: result.commandPlan,\n })\n : `Setup-prefix plan: ${result.setupPrefixPlan.nodes.length} unique nodes · cache lookup not-probed\\n${renderHumanCommandPlan(result.commandPlan, {\n isTTY: invocation.stdout.isTTY,\n noColor: invocation.noColor,\n width: invocation.stdout.columns,\n })}`);\n return 0;\n }\n }),\n});\nconst acceptCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"accept\",\n summary: \"accept exact historical Attempt locators\",\n options: ACCEPT_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, ACCEPT_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", ACCEPT_HELP).pipe(Effect.as(0));\n const sourceRunIds = Array.isArray(input.values.run) ? input.values.run : [];\n const sourceRunId = sourceRunIds.length === 1 ? sourceRunIds[0] : undefined;\n if (sourceRunIds.length > 1)\n return yield* write(\"stderr\", \"niceeval accept --run requires one exact Run ID.\\n\").pipe(Effect.as(1));\n if ((sourceRunId === undefined && input.positionals.length === 0) || (sourceRunId !== undefined && input.positionals.length > 0) || (input.values.dry === true && sourceRunId === undefined)) {\n return yield* write(\"stderr\", \"usage: niceeval accept @<locator>... | niceeval accept --run <exact-run-id> [--dry]\\n\").pipe(Effect.as(1));\n }\n const { invocation, config } = yield* factsAndConfig();\n if (sourceRunId !== undefined) {\n if (input.values.dry === true) {\n const plan = yield* experimentHost.acceptRun.plan({ cwd: invocation.cwd, config, runId: sourceRunId, ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}) }).pipe(Effect.mapError((cause) => failure(\"accept\", cause, 1, `error: could not accept result: ${cause.message}\n`)));\n yield* write(\"stdout\", acceptRunPlanText(plan));\n return 0;\n }\n const accepted = yield* experimentHost.acceptRun.apply({ cwd: invocation.cwd, config, runId: sourceRunId, ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}) }).pipe(Effect.mapError((cause) => failure(\"accept\", cause, 1, `error: could not accept result: ${cause.message}\n`)));\n yield* write(\"stdout\", acceptedRunText(sourceRunId, accepted));\n return 0;\n }\n const result = yield* experimentHost.accept({ cwd: invocation.cwd, config, locators: Object.freeze(input.positionals), ...(typeof input.values.record === \"string\" ? { recordRoot: input.values.record } : {}) }).pipe(Effect.mapError((cause) => failure(\"accept\", cause, 1, `error: could not accept result: ${cause.message}\n`)));\n yield* write(\"stdout\", acceptText(result));\n return 0;\n }),\n});\nconst sessionCommand: CliCommandContribution<ExperimentCliRequirements, ExperimentCliError> = Object.freeze({\n name: \"session\",\n summary: \"inspect project-local ephemeral Invocation status\",\n options: SESSION_CLI_OPTIONS,\n run: (argv: readonly string[]) => Effect.gen(function* () {\n const input = yield* parsed(argv, SESSION_CLI_OPTIONS);\n if (input.values.help === true)\n return yield* write(\"stdout\", SESSION_HELP).pipe(Effect.as(0));\n const [verb = \"list\", value] = input.positionals;\n const facts = yield* CliInvocationFacts;\n const invocation = yield* facts.facts.pipe(Effect.mapError((cause) => failure(\"read invocation facts\", cause)));\n if (verb === \"list\") {\n const result = yield* experimentHost.invocationStatus.list({ cwd: invocation.cwd, ...(input.values.all === true ? { all: true } : {}), ...(value === undefined ? {} : { experimentSelector: value }) }).pipe(Effect.mapError((cause) => failure(\"list invocation status\", cause)));\n yield* write(\"stdout\", input.values.json === true ? jsonDocument(result) : renderSessionListText(result, Date.now(), input.values.all === true));\n return 0;\n }\n if (verb === \"show\" && value !== undefined && input.positionals.length === 2) {\n const result = yield* experimentHost.invocationStatus.show({ cwd: invocation.cwd, invocationSelector: value }).pipe(Effect.mapError((cause) => failure(\"show invocation status\", cause)));\n yield* write(\"stdout\", input.values.json === true ? jsonDocument(result) : renderSessionShowText(result));\n return 0;\n }\n return yield* write(\"stderr\", \"usage: niceeval session [list [<experiment-prefix>] | show <invocation-id>]\\n\").pipe(Effect.as(1));\n }),\n});\n/** The composition root receives frozen feature values; it never registers services. */\nexport const experimentCliContributions = Object.freeze([\n checkCommand,\n expCommand,\n debugCommand,\n acceptCommand,\n sessionCommand,\n] as const);\n"]}
@@ -1,7 +1,7 @@
1
+ import type { ExperimentHostRequirements } from "../requirements.cjs";
1
2
  import { CliArguments, CliInterruption, CliInvocationFacts, CliOutput } from "../../../cli/application.cjs";
2
3
  import { CliFeatureError, type CliCommandContribution } from "../../../cli/contribution.cjs";
3
4
  import { ProjectConfiguration } from "../../../cli/project-configuration.cjs";
4
- import { type ExperimentHostRequirements } from "../index.cjs";
5
5
  import { ExperimentCliTerminal } from "./terminal.cjs";
6
6
  export { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from "./plan-protocol.cjs";
7
7
  type ExperimentCliRequirements = CliArguments | CliInterruption | CliInvocationFacts | CliOutput | ExperimentCliTerminal | ProjectConfiguration | ExperimentHostRequirements;
@@ -24,6 +24,14 @@ export declare const CHECK_CLI_OPTIONS: Readonly<{
24
24
  }>;
25
25
  }>;
26
26
  export declare const EXP_NORMAL_CLI_OPTIONS: Readonly<{
27
+ experiment: Readonly<{
28
+ help: Readonly<{
29
+ summary: string;
30
+ visibility: "public";
31
+ }>;
32
+ multiple?: true | undefined;
33
+ type: "string" | "boolean";
34
+ }>;
27
35
  attempts: Readonly<{
28
36
  help: Readonly<{
29
37
  summary: string;
@@ -1,7 +1,7 @@
1
+ import type { ExperimentHostRequirements } from "../requirements.mjs";
1
2
  import { CliArguments, CliInterruption, CliInvocationFacts, CliOutput } from "../../../cli/application.mjs";
2
3
  import { CliFeatureError, type CliCommandContribution } from "../../../cli/contribution.mjs";
3
4
  import { ProjectConfiguration } from "../../../cli/project-configuration.mjs";
4
- import { type ExperimentHostRequirements } from "../index.mjs";
5
5
  import { ExperimentCliTerminal } from "./terminal.mjs";
6
6
  export { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from "./plan-protocol.mjs";
7
7
  type ExperimentCliRequirements = CliArguments | CliInterruption | CliInvocationFacts | CliOutput | ExperimentCliTerminal | ProjectConfiguration | ExperimentHostRequirements;
@@ -24,6 +24,14 @@ export declare const CHECK_CLI_OPTIONS: Readonly<{
24
24
  }>;
25
25
  }>;
26
26
  export declare const EXP_NORMAL_CLI_OPTIONS: Readonly<{
27
+ experiment: Readonly<{
28
+ help: Readonly<{
29
+ summary: string;
30
+ visibility: "public";
31
+ }>;
32
+ multiple?: true | undefined;
33
+ type: "string" | "boolean";
34
+ }>;
27
35
  attempts: Readonly<{
28
36
  help: Readonly<{
29
37
  summary: string;
@@ -1,7 +1,7 @@
1
+ import type { ExperimentHostRequirements } from "../requirements.js";
1
2
  import { CliArguments, CliInterruption, CliInvocationFacts, CliOutput } from "../../../cli/application.js";
2
3
  import { CliFeatureError, type CliCommandContribution } from "../../../cli/contribution.js";
3
4
  import { ProjectConfiguration } from "../../../cli/project-configuration.js";
4
- import { type ExperimentHostRequirements } from "../index.js";
5
5
  import { ExperimentCliTerminal } from "./terminal.js";
6
6
  export { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from "./plan-protocol.js";
7
7
  type ExperimentCliRequirements = CliArguments | CliInterruption | CliInvocationFacts | CliOutput | ExperimentCliTerminal | ProjectConfiguration | ExperimentHostRequirements;
@@ -24,6 +24,14 @@ export declare const CHECK_CLI_OPTIONS: Readonly<{
24
24
  }>;
25
25
  }>;
26
26
  export declare const EXP_NORMAL_CLI_OPTIONS: Readonly<{
27
+ experiment: Readonly<{
28
+ help: Readonly<{
29
+ summary: string;
30
+ visibility: "public";
31
+ }>;
32
+ multiple?: true | undefined;
33
+ type: "string" | "boolean";
34
+ }>;
27
35
  attempts: Readonly<{
28
36
  help: Readonly<{
29
37
  summary: string;