niceeval 0.13.1 → 0.13.2

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 (548) hide show
  1. package/INDEX.md +25 -2
  2. package/README.md +9 -10
  3. package/README.zh.md +9 -10
  4. package/dist/agents/ai-sdk.cjs.map +1 -1
  5. package/dist/agents/ai-sdk.d.cts +1 -1
  6. package/dist/agents/ai-sdk.d.mts +1 -1
  7. package/dist/agents/ai-sdk.d.ts +1 -1
  8. package/dist/agents/bub-install-spec.cjs +19 -5
  9. package/dist/agents/bub-install-spec.cjs.map +1 -1
  10. package/dist/agents/bub-install-spec.d.cts +9 -2
  11. package/dist/agents/bub-install-spec.d.mts +9 -2
  12. package/dist/agents/bub-install-spec.d.ts +9 -2
  13. package/dist/agents/bub-install-spec.js +14 -12
  14. package/dist/agents/bub.cjs +10 -6
  15. package/dist/agents/bub.cjs.map +1 -1
  16. package/dist/agents/bub.d.cts +2 -2
  17. package/dist/agents/bub.d.mts +2 -2
  18. package/dist/agents/bub.d.ts +2 -2
  19. package/dist/agents/claude-code.cjs.map +1 -1
  20. package/dist/agents/claude-code.d.cts +2 -2
  21. package/dist/agents/claude-code.d.mts +2 -2
  22. package/dist/agents/claude-code.d.ts +2 -2
  23. package/dist/agents/codex.cjs +4 -4
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/codex.d.cts +3 -3
  26. package/dist/agents/codex.d.mts +3 -3
  27. package/dist/agents/codex.d.ts +3 -3
  28. package/dist/agents/coding-cli-versions.cjs +10 -1
  29. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  30. package/dist/agents/coding-cli-versions.d.cts +8 -3
  31. package/dist/agents/coding-cli-versions.d.mts +8 -3
  32. package/dist/agents/coding-cli-versions.d.ts +8 -3
  33. package/dist/agents/coding-cli-versions.js +18 -12
  34. package/dist/agents/deepseek-harness.cjs +151 -0
  35. package/dist/agents/deepseek-harness.cjs.map +1 -0
  36. package/dist/agents/deepseek-harness.d.cts +14 -0
  37. package/dist/agents/deepseek-harness.d.mts +14 -0
  38. package/dist/agents/deepseek-harness.d.ts +14 -0
  39. package/dist/agents/deepseek-harness.js +7 -0
  40. package/dist/agents/deepseek-harness.js.map +1 -0
  41. package/dist/agents/exact-npm-plugins.cjs +28 -0
  42. package/dist/agents/exact-npm-plugins.cjs.map +1 -0
  43. package/dist/agents/exact-npm-plugins.d.cts +10 -0
  44. package/dist/agents/exact-npm-plugins.d.mts +10 -0
  45. package/dist/agents/exact-npm-plugins.d.ts +10 -0
  46. package/dist/agents/exact-npm-plugins.js +8 -0
  47. package/dist/agents/exact-npm-plugins.js.map +1 -0
  48. package/dist/agents/index.cjs +5 -1
  49. package/dist/agents/index.cjs.map +1 -1
  50. package/dist/agents/index.d.cts +4 -0
  51. package/dist/agents/index.d.mts +4 -0
  52. package/dist/agents/index.d.ts +4 -0
  53. package/dist/agents/index.js +54 -50
  54. package/dist/agents/index.mjs +54 -50
  55. package/dist/agents/omp.cjs +170 -0
  56. package/dist/agents/omp.cjs.map +1 -0
  57. package/dist/agents/omp.d.cts +14 -0
  58. package/dist/agents/omp.d.mts +14 -0
  59. package/dist/agents/omp.d.ts +14 -0
  60. package/dist/agents/omp.js +7 -0
  61. package/dist/agents/omp.js.map +1 -0
  62. package/dist/agents/openclaw.cjs +51 -2
  63. package/dist/agents/openclaw.cjs.map +1 -1
  64. package/dist/agents/openclaw.d.cts +2 -0
  65. package/dist/agents/openclaw.d.mts +2 -0
  66. package/dist/agents/openclaw.d.ts +2 -0
  67. package/dist/agents/types.cjs.map +1 -1
  68. package/dist/agents/types.d.cts +4 -4
  69. package/dist/agents/types.d.mts +4 -4
  70. package/dist/agents/types.d.ts +4 -4
  71. package/dist/agents/ui-message-stream.cjs +24 -7
  72. package/dist/agents/ui-message-stream.cjs.map +1 -1
  73. package/dist/analysis/api.cjs +28 -2
  74. package/dist/analysis/api.cjs.map +1 -1
  75. package/dist/analysis/api.d.cts +22 -1
  76. package/dist/analysis/api.d.mts +22 -1
  77. package/dist/analysis/api.d.ts +22 -1
  78. package/dist/analysis/api.js +8 -6
  79. package/dist/analysis/bindings.cjs +11 -18
  80. package/dist/analysis/bindings.cjs.map +1 -1
  81. package/dist/analysis/bindings.d.cts +177 -49
  82. package/dist/analysis/bindings.d.mts +177 -49
  83. package/dist/analysis/bindings.d.ts +177 -49
  84. package/dist/analysis/contracts.cjs +1 -0
  85. package/dist/analysis/contracts.cjs.map +1 -1
  86. package/dist/analysis/contracts.d.cts +43 -3
  87. package/dist/analysis/contracts.d.mts +43 -3
  88. package/dist/analysis/contracts.d.ts +43 -3
  89. package/dist/analysis/cost-projection.cjs +2 -1
  90. package/dist/analysis/cost-projection.cjs.map +1 -1
  91. package/dist/analysis/cost-projection.d.cts +1 -1
  92. package/dist/analysis/cost-projection.d.mts +1 -1
  93. package/dist/analysis/cost-projection.d.ts +1 -1
  94. package/dist/analysis/cost.cjs +13 -3
  95. package/dist/analysis/cost.cjs.map +1 -1
  96. package/dist/analysis/cost.d.cts +10 -3
  97. package/dist/analysis/cost.d.mts +10 -3
  98. package/dist/analysis/cost.d.ts +10 -3
  99. package/dist/analysis/experiment-groups.cjs +96 -0
  100. package/dist/analysis/experiment-groups.cjs.map +1 -0
  101. package/dist/analysis/experiment-groups.d.cts +9 -0
  102. package/dist/analysis/experiment-groups.d.mts +9 -0
  103. package/dist/analysis/experiment-groups.d.ts +9 -0
  104. package/dist/analysis/experiment-groups.js +10 -0
  105. package/dist/analysis/experiment-groups.js.map +1 -0
  106. package/dist/analysis/index.cjs +4 -1
  107. package/dist/analysis/index.cjs.map +1 -1
  108. package/dist/analysis/index.d.cts +4 -2
  109. package/dist/analysis/index.d.mts +4 -2
  110. package/dist/analysis/index.d.ts +4 -2
  111. package/dist/analysis/index.js +40 -36
  112. package/dist/analysis/index.mjs +40 -36
  113. package/dist/assertions/limits.cjs +4 -0
  114. package/dist/assertions/limits.cjs.map +1 -1
  115. package/dist/assertions/limits.d.cts +4 -0
  116. package/dist/assertions/limits.d.mts +4 -0
  117. package/dist/assertions/limits.d.ts +4 -0
  118. package/dist/assertions/match.cjs +63 -25
  119. package/dist/assertions/match.cjs.map +1 -1
  120. package/dist/assertions/match.d.cts +7 -0
  121. package/dist/assertions/match.d.mts +7 -0
  122. package/dist/assertions/match.d.ts +7 -0
  123. package/dist/assertions/record/attachment.cjs +32 -4
  124. package/dist/assertions/record/attachment.cjs.map +1 -1
  125. package/dist/assertions/record/diff.cjs +10 -4
  126. package/dist/assertions/record/diff.cjs.map +1 -1
  127. package/dist/assertions/record/producer.cjs +101 -4
  128. package/dist/assertions/record/producer.cjs.map +1 -1
  129. package/dist/assertions/record/producer.d.cts +4 -1
  130. package/dist/assertions/record/producer.d.mts +4 -1
  131. package/dist/assertions/record/producer.d.ts +4 -1
  132. package/dist/assertions/runtime.cjs +45 -5
  133. package/dist/assertions/runtime.cjs.map +1 -1
  134. package/dist/cli/record.cjs +113 -8
  135. package/dist/cli/record.cjs.map +1 -1
  136. package/dist/cli/record.d.cts +20 -1
  137. package/dist/cli/record.d.mts +20 -1
  138. package/dist/cli/record.d.ts +20 -1
  139. package/dist/cli/record.js +4 -2
  140. package/dist/cli.cjs +386 -31
  141. package/dist/cli.cjs.map +1 -1
  142. package/dist/cli.d.cts +10 -2
  143. package/dist/cli.d.mts +10 -2
  144. package/dist/cli.d.ts +10 -2
  145. package/dist/context/send-retry.cjs +4 -4
  146. package/dist/context/send-retry.cjs.map +1 -1
  147. package/dist/coordination/host/runtime.cjs +8 -30
  148. package/dist/coordination/host/runtime.cjs.map +1 -1
  149. package/dist/coordination/host/runtime.d.cts +3 -3
  150. package/dist/coordination/host/runtime.d.mts +3 -3
  151. package/dist/coordination/host/runtime.d.ts +3 -3
  152. package/dist/coordination/host/types.cjs.map +1 -1
  153. package/dist/coordination/host/types.d.cts +0 -5
  154. package/dist/coordination/host/types.d.mts +0 -5
  155. package/dist/coordination/host/types.d.ts +0 -5
  156. package/dist/coordination/platform/node.cjs +90 -9
  157. package/dist/coordination/platform/node.cjs.map +1 -1
  158. package/dist/define.cjs +25 -1
  159. package/dist/define.cjs.map +1 -1
  160. package/dist/experiment/host/index.cjs +1 -0
  161. package/dist/experiment/host/index.cjs.map +1 -1
  162. package/dist/i18n/en.cjs +26 -8
  163. package/dist/i18n/en.cjs.map +1 -1
  164. package/dist/i18n/en.d.cts +19 -6
  165. package/dist/i18n/en.d.mts +19 -6
  166. package/dist/i18n/en.d.ts +19 -6
  167. package/dist/index.cjs.map +1 -1
  168. package/dist/index.d.cts +1 -1
  169. package/dist/index.d.mts +1 -1
  170. package/dist/index.d.ts +1 -1
  171. package/dist/o11y/parsers/hermes.cjs +1 -1
  172. package/dist/o11y/parsers/hermes.cjs.map +1 -1
  173. package/dist/o11y/prices.json +1 -1
  174. package/dist/o11y/record/families.cjs +12 -3
  175. package/dist/o11y/record/families.cjs.map +1 -1
  176. package/dist/o11y/record/families.d.cts +8 -8
  177. package/dist/o11y/record/families.d.mts +8 -8
  178. package/dist/o11y/record/families.d.ts +8 -8
  179. package/dist/o11y/record/family-projectors.d.cts +66 -18
  180. package/dist/o11y/record/family-projectors.d.mts +66 -18
  181. package/dist/o11y/record/family-projectors.d.ts +66 -18
  182. package/dist/o11y/record/family-writers.d.cts +11 -3
  183. package/dist/o11y/record/family-writers.d.mts +11 -3
  184. package/dist/o11y/record/family-writers.d.ts +11 -3
  185. package/dist/o11y/record/runner-producer.cjs +14 -4
  186. package/dist/o11y/record/runner-producer.cjs.map +1 -1
  187. package/dist/record/codec/core.d.cts +2 -2
  188. package/dist/record/codec/core.d.mts +2 -2
  189. package/dist/record/codec/core.d.ts +2 -2
  190. package/dist/record/family/catalog.d.cts +44 -12
  191. package/dist/record/family/catalog.d.mts +44 -12
  192. package/dist/record/family/catalog.d.ts +44 -12
  193. package/dist/record/family/index.js +128 -124
  194. package/dist/record/family/observability-v1.cjs +35 -0
  195. package/dist/record/family/observability-v1.cjs.map +1 -0
  196. package/dist/record/family/observability-v1.d.cts +3 -0
  197. package/dist/record/family/observability-v1.d.mts +3 -0
  198. package/dist/record/family/observability-v1.d.ts +3 -0
  199. package/dist/record/family/observability-v1.js +6 -0
  200. package/dist/record/family/observability-v1.js.map +1 -0
  201. package/dist/record/family/observability.cjs +58 -9
  202. package/dist/record/family/observability.cjs.map +1 -1
  203. package/dist/record/family/observability.d.cts +1014 -15
  204. package/dist/record/family/observability.d.mts +1014 -15
  205. package/dist/record/family/observability.d.ts +1014 -15
  206. package/dist/record/family/observability.js +22 -18
  207. package/dist/record/host/runtime.cjs +600 -31
  208. package/dist/record/host/runtime.cjs.map +1 -1
  209. package/dist/record/host/types.cjs.map +1 -1
  210. package/dist/record/host/types.d.cts +33 -9
  211. package/dist/record/host/types.d.mts +33 -9
  212. package/dist/record/host/types.d.ts +33 -9
  213. package/dist/record/maintenance/runtime.cjs +1 -2
  214. package/dist/record/maintenance/runtime.cjs.map +1 -1
  215. package/dist/record/model/core.cjs.map +1 -1
  216. package/dist/record/model/core.d.cts +1 -1
  217. package/dist/record/model/core.d.mts +1 -1
  218. package/dist/record/model/core.d.ts +1 -1
  219. package/dist/record/model/definition.d.cts +6 -6
  220. package/dist/record/model/definition.d.mts +6 -6
  221. package/dist/record/model/definition.d.ts +6 -6
  222. package/dist/record/model/identifiers.cjs +1 -1
  223. package/dist/record/model/identifiers.cjs.map +1 -1
  224. package/dist/record/model/identifiers.d.cts +1 -1
  225. package/dist/record/model/identifiers.d.mts +1 -1
  226. package/dist/record/model/identifiers.d.ts +1 -1
  227. package/dist/record/platform/node.cjs +159 -23
  228. package/dist/record/platform/node.cjs.map +1 -1
  229. package/dist/record/platform/services.cjs.map +1 -1
  230. package/dist/record/platform/services.d.cts +15 -2
  231. package/dist/record/platform/services.d.mts +15 -2
  232. package/dist/record/platform/services.d.ts +15 -2
  233. package/dist/record/reader/errors.cjs +37 -1
  234. package/dist/record/reader/errors.cjs.map +1 -1
  235. package/dist/record/reader/errors.d.cts +49 -1
  236. package/dist/record/reader/errors.d.mts +49 -1
  237. package/dist/record/reader/errors.d.ts +49 -1
  238. package/dist/record/reader/errors.js +22 -12
  239. package/dist/record/reader/format.cjs +76 -17
  240. package/dist/record/reader/format.cjs.map +1 -1
  241. package/dist/record/reader/format.d.cts +11 -4
  242. package/dist/record/reader/format.d.mts +11 -4
  243. package/dist/record/reader/format.d.ts +11 -4
  244. package/dist/record/reader/format.js +2 -0
  245. package/dist/record/reader/index.js +32 -18
  246. package/dist/record/reader/runtime.cjs +64 -0
  247. package/dist/record/reader/runtime.cjs.map +1 -1
  248. package/dist/record/reader/runtime.d.cts +15 -0
  249. package/dist/record/reader/runtime.d.mts +15 -0
  250. package/dist/record/reader/runtime.d.ts +15 -0
  251. package/dist/record/reader/runtime.js +2 -0
  252. package/dist/report/assets/styles.css +53 -29
  253. package/dist/report/built-in/analysis-values.cjs +21 -13
  254. package/dist/report/built-in/analysis-values.cjs.map +1 -1
  255. package/dist/report/built-in/analysis-values.d.cts +11 -22
  256. package/dist/report/built-in/analysis-values.d.mts +11 -22
  257. package/dist/report/built-in/analysis-values.d.ts +11 -22
  258. package/dist/report/built-in/analysis-values.js +4 -6
  259. package/dist/report/built-in/index.cjs +1 -3
  260. package/dist/report/built-in/index.cjs.map +1 -1
  261. package/dist/report/built-in/index.d.cts +1 -1
  262. package/dist/report/built-in/index.d.mts +1 -1
  263. package/dist/report/built-in/index.d.ts +1 -1
  264. package/dist/report/built-in/index.js +4 -8
  265. package/dist/report/built-in/index.mjs +4 -8
  266. package/dist/report/built-in/machine.cjs +0 -2
  267. package/dist/report/built-in/machine.cjs.map +1 -1
  268. package/dist/report/built-in/machine.d.cts +0 -2
  269. package/dist/report/built-in/machine.d.mts +0 -2
  270. package/dist/report/built-in/machine.d.ts +0 -2
  271. package/dist/report/built-in/result-components.cjs +49 -51
  272. package/dist/report/built-in/result-components.cjs.map +1 -1
  273. package/dist/report/built-in/result-components.d.cts +16 -17
  274. package/dist/report/built-in/result-components.d.mts +16 -17
  275. package/dist/report/built-in/result-components.d.ts +16 -17
  276. package/dist/report/built-in/result-components.js +0 -4
  277. package/dist/report/built-in/run-membership-overview.cjs +126 -17
  278. package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
  279. package/dist/report/built-in/run-membership-overview.d.cts +14 -0
  280. package/dist/report/built-in/run-membership-overview.d.mts +14 -0
  281. package/dist/report/built-in/run-membership-overview.d.ts +14 -0
  282. package/dist/report/built-in/run-membership-overview.js +4 -2
  283. package/dist/report/built-in/standard.cjs +80 -45
  284. package/dist/report/built-in/standard.cjs.map +1 -1
  285. package/dist/report/built-in/standard.d.cts +19 -41
  286. package/dist/report/built-in/standard.d.mts +19 -41
  287. package/dist/report/built-in/standard.d.ts +19 -41
  288. package/dist/report/built-in/standard.js +6 -6
  289. package/dist/report/components/attempt-detail/compute.cjs +78 -2
  290. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  291. package/dist/report/components/attempt-detail/compute.d.cts +1 -1
  292. package/dist/report/components/attempt-detail/compute.d.mts +1 -1
  293. package/dist/report/components/attempt-detail/compute.d.ts +1 -1
  294. package/dist/report/components/attempt-detail/content.cjs +1 -1
  295. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  296. package/dist/report/components/entity-lists/compute.cjs +42 -5
  297. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  298. package/dist/report/components/entity-lists/compute.d.cts +10 -8
  299. package/dist/report/components/entity-lists/compute.d.mts +10 -8
  300. package/dist/report/components/entity-lists/compute.d.ts +10 -8
  301. package/dist/report/components/entity-lists/content.cjs +31 -6
  302. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  303. package/dist/report/components/entity-lists/index.cjs +9 -4
  304. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  305. package/dist/report/components/entity-lists/index.d.cts +4 -7
  306. package/dist/report/components/entity-lists/index.d.mts +4 -7
  307. package/dist/report/components/entity-lists/index.d.ts +4 -7
  308. package/dist/report/components/summaries/compute.cjs +8 -1
  309. package/dist/report/components/summaries/compute.cjs.map +1 -1
  310. package/dist/report/components/summaries/compute.d.cts +9 -1
  311. package/dist/report/components/summaries/compute.d.mts +9 -1
  312. package/dist/report/components/summaries/compute.d.ts +9 -1
  313. package/dist/report/components/summaries/index.cjs +48 -4
  314. package/dist/report/components/summaries/index.cjs.map +1 -1
  315. package/dist/report/components/summaries/index.d.cts +7 -4
  316. package/dist/report/components/summaries/index.d.mts +7 -4
  317. package/dist/report/components/summaries/index.d.ts +7 -4
  318. package/dist/report/definition/cell.cjs +3 -0
  319. package/dist/report/definition/cell.cjs.map +1 -1
  320. package/dist/report/definition/cell.d.cts +2 -0
  321. package/dist/report/definition/cell.d.mts +2 -0
  322. package/dist/report/definition/cell.d.ts +2 -0
  323. package/dist/report/definition/primitives/chart.cjs +8 -5
  324. package/dist/report/definition/primitives/chart.cjs.map +1 -1
  325. package/dist/report/definition/primitives/points-dataset.cjs +1 -0
  326. package/dist/report/definition/primitives/points-dataset.cjs.map +1 -1
  327. package/dist/report/definition/primitives.cjs +15 -2
  328. package/dist/report/definition/primitives.cjs.map +1 -1
  329. package/dist/report/definition/report.cjs +27 -3
  330. package/dist/report/definition/report.cjs.map +1 -1
  331. package/dist/report/definition/report.d.cts +8 -0
  332. package/dist/report/definition/report.d.mts +8 -0
  333. package/dist/report/definition/report.d.ts +8 -0
  334. package/dist/report/execution/machine.cjs +30 -14
  335. package/dist/report/execution/machine.cjs.map +1 -1
  336. package/dist/report/execution/machine.d.cts +20 -10
  337. package/dist/report/execution/machine.d.mts +20 -10
  338. package/dist/report/execution/machine.d.ts +20 -10
  339. package/dist/report/execution/machine.js +6 -6
  340. package/dist/report/host/execute.cjs +25 -16
  341. package/dist/report/host/execute.cjs.map +1 -1
  342. package/dist/report/host/execute.d.cts +4 -0
  343. package/dist/report/host/execute.d.mts +4 -0
  344. package/dist/report/host/execute.d.ts +4 -0
  345. package/dist/report/host/from-record.cjs +22 -5
  346. package/dist/report/host/from-record.cjs.map +1 -1
  347. package/dist/report/host/machine.cjs +53 -11
  348. package/dist/report/host/machine.cjs.map +1 -1
  349. package/dist/report/host/site-runtime.cjs +9 -8
  350. package/dist/report/host/site-runtime.cjs.map +1 -1
  351. package/dist/report/host/site-runtime.d.cts +1 -1
  352. package/dist/report/host/site-runtime.d.mts +1 -1
  353. package/dist/report/host/site-runtime.d.ts +1 -1
  354. package/dist/report/host/static.cjs +56 -9
  355. package/dist/report/host/static.cjs.map +1 -1
  356. package/dist/report/index.cjs.map +1 -1
  357. package/dist/report/index.d.cts +1 -1
  358. package/dist/report/index.d.mts +1 -1
  359. package/dist/report/index.d.ts +1 -1
  360. package/dist/report/model/dataset.cjs +7 -2
  361. package/dist/report/model/dataset.cjs.map +1 -1
  362. package/dist/report/model/locale.cjs +2 -0
  363. package/dist/report/model/locale.cjs.map +1 -1
  364. package/dist/report/model/locale.d.cts +1 -0
  365. package/dist/report/model/locale.d.mts +1 -0
  366. package/dist/report/model/locale.d.ts +1 -0
  367. package/dist/report/model/metrics.cjs +3 -1
  368. package/dist/report/model/metrics.cjs.map +1 -1
  369. package/dist/report/model/pricing.cjs +16 -11
  370. package/dist/report/model/pricing.cjs.map +1 -1
  371. package/dist/report/react/styles.css +53 -29
  372. package/dist/runner/adoption.cjs +1 -0
  373. package/dist/runner/adoption.cjs.map +1 -1
  374. package/dist/runner/attempt.cjs +44 -5
  375. package/dist/runner/attempt.cjs.map +1 -1
  376. package/dist/runner/attempt.d.cts +13 -1
  377. package/dist/runner/attempt.d.mts +13 -1
  378. package/dist/runner/attempt.d.ts +13 -1
  379. package/dist/runner/config-identity.cjs +10 -2
  380. package/dist/runner/config-identity.cjs.map +1 -1
  381. package/dist/runner/config-identity.d.cts +4 -2
  382. package/dist/runner/config-identity.d.mts +4 -2
  383. package/dist/runner/config-identity.d.ts +4 -2
  384. package/dist/runner/feedback/human.cjs +298 -59
  385. package/dist/runner/feedback/human.cjs.map +1 -1
  386. package/dist/runner/feedback/json.cjs +14 -6
  387. package/dist/runner/feedback/json.cjs.map +1 -1
  388. package/dist/runner/feedback/json.d.cts +3 -2
  389. package/dist/runner/feedback/json.d.mts +3 -2
  390. package/dist/runner/feedback/json.d.ts +3 -2
  391. package/dist/runner/feedback/reducer.cjs +2 -0
  392. package/dist/runner/feedback/reducer.cjs.map +1 -1
  393. package/dist/runner/judge-config.cjs +1 -1
  394. package/dist/runner/judge-config.cjs.map +1 -1
  395. package/dist/runner/ledger.cjs +124 -12
  396. package/dist/runner/ledger.cjs.map +1 -1
  397. package/dist/runner/project-current.cjs +13 -5
  398. package/dist/runner/project-current.cjs.map +1 -1
  399. package/dist/runner/run.cjs +564 -256
  400. package/dist/runner/run.cjs.map +1 -1
  401. package/dist/runner/sandbox-pool.cjs +161 -30
  402. package/dist/runner/sandbox-pool.cjs.map +1 -1
  403. package/dist/runner/sandbox-pool.d.cts +34 -2
  404. package/dist/runner/sandbox-pool.d.mts +34 -2
  405. package/dist/runner/sandbox-pool.d.ts +34 -2
  406. package/dist/runner/shared-state-lease.cjs +803 -0
  407. package/dist/runner/shared-state-lease.cjs.map +1 -0
  408. package/dist/runner/shared-state-lease.d.cts +121 -0
  409. package/dist/runner/shared-state-lease.d.mts +121 -0
  410. package/dist/runner/shared-state-lease.d.ts +121 -0
  411. package/dist/runner/shared-state-lease.js +24 -0
  412. package/dist/runner/shared-state-lease.js.map +1 -0
  413. package/dist/runner/teardown-registry.cjs +97 -34
  414. package/dist/runner/teardown-registry.cjs.map +1 -1
  415. package/dist/runner/teardown-registry.d.cts +27 -1
  416. package/dist/runner/teardown-registry.d.mts +27 -1
  417. package/dist/runner/teardown-registry.d.ts +27 -1
  418. package/dist/runner/teardown-registry.js +20 -16
  419. package/dist/runner/types.cjs.map +1 -1
  420. package/dist/runner/types.d.cts +31 -5
  421. package/dist/runner/types.d.mts +31 -5
  422. package/dist/runner/types.d.ts +31 -5
  423. package/dist/sample/analysis.cjs +249 -459
  424. package/dist/sample/analysis.cjs.map +1 -1
  425. package/dist/sample/capability.cjs +138 -7
  426. package/dist/sample/capability.cjs.map +1 -1
  427. package/dist/sample/capability.d.cts +3 -1
  428. package/dist/sample/capability.d.mts +3 -1
  429. package/dist/sample/capability.d.ts +3 -1
  430. package/dist/sample/capability.js +8 -6
  431. package/dist/sandbox/docker-agent-image.cjs +5 -1
  432. package/dist/sandbox/docker-agent-image.cjs.map +1 -1
  433. package/dist/sandbox/docker-agent-image.d.cts +2 -0
  434. package/dist/sandbox/docker-agent-image.d.mts +2 -0
  435. package/dist/sandbox/docker-agent-image.d.ts +2 -0
  436. package/dist/sandbox/docker-agent-image.js +14 -10
  437. package/dist/sandbox/docker-profile/schema.cjs +283 -534
  438. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  439. package/dist/sandbox/docker-profile/schema.d.cts +10 -27
  440. package/dist/sandbox/docker-profile/schema.d.mts +10 -27
  441. package/dist/sandbox/docker-profile/schema.d.ts +10 -27
  442. package/dist/sandbox/e2b-agent-template.cjs +5 -2
  443. package/dist/sandbox/e2b-agent-template.cjs.map +1 -1
  444. package/dist/sandbox/index.cjs +4 -2
  445. package/dist/sandbox/index.cjs.map +1 -1
  446. package/dist/sandbox/index.d.cts +1 -1
  447. package/dist/sandbox/index.d.mts +1 -1
  448. package/dist/sandbox/index.d.ts +1 -1
  449. package/dist/sandbox/index.js +120 -116
  450. package/dist/sandbox/index.mjs +120 -116
  451. package/dist/sandbox/keep-registry.cjs +28 -66
  452. package/dist/sandbox/keep-registry.cjs.map +1 -1
  453. package/dist/sandbox/types.cjs.map +1 -1
  454. package/dist/sandbox/types.d.cts +1 -1
  455. package/dist/sandbox/types.d.mts +1 -1
  456. package/dist/sandbox/types.d.ts +1 -1
  457. package/dist/shared/aggregate.cjs +16 -6
  458. package/dist/shared/aggregate.cjs.map +1 -1
  459. package/dist/shared/aggregate.d.cts +12 -4
  460. package/dist/shared/aggregate.d.mts +12 -4
  461. package/dist/shared/aggregate.d.ts +12 -4
  462. package/dist/shared/turn-label.cjs +20 -2
  463. package/dist/shared/turn-label.cjs.map +1 -1
  464. package/dist/shared/turn-label.d.cts +2 -0
  465. package/dist/shared/turn-label.d.mts +2 -0
  466. package/dist/shared/turn-label.d.ts +2 -0
  467. package/dist/shared/turn-label.js +4 -2
  468. package/dist/vendor/remark/remark-gfm.cjs +7 -7
  469. package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
  470. package/dist/vendor/remark/remark-parse.cjs +12 -12
  471. package/dist/vendor/remark/remark-parse.cjs.map +1 -1
  472. package/dist/vendor/remark/remark.cjs +13 -13
  473. package/dist/vendor/remark/remark.cjs.map +1 -1
  474. package/dist/view/server.cjs +6 -0
  475. package/dist/view/server.cjs.map +1 -1
  476. package/docs-site/images/hitl-handshake-zh.svg +3 -3
  477. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  478. package/docs-site/zh/examples/coding-agent-extensions.mdx +1 -1
  479. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +4 -3
  480. package/docs-site/zh/examples/integrations/claude-sdk.mdx +3 -3
  481. package/docs-site/zh/examples/integrations/codex-sdk.mdx +5 -5
  482. package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
  483. package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
  484. package/docs-site/zh/explanation/adapter.mdx +5 -5
  485. package/docs-site/zh/explanation/assert.mdx +7 -7
  486. package/docs-site/zh/explanation/drive.mdx +4 -2
  487. package/docs-site/zh/explanation/evals.mdx +10 -8
  488. package/docs-site/zh/explanation/experiment.mdx +2 -2
  489. package/docs-site/zh/explanation/hitl.mdx +9 -9
  490. package/docs-site/zh/explanation/judge.mdx +5 -5
  491. package/docs-site/zh/explanation/overview.mdx +3 -3
  492. package/docs-site/zh/explanation/runner.mdx +1 -1
  493. package/docs-site/zh/index.mdx +3 -3
  494. package/docs-site/zh/reference/builtin-agents.mdx +13 -13
  495. package/docs-site/zh/reference/capabilities.mdx +1 -1
  496. package/docs-site/zh/reference/cli.mdx +18 -12
  497. package/docs-site/zh/reference/define-agent.mdx +130 -5
  498. package/docs-site/zh/reference/define-config.mdx +2 -2
  499. package/docs-site/zh/reference/define-eval.mdx +4 -4
  500. package/docs-site/zh/reference/events.mdx +11 -11
  501. package/docs-site/zh/reference/official-adapters.mdx +6 -6
  502. package/docs-site/zh/reference/results-data.mdx +6 -0
  503. package/docs-site/zh/troubleshooting/debugging.mdx +1 -1
  504. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +37 -5
  505. package/docs-site/zh/tutorials/accept-results.mdx +72 -0
  506. package/docs-site/zh/tutorials/agent-onboarding.mdx +6 -6
  507. package/docs-site/zh/tutorials/authoring.mdx +9 -13
  508. package/docs-site/zh/tutorials/ci-integration.mdx +6 -6
  509. package/docs-site/zh/tutorials/compare-runs.mdx +61 -0
  510. package/docs-site/zh/tutorials/concurrency.mdx +13 -12
  511. package/docs-site/zh/tutorials/configuration.mdx +4 -6
  512. package/docs-site/zh/tutorials/connect-your-agent.mdx +1 -1
  513. package/docs-site/zh/tutorials/control-run-cost.mdx +58 -0
  514. package/docs-site/zh/tutorials/criteria-files.mdx +2 -2
  515. package/docs-site/zh/tutorials/custom-reports.mdx +2 -2
  516. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +46 -0
  517. package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -43
  518. package/docs-site/zh/tutorials/eval-groups.mdx +6 -6
  519. package/docs-site/zh/tutorials/evaluation-kinds.mdx +3 -3
  520. package/docs-site/zh/tutorials/experiments.mdx +2 -3
  521. package/docs-site/zh/tutorials/handle-execution-failures.mdx +18 -10
  522. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +16 -8
  523. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +160 -0
  524. package/docs-site/zh/tutorials/plugins.mdx +14 -0
  525. package/docs-site/zh/tutorials/rerun-and-cache.mdx +4 -2
  526. package/docs-site/zh/tutorials/sandbox-agent.mdx +17 -11
  527. package/docs-site/zh/tutorials/sandbox-providers.mdx +17 -13
  528. package/docs-site/zh/tutorials/sandbox-reuse.mdx +12 -19
  529. package/docs-site/zh/tutorials/select-and-preview.mdx +65 -0
  530. package/docs-site/zh/tutorials/verify-judge.mdx +78 -0
  531. package/docs-site/zh/tutorials/viewing-results.mdx +38 -1
  532. package/docs-site/zh/tutorials/write-experiment.mdx +7 -5
  533. package/docs-site/zh/tutorials/write-send.mdx +9 -8
  534. package/package.json +9 -5
  535. package/dist/report/built-in/overview.cjs +0 -44
  536. package/dist/report/built-in/overview.cjs.map +0 -1
  537. package/dist/report/built-in/overview.d.cts +0 -6
  538. package/dist/report/built-in/overview.d.mts +0 -6
  539. package/dist/report/built-in/overview.d.ts +0 -6
  540. package/dist/report/built-in/overview.js +0 -9
  541. package/dist/report/built-in/overview.js.map +0 -1
  542. package/dist/runner/gate-lease.cjs +0 -283
  543. package/dist/runner/gate-lease.cjs.map +0 -1
  544. package/dist/runner/gate-lease.d.cts +0 -62
  545. package/dist/runner/gate-lease.d.mts +0 -62
  546. package/dist/runner/gate-lease.d.ts +0 -62
  547. package/dist/runner/gate-lease.js +0 -22
  548. package/dist/runner/gate-lease.js.map +0 -1
package/dist/cli.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["cli.ts"],"names":[],"mappings":"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","sourcesContent":["// niceeval CLI 入口。执行 eval 必须以 experiment 为单位;位置参数只在 exp 后筛 eval id 前缀。\n// niceeval check [组|配置] [pattern] 只做发现、选择与 SandboxLayer pure link\n// niceeval exp [组|配置] [pattern] 跑实验\n// niceeval debug <配置> <eval> 只规划一个配对的 Sandbox / Plugin lifecycle\n// niceeval accept @<locator>... 接受多条历史结果并重锚到当前配置\n// niceeval show [selection] 终端渲染固定 Sample 的一个目标 Page\n// niceeval list 只列出发现到的 eval\n// niceeval clean [--record <root>] [--yes] 删除未完成 Run\n// niceeval migrate [--record <root>] [--yes] 显式迁移 Record\nimport { spawn } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport { hostname } from \"node:os\";\nimport { lstat, mkdir, readFile, readdir, readlink, writeFile } from \"node:fs/promises\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { dirname, isAbsolute, join, resolve as resolvePath } from \"node:path\";\nimport { parseArgs as nodeParseArgs } from \"node:util\";\nimport { Cause, Clock, Data, Effect, Either, Exit, Schema } from \"effect\";\nimport { parseAttemptLocator, type AttemptLocator, } from \"./attempt-locator.ts\";\nimport { browsableExperimentPaths, evalPrefixPredicate } from \"./shared/aggregate.ts\";\nimport type { JsonValue } from \"./shared/types.ts\";\nimport type { AgentRun } from \"./runner/run.ts\";\nimport { experimentHost, type ExperimentHostDebugPlan } from \"./experiment/host/index.ts\";\nimport { loadProjectCurrent } from \"./runner/project-current.ts\";\nimport { makeRecordRoot, RunIdSchema, type RecordRoot, } from \"./record/index.ts\";\nimport { type AnalysisSelectionRequest, type ExperimentId, type RunId, } from \"./analysis/index.ts\";\nimport { ExperimentIdSchema } from \"./record/codec/identifiers.ts\";\nimport { defaultAttemptOverviewReport } from \"./report/built-in/attempt-overview.ts\";\nimport { defaultOverviewReport } from \"./report/built-in/overview.ts\";\nimport { defaultRunMembershipOverviewReport } from \"./report/built-in/run-membership-overview.ts\";\nimport { executionEvidenceReport, timingEvidenceReport, } from \"./report/built-in/execution.ts\";\nimport { sourceEvidenceReport } from \"./report/built-in/source.ts\";\nimport type { ReportDefinition } from \"./report/definition/report.ts\";\nimport { closedSiteRevisionData, type ClosedSiteRevision, } from \"./report/execution/model.ts\";\nimport { buildReportSiteFromRecord, reportSnapshotIdentityFromRecord, } from \"./report/host/from-record.ts\";\nimport { reportDefinitionIdentity } from \"./report/host/execute.ts\";\nimport { validateReportRoute } from \"./report/execution/paths.ts\";\nimport { reportHost } from \"./report/host/index.ts\";\nimport { panelCapabilityOf } from \"./report/model/panel.ts\";\nimport { ReportHostProgressObserver, type ReportHostPhase, type ReportHostProgressEvent, type ReportHostProgressObserverService, } from \"./report/host/progress.ts\";\nimport { closeStaticThemeStylesheet, ReportFileSystem, REPORT_STATIC_RENDERER, signClosedSiteRevision, } from \"./report/host/static.ts\";\nimport { basalt, chalk, loadTrustedReportConfig, loadTrustedReportModule, loadTrustedThemeModule, makeNodeReportFileSystem, ReportModuleLoadError, resolveTrustedModulePath, type ThemeDefinition, } from \"./report/host/node.ts\";\nimport { runRecordCliCommand } from \"./cli/record.ts\";\nimport { selectedEvalsForRun } from \"./runner/eval-selection.ts\";\nimport { stopAllSandboxes } from \"./sandbox/registry.ts\";\nimport { keptSandboxReminderEffect, orphanReminderEffect, runSandboxCommandEffect, } from \"./sandbox/cli-commands.ts\";\nimport { formatSandboxLayerLinkError, SandboxLayerLinkError } from \"./sandbox/link.ts\";\nimport { formatSandboxPhysicalPlanningError, SandboxPhysicalPlanningError, } from \"./sandbox/plan.ts\";\nimport { drainExperimentTeardowns } from \"./runner/experiment-cleanup-registry.ts\";\nimport { drainHeldCaseLocksEffect, isCaseLockExpired, readCaseLockEffect, } from \"./runner/lock.ts\";\nimport { drainHeldGateLeasesEffect } from \"./runner/gate-lease.ts\";\nimport { cleanupCallback } from \"./runner/cleanup-timeout.ts\";\nimport { closeReportPageBytes, rethemeClosedReportPageBytes, type ClosedReportPageBytes, } from \"./view/report-view-cache.ts\";\nimport { resolveRunTimeout } from \"./runner/timeout.ts\";\nimport { type CurrentReuseReadbackSnapshot, } from \"./runner/reuse-readback.ts\";\nimport type { ExecutionReusePlanSlot } from \"./runner/reuse-plan.ts\";\nimport { isOrphanedTeardownRegistration, orphanedTeardownReminderEffect, readTeardownRegistrationsEffect, removeTeardownRegistrationIfPresentEffect, } from \"./runner/teardown-registry.ts\";\nimport type { DiscoveredExperiment, ExperimentHookContext } from \"./runner/types.ts\";\nimport type { ExperimentRenameBlocked, ExperimentRenamePlan, ExperimentRenameReason, ExperimentRenameRejected, RenamedExperiment, } from \"./runner/rename-experiment.ts\";\nimport { ExperimentRenameError } from \"./runner/rename-experiment.ts\";\nimport { evalLevelStats } from \"./shared/verdict.ts\";\nimport { linkRunSandboxes, recommendedConcurrencyForPreparedPairs } from \"./runner/sandbox-selection.ts\";\nimport { JUnit } from \"./runner/reporters/json.ts\";\nimport { resolveOutputForm, createFeedbackCoordinator, createNodeFeedbackIO, createInputGuard, createNodeInputGuardStdin, createHumanRenderer, createJsonRenderer, renderHumanCommandPlan, computeExitCode, } from \"./runner/feedback/index.ts\";\nimport { t, type MessageKey } from \"./i18n/index.ts\";\nimport { formatThrown, upsertManagedBlock } from \"./util.ts\";\nimport { SessionTracker, listSessions, renderSessionListText, renderSessionShowText, showSession, } from \"./runner/session.ts\";\nimport type { CompletionStatus, Config, DiscoveredEval, InvocationCompletion, InvocationSummary, ReporterError, ReporterRegistration, RunFeedbackState, Verdict, } from \"./types.ts\";\n/** A recoverable command-line usage error. Defects deliberately do not enter this channel. */\nexport class CliUsageError extends Data.TaggedError(\"CliUsageError\")<{\n readonly message: string;\n readonly exitCode: number;\n}> {\n}\n/** A recoverable failure from a concrete CLI-owned boundary (file, process, or dynamic module). */\nexport class CliOperationError extends Data.TaggedError(\"CliOperationError\")<{\n readonly operation: string;\n readonly cause: unknown;\n readonly exitCode: number;\n}> {\n}\nexport type CliFailure = CliUsageError | CliOperationError;\n/**\n * Bootstrap owns process signals until an Eval has reached actual dispatch.\n * The CLI claims the Invocation signal synchronously immediately before\n * Experiment Host dispatch; it never infers this from argv outside the command\n * dispatcher.\n */\nexport interface CliInterruptionOwnership {\n readonly invocationSignal: AbortSignal;\n /** False means bootstrap already accepted a root-owned first signal. */\n readonly enterGracefulDispatch: () => boolean;\n}\nfunction usageError(message: string, exitCode = 1): CliUsageError {\n return new CliUsageError({ message, exitCode });\n}\nfunction cliFailure(operation: string, cause: unknown, exitCode = 1): CliFailure {\n return cause instanceof CliUsageError || cause instanceof CliOperationError\n ? cause\n : new CliOperationError({ operation, cause, exitCode });\n}\n/**\n * Lift one actual Promise boundary into the application Effect. It is never a\n * private runtime: CLI owns the sole runtime in `cli/bootstrap.ts`.\n */\nfunction cliPromise<A>(operation: string, promise: (signal: AbortSignal) => PromiseLike<A>): Effect.Effect<A, CliFailure> {\n return Effect.tryPromise({\n try: promise,\n catch: (cause) => cliFailure(operation, cause),\n });\n}\n/** Preserve library effects without running a nested runtime. */\nfunction cliEffect<A, E, R>(operation: string, effect: Effect.Effect<A, E, R>): Effect.Effect<A, CliFailure, R> {\n return effect.pipe(Effect.mapError((cause) => cliFailure(operation, cause)));\n}\n/** Bootstrap owns presentation of typed failures; defects and interruption stay in Cause. */\nexport function renderCliFailure(failure: CliFailure): string {\n if (failure._tag === \"CliUsageError\")\n return failure.message;\n if (failure.cause instanceof SandboxLayerLinkError)\n return `${formatSandboxLayerLinkError(failure.cause)}\\n`;\n if (failure.cause instanceof SandboxPhysicalPlanningError)\n return `${formatSandboxPhysicalPlanningError(failure.cause)}\\n`;\n if (isReportCliOperation(failure.operation)) {\n const code = failureCode(failure.cause);\n if (code !== undefined) {\n if (failure.cause instanceof ReportModuleLoadError) {\n return `${code}: ${failure.cause.reason}\\n`;\n }\n const reason = stringProperty(failure.cause, \"reason\");\n const operation = stringProperty(failure.cause, \"operation\");\n if (reason !== undefined) {\n const stage = operation === undefined ? \"\" : `${operation}: `;\n const retry = code === \"report-view-server-failed\" && operation === \"listen\"\n ? \"\\nChoose another port with --port <port>, or stop the process already listening there.\"\n : \"\";\n return `${code}: ${stage}${reason}${retry}\\n`;\n }\n return `${code}\\n`;\n }\n }\n return t(\"cli.error\", { error: formatThrown(failure.cause) });\n}\nfunction isReportCliOperation(operation: string): boolean {\n return operation === \"load trusted Report config\" ||\n operation === \"load trusted Report module\" ||\n operation === \"load trusted Theme module\" ||\n operation === \"execute report from Record\" ||\n operation === \"render Report show output\" ||\n operation === \"open report view session\" ||\n operation === \"open report view\" ||\n operation === \"export static Report\";\n}\nfunction failureCode(value: unknown): string | undefined {\n if (typeof value !== \"object\" || value === null)\n return undefined;\n const code = Reflect.get(value, \"code\");\n return typeof code === \"string\" ? code : undefined;\n}\nexport interface Flags {\n agent?: string;\n model?: string;\n attempts?: number;\n maxConcurrency?: number;\n maxBuildConcurrency?: number;\n timeout?: number;\n earlyExit?: boolean;\n dry: boolean;\n force: boolean;\n rerun?: \"failed\" | \"all\";\n budget?: number;\n tag?: string;\n junit?: string;\n /** `exp` 命令专用:机器面(NDJSON 事件流)。省略即人读文本(见 `resolveOutputForm`)。 */\n json: boolean;\n /** `docker profile doctor` 专用:运行一次真实嵌套 Docker 冒烟。 */\n smoke: boolean;\n open?: boolean;\n out?: string;\n port?: number;\n host?: string;\n help: boolean;\n version: boolean;\n /** `clean` / `migrate` 专用:确认删除未完成 Run 或没有 Git restore point 的 migration。 */\n yes: boolean;\n // ── show 专属(位置参数仍是 eval id 前缀 / `@<locator>`;这些 flag 选「怎么看」)──\n source?: true | string;\n execution: boolean;\n diff: boolean;\n /** --diff=<路径>(必须 = 连写;空格形式会把路径当 eval id 前缀,按文档如此)。 */\n diffPath?: string;\n /** `show @<AttemptId> --execution` 专用:JS 正则,只显示命中的 transcript / tool / command evidence。 */\n grep?: string;\n timing?: \"summary\" | \"full\";\n keepSandbox?: \"failed\" | \"all\";\n all: boolean;\n window?: string;\n sandboxPath?: string;\n leaveRunning: boolean;\n history: boolean;\n usage: boolean;\n stats: boolean;\n /** `show` / `view` 命令专用:默认读取当前项目结果时,按完整 ExperimentId 收窄目标。 */\n experiment?: string[];\n /** `show` / `view` / `accept` / `sandbox enter|list|stop` 共用:记录根目录(`.niceeval` 之外的另一个根,如 `publish` 产出的发布根)。 */\n record?: string;\n /** `show` / `view` 命令专用:`--run` 可重复;按完整 RunId 去重。 */\n run?: string[];\n report?: string;\n page?: string;\n theme?: string;\n /** `sandbox list` 专用:核对强杀路径留下的无主实例。 */\n orphans: boolean;\n /** `exp` 命令专用:只对选中实验各执行一次实验级 teardown,不派发 attempt、不跑 setup。 */\n teardown: boolean;\n}\n// 表驱动的 flag 定义(node:util parseArgs)。--no-x 显式声明,不依赖 Node 20.14+\n// 才支持的 allowNegative,也避免每个 boolean flag 都隐式获得未设计的负向别名。\n// 未知 flag 由 strict 模式报清晰错误,不会静默吞掉后面的位置参数。\n//\n// 每个 flag 的 JSDoc 就是它在 docs-site/zh/reference/cli.mdx flag 表里的说明,由\n// scripts/generate-reference.ts 提取渲染——改 flag 语义时改这里的注释即可,不用碰生成脚本。\n// 负向 flag(no-x)与正向 flag 合并成一行展示,不需要单独写 JSDoc。\nconst FLAG_OPTIONS = {\n /** experiment 运行不支持该 flag。要换 agent,请在 `experiments/` 下新增或复制一个配置文件。 */\n agent: { type: \"string\" },\n /** experiment 运行不支持该 flag。要换模型,请新增或复制一个 experiment 文件并修改 `model`。 */\n model: { type: \"string\" },\n /** 每个 eval 运行多少次,常用于 pass@N。 */\n attempts: { type: \"string\" },\n /** 设置同时运行的 eval 数量。 */\n \"max-concurrency\": { type: \"string\" },\n /** 设置同时进行的 Sandbox 镜像 lookup/build 数量;与 eval 并发独立,默认 2。 */\n \"max-build-concurrency\": { type: \"string\" },\n /** 单个 attempt 的超时时间,单位毫秒。解析链:`--timeout` > experiment > eval(`defineEval({ timeoutMs })`)> `niceeval.config.ts`,默认无上限(四层都没声明就不设 deadline);config 是缺省底而不是覆盖层,写了 config 不会让 eval 自己声明的上限失效。 */\n timeout: { type: \"string\" },\n /** 整次运行的预算上限(美元)。 */\n budget: { type: \"string\" },\n /** `exp` 命令专用:跑完留下 failed/errored attempt 的 Sandbox 现场(= `--keep-sandbox=failed`);`--keep-sandbox=all` 连 passed 也留。事后用 `niceeval sandbox list/enter/stop` 查看与销毁。 */\n \"keep-sandbox\": { type: \"boolean\" },\n /** `sandbox stop` 专用:销毁全部留存 Sandbox。 */\n all: { type: \"boolean\" },\n /** `sandbox diff` 专用:只看某个 send 窗口(如 `--window turn2` 或 `--window session2/turn1`);省略输出全部窗口的串联视图。 */\n window: { type: \"string\" },\n /** `sandbox diff` 专用:只看某个文件的 patch;省略输出该窗口的全部文件。 */\n path: { type: \"string\" },\n /** `sandbox enter` 专用:shell 退出后让现场保持运行,不送回休眠。 */\n \"leave-running\": { type: \"boolean\" },\n /** `sandbox list` 专用:核对强杀(`SIGKILL` / 断电)路径留下的无主沙箱实例(docker + e2b;vercel 无按元数据检索实例的通道,不参与)。只读,不清理;销毁走 `niceeval sandbox prune`。 */\n orphans: { type: \"boolean\" },\n /** 只运行带有该 tag 的 eval(见 `defineEval` 的 `tags`)。 */\n tag: { type: \"string\" },\n /** 额外写一份 JUnit XML 报告到指定路径,供 CI 消费。 */\n junit: { type: \"string\" },\n /** `exp` 运行在 stdout 输出单一有序的 NDJSON 事件流;`exp --dry` 与 `debug` 输出各自的单个 JSON 计划文档。`show` 输出 Host 拥有的内建或自定义单目标机器文档,不形成完整站点或打开第二条取数路径。 */\n json: { type: \"boolean\" },\n /** `docker profile doctor` 专用:启动受限 DinD 容器并运行内层容器。 */\n smoke: { type: \"boolean\" },\n /** `view` 命令专用:把结果查看器静态导出到指定目录。 */\n out: { type: \"string\" },\n /** `view` 命令专用:指定本地服务器监听端口。 */\n port: { type: \"string\" },\n /** `view` 命令专用:指定监听地址;省略时为 127.0.0.1,只写 `--host` 时为 0.0.0.0。非 loopback 监听无认证或 TLS,会向所有可达客户端暴露报告数据。 */\n host: { type: \"string\" },\n // 以下旧 show 切片只为实现收敛期间保留解析位置,不属于目标公开 CLI,也不进入参考页。\n /** `show` 专用:按一个 exact Attempt locator 展示已记录的 source snapshot。 */\n source: { type: \"boolean\" },\n /** `show @<AttemptLocator> --execution`:从公开 Record projection 呈现该 Attempt 的 transcript、tool 与 command evidence。 */\n execution: { type: \"boolean\" },\n /** `show @<AttemptLocator> --timing[=summary|full]` 专用:从内建 timing Report 读取该 Attempt 的 runner 阶段树。 */\n timing: { type: \"boolean\" },\n /** `show @<AttemptId> --execution` 专用:JS 正则过滤 retained transcript、tool 与 command evidence。 */\n grep: { type: \"string\" },\n // --diff 是布尔;--diff=<路径> 在 parseArgs 前预扫成 diffPath(路径必须 = 连写,\n // 空格形式的下一个 token 仍是位置参数 = eval id 前缀,与文档一致)。\n /** 实现收敛占位;目标公开 CLI 通过 Report page 读取 diff 通道。 */\n diff: { type: \"boolean\" },\n /** 实现收敛占位;目标公开 CLI 不提供跨 Run history。 */\n history: { type: \"boolean\" },\n /** 实现收敛占位;目标公开 CLI 通过 Report Calculation 呈现用量。 */\n usage: { type: \"boolean\" },\n /** 实现收敛占位;目标公开 CLI 不提供隐式跨 Run 统计。 */\n stats: { type: \"boolean\" },\n /** `show` / `view` 命令专用:按完整 ExperimentId 收窄当前项目结果;可重复,不接受前缀或逗号列表。 */\n experiment: { type: \"string\", multiple: true },\n /** `show` / `view` / `accept` / `sandbox enter|list|stop` 共用:指定实际 Record root;CLI 不补接 `.niceeval/record` 或其它后缀。 */\n record: { type: \"string\" },\n /** `show` / `view` 可重复传入 `--run`;每次按完整 RunId 增加一个显式 Run,重复 identity 去重。 */\n run: { type: \"string\", multiple: true },\n /** `show` / `view` 命令专用:内建 `overview` 或受信任的 Report module 路径。 */\n report: { type: \"string\" },\n /** `show` / `view` 命令专用:内建 Theme 或受信任的闭合 Theme module 路径。 */\n theme: { type: \"string\" },\n /** `show` / `view` 命令专用:选择报告的初始页;`show` 渲染该页并在尾部附其余页索引,`view` 以它作初始路由。未命中的页 id 按用法错误退出并列出可用页 id。 */\n page: { type: \"string\" },\n /** `exp` 命令专用:补齐被强杀打断的实验级 teardown——只对选中的实验各执行一次 teardown(新进程语义),不派发 attempt、不跑 setup;没有遗留登记也照常执行。与 eval 前缀位置参数组合是用法错误。 */\n teardown: { type: \"boolean\" },\n /** 只打印本次会匹配到的 eval × 运行配置,不实际执行(人读文本或 `--json` 单文档,见「机器怎么读:--json」)。 */\n dry: { type: \"boolean\" },\n /** `sandbox prune` 专用:除 orphan 外也销毁 unverified 实例;`exp` 明确拒绝此 flag,重跑失败项或全部项请用 `--rerun` / `--rerun all`。 */\n force: { type: \"boolean\" },\n /** `exp` 命令专用:重新运行失败项(裸写/failed)或全部项(all),不改变长期指纹。 */\n rerun: { type: \"boolean\" },\n /** 某个 eval 的一次 attempt 通过后,停止该 eval 剩余的 attempts;省略默认关(`attempts` 默认跑满、测完整通过率)。 */\n \"early-exit\": { type: \"boolean\" },\n /** 强制关闭首过即停,即使实验文件里写了 `earlyExit: true`。 */\n \"no-early-exit\": { type: \"boolean\" },\n /** `view` 命令专用:启动后自动打开浏览器(默认行为)。 */\n open: { type: \"boolean\" },\n \"no-open\": { type: \"boolean\" },\n /** `clean` / `migrate` 专用:确认不可逆 maintenance 动作或没有 Git restore point 的 migration。 */\n yes: { type: \"boolean\" },\n /** 打印用法说明并退出。 */\n help: { type: \"boolean\", short: \"h\" },\n /** 打印 niceeval 的版本号并退出。 */\n version: { type: \"boolean\", short: \"v\" },\n} as const;\nfunction numberFlag(name: string, raw: string | undefined): number | undefined {\n if (raw === undefined)\n return undefined;\n const n = Number(raw);\n if (!Number.isFinite(n)) {\n throw usageError(t(\"cli.flag.invalidNumber\", { flag: name, value: raw }));\n }\n return n;\n}\nconst CLI_COMMANDS = [\"check\", \"exp\", \"debug\", \"accept\", \"show\", \"list\", \"view\", \"clean\", \"migrate\", \"init\", \"run\", \"sandbox\", \"session\", \"docker\"] as const;\ntype CliCommand = (typeof CLI_COMMANDS)[number];\ninterface ParsedCliArgs {\n readonly command: CliCommand;\n readonly positionals: string[];\n readonly flags: Flags;\n /** Canonical option names in argv order, after boolean|string normalization. */\n readonly providedOptions: readonly string[];\n}\nfunction isCliCommand(candidate: string): candidate is CliCommand {\n return CLI_COMMANDS.some((command) => command === candidate);\n}\nfunction parseArgs(argv: string[]): ParsedCliArgs {\n if (argv[0] === \"--\")\n argv = argv.slice(1);\n if (argv.some((arg) => arg === \"--strict\" || arg.startsWith(\"--strict=\"))) {\n throw usageError(t(\"cli.flag.strictRemoved\"));\n }\n // --diff=<路径> 预扫:diff 本体是布尔(裸 --diff = 文件级摘要),路径只接受 = 连写。\n let diffPath: string | undefined;\n // --keep-sandbox[=failed|all] 预扫:本体是布尔(裸 = failed 档),档位只接受 = 连写。\n let keepSandboxTier: \"failed\" | \"all\" | undefined;\n // --timing[=summary|full] 预扫:node:util 的单个 option 不支持 boolean|string 联合,\n // 所以 mode 在严格 parseArgs 前提取,再把两种形式统一成布尔 --timing。\n let timingMode: \"summary\" | \"full\" | undefined;\n // --source[=full|<path>] 预扫:本体是布尔,值只接受 = 连写,避免吞掉 eval 前缀位置参数。\n let sourceValue: string | undefined;\n let rerunMode: \"failed\" | \"all\" | undefined;\n // boolean|string 联合 flag 的空格写法先归一:--rerun all → --rerun=all;\n // --host 的裸写则补成默认地址,保持 `--host <地址>` 的普通 string flag 形态。\n {\n const normalized: string[] = [];\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index]!;\n const next = argv[index + 1];\n if (arg === \"--rerun\" && (next === \"failed\" || next === \"all\")) {\n normalized.push(`--rerun=${next}`);\n index += 1;\n }\n else if (arg === \"--host\" && (next === undefined || next.startsWith(\"-\"))) {\n normalized.push(\"--host=0.0.0.0\");\n }\n else {\n normalized.push(arg);\n }\n }\n argv = normalized;\n }\n argv = argv.map((arg) => {\n if (arg.startsWith(\"--host=\")) {\n const value = arg.slice(\"--host=\".length);\n if (value.length === 0) {\n throw usageError(\"--host=<address> requires a non-empty address, or use bare --host.\\n\");\n }\n }\n if (arg.startsWith(\"--source=\")) {\n const value = arg.slice(\"--source=\".length);\n if (value.length === 0) {\n throw usageError(\"--source=<path> requires a non-empty captured source path, or use bare --source.\\n\");\n }\n sourceValue = value;\n return \"--source\";\n }\n if (arg.startsWith(\"--diff=\")) {\n const path = arg.slice(\"--diff=\".length);\n if (path)\n diffPath = path;\n return \"--diff\";\n }\n if (arg.startsWith(\"--keep-sandbox=\")) {\n const tier = arg.slice(\"--keep-sandbox=\".length);\n if (tier !== \"failed\" && tier !== \"all\") {\n throw usageError(`--keep-sandbox only accepts \"failed\" (default) or \"all\", got \"${tier}\".\\n`);\n }\n keepSandboxTier = tier;\n return \"--keep-sandbox\";\n }\n if (arg.startsWith(\"--timing=\")) {\n const mode = arg.slice(\"--timing=\".length);\n if (mode !== \"summary\" && mode !== \"full\") {\n throw usageError(`--timing only accepts \"summary\" (default) or \"full\", got \"${mode}\".\\n`);\n }\n timingMode = mode;\n return \"--timing\";\n }\n if (arg.startsWith(\"--rerun=\")) {\n const mode = arg.slice(\"--rerun=\".length);\n if (mode !== \"failed\" && mode !== \"all\") {\n throw usageError(`--rerun only accepts \"failed\" (default) or \"all\", got \"${mode}\".\\n`);\n }\n rerunMode = mode;\n return \"--rerun\";\n }\n // `--output` 整个删除(见 docs/feature/experiments/cli.md 与 memory/exp-output-two-forms-ruling.md):\n // beta 不留别名,任何取值(裸 flag 或 `--output=value`)都按用法错误拒绝,不静默吞掉、也不\n // 落到 node:util parseArgs 的通用「unknown option」文案——给出专门的 error:/fix: 两行,\n // 指向唯一还存在的两条路径:不加 flag 跑人读文本,机器面用 `--json`。\n if (arg === \"--output\" || arg.startsWith(\"--output=\")) {\n throw usageError(t(\"cli.flag.outputRemoved\"));\n }\n return arg;\n });\n let values: globalThis.Record<string, string | boolean | undefined>;\n let rawPositionals: string[];\n let providedOptions: string[];\n try {\n const parsed = nodeParseArgs({\n args: argv,\n options: FLAG_OPTIONS,\n allowPositionals: true,\n strict: true,\n tokens: true,\n });\n values = parsed.values as globalThis.Record<string, string | boolean | undefined>;\n rawPositionals = parsed.positionals;\n providedOptions = parsed.tokens\n .filter((token): token is Extract<(typeof parsed.tokens)[number], {\n kind: \"option\";\n }> => token.kind === \"option\")\n .map((token) => token.name);\n }\n catch (e) {\n if (e instanceof CliUsageError)\n throw e;\n throw usageError(t(\"cli.flag.parseError\", { message: e instanceof Error ? e.message : String(e) }));\n }\n // 第一个位置参数必须是已知命令;其余是 eval id 前缀 / view 输入。\n // 裸 eval id 早已不再是运行入口,所以不识别的首 token 应当就地报用法错误,\n // 不应先装载项目 config / eval 再偶然以其它错误退出。\n let command: CliCommand = \"run\";\n let positionals = rawPositionals;\n if (rawPositionals.length > 0) {\n const candidate = rawPositionals[0];\n if (!isCliCommand(candidate)) {\n throw usageError(t(\"cli.command.unknown\", { command: candidate }));\n }\n command = candidate;\n positionals = rawPositionals.slice(1);\n }\n const flags: Flags = {\n agent: values.agent as string | undefined,\n model: values.model as string | undefined,\n attempts: numberFlag(\"attempts\", values.attempts as string | undefined),\n maxConcurrency: numberFlag(\"max-concurrency\", values[\"max-concurrency\"] as string | undefined),\n maxBuildConcurrency: numberFlag(\"max-build-concurrency\", values[\"max-build-concurrency\"] as string | undefined),\n timeout: numberFlag(\"timeout\", values.timeout as string | undefined),\n budget: numberFlag(\"budget\", values.budget as string | undefined),\n tag: values.tag as string | undefined,\n junit: values.junit as string | undefined,\n json: values.json === true,\n smoke: values.smoke === true,\n out: values.out as string | undefined,\n port: numberFlag(\"port\", values.port as string | undefined),\n host: values.host as string | undefined,\n dry: values.dry === true,\n force: values.force === true,\n rerun: values.rerun === true ? (rerunMode ?? \"failed\") : undefined,\n earlyExit: values[\"no-early-exit\"] === true ? false : values[\"early-exit\"] === true ? true : undefined,\n open: values[\"no-open\"] === true ? false : values.open === true ? true : undefined,\n help: values.help === true,\n version: values.version === true,\n yes: values.yes === true,\n source: values.source === true ? (sourceValue ?? true) : undefined,\n execution: values.execution === true,\n diff: values.diff === true && diffPath === undefined,\n diffPath,\n timing: values.timing === true ? (timingMode ?? \"summary\") : undefined,\n grep: values.grep as string | undefined,\n keepSandbox: values[\"keep-sandbox\"] === true ? (keepSandboxTier ?? \"failed\") : undefined,\n all: values.all === true,\n window: values.window as string | undefined,\n sandboxPath: values.path as string | undefined,\n leaveRunning: values[\"leave-running\"] === true,\n history: values.history === true,\n usage: values.usage === true,\n stats: values.stats === true,\n experiment: values.experiment as string[] | undefined,\n record: values.record as string | undefined,\n run: values.run as string[] | undefined,\n report: values.report as string | undefined,\n page: values.page as string | undefined,\n theme: values.theme as string | undefined,\n orphans: values.orphans === true,\n teardown: values.teardown === true,\n };\n return { command, positionals, flags, providedOptions };\n}\n/**\n * exp 只接受两类输入:位置参数选「跑哪些 eval」+ 调度/输出/机器出口 flag 选「对着哪个 agent、\n * 怎么跑」。show / view 专属的证据切面(`--source`/`--execution`/`--diff`)、时间轴(`--history`)、\n * Sample 收窄(`--experiment`)、报告装载(`--report`/`--page`)、查看器\n * (`--run`/`--out`/`--port`/`--open`)不能被 exp 静默忽略(见 docs/feature/experiments/\n * cli.md「用法错误」)。返回第一个被误用的 flag 及其归属命令(用于报错),没有误用返回 undefined。\n */\n/** A dry plan never retains scoped Record capabilities or result-shaped legacy data. */\ninterface CurrentDryPlan {\n readonly slots: readonly CurrentDryPlanSlot[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n}\ninterface CurrentDryPlanSlot {\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 {\n readonly attachment: string;\n readonly recordedClaim: string;\n readonly sourceState: string;\n readonly result: string;\n readonly reason: string;\n }[];\n readonly reason?: string;\n readonly scope?: string;\n}\ninterface CurrentDryPlanRow {\n readonly experimentId: string;\n readonly evalId: string;\n readonly evalGroupId?: string;\n readonly evalGroupIndex?: number;\n readonly slots: readonly CurrentDryPlanSlot[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n readonly locked?: boolean;\n}\nfunction projectCurrentDryPlan(input: {\n readonly slots: readonly ExecutionReusePlanSlot[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n}): CurrentDryPlan {\n return Object.freeze({\n slots: Object.freeze(input.slots.map(projectCurrentDryPlanSlot)),\n readbacks: Object.freeze([...input.readbacks]),\n });\n}\nfunction projectCurrentDryPlanSlot(slot: ExecutionReusePlanSlot): CurrentDryPlanSlot {\n return Object.freeze({\n runId: String(slot.runId),\n slotId: String(slot.slotId),\n experimentId: slot.experimentId,\n evalId: slot.evalId,\n attempt: slot.attempt,\n state: slot.state === \"reuse\" ? \"reused\" : \"gap\",\n comparisons: Object.freeze(slot.comparisons.map((comparison) => Object.freeze({\n attachment: comparison.attachment,\n recordedClaim: comparison.recordedClaim,\n sourceState: comparison.sourceState,\n result: comparison.result,\n reason: comparison.reason,\n }))),\n ...(slot.state === \"gap\" ? { reason: slot.reason, scope: slot.scope } : {}),\n });\n}\nfunction currentDryPlanRows(plan: CurrentDryPlan): readonly CurrentDryPlanRow[] {\n const rows = new Map<string, {\n experimentId: string;\n evalId: string;\n slots: CurrentDryPlanSlot[];\n readbacks: CurrentReuseReadbackSnapshot[];\n }>();\n const rowFor = (experimentId: string, evalId: string) => {\n const key = JSON.stringify([experimentId, evalId]);\n const existing = rows.get(key);\n if (existing !== undefined)\n return existing;\n const created = { experimentId, evalId, slots: [], readbacks: [] };\n rows.set(key, created);\n return created;\n };\n for (const slot of plan.slots)\n rowFor(slot.experimentId, slot.evalId).slots.push(slot);\n for (const readback of plan.readbacks) {\n rowFor(readback.target.experimentId, readback.target.evalId).readbacks.push(readback);\n }\n return Object.freeze([...rows.values()].map((row) => Object.freeze({\n experimentId: row.experimentId,\n evalId: row.evalId,\n slots: Object.freeze([...row.slots].sort((left, right) => left.attempt - right.attempt)),\n readbacks: Object.freeze([...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 renderCurrentDryPlan(input: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configs: number;\n readonly attempts: number;\n readonly rows: readonly CurrentDryPlanRow[];\n readonly pluginAudit: CurrentDryPluginAudit;\n}): string {\n const reused = input.rows.reduce((total, row) => total + row.slots.filter((slot) => slot.state === \"reused\").length, 0);\n const lines = [\n `plan: ${input.totalAttempts} attempts · ${input.evals} evals × ${input.configs} configs · runs ${input.attempts}`,\n ...(reused === 0 ? [] : [`reuse: ${reused}/${input.totalAttempts} exact current Record attempts`]),\n `plugins: ${input.pluginAudit.occurrences.length} lifecycle occurrences`,\n ];\n for (const row of input.rows) {\n const reusedAttempts = row.slots.filter((slot) => slot.state === \"reused\").map((slot) => slot.attempt);\n const gaps = row.slots.filter((slot) => slot.state === \"gap\");\n const hasIdentityGap = gaps.some((slot) => slot.reason === \"identity-mismatch\");\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 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 const locator = readback.source.locator;\n lines.push(` source ${locator} · ${readback.state} · verdict ${verdict}`);\n if (hasIdentityGap && readback.state === \"prior\") {\n lines.push(` accept: niceeval accept ${locator}`);\n }\n }\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\ninterface CurrentDryPluginAudit {\n readonly occurrences: readonly JsonValue[];\n}\nfunction renderCurrentDryPlanJson(input: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configs: number;\n readonly attempts: number;\n readonly rows: readonly CurrentDryPlanRow[];\n readonly pluginAudit: CurrentDryPluginAudit;\n}): string {\n const reused = input.rows.reduce((total, row) => total + row.slots.filter((slot) => slot.state === \"reused\").length, 0);\n return `${JSON.stringify({\n format: \"niceeval.current-reuse-plan/v1\",\n schemaVersion: 1,\n total: input.totalAttempts,\n evals: input.evals,\n configs: input.configs,\n attempts: input.attempts,\n reused,\n matrix: input.rows,\n plugins: input.pluginAudit.occurrences,\n })}\\n`;\n}\n/**\n * Fold the invocation's real fresh results and current Record readbacks at the\n * same eval identity. This intentionally projects only identity + terminal\n * verdict; a reused readback is never recreated as an EvalResult.\n */\nexport function foldInvocationEvalStats(summary: Pick<InvocationSummary, \"results\" | \"reusedAttempts\">) {\n const terminals = [\n ...summary.results.map((result) => Object.freeze({\n identity: `${result.experimentId ?? \"\"}|${result.id}`,\n verdict: result.verdict,\n })),\n ...summary.reusedAttempts.map((readback) => Object.freeze({\n identity: `${readback.target.experimentId}|${readback.target.evalId}`,\n verdict: readback.source.evaluationKind !== \"score\"\n ? readback.verdict\n : readback.score.state === \"applicable\"\n && readback.score.attachment.state === \"available\"\n && readback.score.attachment.value.state === \"complete\"\n ? \"passed\" as const\n : \"errored\" as const,\n })),\n ];\n return evalLevelStats(terminals, (terminal) => terminal.identity);\n}\nfunction firstViewerOnlyFlag(flags: Flags): {\n flag: string;\n command: string;\n} | undefined {\n const SHOW = \"show\";\n const BOTH = \"show / view\";\n const VIEW = \"view\";\n if (flags.source)\n return { flag: \"--source\", command: SHOW };\n if (flags.execution)\n return { flag: \"--execution\", command: SHOW };\n if (flags.timing !== undefined)\n return { flag: \"--timing\", command: SHOW };\n if (flags.grep !== undefined)\n return { flag: \"--grep\", command: SHOW };\n if (flags.diff || flags.diffPath !== undefined)\n return { flag: \"--diff\", command: SHOW };\n if (flags.history)\n return { flag: \"--history\", command: SHOW };\n if (flags.usage)\n return { flag: \"--usage\", command: SHOW };\n if (flags.stats)\n return { flag: \"--stats\", command: SHOW };\n if (flags.experiment !== undefined)\n return { flag: \"--experiment\", command: BOTH };\n if (flags.report !== undefined)\n return { flag: \"--report\", command: BOTH };\n if (flags.theme !== undefined)\n return { flag: \"--theme\", command: VIEW };\n if (flags.page !== undefined)\n return { flag: \"--page\", command: BOTH };\n if (flags.run !== undefined)\n return { flag: \"--run\", command: VIEW };\n if (flags.out !== undefined)\n return { flag: \"--out\", command: VIEW };\n if (flags.port !== undefined)\n return { flag: \"--port\", command: VIEW };\n if (flags.open !== undefined)\n return { flag: \"--open\", command: VIEW };\n return undefined;\n}\n/** `clean` and `migrate` operate on a current Record root with explicit confirmation. */\nfunction firstRecordMaintenanceUnsupportedFlag(flags: Flags): string | undefined {\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--json\", flags.json],\n [\"--smoke\", flags.smoke],\n [\"--dry\", flags.dry],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", flags.open],\n [\"--out\", flags.out],\n [\"--port\", flags.port],\n [\"--host\", flags.host],\n [\"--source\", flags.source],\n [\"--execution\", flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", flags.grep],\n [\"--timing\", flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--experiment\", flags.experiment],\n [\"--run\", flags.run],\n [\"--report\", flags.report],\n [\"--page\", flags.page],\n [\"--theme\", flags.theme],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n ];\n const bad = unsupported.find(([flag, value]) => {\n if (flag === \"--open/--no-open\" || flag === \"--early-exit/--no-early-exit\") {\n return value !== undefined;\n }\n return value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0);\n });\n return bad?.[0];\n}\n/**\n * `accept` 接受一个或多个精确 locator;它不是 `exp` 的另一种选择器,也不派发 attempt。\n * `--record` 是唯一允许的附加 flag,用来接受发布根或其它显式记录根里的结果。\n */\nfunction parseAcceptLocators(positionals: string[], flags: Flags): string[] {\n if (positionals.length === 0 || positionals.some((locator) => !/^@[^@\\s]+$/.test(locator))) {\n throw usageError(t(\"cli.accept.usage\"));\n }\n if (new Set(positionals).size !== positionals.length) {\n throw usageError(\"niceeval accept rejects duplicate locators.\\n\");\n }\n // `parseArgs` 已经负责未知 flag;这里拒绝那些虽为全局已知、但会改变运行/查看语义的 flag。\n // `--record` 是 accept 的唯一范围输入,help/version 在 main() 更早处理。\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--json\", flags.json],\n [\"--dry\", flags.dry],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", flags.open],\n [\"--source\", flags.source],\n [\"--execution\", flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", flags.grep],\n [\"--timing\", flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--experiment\", flags.experiment],\n [\"--run\", flags.run],\n [\"--report\", flags.report],\n [\"--page\", flags.page],\n [\"--theme\", flags.theme],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n ];\n const bad = unsupported.find(([flag, value]) => {\n // `--no-open` / `--no-early-exit` are represented as false, but are still\n // explicit flags and therefore invalid on this command.\n if (flag === \"--open/--no-open\" || flag === \"--early-exit/--no-early-exit\")\n return value !== undefined;\n return value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0);\n });\n if (bad) {\n throw usageError(t(\"cli.accept.flagUnsupported\", { flag: bad[0] }));\n }\n return [...positionals];\n}\ninterface AcceptLocatorResult {\n runId: string;\n locator: string;\n sourceLocator: string;\n fingerprint?: string;\n}\n/** 调用 acceptance core;CLI 只负责 cwd/记录根边界、输出与退出码,不重建结果或启动 runner。 */\nfunction runAcceptCommand(cwd: string, locators: readonly string[], recordRoot: string | undefined) {\n return Effect.gen(function* () {\n const results: readonly AcceptLocatorResult[] = yield* cliEffect(\"accept locators\", experimentHost.accept({\n cwd,\n locators,\n ...(recordRoot !== undefined ? { recordRoot } : {}),\n }));\n yield* Effect.sync(() => {\n for (const result of results) {\n process.stdout.write(t(\"cli.accept.done\", {\n runId: result.runId,\n sourceLocator: result.sourceLocator,\n locator: result.locator,\n fingerprint: result.fingerprint ?? \"—\",\n }));\n }\n });\n });\n}\n// ── exp rename:CLI 契约与纯解析/格式化 ──────────────────────────────────────\n// 核心在 src/runner/rename-experiment.ts(planExperimentRename / renameExperiment,\n// 资格门与写入都在那里,见 docs/source-map.md 与 docs/feature/experiments/rename.md);\n// CLI 只做:解析 `exp rename <oldId> <newId>`、递选项进核心、把核心返回的计划/结果按\n// 形态渲染。稳定 reason、计划与结果文档都是核心导出的契约,CLI 不在渲染层重建资格算法。\nexport const EXPERIMENT_RENAME_FORMAT = \"niceeval.experimentRename\" as const;\nexport const EXPERIMENT_RENAME_SCHEMA_VERSION = 1 as const;\n/**\n * exp rename 的机器文档:单份 JSON,按 status 判别。\n * - `plan`(核心计划,可含 `blocked` 阻断原因);\n * - `rejected`(核心 `renameExperiment` 抛 `ExperimentRenameError` 时的整批拒绝);\n * - `done`(核心 `RenamedExperiment` = 成功文档)。\n */\nexport type ExperimentRenameJsonDocument = ExperimentRenamePlan | ExperimentRenameRejected | RenamedExperiment;\nconst EXPERIMENT_RENAME_REASON_MESSAGE: Record<ExperimentRenameReason, MessageKey> = {\n \"source-empty\": \"cli.rename.error.sourceEmpty\",\n \"target-not-found\": \"cli.rename.error.targetNotFound\",\n \"target-has-results\": \"cli.rename.error.targetHasResults\",\n \"source-unreadable\": \"cli.rename.error.sourceUnreadable\",\n \"artifact-unavailable\": \"cli.rename.error.artifactUnavailable\",\n \"nothing-to-migrate\": \"cli.rename.error.nothingToMigrate\",\n};\n/**\n * 解析 exp rename 的位置参数:必须恰好两个(一个旧 id、一个新 id)。\n * 纯函数,CLI 与测试共用。\n */\nexport function parseExperimentRenamePositionals(args: readonly string[]): {\n ok: true;\n oldId: string;\n newId: string;\n} | {\n ok: false;\n kind: \"usage\";\n} {\n if (args.length !== 2 || args[0] === undefined || args[1] === undefined) {\n return { ok: false, kind: \"usage\" };\n }\n return { ok: true, oldId: args[0], newId: args[1] };\n}\n/**\n * exp rename 只允许 --dry / --json;返回第一个被误用的 flag,没有误用返回 undefined。\n * 与 accept 同一套纪律:node:util parseArgs 已经报未知 flag,这里拒绝那些全局已知、\n * 但会改变运行/查看语义的 flag。\n */\nexport function firstExperimentRenameUnsupportedFlag(flags: Flags): string | undefined {\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", flags.open],\n [\"--source\", flags.source],\n [\"--execution\", flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", flags.grep],\n [\"--timing\", flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--experiment\", flags.experiment],\n [\"--record\", flags.record],\n [\"--run\", flags.run],\n [\"--report\", flags.report],\n [\"--page\", flags.page],\n [\"--theme\", flags.theme],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n [\"--out\", flags.out],\n [\"--port\", flags.port],\n [\"--host\", flags.host],\n ];\n const bad = unsupported.find(([flag, value]) => {\n // `--no-open` / `--no-early-exit` 表现为 false,但仍是显式 flag,在 rename 上同样非法。\n if (flag === \"--open/--no-open\" || flag === \"--early-exit/--no-early-exit\")\n return value !== undefined;\n return value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0);\n });\n return bad?.[0];\n}\n/** 人读面:核心计划 → 预览文本。逐条列出迁移与排除;有 `blocked` 时点名阻断原因。 */\nexport function renderExperimentRenamePlanHuman(plan: ExperimentRenamePlan): string {\n const lines = [t(\"cli.rename.previewHeader\", { oldId: plan.oldId, newId: plan.newId })];\n if (plan.blocked !== undefined) {\n lines.push(t(\"cli.rename.blocked\", { reason: plan.blocked.reason }));\n lines.push(...renderExperimentRenameBlockedDetail(plan.blocked));\n }\n if (plan.migrations.length > 0) {\n lines.push(t(\"cli.rename.migratingHeader\", { count: plan.migrations.length }));\n for (const entry of plan.migrations) {\n lines.push(t(\"cli.rename.migratingRow\", {\n evalId: entry.evalId,\n sourceLocator: entry.sourceLocator,\n newId: plan.newId,\n }));\n }\n }\n if (plan.excluded.length > 0) {\n lines.push(t(\"cli.rename.excludedHeader\", { count: plan.excluded.length }));\n for (const entry of plan.excluded) {\n lines.push(t(\"cli.rename.excludedRow\", { evalId: entry.evalId, reason: entry.reason }));\n }\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n/** 拒绝的人读面:先给 reason 专属文案(点名旧 id、新 id、受影响 eval 与下一步),再补冲突清单。 */\nexport function renderExperimentRenameRejectedHuman(rejected: ExperimentRenameRejected): string {\n const lines = [\n t(EXPERIMENT_RENAME_REASON_MESSAGE[rejected.reason], {\n oldId: rejected.oldId,\n newId: rejected.newId,\n evalId: rejected.evalId ?? \"\",\n }),\n ];\n lines.push(...renderExperimentRenameRejectedDetail(rejected));\n return `${lines.join(\"\\n\")}\\n`;\n}\n/** 成功的人读面:新 snapshot 路径 + 逐条新 locator。 */\nexport function renderExperimentRenameDoneHuman(done: RenamedExperiment): string {\n const lines = [\n t(\"cli.rename.doneHeader\", { oldId: done.oldId, newId: done.newId, count: done.migrated.length }),\n t(\"cli.rename.snapshotPath\", { path: done.snapshotPath }),\n ];\n for (const entry of done.migrated) {\n lines.push(t(\"cli.rename.doneRow\", {\n evalId: entry.evalId,\n sourceLocator: entry.sourceLocator,\n locator: entry.locator,\n }));\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n/** 阻断的逐条事实:冲突 eval 逐行列出,并保留底层读取详情。 */\nfunction renderExperimentRenameBlockedDetail(blocked: ExperimentRenameBlocked): string[] {\n const lines: string[] = [];\n for (const evalId of blocked.conflictingEvals ?? []) {\n lines.push(` ${evalId}`);\n }\n if (blocked.detail !== undefined)\n lines.push(` ${blocked.detail}`);\n return lines;\n}\nfunction renderExperimentRenameRejectedDetail(rejected: ExperimentRenameRejected): string[] {\n const lines: string[] = [];\n const conflicting = rejected.conflictingEvals ?? [];\n if (conflicting.length > 0) {\n lines.push(t(\"cli.rename.conflicting\", { evals: conflicting.join(\", \") }));\n }\n return lines;\n}\n/** 机器面:单份 JSON 文档,不混入人读文本(见 rename.md「命令」)。 */\nexport function renderExperimentRenameJson(document: ExperimentRenameJsonDocument): string {\n return `${JSON.stringify({\n format: EXPERIMENT_RENAME_FORMAT,\n schemaVersion: EXPERIMENT_RENAME_SCHEMA_VERSION,\n ...document,\n })}\\n`;\n}\n/** 把 renameExperiment 抛出的资格错误投影成 rejected 文档(JSON 与拒绝人读共用)。 */\nexport function experimentRenameRejectedFromError(error: ExperimentRenameError): ExperimentRenameRejected {\n const plan = error.plan;\n const blocked = plan?.blocked;\n return {\n status: \"rejected\",\n oldId: plan?.oldId ?? \"\",\n newId: plan?.newId ?? \"\",\n reason: error.reason,\n ...(blocked?.evalId === undefined ? {} : { evalId: blocked.evalId }),\n ...(blocked?.conflictingEvals === undefined ? {} : { conflictingEvals: blocked.conflictingEvals }),\n ...(blocked?.detail === undefined ? {} : { detail: blocked.detail }),\n };\n}\n/** 退出码:可迁移预览与成功执行为 0;blocked 预览 / rejected 整批零写入按失败退出。 */\nexport function experimentRenameExitCode(document: ExperimentRenameJsonDocument): number {\n if (document.status === \"done\")\n return 0;\n if (document.status === \"plan\")\n return document.blocked === undefined ? 0 : 1;\n return 1;\n}\n/**\n * exp rename 的 CLI 执行:解析 → 核心 → 渲染 → 退出码。核心契约见\n * src/runner/rename-experiment.ts(planExperimentRename / renameExperiment)。\n * renameExperiment 对资格失败抛 ExperimentRenameError,CLI 把它投影成 rejected 文档。\n */\nfunction runExperimentRenameCommand(cwd: string, args: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n const parsed = parseExperimentRenamePositionals(args);\n if (!parsed.ok) {\n yield* Effect.sync(() => process.stderr.write(t(\"cli.rename.usage\")));\n return 1;\n }\n const unsupported = firstExperimentRenameUnsupportedFlag(flags);\n if (unsupported !== undefined) {\n yield* Effect.sync(() => process.stderr.write(t(\"cli.rename.flagUnsupported\", { flag: unsupported })));\n return 1;\n }\n const { oldId, newId } = parsed;\n const mod = (yield* cliPromise(\"load experiment rename command\", () => __niceevalDynamicImport(\"./runner/rename-experiment.cjs\"))) as unknown as {\n planExperimentRename(options: {\n cwd: string;\n oldId: string;\n newId: string;\n }): Effect.Effect<ExperimentRenamePlan, unknown, never>;\n renameExperiment(options: {\n cwd: string;\n oldId: string;\n newId: string;\n }): Effect.Effect<RenamedExperiment, unknown, never>;\n };\n if (flags.dry) {\n const plan = yield* cliEffect(\"plan experiment rename\", mod.planExperimentRename({ cwd, oldId, newId }));\n yield* Effect.sync(() => {\n if (flags.json)\n process.stdout.write(renderExperimentRenameJson(plan));\n else\n process.stdout.write(renderExperimentRenamePlanHuman(plan));\n });\n return experimentRenameExitCode(plan);\n }\n const outcome = yield* Effect.either(cliEffect(\"rename experiment\", mod.renameExperiment({ cwd, oldId, newId })));\n if (Either.isRight(outcome)) {\n yield* Effect.sync(() => {\n if (flags.json)\n process.stdout.write(renderExperimentRenameJson(outcome.right));\n else\n process.stdout.write(renderExperimentRenameDoneHuman(outcome.right));\n });\n return 0;\n }\n // ExperimentRenameError 携带稳定 reason 与 rejected plan;其它异常按通用失败兜底。\n const error = outcome.left.cause;\n yield* Effect.sync(() => {\n if (error instanceof ExperimentRenameError) {\n const rejected = experimentRenameRejectedFromError(error);\n if (flags.json)\n process.stdout.write(renderExperimentRenameJson(rejected));\n else\n process.stdout.write(renderExperimentRenameRejectedHuman(rejected));\n }\n else {\n process.stderr.write(t(\"cli.rename.failed\", { error: error instanceof Error ? error.message : String(error) }));\n }\n });\n return 1;\n });\n}\n/** 加载 cwd/.env(不覆盖已有环境变量)。 */\nfunction loadDotenv(cwd: string): Effect.Effect<void, CliFailure> {\n const path = join(cwd, \".env\");\n if (!existsSync(path))\n return Effect.void;\n return cliPromise(\"read .env\", () => readFile(path, \"utf-8\")).pipe(Effect.tap((raw) => Effect.sync(() => {\n for (const line of raw.split(\"\\n\")) {\n const entry = line.trim();\n if (!entry || entry.startsWith(\"#\"))\n continue;\n const eq = entry.indexOf(\"=\");\n if (eq === -1)\n continue;\n const key = entry.slice(0, eq).trim();\n let value = entry.slice(eq + 1).trim();\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (process.env[key] === undefined)\n process.env[key] = value;\n }\n })), Effect.asVoid);\n}\nfunction loadConfig(cwd: string): Effect.Effect<Config, CliFailure> {\n return Effect.gen(function* () {\n const { loadConfigFile } = (yield* cliPromise(\"load config module\", () => __niceevalDynamicImport(\"./load-config.cjs\"))) as {\n loadConfigFile(cwd: string): Promise<Config>;\n };\n return yield* cliPromise(\"load NiceEval config\", () => loadConfigFile(cwd));\n });\n}\n// AGENTS.md/CLAUDE.md 托管区块:告诉在这个项目里干活的 coding agent「niceeval 不在你的训练数据里,\n// 先读随包文档,跑完只经公开 show 面诊断」。随包只发中文准绳版文档(英文站是手工同步、可能滞后,\n// 不进包,见 package.json 的 files);init 时写入/刷新;标记之外的用户内容永不触碰。\nconst AGENT_RULES_BEGIN = \"<!-- BEGIN:niceeval-agent-rules -->\";\nconst AGENT_RULES_END = \"<!-- END:niceeval-agent-rules -->\";\nconst AGENT_RULES_CONTENT = [\n \"# niceeval is NOT in your training data\",\n \"\",\n \"Its APIs and conventions may differ from anything you have seen. Start with\",\n \"`node_modules/niceeval/INDEX.md`, then read the task-specific bundled guides it points\",\n \"to before writing any eval, experiment, adapter, or niceeval config. That index and\",\n \"the bundled Chinese docs are the authoritative version matching this installation.\",\n \"After a run, use this repository's package-manager invocation of `niceeval show` for\",\n \"diagnosis (`pnpm --silent exec niceeval show` in a pnpm project). Pick an `@<locator>`\",\n \"from the compact index, then show that locator for an overview, or add\",\n \"`--source` / `--execution` / `--timing` / `--diff` / `--json` for evidence.\",\n \"When diagnosing an existing run, do not inspect raw `.niceeval` files or treat the current\",\n \"`evals/` or `agents/` source as evidence of what happened in that run. If `niceeval show`\",\n \"cannot expose the evidence you need, report that product gap. Reading source remains\",\n \"appropriate when the task is to author or modify that source.\",\n].join(\"\\n\");\n// 优先复用已有的 AGENTS.md;项目只有 CLAUDE.md(没有 AGENTS.md)时改写 CLAUDE.md 本身,\n// 不再另建一份重复文件;两者都没有则新建 AGENTS.md。CLAUDE.md 是指向 AGENTS.md 的符号链接时,\n// existsSync 会 follow 链接——目标存在则直接算作「AGENTS.md 已存在」,写入的还是同一份内容,\n// 不会产生分裂;目标不存在(悬空链接)则落回新建 AGENTS.md,写入后链接自然生效。\nfunction resolveAgentDocPath(cwd: string): string {\n const agentsPath = join(cwd, \"AGENTS.md\");\n if (existsSync(agentsPath))\n return agentsPath;\n const claudePath = join(cwd, \"CLAUDE.md\");\n if (existsSync(claudePath))\n return claudePath;\n return agentsPath;\n}\n// init 提示用:从 cwd 向上找最近的 package.json,判断宿主是否 ESM 形态。装载本身不挑形态\n// (bin 注册了 tsx 的 ESM+CJS 双 hook,exports 全出口带 require 条件,见 docs/cli.md\n// 「装载用户 .ts」),但 CJS 编译面下 config / eval 文件用不了顶层 await,ESM 仍是推荐形态;\n// 找不到 package.json 或解析失败按非 ESM 处理(tsx/Node 的缺省语义就是 CJS)。只提示,\n// 不改用户的 package.json。\nfunction hostPrefersEsm(cwd: string): boolean {\n let dir = resolvePath(cwd);\n while (true) {\n const pkgPath = join(dir, \"package.json\");\n if (existsSync(pkgPath)) {\n try {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\")) as {\n type?: unknown;\n };\n return pkg.type === \"module\";\n }\n catch {\n return false;\n }\n }\n const parent = dirname(dir);\n if (parent === dir)\n return false;\n dir = parent;\n }\n}\nfunction initProject(cwd: string): Effect.Effect<void, CliFailure> {\n return Effect.gen(function* () {\n yield* cliPromise(\"create eval directory\", () => mkdir(join(cwd, \"evals\"), { recursive: true }));\n const configPath = join(cwd, \"niceeval.config.ts\");\n if (!existsSync(configPath)) {\n yield* cliPromise(\"write initial config\", () => writeFile(configPath, [\n 'import { defineConfig } from \"niceeval\";',\n \"\",\n \"export default defineConfig({\",\n \" // Add experiments/ with defineExperiment(...) to run evals.\",\n \" //\",\n \" // Judge Facts require an Eval declaration: judge: true. Configure the model here or\",\n \" // on an Experiment. A consumed Fact without a model or key becomes unavailable and\",\n \" // makes that Attempt errored. Any OpenAI-compatible /chat/completions service works;\",\n \" // the key is read from OPENAI_API_KEY unless apiKeyEnv says otherwise.\",\n ' // judge: { model: \"gpt-5.4-mini\" },',\n \"});\",\n \"\",\n ].join(\"\\n\"), \"utf-8\"));\n }\n const agentDocPath = resolveAgentDocPath(cwd);\n const existing = existsSync(agentDocPath)\n ? yield* cliPromise(\"read agent instructions\", () => readFile(agentDocPath, \"utf-8\"))\n : \"\";\n const next = upsertManagedBlock(existing, AGENT_RULES_BEGIN, AGENT_RULES_END, AGENT_RULES_CONTENT);\n if (next !== existing)\n yield* cliPromise(\"write agent instructions\", () => writeFile(agentDocPath, next, \"utf-8\"));\n });\n}\nfunction openBrowser(url: string): Effect.Effect<boolean, CliFailure> {\n const command = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"cmd\" : \"xdg-open\";\n const args = process.platform === \"win32\" ? [\"/c\", \"start\", \"\", url] : [url];\n return cliPromise(\"open browser\", () => new Promise((resolveOpen: (opened: boolean) => void) => {\n let done = false;\n const finish = (ok: boolean) => {\n if (done)\n return;\n done = true;\n clearTimeout(timer);\n resolveOpen(ok);\n };\n const child = spawn(command, args, { detached: true, stdio: \"ignore\" });\n const timer = setTimeout(() => finish(true), 1500);\n child.once(\"error\", () => finish(false));\n child.once(\"exit\", (code) => finish(code === 0));\n child.unref();\n }));\n}\n/**\n * run 结束后把 coordinator 累计的诊断折成 `InvocationCompletion`(见 docs/feature/experiments/cli.md\n * 「运行完成状态不只看 verdict 计数」)。只读已经真实发生过的诊断,不额外发明信号:\n * - `\"interrupted\"` 诊断只在 run.ts 判定为真·中断(Effect exit 真实标记中断,不是「signal 被\n * abort 过」这种更弱的信号)时才会出现,见 `runner/run.ts` 的 `reportInterrupted()` 调用点。\n * - `\"budget-exhausted:<experimentId>\"` 诊断的 `count` 就是该 experiment 因预算耗尽未派发的\n * attempt 数(见 `runner/feedback/reducer.ts` 对 `budget-exhausted` 事件的注释),跨\n * experiment 求和得到 `unstarted`。\n * - `\"reporter-error:<reporter>\"` 诊断转成 `ReporterError[]`;`required` 字段来自事件自带的\n * `data.required`,直接反映这个 reporter 注册时的真实 required/best-effort 分类(见上面\n * 构造 `reporters: ReporterRegistration[]` 的地方——`--junit` 为 `required: true`,\n * `config.reporters` 恒 `false`),不是一个统一写死的占位值。\n * - `earlyExitUnstarted` 从反馈状态的 attempt:early-exit 计数派生(减去 fail-fast 的那部分——\n * 那是「未完整覆盖」,进 unstarted,不是「省下的重复验证」)。\n */\nfunction assembleInvocationCompletion(state: RunFeedbackState): InvocationCompletion {\n let unstarted = 0;\n let failFastSkipped = 0;\n let haltedSkipped = 0;\n let interrupted = false;\n const reporterErrors: ReporterError[] = [];\n for (const d of state.diagnostics) {\n // 归类按**稳定词法** `code`,不按 `key`:`key` 里编着折叠身份(experimentId / evalId /\n // reporter 名),拿它做前缀匹配会在「把身份从 key 里摘出去」时静默失配——记账悄悄归零,\n // 没有任何测试或类型会报警。`code` 省略时回落到 key 的首段:缺省 key 恒是\n // `${code}:${identity}`(见 sink.ts 的 DiagnosticInput),首段即 code。\n const code = d.code ?? d.key.split(\":\", 1)[0];\n if (code === \"interrupted\") {\n interrupted = true;\n }\n else if (code === \"budget-exhausted\") {\n unstarted += d.count;\n }\n else if (code === \"fail-fast\") {\n // run 级 fail-fast 造成的未派发同样计入 unstarted(结论落 incomplete,见\n // docs/feature/experiments/architecture.md「Completion 与退出」)。\n unstarted += d.count;\n failFastSkipped += d.count;\n }\n else if (code === \"dispatch-halted\") {\n // 止损闸停派发造成的未派发(见 docs/feature/error-classification/architecture.md\n // 「记账」)。这条诊断的 count 是「同一死因被声明了几次」(重复声明折叠),不是未派发数——\n // 未派发数由 emitter 累计后写在 data.unstarted 里(与 budget-exhausted 同一口径)。\n const halted = typeof d.data?.unstarted === \"number\" ? d.data.unstarted : 0;\n unstarted += halted;\n haltedSkipped += halted;\n }\n else if (code === \"reporter-error\") {\n // required 决定这条错误是否写进 InvocationCompletion.reporterErrors 并让 completion 非 complete\n // (见 docs/cli.md「required reporter」);best-effort reporter 的失败只保留为 diagnostic。\n if (d.data?.required !== true)\n continue;\n reporterErrors.push({\n reporter: typeof d.data?.reporter === \"string\" ? d.data.reporter : d.key.slice(\"reporter-error:\".length),\n required: true,\n message: d.message,\n });\n }\n }\n // 中断造成的未派发(仍在 queued 的 attempt)同样计入 unstarted(见 docs/feature/experiments/\n // architecture.md「Completion 与退出」:budget 耗尽、fail-fast 或中断造成的未派发都不伪装成全绿)。\n if (interrupted)\n unstarted += state.queued;\n // attempt:early-exit 计数含 fail-fast 与止损闸的未派发(反馈层同一事件驱动计数守恒);\n // 「省下的重复验证」= 总数减去那两部分。\n const earlyExitUnstarted = Math.max(0, state.earlyExitSkipped - failFastSkipped - haltedSkipped);\n const status: CompletionStatus = interrupted\n ? \"interrupted\"\n : unstarted > 0 || reporterErrors.length > 0\n ? \"incomplete\"\n : \"complete\";\n return { status, unstarted, earlyExitUnstarted, reporterErrors };\n}\n/** package.json 的 version 字段;-v/--version 直接回显这个号。 */\nfunction packageVersion(): Effect.Effect<string, CliFailure> {\n return cliPromise(\"read package version\", () => readFile(new URL(\"../package.json\", __niceevalImportMetaUrl), \"utf-8\")).pipe(Effect.flatMap((raw) => Effect.try({\n try: () => (JSON.parse(raw) as {\n version: string;\n }).version,\n catch: (cause) => cliFailure(\"decode package version\", cause),\n })));\n}\nfunction writeStdout(text: string): Effect.Effect<void> {\n return Effect.sync(() => {\n process.stdout.write(text);\n });\n}\nfunction writeStderr(text: string): Effect.Effect<void> {\n return Effect.sync(() => {\n process.stderr.write(text);\n });\n}\n/** Idempotent application-level sweep for resources owned by this invocation. */\nfunction releaseCliResources(): Effect.Effect<void> {\n return Effect.all([\n cliPromise(\"stop remaining sandboxes\", () => stopAllSandboxes()).pipe(Effect.ignore),\n drainExperimentTeardowns().pipe(Effect.ignore),\n drainHeldCaseLocksEffect().pipe(Effect.ignore),\n drainHeldGateLeasesEffect().pipe(Effect.ignore),\n ], { concurrency: \"unbounded\" }).pipe(Effect.asVoid);\n}\nfunction errorMessage(cause: unknown): string {\n return cause instanceof Error ? cause.message : String(cause);\n}\nfunction runDockerCommand(positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n const { runDockerProfileCommand } = (yield* cliPromise(\"load Docker profile command\", () => __niceevalDynamicImport(\"./sandbox/docker-profile/cli.cjs\"))) as {\n runDockerProfileCommand(positionals: readonly string[], options: {\n readonly json: boolean;\n readonly smoke: boolean;\n }): Promise<number>;\n };\n return yield* cliPromise(\"run Docker profile command\", () => runDockerProfileCommand(positionals, { json: flags.json, smoke: flags.smoke }));\n });\n}\nfunction runSandboxCliCommand(cwd: string, positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return cliEffect(\"run sandbox command\", runSandboxCommandEffect(cwd, [...positionals], {\n all: flags.all,\n window: flags.window,\n path: flags.sandboxPath,\n leaveRunning: flags.leaveRunning,\n run: flags.record,\n orphans: flags.orphans,\n force: flags.force,\n }));\n}\nfunction runSessionCommand(cwd: string, positionals: readonly string[], flags: Flags): Effect.Effect<number, never> {\n return Effect.gen(function* () {\n const niceevalRoot = resolvePath(cwd, \".niceeval\");\n const subcommand = positionals[0] ?? \"list\";\n if (subcommand === \"list\") {\n if (positionals.length > 2) {\n yield* writeStderr(\"niceeval session list accepts at most one experiment prefix.\\n\");\n return 1;\n }\n const outcome = yield* Effect.either(cliEffect(\"list sessions\", listSessions(niceevalRoot, {\n all: flags.all,\n ...(positionals[1] === undefined ? {} : { selector: positionals[1] }),\n })));\n if (Either.isLeft(outcome)) {\n yield* writeStderr(`${errorMessage(outcome.left.cause)}\\n`);\n return 1;\n }\n yield* writeStdout(flags.json\n ? `${JSON.stringify(outcome.right)}\\n`\n : renderSessionListText(outcome.right, Date.now(), flags.all));\n return 0;\n }\n if (subcommand === \"show\") {\n if (positionals.length !== 2 || flags.all) {\n yield* writeStderr(\"Usage: niceeval session show <sessionId> [--json]\\n\");\n return 1;\n }\n const outcome = yield* Effect.either(cliEffect(\"show session\", showSession(niceevalRoot, positionals[1]!)));\n if (Either.isLeft(outcome)) {\n yield* writeStderr(`${errorMessage(outcome.left.cause)}\\n`);\n return 1;\n }\n yield* writeStdout(flags.json\n ? `${JSON.stringify(outcome.right)}\\n`\n : renderSessionShowText(outcome.right));\n return 0;\n }\n yield* writeStderr(\"Usage: niceeval session list [--all] [<experiment-prefix>] [--json]\\n\" +\n \" niceeval session show <sessionId> [--json]\\n\");\n return 1;\n });\n}\nfunction runRecordMaintenanceCommand(cwd: string, command: \"clean\" | \"migrate\", positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n if (positionals.length > 0) {\n yield* writeStderr(`niceeval ${command} does not accept positional arguments.\\n`);\n return 1;\n }\n const unsupported = firstRecordMaintenanceUnsupportedFlag(flags);\n if (unsupported !== undefined) {\n yield* writeStderr(`niceeval ${command} does not accept ${unsupported}.\\n`);\n return 1;\n }\n const result = yield* cliEffect(\"run Record maintenance\", runRecordCliCommand({\n command,\n cwd,\n ...(flags.record === undefined ? {} : { record: flags.record }),\n yes: flags.yes,\n }));\n if (result.stdout !== \"\")\n yield* writeStdout(result.stdout);\n if (result.stderr !== \"\")\n yield* writeStderr(result.stderr);\n return result.exitCode;\n });\n}\nfunction agentRunFromExperiment(experiment: DiscoveredExperiment, selectedEvalIds: readonly string[], overrides: Pick<Flags, \"attempts\" | \"earlyExit\" | \"timeout\" | \"budget\"> = {}): AgentRun {\n return {\n agent: experiment.agent,\n model: experiment.model,\n reasoningEffort: experiment.reasoningEffort,\n flags: experiment.flags ?? {},\n plugins: experiment.plugins,\n attempts: overrides.attempts ?? experiment.attempts ?? 1,\n earlyExit: overrides.earlyExit ?? experiment.earlyExit ?? false,\n sandbox: experiment.sandbox,\n sandboxReuse: experiment.sandboxReuse,\n judge: experiment.judge,\n ...resolveRunTimeout(overrides.timeout, experiment.timeoutMs),\n budget: overrides.budget ?? experiment.budget,\n selectedEvalIds,\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n description: experiment.description,\n labels: experiment.labels,\n maxConcurrency: experiment.maxConcurrency,\n setup: experiment.setup,\n teardown: experiment.teardown,\n classifyFailure: experiment.classifyFailure,\n };\n}\nfunction renderDebugPlanJson(input: ExperimentHostDebugPlan): string {\n return `${JSON.stringify({\n format: \"niceeval.debug-plan/v1\",\n schemaVersion: 1,\n experimentId: input.experimentId,\n evalId: input.evalId,\n commandPlan: input.commandPlan,\n })}\\n`;\n}\nfunction runDebugCommand(cwd: string, positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n if (positionals.length !== 2) {\n yield* writeStderr(t(\"cli.debug.usage\"));\n return 1;\n }\n const [experimentSelector, evalSelector] = positionals as readonly [\n string,\n string\n ];\n const result = yield* cliEffect(\"debug Experiment lifecycle\", experimentHost.debug({\n cwd,\n experimentSelector,\n evalSelector,\n }));\n switch (result.status) {\n case \"experiment-no-match\":\n yield* writeStderr(t(\"cli.debug.experimentNoMatch\", {\n selector: result.selector,\n candidates: result.candidates.join(\", \") || t(\"cli.none\"),\n }));\n return 1;\n case \"experiment-ambiguous\":\n yield* writeStderr(t(\"cli.debug.experimentAmbiguous\", {\n selector: result.selector,\n candidates: result.candidates.join(\", \"),\n }));\n return 1;\n case \"eval-no-match\":\n yield* writeStderr(t(\"cli.debug.evalNoMatch\", {\n selector: result.selector,\n experimentId: result.experimentId,\n candidates: result.candidates.join(\", \") || t(\"cli.none\"),\n }));\n return 1;\n case \"eval-ambiguous\":\n yield* writeStderr(t(\"cli.debug.evalAmbiguous\", {\n selector: result.selector,\n experimentId: result.experimentId,\n candidates: result.candidates.join(\", \"),\n }));\n return 1;\n case \"planned\":\n yield* writeStdout(flags.json\n ? renderDebugPlanJson(result)\n : renderHumanCommandPlan(result.commandPlan, {\n isTTY: process.stdout.isTTY,\n noColor: process.env.NO_COLOR,\n width: process.stdout.columns,\n }));\n return 0;\n }\n });\n}\nfunction runEvaluationCommand(cwd: string, command: CliCommand, positionals: readonly string[], flags: Flags, interruption?: CliInterruptionOwnership) {\n return Effect.gen(function* () {\n // Keep project-local coordination (sessions, locks, kept sandboxes) separate\n // from the portable Record root selected by `--record` below.\n const coordinationRoot = resolvePath(cwd, \".niceeval\");\n const config = yield* loadConfig(cwd);\n const maxBuildConcurrency = flags.maxBuildConcurrency ?? config.maxBuildConcurrency ?? 2;\n if (!Number.isInteger(maxBuildConcurrency) || maxBuildConcurrency <= 0) {\n yield* writeStderr(`maxBuildConcurrency must be a positive integer, got ${maxBuildConcurrency}.\\n`);\n return 1;\n }\n let evals: readonly DiscoveredEval[] = Object.freeze([]);\n if (command === \"list\") {\n const listed = yield* cliEffect(\"list evals\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n }));\n evals = listed.evals;\n yield* writeStdout(t(\"cli.list.header\", { count: evals.length }));\n for (const evalDefinition of evals) {\n yield* writeStdout(` ${evalDefinition.id}${evalDefinition.description ? ` — ${evalDefinition.description}` : \"\"}\\n`);\n }\n return 0;\n }\n const agentRuns: AgentRun[] = [];\n let experimentSelection = t(\"cli.all\");\n let availableExperimentPaths = t(\"cli.none\");\n if (command === \"exp\" || command === \"check\") {\n if (flags.agent || flags.model) {\n yield* writeStderr(t(\"cli.exp.agentModelFlagUnsupported\"));\n return 1;\n }\n if (flags.force) {\n yield* writeStderr(t(\"cli.exp.forceUnsupported\"));\n return 1;\n }\n // `--record` selects the fact root for `exp`; `check` has no Record\n // reader or writer, so accepting it there would silently discard input.\n if (command === \"check\" && flags.record !== undefined) {\n yield* writeStderr(t(\"cli.check.recordUnsupported\"));\n return 1;\n }\n const viewerFlag = firstViewerOnlyFlag(flags);\n if (viewerFlag) {\n yield* writeStderr(t(\"cli.exp.viewerFlagUnsupported\", { flag: viewerFlag.flag, command: viewerFlag.command }));\n return 1;\n }\n if (command === \"exp\" && positionals[0] === \"list\") {\n if (positionals.length > 2) {\n yield* writeStderr(\"niceeval exp list accepts at most one experiment prefix.\\n\");\n return 1;\n }\n const selector = positionals[1];\n const listed = yield* cliEffect(\"list experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n ...(selector === undefined ? {} : { selector }),\n }));\n if (listed.selections.length === 0 && selector !== undefined) {\n yield* writeStderr(t(\"cli.experiment.noMatch\", {\n arg: selector,\n experiments: browsableExperimentPaths(listed.experimentIds).join(\", \") || t(\"cli.none\"),\n }));\n return 1;\n }\n const rows = listed.selections.map(({ experiment, selectedEvalIds }) => {\n return {\n experimentId: experiment.id,\n ...(experiment.description !== undefined ? { description: experiment.description } : {}),\n agent: experiment.agent.name,\n ...(experiment.model !== undefined ? { model: experiment.model } : {}),\n attempts: experiment.attempts,\n evalCount: selectedEvalIds.length,\n labels: { ...experiment.labels },\n selectedEvalIds,\n };\n });\n if (flags.json) {\n yield* writeStdout(`${JSON.stringify({ format: \"niceeval.experiments\", schemaVersion: 1, experiments: rows })}\\n`);\n }\n else {\n for (const row of rows) {\n yield* writeStdout([\n row.experimentId,\n row.description ?? \"—\",\n row.agent,\n row.model ?? \"—\",\n `attempts=${row.attempts}`,\n `evals=${row.evalCount}`,\n `labels=${JSON.stringify(row.labels)}`,\n ].join(\"\\t\") + \"\\n\");\n }\n }\n return 0;\n }\n const expArg = positionals[0];\n const extraPatterns = positionals.slice(1);\n experimentSelection = positionals.join(\" \") || t(\"cli.all\");\n const listed = yield* cliEffect(\"select experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n ...(expArg === undefined ? {} : { selector: expArg }),\n ...(extraPatterns.length === 0 ? {} : { evalPatterns: extraPatterns }),\n }));\n evals = listed.evals;\n const selected = listed.selections;\n availableExperimentPaths = browsableExperimentPaths(listed.experimentIds).join(\", \") || t(\"cli.none\");\n if (selected.length === 0) {\n yield* writeStderr(t(\"cli.experiment.noMatch\", {\n arg: expArg ?? t(\"cli.all\"),\n experiments: availableExperimentPaths,\n }));\n if (expArg === \"show\" || expArg === \"view\") {\n yield* writeStderr(t(\"cli.experiment.viewerCommandHint\", {\n command: expArg,\n args: extraPatterns.length > 0 ? ` ${extraPatterns.join(\" \")}` : \"\",\n }));\n }\n return 1;\n }\n const reminder = yield* keptSandboxReminderEffect(cwd).pipe(Effect.catchAll(() => Effect.succeed(undefined)));\n if (reminder)\n yield* writeStderr(reminder);\n const orphans = yield* orphanReminderEffect(cwd).pipe(Effect.catchAll(() => Effect.succeed(undefined)));\n if (orphans)\n yield* writeStderr(orphans);\n const teardownReminder = yield* orphanedTeardownReminderEffect(coordinationRoot, new Set(selected\n .filter(({ experiment }) => experiment.teardown)\n .map(({ experiment }) => experiment.id)), hostname()).pipe(Effect.catchAll(() => Effect.succeed(undefined)));\n if (teardownReminder)\n yield* writeStderr(teardownReminder);\n if (flags.teardown) {\n if (extraPatterns.length > 0) {\n yield* writeStderr(t(\"cli.exp.teardownNoEvalPatterns\"));\n return 1;\n }\n const niceevalRootForTeardown = coordinationRoot;\n let anyFailed = false;\n for (const { experiment, selectedEvalIds } of selected) {\n if (!experiment.teardown)\n continue;\n const ctx: ExperimentHookContext = {\n experimentId: experiment.id,\n selectedEvalIds,\n signal: new AbortController().signal,\n progress: () => { },\n diagnostic: (input) => process.stderr.write(`${input.message}\\n`),\n };\n const registrations = yield* readTeardownRegistrationsEffect(niceevalRootForTeardown).pipe(Effect.catchAll(() => Effect.succeed([] as const)));\n const matching = registrations.filter(({ entry }) => entry.experimentId === experiment.id);\n const claimed = yield* Effect.all(matching\n .filter(({ entry }) => isOrphanedTeardownRegistration(entry, hostname()))\n .map(({ id }) => removeTeardownRegistrationIfPresentEffect(niceevalRootForTeardown, id).pipe(Effect.catchAll(() => Effect.succeed(false)), Effect.map((claimed) => claimed ? id : undefined))), { concurrency: \"unbounded\" });\n const executions = matching.length === 0 ? [undefined] : claimed.filter((id): id is string => id !== undefined);\n for (const _ of executions) {\n const outcome = yield* Effect.either(cliEffect(\"run experiment teardown\", cleanupCallback(() => experiment.teardown!(ctx))));\n if (Either.isRight(outcome)) {\n yield* writeStderr(t(\"cli.exp.teardownDone\", { experimentId: experiment.id }));\n }\n else {\n anyFailed = true;\n const error = outcome.left.cause;\n yield* writeStderr(t(\"cli.exp.teardownFailed\", {\n experimentId: experiment.id,\n message: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n }\n return anyFailed ? 1 : 0;\n }\n const experimentScopeIds = new Set<string>();\n for (const { experiment, selectedEvalIds, selectorEvalIds } of selected) {\n for (const evalId of selectorEvalIds)\n experimentScopeIds.add(evalId);\n agentRuns.push(agentRunFromExperiment(experiment, selectedEvalIds, flags));\n }\n for (const pattern of extraPatterns) {\n const matches = evalPrefixPredicate([pattern]);\n if ([...experimentScopeIds].some((id) => matches(id)))\n continue;\n yield* writeStderr(t(\"cli.experiment.noEvalPrefixMatch\", {\n pattern,\n selection: expArg ?? t(\"cli.all\"),\n }));\n return 1;\n }\n }\n else {\n const listed = yield* cliEffect(\"list experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n }));\n const selectedByPattern = yield* Effect.all(positionals.map((selector) => cliEffect(\"select experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n selector,\n }))));\n const asExp = [...new Map(selectedByPattern\n .flatMap((selection) => selection.selections)\n .map(({ experiment }) => [experiment.id, experiment] as const)).values()];\n yield* writeStderr(t(\"cli.run.experimentRequired\"));\n if (asExp.length > 0) {\n yield* writeStderr(t(\"cli.run.experimentRequiredHint\", {\n pattern: positionals[0] ?? \"\",\n kind: asExp.length > 1 ? t(\"cli.experimentGroup\") : \"\",\n }));\n }\n else {\n yield* writeStderr(t(\"cli.run.experimentRequiredKnown\", {\n experiments: listed.experimentIds.join(\", \") || t(\"cli.none\"),\n }));\n }\n return 1;\n }\n const outputForm = resolveOutputForm({ json: flags.json, isTTY: process.stderr.isTTY === true });\n const matchedByRun = agentRuns.map((run) => selectedEvalsForRun(evals, run));\n const totalAttempts = agentRuns.reduce((sum, run, index) => sum + matchedByRun[index]!.length * run.attempts, 0);\n const uniqueEvalIds = new Set(matchedByRun.flat().map((evalDefinition) => evalDefinition.id));\n if (totalAttempts === 0) {\n yield* writeStderr(t(\"cli.experiment.noEvalsSelected\", {\n selection: experimentSelection,\n experiments: availableExperimentPaths,\n }));\n return 1;\n }\n if (command === \"check\") {\n yield* cliEffect(\"link run sandboxes\", linkRunSandboxes(evals, agentRuns));\n const pairCount = matchedByRun.reduce((sum, selected) => sum + selected.length, 0);\n yield* writeStdout(`Sandbox layers linked: ${pairCount} pair${pairCount === 1 ? \"\" : \"s\"}.\\n`);\n return 0;\n }\n const recordTarget = yield* Effect.try({\n try: () => parseActualRecordRoot(cwd, flags.record),\n catch: (cause) => cliFailure(\"parse experiment Record root\", cause),\n });\n const experimentPlan = yield* cliEffect(\"plan Experiment\", experimentHost.plan({\n evals,\n agentRuns,\n config,\n recordRoot: recordTarget.root,\n ...(flags.rerun === undefined ? {} : { rerun: flags.rerun }),\n ...(flags.keepSandbox === undefined ? {} : { keepSandbox: flags.keepSandbox }),\n ...(flags.dry ? { previewStartedAt: Date.now() } : {}),\n }));\n const targetPlan = experimentPlan.target;\n if (flags.dry) {\n const current = experimentPlan.current;\n if (current === undefined) {\n return yield* Effect.fail(cliFailure(\"preview Experiment\", new Error(\"Experiment Host did not return the requested dry plan.\")));\n }\n const currentPlan = projectCurrentDryPlan(current);\n const rows = currentDryPlanRows(currentPlan);\n const now = Date.now();\n const lockedFlags = yield* Effect.all(rows.map((row) => readCaseLockEffect(coordinationRoot, row.experimentId, row.evalId).pipe(Effect.catchAll(() => Effect.succeed(undefined)), Effect.map((lock) => lock !== undefined && !isCaseLockExpired(lock, now)))), { concurrency: \"unbounded\" });\n const evalGroupsByEvalId = new Map(evals.flatMap((evalDef) => evalDef.evalGroup === undefined ? [] : [[evalDef.id, {\n ...evalDef.evalGroup,\n index: evalDef.evalGroup.evalIds.indexOf(evalDef.id),\n }] as const]));\n const rowsWithLocks = Object.freeze(rows.map((row, index) => {\n const evalGroup = evalGroupsByEvalId.get(row.evalId);\n return Object.freeze({\n ...row,\n ...(evalGroup === undefined ? {} : {\n evalGroupId: evalGroup.id,\n evalGroupIndex: evalGroup.index,\n }),\n ...(lockedFlags[index] ? { locked: true } : {}),\n });\n }));\n const occurrenceAudits = new Map<string, JsonValue>();\n for (const pair of targetPlan.preparedPairsByKey.values()) {\n for (const occurrence of pair.plugin.occurrences) {\n occurrenceAudits.set(JSON.stringify(occurrence.audit), occurrence.audit);\n }\n }\n const pluginAudit: CurrentDryPluginAudit = Object.freeze({\n occurrences: Object.freeze([...occurrenceAudits.values()]),\n });\n const input = {\n totalAttempts,\n evals: uniqueEvalIds.size,\n configs: agentRuns.length,\n attempts: Math.max(1, ...agentRuns.map((run) => run.attempts)),\n rows: rowsWithLocks,\n pluginAudit,\n };\n if (outputForm === \"json\") {\n yield* writeStdout(renderCurrentDryPlanJson(input));\n }\n else {\n yield* writeStdout(renderCurrentDryPlan(input));\n }\n return 0;\n }\n const maxConcurrency = flags.maxConcurrency ?? config.maxConcurrency ?? recommendedConcurrencyForPreparedPairs([...targetPlan.preparedPairsByKey.values()]);\n const experimentConcurrency: globalThis.Record<string, number> = {};\n for (const run of agentRuns) {\n if (run.experimentId !== undefined && run.maxConcurrency !== undefined)\n experimentConcurrency[run.experimentId] = run.maxConcurrency;\n }\n const plan = {\n shape: { evals: uniqueEvalIds.size, configs: agentRuns.length, totalAttempts, maxConcurrency },\n ...(Object.keys(experimentConcurrency).length === 0 ? {} : { experimentConcurrency }),\n };\n const io = createNodeFeedbackIO();\n const commandLabel = [\"niceeval\", command, ...positionals].join(\" \").trim();\n const renderer = outputForm === \"human\"\n ? createHumanRenderer({ io, command: commandLabel })\n : createJsonRenderer({ io });\n const sessionTracker = new SessionTracker(coordinationRoot);\n const coordinator = createFeedbackCoordinator({\n profile: outputForm,\n renderer,\n io,\n onEvent: (event, state) => sessionTracker.onFeedback(event, state),\n });\n let resourcesReleased = false;\n const releaseResources = Effect.suspend(() => {\n if (resourcesReleased)\n return Effect.void;\n resourcesReleased = true;\n return releaseCliResources();\n });\n let sessionClosed = false;\n const closeSession = (input: Parameters<SessionTracker[\"close\"]>[0]) => sessionTracker.close(input).pipe(Effect.tap(() => Effect.sync(() => { sessionClosed = true; })));\n yield* Effect.addFinalizer(() => releaseResources);\n yield* Effect.addFinalizer(() => sessionClosed\n ? Effect.void\n : closeSession({ status: \"incomplete\" }).pipe(Effect.ignore));\n yield* Effect.addFinalizer(() => cliPromise(\"stop dynamic feedback\", () => coordinator.stopDynamic()).pipe(Effect.ignore));\n yield* Effect.acquireRelease(Effect.sync(() => createInputGuard({\n stdin: createNodeInputGuardStdin(),\n stderrIsTTY: io.stderr.isTTY,\n coordinator,\n onInterrupt: () => process.emit(\"SIGINT\"),\n })), (inputGuard) => Effect.sync(() => inputGuard.stop()));\n let invocationSummary: InvocationSummary | undefined;\n const reporters: ReporterRegistration[] = [];\n if (flags.junit)\n reporters.push({ reporter: JUnit(flags.junit), name: \"junit\", required: true, target: flags.junit });\n (config.reporters ?? []).forEach((reporter, index) => {\n reporters.push({ reporter, name: `config-reporter-${index}`, required: false });\n });\n reporters.push({\n name: \"cli-summary\",\n required: false,\n reporter: {\n onInvocationComplete(summary) {\n invocationSummary = summary;\n },\n },\n });\n // This synchronous hand-off and the following Experiment Host yield have no\n // asynchronous gap. A first signal therefore either interrupts the root\n // before dispatch begins, or aborts this Invocation so it can close its\n // durable interrupted receipt before the CLI returns.\n const ownsGracefulDispatch = yield* Effect.sync(() => interruption?.enterGracefulDispatch() ?? true);\n if (!ownsGracefulDispatch)\n yield* Effect.interrupt;\n // Runner remains Effect-native. During graceful dispatch the application\n // edge translates SIGINT into this Invocation signal, letting dispatch\n // settle and the receipt close before the process exits with 130.\n const receipt = yield* cliEffect(\"run Experiment\", experimentHost.run<never, never>({\n config,\n evals,\n agentRuns,\n reporters,\n maxConcurrency,\n maxBuildConcurrency,\n keepSandbox: flags.keepSandbox,\n rerun: flags.rerun,\n coordinationRoot,\n recordRoot: recordTarget.root,\n session: sessionTracker,\n onCurrentRecordReusePlan: (current) => Effect.sync(() => coordinator.start({\n ...plan,\n reused: current.reused,\n ...(current.reusedFailures.length === 0 ? {} : { reusedFailures: current.reusedFailures }),\n })),\n ...(interruption === undefined ? {} : { signal: interruption.invocationSignal }),\n }));\n yield* releaseResources;\n const summary = invocationSummary;\n if (summary === undefined) {\n return yield* Effect.fail(cliFailure(\"collect invocation summary\", new Error(\"Runner completed without an invocation summary.\")));\n }\n const completion = assembleInvocationCompletion(coordinator.state);\n yield* closeSession({ status: completion.status, completion, receipt, completedAt: receipt.completedAt });\n yield* cliPromise(\"finish feedback\", () => coordinator.finish({ summary, completion, receipt }));\n const foldedStats = foldInvocationEvalStats(summary);\n return computeExitCode({ ...summary, failed: foldedStats.failed, errored: foldedStats.errored }, completion);\n });\n}\ntype ReportCliCommand = \"show\" | \"view\";\ntype ReportSelection = {\n readonly kind: \"fixed\";\n readonly report: ReportDefinition;\n} | {\n readonly kind: \"config\";\n} | {\n readonly kind: \"built-in\";\n readonly name: \"overview\";\n} | {\n readonly kind: \"module\";\n readonly path: string;\n};\ntype ThemeSelection = {\n readonly kind: \"config\";\n} | {\n readonly kind: \"built-in\";\n readonly name: \"basalt\" | \"chalk\";\n} | {\n readonly kind: \"module\";\n readonly path: string;\n};\ninterface ReportCliRequest {\n readonly command: ReportCliCommand;\n readonly cwd: string;\n readonly root: RecordRoot;\n readonly rootPath: string;\n readonly target: {\n readonly kind: \"selection\";\n readonly selection: AnalysisSelectionRequest;\n } | {\n readonly kind: \"project-current\";\n readonly experimentIds?: readonly ExperimentId[];\n } | {\n readonly kind: \"attempt\";\n readonly locator: AttemptLocator;\n };\n readonly reportSelection: ReportSelection;\n readonly themeSelection: ThemeSelection;\n readonly page?: string;\n}\n/** Resolve the CLI's one portable Record target without treating `.niceeval` as Record data. */\nfunction parseActualRecordRoot(cwd: string, rootText: string | undefined): {\n readonly root: RecordRoot;\n readonly rootPath: string;\n} {\n if (rootText !== undefined && rootText.trim() === \"\") {\n throw usageError(\"--record requires an actual Record root directory.\\n\");\n }\n const rootPath = resolvePath(cwd, rootText ?? \".niceeval/record\");\n const root = makeRecordRoot(rootPath);\n if (Either.isLeft(root)) {\n throw usageError(`Invalid --record root: ${root.left.code}.\\n`);\n }\n return Object.freeze({ root: root.right, rootPath });\n}\n/**\n * The CLI validates selection identity before Record I/O. It never turns a\n * prefix, a path, or a directory entry into a Run / Experiment selection.\n */\nfunction parseReportCliRequest(input: {\n readonly command: ReportCliCommand;\n readonly cwd: string;\n readonly positionals: readonly string[];\n readonly flags: Flags;\n}): ReportCliRequest {\n const unsupported = reportUnsupportedFlag(input.command, input.flags);\n if (unsupported !== undefined) {\n throw usageError(`niceeval ${input.command} does not accept ${unsupported}.\\n`);\n }\n const runs = input.flags.run ?? [];\n const { root, rootPath } = parseActualRecordRoot(input.cwd, input.flags.record);\n const page = parseReportRoute(input.flags.page);\n const evidenceReports = [\n input.flags.source !== undefined ? \"--source\" : undefined,\n input.flags.execution ? \"--execution\" : undefined,\n input.flags.timing !== undefined ? \"--timing\" : undefined,\n ].filter((flag): flag is string => flag !== undefined);\n if (evidenceReports.length > 1) {\n throw usageError(`niceeval show chooses one evidence Report at a time; remove all but one of ${evidenceReports.join(\", \")}.\\n`);\n }\n if (!input.flags.execution && input.flags.grep !== undefined) {\n throw usageError(\"niceeval show --grep only combines with --execution.\\n\");\n }\n if (input.flags.execution) {\n const report = executionEvidenceReport(executionEvidenceOptions(input.flags));\n if (input.positionals.length !== 1) {\n throw usageError(\"niceeval show --execution requires exactly one current Record Attempt locator.\\n\");\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(\"niceeval show --execution uses its Attempt locator as the only selection; remove --run and --experiment.\\n\");\n }\n if (input.flags.report !== undefined) {\n throw usageError(\"niceeval show --execution selects its built-in execution Report; remove --report.\\n\");\n }\n const locator = input.positionals[0];\n if (locator === undefined) {\n throw usageError(\"niceeval show --execution requires one current Record Attempt locator.\\n\");\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: Object.freeze({ kind: \"fixed\" as const, report }),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (input.flags.timing !== undefined) {\n if (input.positionals.length !== 1) {\n throw usageError(\"niceeval show --timing requires exactly one current Record Attempt locator.\\n\");\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(\"niceeval show --timing uses its Attempt locator as the only selection; remove --run and --experiment.\\n\");\n }\n if (input.flags.report !== undefined) {\n throw usageError(\"niceeval show --timing selects its built-in timing Report; remove --report.\\n\");\n }\n const locator = input.positionals[0];\n if (locator === undefined) {\n throw usageError(\"niceeval show --timing requires one current Record Attempt locator.\\n\");\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: Object.freeze({\n kind: \"fixed\" as const,\n report: timingEvidenceReport({ mode: input.flags.timing }),\n }),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (input.flags.source !== undefined) {\n if (input.positionals.length !== 1) {\n throw usageError(\"niceeval show --source requires exactly one current Record Attempt locator.\\n\");\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(\"niceeval show --source uses its Attempt locator as the only selection; remove --run and --experiment.\\n\");\n }\n if (input.flags.report !== undefined) {\n throw usageError(\"niceeval show --source selects its built-in source Report; remove --report.\\n\");\n }\n const locator = input.positionals[0];\n if (locator === undefined) {\n throw usageError(\"niceeval show --source requires one current Record Attempt locator.\\n\");\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n const report = sourceEvidenceReport({\n ...(typeof input.flags.source === \"string\" ? { file: input.flags.source } : {}),\n });\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: Object.freeze({ kind: \"fixed\" as const, report }),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (input.positionals.length > 0) {\n if (input.positionals.length !== 1) {\n throw usageError(`niceeval ${input.command} accepts one exact Attempt locator, the default current-project selection, or --run.\\n`);\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(`niceeval ${input.command} uses its Attempt locator as the only selection; remove --run and --experiment.\\n`);\n }\n const locator = input.positionals[0];\n if (locator === undefined || !locator.startsWith(\"@\")) {\n throw usageError(`niceeval ${input.command} selects Record data only with a canonical @1<12-character-body> locator, --run, or no selector for current-project results.\\n`);\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: input.flags.report === undefined\n ? Object.freeze({ kind: \"fixed\" as const, report: defaultAttemptOverviewReport })\n : reportSelection(input.cwd, input.flags.report),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (runs.length > 0 && input.flags.experiment !== undefined) {\n throw usageError(\"--experiment narrows the default current-project selection; it cannot combine with explicit --run.\\n\");\n }\n const report = runs.length > 0 && input.flags.report === undefined\n ? Object.freeze({ kind: \"fixed\" as const, report: defaultRunMembershipOverviewReport })\n : reportSelection(input.cwd, input.flags.report);\n const theme = themeSelection(input.cwd, input.flags.theme);\n const target = runs.length > 0\n ? Object.freeze({ kind: \"selection\" as const, selection: explicitSelection(runs) })\n : Object.freeze({\n kind: \"project-current\" as const,\n ...(input.flags.experiment === undefined\n ? {}\n : { experimentIds: uniqueExactExperimentIds(input.flags.experiment) }),\n });\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target,\n reportSelection: report,\n themeSelection: theme,\n ...(page === undefined ? {} : { page }),\n });\n}\nfunction executionEvidenceOptions(flags: Flags): {\n readonly grep?: string;\n} {\n if (flags.grep === undefined)\n return Object.freeze({});\n try {\n new RegExp(flags.grep);\n return Object.freeze({ grep: flags.grep });\n }\n catch {\n throw usageError(`--grep \"${flags.grep}\" is not a valid JavaScript regular expression.\\n`);\n }\n}\nfunction reportUnsupportedFlag(command: ReportCliCommand, flags: Flags): string | undefined {\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--json\", command === \"view\" && flags.json],\n [\"--smoke\", flags.smoke],\n [\"--dry\", flags.dry],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", command === \"show\" ? flags.open : undefined],\n [\"--out\", command === \"show\" ? flags.out : undefined],\n [\"--port\", command === \"show\" ? flags.port : undefined],\n [\"--host\", command === \"show\" ? flags.host : undefined],\n [\"--source\", command === \"show\" ? undefined : flags.source],\n [\"--execution\", command === \"show\" ? undefined : flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", command === \"show\" ? undefined : flags.grep],\n [\"--timing\", command === \"show\" ? undefined : flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n [\"--yes\", flags.yes],\n ];\n const found = unsupported.find(([, value]) => value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0));\n return found?.[0];\n}\nfunction parseReportRoute(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n const issue = validateReportRoute(value);\n if (issue !== undefined) {\n throw usageError(`Invalid --page route \"${value}\": ${issue.reason}.\\n`);\n }\n return value;\n}\nfunction reportSelection(cwd: string, value: string | undefined): ReportSelection {\n if (value === undefined)\n return Object.freeze({ kind: \"config\" as const });\n if (value === \"overview\")\n return Object.freeze({ kind: \"built-in\" as const, name: \"overview\" as const });\n if (isTrustedModulePath(value)) {\n return Object.freeze({ kind: \"module\" as const, path: resolveTrustedModulePath(cwd, value) });\n }\n throw usageError(\"--report accepts built-in overview or an explicit trusted module path.\\n\");\n}\nfunction themeSelection(cwd: string, value: string | undefined): ThemeSelection {\n if (value === undefined)\n return Object.freeze({ kind: \"config\" as const });\n if (value === \"basalt\" || value === \"chalk\") {\n return Object.freeze({ kind: \"built-in\" as const, name: value });\n }\n if (isTrustedModulePath(value)) {\n return Object.freeze({ kind: \"module\" as const, path: resolveTrustedModulePath(cwd, value) });\n }\n throw usageError(\"--theme accepts built-in basalt/chalk or an explicit trusted module path.\\n\");\n}\nfunction isTrustedModulePath(value: string): boolean {\n return value.startsWith(\"./\") || value.startsWith(\"../\") || isAbsolute(value);\n}\nfunction explicitSelection(values: readonly string[]): AnalysisSelectionRequest {\n const runIds = uniqueExactRunIds(values);\n const [first, ...rest] = runIds;\n if (first === undefined) {\n throw usageError(\"niceeval show/view requires one or more --run <run-id> values.\\n\");\n }\n const nonEmptyRunIds: readonly [\n RunId,\n ...RunId[]\n ] = [first, ...rest];\n return Object.freeze({\n policy: \"explicit-runs\" as const,\n runIds: nonEmptyRunIds,\n });\n}\nfunction uniqueExactRunIds(values: readonly string[]): readonly RunId[] {\n const result: RunId[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const decoded = Schema.decodeUnknownEither(RunIdSchema)(value);\n if (Either.isLeft(decoded)) {\n throw usageError(`Invalid --run value \"${value}\": expected one exact portable RunId.\\n`);\n }\n if (!seen.has(decoded.right)) {\n seen.add(decoded.right);\n result.push(decoded.right);\n }\n }\n return Object.freeze(result);\n}\nfunction uniqueExactExperimentIds(values: readonly string[]): readonly ExperimentId[] {\n const result: ExperimentId[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const decoded = Schema.decodeUnknownEither(ExperimentIdSchema)(value);\n if (Either.isLeft(decoded)) {\n throw usageError(`Invalid --experiment value \"${value}\": expected one exact ExperimentId.\\n`);\n }\n if (!seen.has(decoded.right)) {\n seen.add(decoded.right);\n result.push(decoded.right);\n }\n }\n return Object.freeze(result);\n}\n/** Current Record locators use the strict scheme-1 short alias. */\nfunction parseCurrentAttemptLocator(value: string): AttemptLocator {\n const parsed = parseAttemptLocator(value);\n if (!parsed.valid) {\n throw usageError(`Invalid Attempt locator \"${value}\": expected @1 followed by 12 canonical uppercase Crockford characters.\\n`);\n }\n return parsed.locator;\n}\ninterface LoadedCliReportInputs {\n readonly report: ReportDefinition;\n readonly theme: ThemeDefinition;\n readonly projectCurrentSelection?: AnalysisSelectionRequest;\n /** Inputs whose bytes can change Page callbacks or component closure. */\n readonly reportWatchInputs: readonly string[];\n /** Every non-Record live input; Record identity is probed inside Report Host. */\n readonly sourceWatchInputs: readonly string[];\n /** Record, config, and every statically discovered author module input. */\n readonly watchInputs: readonly string[];\n}\n/**\n * Config is deliberately fresh-read for every view rebuild even when CLI flags\n * override its current Report or Theme. It is both a trusted boundary and a\n * live input: an invalid config must not leave a stale hidden module graph.\n */\nfunction loadCliReportInputs(request: ReportCliRequest): Effect.Effect<LoadedCliReportInputs, CliFailure> {\n return Effect.gen(function* () {\n const projectCurrent = request.target.kind === \"project-current\"\n ? yield* cliEffect(\"load current project target\", loadProjectCurrent(request.cwd, {\n ...(request.target.experimentIds === undefined\n ? {}\n : { experiments: request.target.experimentIds }),\n freshImport: true,\n }))\n : undefined;\n const configured = yield* cliEffect(\"load trusted Report config\", loadTrustedReportConfig(request.cwd));\n const selectedReport = yield* reportFromSelection(request.reportSelection, configured.report, configured.watchInputs);\n const selectedTheme = yield* themeFromSelection(request.themeSelection, configured.theme);\n const projectCurrentSelection = projectCurrent === undefined\n ? undefined\n : Object.freeze({\n policy: \"project-current\" as const,\n currentSlots: projectCurrent.currentSlots,\n ...(request.target.kind === \"project-current\" && request.target.experimentIds !== undefined\n ? { experimentIds: request.target.experimentIds }\n : {}),\n });\n const sourceWatchInputs = uniqueWatchInputs([\n ...(projectCurrent?.watchInputs ?? []),\n ...configured.watchInputs,\n ...selectedReport.watchInputs,\n ...selectedTheme.watchInputs,\n ]);\n return Object.freeze({\n report: selectedReport.value,\n theme: selectedTheme.value,\n reportWatchInputs: uniqueWatchInputs(selectedReport.watchInputs),\n sourceWatchInputs,\n ...(projectCurrentSelection === undefined ? {} : { projectCurrentSelection }),\n watchInputs: uniqueWatchInputs([\n request.rootPath,\n ...sourceWatchInputs,\n ]),\n });\n });\n}\nfunction reportFromSelection(selection: ReportSelection, configured: ReportDefinition | undefined, configuredWatchInputs: readonly string[]): Effect.Effect<{\n readonly value: ReportDefinition;\n readonly watchInputs: readonly string[];\n}, CliFailure> {\n switch (selection.kind) {\n case \"fixed\":\n return Effect.succeed(Object.freeze({ value: selection.report, watchInputs: Object.freeze([]) }));\n case \"config\":\n return Effect.succeed(Object.freeze({\n value: configured ?? defaultOverviewReport,\n watchInputs: configured === undefined ? Object.freeze([]) : configuredWatchInputs,\n }));\n case \"built-in\":\n return Effect.succeed(Object.freeze({ value: defaultOverviewReport, watchInputs: Object.freeze([]) }));\n case \"module\":\n return cliEffect(\"load trusted Report module\", loadTrustedReportModule(selection.path)).pipe(Effect.map((loaded) => Object.freeze({ value: loaded.report, watchInputs: loaded.watchInputs })));\n }\n}\nfunction themeFromSelection(selection: ThemeSelection, configured: ThemeDefinition | undefined): Effect.Effect<{\n readonly value: ThemeDefinition;\n readonly watchInputs: readonly string[];\n}, CliFailure> {\n switch (selection.kind) {\n case \"config\":\n return Effect.succeed(Object.freeze({ value: configured ?? basalt, watchInputs: Object.freeze([]) }));\n case \"built-in\":\n return Effect.succeed(Object.freeze({\n value: selection.name === \"chalk\" ? chalk : basalt,\n watchInputs: Object.freeze([]),\n }));\n case \"module\":\n return cliEffect(\"load trusted Theme module\", loadTrustedThemeModule(selection.path)).pipe(Effect.map((loaded) => Object.freeze({ value: loaded.theme, watchInputs: loaded.watchInputs })));\n }\n}\nfunction uniqueWatchInputs(paths: readonly string[]): readonly string[] {\n return Object.freeze([...new Set(paths.map((path) => resolvePath(path)))].sort());\n}\nfunction buildCliReportSite(request: ReportCliRequest, inputs: LoadedCliReportInputs) {\n const revision = request.target.kind === \"attempt\"\n ? buildReportSiteFromRecord({\n root: request.root,\n locator: request.target.locator,\n report: inputs.report,\n theme: inputs.theme,\n })\n : buildReportSiteFromRecord({\n root: request.root,\n selection: request.target.kind === \"selection\"\n ? request.target.selection\n : inputs.projectCurrentSelection!,\n report: inputs.report,\n theme: inputs.theme,\n });\n return revision.pipe(Effect.mapError(reportExecutionFailure));\n}\nfunction reportExecutionFailure(error: unknown): CliFailure {\n switch (failureCode(error)) {\n case \"sample-run-not-found\":\n return usageError(`Run \"${stringProperty(error, \"runId\") ?? \"unknown\"}\" was not found in the selected Record.\\n`);\n case \"sample-run-invalid\":\n return usageError(`Run \"${stringProperty(error, \"runId\") ?? \"unknown\"}\" is not a valid published Record Run.\\n`);\n case \"sample-selection-invalid\":\n return usageError(`Invalid Record analysis selection: ${stringProperty(error, \"field\") ?? \"selection\"}.\\n`);\n case \"sample-attempt-not-found\":\n return usageError(`Attempt \"${stringProperty(error, \"attemptId\") ?? \"unknown\"}\" was not found in the selected Record.\\n`);\n case \"sample-attempt-ambiguous\":\n return usageError(`Attempt \"${stringProperty(error, \"attemptId\") ?? \"unknown\"}\" is ambiguous in the selected Record.\\n`);\n case \"sample-attempt-locator-not-found\":\n return usageError(`Attempt locator \"${stringProperty(error, \"locator\") ?? \"unknown\"}\" was not found in the selected Record.\\n`);\n case \"sample-attempt-locator-ambiguous\":\n return usageError(`Attempt locator \"${stringProperty(error, \"locator\") ?? \"unknown\"}\" is ambiguous in the selected Record.\\n`);\n case \"record-migration-required\":\n return usageError(\"record-migration-required\\nRun: niceeval migrate\\n\");\n case \"record-bootstrap-invalid\":\n return usageError(\"record-bootstrap-invalid\\nPass --record <actual-record-root> or create a current NiceEval Record.\\n\");\n case \"record-format-unsupported\":\n return usageError(\"record-format-unsupported\\nThis Record was created by a NiceEval version that is no longer supported. Remove .niceeval (for example, rm -rf .niceeval) and rerun the evaluation.\\n\");\n case \"record-migration-interrupted\":\n return usageError(\"record-migration-interrupted\\nRestore the Record from Git or a backup before retrying.\\n\");\n case \"report-route-invalid\":\n return usageError(`Unknown Report route \"${stringProperty(error, \"route\") ?? \"unknown\"}\".\\n`);\n case \"report-build-budget-exceeded\":\n return usageError(reportBuildBudgetExceededMessage(error));\n case \"report-site-execution-problem\":\n return usageError(reportSiteExecutionProblemMessage(error));\n default:\n return cliFailure(\"execute report from Record\", error);\n }\n}\n/** Preserve the actionable dimension and target from the Host's closed budget error. */\nfunction reportBuildBudgetExceededMessage(error: unknown): string {\n const budget = stringProperty(error, \"budget\");\n const maximum = finiteNumberProperty(error, \"maximum\");\n const observedAtLeast = finiteNumberProperty(error, \"observedAtLeast\");\n if (budget === undefined || maximum === undefined || observedAtLeast === undefined) {\n return \"report-build-budget-exceeded\\n\";\n }\n const pageId = stringProperty(error, \"pageId\");\n const route = stringProperty(error, \"route\");\n const target = pageId === undefined && route === undefined\n ? \"\"\n : ` (${[\n ...(pageId === undefined ? [] : [`page ${JSON.stringify(pageId)}`]),\n ...(route === undefined ? [] : [`route ${JSON.stringify(route)}`]),\n ].join(\", \")})`;\n return `report-build-budget-exceeded: ${budget} observed at least ${observedAtLeast}; maximum ${maximum}${target}\\n`;\n}\nconst REPORT_CLI_PROBLEMS_MAX = 20;\nconst REPORT_CLI_PROBLEM_TEXT_MAX = 1024;\n/** Keep the concrete closed-problem reason while bounding author-controlled diagnostics. */\nfunction reportSiteExecutionProblemMessage(error: unknown): string {\n if (typeof error !== \"object\" || error === null)\n return \"report-site-execution-problem\\n\";\n const problems = Reflect.get(error, \"problems\");\n if (!Array.isArray(problems))\n return \"report-site-execution-problem\\n\";\n const lines = problems\n .slice(0, REPORT_CLI_PROBLEMS_MAX)\n .flatMap((problem) => {\n const code = boundedReportCliProblemText(stringProperty(problem, \"code\"));\n const summary = boundedReportCliProblemText(stringProperty(problem, \"summary\"));\n if (code === undefined && summary === undefined)\n return [];\n if (code === undefined)\n return [summary!];\n return [summary === undefined ? code : `${code}: ${summary}`];\n });\n const omitted = Math.max(0, problems.length - REPORT_CLI_PROBLEMS_MAX);\n return [\n \"report-site-execution-problem\",\n ...lines,\n ...(omitted === 0 ? [] : [`${omitted} additional Report problem(s) omitted.`]),\n \"\",\n ].join(\"\\n\");\n}\nfunction boundedReportCliProblemText(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n const bounded = value\n .replace(/[\\u0000-\\u001f\\u007f-\\u009f]/g, \" \")\n .slice(0, REPORT_CLI_PROBLEM_TEXT_MAX)\n .trim();\n return bounded === \"\" ? undefined : bounded;\n}\nfunction stringProperty(value: unknown, key: string): string | undefined {\n if (typeof value !== \"object\" || value === null)\n return undefined;\n const candidate = Reflect.get(value, key);\n return typeof candidate === \"string\" ? candidate : undefined;\n}\nfunction finiteNumberProperty(value: unknown, key: string): number | undefined {\n if (typeof value !== \"object\" || value === null)\n return undefined;\n const candidate = Reflect.get(value, key);\n return typeof candidate === \"number\" && Number.isFinite(candidate) ? candidate : undefined;\n}\nfunction requireKnownReportPage(revision: ClosedSiteRevision, page: string | undefined): Effect.Effect<void, CliUsageError> {\n const routes = closedSiteRevisionData(revision).routes;\n if (page === undefined || routes.includes(page)) {\n return Effect.void;\n }\n const available = [...routes].sort().join(\", \");\n return Effect.fail(usageError(`Unknown Report route \"${page}\". Available routes: ${available || \"none\"}.\\n`));\n}\nconst cliReportConsole = Object.freeze({\n write: (text: string) => Effect.try({\n try: () => {\n process.stdout.write(text);\n },\n catch: () => Object.freeze({\n code: \"report-console-write-failed\" as const,\n operation: \"write\" as const,\n }),\n }),\n});\nconst reportHostPhaseLabels: Readonly<Record<ReportHostPhase, string>> = Object.freeze({\n \"record-open\": \"Open Record\",\n \"selection\": \"Select runs and attempts\",\n \"sample-open\": \"Open analysis Sample\",\n \"report-execution\": \"Execute Report and read requested facts\",\n});\nfunction formatReportProgressDuration(durationMs: number): string {\n if (durationMs < 1000)\n return `${Math.round(durationMs)}ms`;\n return `${(durationMs / 1000).toFixed(1)}s`;\n}\nfunction writeReportProgress(text: string): void {\n try {\n process.stderr.write(text);\n }\n catch {\n // Progress is diagnostic only; it must never alter Report execution.\n }\n}\nconst cliProgressFrames = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"] as const;\n/**\n * Keeps interactive progress on one terminal line, while preserving plain\n * line-oriented diagnostics when stderr is redirected to a file or CI log.\n */\nclass CliReportProgress {\n private active: {\n readonly label: string;\n readonly timer: ReturnType<typeof setInterval>;\n } | undefined;\n start(label: string): () => void {\n if (!process.stderr.isTTY) {\n writeReportProgress(`⠋ ${label}…\\n`);\n return () => undefined;\n }\n if (this.active !== undefined)\n clearInterval(this.active.timer);\n let frame = 0;\n const render = () => writeReportProgress(`\\r\\u001b[2K${cliProgressFrames[frame++ % cliProgressFrames.length]} ${label}…`);\n render();\n const timer = setInterval(render, 80);\n const active = { label, timer };\n this.active = active;\n return () => {\n if (this.active !== active)\n return;\n clearInterval(timer);\n this.active = undefined;\n };\n }\n complete(label: string, text: string): void {\n if (process.stderr.isTTY) {\n if (this.active?.label === label) {\n clearInterval(this.active.timer);\n this.active = undefined;\n }\n writeReportProgress(`\\r\\u001b[2K${text}\\n`);\n return;\n }\n writeReportProgress(`${text}\\n`);\n }\n}\nfunction makeCliReportProgress(rootPath: string, progress: CliReportProgress): ReportHostProgressObserverService {\n return Object.freeze({\n report: (event: ReportHostProgressEvent) => {\n const label = event.phase === \"record-open\"\n ? `${reportHostPhaseLabels[event.phase]} (${rootPath})`\n : reportHostPhaseLabels[event.phase];\n if (event.type === \"start\") {\n progress.start(label);\n return;\n }\n const marker = event.outcome === \"success\" ? \"✓\" : \"×\";\n const outcome = event.outcome === \"success\" ? \"\" : ` · ${event.outcome}`;\n progress.complete(label, `${marker} ${label} (${formatReportProgressDuration(event.durationMs)}${outcome})`);\n },\n });\n}\nfunction cliPhaseOutcome<E>(exit: Exit.Exit<unknown, E>): \"success\" | \"failure\" | \"defect\" | \"interrupted\" {\n if (Exit.isSuccess(exit))\n return \"success\";\n if (Cause.isInterruptedOnly(exit.cause))\n return \"interrupted\";\n return Cause.defects(exit.cause).pipe((defects) => defects.length > 0) ? \"defect\" : \"failure\";\n}\nfunction withCliReportPhase<A, E, R>(progress: CliReportProgress, label: string, effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> {\n return Effect.gen(function* () {\n const startedAt = yield* Clock.currentTimeNanos;\n const stopProgress = yield* Effect.sync(() => progress.start(label));\n return yield* effect.pipe(Effect.onExit((exit) => Effect.gen(function* () {\n const completedAt = yield* Clock.currentTimeNanos;\n const durationMs = Math.max(0, Number(completedAt - startedAt) / 1000000);\n const outcome = cliPhaseOutcome(exit);\n const marker = outcome === \"success\" ? \"✓\" : \"×\";\n const detail = outcome === \"success\" ? \"\" : ` · ${outcome}`;\n yield* Effect.sync(() => {\n stopProgress();\n progress.complete(label, `${marker} ${label} (${formatReportProgressDuration(durationMs)}${detail})`);\n });\n })));\n });\n}\nfunction runShowCommand(cwd: string, positionals: readonly string[], flags: Flags) {\n return Effect.gen(function* () {\n const progress = new CliReportProgress();\n const request = yield* Effect.try({\n try: () => parseReportCliRequest({ command: \"show\", cwd, positionals, flags }),\n catch: (cause) => cliFailure(\"parse show arguments\", cause),\n });\n const inputs = yield* withCliReportPhase(progress, \"Load project, config, Report, and Theme\", loadCliReportInputs(request));\n const textProjection = flags.json\n ? undefined\n : panelCapabilityOf({\n isTTY: process.stdout.isTTY,\n width: process.stdout.columns,\n });\n const show = request.target.kind === \"attempt\"\n ? reportHost.show({\n root: request.root,\n locator: request.target.locator,\n report: inputs.report,\n ...(request.page === undefined ? {} : { route: request.page }),\n ...(textProjection === undefined ? {} : { textProjection: { width: textProjection.width, panelMode: textProjection.mode } }),\n format: flags.json ? \"json\" as const : \"text\" as const,\n })\n : reportHost.show({\n root: request.root,\n selection: request.target.kind === \"selection\"\n ? request.target.selection\n : inputs.projectCurrentSelection!,\n report: inputs.report,\n ...(request.page === undefined ? {} : { route: request.page }),\n ...(textProjection === undefined ? {} : { textProjection: { width: textProjection.width, panelMode: textProjection.mode } }),\n format: flags.json ? \"json\" as const : \"text\" as const,\n });\n const output = yield* show.pipe(Effect.provideService(ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)), Effect.mapError(reportExecutionFailure));\n yield* cliReportConsole.write(output).pipe(Effect.mapError((error) => cliFailure(\"render Report show output\", error)));\n return 0;\n });\n}\nfunction runViewCommand(cwd: string, positionals: readonly string[], flags: Flags) {\n return Effect.gen(function* () {\n const progress = new CliReportProgress();\n const request = yield* Effect.try({\n try: () => parseReportCliRequest({ command: \"view\", cwd, positionals, flags }),\n catch: (cause) => cliFailure(\"parse view arguments\", cause),\n });\n if (flags.out !== undefined) {\n if (flags.out.trim() === \"\") {\n return yield* Effect.fail(usageError(\"--out requires a target directory.\\n\"));\n }\n if (flags.port !== undefined || flags.host !== undefined || flags.open === true) {\n return yield* Effect.fail(usageError(\"view --out does not start a server; remove --port, --host, and --open.\\n\"));\n }\n if (request.page !== undefined) {\n return yield* Effect.fail(usageError(\"view --out does not accept --page.\\n\"));\n }\n const inputs = yield* withCliReportPhase(progress, \"Load project, config, Report, and Theme\", loadCliReportInputs(request));\n const revision = yield* buildCliReportSite(request, inputs).pipe(Effect.provideService(ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)));\n const receipt = yield* withCliReportPhase(progress, \"Export static report site\", reportHost.export({\n revision,\n out: resolvePath(cwd, flags.out),\n }).pipe(Effect.provideService(ReportFileSystem, makeNodeReportFileSystem()), Effect.mapError((error) => staticExportFailure(error, resolvePath(cwd, flags.out!)))));\n yield* writeStdout(`Exported static report site: ${receipt.out}\\n`);\n return 0;\n }\n const initialInputs = yield* withCliReportPhase(progress, \"Load project, config, Report, and Theme\", loadCliReportInputs(request));\n const initial = yield* buildCliReportSite(request, initialInputs).pipe(Effect.provideService(ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)));\n yield* requireKnownReportPage(initial, request.page);\n const buildCache = yield* makeReportViewBuildCache(request, initialInputs, initial);\n const { host, port } = yield* Effect.try({\n try: () => ({ host: viewHost(flags.host), port: viewPort(flags.port) }),\n catch: (cause) => cliFailure(\"parse view server arguments\", cause),\n });\n const server = yield* withCliReportPhase(progress, \"Start HTTP server and file watcher\", reportHost.serve({\n url: `http://${host.includes(\":\") ? `[${host}]` : host}:${port}/`,\n watchInputs: initialInputs.watchInputs,\n initial: Effect.succeed(initial),\n rebuild: () => rebuildReportView(request, buildCache),\n host,\n port,\n }).pipe(Effect.mapError((error) => cliFailure(\"open report view\", error))));\n const urls = server.urls.map((url) => request.page === undefined ? url : new URL(request.page, url).toString());\n const url = urls[0]!;\n if (!isLoopbackViewHost(host)) {\n yield* writeStderr(\"Warning: niceeval view is listening beyond loopback without authentication or TLS; \" +\n \"every reachable client can read report data, execution JSON, and downloads.\\n\");\n }\n yield* writeStdout(`niceeval view — open in a browser:\\n${urls.join(\"\\n\")}\\n`);\n if (flags.open !== false) {\n yield* openBrowser(url).pipe(Effect.catchAll(() => Effect.succeed(false)));\n }\n return yield* Effect.never;\n });\n}\n/**\n * A watcher signal is only a hint. Every refresh re-reads config plus its\n * fresh author graph and Record before one completed immutable revision is\n * published with its next recoverable watch set; a typed boundary failure is\n * logged once and leaves last-good execution and the prior watch set.\n */\ninterface ReportViewBuildCache {\n revision: ClosedSiteRevision;\n /** Immutable page/shared bytes only; never a Sample, Scope, or ResolvedPage. */\n pageBytes?: ClosedReportPageBytes;\n watchInputs: readonly string[];\n /** Every non-Record watcher input is byte-proven before exact no-op reuse. */\n sourceFingerprint: ReportInputFingerprint;\n /** Host-owned identity of the selected semantic Record snapshot. */\n snapshotIdentity: string;\n /** Undefined means some input could not be content-proven equivalent. */\n pageIdentity?: string;\n themeIdentity: string;\n}\nfunction rebuildReportView(request: ReportCliRequest, cache: ReportViewBuildCache) {\n return Effect.gen(function* () {\n const inputs = yield* loadCliReportInputs(request);\n const [snapshotIdentity, sourceFingerprint, reportInputFingerprint, themeCss] = yield* Effect.all([\n readReportSnapshotIdentity(request, inputs),\n fingerprintReportSourceInputs(inputs.sourceWatchInputs),\n fingerprintReportSourceInputs(inputs.reportWatchInputs),\n closeReportThemeStylesheet(inputs.theme),\n ]);\n const pageIdentity = reportPageCacheIdentity(request, inputs, {\n snapshotIdentity,\n reportInputs: reportInputFingerprint,\n });\n const themeIdentity = reportCacheBytesIdentity(themeCss);\n const cachedPages = cache.pageBytes;\n const reusePages = cachedPages !== undefined &&\n snapshotIdentity === cache.snapshotIdentity &&\n pageIdentity !== undefined && pageIdentity === cache.pageIdentity;\n const exactNoop = reusePages && themeIdentity === cache.themeIdentity &&\n sameReportInputFingerprint(sourceFingerprint, cache.sourceFingerprint);\n let revision: ClosedSiteRevision;\n let pageBytes: ClosedReportPageBytes | undefined;\n if (exactNoop) {\n revision = cache.revision;\n pageBytes = cachedPages;\n }\n else if (reusePages && themeIdentity !== cache.themeIdentity) {\n const rethemed = rethemeClosedReportPageBytes(cachedPages, themeCss, signClosedSiteRevision);\n if (rethemed === undefined) {\n revision = yield* buildCliReportSite(request, inputs);\n pageBytes = closeReportPageBytes(revision, {\n selectionIdentity: reportSelectionCacheIdentity(request, inputs),\n themeIdentity,\n });\n }\n else {\n revision = rethemed;\n pageBytes = closeReportPageBytes(revision, {\n selectionIdentity: reportSelectionCacheIdentity(request, inputs),\n themeIdentity,\n });\n }\n }\n else {\n revision = yield* buildCliReportSite(request, inputs);\n pageBytes = closeReportPageBytes(revision, {\n selectionIdentity: reportSelectionCacheIdentity(request, inputs),\n themeIdentity,\n });\n }\n yield* requireKnownReportPage(revision, request.page);\n cache.revision = revision;\n cache.pageBytes = pageBytes;\n cache.watchInputs = inputs.watchInputs;\n cache.sourceFingerprint = sourceFingerprint;\n cache.snapshotIdentity = pageBytes?.sampleIdentity ?? snapshotIdentity;\n cache.pageIdentity = pageBytes === undefined\n ? undefined\n : reportPageCacheIdentity(request, inputs, {\n snapshotIdentity: pageBytes.sampleIdentity,\n reportInputs: reportInputFingerprint,\n });\n cache.themeIdentity = themeIdentity;\n return Object.freeze({\n kind: \"site\" as const,\n site: revision,\n watchInputs: inputs.watchInputs,\n });\n }).pipe(Effect.catchAll((failure) => {\n const problem = reportViewRebuildFailure(failure);\n return writeStderr(`view rebuild failed: ${problem.summary}\\n`).pipe(Effect.zipRight(Effect.fail(problem)));\n }));\n}\nfunction makeReportViewBuildCache(request: ReportCliRequest, inputs: LoadedCliReportInputs, revision: ClosedSiteRevision): Effect.Effect<ReportViewBuildCache, CliFailure> {\n return Effect.gen(function* () {\n const [sourceFingerprint, reportInputFingerprint, themeCss] = yield* Effect.all([\n fingerprintReportSourceInputs(inputs.sourceWatchInputs),\n fingerprintReportSourceInputs(inputs.reportWatchInputs),\n closeReportThemeStylesheet(inputs.theme),\n ]);\n const themeIdentity = reportCacheBytesIdentity(themeCss);\n const selectionIdentity = reportSelectionCacheIdentity(request, inputs);\n const pageBytes = closeReportPageBytes(revision, { selectionIdentity, themeIdentity });\n const pageIdentity = reportPageCacheIdentity(request, inputs, {\n snapshotIdentity: pageBytes?.sampleIdentity ?? \"\",\n reportInputs: reportInputFingerprint,\n });\n return {\n revision,\n ...(pageBytes === undefined ? {} : { pageBytes }),\n watchInputs: inputs.watchInputs,\n sourceFingerprint,\n snapshotIdentity: pageBytes?.sampleIdentity ?? \"\",\n ...(pageBytes === undefined || pageIdentity === undefined ? {} : { pageIdentity }),\n themeIdentity,\n };\n });\n}\ninterface ReportInputFingerprint {\n readonly digest: string;\n /** False for a link or special file, whose stable content cannot be proven here. */\n readonly complete: boolean;\n}\nfunction sameReportInputFingerprint(left: ReportInputFingerprint, right: ReportInputFingerprint): boolean {\n return left.complete && right.complete && left.digest === right.digest;\n}\nfunction reportPageCacheIdentity(request: ReportCliRequest, inputs: LoadedCliReportInputs, input: {\n readonly snapshotIdentity: string;\n readonly reportInputs: ReportInputFingerprint;\n}): string | undefined {\n if (input.snapshotIdentity.length === 0 || !input.reportInputs.complete)\n return undefined;\n return createHash(\"sha256\").update(JSON.stringify([\n \"niceeval.report-page-bytes/v1\",\n REPORT_STATIC_RENDERER,\n input.snapshotIdentity,\n input.reportInputs.digest,\n reportDefinitionIdentity(inputs.report),\n reportSelectionCacheIdentity(request, inputs),\n ])).digest(\"hex\");\n}\nfunction reportCacheBytesIdentity(bytes: Uint8Array): string {\n return createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\n/** Delegates the exact Theme stylesheet closure to the static Host. */\nfunction closeReportThemeStylesheet(theme: ThemeDefinition): Effect.Effect<Uint8Array, CliFailure> {\n return Effect.try({\n try: () => closeStaticThemeStylesheet(theme),\n catch: (cause) => cliFailure(\"close Report theme stylesheet\", cause),\n });\n}\n/**\n * The Host owns Record selection, project-current narrowing, and semantic\n * snapshot construction. This probe deliberately never opens a Sample.\n */\nfunction readReportSnapshotIdentity(request: ReportCliRequest, inputs: LoadedCliReportInputs) {\n const target = request.target.kind === \"attempt\"\n ? Object.freeze({ root: request.root, locator: request.target.locator })\n : Object.freeze({\n root: request.root,\n selection: request.target.kind === \"selection\"\n ? request.target.selection\n : inputs.projectCurrentSelection!,\n });\n return reportSnapshotIdentityFromRecord(target).pipe(Effect.mapError(reportExecutionFailure));\n}\nfunction reportSelectionCacheIdentity(request: ReportCliRequest, inputs: LoadedCliReportInputs): string {\n const target = request.target.kind === \"project-current\"\n ? inputs.projectCurrentSelection\n : request.target;\n return createHash(\"sha256\").update(JSON.stringify(target)).digest(\"hex\");\n}\n/**\n * A source-watch signal is only a hint. This digest deliberately excludes the\n * Record root: selected Record equivalence comes only from the Host-owned\n * semantic snapshot probe. Links and special files make the result incomplete,\n * so unprovable input can never produce an exact no-op; a missing optional\n * path is a complete, watchable source-state observation.\n */\nfunction fingerprintReportSourceInputs(paths: readonly string[]): Effect.Effect<ReportInputFingerprint, CliFailure> {\n return Effect.tryPromise({\n try: async () => {\n const hash = createHash(\"sha256\");\n const visited = new Set<string>();\n let complete = true;\n const visit = async (path: string): Promise<void> => {\n const absolute = resolvePath(path);\n if (visited.has(absolute))\n return;\n visited.add(absolute);\n let info;\n try {\n info = await lstat(absolute);\n }\n catch (cause) {\n if (typeof cause === \"object\" && cause !== null && Reflect.get(cause, \"code\") === \"ENOENT\") {\n // An absent optional config/module entry is itself a complete\n // source-state observation. A later creation emits a watcher\n // signal and changes this digest.\n hash.update(`missing\\0${absolute}\\0`);\n return;\n }\n throw cause;\n }\n hash.update(`path\\0${absolute}\\0`);\n if (info.isSymbolicLink()) {\n complete = false;\n hash.update(`link\\0${await readlink(absolute)}\\0`);\n return;\n }\n if (info.isFile()) {\n hash.update(\"file\\0\");\n hash.update(await readFile(absolute));\n hash.update(\"\\0\");\n return;\n }\n if (!info.isDirectory()) {\n complete = false;\n hash.update(`opaque\\0${info.mode}\\0`);\n return;\n }\n hash.update(\"directory\\0\");\n const names = (await readdir(absolute)).sort();\n for (const name of names)\n yieldName(hash, name);\n for (const name of names)\n await visit(join(absolute, name));\n };\n for (const path of [...new Set(paths.map((entry) => resolvePath(entry)))].sort()) {\n await visit(path);\n }\n return Object.freeze({ digest: hash.digest(\"hex\"), complete });\n },\n catch: (cause) => cliFailure(\"fingerprint Report source inputs\", cause),\n });\n}\nfunction yieldName(hash: ReturnType<typeof createHash>, name: string): void {\n hash.update(`entry\\0${name}\\0`);\n}\nfunction staticExportFailure(error: unknown, out: string): CliFailure {\n if (failureCode(error) === \"report-export-target-exists\") {\n return usageError(`report-export-target-exists\\nRemove ${out} before retrying.\\n`);\n }\n return cliFailure(\"export static Report\", error);\n}\nfunction viewHost(value: string | undefined): string {\n const host = (value ?? \"127.0.0.1\").trim();\n if (host.length === 0)\n throw usageError(\"--host requires a non-empty address.\\n\");\n return host;\n}\nfunction isLoopbackViewHost(host: string): boolean {\n return host === \"127.0.0.1\" || host === \"::1\" || host === \"localhost\";\n}\nfunction viewPort(value: number | undefined): number {\n const port = value ?? 0;\n if (!Number.isInteger(port) || port < 0 || port > 65535) {\n throw usageError(`--port must be an integer from 0 through 65535, got ${port}.\\n`);\n }\n return port;\n}\nfunction reportViewRebuildFailure(failure: CliFailure): {\n readonly summary: string;\n} {\n const summary = failure._tag === \"CliUsageError\"\n ? failure.message\n : failure.cause instanceof ReportModuleLoadError\n ? `${failure.cause.code}: ${failure.cause.reason}`\n : failureCode(failure.cause) ?? \"Report rebuild failed\";\n return Object.freeze({ summary });\n}\nexport const cliProgram = (interruption?: CliInterruptionOwnership) => Effect.gen(function* () {\n const cwd = process.cwd();\n const { command, positionals, flags, providedOptions } = yield* Effect.try({\n try: () => parseArgs(process.argv.slice(2)),\n catch: (cause) => cliFailure(\"parse CLI arguments\", cause),\n });\n // Session / Docker profile queries must remain config-free read paths.\n if (command !== \"session\" && command !== \"docker\") {\n yield* loadDotenv(cwd);\n }\n if (flags.help) {\n yield* writeStdout(t(\"cli.help\"));\n return 0;\n }\n if (flags.version) {\n yield* writeStdout((yield* packageVersion()) + \"\\n\");\n return 0;\n }\n if (command === \"debug\") {\n const unsupported = providedOptions.find((name) => name !== \"json\" && name !== \"help\" && name !== \"version\");\n if (unsupported !== undefined) {\n yield* writeStderr(t(\"cli.debug.flagUnsupported\", { flag: `--${unsupported}` }));\n return 1;\n }\n return yield* runDebugCommand(cwd, positionals, flags);\n }\n if (command === \"docker\")\n return yield* runDockerCommand(positionals, flags);\n if (command === \"accept\") {\n const locators = yield* Effect.try({\n try: () => parseAcceptLocators(positionals, flags),\n catch: (cause) => cliFailure(\"parse acceptance locators\", cause),\n });\n const outcome = yield* Effect.either(runAcceptCommand(cwd, locators, flags.record));\n if (Either.isLeft(outcome)) {\n yield* writeStderr(t(\"cli.accept.failed\", { error: errorMessage(outcome.left.cause) }));\n return 1;\n }\n return 0;\n }\n if (command === \"view\")\n return yield* runViewCommand(cwd, positionals, flags);\n if (command === \"sandbox\")\n return yield* runSandboxCliCommand(cwd, positionals, flags);\n if (command === \"session\")\n return yield* runSessionCommand(cwd, positionals, flags);\n if (command === \"show\")\n return yield* runShowCommand(cwd, positionals, flags);\n if (command === \"clean\" || command === \"migrate\") {\n return yield* runRecordMaintenanceCommand(cwd, command, positionals, flags);\n }\n if (command === \"init\") {\n yield* initProject(cwd);\n yield* writeStdout(t(\"cli.init.done\"));\n if (!hostPrefersEsm(cwd))\n yield* writeStdout(t(\"cli.init.esmHint\"));\n return 0;\n }\n if (command === \"exp\" && positionals[0] === \"rename\") {\n return yield* runExperimentRenameCommand(cwd, positionals.slice(1), flags);\n }\n return yield* runEvaluationCommand(cwd, command, positionals, flags, interruption);\n}).pipe(\n// Every command boundary reports a typed CLI failure; defects and\n// interruption remain in the Cause channel for bootstrap to own.\nEffect.mapError((cause) => cliFailure(\"run CLI command\", cause)));\n"]}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["cli.ts"],"names":[],"mappings":"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","sourcesContent":["// niceeval CLI 入口。执行 eval 必须以 experiment 为单位;位置参数只在 exp 后筛 eval id 前缀。\n// niceeval check [组|配置] [pattern] 只做发现、选择与 SandboxLayer pure link\n// niceeval exp [组|配置] [pattern] 跑实验\n// niceeval debug <配置> <eval> 只规划一个配对的 Sandbox / Plugin lifecycle\n// niceeval accept @<locator>... 接受多条历史结果并重锚到当前配置\n// niceeval show [selection] 终端渲染固定 Sample 的一个目标 Page\n// niceeval list 只列出发现到的 eval\n// niceeval clean [--record <root>] [--yes] 删除未完成 Run\n// niceeval migrate [--record <root>] [--yes] 显式迁移 Record\nimport { spawn } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport { hostname } from \"node:os\";\nimport { lstat, mkdir, readFile, readdir, readlink, writeFile } from \"node:fs/promises\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { dirname, isAbsolute, join, resolve as resolvePath } from \"node:path\";\nimport { parseArgs as nodeParseArgs } from \"node:util\";\nimport { Cause, Clock, Data, Effect, Either, Exit, Schema } from \"effect\";\nimport { parseAttemptLocator, type AttemptLocator, } from \"./attempt-locator.ts\";\nimport { browsableExperimentPaths, evalPrefixPredicate } from \"./shared/aggregate.ts\";\nimport type { JsonValue } from \"./shared/types.ts\";\nimport type { AgentRun } from \"./runner/run.ts\";\nimport { experimentHost, type ExperimentHostDebugPlan } from \"./experiment/host/index.ts\";\nimport { loadProjectCurrent } from \"./runner/project-current.ts\";\nimport { makeRecordRoot, RunIdSchema, type RecordRoot, } from \"./record/index.ts\";\nimport { type AnalysisSelectionRequest, type ExperimentId, type RunId, } from \"./analysis/index.ts\";\nimport { ExperimentIdSchema } from \"./record/codec/identifiers.ts\";\nimport { defaultAttemptOverviewReport } from \"./report/built-in/attempt-overview.ts\";\nimport { defaultRunMembershipOverviewReport } from \"./report/built-in/run-membership-overview.ts\";\nimport { standard } from \"./report/built-in/standard.tsx\";\nimport { executionEvidenceReport, timingEvidenceReport, } from \"./report/built-in/execution.ts\";\nimport { sourceEvidenceReport } from \"./report/built-in/source.ts\";\nimport type { ReportDefinition } from \"./report/definition/report.ts\";\nimport { closedSiteRevisionData, type ClosedSiteRevision, } from \"./report/execution/model.ts\";\nimport { buildReportSiteFromRecord, reportSnapshotIdentityFromRecord, } from \"./report/host/from-record.ts\";\nimport { reportDefinitionIdentity } from \"./report/host/execute.ts\";\nimport { validateReportRoute } from \"./report/execution/paths.ts\";\nimport { reportHost } from \"./report/host/index.ts\";\nimport { panelCapabilityOf } from \"./report/model/panel.ts\";\nimport { ReportHostProgressObserver, type ReportHostPhase, type ReportHostProgressEvent, type ReportHostProgressObserverService, } from \"./report/host/progress.ts\";\nimport { closeStaticThemeStylesheet, ReportFileSystem, REPORT_STATIC_RENDERER, signClosedSiteRevision, } from \"./report/host/static.ts\";\nimport { basalt, chalk, loadTrustedReportConfig, loadTrustedReportModule, loadTrustedThemeModule, makeNodeReportFileSystem, ReportModuleLoadError, resolveTrustedModulePath, type ThemeDefinition, } from \"./report/host/node.ts\";\nimport { ensureAutomaticRecordMigration, runRecordCliCommand } from \"./cli/record.ts\";\nimport { selectedEvalsForRun } from \"./runner/eval-selection.ts\";\nimport { stopAllSandboxes } from \"./sandbox/registry.ts\";\nimport { keptSandboxReminderEffect, orphanReminderEffect, runSandboxCommandEffect, } from \"./sandbox/cli-commands.ts\";\nimport { formatSandboxLayerLinkError, SandboxLayerLinkError } from \"./sandbox/link.ts\";\nimport { formatSandboxPhysicalPlanningError, SandboxPhysicalPlanningError, } from \"./sandbox/plan.ts\";\nimport { drainExperimentTeardowns } from \"./runner/experiment-cleanup-registry.ts\";\nimport { drainHeldCaseLocksEffect, isCaseLockExpired, readCaseLockEffect, } from \"./runner/lock.ts\";\nimport { beginExplicitSharedStateRecoveryEffect, completeExplicitSharedStateRecoveryEffect, readSharedStateLeaseRecoveryTargetEffect, type SharedStateLeaseRecord, } from \"./runner/shared-state-lease.ts\";\nimport { cleanupCallback } from \"./runner/cleanup-timeout.ts\";\nimport { closeReportPageBytes, rethemeClosedReportPageBytes, type ClosedReportPageBytes, } from \"./view/report-view-cache.ts\";\nimport { resolveRunTimeout } from \"./runner/timeout.ts\";\nimport { type CurrentReuseReadbackSnapshot, } from \"./runner/reuse-readback.ts\";\nimport type { ExecutionReusePlanSlot } from \"./runner/reuse-plan.ts\";\nimport { isOrphanedTeardownRegistration, isExactTeardownRegistrationOwnerTerminatedEffect, orphanedTeardownReminderEffect, readExactTeardownRegistrationEffect, readTeardownRegistrationsEffect, removeTeardownRegistrationIfPresentEffect, teardownEntryId, } from \"./runner/teardown-registry.ts\";\nimport type { DiscoveredExperiment, ExperimentHook, ExperimentHookContext } from \"./runner/types.ts\";\nimport type { ExperimentRenameBlocked, ExperimentRenamePlan, ExperimentRenameReason, ExperimentRenameRejected, RenamedExperiment, } from \"./runner/rename-experiment.ts\";\nimport { ExperimentRenameError } from \"./runner/rename-experiment.ts\";\nimport { evalLevelStats } from \"./shared/verdict.ts\";\nimport { linkRunSandboxes, recommendedConcurrencyForPreparedPairs } from \"./runner/sandbox-selection.ts\";\nimport { JUnit } from \"./runner/reporters/json.ts\";\nimport { resolveOutputForm, createFeedbackCoordinator, createNodeFeedbackIO, createInputGuard, createNodeInputGuardStdin, createHumanRenderer, createJsonRenderer, renderHumanCommandPlan, computeExitCode, } from \"./runner/feedback/index.ts\";\nimport { t, type MessageKey } from \"./i18n/index.ts\";\nimport { formatThrown, upsertManagedBlock } from \"./util.ts\";\nimport { SessionTracker, listSessions, renderSessionListText, renderSessionShowText, showSession, } from \"./runner/session.ts\";\nimport type { CompletionStatus, Config, DiscoveredEval, InvocationCompletion, InvocationSummary, ReporterError, ReporterRegistration, RunFeedbackState, Verdict, } from \"./types.ts\";\n/** A recoverable command-line usage error. Defects deliberately do not enter this channel. */\nexport class CliUsageError extends Data.TaggedError(\"CliUsageError\")<{\n readonly message: string;\n readonly exitCode: number;\n}> {\n}\n/** A recoverable failure from a concrete CLI-owned boundary (file, process, or dynamic module). */\nexport class CliOperationError extends Data.TaggedError(\"CliOperationError\")<{\n readonly operation: string;\n readonly cause: unknown;\n readonly exitCode: number;\n}> {\n}\nexport type CliFailure = CliUsageError | CliOperationError;\n/**\n * Bootstrap owns process signals until an Eval has reached actual dispatch.\n * The CLI claims the Invocation signal synchronously immediately before\n * Experiment Host dispatch; it never infers this from argv outside the command\n * dispatcher.\n */\nexport interface CliInterruptionOwnership {\n readonly invocationSignal: AbortSignal;\n /** False means bootstrap already accepted a root-owned first signal. */\n readonly enterGracefulDispatch: () => boolean;\n}\nfunction usageError(message: string, exitCode = 1): CliUsageError {\n return new CliUsageError({ message, exitCode });\n}\nfunction cliFailure(operation: string, cause: unknown, exitCode = 1): CliFailure {\n return cause instanceof CliUsageError || cause instanceof CliOperationError\n ? cause\n : new CliOperationError({ operation, cause, exitCode });\n}\n/**\n * Lift one actual Promise boundary into the application Effect. It is never a\n * private runtime: CLI owns the sole runtime in `cli/bootstrap.ts`.\n */\nfunction cliPromise<A>(operation: string, promise: (signal: AbortSignal) => PromiseLike<A>): Effect.Effect<A, CliFailure> {\n return Effect.tryPromise({\n try: promise,\n catch: (cause) => cliFailure(operation, cause),\n });\n}\n/** Preserve library effects without running a nested runtime. */\nfunction cliEffect<A, E, R>(operation: string, effect: Effect.Effect<A, E, R>): Effect.Effect<A, CliFailure, R> {\n return effect.pipe(Effect.mapError((cause) => cliFailure(operation, cause)));\n}\n/** Bootstrap owns presentation of typed failures; defects and interruption stay in Cause. */\nexport function renderCliFailure(failure: CliFailure): string {\n if (failure._tag === \"CliUsageError\")\n return failure.message;\n if (failure.cause instanceof SandboxLayerLinkError)\n return `${formatSandboxLayerLinkError(failure.cause)}\\n`;\n if (failure.cause instanceof SandboxPhysicalPlanningError)\n return `${formatSandboxPhysicalPlanningError(failure.cause)}\\n`;\n const assertionsMessage = runnerAssertionsMessage(failure.cause);\n if (assertionsMessage !== undefined)\n return `error: ${assertionsMessage}\\n`;\n if (isReportCliOperation(failure.operation)) {\n const code = failureCode(failure.cause);\n if (code !== undefined) {\n if (failure.cause instanceof ReportModuleLoadError) {\n return `${code}: ${failure.cause.reason}\\n`;\n }\n const reason = stringProperty(failure.cause, \"reason\");\n const operation = stringProperty(failure.cause, \"operation\");\n if (reason !== undefined) {\n const stage = operation === undefined ? \"\" : `${operation}: `;\n const retry = code === \"report-view-server-failed\" && operation === \"listen\"\n ? \"\\nChoose another port with --port <port>, or stop the process already listening there.\"\n : \"\";\n return `${code}: ${stage}${reason}${retry}\\n`;\n }\n return `${code}\\n`;\n }\n }\n return t(\"cli.error\", { error: formatThrown(failure.cause) });\n}\nfunction isReportCliOperation(operation: string): boolean {\n return operation === \"load trusted Report config\" ||\n operation === \"load trusted Report module\" ||\n operation === \"load trusted Theme module\" ||\n operation === \"execute report from Record\" ||\n operation === \"render Report show output\" ||\n operation === \"open report view session\" ||\n operation === \"open report view\" ||\n operation === \"export static Report\";\n}\nfunction failureCode(value: unknown): string | undefined {\n if (typeof value !== \"object\" || value === null)\n return undefined;\n const code = Reflect.get(value, \"code\");\n return typeof code === \"string\" ? code : undefined;\n}\nfunction runnerAssertionsMessage(value: unknown): string | undefined {\n if (failureCode(value) !== \"runner-record-assertions-invalid\" || typeof value !== \"object\" || value === null) {\n return undefined;\n }\n const issue = Reflect.get(value, \"issue\");\n if (typeof issue !== \"object\" || issue === null)\n return undefined;\n const message = Reflect.get(issue, \"message\");\n return typeof message === \"string\" && message.length > 0 ? message : undefined;\n}\nexport interface Flags {\n agent?: string;\n model?: string;\n attempts?: number;\n maxConcurrency?: number;\n maxBuildConcurrency?: number;\n timeout?: number;\n earlyExit?: boolean;\n dry: boolean;\n force: boolean;\n rerun?: \"failed\" | \"all\";\n budget?: number;\n tag?: string;\n junit?: string;\n /** `exp` 命令专用:机器面(NDJSON 事件流)。省略即人读文本(见 `resolveOutputForm`)。 */\n json: boolean;\n /** `docker profile doctor` 专用:运行一次真实嵌套 Docker 冒烟。 */\n smoke: boolean;\n open?: boolean;\n out?: string;\n port?: number;\n host?: string;\n help: boolean;\n version: boolean;\n /** `clean` / `migrate` 专用:确认删除未完成 Run 或在 clean Git restore point 下执行 migration。 */\n yes: boolean;\n // ── show 专属(位置参数仍是 eval id 前缀 / `@<locator>`;这些 flag 选「怎么看」)──\n source?: true | string;\n execution: boolean;\n diff: boolean;\n /** --diff=<路径>(必须 = 连写;空格形式会把路径当 eval id 前缀,按文档如此)。 */\n diffPath?: string;\n /** `show @<AttemptId> --execution` 专用:JS 正则,只显示命中的 transcript / tool / command evidence。 */\n grep?: string;\n timing?: \"summary\" | \"full\";\n keepSandbox?: \"failed\" | \"all\";\n all: boolean;\n window?: string;\n sandboxPath?: string;\n leaveRunning: boolean;\n history: boolean;\n usage: boolean;\n stats: boolean;\n /** `show` / `view` 命令专用:默认读取当前项目结果时,按完整 ExperimentId 收窄目标。 */\n experiment?: string[];\n /** `show` / `view` / `accept` / `sandbox enter|list|stop` 共用:记录根目录(`.niceeval` 之外的另一个根,如 `publish` 产出的发布根)。 */\n record?: string;\n /** `show` / `view` 命令专用:`--run` 可重复;按完整 RunId 去重。 */\n run?: string[];\n report?: string;\n page?: string;\n theme?: string;\n /** `sandbox list` 专用:核对强杀路径留下的无主实例。 */\n orphans: boolean;\n /** `exp` 命令专用:只对选中实验各执行一次实验级 teardown,不派发 attempt、不跑 setup。 */\n teardown: boolean;\n /** `exp --teardown` 专用:请求显式恢复的 sharedState key。 */\n recoverSharedState?: string;\n /** `exp --teardown --recover-shared-state` 专用:不可变 lease owner token。 */\n ownerToken?: string;\n /** 明确确认记录的 owner 已终止;没有它恢复拒绝执行。 */\n confirmOwnerTerminated: boolean;\n /** 明确确认远端外部状态已静止;没有它恢复拒绝执行。 */\n confirmRemoteQuiesced: boolean;\n}\n// 表驱动的 flag 定义(node:util parseArgs)。--no-x 显式声明,不依赖 Node 20.14+\n// 才支持的 allowNegative,也避免每个 boolean flag 都隐式获得未设计的负向别名。\n// 未知 flag 由 strict 模式报清晰错误,不会静默吞掉后面的位置参数。\n//\n// 每个 flag 的 JSDoc 就是它在 docs-site/zh/reference/cli.mdx flag 表里的说明,由\n// scripts/generate-reference.ts 提取渲染——改 flag 语义时改这里的注释即可,不用碰生成脚本。\n// 负向 flag(no-x)与正向 flag 合并成一行展示,不需要单独写 JSDoc。\nconst FLAG_OPTIONS = {\n /** experiment 运行不支持该 flag。要换 agent,请在 `experiments/` 下新增或复制一个配置文件。 */\n agent: { type: \"string\" },\n /** experiment 运行不支持该 flag。要换模型,请新增或复制一个 experiment 文件并修改 `model`。 */\n model: { type: \"string\" },\n /** 每个 eval 运行多少次,常用于 pass@N。 */\n attempts: { type: \"string\" },\n /** 设置同时运行的 eval 数量。 */\n \"max-concurrency\": { type: \"string\" },\n /** 设置同时进行的 Sandbox 镜像 lookup/build 数量;与 eval 并发独立,默认 2。 */\n \"max-build-concurrency\": { type: \"string\" },\n /** 单个 attempt 的超时时间,单位毫秒。解析链:`--timeout` > experiment > eval(`defineEval({ timeoutMs })`)> `niceeval.config.ts`,默认无上限(四层都没声明就不设 deadline);config 是缺省底而不是覆盖层,写了 config 不会让 eval 自己声明的上限失效。 */\n timeout: { type: \"string\" },\n /** 整次运行的预算上限(美元)。 */\n budget: { type: \"string\" },\n /** `exp` 命令专用:跑完留下 failed/errored attempt 的 Sandbox 现场(= `--keep-sandbox=failed`);`--keep-sandbox=all` 连 passed 也留。事后用 `niceeval sandbox list/enter/stop` 查看与销毁。 */\n \"keep-sandbox\": { type: \"boolean\" },\n /** `sandbox stop` 专用:销毁全部留存 Sandbox。 */\n all: { type: \"boolean\" },\n /** `sandbox diff` 专用:只看某个 send 窗口(如 `--window turn2` 或 `--window session2/turn1`);省略输出全部窗口的串联视图。 */\n window: { type: \"string\" },\n /** `sandbox diff` 专用:只看某个文件的 patch;省略输出该窗口的全部文件。 */\n path: { type: \"string\" },\n /** `sandbox enter` 专用:shell 退出后让现场保持运行,不送回休眠。 */\n \"leave-running\": { type: \"boolean\" },\n /** `sandbox list` 专用:核对强杀(`SIGKILL` / 断电)路径留下的无主沙箱实例(docker + e2b;vercel 无按元数据检索实例的通道,不参与)。只读,不清理;销毁走 `niceeval sandbox prune`。 */\n orphans: { type: \"boolean\" },\n /** 只运行带有该 tag 的 eval(见 `defineEval` 的 `tags`)。 */\n tag: { type: \"string\" },\n /** 额外写一份 JUnit XML 报告到指定路径,供 CI 消费。 */\n junit: { type: \"string\" },\n /** `exp` 运行在 stdout 输出单一有序的 NDJSON 事件流;`exp --dry` 与 `debug` 输出各自的单个 JSON 计划文档。`show` 输出 Host 拥有的内建或自定义单目标机器文档,不形成完整站点或打开第二条取数路径。 */\n json: { type: \"boolean\" },\n /** `docker profile doctor` 专用:启动受限 DinD 容器并运行内层容器。 */\n smoke: { type: \"boolean\" },\n /** `view` 命令专用:把结果查看器静态导出到指定目录。 */\n out: { type: \"string\" },\n /** `view` 命令专用:指定本地服务器监听端口。 */\n port: { type: \"string\" },\n /** `view` 命令专用:指定监听地址;省略时为 127.0.0.1,只写 `--host` 时为 0.0.0.0。非 loopback 监听无认证或 TLS,会向所有可达客户端暴露报告数据。 */\n host: { type: \"string\" },\n // 以下旧 show 切片只为实现收敛期间保留解析位置,不属于目标公开 CLI,也不进入参考页。\n /** `show` 专用:按一个 exact Attempt locator 展示已记录的 source snapshot。 */\n source: { type: \"boolean\" },\n /** `show @<AttemptLocator> --execution`:从公开 Record projection 呈现该 Attempt 的 transcript、tool 与 command evidence。 */\n execution: { type: \"boolean\" },\n /** `show @<AttemptLocator> --timing[=summary|full]` 专用:从内建 timing Report 读取该 Attempt 的 runner 阶段树。 */\n timing: { type: \"boolean\" },\n /** `show @<AttemptId> --execution` 专用:JS 正则过滤 retained transcript、tool 与 command evidence。 */\n grep: { type: \"string\" },\n // --diff 是布尔;--diff=<路径> 在 parseArgs 前预扫成 diffPath(路径必须 = 连写,\n // 空格形式的下一个 token 仍是位置参数 = eval id 前缀,与文档一致)。\n /** 实现收敛占位;目标公开 CLI 通过 Report page 读取 diff 通道。 */\n diff: { type: \"boolean\" },\n /** 实现收敛占位;目标公开 CLI 不提供跨 Run history。 */\n history: { type: \"boolean\" },\n /** 实现收敛占位;目标公开 CLI 通过 Report Calculation 呈现用量。 */\n usage: { type: \"boolean\" },\n /** 实现收敛占位;目标公开 CLI 不提供隐式跨 Run 统计。 */\n stats: { type: \"boolean\" },\n /** `show` / `view` 命令专用:按完整 ExperimentId 收窄当前项目结果;可重复,不接受前缀或逗号列表。 */\n experiment: { type: \"string\", multiple: true },\n /** `show` / `view` / `accept` / `sandbox enter|list|stop` 共用:指定实际 Record root;CLI 不补接 `.niceeval/record` 或其它后缀。 */\n record: { type: \"string\" },\n /** `show` / `view` 可重复传入 `--run`;每次按完整 RunId 增加一个显式 Run,重复 identity 去重。 */\n run: { type: \"string\", multiple: true },\n /** `show` / `view` 命令专用:内建 `standard` 或受信任的 Report module 路径。 */\n report: { type: \"string\" },\n /** `show` / `view` 命令专用:内建 Theme 或受信任的闭合 Theme module 路径。 */\n theme: { type: \"string\" },\n /** `show` / `view` 命令专用:选择报告的初始页;`show` 渲染该页并在尾部附其余页索引,`view` 以它作初始路由。未命中的页 id 按用法错误退出并列出可用页 id。 */\n page: { type: \"string\" },\n /** `exp` 命令专用:补齐被强杀打断的实验级 teardown——只对选中的实验各执行一次 teardown(新进程语义),不派发 attempt、不跑 setup;没有遗留登记也照常执行。与 eval 前缀位置参数组合是用法错误。 */\n teardown: { type: \"boolean\" },\n /** `exp --teardown` 专用:显式恢复一个永不自动接管的 sharedState lease;必须同时提供 --owner-token、--confirm-owner-terminated 和 --confirm-remote-quiesced。 */\n \"recover-shared-state\": { type: \"string\" },\n /** `--recover-shared-state` 专用:要恢复的不可变 owner token;错误或过期 token 不会修改 lease。 */\n \"owner-token\": { type: \"string\" },\n /** `--recover-shared-state` 专用:确认原 owner 已终止。 */\n \"confirm-owner-terminated\": { type: \"boolean\" },\n /** `--recover-shared-state` 专用:确认远端外部状态已静止。 */\n \"confirm-remote-quiesced\": { type: \"boolean\" },\n /** 只打印本次会匹配到的 eval × 运行配置,不实际执行(人读文本或 `--json` 单文档,见「机器怎么读:--json」)。 */\n dry: { type: \"boolean\" },\n /** `sandbox prune` 专用:除 orphan 外也销毁 unverified 实例;`exp` 明确拒绝此 flag,重跑失败项或全部项请用 `--rerun` / `--rerun all`。 */\n force: { type: \"boolean\" },\n /** `exp` 命令专用:重新运行失败项(裸写/failed)或全部项(all),不改变长期指纹。 */\n rerun: { type: \"boolean\" },\n /** 某个 eval 的一次 attempt 通过后,停止该 eval 剩余的 attempts;省略默认关(`attempts` 默认跑满、测完整通过率)。 */\n \"early-exit\": { type: \"boolean\" },\n /** 强制关闭首过即停,即使实验文件里写了 `earlyExit: true`。 */\n \"no-early-exit\": { type: \"boolean\" },\n /** `view` 命令专用:启动后自动打开浏览器(默认行为)。 */\n open: { type: \"boolean\" },\n \"no-open\": { type: \"boolean\" },\n /** `clean` / `migrate` 专用:确认不可逆 maintenance 动作或在 clean Git restore point 下执行 migration。 */\n yes: { type: \"boolean\" },\n /** 打印用法说明并退出。 */\n help: { type: \"boolean\", short: \"h\" },\n /** 打印 niceeval 的版本号并退出。 */\n version: { type: \"boolean\", short: \"v\" },\n} as const;\nfunction numberFlag(name: string, raw: string | undefined): number | undefined {\n if (raw === undefined)\n return undefined;\n const n = Number(raw);\n if (!Number.isFinite(n)) {\n throw usageError(t(\"cli.flag.invalidNumber\", { flag: name, value: raw }));\n }\n return n;\n}\nconst CLI_COMMANDS = [\"check\", \"exp\", \"debug\", \"accept\", \"show\", \"list\", \"view\", \"clean\", \"migrate\", \"init\", \"run\", \"sandbox\", \"session\", \"docker\"] as const;\ntype CliCommand = (typeof CLI_COMMANDS)[number];\ninterface ParsedCliArgs {\n readonly command: CliCommand;\n readonly positionals: string[];\n readonly flags: Flags;\n /** Canonical option names in argv order, after boolean|string normalization. */\n readonly providedOptions: readonly string[];\n}\nfunction isCliCommand(candidate: string): candidate is CliCommand {\n return CLI_COMMANDS.some((command) => command === candidate);\n}\nfunction parseArgs(argv: string[]): ParsedCliArgs {\n if (argv[0] === \"--\")\n argv = argv.slice(1);\n if (argv.some((arg) => arg === \"--strict\" || arg.startsWith(\"--strict=\"))) {\n throw usageError(t(\"cli.flag.strictRemoved\"));\n }\n // --diff=<路径> 预扫:diff 本体是布尔(裸 --diff = 文件级摘要),路径只接受 = 连写。\n let diffPath: string | undefined;\n // --keep-sandbox[=failed|all] 预扫:本体是布尔(裸 = failed 档),档位只接受 = 连写。\n let keepSandboxTier: \"failed\" | \"all\" | undefined;\n // --timing[=summary|full] 预扫:node:util 的单个 option 不支持 boolean|string 联合,\n // 所以 mode 在严格 parseArgs 前提取,再把两种形式统一成布尔 --timing。\n let timingMode: \"summary\" | \"full\" | undefined;\n // --source[=full|<path>] 预扫:本体是布尔,值只接受 = 连写,避免吞掉 eval 前缀位置参数。\n let sourceValue: string | undefined;\n let rerunMode: \"failed\" | \"all\" | undefined;\n // boolean|string 联合 flag 的空格写法先归一:--rerun all → --rerun=all;\n // --host 的裸写则补成默认地址,保持 `--host <地址>` 的普通 string flag 形态。\n {\n const normalized: string[] = [];\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index]!;\n const next = argv[index + 1];\n if (arg === \"--rerun\" && (next === \"failed\" || next === \"all\")) {\n normalized.push(`--rerun=${next}`);\n index += 1;\n }\n else if (arg === \"--host\" && (next === undefined || next.startsWith(\"-\"))) {\n normalized.push(\"--host=0.0.0.0\");\n }\n else {\n normalized.push(arg);\n }\n }\n argv = normalized;\n }\n argv = argv.map((arg) => {\n if (arg.startsWith(\"--host=\")) {\n const value = arg.slice(\"--host=\".length);\n if (value.length === 0) {\n throw usageError(\"--host=<address> requires a non-empty address, or use bare --host.\\n\");\n }\n }\n if (arg.startsWith(\"--source=\")) {\n const value = arg.slice(\"--source=\".length);\n if (value.length === 0) {\n throw usageError(\"--source=<path> requires a non-empty captured source path, or use bare --source.\\n\");\n }\n sourceValue = value;\n return \"--source\";\n }\n if (arg.startsWith(\"--diff=\")) {\n const path = arg.slice(\"--diff=\".length);\n if (path)\n diffPath = path;\n return \"--diff\";\n }\n if (arg.startsWith(\"--keep-sandbox=\")) {\n const tier = arg.slice(\"--keep-sandbox=\".length);\n if (tier !== \"failed\" && tier !== \"all\") {\n throw usageError(`--keep-sandbox only accepts \"failed\" (default) or \"all\", got \"${tier}\".\\n`);\n }\n keepSandboxTier = tier;\n return \"--keep-sandbox\";\n }\n if (arg.startsWith(\"--timing=\")) {\n const mode = arg.slice(\"--timing=\".length);\n if (mode !== \"summary\" && mode !== \"full\") {\n throw usageError(`--timing only accepts \"summary\" (default) or \"full\", got \"${mode}\".\\n`);\n }\n timingMode = mode;\n return \"--timing\";\n }\n if (arg.startsWith(\"--rerun=\")) {\n const mode = arg.slice(\"--rerun=\".length);\n if (mode !== \"failed\" && mode !== \"all\") {\n throw usageError(`--rerun only accepts \"failed\" (default) or \"all\", got \"${mode}\".\\n`);\n }\n rerunMode = mode;\n return \"--rerun\";\n }\n // `--output` 整个删除(见 docs/feature/experiments/cli.md 与 memory/exp-output-two-forms-ruling.md):\n // beta 不留别名,任何取值(裸 flag 或 `--output=value`)都按用法错误拒绝,不静默吞掉、也不\n // 落到 node:util parseArgs 的通用「unknown option」文案——给出专门的 error:/fix: 两行,\n // 指向唯一还存在的两条路径:不加 flag 跑人读文本,机器面用 `--json`。\n if (arg === \"--output\" || arg.startsWith(\"--output=\")) {\n throw usageError(t(\"cli.flag.outputRemoved\"));\n }\n return arg;\n });\n let values: globalThis.Record<string, string | boolean | undefined>;\n let rawPositionals: string[];\n let providedOptions: string[];\n try {\n const parsed = nodeParseArgs({\n args: argv,\n options: FLAG_OPTIONS,\n allowPositionals: true,\n strict: true,\n tokens: true,\n });\n values = parsed.values as globalThis.Record<string, string | boolean | undefined>;\n rawPositionals = parsed.positionals;\n providedOptions = parsed.tokens\n .filter((token): token is Extract<(typeof parsed.tokens)[number], {\n kind: \"option\";\n }> => token.kind === \"option\")\n .map((token) => token.name);\n }\n catch (e) {\n if (e instanceof CliUsageError)\n throw e;\n throw usageError(t(\"cli.flag.parseError\", { message: e instanceof Error ? e.message : String(e) }));\n }\n // 第一个位置参数必须是已知命令;其余是 eval id 前缀 / view 输入。\n // 裸 eval id 早已不再是运行入口,所以不识别的首 token 应当就地报用法错误,\n // 不应先装载项目 config / eval 再偶然以其它错误退出。\n let command: CliCommand = \"run\";\n let positionals = rawPositionals;\n if (rawPositionals.length > 0) {\n const candidate = rawPositionals[0];\n if (!isCliCommand(candidate)) {\n throw usageError(t(\"cli.command.unknown\", { command: candidate }));\n }\n command = candidate;\n positionals = rawPositionals.slice(1);\n }\n const flags: Flags = {\n agent: values.agent as string | undefined,\n model: values.model as string | undefined,\n attempts: numberFlag(\"attempts\", values.attempts as string | undefined),\n maxConcurrency: numberFlag(\"max-concurrency\", values[\"max-concurrency\"] as string | undefined),\n maxBuildConcurrency: numberFlag(\"max-build-concurrency\", values[\"max-build-concurrency\"] as string | undefined),\n timeout: numberFlag(\"timeout\", values.timeout as string | undefined),\n budget: numberFlag(\"budget\", values.budget as string | undefined),\n tag: values.tag as string | undefined,\n junit: values.junit as string | undefined,\n json: values.json === true,\n smoke: values.smoke === true,\n out: values.out as string | undefined,\n port: numberFlag(\"port\", values.port as string | undefined),\n host: values.host as string | undefined,\n dry: values.dry === true,\n force: values.force === true,\n rerun: values.rerun === true ? (rerunMode ?? \"failed\") : undefined,\n earlyExit: values[\"no-early-exit\"] === true ? false : values[\"early-exit\"] === true ? true : undefined,\n open: values[\"no-open\"] === true ? false : values.open === true ? true : undefined,\n help: values.help === true,\n version: values.version === true,\n yes: values.yes === true,\n source: values.source === true ? (sourceValue ?? true) : undefined,\n execution: values.execution === true,\n diff: values.diff === true && diffPath === undefined,\n diffPath,\n timing: values.timing === true ? (timingMode ?? \"summary\") : undefined,\n grep: values.grep as string | undefined,\n keepSandbox: values[\"keep-sandbox\"] === true ? (keepSandboxTier ?? \"failed\") : undefined,\n all: values.all === true,\n window: values.window as string | undefined,\n sandboxPath: values.path as string | undefined,\n leaveRunning: values[\"leave-running\"] === true,\n history: values.history === true,\n usage: values.usage === true,\n stats: values.stats === true,\n experiment: values.experiment as string[] | undefined,\n record: values.record as string | undefined,\n run: values.run as string[] | undefined,\n report: values.report as string | undefined,\n page: values.page as string | undefined,\n theme: values.theme as string | undefined,\n orphans: values.orphans === true,\n teardown: values.teardown === true,\n recoverSharedState: values[\"recover-shared-state\"] as string | undefined,\n ownerToken: values[\"owner-token\"] as string | undefined,\n confirmOwnerTerminated: values[\"confirm-owner-terminated\"] === true,\n confirmRemoteQuiesced: values[\"confirm-remote-quiesced\"] === true,\n };\n return { command, positionals, flags, providedOptions };\n}\n/**\n * exp 只接受两类输入:位置参数选「跑哪些 eval」+ 调度/输出/机器出口 flag 选「对着哪个 agent、\n * 怎么跑」。show / view 专属的证据切面(`--source`/`--execution`/`--diff`)、时间轴(`--history`)、\n * Sample 收窄(`--experiment`)、报告装载(`--report`/`--page`)、查看器\n * (`--run`/`--out`/`--port`/`--open`)不能被 exp 静默忽略(见 docs/feature/experiments/\n * cli.md「用法错误」)。返回第一个被误用的 flag 及其归属命令(用于报错),没有误用返回 undefined。\n */\n/** A dry plan never retains scoped Record capabilities or result-shaped legacy data. */\ninterface CurrentDryPlan {\n readonly slots: readonly CurrentDryPlanSlot[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n}\ninterface CurrentDryPlanSlot {\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 {\n readonly attachment: string;\n readonly recordedClaim: string;\n readonly sourceState: string;\n readonly result: string;\n readonly reason: string;\n }[];\n readonly reason?: string;\n readonly scope?: string;\n}\ninterface CurrentDryPlanRow {\n readonly experimentId: string;\n readonly evalId: string;\n readonly evalGroupId?: string;\n readonly evalGroupIndex?: number;\n readonly slots: readonly CurrentDryPlanSlot[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n readonly locked?: boolean;\n}\nfunction projectCurrentDryPlan(input: {\n readonly slots: readonly ExecutionReusePlanSlot[];\n readonly readbacks: readonly CurrentReuseReadbackSnapshot[];\n}): CurrentDryPlan {\n return Object.freeze({\n slots: Object.freeze(input.slots.map(projectCurrentDryPlanSlot)),\n readbacks: Object.freeze([...input.readbacks]),\n });\n}\nfunction projectCurrentDryPlanSlot(slot: ExecutionReusePlanSlot): CurrentDryPlanSlot {\n return Object.freeze({\n runId: String(slot.runId),\n slotId: String(slot.slotId),\n experimentId: slot.experimentId,\n evalId: slot.evalId,\n attempt: slot.attempt,\n state: slot.state === \"reuse\" ? \"reused\" : \"gap\",\n comparisons: Object.freeze(slot.comparisons.map((comparison) => Object.freeze({\n attachment: comparison.attachment,\n recordedClaim: comparison.recordedClaim,\n sourceState: comparison.sourceState,\n result: comparison.result,\n reason: comparison.reason,\n }))),\n ...(slot.state === \"gap\" ? { reason: slot.reason, scope: slot.scope } : {}),\n });\n}\nfunction currentDryPlanRows(plan: CurrentDryPlan): readonly CurrentDryPlanRow[] {\n const rows = new Map<string, {\n experimentId: string;\n evalId: string;\n slots: CurrentDryPlanSlot[];\n readbacks: CurrentReuseReadbackSnapshot[];\n }>();\n const rowFor = (experimentId: string, evalId: string) => {\n const key = JSON.stringify([experimentId, evalId]);\n const existing = rows.get(key);\n if (existing !== undefined)\n return existing;\n const created = { experimentId, evalId, slots: [], readbacks: [] };\n rows.set(key, created);\n return created;\n };\n for (const slot of plan.slots)\n rowFor(slot.experimentId, slot.evalId).slots.push(slot);\n for (const readback of plan.readbacks) {\n rowFor(readback.target.experimentId, readback.target.evalId).readbacks.push(readback);\n }\n return Object.freeze([...rows.values()].map((row) => Object.freeze({\n experimentId: row.experimentId,\n evalId: row.evalId,\n slots: Object.freeze([...row.slots].sort((left, right) => left.attempt - right.attempt)),\n readbacks: Object.freeze([...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 renderCurrentDryPlan(input: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configs: number;\n readonly attempts: number;\n readonly rows: readonly CurrentDryPlanRow[];\n readonly pluginAudit: CurrentDryPluginAudit;\n}): string {\n const reused = input.rows.reduce((total, row) => total + row.slots.filter((slot) => slot.state === \"reused\").length, 0);\n const lines = [\n `plan: ${input.totalAttempts} attempts · ${input.evals} evals × ${input.configs} configs · runs ${input.attempts}`,\n ...(reused === 0 ? [] : [`reuse: ${reused}/${input.totalAttempts} exact current Record attempts`]),\n `plugins: ${input.pluginAudit.occurrences.length} lifecycle occurrences`,\n ];\n for (const row of input.rows) {\n const reusedAttempts = row.slots.filter((slot) => slot.state === \"reused\").map((slot) => slot.attempt);\n const gaps = row.slots.filter((slot) => slot.state === \"gap\");\n const hasIdentityGap = gaps.some((slot) => slot.reason === \"identity-mismatch\");\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 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 const locator = readback.source.locator;\n lines.push(` source ${locator} · ${readback.state} · verdict ${verdict}`);\n if (hasIdentityGap && readback.state === \"prior\") {\n lines.push(` accept: niceeval accept ${locator}`);\n }\n }\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\ninterface CurrentDryPluginAudit {\n readonly occurrences: readonly JsonValue[];\n}\nfunction renderCurrentDryPlanJson(input: {\n readonly totalAttempts: number;\n readonly evals: number;\n readonly configs: number;\n readonly attempts: number;\n readonly rows: readonly CurrentDryPlanRow[];\n readonly pluginAudit: CurrentDryPluginAudit;\n}): string {\n const reused = input.rows.reduce((total, row) => total + row.slots.filter((slot) => slot.state === \"reused\").length, 0);\n return `${JSON.stringify({\n format: \"niceeval.current-reuse-plan/v1\",\n schemaVersion: 1,\n total: input.totalAttempts,\n evals: input.evals,\n configs: input.configs,\n attempts: input.attempts,\n reused,\n matrix: input.rows,\n plugins: input.pluginAudit.occurrences,\n })}\\n`;\n}\n/**\n * Fold the invocation's real fresh results and current Record readbacks at the\n * same eval identity. This intentionally projects only identity + terminal\n * verdict; a reused readback is never recreated as an EvalResult.\n */\nexport function foldInvocationEvalStats(summary: Pick<InvocationSummary, \"results\" | \"reusedAttempts\">) {\n const terminals = [\n ...summary.results.map((result) => Object.freeze({\n identity: `${result.experimentId ?? \"\"}|${result.id}`,\n verdict: result.verdict,\n })),\n ...summary.reusedAttempts.map((readback) => Object.freeze({\n identity: `${readback.target.experimentId}|${readback.target.evalId}`,\n verdict: readback.source.evaluationKind !== \"score\"\n ? readback.verdict\n : readback.score.state === \"applicable\"\n && readback.score.attachment.state === \"available\"\n && readback.score.attachment.value.state === \"complete\"\n ? \"passed\" as const\n : \"errored\" as const,\n })),\n ];\n return evalLevelStats(terminals, (terminal) => terminal.identity);\n}\nfunction firstViewerOnlyFlag(flags: Flags): {\n flag: string;\n command: string;\n} | undefined {\n const SHOW = \"show\";\n const BOTH = \"show / view\";\n const VIEW = \"view\";\n if (flags.source)\n return { flag: \"--source\", command: SHOW };\n if (flags.execution)\n return { flag: \"--execution\", command: SHOW };\n if (flags.timing !== undefined)\n return { flag: \"--timing\", command: SHOW };\n if (flags.grep !== undefined)\n return { flag: \"--grep\", command: SHOW };\n if (flags.diff || flags.diffPath !== undefined)\n return { flag: \"--diff\", command: SHOW };\n if (flags.history)\n return { flag: \"--history\", command: SHOW };\n if (flags.usage)\n return { flag: \"--usage\", command: SHOW };\n if (flags.stats)\n return { flag: \"--stats\", command: SHOW };\n if (flags.experiment !== undefined)\n return { flag: \"--experiment\", command: BOTH };\n if (flags.report !== undefined)\n return { flag: \"--report\", command: BOTH };\n if (flags.theme !== undefined)\n return { flag: \"--theme\", command: VIEW };\n if (flags.page !== undefined)\n return { flag: \"--page\", command: BOTH };\n if (flags.run !== undefined)\n return { flag: \"--run\", command: VIEW };\n if (flags.out !== undefined)\n return { flag: \"--out\", command: VIEW };\n if (flags.port !== undefined)\n return { flag: \"--port\", command: VIEW };\n if (flags.open !== undefined)\n return { flag: \"--open\", command: VIEW };\n return undefined;\n}\n/** `clean` and `migrate` operate on a current Record root with explicit confirmation. */\nfunction firstRecordMaintenanceUnsupportedFlag(flags: Flags): string | undefined {\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--json\", flags.json],\n [\"--smoke\", flags.smoke],\n [\"--dry\", flags.dry],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", flags.open],\n [\"--out\", flags.out],\n [\"--port\", flags.port],\n [\"--host\", flags.host],\n [\"--source\", flags.source],\n [\"--execution\", flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", flags.grep],\n [\"--timing\", flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--experiment\", flags.experiment],\n [\"--run\", flags.run],\n [\"--report\", flags.report],\n [\"--page\", flags.page],\n [\"--theme\", flags.theme],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n [\"--recover-shared-state\", flags.recoverSharedState],\n [\"--owner-token\", flags.ownerToken],\n [\"--confirm-owner-terminated\", flags.confirmOwnerTerminated],\n [\"--confirm-remote-quiesced\", flags.confirmRemoteQuiesced],\n ];\n const bad = unsupported.find(([flag, value]) => {\n if (flag === \"--open/--no-open\" || flag === \"--early-exit/--no-early-exit\") {\n return value !== undefined;\n }\n return value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0);\n });\n return bad?.[0];\n}\n/**\n * `accept` 接受一个或多个精确 locator;它不是 `exp` 的另一种选择器,也不派发 attempt。\n * `--record` 是唯一允许的附加 flag,用来接受发布根或其它显式记录根里的结果。\n */\nfunction parseAcceptLocators(positionals: string[], flags: Flags): string[] {\n if (positionals.length === 0 || positionals.some((locator) => !/^@[^@\\s]+$/.test(locator))) {\n throw usageError(t(\"cli.accept.usage\"));\n }\n if (new Set(positionals).size !== positionals.length) {\n throw usageError(\"niceeval accept rejects duplicate locators.\\n\");\n }\n // `parseArgs` 已经负责未知 flag;这里拒绝那些虽为全局已知、但会改变运行/查看语义的 flag。\n // `--record` 是 accept 的唯一范围输入,help/version 在 main() 更早处理。\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--json\", flags.json],\n [\"--dry\", flags.dry],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", flags.open],\n [\"--source\", flags.source],\n [\"--execution\", flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", flags.grep],\n [\"--timing\", flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--experiment\", flags.experiment],\n [\"--run\", flags.run],\n [\"--report\", flags.report],\n [\"--page\", flags.page],\n [\"--theme\", flags.theme],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n [\"--recover-shared-state\", flags.recoverSharedState],\n [\"--owner-token\", flags.ownerToken],\n [\"--confirm-owner-terminated\", flags.confirmOwnerTerminated],\n [\"--confirm-remote-quiesced\", flags.confirmRemoteQuiesced],\n ];\n const bad = unsupported.find(([flag, value]) => {\n // `--no-open` / `--no-early-exit` are represented as false, but are still\n // explicit flags and therefore invalid on this command.\n if (flag === \"--open/--no-open\" || flag === \"--early-exit/--no-early-exit\")\n return value !== undefined;\n return value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0);\n });\n if (bad) {\n throw usageError(t(\"cli.accept.flagUnsupported\", { flag: bad[0] }));\n }\n return [...positionals];\n}\ninterface AcceptLocatorResult {\n runId: string;\n locator: string;\n sourceLocator: string;\n fingerprint?: string;\n}\n/** 调用 acceptance core;CLI 只负责 cwd/记录根边界、输出与退出码,不重建结果或启动 runner。 */\nfunction runAcceptCommand(cwd: string, locators: readonly string[], recordRoot: string | undefined) {\n return Effect.gen(function* () {\n const results: readonly AcceptLocatorResult[] = yield* cliEffect(\"accept locators\", experimentHost.accept({\n cwd,\n locators,\n ...(recordRoot !== undefined ? { recordRoot } : {}),\n }));\n yield* Effect.sync(() => {\n for (const result of results) {\n process.stdout.write(t(\"cli.accept.done\", {\n runId: result.runId,\n sourceLocator: result.sourceLocator,\n locator: result.locator,\n fingerprint: result.fingerprint ?? \"—\",\n }));\n }\n });\n });\n}\n// ── exp rename:CLI 契约与纯解析/格式化 ──────────────────────────────────────\n// 核心在 src/runner/rename-experiment.ts(planExperimentRename / renameExperiment,\n// 资格门与写入都在那里,见 docs/source-map.md 与 docs/feature/experiments/rename.md);\n// CLI 只做:解析 `exp rename <oldId> <newId>`、递选项进核心、把核心返回的计划/结果按\n// 形态渲染。稳定 reason、计划与结果文档都是核心导出的契约,CLI 不在渲染层重建资格算法。\nexport const EXPERIMENT_RENAME_FORMAT = \"niceeval.experimentRename\" as const;\nexport const EXPERIMENT_RENAME_SCHEMA_VERSION = 1 as const;\n/**\n * exp rename 的机器文档:单份 JSON,按 status 判别。\n * - `plan`(核心计划,可含 `blocked` 阻断原因);\n * - `rejected`(核心 `renameExperiment` 抛 `ExperimentRenameError` 时的整批拒绝);\n * - `done`(核心 `RenamedExperiment` = 成功文档)。\n */\nexport type ExperimentRenameJsonDocument = ExperimentRenamePlan | ExperimentRenameRejected | RenamedExperiment;\nconst EXPERIMENT_RENAME_REASON_MESSAGE: Record<ExperimentRenameReason, MessageKey> = {\n \"source-empty\": \"cli.rename.error.sourceEmpty\",\n \"target-not-found\": \"cli.rename.error.targetNotFound\",\n \"target-has-results\": \"cli.rename.error.targetHasResults\",\n \"source-unreadable\": \"cli.rename.error.sourceUnreadable\",\n \"artifact-unavailable\": \"cli.rename.error.artifactUnavailable\",\n \"nothing-to-migrate\": \"cli.rename.error.nothingToMigrate\",\n};\n/**\n * 解析 exp rename 的位置参数:必须恰好两个(一个旧 id、一个新 id)。\n * 纯函数,CLI 与测试共用。\n */\nexport function parseExperimentRenamePositionals(args: readonly string[]): {\n ok: true;\n oldId: string;\n newId: string;\n} | {\n ok: false;\n kind: \"usage\";\n} {\n if (args.length !== 2 || args[0] === undefined || args[1] === undefined) {\n return { ok: false, kind: \"usage\" };\n }\n return { ok: true, oldId: args[0], newId: args[1] };\n}\n/**\n * exp rename 只允许 --dry / --json;返回第一个被误用的 flag,没有误用返回 undefined。\n * 与 accept 同一套纪律:node:util parseArgs 已经报未知 flag,这里拒绝那些全局已知、\n * 但会改变运行/查看语义的 flag。\n */\nexport function firstExperimentRenameUnsupportedFlag(flags: Flags): string | undefined {\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", flags.open],\n [\"--source\", flags.source],\n [\"--execution\", flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", flags.grep],\n [\"--timing\", flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--experiment\", flags.experiment],\n [\"--record\", flags.record],\n [\"--run\", flags.run],\n [\"--report\", flags.report],\n [\"--page\", flags.page],\n [\"--theme\", flags.theme],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n [\"--recover-shared-state\", flags.recoverSharedState],\n [\"--owner-token\", flags.ownerToken],\n [\"--confirm-owner-terminated\", flags.confirmOwnerTerminated],\n [\"--confirm-remote-quiesced\", flags.confirmRemoteQuiesced],\n [\"--out\", flags.out],\n [\"--port\", flags.port],\n [\"--host\", flags.host],\n ];\n const bad = unsupported.find(([flag, value]) => {\n // `--no-open` / `--no-early-exit` 表现为 false,但仍是显式 flag,在 rename 上同样非法。\n if (flag === \"--open/--no-open\" || flag === \"--early-exit/--no-early-exit\")\n return value !== undefined;\n return value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0);\n });\n return bad?.[0];\n}\n/** 人读面:核心计划 → 预览文本。逐条列出迁移与排除;有 `blocked` 时点名阻断原因。 */\nexport function renderExperimentRenamePlanHuman(plan: ExperimentRenamePlan): string {\n const lines = [t(\"cli.rename.previewHeader\", { oldId: plan.oldId, newId: plan.newId })];\n if (plan.blocked !== undefined) {\n lines.push(t(\"cli.rename.blocked\", { reason: plan.blocked.reason }));\n lines.push(...renderExperimentRenameBlockedDetail(plan.blocked));\n }\n if (plan.migrations.length > 0) {\n lines.push(t(\"cli.rename.migratingHeader\", { count: plan.migrations.length }));\n for (const entry of plan.migrations) {\n lines.push(t(\"cli.rename.migratingRow\", {\n evalId: entry.evalId,\n sourceLocator: entry.sourceLocator,\n newId: plan.newId,\n }));\n }\n }\n if (plan.excluded.length > 0) {\n lines.push(t(\"cli.rename.excludedHeader\", { count: plan.excluded.length }));\n for (const entry of plan.excluded) {\n lines.push(t(\"cli.rename.excludedRow\", { evalId: entry.evalId, reason: entry.reason }));\n }\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n/** 拒绝的人读面:先给 reason 专属文案(点名旧 id、新 id、受影响 eval 与下一步),再补冲突清单。 */\nexport function renderExperimentRenameRejectedHuman(rejected: ExperimentRenameRejected): string {\n const lines = [\n t(EXPERIMENT_RENAME_REASON_MESSAGE[rejected.reason], {\n oldId: rejected.oldId,\n newId: rejected.newId,\n evalId: rejected.evalId ?? \"\",\n }),\n ];\n lines.push(...renderExperimentRenameRejectedDetail(rejected));\n return `${lines.join(\"\\n\")}\\n`;\n}\n/** 成功的人读面:新 snapshot 路径 + 逐条新 locator。 */\nexport function renderExperimentRenameDoneHuman(done: RenamedExperiment): string {\n const lines = [\n t(\"cli.rename.doneHeader\", { oldId: done.oldId, newId: done.newId, count: done.migrated.length }),\n t(\"cli.rename.snapshotPath\", { path: done.snapshotPath }),\n ];\n for (const entry of done.migrated) {\n lines.push(t(\"cli.rename.doneRow\", {\n evalId: entry.evalId,\n sourceLocator: entry.sourceLocator,\n locator: entry.locator,\n }));\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n/** 阻断的逐条事实:冲突 eval 逐行列出,并保留底层读取详情。 */\nfunction renderExperimentRenameBlockedDetail(blocked: ExperimentRenameBlocked): string[] {\n const lines: string[] = [];\n for (const evalId of blocked.conflictingEvals ?? []) {\n lines.push(` ${evalId}`);\n }\n if (blocked.detail !== undefined)\n lines.push(` ${blocked.detail}`);\n return lines;\n}\nfunction renderExperimentRenameRejectedDetail(rejected: ExperimentRenameRejected): string[] {\n const lines: string[] = [];\n const conflicting = rejected.conflictingEvals ?? [];\n if (conflicting.length > 0) {\n lines.push(t(\"cli.rename.conflicting\", { evals: conflicting.join(\", \") }));\n }\n return lines;\n}\n/** 机器面:单份 JSON 文档,不混入人读文本(见 rename.md「命令」)。 */\nexport function renderExperimentRenameJson(document: ExperimentRenameJsonDocument): string {\n return `${JSON.stringify({\n format: EXPERIMENT_RENAME_FORMAT,\n schemaVersion: EXPERIMENT_RENAME_SCHEMA_VERSION,\n ...document,\n })}\\n`;\n}\n/** 把 renameExperiment 抛出的资格错误投影成 rejected 文档(JSON 与拒绝人读共用)。 */\nexport function experimentRenameRejectedFromError(error: ExperimentRenameError): ExperimentRenameRejected {\n const plan = error.plan;\n const blocked = plan?.blocked;\n return {\n status: \"rejected\",\n oldId: plan?.oldId ?? \"\",\n newId: plan?.newId ?? \"\",\n reason: error.reason,\n ...(blocked?.evalId === undefined ? {} : { evalId: blocked.evalId }),\n ...(blocked?.conflictingEvals === undefined ? {} : { conflictingEvals: blocked.conflictingEvals }),\n ...(blocked?.detail === undefined ? {} : { detail: blocked.detail }),\n };\n}\n/** 退出码:可迁移预览与成功执行为 0;blocked 预览 / rejected 整批零写入按失败退出。 */\nexport function experimentRenameExitCode(document: ExperimentRenameJsonDocument): number {\n if (document.status === \"done\")\n return 0;\n if (document.status === \"plan\")\n return document.blocked === undefined ? 0 : 1;\n return 1;\n}\n/**\n * exp rename 的 CLI 执行:解析 → 核心 → 渲染 → 退出码。核心契约见\n * src/runner/rename-experiment.ts(planExperimentRename / renameExperiment)。\n * renameExperiment 对资格失败抛 ExperimentRenameError,CLI 把它投影成 rejected 文档。\n */\nfunction runExperimentRenameCommand(cwd: string, args: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n const parsed = parseExperimentRenamePositionals(args);\n if (!parsed.ok) {\n yield* Effect.sync(() => process.stderr.write(t(\"cli.rename.usage\")));\n return 1;\n }\n const unsupported = firstExperimentRenameUnsupportedFlag(flags);\n if (unsupported !== undefined) {\n yield* Effect.sync(() => process.stderr.write(t(\"cli.rename.flagUnsupported\", { flag: unsupported })));\n return 1;\n }\n const { oldId, newId } = parsed;\n const mod = (yield* cliPromise(\"load experiment rename command\", () => __niceevalDynamicImport(\"./runner/rename-experiment.cjs\"))) as unknown as {\n planExperimentRename(options: {\n cwd: string;\n oldId: string;\n newId: string;\n }): Effect.Effect<ExperimentRenamePlan, unknown, never>;\n renameExperiment(options: {\n cwd: string;\n oldId: string;\n newId: string;\n }): Effect.Effect<RenamedExperiment, unknown, never>;\n };\n if (flags.dry) {\n const plan = yield* cliEffect(\"plan experiment rename\", mod.planExperimentRename({ cwd, oldId, newId }));\n yield* Effect.sync(() => {\n if (flags.json)\n process.stdout.write(renderExperimentRenameJson(plan));\n else\n process.stdout.write(renderExperimentRenamePlanHuman(plan));\n });\n return experimentRenameExitCode(plan);\n }\n const outcome = yield* Effect.either(cliEffect(\"rename experiment\", mod.renameExperiment({ cwd, oldId, newId })));\n if (Either.isRight(outcome)) {\n yield* Effect.sync(() => {\n if (flags.json)\n process.stdout.write(renderExperimentRenameJson(outcome.right));\n else\n process.stdout.write(renderExperimentRenameDoneHuman(outcome.right));\n });\n return 0;\n }\n // ExperimentRenameError 携带稳定 reason 与 rejected plan;其它异常按通用失败兜底。\n const error = outcome.left.cause;\n yield* Effect.sync(() => {\n if (error instanceof ExperimentRenameError) {\n const rejected = experimentRenameRejectedFromError(error);\n if (flags.json)\n process.stdout.write(renderExperimentRenameJson(rejected));\n else\n process.stdout.write(renderExperimentRenameRejectedHuman(rejected));\n }\n else {\n process.stderr.write(t(\"cli.rename.failed\", { error: error instanceof Error ? error.message : String(error) }));\n }\n });\n return 1;\n });\n}\n/** 加载 cwd/.env(不覆盖已有环境变量)。 */\nfunction loadDotenv(cwd: string): Effect.Effect<void, CliFailure> {\n const path = join(cwd, \".env\");\n if (!existsSync(path))\n return Effect.void;\n return cliPromise(\"read .env\", () => readFile(path, \"utf-8\")).pipe(Effect.tap((raw) => Effect.sync(() => {\n for (const line of raw.split(\"\\n\")) {\n const entry = line.trim();\n if (!entry || entry.startsWith(\"#\"))\n continue;\n const eq = entry.indexOf(\"=\");\n if (eq === -1)\n continue;\n const key = entry.slice(0, eq).trim();\n let value = entry.slice(eq + 1).trim();\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (process.env[key] === undefined)\n process.env[key] = value;\n }\n })), Effect.asVoid);\n}\nfunction loadConfig(cwd: string): Effect.Effect<Config, CliFailure> {\n return Effect.gen(function* () {\n const { loadConfigFile } = (yield* cliPromise(\"load config module\", () => __niceevalDynamicImport(\"./load-config.cjs\"))) as {\n loadConfigFile(cwd: string): Promise<Config>;\n };\n return yield* cliPromise(\"load NiceEval config\", () => loadConfigFile(cwd));\n });\n}\n// AGENTS.md/CLAUDE.md 托管区块:告诉在这个项目里干活的 coding agent「niceeval 不在你的训练数据里,\n// 先读随包文档,跑完只经公开 show 面诊断」。随包只发中文准绳版文档(英文站是手工同步、可能滞后,\n// 不进包,见 package.json 的 files);init 时写入/刷新;标记之外的用户内容永不触碰。\nconst AGENT_RULES_BEGIN = \"<!-- BEGIN:niceeval-agent-rules -->\";\nconst AGENT_RULES_END = \"<!-- END:niceeval-agent-rules -->\";\nconst AGENT_RULES_CONTENT = [\n \"# niceeval is NOT in your training data\",\n \"\",\n \"Its APIs and conventions may differ from anything you have seen. Start with\",\n \"`node_modules/niceeval/INDEX.md`, then read the task-specific bundled guides it points\",\n \"to before writing any eval, experiment, adapter, or niceeval config. That index and\",\n \"the bundled Chinese docs are the authoritative version matching this installation.\",\n \"After a run, use this repository's package-manager invocation of `niceeval show` for\",\n \"diagnosis (`pnpm --silent exec niceeval show` in a pnpm project). Pick an `@<locator>`\",\n \"from the compact index, then show that locator for an overview, or add\",\n \"`--source` / `--execution` / `--timing` / `--diff` / `--json` for evidence.\",\n \"When diagnosing an existing run, do not inspect raw `.niceeval` files or treat the current\",\n \"`evals/` or `agents/` source as evidence of what happened in that run. If `niceeval show`\",\n \"cannot expose the evidence you need, report that product gap. Reading source remains\",\n \"appropriate when the task is to author or modify that source.\",\n].join(\"\\n\");\n// 优先复用已有的 AGENTS.md;项目只有 CLAUDE.md(没有 AGENTS.md)时改写 CLAUDE.md 本身,\n// 不再另建一份重复文件;两者都没有则新建 AGENTS.md。CLAUDE.md 是指向 AGENTS.md 的符号链接时,\n// existsSync 会 follow 链接——目标存在则直接算作「AGENTS.md 已存在」,写入的还是同一份内容,\n// 不会产生分裂;目标不存在(悬空链接)则落回新建 AGENTS.md,写入后链接自然生效。\nfunction resolveAgentDocPath(cwd: string): string {\n const agentsPath = join(cwd, \"AGENTS.md\");\n if (existsSync(agentsPath))\n return agentsPath;\n const claudePath = join(cwd, \"CLAUDE.md\");\n if (existsSync(claudePath))\n return claudePath;\n return agentsPath;\n}\n// init 提示用:从 cwd 向上找最近的 package.json,判断宿主是否 ESM 形态。装载本身不挑形态\n// (bin 注册了 tsx 的 ESM+CJS 双 hook,exports 全出口带 require 条件,见 docs/cli.md\n// 「装载用户 .ts」),但 CJS 编译面下 config / eval 文件用不了顶层 await,ESM 仍是推荐形态;\n// 找不到 package.json 或解析失败按非 ESM 处理(tsx/Node 的缺省语义就是 CJS)。只提示,\n// 不改用户的 package.json。\nfunction hostPrefersEsm(cwd: string): boolean {\n let dir = resolvePath(cwd);\n while (true) {\n const pkgPath = join(dir, \"package.json\");\n if (existsSync(pkgPath)) {\n try {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\")) as {\n type?: unknown;\n };\n return pkg.type === \"module\";\n }\n catch {\n return false;\n }\n }\n const parent = dirname(dir);\n if (parent === dir)\n return false;\n dir = parent;\n }\n}\nfunction initProject(cwd: string): Effect.Effect<void, CliFailure> {\n return Effect.gen(function* () {\n yield* cliPromise(\"create eval directory\", () => mkdir(join(cwd, \"evals\"), { recursive: true }));\n const configPath = join(cwd, \"niceeval.config.ts\");\n if (!existsSync(configPath)) {\n yield* cliPromise(\"write initial config\", () => writeFile(configPath, [\n 'import { defineConfig } from \"niceeval\";',\n \"\",\n \"export default defineConfig({\",\n \" // Add experiments/ with defineExperiment(...) to run evals.\",\n \" //\",\n \" // Judge Facts require an Eval declaration: judge: true. Configure the model here or\",\n \" // on an Experiment. A consumed Fact without a model or key becomes unavailable and\",\n \" // makes that Attempt errored. Any OpenAI-compatible /chat/completions service works;\",\n \" // the key is read from OPENAI_API_KEY unless apiKeyEnv says otherwise.\",\n ' // judge: { model: \"gpt-5.4-mini\" },',\n \"});\",\n \"\",\n ].join(\"\\n\"), \"utf-8\"));\n }\n const agentDocPath = resolveAgentDocPath(cwd);\n const existing = existsSync(agentDocPath)\n ? yield* cliPromise(\"read agent instructions\", () => readFile(agentDocPath, \"utf-8\"))\n : \"\";\n const next = upsertManagedBlock(existing, AGENT_RULES_BEGIN, AGENT_RULES_END, AGENT_RULES_CONTENT);\n if (next !== existing)\n yield* cliPromise(\"write agent instructions\", () => writeFile(agentDocPath, next, \"utf-8\"));\n });\n}\nfunction openBrowser(url: string): Effect.Effect<boolean, CliFailure> {\n const command = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"cmd\" : \"xdg-open\";\n const args = process.platform === \"win32\" ? [\"/c\", \"start\", \"\", url] : [url];\n return cliPromise(\"open browser\", () => new Promise((resolveOpen: (opened: boolean) => void) => {\n let done = false;\n const finish = (ok: boolean) => {\n if (done)\n return;\n done = true;\n clearTimeout(timer);\n resolveOpen(ok);\n };\n const child = spawn(command, args, { detached: true, stdio: \"ignore\" });\n const timer = setTimeout(() => finish(true), 1500);\n child.once(\"error\", () => finish(false));\n child.once(\"exit\", (code) => finish(code === 0));\n child.unref();\n }));\n}\n/**\n * run 结束后把 coordinator 累计的诊断折成 `InvocationCompletion`(见 docs/feature/experiments/cli.md\n * 「运行完成状态不只看 verdict 计数」)。只读已经真实发生过的诊断,不额外发明信号:\n * - `\"interrupted\"` 诊断只在 run.ts 判定为真·中断(Effect exit 真实标记中断,不是「signal 被\n * abort 过」这种更弱的信号)时才会出现,见 `runner/run.ts` 的 `reportInterrupted()` 调用点。\n * - `\"budget-exhausted:<experimentId>\"` 诊断的 `count` 就是该 experiment 因预算耗尽未派发的\n * attempt 数(见 `runner/feedback/reducer.ts` 对 `budget-exhausted` 事件的注释),跨\n * experiment 求和得到 `unstarted`。\n * - `\"reporter-error:<reporter>\"` 诊断转成 `ReporterError[]`;`required` 字段来自事件自带的\n * `data.required`,直接反映这个 reporter 注册时的真实 required/best-effort 分类(见上面\n * 构造 `reporters: ReporterRegistration[]` 的地方——`--junit` 为 `required: true`,\n * `config.reporters` 恒 `false`),不是一个统一写死的占位值。\n * - `earlyExitUnstarted` 从反馈状态的 attempt:early-exit 计数派生(减去 fail-fast 的那部分——\n * 那是「未完整覆盖」,进 unstarted,不是「省下的重复验证」)。\n */\nfunction assembleInvocationCompletion(state: RunFeedbackState): InvocationCompletion {\n let unstarted = 0;\n let failFastSkipped = 0;\n let haltedSkipped = 0;\n let interrupted = false;\n const reporterErrors: ReporterError[] = [];\n for (const d of state.diagnostics) {\n // 归类按**稳定词法** `code`,不按 `key`:`key` 里编着折叠身份(experimentId / evalId /\n // reporter 名),拿它做前缀匹配会在「把身份从 key 里摘出去」时静默失配——记账悄悄归零,\n // 没有任何测试或类型会报警。`code` 省略时回落到 key 的首段:缺省 key 恒是\n // `${code}:${identity}`(见 sink.ts 的 DiagnosticInput),首段即 code。\n const code = d.code ?? d.key.split(\":\", 1)[0];\n if (code === \"interrupted\") {\n interrupted = true;\n }\n else if (code === \"budget-exhausted\") {\n unstarted += d.count;\n }\n else if (code === \"fail-fast\") {\n // run 级 fail-fast 造成的未派发同样计入 unstarted(结论落 incomplete,见\n // docs/feature/experiments/architecture.md「Completion 与退出」)。\n unstarted += d.count;\n failFastSkipped += d.count;\n }\n else if (code === \"dispatch-halted\") {\n // 止损闸停派发造成的未派发(见 docs/feature/error-classification/architecture.md\n // 「记账」)。这条诊断的 count 是「同一死因被声明了几次」(重复声明折叠),不是未派发数——\n // 未派发数由 emitter 累计后写在 data.unstarted 里(与 budget-exhausted 同一口径)。\n const halted = typeof d.data?.unstarted === \"number\" ? d.data.unstarted : 0;\n unstarted += halted;\n haltedSkipped += halted;\n }\n else if (code === \"reporter-error\") {\n // required 决定这条错误是否写进 InvocationCompletion.reporterErrors 并让 completion 非 complete\n // (见 docs/cli.md「required reporter」);best-effort reporter 的失败只保留为 diagnostic。\n if (d.data?.required !== true)\n continue;\n reporterErrors.push({\n reporter: typeof d.data?.reporter === \"string\" ? d.data.reporter : d.key.slice(\"reporter-error:\".length),\n required: true,\n message: d.message,\n });\n }\n }\n // 中断造成的未派发(仍在 queued 的 attempt)同样计入 unstarted(见 docs/feature/experiments/\n // architecture.md「Completion 与退出」:budget 耗尽、fail-fast 或中断造成的未派发都不伪装成全绿)。\n if (interrupted)\n unstarted += state.queued;\n // attempt:early-exit 计数含 fail-fast 与止损闸的未派发(反馈层同一事件驱动计数守恒);\n // 「省下的重复验证」= 总数减去那两部分。\n const earlyExitUnstarted = Math.max(0, state.earlyExitSkipped - failFastSkipped - haltedSkipped);\n const status: CompletionStatus = interrupted\n ? \"interrupted\"\n : unstarted > 0 || reporterErrors.length > 0\n ? \"incomplete\"\n : \"complete\";\n return { status, unstarted, earlyExitUnstarted, reporterErrors };\n}\n/** package.json 的 version 字段;-v/--version 直接回显这个号。 */\nfunction packageVersion(): Effect.Effect<string, CliFailure> {\n return cliPromise(\"read package version\", () => readFile(new URL(\"../package.json\", __niceevalImportMetaUrl), \"utf-8\")).pipe(Effect.flatMap((raw) => Effect.try({\n try: () => (JSON.parse(raw) as {\n version: string;\n }).version,\n catch: (cause) => cliFailure(\"decode package version\", cause),\n })));\n}\nfunction writeStdout(text: string): Effect.Effect<void> {\n return Effect.sync(() => {\n process.stdout.write(text);\n });\n}\nfunction writeStderr(text: string): Effect.Effect<void> {\n return Effect.sync(() => {\n process.stderr.write(text);\n });\n}\n/** Idempotent application-level sweep for resources owned by this invocation. */\nfunction releaseCliResources(): Effect.Effect<void> {\n // Shared-state leases are never part of this exit sweep. A normal Runner\n // lifecycle releases one only after every pool/provider/Experiment cleanup\n // succeeds; a failed cleanup intentionally leaves explicit recovery work.\n return cliPromise(\"stop remaining sandboxes\", () => stopAllSandboxes()).pipe(Effect.ignore, Effect.zipRight(drainExperimentTeardowns().pipe(Effect.ignore)), Effect.zipRight(drainHeldCaseLocksEffect().pipe(Effect.ignore)));\n}\nfunction errorMessage(cause: unknown): string {\n return cause instanceof Error ? cause.message : String(cause);\n}\nfunction runDockerCommand(positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n const { runDockerProfileCommand } = (yield* cliPromise(\"load Docker profile command\", () => __niceevalDynamicImport(\"./sandbox/docker-profile/cli.cjs\"))) as {\n runDockerProfileCommand(positionals: readonly string[], options: {\n readonly json: boolean;\n readonly smoke: boolean;\n }): Promise<number>;\n };\n return yield* cliPromise(\"run Docker profile command\", () => runDockerProfileCommand(positionals, { json: flags.json, smoke: flags.smoke }));\n });\n}\nfunction runSandboxCliCommand(cwd: string, positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return cliEffect(\"run sandbox command\", runSandboxCommandEffect(cwd, [...positionals], {\n all: flags.all,\n window: flags.window,\n path: flags.sandboxPath,\n leaveRunning: flags.leaveRunning,\n run: flags.record,\n orphans: flags.orphans,\n force: flags.force,\n }));\n}\nfunction runSessionCommand(cwd: string, positionals: readonly string[], flags: Flags): Effect.Effect<number, never> {\n return Effect.gen(function* () {\n const niceevalRoot = resolvePath(cwd, \".niceeval\");\n const subcommand = positionals[0] ?? \"list\";\n if (subcommand === \"list\") {\n if (positionals.length > 2) {\n yield* writeStderr(\"niceeval session list accepts at most one experiment prefix.\\n\");\n return 1;\n }\n const outcome = yield* Effect.either(cliEffect(\"list sessions\", listSessions(niceevalRoot, {\n all: flags.all,\n ...(positionals[1] === undefined ? {} : { selector: positionals[1] }),\n })));\n if (Either.isLeft(outcome)) {\n yield* writeStderr(`${errorMessage(outcome.left.cause)}\\n`);\n return 1;\n }\n yield* writeStdout(flags.json\n ? `${JSON.stringify(outcome.right)}\\n`\n : renderSessionListText(outcome.right, Date.now(), flags.all));\n return 0;\n }\n if (subcommand === \"show\") {\n if (positionals.length !== 2 || flags.all) {\n yield* writeStderr(\"Usage: niceeval session show <sessionId> [--json]\\n\");\n return 1;\n }\n const outcome = yield* Effect.either(cliEffect(\"show session\", showSession(niceevalRoot, positionals[1]!)));\n if (Either.isLeft(outcome)) {\n yield* writeStderr(`${errorMessage(outcome.left.cause)}\\n`);\n return 1;\n }\n yield* writeStdout(flags.json\n ? `${JSON.stringify(outcome.right)}\\n`\n : renderSessionShowText(outcome.right));\n return 0;\n }\n yield* writeStderr(\"Usage: niceeval session list [--all] [<experiment-prefix>] [--json]\\n\" +\n \" niceeval session show <sessionId> [--json]\\n\");\n return 1;\n });\n}\nfunction runRecordMaintenanceCommand(cwd: string, command: \"clean\" | \"migrate\", positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n if (positionals.length > 0) {\n yield* writeStderr(`niceeval ${command} does not accept positional arguments.\\n`);\n return 1;\n }\n const unsupported = firstRecordMaintenanceUnsupportedFlag(flags);\n if (unsupported !== undefined) {\n yield* writeStderr(`niceeval ${command} does not accept ${unsupported}.\\n`);\n return 1;\n }\n const result = yield* cliEffect(\"run Record maintenance\", runRecordCliCommand({\n command,\n cwd,\n ...(flags.record === undefined ? {} : { record: flags.record }),\n yes: flags.yes,\n }));\n if (result.stdout !== \"\")\n yield* writeStdout(result.stdout);\n if (result.stderr !== \"\")\n yield* writeStderr(result.stderr);\n return result.exitCode;\n });\n}\nfunction agentRunFromExperiment(experiment: DiscoveredExperiment, selectedEvalIds: readonly string[], overrides: Pick<Flags, \"attempts\" | \"earlyExit\" | \"timeout\" | \"budget\"> = {}): AgentRun {\n return {\n agent: experiment.agent,\n model: experiment.model,\n reasoningEffort: experiment.reasoningEffort,\n flags: experiment.flags ?? {},\n plugins: experiment.plugins,\n attempts: overrides.attempts ?? experiment.attempts ?? 1,\n earlyExit: overrides.earlyExit ?? experiment.earlyExit ?? false,\n sandbox: experiment.sandbox,\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n judge: experiment.judge,\n ...resolveRunTimeout(overrides.timeout, experiment.timeoutMs),\n budget: overrides.budget ?? experiment.budget,\n selectedEvalIds,\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n description: experiment.description,\n labels: experiment.labels,\n maxConcurrency: experiment.maxConcurrency,\n setup: experiment.setup,\n teardown: experiment.teardown,\n classifyFailure: experiment.classifyFailure,\n };\n}\nfunction hasSharedStateRecoveryOptions(flags: Flags): boolean {\n return flags.recoverSharedState !== undefined ||\n flags.ownerToken !== undefined ||\n flags.confirmOwnerTerminated ||\n flags.confirmRemoteQuiesced;\n}\nfunction renderSharedStateRecoveryTarget(record: SharedStateLeaseRecord): string {\n return t(\"cli.exp.sharedStateRecoveryTarget\", {\n key: record.key,\n experimentId: record.experimentId,\n ownerToken: record.ownerToken,\n host: record.host,\n pid: record.pid,\n processIdentity: record.processIdentity,\n heartbeatAt: record.heartbeatAt,\n });\n}\nfunction experimentTeardownOf(experiment: Pick<DiscoveredExperiment, \"teardown\">): ExperimentHook | undefined {\n return typeof experiment.teardown === \"function\" ? experiment.teardown : undefined;\n}\n/**\n * A legacy free generation can exist from an interrupted pre-fix recovery:\n * it has durable owner evidence but may still have its old teardown entry.\n * Only the entry keyed by that exact immutable owner is eligible for removal.\n *\n * Claimed recovery takes the same path before publishing free. A failed or\n * contested claim therefore leaves the recovery generation closed rather than\n * letting a waiter enter while the old teardown could still be replayed.\n */\nfunction inspectExactRecoveryTeardownRegistrationEffect(input: {\n readonly niceevalRoot: string;\n readonly record: SharedStateLeaseRecord;\n readonly currentHost: string;\n}): Effect.Effect<boolean, unknown> {\n const { niceevalRoot, record, currentHost } = input;\n const id = teardownEntryId(record.experimentId, record.pid);\n return Effect.gen(function* () {\n const registration = yield* readExactTeardownRegistrationEffect(niceevalRoot, record.experimentId, record.pid);\n // A holder can die before its registration is durably written. There is\n // then no old teardown obligation to clear, but no unrelated entry may be\n // inferred from the current Experiment declaration.\n if (registration === undefined)\n return false;\n if (registration.host !== record.host) {\n return yield* Effect.fail(new Error(`teardown registration ${JSON.stringify(id)} belongs to host ${JSON.stringify(registration.host)}, ` +\n `not immutable sharedState owner host ${JSON.stringify(record.host)}`));\n }\n // The registration does not carry a process identity itself, so recovery\n // compares it to the immutable sharedState owner. This shares the lease\n // terminal boundary: an exact local Z/X/x owner is stopped; an unreadable\n // or malformed identity probe fails closed instead of treating PID\n // existence as proof that cleanup can still run.\n const terminated = yield* isExactTeardownRegistrationOwnerTerminatedEffect({\n registration,\n owner: record,\n currentHost,\n });\n if (!terminated) {\n return yield* Effect.fail(new Error(`teardown registration ${JSON.stringify(id)} still belongs to a live exact sharedState owner; refusing to clear it`));\n }\n return true;\n });\n}\nfunction clearExactRecoveryTeardownRegistrationEffect(input: {\n readonly niceevalRoot: string;\n readonly record: SharedStateLeaseRecord;\n readonly currentHost: string;\n /** Presence was checked after recovery claimed the immutable generation. */\n readonly expectedRegistration: boolean;\n}): Effect.Effect<void, unknown> {\n const { niceevalRoot, record, currentHost, expectedRegistration } = input;\n const id = teardownEntryId(record.experimentId, record.pid);\n return Effect.gen(function* () {\n const present = yield* inspectExactRecoveryTeardownRegistrationEffect({\n niceevalRoot,\n record,\n currentHost,\n });\n if (!present) {\n if (expectedRegistration) {\n return yield* Effect.fail(new Error(`teardown registration ${JSON.stringify(id)} disappeared before this recovery could clear it`));\n }\n return;\n }\n if (!expectedRegistration) {\n return yield* Effect.fail(new Error(`teardown registration ${JSON.stringify(id)} appeared after this recovery was claimed`));\n }\n const removed = yield* removeTeardownRegistrationIfPresentEffect(niceevalRoot, id);\n if (!removed) {\n return yield* Effect.fail(new Error(`teardown registration ${JSON.stringify(id)} changed before this recovery could clear it`));\n }\n });\n}\nfunction renderDebugPlanJson(input: ExperimentHostDebugPlan): string {\n return `${JSON.stringify({\n format: \"niceeval.debug-plan/v1\",\n schemaVersion: 1,\n experimentId: input.experimentId,\n evalId: input.evalId,\n commandPlan: input.commandPlan,\n })}\\n`;\n}\nfunction runDebugCommand(cwd: string, positionals: readonly string[], flags: Flags): Effect.Effect<number, CliFailure> {\n return Effect.gen(function* () {\n if (positionals.length !== 2) {\n yield* writeStderr(t(\"cli.debug.usage\"));\n return 1;\n }\n const [experimentSelector, evalSelector] = positionals as readonly [\n string,\n string\n ];\n const result = yield* cliEffect(\"debug Experiment lifecycle\", experimentHost.debug({\n cwd,\n experimentSelector,\n evalSelector,\n }));\n switch (result.status) {\n case \"experiment-no-match\":\n yield* writeStderr(t(\"cli.debug.experimentNoMatch\", {\n selector: result.selector,\n candidates: result.candidates.join(\", \") || t(\"cli.none\"),\n }));\n return 1;\n case \"experiment-ambiguous\":\n yield* writeStderr(t(\"cli.debug.experimentAmbiguous\", {\n selector: result.selector,\n candidates: result.candidates.join(\", \"),\n }));\n return 1;\n case \"eval-no-match\":\n yield* writeStderr(t(\"cli.debug.evalNoMatch\", {\n selector: result.selector,\n experimentId: result.experimentId,\n candidates: result.candidates.join(\", \") || t(\"cli.none\"),\n }));\n return 1;\n case \"eval-ambiguous\":\n yield* writeStderr(t(\"cli.debug.evalAmbiguous\", {\n selector: result.selector,\n experimentId: result.experimentId,\n candidates: result.candidates.join(\", \"),\n }));\n return 1;\n case \"planned\":\n yield* writeStdout(flags.json\n ? renderDebugPlanJson(result)\n : renderHumanCommandPlan(result.commandPlan, {\n isTTY: process.stdout.isTTY,\n noColor: process.env.NO_COLOR,\n width: process.stdout.columns,\n }));\n return 0;\n }\n });\n}\nfunction runEvaluationCommand(cwd: string, command: CliCommand, positionals: readonly string[], flags: Flags, interruption?: CliInterruptionOwnership) {\n return Effect.gen(function* () {\n // Explicit recovery is intentionally human-only. It has no receipt or\n // NDJSON contract, so accepting --json would give machine callers an\n // apparently successful but unparseable interface.\n if (command === \"exp\" && flags.recoverSharedState !== undefined && flags.json) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryJsonUnsupported\"));\n return 1;\n }\n // Keep project-local coordination (sessions, locks, kept sandboxes) separate\n // from the portable Record root selected by `--record` below.\n const coordinationRoot = resolvePath(cwd, \".niceeval\");\n const config = yield* loadConfig(cwd);\n const maxBuildConcurrency = flags.maxBuildConcurrency ?? config.maxBuildConcurrency ?? 2;\n if (!Number.isInteger(maxBuildConcurrency) || maxBuildConcurrency <= 0) {\n yield* writeStderr(`maxBuildConcurrency must be a positive integer, got ${maxBuildConcurrency}.\\n`);\n return 1;\n }\n let evals: readonly DiscoveredEval[] = Object.freeze([]);\n if (command === \"list\") {\n const listed = yield* cliEffect(\"list evals\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n }));\n evals = listed.evals;\n yield* writeStdout(t(\"cli.list.header\", { count: evals.length }));\n for (const evalDefinition of evals) {\n yield* writeStdout(` ${evalDefinition.id}${evalDefinition.description ? ` — ${evalDefinition.description}` : \"\"}\\n`);\n }\n return 0;\n }\n const agentRuns: AgentRun[] = [];\n let experimentSelection = t(\"cli.all\");\n let availableExperimentPaths = t(\"cli.none\");\n if (command === \"exp\" || command === \"check\") {\n if (hasSharedStateRecoveryOptions(flags) && (command !== \"exp\" || !flags.teardown)) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryFlags\"));\n return 1;\n }\n if (flags.agent || flags.model) {\n yield* writeStderr(t(\"cli.exp.agentModelFlagUnsupported\"));\n return 1;\n }\n if (flags.force) {\n yield* writeStderr(t(\"cli.exp.forceUnsupported\"));\n return 1;\n }\n // `--record` selects the fact root for `exp`; `check` has no Record\n // reader or writer, so accepting it there would silently discard input.\n if (command === \"check\" && flags.record !== undefined) {\n yield* writeStderr(t(\"cli.check.recordUnsupported\"));\n return 1;\n }\n const viewerFlag = firstViewerOnlyFlag(flags);\n if (viewerFlag) {\n yield* writeStderr(t(\"cli.exp.viewerFlagUnsupported\", { flag: viewerFlag.flag, command: viewerFlag.command }));\n return 1;\n }\n if (command === \"exp\" && positionals[0] === \"list\") {\n if (positionals.length > 2) {\n yield* writeStderr(\"niceeval exp list accepts at most one experiment prefix.\\n\");\n return 1;\n }\n const selector = positionals[1];\n const listed = yield* cliEffect(\"list experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n ...(selector === undefined ? {} : { selector }),\n }));\n if (listed.selections.length === 0 && selector !== undefined) {\n yield* writeStderr(t(\"cli.experiment.noMatch\", {\n arg: selector,\n experiments: browsableExperimentPaths(listed.experimentIds).join(\", \") || t(\"cli.none\"),\n }));\n return 1;\n }\n const rows = listed.selections.map(({ experiment, selectedEvalIds }) => {\n return {\n experimentId: experiment.id,\n ...(experiment.description !== undefined ? { description: experiment.description } : {}),\n agent: experiment.agent.name,\n ...(experiment.model !== undefined ? { model: experiment.model } : {}),\n attempts: experiment.attempts,\n evalCount: selectedEvalIds.length,\n labels: { ...experiment.labels },\n selectedEvalIds,\n };\n });\n if (flags.json) {\n yield* writeStdout(`${JSON.stringify({ format: \"niceeval.experiments\", schemaVersion: 1, experiments: rows })}\\n`);\n }\n else {\n for (const row of rows) {\n yield* writeStdout([\n row.experimentId,\n row.description ?? \"—\",\n row.agent,\n row.model ?? \"—\",\n `attempts=${row.attempts}`,\n `evals=${row.evalCount}`,\n `labels=${JSON.stringify(row.labels)}`,\n ].join(\"\\t\") + \"\\n\");\n }\n }\n return 0;\n }\n const expArg = positionals[0];\n const extraPatterns = positionals.slice(1);\n experimentSelection = positionals.join(\" \") || t(\"cli.all\");\n const listed = yield* cliEffect(\"select experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n ...(expArg === undefined ? {} : { selector: expArg }),\n ...(extraPatterns.length === 0 ? {} : { evalPatterns: extraPatterns }),\n }));\n evals = listed.evals;\n const selected = listed.selections;\n availableExperimentPaths = browsableExperimentPaths(listed.experimentIds).join(\", \") || t(\"cli.none\");\n if (selected.length === 0) {\n yield* writeStderr(t(\"cli.experiment.noMatch\", {\n arg: expArg ?? t(\"cli.all\"),\n experiments: availableExperimentPaths,\n }));\n if (expArg === \"show\" || expArg === \"view\") {\n yield* writeStderr(t(\"cli.experiment.viewerCommandHint\", {\n command: expArg,\n args: extraPatterns.length > 0 ? ` ${extraPatterns.join(\" \")}` : \"\",\n }));\n }\n return 1;\n }\n const reminder = yield* keptSandboxReminderEffect(cwd).pipe(Effect.catchAll(() => Effect.succeed(undefined)));\n if (reminder)\n yield* writeStderr(reminder);\n const orphans = yield* orphanReminderEffect(cwd).pipe(Effect.catchAll(() => Effect.succeed(undefined)));\n if (orphans)\n yield* writeStderr(orphans);\n const teardownReminder = yield* orphanedTeardownReminderEffect(coordinationRoot, new Set(selected\n .filter(({ experiment }) => experimentTeardownOf(experiment) !== undefined)\n .map(({ experiment }) => experiment.id)), hostname()).pipe(Effect.catchAll(() => Effect.succeed(undefined)));\n if (teardownReminder)\n yield* writeStderr(teardownReminder);\n if (flags.teardown) {\n if (extraPatterns.length > 0) {\n yield* writeStderr(t(\"cli.exp.teardownNoEvalPatterns\"));\n return 1;\n }\n const niceevalRootForTeardown = coordinationRoot;\n let selectedForTeardown = selected;\n let explicitRecovery: {\n readonly key: string;\n readonly ownerToken: string;\n readonly recoveryId: string;\n readonly experimentId: string;\n readonly record: SharedStateLeaseRecord;\n readonly registrationWasPresent: boolean;\n } | undefined;\n if (flags.recoverSharedState !== undefined) {\n // The input key is the recovery authority. Read its immutable\n // evidence before considering today's Experiment declaration: an\n // author may have renamed or removed sharedState after the holder\n // crashed, but must still have a public recovery path for that old\n // external state.\n const inspected = yield* Effect.either(readSharedStateLeaseRecoveryTargetEffect(niceevalRootForTeardown, flags.recoverSharedState));\n if (Either.isLeft(inspected)) {\n yield* writeStderr(`sharedState recovery inspection failed: ${errorMessage(inspected.left)}\\n`);\n return 1;\n }\n if (inspected.right === undefined) {\n yield* writeStderr(`No recoverable sharedState ownership evidence exists for ${JSON.stringify(flags.recoverSharedState)}.\\n`);\n return 1;\n }\n yield* writeStderr(renderSharedStateRecoveryTarget(inspected.right));\n if (selected.length !== 1) {\n yield* writeStderr(\"sharedState recovery requires an experiment selector that resolves to exactly one Experiment.\\n\");\n return 1;\n }\n const target = selected[0]!;\n if (inspected.right.experimentId !== target.experiment.id) {\n yield* writeStderr(`sharedState key ${JSON.stringify(flags.recoverSharedState)} belongs to experiment ${inspected.right.experimentId}, not ${target.experiment.id}; refusing recovery.\\n`);\n return 1;\n }\n // Inspection intentionally precedes confirmation validation. The\n // immutable generation head retains the exact owner evidence even\n // after a crashed recovery attempt; this public command is the only\n // supported way to reveal it, never private-file manipulation.\n if (flags.ownerToken === undefined ||\n !flags.confirmOwnerTerminated ||\n !flags.confirmRemoteQuiesced) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryFlags\"));\n return 1;\n }\n // Inspection is read-only and remains available without a teardown.\n // Only the uniquely selected target can reach this point. Validate\n // its teardown immediately before claiming a recovery generation.\n if (experimentTeardownOf(target.experiment) === undefined) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryTeardownRequired\", {\n experimentId: target.experiment.id,\n }));\n return 1;\n }\n const begun = yield* Effect.either(beginExplicitSharedStateRecoveryEffect({\n niceevalRoot: niceevalRootForTeardown,\n key: flags.recoverSharedState,\n ownerToken: flags.ownerToken,\n localHost: hostname(),\n confirmOwnerTerminated: flags.confirmOwnerTerminated,\n confirmRemoteQuiesced: flags.confirmRemoteQuiesced,\n }));\n if (Either.isLeft(begun)) {\n yield* writeStderr(`sharedState recovery refused: ${errorMessage(begun.left)}\\n`);\n return 1;\n }\n if (begun.right._tag === \"AlreadyReleased\") {\n const registrationWasPresent = yield* Effect.either(inspectExactRecoveryTeardownRegistrationEffect({\n niceevalRoot: niceevalRootForTeardown,\n record: begun.right.record,\n currentHost: hostname(),\n }));\n if (Either.isLeft(registrationWasPresent)) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryAlreadyReleasedRegistrationFailed\", {\n key: begun.right.record.key,\n message: errorMessage(registrationWasPresent.left),\n }));\n return 1;\n }\n const cleared = yield* Effect.either(clearExactRecoveryTeardownRegistrationEffect({\n niceevalRoot: niceevalRootForTeardown,\n record: begun.right.record,\n currentHost: hostname(),\n expectedRegistration: registrationWasPresent.right,\n }));\n if (Either.isLeft(cleared)) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryAlreadyReleasedRegistrationFailed\", {\n key: begun.right.record.key,\n message: errorMessage(cleared.left),\n }));\n return 1;\n }\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryAlreadyReleased\", { key: begun.right.record.key }));\n yield* writeStderr(t(\"runner.sharedStateExplicitRecovered\", {\n key: begun.right.record.key,\n experimentId: begun.right.record.experimentId,\n ownerToken: begun.right.record.ownerToken,\n }));\n return 0;\n }\n if (begun.right.record.experimentId !== target.experiment.id) {\n yield* writeStderr(`sharedState key ${JSON.stringify(flags.recoverSharedState)} changed Experiment ownership during recovery; refusing teardown.\\n`);\n return 1;\n }\n const registrationWasPresent = yield* Effect.either(inspectExactRecoveryTeardownRegistrationEffect({\n niceevalRoot: niceevalRootForTeardown,\n record: begun.right.record,\n currentHost: hostname(),\n }));\n if (Either.isLeft(registrationWasPresent)) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryRegistrationFailed\", {\n key: begun.right.record.key,\n message: errorMessage(registrationWasPresent.left),\n }));\n return 1;\n }\n explicitRecovery = {\n key: begun.right.record.key,\n ownerToken: begun.right.record.ownerToken,\n recoveryId: begun.right.recoveryId,\n experimentId: begun.right.record.experimentId,\n record: begun.right.record,\n registrationWasPresent: registrationWasPresent.right,\n };\n selectedForTeardown = [target];\n }\n else if (hasSharedStateRecoveryOptions(flags)) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryFlags\"));\n return 1;\n }\n let anyFailed = false;\n for (const { experiment, selectedEvalIds } of selectedForTeardown) {\n const teardown = experimentTeardownOf(experiment);\n if (teardown === undefined) {\n // Discovery normally reaches this branch only for an absent\n // teardown, because defineExperiment rejects non-functions. Keep\n // the CLI boundary equally strict for dynamically supplied\n // definitions: a truthy or null-ish impostor must never be\n // treated as a completed recovery hook.\n if (experiment.teardown !== undefined) {\n anyFailed = true;\n yield* writeStderr(t(\"define.experimentTeardownNotFunction\"));\n }\n continue;\n }\n const ctx: ExperimentHookContext = {\n experimentId: experiment.id,\n selectedEvalIds,\n signal: new AbortController().signal,\n progress: () => { },\n diagnostic: (input) => process.stderr.write(`${input.message}\\n`),\n };\n if (explicitRecovery !== undefined) {\n // The exact registration was inspected after the immutable\n // recovery marker was claimed. Do not re-scan by current\n // Experiment identity: its sharedState declaration can have\n // changed, and broad scans could claim another run's cleanup.\n const outcome = yield* Effect.either(cliEffect(\"run experiment teardown\", cleanupCallback(() => teardown(ctx))));\n if (Either.isRight(outcome)) {\n yield* writeStderr(t(\"cli.exp.teardownDone\", { experimentId: experiment.id }));\n }\n else {\n anyFailed = true;\n const error = outcome.left.cause;\n yield* writeStderr(t(\"cli.exp.teardownFailed\", {\n experimentId: experiment.id,\n message: error instanceof Error ? error.message : String(error),\n }));\n }\n continue;\n }\n const registrations = yield* readTeardownRegistrationsEffect(niceevalRootForTeardown).pipe(Effect.catchAll(() => Effect.succeed([] as const)));\n const matching = registrations.filter(({ entry }) => entry.experimentId === experiment.id);\n const orphaned = matching.filter(({ entry }) => isOrphanedTeardownRegistration(entry, hostname()));\n const executions = Effect.all(orphaned.map(({ id }) => removeTeardownRegistrationIfPresentEffect(niceevalRootForTeardown, id).pipe(Effect.catchAll(() => Effect.succeed(false)), Effect.map((claimed) => claimed ? id : undefined))), { concurrency: \"unbounded\" }).pipe(Effect.map((claimed) => matching.length === 0 ? [undefined] : claimed.filter((id): id is string => id !== undefined)));\n for (const _ of yield* executions) {\n const outcome = yield* Effect.either(cliEffect(\"run experiment teardown\", cleanupCallback(() => teardown(ctx))));\n if (Either.isRight(outcome)) {\n yield* writeStderr(t(\"cli.exp.teardownDone\", { experimentId: experiment.id }));\n }\n else {\n anyFailed = true;\n const error = outcome.left.cause;\n yield* writeStderr(t(\"cli.exp.teardownFailed\", {\n experimentId: experiment.id,\n message: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n }\n if (!anyFailed && explicitRecovery !== undefined) {\n // A waiter may enter as soon as `complete...` publishes free. The\n // old durable teardown obligation must therefore be removed first.\n // Any read/claim failure leaves the immutable recovery marker\n // closed, so an operator can inspect and retry instead of replaying\n // old teardown after a new owner starts.\n const cleared = yield* Effect.either(clearExactRecoveryTeardownRegistrationEffect({\n niceevalRoot: niceevalRootForTeardown,\n record: explicitRecovery.record,\n currentHost: hostname(),\n expectedRegistration: explicitRecovery.registrationWasPresent,\n }));\n if (Either.isLeft(cleared)) {\n yield* writeStderr(t(\"cli.exp.sharedStateRecoveryRegistrationFailed\", {\n key: explicitRecovery.key,\n message: errorMessage(cleared.left),\n }));\n return 1;\n }\n const completed = yield* Effect.either(completeExplicitSharedStateRecoveryEffect({\n niceevalRoot: niceevalRootForTeardown,\n key: explicitRecovery.key,\n ownerToken: explicitRecovery.ownerToken,\n recoveryId: explicitRecovery.recoveryId,\n localHost: hostname(),\n }));\n if (Either.isLeft(completed)) {\n yield* writeStderr(`sharedState recovery could not release its exact owner token: ${errorMessage(completed.left)}\\n`);\n return 1;\n }\n yield* writeStderr(t(\"runner.sharedStateExplicitRecovered\", {\n key: explicitRecovery.key,\n experimentId: explicitRecovery.experimentId,\n ownerToken: explicitRecovery.ownerToken,\n }));\n }\n return anyFailed ? 1 : 0;\n }\n const experimentScopeIds = new Set<string>();\n for (const { experiment, selectedEvalIds, selectorEvalIds } of selected) {\n for (const evalId of selectorEvalIds)\n experimentScopeIds.add(evalId);\n agentRuns.push(agentRunFromExperiment(experiment, selectedEvalIds, flags));\n }\n for (const pattern of extraPatterns) {\n const matches = evalPrefixPredicate([pattern]);\n if ([...experimentScopeIds].some((id) => matches(id)))\n continue;\n yield* writeStderr(t(\"cli.experiment.noEvalPrefixMatch\", {\n pattern,\n selection: expArg ?? t(\"cli.all\"),\n }));\n return 1;\n }\n }\n else {\n const listed = yield* cliEffect(\"list experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n }));\n const selectedByPattern = yield* Effect.all(positionals.map((selector) => cliEffect(\"select experiments\", experimentHost.list({\n cwd,\n ...(flags.tag === undefined ? {} : { tag: flags.tag }),\n selector,\n }))));\n const asExp = [...new Map(selectedByPattern\n .flatMap((selection) => selection.selections)\n .map(({ experiment }) => [experiment.id, experiment] as const)).values()];\n yield* writeStderr(t(\"cli.run.experimentRequired\"));\n if (asExp.length > 0) {\n yield* writeStderr(t(\"cli.run.experimentRequiredHint\", {\n pattern: positionals[0] ?? \"\",\n kind: asExp.length > 1 ? t(\"cli.experimentGroup\") : \"\",\n }));\n }\n else {\n yield* writeStderr(t(\"cli.run.experimentRequiredKnown\", {\n experiments: listed.experimentIds.join(\", \") || t(\"cli.none\"),\n }));\n }\n return 1;\n }\n const outputForm = resolveOutputForm({ json: flags.json, isTTY: process.stderr.isTTY === true });\n const matchedByRun = agentRuns.map((run) => selectedEvalsForRun(evals, run));\n const totalAttempts = agentRuns.reduce((sum, run, index) => sum + matchedByRun[index]!.length * run.attempts, 0);\n const uniqueEvalIds = new Set(matchedByRun.flat().map((evalDefinition) => evalDefinition.id));\n if (totalAttempts === 0) {\n yield* writeStderr(t(\"cli.experiment.noEvalsSelected\", {\n selection: experimentSelection,\n experiments: availableExperimentPaths,\n }));\n return 1;\n }\n if (command === \"check\") {\n yield* cliEffect(\"link run sandboxes\", linkRunSandboxes(evals, agentRuns));\n const pairCount = matchedByRun.reduce((sum, selected) => sum + selected.length, 0);\n yield* writeStdout(`Sandbox layers linked: ${pairCount} pair${pairCount === 1 ? \"\" : \"s\"}.\\n`);\n return 0;\n }\n const recordTarget = yield* Effect.try({\n try: () => parseActualRecordRoot(cwd, flags.record),\n catch: (cause) => cliFailure(\"parse experiment Record root\", cause),\n });\n const experimentPlan = yield* cliEffect(\"plan Experiment\", experimentHost.plan({\n evals,\n agentRuns,\n config,\n recordRoot: recordTarget.root,\n ...(flags.rerun === undefined ? {} : { rerun: flags.rerun }),\n ...(flags.keepSandbox === undefined ? {} : { keepSandbox: flags.keepSandbox }),\n ...(flags.dry ? { previewStartedAt: Date.now() } : {}),\n }));\n const targetPlan = experimentPlan.target;\n if (flags.dry) {\n const current = experimentPlan.current;\n if (current === undefined) {\n return yield* Effect.fail(cliFailure(\"preview Experiment\", new Error(\"Experiment Host did not return the requested dry plan.\")));\n }\n const currentPlan = projectCurrentDryPlan(current);\n const rows = currentDryPlanRows(currentPlan);\n const now = Date.now();\n const lockedFlags = yield* Effect.all(rows.map((row) => readCaseLockEffect(coordinationRoot, row.experimentId, row.evalId).pipe(Effect.catchAll(() => Effect.succeed(undefined)), Effect.map((lock) => lock !== undefined && !isCaseLockExpired(lock, now)))), { concurrency: \"unbounded\" });\n const evalGroupsByEvalId = new Map(evals.flatMap((evalDef) => evalDef.evalGroup === undefined ? [] : [[evalDef.id, {\n ...evalDef.evalGroup,\n index: evalDef.evalGroup.evalIds.indexOf(evalDef.id),\n }] as const]));\n const rowsWithLocks = Object.freeze(rows.map((row, index) => {\n const evalGroup = evalGroupsByEvalId.get(row.evalId);\n return Object.freeze({\n ...row,\n ...(evalGroup === undefined ? {} : {\n evalGroupId: evalGroup.id,\n evalGroupIndex: evalGroup.index,\n }),\n ...(lockedFlags[index] ? { locked: true } : {}),\n });\n }));\n const occurrenceAudits = new Map<string, JsonValue>();\n for (const pair of targetPlan.preparedPairsByKey.values()) {\n for (const occurrence of pair.plugin.occurrences) {\n occurrenceAudits.set(JSON.stringify(occurrence.audit), occurrence.audit);\n }\n }\n const pluginAudit: CurrentDryPluginAudit = Object.freeze({\n occurrences: Object.freeze([...occurrenceAudits.values()]),\n });\n const input = {\n totalAttempts,\n evals: uniqueEvalIds.size,\n configs: agentRuns.length,\n attempts: Math.max(1, ...agentRuns.map((run) => run.attempts)),\n rows: rowsWithLocks,\n pluginAudit,\n };\n if (outputForm === \"json\") {\n yield* writeStdout(renderCurrentDryPlanJson(input));\n }\n else {\n yield* writeStdout(renderCurrentDryPlan(input));\n }\n return 0;\n }\n const maxConcurrency = flags.maxConcurrency ?? config.maxConcurrency ?? recommendedConcurrencyForPreparedPairs([...targetPlan.preparedPairsByKey.values()]);\n const experimentConcurrency: globalThis.Record<string, number> = {};\n for (const run of agentRuns) {\n if (run.experimentId !== undefined && run.maxConcurrency !== undefined)\n experimentConcurrency[run.experimentId] = run.maxConcurrency;\n }\n const plan = {\n shape: { evals: uniqueEvalIds.size, configs: agentRuns.length, totalAttempts, maxConcurrency },\n ...(Object.keys(experimentConcurrency).length === 0 ? {} : { experimentConcurrency }),\n };\n const io = createNodeFeedbackIO();\n const commandLabel = [\"niceeval\", command, ...positionals].join(\" \").trim();\n const renderer = outputForm === \"human\"\n ? createHumanRenderer({ io, command: commandLabel })\n : createJsonRenderer({ io });\n const sessionTracker = new SessionTracker(coordinationRoot);\n const coordinator = createFeedbackCoordinator({\n profile: outputForm,\n renderer,\n io,\n onEvent: (event, state) => sessionTracker.onFeedback(event, state),\n });\n let resourcesReleased = false;\n const releaseResources = Effect.suspend(() => {\n if (resourcesReleased)\n return Effect.void;\n resourcesReleased = true;\n return releaseCliResources();\n });\n let sessionClosed = false;\n const closeSession = (input: Parameters<SessionTracker[\"close\"]>[0]) => sessionTracker.close(input).pipe(Effect.tap(() => Effect.sync(() => { sessionClosed = true; })));\n yield* Effect.addFinalizer(() => releaseResources);\n yield* Effect.addFinalizer(() => sessionClosed\n ? Effect.void\n : closeSession({ status: \"incomplete\" }).pipe(Effect.ignore));\n yield* Effect.addFinalizer(() => cliPromise(\"stop dynamic feedback\", () => coordinator.stopDynamic()).pipe(Effect.ignore));\n yield* Effect.acquireRelease(Effect.sync(() => createInputGuard({\n stdin: createNodeInputGuardStdin(),\n stderrIsTTY: io.stderr.isTTY,\n coordinator,\n onInterrupt: () => process.emit(\"SIGINT\"),\n })), (inputGuard) => Effect.sync(() => inputGuard.stop()));\n let invocationSummary: InvocationSummary | undefined;\n const reporters: ReporterRegistration[] = [];\n if (flags.junit)\n reporters.push({ reporter: JUnit(flags.junit), name: \"junit\", required: true, target: flags.junit });\n (config.reporters ?? []).forEach((reporter, index) => {\n reporters.push({ reporter, name: `config-reporter-${index}`, required: false });\n });\n reporters.push({\n name: \"cli-summary\",\n required: false,\n reporter: {\n onInvocationComplete(summary) {\n invocationSummary = summary;\n },\n },\n });\n // This synchronous hand-off and the following Experiment Host yield have no\n // asynchronous gap. A first signal therefore either interrupts the root\n // before dispatch begins, or aborts this Invocation so it can close its\n // durable interrupted receipt before the CLI returns.\n const ownsGracefulDispatch = yield* Effect.sync(() => interruption?.enterGracefulDispatch() ?? true);\n if (!ownsGracefulDispatch)\n yield* Effect.interrupt;\n // Runner remains Effect-native. During graceful dispatch the application\n // edge translates SIGINT into this Invocation signal, letting dispatch\n // settle and the receipt close before the process exits with 130.\n const receipt = yield* cliEffect(\"run Experiment\", experimentHost.run<never, never>({\n config,\n evals,\n agentRuns,\n reporters,\n maxConcurrency,\n maxBuildConcurrency,\n keepSandbox: flags.keepSandbox,\n rerun: flags.rerun,\n coordinationRoot,\n recordRoot: recordTarget.root,\n session: sessionTracker,\n onCurrentRecordReusePlan: (current) => Effect.sync(() => coordinator.start({\n ...plan,\n shape: { ...plan.shape, runIds: current.runIds },\n reused: current.reused,\n ...(current.reusedFailures.length === 0 ? {} : { reusedFailures: current.reusedFailures }),\n })),\n ...(interruption === undefined ? {} : { signal: interruption.invocationSignal }),\n }));\n yield* releaseResources;\n const summary = invocationSummary;\n if (summary === undefined) {\n return yield* Effect.fail(cliFailure(\"collect invocation summary\", new Error(\"Runner completed without an invocation summary.\")));\n }\n const completion = assembleInvocationCompletion(coordinator.state);\n yield* closeSession({ status: completion.status, completion, receipt, completedAt: receipt.completedAt });\n yield* cliPromise(\"finish feedback\", () => coordinator.finish({ summary, completion, receipt }));\n const foldedStats = foldInvocationEvalStats(summary);\n return computeExitCode({ ...summary, failed: foldedStats.failed, errored: foldedStats.errored }, completion);\n });\n}\ntype ReportCliCommand = \"show\" | \"view\";\ntype ReportSelection = {\n readonly kind: \"fixed\";\n readonly report: ReportDefinition;\n} | {\n readonly kind: \"config\";\n} | {\n readonly kind: \"built-in\";\n readonly name: \"standard\";\n} | {\n readonly kind: \"module\";\n readonly path: string;\n};\ntype ThemeSelection = {\n readonly kind: \"config\";\n} | {\n readonly kind: \"built-in\";\n readonly name: \"basalt\" | \"chalk\";\n} | {\n readonly kind: \"module\";\n readonly path: string;\n};\ninterface ReportCliRequest {\n readonly command: ReportCliCommand;\n readonly cwd: string;\n readonly root: RecordRoot;\n readonly rootPath: string;\n readonly target: {\n readonly kind: \"selection\";\n readonly selection: AnalysisSelectionRequest;\n } | {\n readonly kind: \"project-current\";\n readonly experimentSelectors?: readonly string[];\n } | {\n readonly kind: \"attempt\";\n readonly locator: AttemptLocator;\n };\n readonly reportSelection: ReportSelection;\n readonly themeSelection: ThemeSelection;\n readonly page?: string;\n}\n/** Resolve the CLI's one portable Record target without treating `.niceeval` as Record data. */\nfunction parseActualRecordRoot(cwd: string, rootText: string | undefined): {\n readonly root: RecordRoot;\n readonly rootPath: string;\n} {\n if (rootText !== undefined && rootText.trim() === \"\") {\n throw usageError(\"--record requires an actual Record root directory.\\n\");\n }\n const rootPath = resolvePath(cwd, rootText ?? \".niceeval/record\");\n const root = makeRecordRoot(rootPath);\n if (Either.isLeft(root)) {\n throw usageError(`Invalid --record root: ${root.left.code}.\\n`);\n }\n return Object.freeze({ root: root.right, rootPath });\n}\n/**\n * The CLI validates selection identity before Record I/O. It never turns a\n * prefix, a path, or a directory entry into a Run / Experiment selection.\n */\nfunction parseReportCliRequest(input: {\n readonly command: ReportCliCommand;\n readonly cwd: string;\n readonly positionals: readonly string[];\n readonly flags: Flags;\n}): ReportCliRequest {\n const unsupported = reportUnsupportedFlag(input.command, input.flags);\n if (unsupported !== undefined) {\n throw usageError(`niceeval ${input.command} does not accept ${unsupported}.\\n`);\n }\n const runs = input.flags.run ?? [];\n const { root, rootPath } = parseActualRecordRoot(input.cwd, input.flags.record);\n const page = parseReportRoute(input.flags.page);\n const evidenceReports = [\n input.flags.source !== undefined ? \"--source\" : undefined,\n input.flags.execution ? \"--execution\" : undefined,\n input.flags.timing !== undefined ? \"--timing\" : undefined,\n ].filter((flag): flag is string => flag !== undefined);\n if (evidenceReports.length > 1) {\n throw usageError(`niceeval show chooses one evidence Report at a time; remove all but one of ${evidenceReports.join(\", \")}.\\n`);\n }\n if (!input.flags.execution && input.flags.grep !== undefined) {\n throw usageError(\"niceeval show --grep only combines with --execution.\\n\");\n }\n if (input.flags.execution) {\n const report = executionEvidenceReport(executionEvidenceOptions(input.flags));\n if (input.positionals.length !== 1) {\n throw usageError(\"niceeval show --execution requires exactly one current Record Attempt locator.\\n\");\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(\"niceeval show --execution uses its Attempt locator as the only selection; remove --run and --experiment.\\n\");\n }\n if (input.flags.report !== undefined) {\n throw usageError(\"niceeval show --execution selects its built-in execution Report; remove --report.\\n\");\n }\n const locator = input.positionals[0];\n if (locator === undefined) {\n throw usageError(\"niceeval show --execution requires one current Record Attempt locator.\\n\");\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: Object.freeze({ kind: \"fixed\" as const, report }),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (input.flags.timing !== undefined) {\n if (input.positionals.length !== 1) {\n throw usageError(\"niceeval show --timing requires exactly one current Record Attempt locator.\\n\");\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(\"niceeval show --timing uses its Attempt locator as the only selection; remove --run and --experiment.\\n\");\n }\n if (input.flags.report !== undefined) {\n throw usageError(\"niceeval show --timing selects its built-in timing Report; remove --report.\\n\");\n }\n const locator = input.positionals[0];\n if (locator === undefined) {\n throw usageError(\"niceeval show --timing requires one current Record Attempt locator.\\n\");\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: Object.freeze({\n kind: \"fixed\" as const,\n report: timingEvidenceReport({ mode: input.flags.timing }),\n }),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (input.flags.source !== undefined) {\n if (input.positionals.length !== 1) {\n throw usageError(\"niceeval show --source requires exactly one current Record Attempt locator.\\n\");\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(\"niceeval show --source uses its Attempt locator as the only selection; remove --run and --experiment.\\n\");\n }\n if (input.flags.report !== undefined) {\n throw usageError(\"niceeval show --source selects its built-in source Report; remove --report.\\n\");\n }\n const locator = input.positionals[0];\n if (locator === undefined) {\n throw usageError(\"niceeval show --source requires one current Record Attempt locator.\\n\");\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n const report = sourceEvidenceReport({\n ...(typeof input.flags.source === \"string\" ? { file: input.flags.source } : {}),\n });\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: Object.freeze({ kind: \"fixed\" as const, report }),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (input.positionals.length > 0) {\n if (input.positionals.length !== 1) {\n throw usageError(`niceeval ${input.command} accepts one exact Attempt locator, the default current-project selection, or --run.\\n`);\n }\n if (runs.length > 0 || input.flags.experiment !== undefined) {\n throw usageError(`niceeval ${input.command} uses its Attempt locator as the only selection; remove --run and --experiment.\\n`);\n }\n const locator = input.positionals[0];\n if (locator === undefined || !locator.startsWith(\"@\")) {\n throw usageError(`niceeval ${input.command} selects Record data only with a canonical @1<12-character-body> locator, --run, or no selector for current-project results.\\n`);\n }\n const parsedLocator = parseCurrentAttemptLocator(locator);\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target: Object.freeze({ kind: \"attempt\" as const, locator: parsedLocator }),\n reportSelection: input.flags.report === undefined\n ? Object.freeze({ kind: \"fixed\" as const, report: defaultAttemptOverviewReport })\n : reportSelection(input.cwd, input.flags.report),\n themeSelection: themeSelection(input.cwd, input.flags.theme),\n ...(page === undefined ? {} : { page }),\n });\n }\n if (runs.length > 0 && input.flags.experiment !== undefined) {\n throw usageError(\"--experiment narrows the default current-project selection; it cannot combine with explicit --run.\\n\");\n }\n const report = runs.length > 0 && input.flags.report === undefined\n ? Object.freeze({ kind: \"fixed\" as const, report: defaultRunMembershipOverviewReport })\n : reportSelection(input.cwd, input.flags.report);\n const theme = themeSelection(input.cwd, input.flags.theme);\n const target = runs.length > 0\n ? Object.freeze({ kind: \"selection\" as const, selection: explicitSelection(runs) })\n : Object.freeze({\n kind: \"project-current\" as const,\n ...(input.flags.experiment === undefined\n ? {}\n : { experimentSelectors: uniqueExperimentSelectors(input.flags.experiment) }),\n });\n return Object.freeze({\n command: input.command,\n cwd: input.cwd,\n root,\n rootPath,\n target,\n reportSelection: report,\n themeSelection: theme,\n ...(page === undefined ? {} : { page }),\n });\n}\nfunction executionEvidenceOptions(flags: Flags): {\n readonly grep?: string;\n} {\n if (flags.grep === undefined)\n return Object.freeze({});\n try {\n new RegExp(flags.grep);\n return Object.freeze({ grep: flags.grep });\n }\n catch {\n throw usageError(`--grep \"${flags.grep}\" is not a valid JavaScript regular expression.\\n`);\n }\n}\nfunction reportUnsupportedFlag(command: ReportCliCommand, flags: Flags): string | undefined {\n const unsupported: Array<[\n string,\n unknown\n ]> = [\n [\"--agent\", flags.agent],\n [\"--model\", flags.model],\n [\"--attempts\", flags.attempts],\n [\"--max-concurrency\", flags.maxConcurrency],\n [\"--max-build-concurrency\", flags.maxBuildConcurrency],\n [\"--timeout\", flags.timeout],\n [\"--budget\", flags.budget],\n [\"--tag\", flags.tag],\n [\"--junit\", flags.junit],\n [\"--json\", command === \"view\" && flags.json],\n [\"--smoke\", flags.smoke],\n [\"--dry\", flags.dry],\n [\"--force\", flags.force],\n [\"--rerun\", flags.rerun],\n [\"--early-exit/--no-early-exit\", flags.earlyExit],\n [\"--open/--no-open\", command === \"show\" ? flags.open : undefined],\n [\"--out\", command === \"show\" ? flags.out : undefined],\n [\"--port\", command === \"show\" ? flags.port : undefined],\n [\"--host\", command === \"show\" ? flags.host : undefined],\n [\"--source\", command === \"show\" ? undefined : flags.source],\n [\"--execution\", command === \"show\" ? undefined : flags.execution],\n [\"--diff\", flags.diff || flags.diffPath !== undefined],\n [\"--grep\", command === \"show\" ? undefined : flags.grep],\n [\"--timing\", command === \"show\" ? undefined : flags.timing],\n [\"--keep-sandbox\", flags.keepSandbox],\n [\"--all\", flags.all],\n [\"--window\", flags.window],\n [\"--path\", flags.sandboxPath],\n [\"--leave-running\", flags.leaveRunning],\n [\"--history\", flags.history],\n [\"--usage\", flags.usage],\n [\"--stats\", flags.stats],\n [\"--orphans\", flags.orphans],\n [\"--teardown\", flags.teardown],\n [\"--recover-shared-state\", flags.recoverSharedState],\n [\"--owner-token\", flags.ownerToken],\n [\"--confirm-owner-terminated\", flags.confirmOwnerTerminated],\n [\"--confirm-remote-quiesced\", flags.confirmRemoteQuiesced],\n [\"--yes\", flags.yes],\n ];\n const found = unsupported.find(([, value]) => value !== undefined && value !== false && (!Array.isArray(value) || value.length > 0));\n return found?.[0];\n}\nfunction parseReportRoute(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n const issue = validateReportRoute(value);\n if (issue !== undefined) {\n throw usageError(`Invalid --page route \"${value}\": ${issue.reason}.\\n`);\n }\n return value;\n}\nfunction reportSelection(cwd: string, value: string | undefined): ReportSelection {\n if (value === undefined)\n return Object.freeze({ kind: \"config\" as const });\n if (value === \"standard\")\n return Object.freeze({ kind: \"built-in\" as const, name: \"standard\" as const });\n if (isTrustedModulePath(value)) {\n return Object.freeze({ kind: \"module\" as const, path: resolveTrustedModulePath(cwd, value) });\n }\n throw usageError(\"--report accepts built-in standard or an explicit trusted module path.\\n\");\n}\nfunction themeSelection(cwd: string, value: string | undefined): ThemeSelection {\n if (value === undefined)\n return Object.freeze({ kind: \"config\" as const });\n if (value === \"basalt\" || value === \"chalk\") {\n return Object.freeze({ kind: \"built-in\" as const, name: value });\n }\n if (isTrustedModulePath(value)) {\n return Object.freeze({ kind: \"module\" as const, path: resolveTrustedModulePath(cwd, value) });\n }\n throw usageError(\"--theme accepts built-in basalt/chalk or an explicit trusted module path.\\n\");\n}\nfunction isTrustedModulePath(value: string): boolean {\n return value.startsWith(\"./\") || value.startsWith(\"../\") || isAbsolute(value);\n}\nfunction explicitSelection(values: readonly string[]): AnalysisSelectionRequest {\n const runIds = uniqueExactRunIds(values);\n const [first, ...rest] = runIds;\n if (first === undefined) {\n throw usageError(\"niceeval show/view requires one or more --run <run-id> values.\\n\");\n }\n const nonEmptyRunIds: readonly [\n RunId,\n ...RunId[]\n ] = [first, ...rest];\n return Object.freeze({\n policy: \"explicit-runs\" as const,\n runIds: nonEmptyRunIds,\n });\n}\nfunction uniqueExactRunIds(values: readonly string[]): readonly RunId[] {\n const result: RunId[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const decoded = Schema.decodeUnknownEither(RunIdSchema)(value);\n if (Either.isLeft(decoded)) {\n throw usageError(`Invalid --run value \"${value}\": expected one exact portable RunId.\\n`);\n }\n if (!seen.has(decoded.right)) {\n seen.add(decoded.right);\n result.push(decoded.right);\n }\n }\n return Object.freeze(result);\n}\nfunction uniqueExperimentSelectors(values: readonly string[]): readonly string[] {\n const result: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const decoded = Schema.decodeUnknownEither(ExperimentIdSchema)(value);\n if (Either.isLeft(decoded)) {\n throw usageError(`Invalid --experiment value \"${value}\": expected an Experiment selector.\\n`);\n }\n if (!seen.has(decoded.right)) {\n seen.add(decoded.right);\n result.push(decoded.right);\n }\n }\n return Object.freeze(result);\n}\nfunction selectedExperimentIds(slots: readonly import(\"./analysis/contracts.ts\").AnalysisCurrentSlotIdentity[]): readonly ExperimentId[] {\n return Object.freeze([...new Set(slots.map((slot) => slot.experimentId))]\n .sort((left, right) => Buffer.compare(Buffer.from(left), Buffer.from(right))));\n}\n/** Current Record locators use the strict scheme-1 short alias. */\nfunction parseCurrentAttemptLocator(value: string): AttemptLocator {\n const parsed = parseAttemptLocator(value);\n if (!parsed.valid) {\n throw usageError(`Invalid Attempt locator \"${value}\": expected @1 followed by 12 canonical uppercase Crockford characters.\\n`);\n }\n return parsed.locator;\n}\ninterface LoadedCliReportInputs {\n readonly report: ReportDefinition;\n readonly theme: ThemeDefinition;\n readonly projectCurrentSelection?: AnalysisSelectionRequest;\n /** Inputs whose bytes can change Page callbacks or component closure. */\n readonly reportWatchInputs: readonly string[];\n /** Every non-Record live input; Record identity is probed inside Report Host. */\n readonly sourceWatchInputs: readonly string[];\n /** Record, config, and every statically discovered author module input. */\n readonly watchInputs: readonly string[];\n}\n/**\n * Config is deliberately fresh-read for every view rebuild even when CLI flags\n * override its current Report or Theme. It is both a trusted boundary and a\n * live input: an invalid config must not leave a stale hidden module graph.\n */\nfunction loadCliReportInputs(request: ReportCliRequest): Effect.Effect<LoadedCliReportInputs, CliFailure> {\n return Effect.gen(function* () {\n const projectCurrent = request.target.kind === \"project-current\"\n ? yield* cliEffect(\"load current project target\", loadProjectCurrent(request.cwd, {\n ...(request.target.experimentSelectors === undefined\n ? {}\n : { experiments: request.target.experimentSelectors }),\n freshImport: true,\n }))\n : undefined;\n const configured = yield* cliEffect(\"load trusted Report config\", loadTrustedReportConfig(request.cwd));\n const selectedReport = yield* reportFromSelection(request.reportSelection, configured.report, configured.watchInputs);\n const selectedTheme = yield* themeFromSelection(request.themeSelection, configured.theme);\n const projectCurrentSelection = projectCurrent === undefined\n ? undefined\n : Object.freeze({\n policy: \"project-current\" as const,\n currentSlots: projectCurrent.currentSlots,\n ...(request.target.kind === \"project-current\" && request.target.experimentSelectors !== undefined\n ? { experimentIds: selectedExperimentIds(projectCurrent.currentSlots) }\n : {}),\n });\n const sourceWatchInputs = uniqueWatchInputs([\n ...(projectCurrent?.watchInputs ?? []),\n ...configured.watchInputs,\n ...selectedReport.watchInputs,\n ...selectedTheme.watchInputs,\n ]);\n return Object.freeze({\n report: selectedReport.value,\n theme: selectedTheme.value,\n reportWatchInputs: uniqueWatchInputs(selectedReport.watchInputs),\n sourceWatchInputs,\n ...(projectCurrentSelection === undefined ? {} : { projectCurrentSelection }),\n watchInputs: uniqueWatchInputs([\n request.rootPath,\n ...sourceWatchInputs,\n ]),\n });\n });\n}\nfunction reportFromSelection(selection: ReportSelection, configured: ReportDefinition | undefined, configuredWatchInputs: readonly string[]): Effect.Effect<{\n readonly value: ReportDefinition;\n readonly watchInputs: readonly string[];\n}, CliFailure> {\n switch (selection.kind) {\n case \"fixed\":\n return Effect.succeed(Object.freeze({ value: selection.report, watchInputs: Object.freeze([]) }));\n case \"config\":\n return Effect.succeed(Object.freeze({\n value: configured ?? standard,\n watchInputs: configured === undefined ? Object.freeze([]) : configuredWatchInputs,\n }));\n case \"built-in\":\n return Effect.succeed(Object.freeze({ value: standard, watchInputs: Object.freeze([]) }));\n case \"module\":\n return cliEffect(\"load trusted Report module\", loadTrustedReportModule(selection.path)).pipe(Effect.map((loaded) => Object.freeze({ value: loaded.report, watchInputs: loaded.watchInputs })));\n }\n}\nfunction themeFromSelection(selection: ThemeSelection, configured: ThemeDefinition | undefined): Effect.Effect<{\n readonly value: ThemeDefinition;\n readonly watchInputs: readonly string[];\n}, CliFailure> {\n switch (selection.kind) {\n case \"config\":\n return Effect.succeed(Object.freeze({ value: configured ?? basalt, watchInputs: Object.freeze([]) }));\n case \"built-in\":\n return Effect.succeed(Object.freeze({\n value: selection.name === \"chalk\" ? chalk : basalt,\n watchInputs: Object.freeze([]),\n }));\n case \"module\":\n return cliEffect(\"load trusted Theme module\", loadTrustedThemeModule(selection.path)).pipe(Effect.map((loaded) => Object.freeze({ value: loaded.theme, watchInputs: loaded.watchInputs })));\n }\n}\nfunction uniqueWatchInputs(paths: readonly string[]): readonly string[] {\n return Object.freeze([...new Set(paths.map((path) => resolvePath(path)))].sort());\n}\nfunction buildCliReportSite(request: ReportCliRequest, inputs: LoadedCliReportInputs) {\n const revision = request.target.kind === \"attempt\"\n ? buildReportSiteFromRecord({\n root: request.root,\n locator: request.target.locator,\n report: inputs.report,\n theme: inputs.theme,\n })\n : buildReportSiteFromRecord({\n root: request.root,\n selection: request.target.kind === \"selection\"\n ? request.target.selection\n : inputs.projectCurrentSelection!,\n report: inputs.report,\n theme: inputs.theme,\n });\n return revision.pipe(Effect.mapError(reportExecutionFailure));\n}\nfunction reportExecutionFailure(error: unknown): CliFailure {\n switch (failureCode(error)) {\n case \"sample-run-not-found\":\n return usageError(`Run \"${stringProperty(error, \"runId\") ?? \"unknown\"}\" was not found in the selected Record.\\n`);\n case \"sample-run-invalid\":\n return usageError(`Run \"${stringProperty(error, \"runId\") ?? \"unknown\"}\" is not a valid published Record Run.\\n`);\n case \"sample-selection-invalid\":\n return usageError(`Invalid Record analysis selection: ${stringProperty(error, \"field\") ?? \"selection\"}.\\n`);\n case \"sample-attempt-not-found\":\n return usageError(`Attempt \"${stringProperty(error, \"attemptId\") ?? \"unknown\"}\" was not found in the selected Record.\\n`);\n case \"sample-attempt-ambiguous\":\n return usageError(`Attempt \"${stringProperty(error, \"attemptId\") ?? \"unknown\"}\" is ambiguous in the selected Record.\\n`);\n case \"sample-attempt-locator-not-found\":\n return usageError(`Attempt locator \"${stringProperty(error, \"locator\") ?? \"unknown\"}\" was not found in the selected Record.\\n`);\n case \"sample-attempt-locator-ambiguous\":\n return usageError(`Attempt locator \"${stringProperty(error, \"locator\") ?? \"unknown\"}\" is ambiguous in the selected Record.\\n`);\n case \"record-migration-required\":\n return usageError(\"record-migration-required\\nRun: niceeval migrate\\n\");\n case \"record-bootstrap-invalid\":\n return usageError(\"record-bootstrap-invalid\\nPass --record <actual-record-root> or create a current NiceEval Record.\\n\");\n case \"record-format-unsupported\":\n return usageError(\"record-format-unsupported\\nThis Record was created by a NiceEval version that is no longer supported. Remove .niceeval (for example, rm -rf .niceeval) and rerun the evaluation.\\n\");\n case \"record-migration-interrupted\":\n return usageError(\"record-migration-interrupted\\nRestore the Record from Git or a backup before retrying.\\n\");\n case \"report-route-invalid\":\n return usageError(`Unknown Report route \"${stringProperty(error, \"route\") ?? \"unknown\"}\".\\n`);\n case \"report-build-budget-exceeded\":\n return usageError(reportBuildBudgetExceededMessage(error));\n case \"report-site-execution-problem\":\n return usageError(reportSiteExecutionProblemMessage(error));\n default:\n return cliFailure(\"execute report from Record\", error);\n }\n}\nfunction automaticRecordMigrationFailure(error: unknown): CliFailure {\n const code = failureCode(error);\n if (code === \"record-auto-migration-git-save-required\") {\n return usageError(\"record-auto-migration-git-save-required\\n\" +\n \"Save every portable Record byte first (for example: git add .niceeval/record && git commit), then retry the same command.\\n\");\n }\n if (code === \"record-maintenance-busy\" || code === \"record-writer-busy\") {\n return usageError(`${code}\\nClose the command using this Record, then retry.\\n`);\n }\n if (code === \"record-format-unsupported\") {\n return usageError(\"record-format-unsupported\\nUse the NiceEval version that wrote this future or unknown Record format.\\n\");\n }\n if (code === \"record-migration-recovery-required\" || code === \"record-migration-interrupted\") {\n return usageError(`${code}\\nRestore and verify the complete Record from Git before retrying.\\n`);\n }\n return cliFailure(\"automatically migrate Record\", error);\n}\n/** Preserve the actionable dimension and target from the Host's closed budget error. */\nfunction reportBuildBudgetExceededMessage(error: unknown): string {\n const budget = stringProperty(error, \"budget\");\n const maximum = finiteNumberProperty(error, \"maximum\");\n const observedAtLeast = finiteNumberProperty(error, \"observedAtLeast\");\n if (budget === undefined || maximum === undefined || observedAtLeast === undefined) {\n return \"report-build-budget-exceeded\\n\";\n }\n const pageId = stringProperty(error, \"pageId\");\n const route = stringProperty(error, \"route\");\n const target = pageId === undefined && route === undefined\n ? \"\"\n : ` (${[\n ...(pageId === undefined ? [] : [`page ${JSON.stringify(pageId)}`]),\n ...(route === undefined ? [] : [`route ${JSON.stringify(route)}`]),\n ].join(\", \")})`;\n return `report-build-budget-exceeded: ${budget} observed at least ${observedAtLeast}; maximum ${maximum}${target}\\n`;\n}\nconst REPORT_CLI_PROBLEMS_MAX = 20;\nconst REPORT_CLI_PROBLEM_TEXT_MAX = 1024;\n/** Keep the concrete closed-problem reason while bounding author-controlled diagnostics. */\nfunction reportSiteExecutionProblemMessage(error: unknown): string {\n if (typeof error !== \"object\" || error === null)\n return \"report-site-execution-problem\\n\";\n const problems = Reflect.get(error, \"problems\");\n if (!Array.isArray(problems))\n return \"report-site-execution-problem\\n\";\n const lines = problems\n .slice(0, REPORT_CLI_PROBLEMS_MAX)\n .flatMap((problem) => {\n const code = boundedReportCliProblemText(stringProperty(problem, \"code\"));\n const summary = boundedReportCliProblemText(stringProperty(problem, \"summary\"));\n if (code === undefined && summary === undefined)\n return [];\n if (code === undefined)\n return [summary!];\n return [summary === undefined ? code : `${code}: ${summary}`];\n });\n const omitted = Math.max(0, problems.length - REPORT_CLI_PROBLEMS_MAX);\n return [\n \"report-site-execution-problem\",\n ...lines,\n ...(omitted === 0 ? [] : [`${omitted} additional Report problem(s) omitted.`]),\n \"\",\n ].join(\"\\n\");\n}\nfunction boundedReportCliProblemText(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n const bounded = value\n .replace(/[\\u0000-\\u001f\\u007f-\\u009f]/g, \" \")\n .slice(0, REPORT_CLI_PROBLEM_TEXT_MAX)\n .trim();\n return bounded === \"\" ? undefined : bounded;\n}\nfunction stringProperty(value: unknown, key: string): string | undefined {\n if (typeof value !== \"object\" || value === null)\n return undefined;\n const candidate = Reflect.get(value, key);\n return typeof candidate === \"string\" ? candidate : undefined;\n}\nfunction finiteNumberProperty(value: unknown, key: string): number | undefined {\n if (typeof value !== \"object\" || value === null)\n return undefined;\n const candidate = Reflect.get(value, key);\n return typeof candidate === \"number\" && Number.isFinite(candidate) ? candidate : undefined;\n}\nfunction requireKnownReportPage(revision: ClosedSiteRevision, page: string | undefined): Effect.Effect<void, CliUsageError> {\n const routes = closedSiteRevisionData(revision).routes;\n if (page === undefined || routes.includes(page)) {\n return Effect.void;\n }\n const available = [...routes].sort().join(\", \");\n return Effect.fail(usageError(`Unknown Report route \"${page}\". Available routes: ${available || \"none\"}.\\n`));\n}\nconst cliReportConsole = Object.freeze({\n write: (text: string) => Effect.try({\n try: () => {\n process.stdout.write(text);\n },\n catch: () => Object.freeze({\n code: \"report-console-write-failed\" as const,\n operation: \"write\" as const,\n }),\n }),\n});\nconst reportHostPhaseLabels: Readonly<Record<ReportHostPhase, string>> = Object.freeze({\n \"record-open\": \"Open Record\",\n \"selection\": \"Select runs and attempts\",\n \"sample-open\": \"Open analysis Sample\",\n \"report-execution\": \"Execute Report and read requested facts\",\n});\nfunction formatReportProgressDuration(durationMs: number): string {\n if (durationMs < 1000)\n return `${Math.round(durationMs)}ms`;\n return `${(durationMs / 1000).toFixed(1)}s`;\n}\nfunction writeReportProgress(text: string): void {\n try {\n process.stderr.write(text);\n }\n catch {\n // Progress is diagnostic only; it must never alter Report execution.\n }\n}\nconst cliProgressFrames = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"] as const;\n/**\n * Keeps interactive progress on one terminal line, while preserving plain\n * line-oriented diagnostics when stderr is redirected to a file or CI log.\n */\nclass CliReportProgress {\n private active: {\n readonly label: string;\n readonly timer: ReturnType<typeof setInterval>;\n } | undefined;\n start(label: string): () => void {\n if (!process.stderr.isTTY) {\n writeReportProgress(`⠋ ${label}…\\n`);\n return () => undefined;\n }\n if (this.active !== undefined)\n clearInterval(this.active.timer);\n let frame = 0;\n const render = () => writeReportProgress(`\\r\\u001b[2K${cliProgressFrames[frame++ % cliProgressFrames.length]} ${label}…`);\n render();\n const timer = setInterval(render, 80);\n const active = { label, timer };\n this.active = active;\n return () => {\n if (this.active !== active)\n return;\n clearInterval(timer);\n this.active = undefined;\n };\n }\n complete(label: string, text: string): void {\n if (process.stderr.isTTY) {\n if (this.active?.label === label) {\n clearInterval(this.active.timer);\n this.active = undefined;\n }\n writeReportProgress(`\\r\\u001b[2K${text}\\n`);\n return;\n }\n writeReportProgress(`${text}\\n`);\n }\n}\nfunction makeCliReportProgress(rootPath: string, progress: CliReportProgress): ReportHostProgressObserverService {\n return Object.freeze({\n report: (event: ReportHostProgressEvent) => {\n const label = event.phase === \"record-open\"\n ? `${reportHostPhaseLabels[event.phase]} (${rootPath})`\n : reportHostPhaseLabels[event.phase];\n if (event.type === \"start\") {\n progress.start(label);\n return;\n }\n const marker = event.outcome === \"success\" ? \"✓\" : \"×\";\n const outcome = event.outcome === \"success\" ? \"\" : ` · ${event.outcome}`;\n progress.complete(label, `${marker} ${label} (${formatReportProgressDuration(event.durationMs)}${outcome})`);\n },\n });\n}\nfunction cliPhaseOutcome<E>(exit: Exit.Exit<unknown, E>): \"success\" | \"failure\" | \"defect\" | \"interrupted\" {\n if (Exit.isSuccess(exit))\n return \"success\";\n if (Cause.isInterruptedOnly(exit.cause))\n return \"interrupted\";\n return Cause.defects(exit.cause).pipe((defects) => defects.length > 0) ? \"defect\" : \"failure\";\n}\nfunction withCliReportPhase<A, E, R>(progress: CliReportProgress, label: string, effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> {\n return Effect.gen(function* () {\n const startedAt = yield* Clock.currentTimeNanos;\n const stopProgress = yield* Effect.sync(() => progress.start(label));\n return yield* effect.pipe(Effect.onExit((exit) => Effect.gen(function* () {\n const completedAt = yield* Clock.currentTimeNanos;\n const durationMs = Math.max(0, Number(completedAt - startedAt) / 1000000);\n const outcome = cliPhaseOutcome(exit);\n const marker = outcome === \"success\" ? \"✓\" : \"×\";\n const detail = outcome === \"success\" ? \"\" : ` · ${outcome}`;\n yield* Effect.sync(() => {\n stopProgress();\n progress.complete(label, `${marker} ${label} (${formatReportProgressDuration(durationMs)}${detail})`);\n });\n })));\n });\n}\nfunction runShowCommand(cwd: string, positionals: readonly string[], flags: Flags) {\n return Effect.gen(function* () {\n const progress = new CliReportProgress();\n const request = yield* Effect.try({\n try: () => parseReportCliRequest({ command: \"show\", cwd, positionals, flags }),\n catch: (cause) => cliFailure(\"parse show arguments\", cause),\n });\n const inputs = yield* withCliReportPhase(progress, \"Load project, config, Report, and Theme\", loadCliReportInputs(request));\n const textProjection = flags.json\n ? undefined\n : panelCapabilityOf({\n isTTY: process.stdout.isTTY,\n width: process.stdout.columns,\n });\n const show = request.target.kind === \"attempt\"\n ? reportHost.show({\n root: request.root,\n locator: request.target.locator,\n report: inputs.report,\n ...(request.page === undefined ? {} : { route: request.page }),\n ...(textProjection === undefined ? {} : { textProjection: { width: textProjection.width, panelMode: textProjection.mode } }),\n format: flags.json ? \"json\" as const : \"text\" as const,\n })\n : reportHost.show({\n root: request.root,\n selection: request.target.kind === \"selection\"\n ? request.target.selection\n : inputs.projectCurrentSelection!,\n report: inputs.report,\n ...(request.page === undefined ? {} : { route: request.page }),\n ...(textProjection === undefined ? {} : { textProjection: { width: textProjection.width, panelMode: textProjection.mode } }),\n format: flags.json ? \"json\" as const : \"text\" as const,\n });\n const output = yield* show.pipe(Effect.provideService(ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)), Effect.mapError(reportExecutionFailure));\n yield* cliReportConsole.write(output).pipe(Effect.mapError((error) => cliFailure(\"render Report show output\", error)));\n return 0;\n });\n}\nfunction runViewCommand(cwd: string, positionals: readonly string[], flags: Flags) {\n return Effect.gen(function* () {\n const progress = new CliReportProgress();\n const request = yield* Effect.try({\n try: () => parseReportCliRequest({ command: \"view\", cwd, positionals, flags }),\n catch: (cause) => cliFailure(\"parse view arguments\", cause),\n });\n if (flags.out !== undefined) {\n if (flags.out.trim() === \"\") {\n return yield* Effect.fail(usageError(\"--out requires a target directory.\\n\"));\n }\n if (flags.port !== undefined || flags.host !== undefined || flags.open === true) {\n return yield* Effect.fail(usageError(\"view --out does not start a server; remove --port, --host, and --open.\\n\"));\n }\n if (request.page !== undefined) {\n return yield* Effect.fail(usageError(\"view --out does not accept --page.\\n\"));\n }\n const inputs = yield* withCliReportPhase(progress, \"Load project, config, Report, and Theme\", loadCliReportInputs(request));\n const revision = yield* buildCliReportSite(request, inputs).pipe(Effect.provideService(ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)));\n const receipt = yield* withCliReportPhase(progress, \"Export static report site\", reportHost.export({\n revision,\n out: resolvePath(cwd, flags.out),\n }).pipe(Effect.provideService(ReportFileSystem, makeNodeReportFileSystem()), Effect.mapError((error) => staticExportFailure(error, resolvePath(cwd, flags.out!)))));\n yield* writeStdout(`Exported static report site: ${receipt.out}\\n`);\n return 0;\n }\n const initialInputs = yield* withCliReportPhase(progress, \"Load project, config, Report, and Theme\", loadCliReportInputs(request));\n const initial = yield* buildCliReportSite(request, initialInputs).pipe(Effect.provideService(ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)));\n yield* requireKnownReportPage(initial, request.page);\n const buildCache = yield* makeReportViewBuildCache(request, initialInputs, initial);\n const { host, port } = yield* Effect.try({\n try: () => ({ host: viewHost(flags.host), port: viewPort(flags.port) }),\n catch: (cause) => cliFailure(\"parse view server arguments\", cause),\n });\n const server = yield* withCliReportPhase(progress, \"Start HTTP server and file watcher\", reportHost.serve({\n url: `http://${host.includes(\":\") ? `[${host}]` : host}:${port}/`,\n watchInputs: initialInputs.watchInputs,\n initial: Effect.succeed(initial),\n rebuild: () => rebuildReportView(request, buildCache),\n host,\n port,\n }).pipe(Effect.mapError((error) => cliFailure(\"open report view\", error))));\n const urls = server.urls.map((url) => request.page === undefined ? url : new URL(request.page, url).toString());\n const url = urls[0]!;\n if (!isLoopbackViewHost(host)) {\n yield* writeStderr(\"Warning: niceeval view is listening beyond loopback without authentication or TLS; \" +\n \"every reachable client can read report data, execution JSON, and downloads.\\n\");\n }\n yield* writeStdout(`niceeval view — open in a browser:\\n${urls.join(\"\\n\")}\\n`);\n if (flags.open !== false) {\n yield* openBrowser(url).pipe(Effect.catchAll(() => Effect.succeed(false)));\n }\n return yield* Effect.never;\n });\n}\n/**\n * A watcher signal is only a hint. Every refresh re-reads config plus its\n * fresh author graph and Record before one completed immutable revision is\n * published with its next recoverable watch set; a typed boundary failure is\n * logged once and leaves last-good execution and the prior watch set.\n */\ninterface ReportViewBuildCache {\n revision: ClosedSiteRevision;\n /** Immutable page/shared bytes only; never a Sample, Scope, or ResolvedPage. */\n pageBytes?: ClosedReportPageBytes;\n watchInputs: readonly string[];\n /** Every non-Record watcher input is byte-proven before exact no-op reuse. */\n sourceFingerprint: ReportInputFingerprint;\n /** Host-owned identity of the selected semantic Record snapshot. */\n snapshotIdentity: string;\n /** Undefined means some input could not be content-proven equivalent. */\n pageIdentity?: string;\n themeIdentity: string;\n}\nfunction rebuildReportView(request: ReportCliRequest, cache: ReportViewBuildCache) {\n return Effect.gen(function* () {\n const inputs = yield* loadCliReportInputs(request);\n const [snapshotIdentity, sourceFingerprint, reportInputFingerprint, themeCss] = yield* Effect.all([\n readReportSnapshotIdentity(request, inputs),\n fingerprintReportSourceInputs(inputs.sourceWatchInputs),\n fingerprintReportSourceInputs(inputs.reportWatchInputs),\n closeReportThemeStylesheet(inputs.theme),\n ]);\n const pageIdentity = reportPageCacheIdentity(request, inputs, {\n snapshotIdentity,\n reportInputs: reportInputFingerprint,\n });\n const themeIdentity = reportCacheBytesIdentity(themeCss);\n const cachedPages = cache.pageBytes;\n const reusePages = cachedPages !== undefined &&\n snapshotIdentity === cache.snapshotIdentity &&\n pageIdentity !== undefined && pageIdentity === cache.pageIdentity;\n const exactNoop = reusePages && themeIdentity === cache.themeIdentity &&\n sameReportInputFingerprint(sourceFingerprint, cache.sourceFingerprint);\n let revision: ClosedSiteRevision;\n let pageBytes: ClosedReportPageBytes | undefined;\n if (exactNoop) {\n revision = cache.revision;\n pageBytes = cachedPages;\n }\n else if (reusePages && themeIdentity !== cache.themeIdentity) {\n const rethemed = rethemeClosedReportPageBytes(cachedPages, themeCss, signClosedSiteRevision);\n if (rethemed === undefined) {\n revision = yield* buildCliReportSite(request, inputs);\n pageBytes = closeReportPageBytes(revision, {\n selectionIdentity: reportSelectionCacheIdentity(request, inputs),\n themeIdentity,\n });\n }\n else {\n revision = rethemed;\n pageBytes = closeReportPageBytes(revision, {\n selectionIdentity: reportSelectionCacheIdentity(request, inputs),\n themeIdentity,\n });\n }\n }\n else {\n revision = yield* buildCliReportSite(request, inputs);\n pageBytes = closeReportPageBytes(revision, {\n selectionIdentity: reportSelectionCacheIdentity(request, inputs),\n themeIdentity,\n });\n }\n yield* requireKnownReportPage(revision, request.page);\n cache.revision = revision;\n cache.pageBytes = pageBytes;\n cache.watchInputs = inputs.watchInputs;\n cache.sourceFingerprint = sourceFingerprint;\n cache.snapshotIdentity = pageBytes?.sampleIdentity ?? snapshotIdentity;\n cache.pageIdentity = pageBytes === undefined\n ? undefined\n : reportPageCacheIdentity(request, inputs, {\n snapshotIdentity: pageBytes.sampleIdentity,\n reportInputs: reportInputFingerprint,\n });\n cache.themeIdentity = themeIdentity;\n return Object.freeze({\n kind: \"site\" as const,\n site: revision,\n watchInputs: inputs.watchInputs,\n });\n }).pipe(Effect.catchAll((failure) => {\n const problem = reportViewRebuildFailure(failure);\n return writeStderr(`view rebuild failed: ${problem.summary}\\n`).pipe(Effect.zipRight(Effect.fail(problem)));\n }));\n}\nfunction makeReportViewBuildCache(request: ReportCliRequest, inputs: LoadedCliReportInputs, revision: ClosedSiteRevision): Effect.Effect<ReportViewBuildCache, CliFailure> {\n return Effect.gen(function* () {\n const [sourceFingerprint, reportInputFingerprint, themeCss] = yield* Effect.all([\n fingerprintReportSourceInputs(inputs.sourceWatchInputs),\n fingerprintReportSourceInputs(inputs.reportWatchInputs),\n closeReportThemeStylesheet(inputs.theme),\n ]);\n const themeIdentity = reportCacheBytesIdentity(themeCss);\n const selectionIdentity = reportSelectionCacheIdentity(request, inputs);\n const pageBytes = closeReportPageBytes(revision, { selectionIdentity, themeIdentity });\n const pageIdentity = reportPageCacheIdentity(request, inputs, {\n snapshotIdentity: pageBytes?.sampleIdentity ?? \"\",\n reportInputs: reportInputFingerprint,\n });\n return {\n revision,\n ...(pageBytes === undefined ? {} : { pageBytes }),\n watchInputs: inputs.watchInputs,\n sourceFingerprint,\n snapshotIdentity: pageBytes?.sampleIdentity ?? \"\",\n ...(pageBytes === undefined || pageIdentity === undefined ? {} : { pageIdentity }),\n themeIdentity,\n };\n });\n}\ninterface ReportInputFingerprint {\n readonly digest: string;\n /** False for a link or special file, whose stable content cannot be proven here. */\n readonly complete: boolean;\n}\nfunction sameReportInputFingerprint(left: ReportInputFingerprint, right: ReportInputFingerprint): boolean {\n return left.complete && right.complete && left.digest === right.digest;\n}\nfunction reportPageCacheIdentity(request: ReportCliRequest, inputs: LoadedCliReportInputs, input: {\n readonly snapshotIdentity: string;\n readonly reportInputs: ReportInputFingerprint;\n}): string | undefined {\n if (input.snapshotIdentity.length === 0 || !input.reportInputs.complete)\n return undefined;\n return createHash(\"sha256\").update(JSON.stringify([\n \"niceeval.report-page-bytes/v1\",\n REPORT_STATIC_RENDERER,\n input.snapshotIdentity,\n input.reportInputs.digest,\n reportDefinitionIdentity(inputs.report),\n reportSelectionCacheIdentity(request, inputs),\n ])).digest(\"hex\");\n}\nfunction reportCacheBytesIdentity(bytes: Uint8Array): string {\n return createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\n/** Delegates the exact Theme stylesheet closure to the static Host. */\nfunction closeReportThemeStylesheet(theme: ThemeDefinition): Effect.Effect<Uint8Array, CliFailure> {\n return Effect.try({\n try: () => closeStaticThemeStylesheet(theme),\n catch: (cause) => cliFailure(\"close Report theme stylesheet\", cause),\n });\n}\n/**\n * The Host owns Record selection, project-current narrowing, and semantic\n * snapshot construction. This probe deliberately never opens a Sample.\n */\nfunction readReportSnapshotIdentity(request: ReportCliRequest, inputs: LoadedCliReportInputs) {\n const target = request.target.kind === \"attempt\"\n ? Object.freeze({ root: request.root, locator: request.target.locator })\n : Object.freeze({\n root: request.root,\n selection: request.target.kind === \"selection\"\n ? request.target.selection\n : inputs.projectCurrentSelection!,\n });\n return reportSnapshotIdentityFromRecord(target).pipe(Effect.mapError(reportExecutionFailure));\n}\nfunction reportSelectionCacheIdentity(request: ReportCliRequest, inputs: LoadedCliReportInputs): string {\n const target = request.target.kind === \"project-current\"\n ? inputs.projectCurrentSelection\n : request.target;\n return createHash(\"sha256\").update(JSON.stringify(target)).digest(\"hex\");\n}\n/**\n * A source-watch signal is only a hint. This digest deliberately excludes the\n * Record root: selected Record equivalence comes only from the Host-owned\n * semantic snapshot probe. Links and special files make the result incomplete,\n * so unprovable input can never produce an exact no-op; a missing optional\n * path is a complete, watchable source-state observation.\n */\nfunction fingerprintReportSourceInputs(paths: readonly string[]): Effect.Effect<ReportInputFingerprint, CliFailure> {\n return Effect.tryPromise({\n try: async () => {\n const hash = createHash(\"sha256\");\n const visited = new Set<string>();\n let complete = true;\n const visit = async (path: string): Promise<void> => {\n const absolute = resolvePath(path);\n if (visited.has(absolute))\n return;\n visited.add(absolute);\n let info;\n try {\n info = await lstat(absolute);\n }\n catch (cause) {\n if (typeof cause === \"object\" && cause !== null && Reflect.get(cause, \"code\") === \"ENOENT\") {\n // An absent optional config/module entry is itself a complete\n // source-state observation. A later creation emits a watcher\n // signal and changes this digest.\n hash.update(`missing\\0${absolute}\\0`);\n return;\n }\n throw cause;\n }\n hash.update(`path\\0${absolute}\\0`);\n if (info.isSymbolicLink()) {\n complete = false;\n hash.update(`link\\0${await readlink(absolute)}\\0`);\n return;\n }\n if (info.isFile()) {\n hash.update(\"file\\0\");\n hash.update(await readFile(absolute));\n hash.update(\"\\0\");\n return;\n }\n if (!info.isDirectory()) {\n complete = false;\n hash.update(`opaque\\0${info.mode}\\0`);\n return;\n }\n hash.update(\"directory\\0\");\n const names = (await readdir(absolute)).sort();\n for (const name of names)\n yieldName(hash, name);\n for (const name of names)\n await visit(join(absolute, name));\n };\n for (const path of [...new Set(paths.map((entry) => resolvePath(entry)))].sort()) {\n await visit(path);\n }\n return Object.freeze({ digest: hash.digest(\"hex\"), complete });\n },\n catch: (cause) => cliFailure(\"fingerprint Report source inputs\", cause),\n });\n}\nfunction yieldName(hash: ReturnType<typeof createHash>, name: string): void {\n hash.update(`entry\\0${name}\\0`);\n}\nfunction staticExportFailure(error: unknown, out: string): CliFailure {\n if (failureCode(error) === \"report-export-target-exists\") {\n return usageError(`report-export-target-exists\\nRemove ${out} before retrying.\\n`);\n }\n return cliFailure(\"export static Report\", error);\n}\nfunction viewHost(value: string | undefined): string {\n const host = (value ?? \"127.0.0.1\").trim();\n if (host.length === 0)\n throw usageError(\"--host requires a non-empty address.\\n\");\n return host;\n}\nfunction isLoopbackViewHost(host: string): boolean {\n return host === \"127.0.0.1\" || host === \"::1\" || host === \"localhost\";\n}\nfunction viewPort(value: number | undefined): number {\n const port = value ?? 0;\n if (!Number.isInteger(port) || port < 0 || port > 65535) {\n throw usageError(`--port must be an integer from 0 through 65535, got ${port}.\\n`);\n }\n return port;\n}\nfunction reportViewRebuildFailure(failure: CliFailure): {\n readonly summary: string;\n} {\n const summary = failure._tag === \"CliUsageError\"\n ? failure.message\n : failure.cause instanceof ReportModuleLoadError\n ? `${failure.cause.code}: ${failure.cause.reason}`\n : failureCode(failure.cause) ?? \"Report rebuild failed\";\n return Object.freeze({ summary });\n}\nexport const cliProgram = (interruption?: CliInterruptionOwnership) => Effect.gen(function* () {\n const cwd = process.cwd();\n const { command, positionals, flags, providedOptions } = yield* Effect.try({\n try: () => parseArgs(process.argv.slice(2)),\n catch: (cause) => cliFailure(\"parse CLI arguments\", cause),\n });\n // Session / Docker profile queries must remain config-free read paths.\n if (command !== \"session\" && command !== \"docker\") {\n yield* loadDotenv(cwd);\n }\n if (flags.help) {\n yield* writeStdout(t(\"cli.help\"));\n return 0;\n }\n if (command === \"exp\" && positionals.length === 1 && positionals[0] === \"help\") {\n yield* writeStdout(t(\"cli.help\"));\n return 0;\n }\n if (flags.version) {\n yield* writeStdout((yield* packageVersion()) + \"\\n\");\n return 0;\n }\n if (command === \"show\" || command === \"view\" || command === \"exp\") {\n const migrated = yield* ensureAutomaticRecordMigration({\n cwd,\n ...(flags.record === undefined ? {} : { record: flags.record }),\n }).pipe(Effect.mapError(automaticRecordMigrationFailure));\n if (migrated !== null) {\n yield* writeStderr(`Record automatically migrated to schemaVersion ${migrated.targetSchemaVersion}; restore commit ${migrated.restoreCommit}.\\n`);\n }\n }\n if (command === \"debug\") {\n const unsupported = providedOptions.find((name) => name !== \"json\" && name !== \"help\" && name !== \"version\");\n if (unsupported !== undefined) {\n yield* writeStderr(t(\"cli.debug.flagUnsupported\", { flag: `--${unsupported}` }));\n return 1;\n }\n return yield* runDebugCommand(cwd, positionals, flags);\n }\n if (command === \"docker\")\n return yield* runDockerCommand(positionals, flags);\n if (command === \"accept\") {\n const locators = yield* Effect.try({\n try: () => parseAcceptLocators(positionals, flags),\n catch: (cause) => cliFailure(\"parse acceptance locators\", cause),\n });\n const outcome = yield* Effect.either(runAcceptCommand(cwd, locators, flags.record));\n if (Either.isLeft(outcome)) {\n yield* writeStderr(t(\"cli.accept.failed\", { error: errorMessage(outcome.left.cause) }));\n return 1;\n }\n return 0;\n }\n if (command === \"view\")\n return yield* runViewCommand(cwd, positionals, flags);\n if (command === \"sandbox\")\n return yield* runSandboxCliCommand(cwd, positionals, flags);\n if (command === \"session\")\n return yield* runSessionCommand(cwd, positionals, flags);\n if (command === \"show\")\n return yield* runShowCommand(cwd, positionals, flags);\n if (command === \"clean\" || command === \"migrate\") {\n return yield* runRecordMaintenanceCommand(cwd, command, positionals, flags);\n }\n if (command === \"init\") {\n yield* initProject(cwd);\n yield* writeStdout(t(\"cli.init.done\"));\n if (!hostPrefersEsm(cwd))\n yield* writeStdout(t(\"cli.init.esmHint\"));\n return 0;\n }\n if (command === \"exp\" && positionals[0] === \"rename\") {\n return yield* runExperimentRenameCommand(cwd, positionals.slice(1), flags);\n }\n return yield* runEvaluationCommand(cwd, command, positionals, flags, interruption);\n}).pipe(\n// Every command boundary reports a typed CLI failure; defects and\n// interruption remain in the Cause channel for bootstrap to own.\nEffect.mapError((cause) => cliFailure(\"run CLI command\", cause)));\n"]}