niceeval 0.12.2-canary.31 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2039) hide show
  1. package/INDEX.md +10 -10
  2. package/README.md +2 -0
  3. package/README.zh.md +2 -0
  4. package/bin/niceeval.js +15 -0
  5. package/dist/agents/claude-code.cjs +9 -1
  6. package/dist/agents/claude-code.cjs.map +1 -1
  7. package/dist/agents/post-setup.cjs +0 -2
  8. package/dist/agents/post-setup.cjs.map +1 -1
  9. package/dist/agents/provisioner.cjs +2 -13
  10. package/dist/agents/provisioner.cjs.map +1 -1
  11. package/dist/agents/provisioner.d.cts +0 -5
  12. package/dist/agents/provisioner.d.mts +0 -5
  13. package/dist/agents/provisioner.d.ts +0 -5
  14. package/dist/agents/provisioner.js +22 -26
  15. package/dist/agents/sdk-streams.cjs +2 -1
  16. package/dist/agents/sdk-streams.cjs.map +1 -1
  17. package/dist/agents/types.cjs.map +1 -1
  18. package/dist/agents/types.d.cts +2 -10
  19. package/dist/agents/types.d.mts +2 -10
  20. package/dist/agents/types.d.ts +2 -10
  21. package/dist/analysis/api.cjs +689 -0
  22. package/dist/analysis/api.cjs.map +1 -0
  23. package/dist/analysis/api.d.cts +126 -0
  24. package/dist/analysis/api.d.mts +126 -0
  25. package/dist/analysis/api.d.ts +126 -0
  26. package/dist/analysis/api.js +24 -0
  27. package/dist/analysis/api.js.map +1 -0
  28. package/dist/analysis/bindings.cjs +617 -0
  29. package/dist/analysis/bindings.cjs.map +1 -0
  30. package/dist/analysis/bindings.d.cts +8313 -0
  31. package/dist/analysis/bindings.d.mts +8313 -0
  32. package/dist/analysis/bindings.d.ts +8313 -0
  33. package/dist/analysis/bindings.js +22 -0
  34. package/dist/analysis/bindings.js.map +1 -0
  35. package/dist/analysis/contracts.cjs +39 -0
  36. package/dist/analysis/contracts.cjs.map +1 -0
  37. package/dist/analysis/contracts.d.cts +293 -0
  38. package/dist/analysis/contracts.d.mts +293 -0
  39. package/dist/analysis/contracts.d.ts +293 -0
  40. package/dist/analysis/contracts.js +12 -0
  41. package/dist/analysis/contracts.js.map +1 -0
  42. package/dist/analysis/cost-decimal.cjs +177 -0
  43. package/dist/analysis/cost-decimal.cjs.map +1 -0
  44. package/dist/analysis/cost-decimal.d.cts +51 -0
  45. package/dist/analysis/cost-decimal.d.mts +51 -0
  46. package/dist/analysis/cost-decimal.d.ts +51 -0
  47. package/dist/analysis/cost-decimal.js +28 -0
  48. package/dist/analysis/cost-decimal.js.map +1 -0
  49. package/dist/analysis/cost-projection.cjs +430 -0
  50. package/dist/analysis/cost-projection.cjs.map +1 -0
  51. package/dist/analysis/cost-projection.d.cts +37 -0
  52. package/dist/analysis/cost-projection.d.mts +37 -0
  53. package/dist/analysis/cost-projection.d.ts +37 -0
  54. package/dist/analysis/cost-projection.js +10 -0
  55. package/dist/analysis/cost-projection.js.map +1 -0
  56. package/dist/analysis/cost.cjs +814 -0
  57. package/dist/analysis/cost.cjs.map +1 -0
  58. package/dist/analysis/cost.d.cts +310 -0
  59. package/dist/analysis/cost.d.mts +310 -0
  60. package/dist/analysis/cost.d.ts +310 -0
  61. package/dist/analysis/cost.js +26 -0
  62. package/dist/analysis/cost.js.map +1 -0
  63. package/dist/analysis/definitions.cjs +346 -0
  64. package/dist/analysis/definitions.cjs.map +1 -0
  65. package/dist/analysis/definitions.d.cts +230 -0
  66. package/dist/analysis/definitions.d.mts +230 -0
  67. package/dist/analysis/definitions.d.ts +230 -0
  68. package/dist/analysis/definitions.js +70 -0
  69. package/dist/analysis/definitions.js.map +1 -0
  70. package/dist/analysis/domain-view.cjs +3 -0
  71. package/dist/analysis/domain-view.cjs.map +1 -0
  72. package/dist/analysis/domain-view.d.cts +367 -0
  73. package/dist/analysis/domain-view.d.mts +367 -0
  74. package/dist/analysis/domain-view.d.ts +367 -0
  75. package/dist/analysis/domain-view.js +4 -0
  76. package/dist/analysis/domain-view.js.map +1 -0
  77. package/dist/analysis/file-changes.cjs +225 -0
  78. package/dist/analysis/file-changes.cjs.map +1 -0
  79. package/dist/analysis/file-changes.d.cts +30 -0
  80. package/dist/analysis/file-changes.d.mts +30 -0
  81. package/dist/analysis/file-changes.d.ts +30 -0
  82. package/dist/analysis/file-changes.js +6 -0
  83. package/dist/analysis/file-changes.js.map +1 -0
  84. package/dist/analysis/host.cjs +8 -0
  85. package/dist/analysis/host.cjs.map +1 -0
  86. package/dist/analysis/host.d.cts +19 -0
  87. package/dist/analysis/host.d.mts +19 -0
  88. package/dist/analysis/host.d.ts +19 -0
  89. package/dist/analysis/host.js +6 -0
  90. package/dist/analysis/host.js.map +1 -0
  91. package/dist/analysis/host.mjs +6 -0
  92. package/dist/analysis/host.mjs.map +1 -0
  93. package/dist/analysis/index.cjs +45 -8
  94. package/dist/analysis/index.cjs.map +1 -1
  95. package/dist/analysis/index.d.cts +10 -2
  96. package/dist/analysis/index.d.mts +10 -2
  97. package/dist/analysis/index.d.ts +10 -2
  98. package/dist/analysis/index.js +70 -6
  99. package/dist/analysis/index.mjs +70 -6
  100. package/dist/assertions/api.cjs.map +1 -1
  101. package/dist/assertions/api.d.cts +1 -1
  102. package/dist/assertions/api.d.mts +1 -1
  103. package/dist/assertions/api.d.ts +1 -1
  104. package/dist/assertions/diff.cjs +2 -2
  105. package/dist/assertions/diff.cjs.map +1 -1
  106. package/dist/assertions/diff.d.cts +2 -2
  107. package/dist/assertions/diff.d.mts +2 -2
  108. package/dist/assertions/diff.d.ts +2 -2
  109. package/dist/assertions/judge.cjs +11 -10
  110. package/dist/assertions/judge.cjs.map +1 -1
  111. package/dist/assertions/record/attachment.cjs +64 -81
  112. package/dist/assertions/record/attachment.cjs.map +1 -1
  113. package/dist/assertions/record/attachment.d.cts +88 -143
  114. package/dist/assertions/record/attachment.d.mts +88 -143
  115. package/dist/assertions/record/attachment.d.ts +88 -143
  116. package/dist/assertions/record/attachment.js +12 -16
  117. package/dist/assertions/record/codec.cjs +178 -100
  118. package/dist/assertions/record/codec.cjs.map +1 -1
  119. package/dist/assertions/record/codec.d.cts +75 -56
  120. package/dist/assertions/record/codec.d.mts +75 -56
  121. package/dist/assertions/record/codec.d.ts +75 -56
  122. package/dist/assertions/record/codec.js +36 -32
  123. package/dist/assertions/record/diff.cjs +545 -134
  124. package/dist/assertions/record/diff.cjs.map +1 -1
  125. package/dist/assertions/record/diff.d.cts +73 -25
  126. package/dist/assertions/record/diff.d.mts +73 -25
  127. package/dist/assertions/record/diff.d.ts +73 -25
  128. package/dist/assertions/record/diff.js +12 -14
  129. package/dist/assertions/record/index.js +70 -72
  130. package/dist/assertions/record/model.cjs.map +1 -1
  131. package/dist/assertions/record/model.d.cts +62 -70
  132. package/dist/assertions/record/model.d.mts +62 -70
  133. package/dist/assertions/record/model.d.ts +62 -70
  134. package/dist/assertions/record/producer.cjs +5 -2
  135. package/dist/assertions/record/producer.cjs.map +1 -1
  136. package/dist/assertions/record/producer.d.cts +18 -18
  137. package/dist/assertions/record/producer.d.mts +18 -18
  138. package/dist/assertions/record/producer.d.ts +18 -18
  139. package/dist/assertions/record/producer.js +2 -2
  140. package/dist/assertions/runtime.cjs +14 -9
  141. package/dist/assertions/runtime.cjs.map +1 -1
  142. package/dist/assertions/workspace-diff.cjs +18 -4
  143. package/dist/assertions/workspace-diff.cjs.map +1 -1
  144. package/dist/assertions/workspace-diff.d.cts +3 -1
  145. package/dist/assertions/workspace-diff.d.mts +3 -1
  146. package/dist/assertions/workspace-diff.d.ts +3 -1
  147. package/dist/assertions/workspace-diff.js +14 -12
  148. package/dist/attempt-locator-resolution.cjs +33 -38
  149. package/dist/attempt-locator-resolution.cjs.map +1 -1
  150. package/dist/attempt-locator-resolution.d.cts +15 -8
  151. package/dist/attempt-locator-resolution.d.mts +15 -8
  152. package/dist/attempt-locator-resolution.d.ts +15 -8
  153. package/dist/cli/record.cjs +16 -89
  154. package/dist/cli/record.cjs.map +1 -1
  155. package/dist/cli/record.d.cts +2 -9
  156. package/dist/cli/record.d.mts +2 -9
  157. package/dist/cli/record.d.ts +2 -9
  158. package/dist/cli/record.js +2 -6
  159. package/dist/cli.cjs +609 -245
  160. package/dist/cli.cjs.map +1 -1
  161. package/dist/cli.d.cts +6 -5
  162. package/dist/cli.d.mts +6 -5
  163. package/dist/cli.d.ts +6 -5
  164. package/dist/context/assert-first.cjs +13 -4
  165. package/dist/context/assert-first.cjs.map +1 -1
  166. package/dist/context/assert-first.d.cts +3 -4
  167. package/dist/context/assert-first.d.mts +3 -4
  168. package/dist/context/assert-first.d.ts +3 -4
  169. package/dist/context/send-retry.cjs +18 -21
  170. package/dist/context/send-retry.cjs.map +1 -1
  171. package/dist/context/send-retry.d.cts +0 -3
  172. package/dist/context/send-retry.d.mts +0 -3
  173. package/dist/context/send-retry.d.ts +0 -3
  174. package/dist/context/session.cjs +46 -42
  175. package/dist/context/session.cjs.map +1 -1
  176. package/dist/context/session.d.cts +4 -6
  177. package/dist/context/session.d.mts +4 -6
  178. package/dist/context/session.d.ts +4 -6
  179. package/dist/coordination/host/index.cjs +10 -0
  180. package/dist/coordination/host/index.cjs.map +1 -0
  181. package/dist/coordination/host/index.d.cts +6 -0
  182. package/dist/coordination/host/index.d.mts +6 -0
  183. package/dist/coordination/host/index.d.ts +6 -0
  184. package/dist/coordination/host/index.js +6 -0
  185. package/dist/coordination/host/index.mjs +6 -0
  186. package/dist/coordination/host/runtime.cjs +57 -0
  187. package/dist/coordination/host/runtime.cjs.map +1 -0
  188. package/dist/coordination/host/runtime.d.cts +13 -0
  189. package/dist/coordination/host/runtime.d.mts +13 -0
  190. package/dist/coordination/host/runtime.d.ts +13 -0
  191. package/dist/coordination/host/runtime.js +8 -0
  192. package/dist/coordination/host/types.cjs.map +1 -0
  193. package/dist/coordination/host/types.d.cts +37 -0
  194. package/dist/coordination/host/types.d.mts +37 -0
  195. package/dist/coordination/host/types.d.ts +37 -0
  196. package/dist/coordination/identity.cjs +48 -0
  197. package/dist/coordination/identity.cjs.map +1 -0
  198. package/dist/coordination/identity.d.cts +14 -0
  199. package/dist/coordination/identity.d.mts +14 -0
  200. package/dist/coordination/identity.d.ts +14 -0
  201. package/dist/coordination/identity.js +6 -0
  202. package/dist/coordination/index.cjs +23 -0
  203. package/dist/coordination/index.cjs.map +1 -0
  204. package/dist/coordination/index.d.cts +6 -0
  205. package/dist/coordination/index.d.mts +6 -0
  206. package/dist/coordination/index.d.ts +6 -0
  207. package/dist/coordination/index.js +16 -0
  208. package/dist/coordination/platform/index.cjs +18 -0
  209. package/dist/coordination/platform/index.cjs.map +1 -0
  210. package/dist/coordination/platform/index.d.cts +1 -0
  211. package/dist/coordination/platform/index.d.mts +1 -0
  212. package/dist/coordination/platform/index.d.ts +1 -0
  213. package/dist/coordination/platform/index.js +6 -0
  214. package/dist/coordination/platform/node.cjs +251 -0
  215. package/dist/coordination/platform/node.cjs.map +1 -0
  216. package/dist/coordination/platform/node.d.cts +3 -0
  217. package/dist/coordination/platform/node.d.mts +3 -0
  218. package/dist/coordination/platform/node.d.ts +3 -0
  219. package/dist/coordination/platform/node.js +6 -0
  220. package/dist/coordination/platform/node.js.map +1 -0
  221. package/dist/coordination/record-leases.cjs +22 -0
  222. package/dist/coordination/record-leases.cjs.map +1 -0
  223. package/dist/coordination/record-leases.d.cts +39 -0
  224. package/dist/coordination/record-leases.d.mts +39 -0
  225. package/dist/coordination/record-leases.d.ts +39 -0
  226. package/dist/coordination/record-leases.js +10 -0
  227. package/dist/coordination/record-leases.js.map +1 -0
  228. package/dist/eval/experiment-id.cjs +1 -5
  229. package/dist/eval/experiment-id.cjs.map +1 -1
  230. package/dist/eval/experiment-id.d.cts +0 -2
  231. package/dist/eval/experiment-id.d.mts +0 -2
  232. package/dist/eval/experiment-id.d.ts +0 -2
  233. package/dist/eval/experiment-id.js +0 -4
  234. package/dist/eval/record/attachment.cjs +7 -47
  235. package/dist/eval/record/attachment.cjs.map +1 -1
  236. package/dist/eval/record/attachment.d.cts +8 -24
  237. package/dist/eval/record/attachment.d.mts +8 -24
  238. package/dist/eval/record/attachment.d.ts +8 -24
  239. package/dist/eval/record/attachment.js +4 -10
  240. package/dist/eval/record/coherence.cjs +6 -6
  241. package/dist/eval/record/coherence.cjs.map +1 -1
  242. package/dist/eval/record/coherence.d.cts +16 -16
  243. package/dist/eval/record/coherence.d.mts +16 -16
  244. package/dist/eval/record/coherence.d.ts +16 -16
  245. package/dist/eval/record/coherence.js +2 -2
  246. package/dist/eval/record/eligibility.cjs +53 -135
  247. package/dist/eval/record/eligibility.cjs.map +1 -1
  248. package/dist/eval/record/eligibility.d.cts +38 -140
  249. package/dist/eval/record/eligibility.d.mts +38 -140
  250. package/dist/eval/record/eligibility.d.ts +38 -140
  251. package/dist/eval/record/eligibility.js +16 -38
  252. package/dist/eval/record/evaluation-plan.cjs +18 -23
  253. package/dist/eval/record/evaluation-plan.cjs.map +1 -1
  254. package/dist/eval/record/evaluation-plan.d.cts +6 -9
  255. package/dist/eval/record/evaluation-plan.d.mts +6 -9
  256. package/dist/eval/record/evaluation-plan.d.ts +6 -9
  257. package/dist/eval/record/evaluation-plan.js +2 -2
  258. package/dist/eval/record/evaluation-record.cjs +161 -454
  259. package/dist/eval/record/evaluation-record.cjs.map +1 -1
  260. package/dist/eval/record/evaluation-record.d.cts +67 -128
  261. package/dist/eval/record/evaluation-record.d.mts +67 -128
  262. package/dist/eval/record/evaluation-record.d.ts +67 -128
  263. package/dist/eval/record/evaluation-record.js +16 -16
  264. package/dist/eval/record/evaluation.cjs +59 -174
  265. package/dist/eval/record/evaluation.cjs.map +1 -1
  266. package/dist/eval/record/evaluation.d.cts +43 -119
  267. package/dist/eval/record/evaluation.d.mts +43 -119
  268. package/dist/eval/record/evaluation.d.ts +43 -119
  269. package/dist/eval/record/evaluation.js +20 -32
  270. package/dist/eval/record/index.js +144 -238
  271. package/dist/eval/record/membership-provenance.cjs +58 -191
  272. package/dist/eval/record/membership-provenance.cjs.map +1 -1
  273. package/dist/eval/record/membership-provenance.d.cts +83 -659
  274. package/dist/eval/record/membership-provenance.d.mts +83 -659
  275. package/dist/eval/record/membership-provenance.d.ts +83 -659
  276. package/dist/eval/record/membership-provenance.js +34 -54
  277. package/dist/eval/record/score.cjs +58 -170
  278. package/dist/eval/record/score.cjs.map +1 -1
  279. package/dist/eval/record/score.d.cts +36 -104
  280. package/dist/eval/record/score.d.mts +36 -104
  281. package/dist/eval/record/score.d.ts +36 -104
  282. package/dist/eval/record/score.js +22 -40
  283. package/dist/eval/record/sealed-assertion.cjs +10 -10
  284. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  285. package/dist/eval/record/sealed-assertion.d.cts +12 -12
  286. package/dist/eval/record/sealed-assertion.d.mts +12 -12
  287. package/dist/eval/record/sealed-assertion.d.ts +12 -12
  288. package/dist/eval/record/sealed-assertion.js +10 -10
  289. package/dist/eval/record/verdict.cjs +42 -64
  290. package/dist/eval/record/verdict.cjs.map +1 -1
  291. package/dist/eval/record/verdict.d.cts +35 -48
  292. package/dist/eval/record/verdict.d.mts +35 -48
  293. package/dist/eval/record/verdict.d.ts +35 -48
  294. package/dist/eval/record/verdict.js +16 -32
  295. package/dist/experiment/host/index.cjs +210 -0
  296. package/dist/experiment/host/index.cjs.map +1 -0
  297. package/dist/experiment/host/index.d.cts +125 -0
  298. package/dist/experiment/host/index.d.mts +125 -0
  299. package/dist/experiment/host/index.d.ts +125 -0
  300. package/dist/experiment/host/index.js +6 -0
  301. package/dist/experiment/host/index.mjs +6 -0
  302. package/dist/experiment/host/index.mjs.map +1 -0
  303. package/dist/fresh-import.cjs +33 -119
  304. package/dist/fresh-import.cjs.map +1 -1
  305. package/dist/i18n/en.cjs +10 -5
  306. package/dist/i18n/en.cjs.map +1 -1
  307. package/dist/i18n/en.d.cts +9 -4
  308. package/dist/i18n/en.d.mts +9 -4
  309. package/dist/i18n/en.d.ts +9 -4
  310. package/dist/index.cjs +1 -4
  311. package/dist/index.cjs.map +1 -1
  312. package/dist/index.d.cts +0 -2
  313. package/dist/index.d.mts +0 -2
  314. package/dist/index.d.ts +0 -2
  315. package/dist/index.js +18 -20
  316. package/dist/index.mjs +18 -20
  317. package/dist/o11y/cost.cjs +16 -6
  318. package/dist/o11y/cost.cjs.map +1 -1
  319. package/dist/o11y/parsers/bub.cjs +16 -4
  320. package/dist/o11y/parsers/bub.cjs.map +1 -1
  321. package/dist/o11y/parsers/hermes.cjs +19 -6
  322. package/dist/o11y/parsers/hermes.cjs.map +1 -1
  323. package/dist/o11y/parsers/openclaw.cjs +5 -10
  324. package/dist/o11y/parsers/openclaw.cjs.map +1 -1
  325. package/dist/o11y/parsers/opencode.cjs +6 -11
  326. package/dist/o11y/parsers/opencode.cjs.map +1 -1
  327. package/dist/o11y/prices.json +1335 -557
  328. package/dist/o11y/record/capture.cjs +38 -38
  329. package/dist/o11y/record/capture.cjs.map +1 -1
  330. package/dist/o11y/record/capture.d.cts +25 -25
  331. package/dist/o11y/record/capture.d.mts +25 -25
  332. package/dist/o11y/record/capture.d.ts +25 -25
  333. package/dist/o11y/record/capture.js +26 -26
  334. package/dist/o11y/record/codec.cjs +139 -140
  335. package/dist/o11y/record/codec.cjs.map +1 -1
  336. package/dist/o11y/record/codec.d.cts +262 -266
  337. package/dist/o11y/record/codec.d.mts +262 -266
  338. package/dist/o11y/record/codec.d.ts +262 -266
  339. package/dist/o11y/record/codec.js +58 -60
  340. package/dist/o11y/record/errors.cjs +20 -20
  341. package/dist/o11y/record/errors.cjs.map +1 -1
  342. package/dist/o11y/record/errors.d.cts +18 -18
  343. package/dist/o11y/record/errors.d.mts +18 -18
  344. package/dist/o11y/record/errors.d.ts +18 -18
  345. package/dist/o11y/record/errors.js +20 -20
  346. package/dist/o11y/record/families.cjs +269 -264
  347. package/dist/o11y/record/families.cjs.map +1 -1
  348. package/dist/o11y/record/families.d.cts +1589 -1573
  349. package/dist/o11y/record/families.d.mts +1589 -1573
  350. package/dist/o11y/record/families.d.ts +1589 -1573
  351. package/dist/o11y/record/families.js +64 -64
  352. package/dist/o11y/record/family-projectors.cjs +31 -58
  353. package/dist/o11y/record/family-projectors.cjs.map +1 -1
  354. package/dist/o11y/record/family-projectors.d.cts +2933 -34
  355. package/dist/o11y/record/family-projectors.d.mts +2933 -34
  356. package/dist/o11y/record/family-projectors.d.ts +2933 -34
  357. package/dist/o11y/record/family-projectors.js +10 -4
  358. package/dist/o11y/record/family-writers.cjs +207 -336
  359. package/dist/o11y/record/family-writers.cjs.map +1 -1
  360. package/dist/o11y/record/family-writers.d.cts +637 -5260
  361. package/dist/o11y/record/family-writers.d.mts +637 -5260
  362. package/dist/o11y/record/family-writers.d.ts +637 -5260
  363. package/dist/o11y/record/family-writers.js +14 -56
  364. package/dist/o11y/record/index.js +446 -484
  365. package/dist/o11y/record/limits.cjs +45 -45
  366. package/dist/o11y/record/limits.cjs.map +1 -1
  367. package/dist/o11y/record/limits.d.cts +32 -32
  368. package/dist/o11y/record/limits.d.mts +32 -32
  369. package/dist/o11y/record/limits.d.ts +32 -32
  370. package/dist/o11y/record/limits.js +64 -64
  371. package/dist/o11y/record/model.cjs +271 -277
  372. package/dist/o11y/record/model.cjs.map +1 -1
  373. package/dist/o11y/record/model.d.cts +160 -186
  374. package/dist/o11y/record/model.d.mts +160 -186
  375. package/dist/o11y/record/model.d.ts +160 -186
  376. package/dist/o11y/record/model.js +154 -154
  377. package/dist/o11y/record/runner-producer.cjs +649 -520
  378. package/dist/o11y/record/runner-producer.cjs.map +1 -1
  379. package/dist/o11y/record/runner-producer.d.cts +39 -25
  380. package/dist/o11y/record/runner-producer.d.mts +39 -25
  381. package/dist/o11y/record/runner-producer.d.ts +39 -25
  382. package/dist/o11y/record/runner-producer.js +26 -22
  383. package/dist/o11y/record/validation.cjs +75 -75
  384. package/dist/o11y/record/validation.cjs.map +1 -1
  385. package/dist/o11y/record/validation.d.cts +35 -35
  386. package/dist/o11y/record/validation.d.mts +35 -35
  387. package/dist/o11y/record/validation.d.ts +35 -35
  388. package/dist/o11y/record/validation.js +24 -24
  389. package/dist/o11y/types.cjs.map +1 -1
  390. package/dist/o11y/types.d.cts +7 -5
  391. package/dist/o11y/types.d.mts +7 -5
  392. package/dist/o11y/types.d.ts +7 -5
  393. package/dist/plugin/contracts.cjs.map +1 -1
  394. package/dist/plugin/contracts.d.cts +0 -3
  395. package/dist/plugin/contracts.d.mts +0 -3
  396. package/dist/plugin/contracts.d.ts +0 -3
  397. package/dist/plugins/record/attachment.cjs +0 -59
  398. package/dist/plugins/record/attachment.cjs.map +1 -1
  399. package/dist/plugins/record/attachment.d.cts +6 -14
  400. package/dist/plugins/record/attachment.d.mts +6 -14
  401. package/dist/plugins/record/attachment.d.ts +6 -14
  402. package/dist/plugins/record/attachment.js +0 -16
  403. package/dist/plugins/record/capability.cjs +0 -255
  404. package/dist/plugins/record/capability.cjs.map +1 -1
  405. package/dist/plugins/record/capability.d.cts +1 -93
  406. package/dist/plugins/record/capability.d.mts +1 -93
  407. package/dist/plugins/record/capability.d.ts +1 -93
  408. package/dist/plugins/record/capability.js +0 -22
  409. package/dist/plugins/record/codec.cjs +0 -241
  410. package/dist/plugins/record/codec.cjs.map +1 -1
  411. package/dist/plugins/record/codec.d.cts +2 -28
  412. package/dist/plugins/record/codec.d.mts +2 -28
  413. package/dist/plugins/record/codec.d.ts +2 -28
  414. package/dist/plugins/record/codec.js +0 -44
  415. package/dist/plugins/record/index.cjs +0 -51
  416. package/dist/plugins/record/index.cjs.map +1 -1
  417. package/dist/plugins/record/index.d.cts +5 -9
  418. package/dist/plugins/record/index.d.mts +5 -9
  419. package/dist/plugins/record/index.d.ts +5 -9
  420. package/dist/plugins/record/index.js +0 -90
  421. package/dist/plugins/record/migration.cjs +0 -30
  422. package/dist/plugins/record/migration.cjs.map +1 -1
  423. package/dist/plugins/record/migration.d.cts +3 -20
  424. package/dist/plugins/record/migration.d.mts +3 -20
  425. package/dist/plugins/record/migration.d.ts +3 -20
  426. package/dist/plugins/record/migration.js +0 -2
  427. package/dist/plugins/record/model.cjs.map +1 -1
  428. package/dist/plugins/record/model.d.cts +2 -93
  429. package/dist/plugins/record/model.d.mts +2 -93
  430. package/dist/plugins/record/model.d.ts +2 -93
  431. package/dist/plugins/record/provenance.cjs +0 -316
  432. package/dist/plugins/record/provenance.cjs.map +1 -1
  433. package/dist/plugins/record/provenance.d.cts +1 -78
  434. package/dist/plugins/record/provenance.d.mts +1 -78
  435. package/dist/plugins/record/provenance.d.ts +1 -78
  436. package/dist/plugins/record/provenance.js +0 -20
  437. package/dist/record/attachment/blob-policy.cjs +3 -0
  438. package/dist/record/attachment/blob-policy.cjs.map +1 -0
  439. package/dist/record/attachment/blob-policy.d.cts +18 -0
  440. package/dist/record/attachment/blob-policy.d.mts +18 -0
  441. package/dist/record/attachment/blob-policy.d.ts +18 -0
  442. package/dist/record/attachment/blob-policy.js +4 -0
  443. package/dist/record/attachment/blob-policy.js.map +1 -0
  444. package/dist/record/attachment/blob-ref.cjs +42 -0
  445. package/dist/record/attachment/blob-ref.cjs.map +1 -0
  446. package/dist/record/attachment/blob-ref.d.cts +22 -0
  447. package/dist/record/attachment/blob-ref.d.mts +22 -0
  448. package/dist/record/attachment/blob-ref.d.ts +22 -0
  449. package/dist/record/attachment/blob-ref.js +14 -0
  450. package/dist/record/attachment/blob-ref.js.map +1 -0
  451. package/dist/record/attachment/errors.cjs +6 -34
  452. package/dist/record/attachment/errors.cjs.map +1 -1
  453. package/dist/record/attachment/errors.d.cts +2 -24
  454. package/dist/record/attachment/errors.d.mts +2 -24
  455. package/dist/record/attachment/errors.d.ts +2 -24
  456. package/dist/record/attachment/errors.js +4 -10
  457. package/dist/record/attachment/index.cjs +2 -8
  458. package/dist/record/attachment/index.cjs.map +1 -1
  459. package/dist/record/attachment/index.d.cts +3 -3
  460. package/dist/record/attachment/index.d.mts +3 -3
  461. package/dist/record/attachment/index.d.ts +3 -3
  462. package/dist/record/attachment/index.js +6 -18
  463. package/dist/record/attachment/internal.cjs +5 -14
  464. package/dist/record/attachment/internal.cjs.map +1 -1
  465. package/dist/record/attachment/internal.d.cts +3 -2
  466. package/dist/record/attachment/internal.d.mts +3 -2
  467. package/dist/record/attachment/internal.d.ts +3 -2
  468. package/dist/record/attachment/internal.js +12 -30
  469. package/dist/record/attachment/runtime.cjs +155 -745
  470. package/dist/record/attachment/runtime.cjs.map +1 -1
  471. package/dist/record/attachment/runtime.d.cts +25 -68
  472. package/dist/record/attachment/runtime.d.mts +25 -68
  473. package/dist/record/attachment/runtime.d.ts +25 -68
  474. package/dist/record/attachment/runtime.js +16 -48
  475. package/dist/record/attachment/types.cjs +3 -26
  476. package/dist/record/attachment/types.cjs.map +1 -1
  477. package/dist/record/attachment/types.d.cts +33 -132
  478. package/dist/record/attachment/types.d.mts +33 -132
  479. package/dist/record/attachment/types.d.ts +33 -132
  480. package/dist/record/attachment/types.js +10 -22
  481. package/dist/record/codec/core.cjs +102 -85
  482. package/dist/record/codec/core.cjs.map +1 -1
  483. package/dist/record/codec/core.d.cts +205 -55
  484. package/dist/record/codec/core.d.mts +205 -55
  485. package/dist/record/codec/core.d.ts +205 -55
  486. package/dist/record/codec/core.js +50 -42
  487. package/dist/record/codec/identifiers.cjs +24 -2
  488. package/dist/record/codec/identifiers.cjs.map +1 -1
  489. package/dist/record/codec/identifiers.d.cts +11 -2
  490. package/dist/record/codec/identifiers.d.mts +11 -2
  491. package/dist/record/codec/identifiers.d.ts +11 -2
  492. package/dist/record/codec/identifiers.js +36 -18
  493. package/dist/record/codec/index.js +86 -60
  494. package/dist/record/definition/attachment.cjs +108 -0
  495. package/dist/record/definition/attachment.cjs.map +1 -0
  496. package/dist/record/definition/attachment.d.cts +77 -0
  497. package/dist/record/definition/attachment.d.mts +77 -0
  498. package/dist/record/definition/attachment.d.ts +77 -0
  499. package/dist/record/definition/attachment.js +8 -0
  500. package/dist/record/definition/attachment.js.map +1 -0
  501. package/dist/record/definition/canonical.cjs +271 -0
  502. package/dist/record/definition/canonical.cjs.map +1 -0
  503. package/dist/record/definition/canonical.d.cts +38 -0
  504. package/dist/record/definition/canonical.d.mts +38 -0
  505. package/dist/record/definition/canonical.d.ts +38 -0
  506. package/dist/record/definition/canonical.js +10 -0
  507. package/dist/record/definition/canonical.js.map +1 -0
  508. package/dist/record/definition/core.cjs +13 -0
  509. package/dist/record/definition/core.cjs.map +1 -0
  510. package/dist/record/definition/core.d.cts +10 -0
  511. package/dist/record/definition/core.d.mts +10 -0
  512. package/dist/record/definition/core.d.ts +10 -0
  513. package/dist/record/definition/core.js +6 -0
  514. package/dist/record/definition/core.js.map +1 -0
  515. package/dist/record/definition/index.cjs +21 -0
  516. package/dist/record/definition/index.cjs.map +1 -0
  517. package/dist/record/definition/index.d.cts +4 -0
  518. package/dist/record/definition/index.d.mts +4 -0
  519. package/dist/record/definition/index.d.ts +4 -0
  520. package/dist/record/definition/index.js +16 -0
  521. package/dist/record/definition/index.js.map +1 -0
  522. package/dist/record/definition/schema-codec.cjs +347 -0
  523. package/dist/record/definition/schema-codec.cjs.map +1 -0
  524. package/dist/record/definition/schema-codec.d.cts +48 -0
  525. package/dist/record/definition/schema-codec.d.mts +48 -0
  526. package/dist/record/definition/schema-codec.d.ts +48 -0
  527. package/dist/record/definition/schema-codec.js +8 -0
  528. package/dist/record/definition/schema-codec.js.map +1 -0
  529. package/dist/record/errors/record-errors.cjs +2 -2
  530. package/dist/record/errors/record-errors.cjs.map +1 -1
  531. package/dist/record/errors/record-errors.d.cts +2 -2
  532. package/dist/record/errors/record-errors.d.mts +2 -2
  533. package/dist/record/errors/record-errors.d.ts +2 -2
  534. package/dist/record/family/artifacts.cjs +83 -0
  535. package/dist/record/family/artifacts.cjs.map +1 -0
  536. package/dist/record/family/artifacts.d.cts +225 -0
  537. package/dist/record/family/artifacts.d.mts +225 -0
  538. package/dist/record/family/artifacts.d.ts +225 -0
  539. package/dist/record/family/artifacts.js +14 -0
  540. package/dist/record/family/artifacts.js.map +1 -0
  541. package/dist/record/family/assertions.cjs +172 -0
  542. package/dist/record/family/assertions.cjs.map +1 -0
  543. package/dist/record/family/assertions.d.cts +292 -0
  544. package/dist/record/family/assertions.d.mts +292 -0
  545. package/dist/record/family/assertions.d.ts +292 -0
  546. package/dist/record/family/assertions.js +20 -0
  547. package/dist/record/family/assertions.js.map +1 -0
  548. package/dist/record/family/catalog.cjs +91 -0
  549. package/dist/record/family/catalog.cjs.map +1 -0
  550. package/dist/record/family/catalog.d.cts +3653 -0
  551. package/dist/record/family/catalog.d.mts +3653 -0
  552. package/dist/record/family/catalog.d.ts +3653 -0
  553. package/dist/record/family/catalog.js +34 -0
  554. package/dist/record/family/catalog.js.map +1 -0
  555. package/dist/record/family/common.cjs +80 -0
  556. package/dist/record/family/common.cjs.map +1 -0
  557. package/dist/record/family/common.d.cts +44 -0
  558. package/dist/record/family/common.d.mts +44 -0
  559. package/dist/record/family/common.d.ts +44 -0
  560. package/dist/record/family/common.js +28 -0
  561. package/dist/record/family/common.js.map +1 -0
  562. package/dist/record/family/file-changes.cjs +278 -0
  563. package/dist/record/family/file-changes.cjs.map +1 -0
  564. package/dist/record/family/file-changes.d.cts +643 -0
  565. package/dist/record/family/file-changes.d.mts +643 -0
  566. package/dist/record/family/file-changes.d.ts +643 -0
  567. package/dist/record/family/file-changes.js +32 -0
  568. package/dist/record/family/file-changes.js.map +1 -0
  569. package/dist/record/family/index.cjs +24 -0
  570. package/dist/record/family/index.cjs.map +1 -0
  571. package/dist/record/family/index.d.cts +7 -0
  572. package/dist/record/family/index.d.mts +7 -0
  573. package/dist/record/family/index.d.ts +7 -0
  574. package/dist/record/family/index.js +148 -0
  575. package/dist/record/family/index.js.map +1 -0
  576. package/dist/record/family/observability.cjs +511 -0
  577. package/dist/record/family/observability.cjs.map +1 -0
  578. package/dist/record/family/observability.d.cts +2879 -0
  579. package/dist/record/family/observability.d.mts +2879 -0
  580. package/dist/record/family/observability.d.ts +2879 -0
  581. package/dist/record/family/observability.js +30 -0
  582. package/dist/record/family/observability.js.map +1 -0
  583. package/dist/record/family/source-navigation.cjs +215 -0
  584. package/dist/record/family/source-navigation.cjs.map +1 -0
  585. package/dist/record/family/source-navigation.d.cts +330 -0
  586. package/dist/record/family/source-navigation.d.mts +330 -0
  587. package/dist/record/family/source-navigation.d.ts +330 -0
  588. package/dist/record/family/source-navigation.js +24 -0
  589. package/dist/record/family/source-navigation.js.map +1 -0
  590. package/dist/record/family/sources.cjs +82 -0
  591. package/dist/record/family/sources.cjs.map +1 -0
  592. package/dist/record/family/sources.d.cts +81 -0
  593. package/dist/record/family/sources.d.mts +81 -0
  594. package/dist/record/family/sources.d.ts +81 -0
  595. package/dist/record/family/sources.js +14 -0
  596. package/dist/record/family/sources.js.map +1 -0
  597. package/dist/record/host/index.cjs +11 -0
  598. package/dist/record/host/index.cjs.map +1 -0
  599. package/dist/record/host/index.d.cts +7 -0
  600. package/dist/record/host/index.d.mts +7 -0
  601. package/dist/record/host/index.d.ts +7 -0
  602. package/dist/record/host/index.js +6 -0
  603. package/dist/record/host/index.js.map +1 -0
  604. package/dist/record/host/index.mjs +6 -0
  605. package/dist/record/host/index.mjs.map +1 -0
  606. package/dist/record/host/runtime.cjs +1696 -0
  607. package/dist/record/host/runtime.cjs.map +1 -0
  608. package/dist/record/host/runtime.d.cts +2 -0
  609. package/dist/record/host/runtime.d.mts +2 -0
  610. package/dist/record/host/runtime.d.ts +2 -0
  611. package/dist/record/host/runtime.js +6 -0
  612. package/dist/record/host/types.cjs +9 -0
  613. package/dist/record/host/types.cjs.map +1 -0
  614. package/dist/record/host/types.d.cts +259 -0
  615. package/dist/record/host/types.d.mts +259 -0
  616. package/dist/record/host/types.d.ts +259 -0
  617. package/dist/record/host/types.js +14 -0
  618. package/dist/record/host/types.js.map +1 -0
  619. package/dist/record/index.cjs +19 -52
  620. package/dist/record/index.cjs.map +1 -1
  621. package/dist/record/index.d.cts +14 -11
  622. package/dist/record/index.d.mts +14 -11
  623. package/dist/record/index.d.ts +14 -11
  624. package/dist/record/index.js +16 -310
  625. package/dist/record/index.mjs +20 -0
  626. package/dist/record/index.mjs.map +1 -0
  627. package/dist/record/maintenance/runtime.cjs +9 -11
  628. package/dist/record/maintenance/runtime.cjs.map +1 -1
  629. package/dist/record/maintenance/runtime.d.cts +4 -5
  630. package/dist/record/maintenance/runtime.d.mts +4 -5
  631. package/dist/record/maintenance/runtime.d.ts +4 -5
  632. package/dist/record/maintenance/types.cjs.map +1 -1
  633. package/dist/record/maintenance/types.d.cts +7 -8
  634. package/dist/record/maintenance/types.d.mts +7 -8
  635. package/dist/record/maintenance/types.d.ts +7 -8
  636. package/dist/record/migration/index.cjs +2 -25
  637. package/dist/record/migration/index.cjs.map +1 -1
  638. package/dist/record/migration/index.d.cts +11 -8
  639. package/dist/record/migration/index.d.mts +11 -8
  640. package/dist/record/migration/index.d.ts +11 -8
  641. package/dist/record/migration/index.js +2 -44
  642. package/dist/record/model/core.cjs +1 -4
  643. package/dist/record/model/core.cjs.map +1 -1
  644. package/dist/record/model/core.d.cts +59 -39
  645. package/dist/record/model/core.d.mts +59 -39
  646. package/dist/record/model/core.d.ts +59 -39
  647. package/dist/record/model/definition.cjs +147 -0
  648. package/dist/record/model/definition.cjs.map +1 -0
  649. package/dist/record/model/definition.d.cts +463 -0
  650. package/dist/record/model/definition.d.mts +463 -0
  651. package/dist/record/model/definition.d.ts +463 -0
  652. package/dist/record/model/definition.js +40 -0
  653. package/dist/record/model/definition.js.map +1 -0
  654. package/dist/record/model/identifiers.cjs +52 -10
  655. package/dist/record/model/identifiers.cjs.map +1 -1
  656. package/dist/record/model/identifiers.d.cts +44 -3
  657. package/dist/record/model/identifiers.d.mts +44 -3
  658. package/dist/record/model/identifiers.d.ts +44 -3
  659. package/dist/record/model/identifiers.js +62 -36
  660. package/dist/record/model/index.cjs +1 -0
  661. package/dist/record/model/index.cjs.map +1 -1
  662. package/dist/record/model/index.d.cts +1 -0
  663. package/dist/record/model/index.d.mts +1 -0
  664. package/dist/record/model/index.d.ts +1 -0
  665. package/dist/record/model/index.js +86 -48
  666. package/dist/record/model/read-state.cjs.map +1 -1
  667. package/dist/record/model/read-state.d.cts +6 -9
  668. package/dist/record/model/read-state.d.mts +6 -9
  669. package/dist/record/model/read-state.d.ts +6 -9
  670. package/dist/record/model/run-context.cjs +80 -0
  671. package/dist/record/model/run-context.cjs.map +1 -0
  672. package/dist/record/model/run-context.d.cts +30 -0
  673. package/dist/record/model/run-context.d.mts +30 -0
  674. package/dist/record/model/run-context.d.ts +30 -0
  675. package/dist/record/model/run-context.js +14 -0
  676. package/dist/record/model/run-context.js.map +1 -0
  677. package/dist/record/model/validation.cjs +155 -54
  678. package/dist/record/model/validation.cjs.map +1 -1
  679. package/dist/record/model/validation.d.cts +16 -11
  680. package/dist/record/model/validation.d.mts +16 -11
  681. package/dist/record/model/validation.d.ts +16 -11
  682. package/dist/record/model/validation.js +10 -8
  683. package/dist/record/platform/errors.cjs +2 -8
  684. package/dist/record/platform/errors.cjs.map +1 -1
  685. package/dist/record/platform/errors.d.cts +3 -13
  686. package/dist/record/platform/errors.d.mts +3 -13
  687. package/dist/record/platform/errors.d.ts +3 -13
  688. package/dist/record/platform/errors.js +0 -2
  689. package/dist/record/platform/index.js +38 -48
  690. package/dist/record/platform/node.cjs +3 -142
  691. package/dist/record/platform/node.cjs.map +1 -1
  692. package/dist/record/platform/node.d.cts +2 -4
  693. package/dist/record/platform/node.d.mts +2 -4
  694. package/dist/record/platform/node.d.ts +2 -4
  695. package/dist/record/platform/node.js +0 -4
  696. package/dist/record/platform/root.cjs +0 -11
  697. package/dist/record/platform/root.cjs.map +1 -1
  698. package/dist/record/platform/root.d.cts +0 -2
  699. package/dist/record/platform/root.d.mts +0 -2
  700. package/dist/record/platform/root.d.ts +0 -2
  701. package/dist/record/platform/services.cjs +1 -7
  702. package/dist/record/platform/services.cjs.map +1 -1
  703. package/dist/record/platform/services.d.cts +2 -29
  704. package/dist/record/platform/services.d.mts +2 -29
  705. package/dist/record/platform/services.d.ts +2 -29
  706. package/dist/record/platform/services.js +2 -6
  707. package/dist/record/reader/errors.cjs.map +1 -1
  708. package/dist/record/reader/errors.d.cts +3 -2
  709. package/dist/record/reader/errors.d.mts +3 -2
  710. package/dist/record/reader/errors.d.ts +3 -2
  711. package/dist/record/reader/format.cjs +26 -40
  712. package/dist/record/reader/format.cjs.map +1 -1
  713. package/dist/record/reader/format.d.cts +6 -7
  714. package/dist/record/reader/format.d.mts +6 -7
  715. package/dist/record/reader/format.d.ts +6 -7
  716. package/dist/record/reader/index.js +22 -30
  717. package/dist/record/reader/runtime.cjs +112 -636
  718. package/dist/record/reader/runtime.cjs.map +1 -1
  719. package/dist/record/reader/runtime.d.cts +43 -12
  720. package/dist/record/reader/runtime.d.mts +43 -12
  721. package/dist/record/reader/runtime.d.ts +43 -12
  722. package/dist/record/reader/runtime.js +6 -10
  723. package/dist/record/reader/types.cjs +3 -6
  724. package/dist/record/reader/types.cjs.map +1 -1
  725. package/dist/record/reader/types.d.cts +3 -42
  726. package/dist/record/reader/types.d.mts +3 -42
  727. package/dist/record/reader/types.d.ts +3 -42
  728. package/dist/record/reader/types.js +0 -4
  729. package/dist/record/writer/errors.cjs +7 -0
  730. package/dist/record/writer/errors.cjs.map +1 -1
  731. package/dist/record/writer/errors.d.cts +5 -0
  732. package/dist/record/writer/errors.d.mts +5 -0
  733. package/dist/record/writer/errors.d.ts +5 -0
  734. package/dist/record/writer/errors.js +6 -4
  735. package/dist/record/writer/index.cjs +0 -1
  736. package/dist/record/writer/index.cjs.map +1 -1
  737. package/dist/record/writer/index.d.cts +0 -1
  738. package/dist/record/writer/index.d.mts +0 -1
  739. package/dist/record/writer/index.d.ts +0 -1
  740. package/dist/record/writer/index.js +10 -10
  741. package/dist/record/writer/types.cjs.map +1 -1
  742. package/dist/record/writer/types.d.cts +12 -17
  743. package/dist/record/writer/types.d.mts +12 -17
  744. package/dist/record/writer/types.d.ts +12 -17
  745. package/dist/report/assets/colors.cjs +70 -0
  746. package/dist/report/assets/colors.cjs.map +1 -0
  747. package/dist/report/assets/colors.d.cts +22 -0
  748. package/dist/report/assets/colors.d.mts +22 -0
  749. package/dist/report/assets/colors.d.ts +22 -0
  750. package/dist/report/assets/colors.js +18 -0
  751. package/dist/report/assets/colors.js.map +1 -0
  752. package/dist/report/assets/enhance.js +466 -0
  753. package/dist/report/assets/series-encoding.cjs +116 -0
  754. package/dist/report/assets/series-encoding.cjs.map +1 -0
  755. package/dist/report/assets/series-encoding.d.cts +36 -0
  756. package/dist/report/assets/series-encoding.d.mts +36 -0
  757. package/dist/report/assets/series-encoding.d.ts +36 -0
  758. package/dist/report/assets/series-encoding.js +22 -0
  759. package/dist/report/assets/series-encoding.js.map +1 -0
  760. package/dist/report/assets/styles.css +2678 -0
  761. package/dist/report/built-in/analysis-values.cjs +28 -0
  762. package/dist/report/built-in/analysis-values.cjs.map +1 -0
  763. package/dist/report/built-in/analysis-values.d.cts +41 -0
  764. package/dist/report/built-in/analysis-values.d.mts +41 -0
  765. package/dist/report/built-in/analysis-values.d.ts +41 -0
  766. package/dist/report/built-in/analysis-values.js +10 -0
  767. package/dist/report/built-in/analysis-values.js.map +1 -0
  768. package/dist/report/built-in/attempt-overview.cjs +62 -384
  769. package/dist/report/built-in/attempt-overview.cjs.map +1 -1
  770. package/dist/report/built-in/attempt-overview.d.cts +4 -8
  771. package/dist/report/built-in/attempt-overview.d.mts +4 -8
  772. package/dist/report/built-in/attempt-overview.d.ts +4 -8
  773. package/dist/report/built-in/execution.cjs +40 -747
  774. package/dist/report/built-in/execution.cjs.map +1 -1
  775. package/dist/report/built-in/execution.d.cts +10 -19
  776. package/dist/report/built-in/execution.d.mts +10 -19
  777. package/dist/report/built-in/execution.d.ts +10 -19
  778. package/dist/report/built-in/index.cjs +15 -28
  779. package/dist/report/built-in/index.cjs.map +1 -1
  780. package/dist/report/built-in/index.d.cts +4 -6
  781. package/dist/report/built-in/index.d.mts +4 -6
  782. package/dist/report/built-in/index.d.ts +4 -6
  783. package/dist/report/built-in/index.js +22 -31
  784. package/dist/report/built-in/index.mjs +22 -31
  785. package/dist/report/built-in/machine.cjs +41 -0
  786. package/dist/report/built-in/machine.cjs.map +1 -0
  787. package/dist/report/built-in/machine.d.cts +29 -0
  788. package/dist/report/built-in/machine.d.mts +29 -0
  789. package/dist/report/built-in/machine.d.ts +29 -0
  790. package/dist/report/built-in/machine.js +8 -0
  791. package/dist/report/built-in/machine.js.map +1 -0
  792. package/dist/report/built-in/overview.cjs +38 -200
  793. package/dist/report/built-in/overview.cjs.map +1 -1
  794. package/dist/report/built-in/overview.d.cts +5 -5
  795. package/dist/report/built-in/overview.d.mts +5 -5
  796. package/dist/report/built-in/overview.d.ts +5 -5
  797. package/dist/report/built-in/overview.js +0 -2
  798. package/dist/report/built-in/result-components.cjs +325 -0
  799. package/dist/report/built-in/result-components.cjs.map +1 -0
  800. package/dist/report/built-in/result-components.d.cts +94 -0
  801. package/dist/report/built-in/result-components.d.mts +94 -0
  802. package/dist/report/built-in/result-components.d.ts +94 -0
  803. package/dist/report/built-in/result-components.js +24 -0
  804. package/dist/report/built-in/result-components.js.map +1 -0
  805. package/dist/report/built-in/run-membership-overview.cjs +48 -184
  806. package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
  807. package/dist/report/built-in/run-membership-overview.d.cts +5 -5
  808. package/dist/report/built-in/run-membership-overview.d.mts +5 -5
  809. package/dist/report/built-in/run-membership-overview.d.ts +5 -5
  810. package/dist/report/built-in/sandbox-history.cjs +31 -372
  811. package/dist/report/built-in/sandbox-history.cjs.map +1 -1
  812. package/dist/report/built-in/sandbox-history.d.cts +5 -8
  813. package/dist/report/built-in/sandbox-history.d.mts +5 -8
  814. package/dist/report/built-in/sandbox-history.d.ts +5 -8
  815. package/dist/report/built-in/source.cjs +40 -150
  816. package/dist/report/built-in/source.cjs.map +1 -1
  817. package/dist/report/built-in/source.d.cts +10 -11
  818. package/dist/report/built-in/source.d.mts +10 -11
  819. package/dist/report/built-in/source.d.ts +10 -11
  820. package/dist/report/built-in/source.js +1 -0
  821. package/dist/report/built-in/standard.cjs +135 -0
  822. package/dist/report/built-in/standard.cjs.map +1 -0
  823. package/dist/report/built-in/standard.d.cts +91 -0
  824. package/dist/report/built-in/standard.d.mts +91 -0
  825. package/dist/report/built-in/standard.d.ts +91 -0
  826. package/dist/report/built-in/standard.js +17 -0
  827. package/dist/report/built-in/standard.js.map +1 -0
  828. package/dist/report/components/attempt-detail/compute.cjs +763 -0
  829. package/dist/report/components/attempt-detail/compute.cjs.map +1 -0
  830. package/dist/report/components/attempt-detail/compute.d.cts +370 -0
  831. package/dist/report/components/attempt-detail/compute.d.mts +370 -0
  832. package/dist/report/components/attempt-detail/compute.d.ts +370 -0
  833. package/dist/report/components/attempt-detail/compute.js +46 -0
  834. package/dist/report/components/attempt-detail/compute.js.map +1 -0
  835. package/dist/report/components/attempt-detail/content.cjs +411 -0
  836. package/dist/report/components/attempt-detail/content.cjs.map +1 -0
  837. package/dist/report/components/attempt-detail/content.d.cts +34 -0
  838. package/dist/report/components/attempt-detail/content.d.mts +34 -0
  839. package/dist/report/components/attempt-detail/content.d.ts +34 -0
  840. package/dist/report/components/attempt-detail/content.js +30 -0
  841. package/dist/report/components/attempt-detail/content.js.map +1 -0
  842. package/dist/report/components/attempt-detail/index.cjs +314 -0
  843. package/dist/report/components/attempt-detail/index.cjs.map +1 -0
  844. package/dist/report/components/attempt-detail/index.d.cts +27 -0
  845. package/dist/report/components/attempt-detail/index.d.mts +27 -0
  846. package/dist/report/components/attempt-detail/index.d.ts +27 -0
  847. package/dist/report/components/attempt-detail/index.js +34 -0
  848. package/dist/report/components/attempt-detail/index.js.map +1 -0
  849. package/dist/report/components/attempt-detail/validate.cjs +497 -0
  850. package/dist/report/components/attempt-detail/validate.cjs.map +1 -0
  851. package/dist/report/components/attempt-detail/validate.d.cts +14 -0
  852. package/dist/report/components/attempt-detail/validate.d.mts +14 -0
  853. package/dist/report/components/attempt-detail/validate.d.ts +14 -0
  854. package/dist/report/components/attempt-detail/validate.js +30 -0
  855. package/dist/report/components/attempt-detail/validate.js.map +1 -0
  856. package/dist/report/components/entity-lists/compute.cjs +426 -0
  857. package/dist/report/components/entity-lists/compute.cjs.map +1 -0
  858. package/dist/report/components/entity-lists/compute.d.cts +107 -0
  859. package/dist/report/components/entity-lists/compute.d.mts +107 -0
  860. package/dist/report/components/entity-lists/compute.d.ts +107 -0
  861. package/dist/report/components/entity-lists/compute.js +12 -0
  862. package/dist/report/components/entity-lists/compute.js.map +1 -0
  863. package/dist/report/components/entity-lists/content.cjs +275 -0
  864. package/dist/report/components/entity-lists/content.cjs.map +1 -0
  865. package/dist/report/components/entity-lists/content.d.cts +4 -0
  866. package/dist/report/components/entity-lists/content.d.mts +4 -0
  867. package/dist/report/components/entity-lists/content.d.ts +4 -0
  868. package/dist/report/components/entity-lists/content.js +8 -0
  869. package/dist/report/components/entity-lists/content.js.map +1 -0
  870. package/dist/report/components/entity-lists/index.cjs +48 -0
  871. package/dist/report/components/entity-lists/index.cjs.map +1 -0
  872. package/dist/report/components/entity-lists/index.d.cts +39 -0
  873. package/dist/report/components/entity-lists/index.d.mts +39 -0
  874. package/dist/report/components/entity-lists/index.d.ts +39 -0
  875. package/dist/report/components/entity-lists/index.js +22 -0
  876. package/dist/report/components/entity-lists/index.js.map +1 -0
  877. package/dist/report/components/experiment-detail/compute.cjs +228 -0
  878. package/dist/report/components/experiment-detail/compute.cjs.map +1 -0
  879. package/dist/report/components/experiment-detail/compute.d.cts +72 -0
  880. package/dist/report/components/experiment-detail/compute.d.mts +72 -0
  881. package/dist/report/components/experiment-detail/compute.d.ts +72 -0
  882. package/dist/report/components/experiment-detail/compute.js +6 -0
  883. package/dist/report/components/experiment-detail/compute.js.map +1 -0
  884. package/dist/report/components/experiment-detail/index.cjs +84 -0
  885. package/dist/report/components/experiment-detail/index.cjs.map +1 -0
  886. package/dist/report/components/experiment-detail/index.d.cts +13 -0
  887. package/dist/report/components/experiment-detail/index.d.mts +13 -0
  888. package/dist/report/components/experiment-detail/index.d.ts +13 -0
  889. package/dist/report/components/experiment-detail/index.js +6 -0
  890. package/dist/report/components/experiment-detail/index.js.map +1 -0
  891. package/dist/report/components/site-components/HeroCard.cjs +38 -0
  892. package/dist/report/components/site-components/HeroCard.cjs.map +1 -0
  893. package/dist/report/components/site-components/HeroCard.d.cts +14 -0
  894. package/dist/report/components/site-components/HeroCard.d.mts +14 -0
  895. package/dist/report/components/site-components/HeroCard.d.ts +14 -0
  896. package/dist/report/components/site-components/HeroCard.js +6 -0
  897. package/dist/report/components/site-components/HeroCard.js.map +1 -0
  898. package/dist/report/components/site-components/PoweredBy.cjs +12 -0
  899. package/dist/report/components/site-components/PoweredBy.cjs.map +1 -0
  900. package/dist/report/components/site-components/PoweredBy.d.cts +5 -0
  901. package/dist/report/components/site-components/PoweredBy.d.mts +5 -0
  902. package/dist/report/components/site-components/PoweredBy.d.ts +5 -0
  903. package/dist/report/components/site-components/PoweredBy.js +8 -0
  904. package/dist/report/components/site-components/PoweredBy.js.map +1 -0
  905. package/dist/report/components/site-components/compute.cjs +130 -0
  906. package/dist/report/components/site-components/compute.cjs.map +1 -0
  907. package/dist/report/components/site-components/compute.d.cts +36 -0
  908. package/dist/report/components/site-components/compute.d.mts +36 -0
  909. package/dist/report/components/site-components/compute.d.ts +36 -0
  910. package/dist/report/components/site-components/compute.js +16 -0
  911. package/dist/report/components/site-components/compute.js.map +1 -0
  912. package/dist/report/components/site-components/content.cjs +9 -0
  913. package/dist/report/components/site-components/content.cjs.map +1 -0
  914. package/dist/report/components/site-components/content.d.cts +118 -0
  915. package/dist/report/components/site-components/content.d.mts +118 -0
  916. package/dist/report/components/site-components/content.d.ts +118 -0
  917. package/dist/report/components/site-components/content.js +12 -0
  918. package/dist/report/components/site-components/content.js.map +1 -0
  919. package/dist/report/components/site-components/faces.cjs +33 -0
  920. package/dist/report/components/site-components/faces.cjs.map +1 -0
  921. package/dist/report/components/site-components/faces.d.cts +9 -0
  922. package/dist/report/components/site-components/faces.d.mts +9 -0
  923. package/dist/report/components/site-components/faces.d.ts +9 -0
  924. package/dist/report/components/site-components/faces.js +6 -0
  925. package/dist/report/components/site-components/faces.js.map +1 -0
  926. package/dist/report/components/site-components/hero-types.cjs +3 -0
  927. package/dist/report/components/site-components/hero-types.cjs.map +1 -0
  928. package/dist/report/components/site-components/hero-types.d.cts +17 -0
  929. package/dist/report/components/site-components/hero-types.d.mts +17 -0
  930. package/dist/report/components/site-components/hero-types.d.ts +17 -0
  931. package/dist/report/components/site-components/hero-types.js +4 -0
  932. package/dist/report/components/site-components/hero-types.js.map +1 -0
  933. package/dist/report/components/site-components/index.cjs +90 -0
  934. package/dist/report/components/site-components/index.cjs.map +1 -0
  935. package/dist/report/components/site-components/index.d.cts +58 -0
  936. package/dist/report/components/site-components/index.d.mts +58 -0
  937. package/dist/report/components/site-components/index.d.ts +58 -0
  938. package/dist/report/components/site-components/index.js +26 -0
  939. package/dist/report/components/site-components/index.js.map +1 -0
  940. package/dist/report/components/site-components/projections.cjs +86 -0
  941. package/dist/report/components/site-components/projections.cjs.map +1 -0
  942. package/dist/report/components/site-components/projections.d.cts +11 -0
  943. package/dist/report/components/site-components/projections.d.mts +11 -0
  944. package/dist/report/components/site-components/projections.d.ts +11 -0
  945. package/dist/report/components/site-components/projections.js +12 -0
  946. package/dist/report/components/site-components/projections.js.map +1 -0
  947. package/dist/report/components/site-components/scope-warnings.cjs +89 -0
  948. package/dist/report/components/site-components/scope-warnings.cjs.map +1 -0
  949. package/dist/report/components/site-components/scope-warnings.d.cts +34 -0
  950. package/dist/report/components/site-components/scope-warnings.d.mts +34 -0
  951. package/dist/report/components/site-components/scope-warnings.d.ts +34 -0
  952. package/dist/report/components/site-components/scope-warnings.js +8 -0
  953. package/dist/report/components/site-components/scope-warnings.js.map +1 -0
  954. package/dist/report/components/site-components/snapshot-diagnostics.cjs +43 -0
  955. package/dist/report/components/site-components/snapshot-diagnostics.cjs.map +1 -0
  956. package/dist/report/components/site-components/snapshot-diagnostics.d.cts +15 -0
  957. package/dist/report/components/site-components/snapshot-diagnostics.d.mts +15 -0
  958. package/dist/report/components/site-components/snapshot-diagnostics.d.ts +15 -0
  959. package/dist/report/components/site-components/snapshot-diagnostics.js +8 -0
  960. package/dist/report/components/site-components/snapshot-diagnostics.js.map +1 -0
  961. package/dist/report/components/site-components/validators.cjs +140 -0
  962. package/dist/report/components/site-components/validators.cjs.map +1 -0
  963. package/dist/report/components/site-components/validators.d.cts +9 -0
  964. package/dist/report/components/site-components/validators.d.mts +9 -0
  965. package/dist/report/components/site-components/validators.d.ts +9 -0
  966. package/dist/report/components/site-components/validators.js +16 -0
  967. package/dist/report/components/site-components/validators.js.map +1 -0
  968. package/dist/report/components/summaries/compute.cjs +224 -0
  969. package/dist/report/components/summaries/compute.cjs.map +1 -0
  970. package/dist/report/components/summaries/compute.d.cts +78 -0
  971. package/dist/report/components/summaries/compute.d.mts +78 -0
  972. package/dist/report/components/summaries/compute.d.ts +78 -0
  973. package/dist/report/components/summaries/compute.js +10 -0
  974. package/dist/report/components/summaries/compute.js.map +1 -0
  975. package/dist/report/components/summaries/index.cjs +68 -0
  976. package/dist/report/components/summaries/index.cjs.map +1 -0
  977. package/dist/report/components/summaries/index.d.cts +42 -0
  978. package/dist/report/components/summaries/index.d.mts +42 -0
  979. package/dist/report/components/summaries/index.d.ts +42 -0
  980. package/dist/report/components/summaries/index.js +12 -0
  981. package/dist/report/components/summaries/index.js.map +1 -0
  982. package/dist/report/components/summaries/stability-overview.cjs +27 -0
  983. package/dist/report/components/summaries/stability-overview.cjs.map +1 -0
  984. package/dist/report/components/summaries/stability-overview.d.cts +19 -0
  985. package/dist/report/components/summaries/stability-overview.d.mts +19 -0
  986. package/dist/report/components/summaries/stability-overview.d.ts +19 -0
  987. package/dist/report/components/summaries/stability-overview.js +6 -0
  988. package/dist/report/components/summaries/stability-overview.js.map +1 -0
  989. package/dist/report/definition/cell.cjs +90 -0
  990. package/dist/report/definition/cell.cjs.map +1 -0
  991. package/dist/report/definition/cell.d.cts +99 -0
  992. package/dist/report/definition/cell.d.mts +99 -0
  993. package/dist/report/definition/cell.d.ts +99 -0
  994. package/dist/report/definition/cell.js +8 -0
  995. package/dist/report/definition/cell.js.map +1 -0
  996. package/dist/report/definition/grid-layout.cjs +151 -0
  997. package/dist/report/definition/grid-layout.cjs.map +1 -0
  998. package/dist/report/definition/grid-layout.d.cts +77 -0
  999. package/dist/report/definition/grid-layout.d.mts +77 -0
  1000. package/dist/report/definition/grid-layout.d.ts +77 -0
  1001. package/dist/report/definition/grid-layout.js +20 -0
  1002. package/dist/report/definition/grid-layout.js.map +1 -0
  1003. package/dist/report/definition/primitives/callouts-logic.cjs +113 -0
  1004. package/dist/report/definition/primitives/callouts-logic.cjs.map +1 -0
  1005. package/dist/report/definition/primitives/callouts-logic.d.cts +26 -0
  1006. package/dist/report/definition/primitives/callouts-logic.d.mts +26 -0
  1007. package/dist/report/definition/primitives/callouts-logic.d.ts +26 -0
  1008. package/dist/report/definition/primitives/callouts-logic.js +20 -0
  1009. package/dist/report/definition/primitives/callouts-logic.js.map +1 -0
  1010. package/dist/report/definition/primitives/callouts.cjs +105 -0
  1011. package/dist/report/definition/primitives/callouts.cjs.map +1 -0
  1012. package/dist/report/definition/primitives/callouts.d.cts +9 -0
  1013. package/dist/report/definition/primitives/callouts.d.mts +9 -0
  1014. package/dist/report/definition/primitives/callouts.d.ts +9 -0
  1015. package/dist/report/definition/primitives/callouts.js +6 -0
  1016. package/dist/report/definition/primitives/callouts.js.map +1 -0
  1017. package/dist/report/definition/primitives/chart-map.cjs +138 -0
  1018. package/dist/report/definition/primitives/chart-map.cjs.map +1 -0
  1019. package/dist/report/definition/primitives/chart-map.d.cts +77 -0
  1020. package/dist/report/definition/primitives/chart-map.d.mts +77 -0
  1021. package/dist/report/definition/primitives/chart-map.d.ts +77 -0
  1022. package/dist/report/definition/primitives/chart-map.js +12 -0
  1023. package/dist/report/definition/primitives/chart-map.js.map +1 -0
  1024. package/dist/report/definition/primitives/chart.cjs +651 -0
  1025. package/dist/report/definition/primitives/chart.cjs.map +1 -0
  1026. package/dist/report/definition/primitives/chart.d.cts +43 -0
  1027. package/dist/report/definition/primitives/chart.d.mts +43 -0
  1028. package/dist/report/definition/primitives/chart.d.ts +43 -0
  1029. package/dist/report/definition/primitives/chart.js +8 -0
  1030. package/dist/report/definition/primitives/chart.js.map +1 -0
  1031. package/dist/report/definition/primitives/conversation.cjs +255 -0
  1032. package/dist/report/definition/primitives/conversation.cjs.map +1 -0
  1033. package/dist/report/definition/primitives/conversation.d.cts +71 -0
  1034. package/dist/report/definition/primitives/conversation.d.mts +71 -0
  1035. package/dist/report/definition/primitives/conversation.d.ts +71 -0
  1036. package/dist/report/definition/primitives/conversation.js +16 -0
  1037. package/dist/report/definition/primitives/conversation.js.map +1 -0
  1038. package/dist/report/definition/primitives/copy-block.cjs +55 -0
  1039. package/dist/report/definition/primitives/copy-block.cjs.map +1 -0
  1040. package/dist/report/definition/primitives/copy-block.d.cts +19 -0
  1041. package/dist/report/definition/primitives/copy-block.d.mts +19 -0
  1042. package/dist/report/definition/primitives/copy-block.d.ts +19 -0
  1043. package/dist/report/definition/primitives/copy-block.js +6 -0
  1044. package/dist/report/definition/primitives/copy-block.js.map +1 -0
  1045. package/dist/report/definition/primitives/diff-lines.cjs +163 -0
  1046. package/dist/report/definition/primitives/diff-lines.cjs.map +1 -0
  1047. package/dist/report/definition/primitives/diff-lines.d.cts +68 -0
  1048. package/dist/report/definition/primitives/diff-lines.d.mts +68 -0
  1049. package/dist/report/definition/primitives/diff-lines.d.ts +68 -0
  1050. package/dist/report/definition/primitives/diff-lines.js +28 -0
  1051. package/dist/report/definition/primitives/diff-lines.js.map +1 -0
  1052. package/dist/report/definition/primitives/diff-view.cjs +155 -0
  1053. package/dist/report/definition/primitives/diff-view.cjs.map +1 -0
  1054. package/dist/report/definition/primitives/diff-view.d.cts +14 -0
  1055. package/dist/report/definition/primitives/diff-view.d.mts +14 -0
  1056. package/dist/report/definition/primitives/diff-view.d.ts +14 -0
  1057. package/dist/report/definition/primitives/diff-view.js +8 -0
  1058. package/dist/report/definition/primitives/diff-view.js.map +1 -0
  1059. package/dist/report/definition/primitives/downloads.cjs +89 -0
  1060. package/dist/report/definition/primitives/downloads.cjs.map +1 -0
  1061. package/dist/report/definition/primitives/downloads.d.cts +28 -0
  1062. package/dist/report/definition/primitives/downloads.d.mts +28 -0
  1063. package/dist/report/definition/primitives/downloads.d.ts +28 -0
  1064. package/dist/report/definition/primitives/downloads.js +8 -0
  1065. package/dist/report/definition/primitives/downloads.js.map +1 -0
  1066. package/dist/report/definition/primitives/markdown.cjs +290 -0
  1067. package/dist/report/definition/primitives/markdown.cjs.map +1 -0
  1068. package/dist/report/definition/primitives/markdown.d.cts +29 -0
  1069. package/dist/report/definition/primitives/markdown.d.mts +29 -0
  1070. package/dist/report/definition/primitives/markdown.d.ts +29 -0
  1071. package/dist/report/definition/primitives/markdown.js +16 -0
  1072. package/dist/report/definition/primitives/markdown.js.map +1 -0
  1073. package/dist/report/definition/primitives/marks.cjs +96 -0
  1074. package/dist/report/definition/primitives/marks.cjs.map +1 -0
  1075. package/dist/report/definition/primitives/marks.d.cts +125 -0
  1076. package/dist/report/definition/primitives/marks.d.mts +125 -0
  1077. package/dist/report/definition/primitives/marks.d.ts +125 -0
  1078. package/dist/report/definition/primitives/marks.js +14 -0
  1079. package/dist/report/definition/primitives/marks.js.map +1 -0
  1080. package/dist/report/definition/primitives/points-dataset.cjs +147 -0
  1081. package/dist/report/definition/primitives/points-dataset.cjs.map +1 -0
  1082. package/dist/report/definition/primitives/points-dataset.d.cts +17 -0
  1083. package/dist/report/definition/primitives/points-dataset.d.mts +17 -0
  1084. package/dist/report/definition/primitives/points-dataset.d.ts +17 -0
  1085. package/dist/report/definition/primitives/points-dataset.js +6 -0
  1086. package/dist/report/definition/primitives/points-dataset.js.map +1 -0
  1087. package/dist/report/definition/primitives/shared.cjs +131 -0
  1088. package/dist/report/definition/primitives/shared.cjs.map +1 -0
  1089. package/dist/report/definition/primitives/shared.d.cts +67 -0
  1090. package/dist/report/definition/primitives/shared.d.mts +67 -0
  1091. package/dist/report/definition/primitives/shared.d.ts +67 -0
  1092. package/dist/report/definition/primitives/shared.js +34 -0
  1093. package/dist/report/definition/primitives/shared.js.map +1 -0
  1094. package/dist/report/definition/primitives/source-view.cjs +204 -0
  1095. package/dist/report/definition/primitives/source-view.cjs.map +1 -0
  1096. package/dist/report/definition/primitives/source-view.d.cts +47 -0
  1097. package/dist/report/definition/primitives/source-view.d.mts +47 -0
  1098. package/dist/report/definition/primitives/source-view.d.ts +47 -0
  1099. package/dist/report/definition/primitives/source-view.js +8 -0
  1100. package/dist/report/definition/primitives/source-view.js.map +1 -0
  1101. package/dist/report/definition/primitives/text-panel-state.cjs +38 -0
  1102. package/dist/report/definition/primitives/text-panel-state.cjs.map +1 -0
  1103. package/dist/report/definition/primitives/text-panel-state.d.cts +9 -0
  1104. package/dist/report/definition/primitives/text-panel-state.d.mts +9 -0
  1105. package/dist/report/definition/primitives/text-panel-state.d.ts +9 -0
  1106. package/dist/report/definition/primitives/text-panel-state.js +12 -0
  1107. package/dist/report/definition/primitives/text-panel-state.js.map +1 -0
  1108. package/dist/report/definition/primitives/tool-evidence.cjs +95 -0
  1109. package/dist/report/definition/primitives/tool-evidence.cjs.map +1 -0
  1110. package/dist/report/definition/primitives/tool-evidence.d.cts +11 -0
  1111. package/dist/report/definition/primitives/tool-evidence.d.mts +11 -0
  1112. package/dist/report/definition/primitives/tool-evidence.d.ts +11 -0
  1113. package/dist/report/definition/primitives/tool-evidence.js +6 -0
  1114. package/dist/report/definition/primitives/tool-evidence.js.map +1 -0
  1115. package/dist/report/definition/primitives/turn-trace.cjs +205 -0
  1116. package/dist/report/definition/primitives/turn-trace.cjs.map +1 -0
  1117. package/dist/report/definition/primitives/turn-trace.d.cts +8 -0
  1118. package/dist/report/definition/primitives/turn-trace.d.mts +8 -0
  1119. package/dist/report/definition/primitives/turn-trace.d.ts +8 -0
  1120. package/dist/report/definition/primitives/turn-trace.js +6 -0
  1121. package/dist/report/definition/primitives/turn-trace.js.map +1 -0
  1122. package/dist/report/definition/primitives/waterfall.cjs +206 -0
  1123. package/dist/report/definition/primitives/waterfall.cjs.map +1 -0
  1124. package/dist/report/definition/primitives/waterfall.d.cts +34 -0
  1125. package/dist/report/definition/primitives/waterfall.d.mts +34 -0
  1126. package/dist/report/definition/primitives/waterfall.d.ts +34 -0
  1127. package/dist/report/definition/primitives/waterfall.js +8 -0
  1128. package/dist/report/definition/primitives/waterfall.js.map +1 -0
  1129. package/dist/report/definition/primitives.cjs +826 -0
  1130. package/dist/report/definition/primitives.cjs.map +1 -0
  1131. package/dist/report/definition/primitives.d.cts +194 -0
  1132. package/dist/report/definition/primitives.d.mts +194 -0
  1133. package/dist/report/definition/primitives.d.ts +194 -0
  1134. package/dist/report/definition/primitives.js +84 -0
  1135. package/dist/report/definition/primitives.js.map +1 -0
  1136. package/dist/report/definition/report.cjs +778 -0
  1137. package/dist/report/definition/report.cjs.map +1 -0
  1138. package/dist/report/definition/report.d.cts +203 -0
  1139. package/dist/report/definition/report.d.mts +203 -0
  1140. package/dist/report/definition/report.d.ts +203 -0
  1141. package/dist/report/definition/report.js +16 -0
  1142. package/dist/report/definition/report.js.map +1 -0
  1143. package/dist/report/definition/table-text.cjs +184 -0
  1144. package/dist/report/definition/table-text.cjs.map +1 -0
  1145. package/dist/report/definition/table-text.d.cts +14 -0
  1146. package/dist/report/definition/table-text.d.mts +14 -0
  1147. package/dist/report/definition/table-text.d.ts +14 -0
  1148. package/dist/report/definition/table-text.js +6 -0
  1149. package/dist/report/definition/table-text.js.map +1 -0
  1150. package/dist/report/definition/tree.cjs +685 -0
  1151. package/dist/report/definition/tree.cjs.map +1 -0
  1152. package/dist/report/definition/tree.d.cts +165 -0
  1153. package/dist/report/definition/tree.d.mts +165 -0
  1154. package/dist/report/definition/tree.d.ts +165 -0
  1155. package/dist/report/definition/tree.js +44 -0
  1156. package/dist/report/definition/tree.js.map +1 -0
  1157. package/dist/report/execution/machine.cjs +587 -0
  1158. package/dist/report/execution/machine.cjs.map +1 -0
  1159. package/dist/report/execution/machine.d.cts +291 -0
  1160. package/dist/report/execution/machine.d.mts +291 -0
  1161. package/dist/report/execution/machine.d.ts +291 -0
  1162. package/dist/report/execution/machine.js +36 -0
  1163. package/dist/report/execution/machine.js.map +1 -0
  1164. package/dist/report/execution/model.cjs +91 -463
  1165. package/dist/report/execution/model.cjs.map +1 -1
  1166. package/dist/report/execution/model.d.cts +57 -39
  1167. package/dist/report/execution/model.d.mts +57 -39
  1168. package/dist/report/execution/model.d.ts +57 -39
  1169. package/dist/report/execution/model.js +36 -12
  1170. package/dist/report/execution/paths.cjs +182 -0
  1171. package/dist/report/execution/paths.cjs.map +1 -0
  1172. package/dist/report/execution/paths.d.cts +27 -0
  1173. package/dist/report/execution/paths.d.mts +27 -0
  1174. package/dist/report/execution/paths.d.ts +27 -0
  1175. package/dist/report/execution/paths.js +20 -0
  1176. package/dist/report/execution/paths.js.map +1 -0
  1177. package/dist/report/extension/assets.cjs +143 -0
  1178. package/dist/report/extension/assets.cjs.map +1 -0
  1179. package/dist/report/extension/assets.d.cts +17 -0
  1180. package/dist/report/extension/assets.d.mts +17 -0
  1181. package/dist/report/extension/assets.d.ts +17 -0
  1182. package/dist/report/extension/assets.js +10 -0
  1183. package/dist/report/extension/assets.js.map +1 -0
  1184. package/dist/report/extension/define.cjs +119 -0
  1185. package/dist/report/extension/define.cjs.map +1 -0
  1186. package/dist/report/extension/define.d.cts +11 -0
  1187. package/dist/report/extension/define.d.mts +11 -0
  1188. package/dist/report/extension/define.d.ts +11 -0
  1189. package/dist/report/extension/define.js +6 -0
  1190. package/dist/report/extension/define.js.map +1 -0
  1191. package/dist/report/extension/index.cjs +10 -0
  1192. package/dist/report/extension/index.cjs.map +1 -0
  1193. package/dist/report/extension/index.d.cts +6 -0
  1194. package/dist/report/extension/index.d.mts +6 -0
  1195. package/dist/report/extension/index.d.ts +6 -0
  1196. package/dist/report/extension/index.js +10 -0
  1197. package/dist/report/extension/index.js.map +1 -0
  1198. package/dist/report/extension/index.mjs +10 -0
  1199. package/dist/report/extension/index.mjs.map +1 -0
  1200. package/dist/report/extension/meta.cjs +59 -0
  1201. package/dist/report/extension/meta.cjs.map +1 -0
  1202. package/dist/report/extension/meta.d.cts +13 -0
  1203. package/dist/report/extension/meta.d.mts +13 -0
  1204. package/dist/report/extension/meta.d.ts +13 -0
  1205. package/dist/report/extension/meta.js +12 -0
  1206. package/dist/report/extension/meta.js.map +1 -0
  1207. package/dist/report/extension/types.cjs +3 -0
  1208. package/dist/report/extension/types.cjs.map +1 -0
  1209. package/dist/report/extension/types.d.cts +44 -0
  1210. package/dist/report/extension/types.d.mts +44 -0
  1211. package/dist/report/extension/types.d.ts +44 -0
  1212. package/dist/report/extension/types.js +4 -0
  1213. package/dist/report/extension/types.js.map +1 -0
  1214. package/dist/report/host/execute.cjs +457 -1238
  1215. package/dist/report/host/execute.cjs.map +1 -1
  1216. package/dist/report/host/execute.d.cts +66 -19
  1217. package/dist/report/host/execute.d.mts +66 -19
  1218. package/dist/report/host/execute.d.ts +66 -19
  1219. package/dist/report/host/execute.js +10 -2
  1220. package/dist/report/host/from-record.cjs +441 -27
  1221. package/dist/report/host/from-record.cjs.map +1 -1
  1222. package/dist/report/host/from-record.d.cts +62 -30
  1223. package/dist/report/host/from-record.d.mts +62 -30
  1224. package/dist/report/host/from-record.d.ts +62 -30
  1225. package/dist/report/host/from-record.js +8 -4
  1226. package/dist/report/host/index.cjs +31 -18
  1227. package/dist/report/host/index.cjs.map +1 -1
  1228. package/dist/report/host/index.d.cts +20 -11
  1229. package/dist/report/host/index.d.mts +20 -11
  1230. package/dist/report/host/index.d.ts +20 -11
  1231. package/dist/report/host/index.js +2 -20
  1232. package/dist/report/host/index.mjs +6 -0
  1233. package/dist/report/host/index.mjs.map +1 -0
  1234. package/dist/report/host/machine.cjs +102 -0
  1235. package/dist/report/host/machine.cjs.map +1 -0
  1236. package/dist/report/host/machine.d.cts +7 -0
  1237. package/dist/report/host/machine.d.mts +7 -0
  1238. package/dist/report/host/machine.d.ts +7 -0
  1239. package/dist/report/host/machine.js +6 -0
  1240. package/dist/report/host/machine.js.map +1 -0
  1241. package/dist/report/host/node/loader.cjs +40 -19
  1242. package/dist/report/host/node/loader.cjs.map +1 -1
  1243. package/dist/report/host/node/loader.d.cts +8 -7
  1244. package/dist/report/host/node/loader.d.mts +8 -7
  1245. package/dist/report/host/node/loader.d.ts +8 -7
  1246. package/dist/report/host/node.cjs +1 -1
  1247. package/dist/report/host/node.cjs.map +1 -1
  1248. package/dist/report/host/node.d.cts +3 -3
  1249. package/dist/report/host/node.d.mts +3 -3
  1250. package/dist/report/host/node.d.ts +3 -3
  1251. package/dist/report/host/progress.cjs +41 -0
  1252. package/dist/report/host/progress.cjs.map +1 -0
  1253. package/dist/report/host/progress.d.cts +22 -0
  1254. package/dist/report/host/progress.d.mts +22 -0
  1255. package/dist/report/host/progress.d.ts +22 -0
  1256. package/dist/report/host/progress.js +8 -0
  1257. package/dist/report/host/progress.js.map +1 -0
  1258. package/dist/report/host/show-target.cjs +214 -0
  1259. package/dist/report/host/show-target.cjs.map +1 -0
  1260. package/dist/report/host/show-target.d.cts +107 -0
  1261. package/dist/report/host/show-target.d.mts +107 -0
  1262. package/dist/report/host/show-target.d.ts +107 -0
  1263. package/dist/report/host/show-target.js +8 -0
  1264. package/dist/report/host/show-target.js.map +1 -0
  1265. package/dist/report/host/site-assets.cjs +11 -0
  1266. package/dist/report/host/site-assets.cjs.map +1 -0
  1267. package/dist/report/host/site-assets.d.cts +7 -0
  1268. package/dist/report/host/site-assets.d.mts +7 -0
  1269. package/dist/report/host/site-assets.d.ts +7 -0
  1270. package/dist/report/host/site-assets.js +8 -0
  1271. package/dist/report/host/site-assets.js.map +1 -0
  1272. package/dist/report/host/site-runtime.cjs +91 -0
  1273. package/dist/report/host/site-runtime.cjs.map +1 -0
  1274. package/dist/report/host/site-runtime.d.cts +9 -0
  1275. package/dist/report/host/site-runtime.d.mts +9 -0
  1276. package/dist/report/host/site-runtime.d.ts +9 -0
  1277. package/dist/report/host/site-runtime.js +10 -0
  1278. package/dist/report/host/site-runtime.js.map +1 -0
  1279. package/dist/report/host/static.cjs +694 -99
  1280. package/dist/report/host/static.cjs.map +1 -1
  1281. package/dist/report/host/static.d.cts +36 -19
  1282. package/dist/report/host/static.d.mts +36 -19
  1283. package/dist/report/host/static.d.ts +36 -19
  1284. package/dist/report/host/static.js +14 -4
  1285. package/dist/report/host/target-route.cjs +58 -0
  1286. package/dist/report/host/target-route.cjs.map +1 -0
  1287. package/dist/report/host/target-route.d.cts +15 -0
  1288. package/dist/report/host/target-route.d.mts +15 -0
  1289. package/dist/report/host/target-route.d.ts +15 -0
  1290. package/dist/report/host/target-route.js +8 -0
  1291. package/dist/report/host/target-route.js.map +1 -0
  1292. package/dist/report/host/view-session.cjs +68 -51
  1293. package/dist/report/host/view-session.cjs.map +1 -1
  1294. package/dist/report/host/view-session.d.cts +38 -44
  1295. package/dist/report/host/view-session.d.mts +38 -44
  1296. package/dist/report/host/view-session.d.ts +38 -44
  1297. package/dist/report/index.cjs +111 -52
  1298. package/dist/report/index.cjs.map +1 -1
  1299. package/dist/report/index.d.cts +39 -11
  1300. package/dist/report/index.d.mts +39 -11
  1301. package/dist/report/index.d.ts +39 -11
  1302. package/dist/report/index.js +188 -116
  1303. package/dist/report/index.mjs +188 -116
  1304. package/dist/report/library/details.cjs +166 -0
  1305. package/dist/report/library/details.cjs.map +1 -0
  1306. package/dist/report/library/details.d.cts +29 -0
  1307. package/dist/report/library/details.d.mts +29 -0
  1308. package/dist/report/library/details.d.ts +29 -0
  1309. package/dist/report/library/details.js +18 -0
  1310. package/dist/report/library/details.js.map +1 -0
  1311. package/dist/report/model/aggregate.cjs +243 -0
  1312. package/dist/report/model/aggregate.cjs.map +1 -0
  1313. package/dist/report/model/aggregate.d.cts +88 -0
  1314. package/dist/report/model/aggregate.d.mts +88 -0
  1315. package/dist/report/model/aggregate.d.ts +88 -0
  1316. package/dist/report/model/aggregate.js +26 -0
  1317. package/dist/report/model/aggregate.js.map +1 -0
  1318. package/dist/report/model/chart/math.cjs +206 -0
  1319. package/dist/report/model/chart/math.cjs.map +1 -0
  1320. package/dist/report/model/chart/math.d.cts +73 -0
  1321. package/dist/report/model/chart/math.d.mts +73 -0
  1322. package/dist/report/model/chart/math.d.ts +73 -0
  1323. package/dist/report/model/chart/math.js +14 -0
  1324. package/dist/report/model/chart/math.js.map +1 -0
  1325. package/dist/report/model/chart/plot.cjs +94 -0
  1326. package/dist/report/model/chart/plot.cjs.map +1 -0
  1327. package/dist/report/model/chart/plot.d.cts +52 -0
  1328. package/dist/report/model/chart/plot.d.mts +52 -0
  1329. package/dist/report/model/chart/plot.d.ts +52 -0
  1330. package/dist/report/model/chart/plot.js +8 -0
  1331. package/dist/report/model/chart/plot.js.map +1 -0
  1332. package/dist/report/model/conversions.cjs +100 -0
  1333. package/dist/report/model/conversions.cjs.map +1 -0
  1334. package/dist/report/model/conversions.d.cts +40 -0
  1335. package/dist/report/model/conversions.d.mts +40 -0
  1336. package/dist/report/model/conversions.d.ts +40 -0
  1337. package/dist/report/model/conversions.js +24 -0
  1338. package/dist/report/model/conversions.js.map +1 -0
  1339. package/dist/report/model/dataset.cjs +255 -0
  1340. package/dist/report/model/dataset.cjs.map +1 -0
  1341. package/dist/report/model/dataset.d.cts +33 -0
  1342. package/dist/report/model/dataset.d.mts +33 -0
  1343. package/dist/report/model/dataset.d.ts +33 -0
  1344. package/dist/report/model/dataset.js +22 -0
  1345. package/dist/report/model/dataset.js.map +1 -0
  1346. package/dist/report/model/format.cjs +377 -0
  1347. package/dist/report/model/format.cjs.map +1 -0
  1348. package/dist/report/model/format.d.cts +98 -0
  1349. package/dist/report/model/format.d.mts +98 -0
  1350. package/dist/report/model/format.d.ts +98 -0
  1351. package/dist/report/model/format.js +38 -0
  1352. package/dist/report/model/format.js.map +1 -0
  1353. package/dist/report/model/locale.cjs +437 -0
  1354. package/dist/report/model/locale.cjs.map +1 -0
  1355. package/dist/report/model/locale.d.cts +220 -0
  1356. package/dist/report/model/locale.d.mts +220 -0
  1357. package/dist/report/model/locale.d.ts +220 -0
  1358. package/dist/report/model/locale.js +20 -0
  1359. package/dist/report/model/locale.js.map +1 -0
  1360. package/dist/report/model/metrics.cjs +254 -0
  1361. package/dist/report/model/metrics.cjs.map +1 -0
  1362. package/dist/report/model/metrics.d.cts +73 -0
  1363. package/dist/report/model/metrics.d.mts +73 -0
  1364. package/dist/report/model/metrics.d.ts +73 -0
  1365. package/dist/report/model/metrics.js +26 -0
  1366. package/dist/report/model/metrics.js.map +1 -0
  1367. package/dist/report/model/pricing.cjs +126 -0
  1368. package/dist/report/model/pricing.cjs.map +1 -0
  1369. package/dist/report/model/pricing.d.cts +37 -0
  1370. package/dist/report/model/pricing.d.mts +37 -0
  1371. package/dist/report/model/pricing.d.ts +37 -0
  1372. package/dist/report/model/pricing.js +16 -0
  1373. package/dist/report/model/pricing.js.map +1 -0
  1374. package/dist/report/model/text-layout.cjs +8 -0
  1375. package/dist/report/model/text-layout.cjs.map +1 -1
  1376. package/dist/report/model/text-layout.d.cts +7 -0
  1377. package/dist/report/model/text-layout.d.mts +7 -0
  1378. package/dist/report/model/text-layout.d.ts +7 -0
  1379. package/dist/report/model/text-layout.js +30 -18
  1380. package/dist/report/model/types.cjs +3 -0
  1381. package/dist/report/model/types.cjs.map +1 -0
  1382. package/dist/report/model/types.d.cts +64 -0
  1383. package/dist/report/model/types.d.mts +64 -0
  1384. package/dist/report/model/types.d.ts +64 -0
  1385. package/dist/report/model/types.js +4 -0
  1386. package/dist/report/model/types.js.map +1 -0
  1387. package/dist/report/presentation.cjs +219 -0
  1388. package/dist/report/presentation.cjs.map +1 -0
  1389. package/dist/report/presentation.d.cts +114 -0
  1390. package/dist/report/presentation.d.mts +114 -0
  1391. package/dist/report/presentation.d.ts +114 -0
  1392. package/dist/report/presentation.js +18 -0
  1393. package/dist/report/react/enhance.js +466 -0
  1394. package/dist/report/react/index.cjs +40 -0
  1395. package/dist/report/react/index.cjs.map +1 -0
  1396. package/dist/report/react/index.d.cts +9 -0
  1397. package/dist/report/react/index.d.mts +9 -0
  1398. package/dist/report/react/index.d.ts +9 -0
  1399. package/dist/report/react/index.js +64 -0
  1400. package/dist/report/react/index.js.map +1 -0
  1401. package/dist/report/react/index.mjs +64 -0
  1402. package/dist/report/react/index.mjs.map +1 -0
  1403. package/dist/report/react/styles.css +2678 -0
  1404. package/dist/report/runtime/resolved-page.cjs +317 -0
  1405. package/dist/report/runtime/resolved-page.cjs.map +1 -0
  1406. package/dist/report/runtime/resolved-page.d.cts +133 -0
  1407. package/dist/report/runtime/resolved-page.d.mts +133 -0
  1408. package/dist/report/runtime/resolved-page.d.ts +133 -0
  1409. package/dist/report/runtime/resolved-page.js +14 -0
  1410. package/dist/report/runtime/resolved-page.js.map +1 -0
  1411. package/dist/report/runtime/text.cjs +32 -0
  1412. package/dist/report/runtime/text.cjs.map +1 -0
  1413. package/dist/report/runtime/text.d.cts +24 -0
  1414. package/dist/report/runtime/text.d.mts +24 -0
  1415. package/dist/report/runtime/text.d.ts +24 -0
  1416. package/dist/report/runtime/text.js +8 -0
  1417. package/dist/report/runtime/text.js.map +1 -0
  1418. package/dist/report/runtime/web.cjs +31 -0
  1419. package/dist/report/runtime/web.cjs.map +1 -0
  1420. package/dist/report/runtime/web.d.cts +21 -0
  1421. package/dist/report/runtime/web.d.mts +21 -0
  1422. package/dist/report/runtime/web.d.ts +21 -0
  1423. package/dist/report/runtime/web.js +8 -0
  1424. package/dist/report/runtime/web.js.map +1 -0
  1425. package/dist/report/theme.cjs +141 -0
  1426. package/dist/report/theme.cjs.map +1 -0
  1427. package/dist/report/theme.d.cts +57 -0
  1428. package/dist/report/theme.d.mts +57 -0
  1429. package/dist/report/theme.d.ts +57 -0
  1430. package/dist/report/theme.js +20 -0
  1431. package/dist/runner/accept.cjs +74 -87
  1432. package/dist/runner/accept.cjs.map +1 -1
  1433. package/dist/runner/accept.d.cts +14 -17
  1434. package/dist/runner/accept.d.mts +14 -17
  1435. package/dist/runner/accept.d.ts +14 -17
  1436. package/dist/runner/accept.js +4 -8
  1437. package/dist/runner/adoption.cjs +346 -408
  1438. package/dist/runner/adoption.cjs.map +1 -1
  1439. package/dist/runner/adoption.d.cts +132 -116
  1440. package/dist/runner/adoption.d.mts +132 -116
  1441. package/dist/runner/adoption.d.ts +132 -116
  1442. package/dist/runner/adoption.js +42 -46
  1443. package/dist/runner/attempt.cjs +175 -74
  1444. package/dist/runner/attempt.cjs.map +1 -1
  1445. package/dist/runner/attempt.d.cts +1 -1
  1446. package/dist/runner/attempt.d.mts +1 -1
  1447. package/dist/runner/attempt.d.ts +1 -1
  1448. package/dist/runner/cleanup-timeout.cjs +12 -6
  1449. package/dist/runner/cleanup-timeout.cjs.map +1 -1
  1450. package/dist/runner/cleanup-timeout.d.cts +5 -5
  1451. package/dist/runner/cleanup-timeout.d.mts +5 -5
  1452. package/dist/runner/cleanup-timeout.d.ts +5 -5
  1453. package/dist/runner/execution-identity.cjs +25 -0
  1454. package/dist/runner/execution-identity.cjs.map +1 -0
  1455. package/dist/runner/execution-identity.d.cts +39 -0
  1456. package/dist/runner/execution-identity.d.mts +39 -0
  1457. package/dist/runner/execution-identity.d.ts +39 -0
  1458. package/dist/runner/execution-identity.js +8 -0
  1459. package/dist/runner/execution-identity.js.map +1 -0
  1460. package/dist/runner/feedback/failure.cjs +0 -2
  1461. package/dist/runner/feedback/failure.cjs.map +1 -1
  1462. package/dist/runner/feedback/human.cjs +47 -20
  1463. package/dist/runner/feedback/human.cjs.map +1 -1
  1464. package/dist/runner/feedback/index.cjs.map +1 -1
  1465. package/dist/runner/feedback/index.d.cts +1 -1
  1466. package/dist/runner/feedback/index.d.mts +1 -1
  1467. package/dist/runner/feedback/index.d.ts +1 -1
  1468. package/dist/runner/feedback/json.cjs +29 -7
  1469. package/dist/runner/feedback/json.cjs.map +1 -1
  1470. package/dist/runner/feedback/json.d.cts +14 -1
  1471. package/dist/runner/feedback/json.d.mts +14 -1
  1472. package/dist/runner/feedback/json.d.ts +14 -1
  1473. package/dist/runner/feedback/reducer.cjs +3 -1
  1474. package/dist/runner/feedback/reducer.cjs.map +1 -1
  1475. package/dist/runner/feedback/sink.cjs +1 -1
  1476. package/dist/runner/feedback/sink.cjs.map +1 -1
  1477. package/dist/runner/feedback/sink.d.cts +6 -6
  1478. package/dist/runner/feedback/sink.d.mts +6 -6
  1479. package/dist/runner/feedback/sink.d.ts +6 -6
  1480. package/dist/runner/fingerprint.cjs +8 -2
  1481. package/dist/runner/fingerprint.cjs.map +1 -1
  1482. package/dist/runner/fingerprint.d.cts +9 -0
  1483. package/dist/runner/fingerprint.d.mts +9 -0
  1484. package/dist/runner/fingerprint.d.ts +9 -0
  1485. package/dist/runner/fingerprint.js +4 -2
  1486. package/dist/runner/gate-lease.cjs +24 -12
  1487. package/dist/runner/gate-lease.cjs.map +1 -1
  1488. package/dist/runner/ledger.cjs +27 -5
  1489. package/dist/runner/ledger.cjs.map +1 -1
  1490. package/dist/runner/lock.cjs +24 -11
  1491. package/dist/runner/lock.cjs.map +1 -1
  1492. package/dist/runner/project-current.cjs +63 -0
  1493. package/dist/runner/project-current.cjs.map +1 -1
  1494. package/dist/runner/project-current.d.cts +2 -0
  1495. package/dist/runner/project-current.d.mts +2 -0
  1496. package/dist/runner/project-current.d.ts +2 -0
  1497. package/dist/runner/record.cjs +659 -667
  1498. package/dist/runner/record.cjs.map +1 -1
  1499. package/dist/runner/record.d.cts +54 -81
  1500. package/dist/runner/record.d.mts +54 -81
  1501. package/dist/runner/record.d.ts +54 -81
  1502. package/dist/runner/rename-experiment.cjs +95 -54
  1503. package/dist/runner/rename-experiment.cjs.map +1 -1
  1504. package/dist/runner/rename-experiment.d.cts +19 -21
  1505. package/dist/runner/rename-experiment.d.mts +19 -21
  1506. package/dist/runner/rename-experiment.d.ts +19 -21
  1507. package/dist/runner/rename-experiment.js +2 -4
  1508. package/dist/runner/report.cjs +7 -2
  1509. package/dist/runner/report.cjs.map +1 -1
  1510. package/dist/runner/reporters/braintrust.cjs +4 -16
  1511. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  1512. package/dist/runner/reporters/braintrust.d.cts +22 -5
  1513. package/dist/runner/reporters/braintrust.d.mts +22 -5
  1514. package/dist/runner/reporters/braintrust.d.ts +22 -5
  1515. package/dist/runner/reuse-plan.cjs +256 -435
  1516. package/dist/runner/reuse-plan.cjs.map +1 -1
  1517. package/dist/runner/reuse-plan.d.cts +43 -63
  1518. package/dist/runner/reuse-plan.d.mts +43 -63
  1519. package/dist/runner/reuse-plan.d.ts +43 -63
  1520. package/dist/runner/reuse-plan.js +6 -8
  1521. package/dist/runner/reuse-readback.cjs +157 -170
  1522. package/dist/runner/reuse-readback.cjs.map +1 -1
  1523. package/dist/runner/reuse-readback.d.cts +46 -62
  1524. package/dist/runner/reuse-readback.d.mts +46 -62
  1525. package/dist/runner/reuse-readback.d.ts +46 -62
  1526. package/dist/runner/reuse-readback.js +0 -2
  1527. package/dist/runner/run.cjs +110 -135
  1528. package/dist/runner/run.cjs.map +1 -1
  1529. package/dist/runner/run.d.cts +1 -1
  1530. package/dist/runner/run.d.mts +1 -1
  1531. package/dist/runner/run.d.ts +1 -1
  1532. package/dist/runner/sandbox-pool.cjs +55 -43
  1533. package/dist/runner/sandbox-pool.cjs.map +1 -1
  1534. package/dist/runner/sandbox-record-producer.cjs +21 -6
  1535. package/dist/runner/sandbox-record-producer.cjs.map +1 -1
  1536. package/dist/runner/sandbox-record-producer.d.cts +6 -4
  1537. package/dist/runner/sandbox-record-producer.d.mts +6 -4
  1538. package/dist/runner/sandbox-record-producer.d.ts +6 -4
  1539. package/dist/runner/sandbox-record-producer.js +4 -0
  1540. package/dist/runner/source-producer.cjs +208 -268
  1541. package/dist/runner/source-producer.cjs.map +1 -1
  1542. package/dist/runner/source-producer.d.cts +32 -17
  1543. package/dist/runner/source-producer.d.mts +32 -17
  1544. package/dist/runner/source-producer.d.ts +32 -17
  1545. package/dist/runner/source-producer.js +6 -4
  1546. package/dist/runner/timing.cjs +13 -9
  1547. package/dist/runner/timing.cjs.map +1 -1
  1548. package/dist/runner/types.cjs +3 -2
  1549. package/dist/runner/types.cjs.map +1 -1
  1550. package/dist/runner/types.d.cts +34 -52
  1551. package/dist/runner/types.d.mts +34 -52
  1552. package/dist/runner/types.d.ts +34 -52
  1553. package/dist/runner/types.js +30 -28
  1554. package/dist/sample/analysis.cjs +925 -919
  1555. package/dist/sample/analysis.cjs.map +1 -1
  1556. package/dist/sample/analysis.d.cts +32 -144
  1557. package/dist/sample/analysis.d.mts +32 -144
  1558. package/dist/sample/analysis.d.ts +32 -144
  1559. package/dist/sample/analysis.js +14 -26
  1560. package/dist/sample/capability.cjs +761 -0
  1561. package/dist/sample/capability.cjs.map +1 -0
  1562. package/dist/sample/capability.d.cts +189 -0
  1563. package/dist/sample/capability.d.mts +189 -0
  1564. package/dist/sample/capability.d.ts +189 -0
  1565. package/dist/sample/capability.js +36 -0
  1566. package/dist/sample/capability.js.map +1 -0
  1567. package/dist/sample/index.cjs +9 -13
  1568. package/dist/sample/index.cjs.map +1 -1
  1569. package/dist/sample/index.d.cts +2 -2
  1570. package/dist/sample/index.d.mts +2 -2
  1571. package/dist/sample/index.d.ts +2 -2
  1572. package/dist/sample/index.js +10 -24
  1573. package/dist/sandbox/build-coordinator.cjs +146 -147
  1574. package/dist/sandbox/build-coordinator.cjs.map +1 -1
  1575. package/dist/sandbox/case-types.cjs.map +1 -1
  1576. package/dist/sandbox/case-types.d.cts +6 -0
  1577. package/dist/sandbox/case-types.d.mts +6 -0
  1578. package/dist/sandbox/case-types.d.ts +6 -0
  1579. package/dist/sandbox/commands.cjs.map +1 -1
  1580. package/dist/sandbox/commands.d.cts +0 -2
  1581. package/dist/sandbox/commands.d.mts +0 -2
  1582. package/dist/sandbox/commands.d.ts +0 -2
  1583. package/dist/sandbox/compose.cjs +212 -153
  1584. package/dist/sandbox/compose.cjs.map +1 -1
  1585. package/dist/sandbox/compose.d.cts +11 -2
  1586. package/dist/sandbox/compose.d.mts +11 -2
  1587. package/dist/sandbox/compose.d.ts +11 -2
  1588. package/dist/sandbox/compose.js +32 -30
  1589. package/dist/sandbox/docker.cjs +59 -38
  1590. package/dist/sandbox/docker.cjs.map +1 -1
  1591. package/dist/sandbox/docker.d.cts +2 -1
  1592. package/dist/sandbox/docker.d.mts +2 -1
  1593. package/dist/sandbox/docker.d.ts +2 -1
  1594. package/dist/sandbox/e2b.cjs +30 -18
  1595. package/dist/sandbox/e2b.cjs.map +1 -1
  1596. package/dist/sandbox/index.cjs +2 -2
  1597. package/dist/sandbox/index.cjs.map +1 -1
  1598. package/dist/sandbox/index.d.cts +2 -2
  1599. package/dist/sandbox/index.d.mts +2 -2
  1600. package/dist/sandbox/index.d.ts +2 -2
  1601. package/dist/sandbox/index.js +52 -52
  1602. package/dist/sandbox/index.mjs +52 -52
  1603. package/dist/sandbox/io-retry.cjs +18 -14
  1604. package/dist/sandbox/io-retry.cjs.map +1 -1
  1605. package/dist/sandbox/io-retry.d.cts +7 -4
  1606. package/dist/sandbox/io-retry.d.mts +7 -4
  1607. package/dist/sandbox/io-retry.d.ts +7 -4
  1608. package/dist/sandbox/keep.cjs +79 -52
  1609. package/dist/sandbox/keep.cjs.map +1 -1
  1610. package/dist/sandbox/layer.cjs.map +1 -1
  1611. package/dist/sandbox/layer.d.cts +3 -3
  1612. package/dist/sandbox/layer.d.mts +3 -3
  1613. package/dist/sandbox/layer.d.ts +3 -3
  1614. package/dist/sandbox/paths.cjs +96 -12
  1615. package/dist/sandbox/paths.cjs.map +1 -1
  1616. package/dist/sandbox/paths.d.cts +16 -0
  1617. package/dist/sandbox/paths.d.mts +16 -0
  1618. package/dist/sandbox/paths.d.ts +16 -0
  1619. package/dist/sandbox/paths.js +10 -8
  1620. package/dist/sandbox/prepare-commands.cjs +0 -5
  1621. package/dist/sandbox/prepare-commands.cjs.map +1 -1
  1622. package/dist/sandbox/prepare-commands.d.cts +1 -1
  1623. package/dist/sandbox/prepare-commands.d.mts +1 -1
  1624. package/dist/sandbox/prepare-commands.d.ts +1 -1
  1625. package/dist/sandbox/record/attachment.cjs +16 -53
  1626. package/dist/sandbox/record/attachment.cjs.map +1 -1
  1627. package/dist/sandbox/record/attachment.d.cts +11 -15
  1628. package/dist/sandbox/record/attachment.d.mts +11 -15
  1629. package/dist/sandbox/record/attachment.d.ts +11 -15
  1630. package/dist/sandbox/record/attachment.js +2 -6
  1631. package/dist/sandbox/record/codec.cjs +17 -17
  1632. package/dist/sandbox/record/codec.cjs.map +1 -1
  1633. package/dist/sandbox/record/codec.d.cts +12 -12
  1634. package/dist/sandbox/record/codec.d.mts +12 -12
  1635. package/dist/sandbox/record/codec.d.ts +12 -12
  1636. package/dist/sandbox/record/codec.js +4 -4
  1637. package/dist/sandbox/record/model.cjs +7 -7
  1638. package/dist/sandbox/record/model.cjs.map +1 -1
  1639. package/dist/sandbox/record/model.d.cts +13 -13
  1640. package/dist/sandbox/record/model.d.mts +13 -13
  1641. package/dist/sandbox/record/model.d.ts +13 -13
  1642. package/dist/sandbox/record/model.js +6 -6
  1643. package/dist/sandbox/record/projector.cjs +16 -25
  1644. package/dist/sandbox/record/projector.cjs.map +1 -1
  1645. package/dist/sandbox/record/projector.d.cts +4 -18
  1646. package/dist/sandbox/record/projector.d.mts +4 -18
  1647. package/dist/sandbox/record/projector.d.ts +4 -18
  1648. package/dist/sandbox/record/projector.js +2 -2
  1649. package/dist/sandbox/registry.cjs +19 -9
  1650. package/dist/sandbox/registry.cjs.map +1 -1
  1651. package/dist/sandbox/request-executor.cjs +63 -0
  1652. package/dist/sandbox/request-executor.cjs.map +1 -0
  1653. package/dist/sandbox/request-executor.d.cts +16 -0
  1654. package/dist/sandbox/request-executor.d.mts +16 -0
  1655. package/dist/sandbox/request-executor.d.ts +16 -0
  1656. package/dist/sandbox/request-executor.js +8 -0
  1657. package/dist/sandbox/request-executor.js.map +1 -0
  1658. package/dist/sandbox/retry.cjs +42 -38
  1659. package/dist/sandbox/retry.cjs.map +1 -1
  1660. package/dist/sandbox/retry.d.cts +6 -6
  1661. package/dist/sandbox/retry.d.mts +6 -6
  1662. package/dist/sandbox/retry.d.ts +6 -6
  1663. package/dist/sandbox/runtime.cjs +47 -56
  1664. package/dist/sandbox/runtime.cjs.map +1 -1
  1665. package/dist/sandbox/runtime.d.cts +1 -1
  1666. package/dist/sandbox/runtime.d.mts +1 -1
  1667. package/dist/sandbox/runtime.d.ts +1 -1
  1668. package/dist/sandbox/transfer-errors.cjs +37 -5
  1669. package/dist/sandbox/transfer-errors.cjs.map +1 -1
  1670. package/dist/sandbox/transfer-errors.d.cts +14 -0
  1671. package/dist/sandbox/transfer-errors.d.mts +14 -0
  1672. package/dist/sandbox/transfer-errors.d.ts +14 -0
  1673. package/dist/sandbox/transfer-errors.js +12 -8
  1674. package/dist/sandbox/types.cjs.map +1 -1
  1675. package/dist/sandbox/types.d.cts +0 -7
  1676. package/dist/sandbox/types.d.mts +0 -7
  1677. package/dist/sandbox/types.d.ts +0 -7
  1678. package/dist/sandbox/vercel.cjs +10 -14
  1679. package/dist/sandbox/vercel.cjs.map +1 -1
  1680. package/dist/sources/attachment.cjs +103 -248
  1681. package/dist/sources/attachment.cjs.map +1 -1
  1682. package/dist/sources/attachment.d.cts +47 -319
  1683. package/dist/sources/attachment.d.mts +47 -319
  1684. package/dist/sources/attachment.d.ts +47 -319
  1685. package/dist/sources/attachment.js +8 -18
  1686. package/dist/sources/codec.cjs +56 -56
  1687. package/dist/sources/codec.cjs.map +1 -1
  1688. package/dist/sources/codec.d.cts +63 -63
  1689. package/dist/sources/codec.d.mts +63 -63
  1690. package/dist/sources/codec.d.ts +63 -63
  1691. package/dist/sources/codec.js +44 -44
  1692. package/dist/sources/index.cjs +0 -2
  1693. package/dist/sources/index.cjs.map +1 -1
  1694. package/dist/sources/index.d.cts +0 -2
  1695. package/dist/sources/index.d.mts +0 -2
  1696. package/dist/sources/index.d.ts +0 -2
  1697. package/dist/sources/index.js +72 -86
  1698. package/dist/sources/model.cjs +2 -2
  1699. package/dist/sources/model.cjs.map +1 -1
  1700. package/dist/sources/model.d.cts +41 -41
  1701. package/dist/sources/model.d.mts +41 -41
  1702. package/dist/sources/model.d.ts +41 -41
  1703. package/dist/sources/model.js +2 -2
  1704. package/dist/sources/projector.cjs +39 -268
  1705. package/dist/sources/projector.cjs.map +1 -1
  1706. package/dist/sources/projector.d.cts +40 -8
  1707. package/dist/sources/projector.d.mts +40 -8
  1708. package/dist/sources/projector.d.ts +40 -8
  1709. package/dist/sources/projector.js +4 -6
  1710. package/dist/types.js +30 -28
  1711. package/dist/view/data.cjs.map +1 -1
  1712. package/dist/view/data.d.cts +5 -4
  1713. package/dist/view/data.d.mts +5 -4
  1714. package/dist/view/data.d.ts +5 -4
  1715. package/dist/view/index.cjs +3 -4
  1716. package/dist/view/index.cjs.map +1 -1
  1717. package/dist/view/index.d.cts +2 -2
  1718. package/dist/view/index.d.mts +2 -2
  1719. package/dist/view/index.d.ts +2 -2
  1720. package/dist/view/index.js +2 -4
  1721. package/dist/view/report-view-cache.cjs +200 -0
  1722. package/dist/view/report-view-cache.cjs.map +1 -0
  1723. package/dist/view/report-view-cache.d.cts +67 -0
  1724. package/dist/view/report-view-cache.d.mts +67 -0
  1725. package/dist/view/report-view-cache.d.ts +67 -0
  1726. package/dist/view/report-view-cache.js +8 -0
  1727. package/dist/view/report-view-cache.js.map +1 -0
  1728. package/dist/view/server.cjs +99 -102
  1729. package/dist/view/server.cjs.map +1 -1
  1730. package/dist/view/server.d.cts +0 -6
  1731. package/dist/view/server.d.mts +0 -6
  1732. package/dist/view/server.d.ts +0 -6
  1733. package/dist/view/shared/types.cjs.map +1 -1
  1734. package/dist/view/site.cjs +19 -27
  1735. package/dist/view/site.cjs.map +1 -1
  1736. package/dist/view/site.d.cts +10 -12
  1737. package/dist/view/site.d.mts +10 -12
  1738. package/dist/view/site.d.ts +10 -12
  1739. package/dist/view/site.js +2 -4
  1740. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +8 -8
  1741. package/docs-site/zh/examples/integrations/claude-sdk.mdx +8 -8
  1742. package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
  1743. package/docs-site/zh/examples/integrations/langgraph.mdx +6 -6
  1744. package/docs-site/zh/examples/integrations/pi-sdk.mdx +9 -9
  1745. package/docs-site/zh/explanation/adapter.mdx +3 -1
  1746. package/docs-site/zh/explanation/assert.mdx +6 -6
  1747. package/docs-site/zh/explanation/drive.mdx +1 -1
  1748. package/docs-site/zh/explanation/evals.mdx +6 -3
  1749. package/docs-site/zh/explanation/hitl.mdx +4 -2
  1750. package/docs-site/zh/explanation/judge.mdx +6 -6
  1751. package/docs-site/zh/explanation/overview.mdx +28 -29
  1752. package/docs-site/zh/explanation/record.mdx +26 -36
  1753. package/docs-site/zh/explanation/runner.mdx +7 -8
  1754. package/docs-site/zh/index.mdx +1 -1
  1755. package/docs-site/zh/introduction.mdx +1 -1
  1756. package/docs-site/zh/reference/cli.mdx +16 -19
  1757. package/docs-site/zh/reference/define-agent.mdx +0 -8
  1758. package/docs-site/zh/reference/define-config.mdx +6 -2
  1759. package/docs-site/zh/reference/define-eval.mdx +7 -5
  1760. package/docs-site/zh/reference/events.mdx +6 -3
  1761. package/docs-site/zh/reference/report-components.mdx +92 -88
  1762. package/docs-site/zh/reference/results-data.mdx +39 -49
  1763. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +1 -1
  1764. package/docs-site/zh/troubleshooting/debugging.mdx +27 -28
  1765. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +4 -4
  1766. package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
  1767. package/docs-site/zh/tutorials/authoring.mdx +6 -3
  1768. package/docs-site/zh/tutorials/connect-your-agent.mdx +2 -2
  1769. package/docs-site/zh/tutorials/custom-reports.mdx +148 -76
  1770. package/docs-site/zh/tutorials/deploy-report-site.mdx +14 -17
  1771. package/docs-site/zh/tutorials/evaluation-kinds.mdx +3 -3
  1772. package/docs-site/zh/tutorials/fixtures.mdx +5 -5
  1773. package/docs-site/zh/tutorials/handle-execution-failures.mdx +1 -1
  1774. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +1 -1
  1775. package/docs-site/zh/tutorials/publish-report.mdx +28 -28
  1776. package/docs-site/zh/tutorials/quickstart.mdx +2 -2
  1777. package/docs-site/zh/tutorials/reporters.mdx +4 -4
  1778. package/docs-site/zh/tutorials/rerun-and-cache.mdx +5 -5
  1779. package/docs-site/zh/tutorials/sandbox-agent.mdx +2 -2
  1780. package/docs-site/zh/tutorials/sandbox-providers.mdx +3 -3
  1781. package/docs-site/zh/tutorials/theming.mdx +47 -19
  1782. package/docs-site/zh/tutorials/viewing-results.mdx +43 -80
  1783. package/docs-site/zh/tutorials/write-experiment.mdx +16 -11
  1784. package/docs-site/zh/tutorials/write-send.mdx +11 -3
  1785. package/package.json +83 -11
  1786. package/dist/assertions/record/diff-model.cjs +0 -120
  1787. package/dist/assertions/record/diff-model.cjs.map +0 -1
  1788. package/dist/assertions/record/diff-model.d.cts +0 -47
  1789. package/dist/assertions/record/diff-model.d.mts +0 -47
  1790. package/dist/assertions/record/diff-model.d.ts +0 -47
  1791. package/dist/assertions/record/diff-model.js +0 -12
  1792. package/dist/assertions/record/diff-model.js.map +0 -1
  1793. package/dist/projection/attachment-result.cjs +0 -50
  1794. package/dist/projection/attachment-result.cjs.map +0 -1
  1795. package/dist/projection/attachment-result.d.cts +0 -38
  1796. package/dist/projection/attachment-result.d.mts +0 -38
  1797. package/dist/projection/attachment-result.d.ts +0 -38
  1798. package/dist/projection/attachment-result.js +0 -6
  1799. package/dist/projection/attachment-result.js.map +0 -1
  1800. package/dist/projection/attempt-selection.cjs +0 -87
  1801. package/dist/projection/attempt-selection.cjs.map +0 -1
  1802. package/dist/projection/attempt-selection.d.cts +0 -40
  1803. package/dist/projection/attempt-selection.d.mts +0 -40
  1804. package/dist/projection/attempt-selection.d.ts +0 -40
  1805. package/dist/projection/attempt-selection.js +0 -8
  1806. package/dist/projection/attempt-selection.js.map +0 -1
  1807. package/dist/projection/coverage.cjs +0 -106
  1808. package/dist/projection/coverage.cjs.map +0 -1
  1809. package/dist/projection/coverage.d.cts +0 -43
  1810. package/dist/projection/coverage.d.mts +0 -43
  1811. package/dist/projection/coverage.d.ts +0 -43
  1812. package/dist/projection/coverage.js +0 -6
  1813. package/dist/projection/coverage.js.map +0 -1
  1814. package/dist/projection/index.cjs +0 -36
  1815. package/dist/projection/index.cjs.map +0 -1
  1816. package/dist/projection/index.d.cts +0 -25
  1817. package/dist/projection/index.d.mts +0 -25
  1818. package/dist/projection/index.d.ts +0 -25
  1819. package/dist/projection/index.js +0 -46
  1820. package/dist/projection/index.mjs +0 -46
  1821. package/dist/projection/model.cjs +0 -3
  1822. package/dist/projection/model.cjs.map +0 -1
  1823. package/dist/projection/model.d.cts +0 -49
  1824. package/dist/projection/model.d.mts +0 -49
  1825. package/dist/projection/model.d.ts +0 -49
  1826. package/dist/projection/model.js +0 -4
  1827. package/dist/projection/model.js.map +0 -1
  1828. package/dist/projection/projector.cjs +0 -111
  1829. package/dist/projection/projector.cjs.map +0 -1
  1830. package/dist/projection/projector.d.cts +0 -51
  1831. package/dist/projection/projector.d.mts +0 -51
  1832. package/dist/projection/projector.d.ts +0 -51
  1833. package/dist/projection/projector.js +0 -16
  1834. package/dist/projection/projector.js.map +0 -1
  1835. package/dist/projection/runtime.cjs +0 -246
  1836. package/dist/projection/runtime.cjs.map +0 -1
  1837. package/dist/projection/runtime.d.cts +0 -14
  1838. package/dist/projection/runtime.d.mts +0 -14
  1839. package/dist/projection/runtime.d.ts +0 -14
  1840. package/dist/projection/runtime.js +0 -6
  1841. package/dist/record/migration/errors.cjs +0 -68
  1842. package/dist/record/migration/errors.cjs.map +0 -1
  1843. package/dist/record/migration/errors.d.cts +0 -73
  1844. package/dist/record/migration/errors.d.mts +0 -73
  1845. package/dist/record/migration/errors.d.ts +0 -73
  1846. package/dist/record/migration/errors.js +0 -22
  1847. package/dist/record/migration/errors.js.map +0 -1
  1848. package/dist/record/migration/identity.cjs +0 -27
  1849. package/dist/record/migration/identity.cjs.map +0 -1
  1850. package/dist/record/migration/identity.d.cts +0 -5
  1851. package/dist/record/migration/identity.d.mts +0 -5
  1852. package/dist/record/migration/identity.d.ts +0 -5
  1853. package/dist/record/migration/identity.js +0 -8
  1854. package/dist/record/migration/internal.cjs +0 -3
  1855. package/dist/record/migration/internal.cjs.map +0 -1
  1856. package/dist/record/migration/internal.d.cts +0 -111
  1857. package/dist/record/migration/internal.d.mts +0 -111
  1858. package/dist/record/migration/internal.d.ts +0 -111
  1859. package/dist/record/migration/internal.js +0 -4
  1860. package/dist/record/migration/internal.js.map +0 -1
  1861. package/dist/record/migration/orchestrate.cjs +0 -368
  1862. package/dist/record/migration/orchestrate.cjs.map +0 -1
  1863. package/dist/record/migration/orchestrate.d.cts +0 -113
  1864. package/dist/record/migration/orchestrate.d.mts +0 -113
  1865. package/dist/record/migration/orchestrate.d.ts +0 -113
  1866. package/dist/record/migration/orchestrate.js +0 -16
  1867. package/dist/record/migration/orchestrate.js.map +0 -1
  1868. package/dist/record/migration/plan.cjs +0 -63
  1869. package/dist/record/migration/plan.cjs.map +0 -1
  1870. package/dist/record/migration/plan.d.cts +0 -32
  1871. package/dist/record/migration/plan.d.mts +0 -32
  1872. package/dist/record/migration/plan.d.ts +0 -32
  1873. package/dist/record/migration/plan.js +0 -10
  1874. package/dist/record/migration/plan.js.map +0 -1
  1875. package/dist/record/migration/registry.cjs +0 -150
  1876. package/dist/record/migration/registry.cjs.map +0 -1
  1877. package/dist/record/migration/registry.d.cts +0 -61
  1878. package/dist/record/migration/registry.d.mts +0 -61
  1879. package/dist/record/migration/registry.d.ts +0 -61
  1880. package/dist/record/migration/registry.js +0 -14
  1881. package/dist/record/migration/registry.js.map +0 -1
  1882. package/dist/record/migration/storage.cjs +0 -382
  1883. package/dist/record/migration/storage.cjs.map +0 -1
  1884. package/dist/record/migration/storage.d.cts +0 -18
  1885. package/dist/record/migration/storage.d.mts +0 -18
  1886. package/dist/record/migration/storage.d.ts +0 -18
  1887. package/dist/record/migration/storage.js +0 -6
  1888. package/dist/record/migration/storage.js.map +0 -1
  1889. package/dist/record/migration/types.cjs.map +0 -1
  1890. package/dist/record/migration/types.d.cts +0 -16
  1891. package/dist/record/migration/types.d.mts +0 -16
  1892. package/dist/record/migration/types.d.ts +0 -16
  1893. package/dist/record/reader/internal.cjs +0 -17
  1894. package/dist/record/reader/internal.cjs.map +0 -1
  1895. package/dist/record/reader/internal.d.cts +0 -26
  1896. package/dist/record/reader/internal.d.mts +0 -26
  1897. package/dist/record/reader/internal.d.ts +0 -26
  1898. package/dist/record/reader/internal.js +0 -8
  1899. package/dist/record/reader/internal.js.map +0 -1
  1900. package/dist/record/writer/runtime.cjs +0 -656
  1901. package/dist/record/writer/runtime.cjs.map +0 -1
  1902. package/dist/record/writer/runtime.d.cts +0 -7
  1903. package/dist/record/writer/runtime.d.mts +0 -7
  1904. package/dist/record/writer/runtime.d.ts +0 -7
  1905. package/dist/record/writer/runtime.js +0 -6
  1906. package/dist/report/author/identity.cjs +0 -268
  1907. package/dist/report/author/identity.cjs.map +0 -1
  1908. package/dist/report/author/identity.d.cts +0 -75
  1909. package/dist/report/author/identity.d.mts +0 -75
  1910. package/dist/report/author/identity.d.ts +0 -75
  1911. package/dist/report/author/identity.js +0 -34
  1912. package/dist/report/author/identity.js.map +0 -1
  1913. package/dist/report/author/index.cjs +0 -19
  1914. package/dist/report/author/index.cjs.map +0 -1
  1915. package/dist/report/author/index.d.cts +0 -4
  1916. package/dist/report/author/index.d.mts +0 -4
  1917. package/dist/report/author/index.d.ts +0 -4
  1918. package/dist/report/author/index.js +0 -30
  1919. package/dist/report/author/internal.cjs +0 -98
  1920. package/dist/report/author/internal.cjs.map +0 -1
  1921. package/dist/report/author/internal.d.cts +0 -91
  1922. package/dist/report/author/internal.d.mts +0 -91
  1923. package/dist/report/author/internal.d.ts +0 -91
  1924. package/dist/report/author/internal.js +0 -18
  1925. package/dist/report/author/internal.js.map +0 -1
  1926. package/dist/report/author/model.cjs +0 -467
  1927. package/dist/report/author/model.cjs.map +0 -1
  1928. package/dist/report/author/model.d.cts +0 -241
  1929. package/dist/report/author/model.d.mts +0 -241
  1930. package/dist/report/author/model.d.ts +0 -241
  1931. package/dist/report/author/model.js +0 -32
  1932. package/dist/report/author/model.js.map +0 -1
  1933. package/dist/report/execution/index.cjs +0 -20
  1934. package/dist/report/execution/index.cjs.map +0 -1
  1935. package/dist/report/execution/index.d.cts +0 -3
  1936. package/dist/report/execution/index.d.mts +0 -3
  1937. package/dist/report/execution/index.d.ts +0 -3
  1938. package/dist/report/execution/index.js +0 -30
  1939. package/dist/report/execution/problems.cjs +0 -210
  1940. package/dist/report/execution/problems.cjs.map +0 -1
  1941. package/dist/report/execution/problems.d.cts +0 -54
  1942. package/dist/report/execution/problems.d.mts +0 -54
  1943. package/dist/report/execution/problems.d.ts +0 -54
  1944. package/dist/report/execution/problems.js +0 -14
  1945. package/dist/report/execution/problems.js.map +0 -1
  1946. package/dist/report/execution/results.cjs +0 -26
  1947. package/dist/report/execution/results.cjs.map +0 -1
  1948. package/dist/report/execution/results.d.cts +0 -102
  1949. package/dist/report/execution/results.d.mts +0 -102
  1950. package/dist/report/execution/results.d.ts +0 -102
  1951. package/dist/report/execution/results.js +0 -8
  1952. package/dist/report/execution/results.js.map +0 -1
  1953. package/dist/report/host/html.cjs +0 -424
  1954. package/dist/report/host/html.cjs.map +0 -1
  1955. package/dist/report/host/html.d.cts +0 -28
  1956. package/dist/report/host/html.d.mts +0 -28
  1957. package/dist/report/host/html.d.ts +0 -28
  1958. package/dist/report/host/html.js +0 -6
  1959. package/dist/report/host/html.js.map +0 -1
  1960. package/dist/report/host/node/theme.cjs +0 -21
  1961. package/dist/report/host/node/theme.cjs.map +0 -1
  1962. package/dist/report/host/node/theme.d.cts +0 -1
  1963. package/dist/report/host/node/theme.d.mts +0 -1
  1964. package/dist/report/host/node/theme.d.ts +0 -1
  1965. package/dist/report/host/node/theme.js +0 -14
  1966. package/dist/report/host/presentation.cjs +0 -423
  1967. package/dist/report/host/presentation.cjs.map +0 -1
  1968. package/dist/report/host/presentation.d.cts +0 -42
  1969. package/dist/report/host/presentation.d.mts +0 -42
  1970. package/dist/report/host/presentation.d.ts +0 -42
  1971. package/dist/report/host/presentation.js +0 -16
  1972. package/dist/report/host/theme.cjs +0 -223
  1973. package/dist/report/host/theme.cjs.map +0 -1
  1974. package/dist/report/host/theme.d.cts +0 -64
  1975. package/dist/report/host/theme.d.mts +0 -64
  1976. package/dist/report/host/theme.d.ts +0 -64
  1977. package/dist/report/host/theme.js +0 -14
  1978. package/dist/report/host/theme.js.map +0 -1
  1979. package/dist/report/semantic/document.cjs +0 -593
  1980. package/dist/report/semantic/document.cjs.map +0 -1
  1981. package/dist/report/semantic/document.d.cts +0 -162
  1982. package/dist/report/semantic/document.d.mts +0 -162
  1983. package/dist/report/semantic/document.d.ts +0 -162
  1984. package/dist/report/semantic/document.js +0 -38
  1985. package/dist/report/semantic/document.js.map +0 -1
  1986. package/dist/report/semantic/index.cjs +0 -18
  1987. package/dist/report/semantic/index.cjs.map +0 -1
  1988. package/dist/report/semantic/index.d.cts +0 -1
  1989. package/dist/report/semantic/index.d.mts +0 -1
  1990. package/dist/report/semantic/index.d.ts +0 -1
  1991. package/dist/report/semantic/index.js +0 -38
  1992. package/dist/shared/facts.cjs +0 -24
  1993. package/dist/shared/facts.cjs.map +0 -1
  1994. package/dist/shared/facts.d.cts +0 -7
  1995. package/dist/shared/facts.d.mts +0 -7
  1996. package/dist/shared/facts.d.ts +0 -7
  1997. package/dist/shared/facts.js +0 -6
  1998. package/dist/shared/facts.js.map +0 -1
  1999. package/dist/show/json.cjs +0 -8
  2000. package/dist/show/json.cjs.map +0 -1
  2001. package/dist/show/json.d.cts +0 -2
  2002. package/dist/show/json.d.mts +0 -2
  2003. package/dist/show/json.d.ts +0 -2
  2004. package/dist/show/json.js +0 -8
  2005. package/dist/show/json.js.map +0 -1
  2006. package/dist/show/render.cjs +0 -7
  2007. package/dist/show/render.cjs.map +0 -1
  2008. package/dist/show/render.d.cts +0 -2
  2009. package/dist/show/render.d.mts +0 -2
  2010. package/dist/show/render.d.ts +0 -2
  2011. package/dist/show/render.js +0 -6
  2012. package/dist/show/render.js.map +0 -1
  2013. package/dist/sources/assemble.cjs +0 -634
  2014. package/dist/sources/assemble.cjs.map +0 -1
  2015. package/dist/sources/assemble.d.cts +0 -6
  2016. package/dist/sources/assemble.d.mts +0 -6
  2017. package/dist/sources/assemble.d.ts +0 -6
  2018. package/dist/sources/assemble.js +0 -6
  2019. package/dist/sources/assemble.js.map +0 -1
  2020. package/dist/sources/projection-model.cjs +0 -3
  2021. package/dist/sources/projection-model.cjs.map +0 -1
  2022. package/dist/sources/projection-model.d.cts +0 -327
  2023. package/dist/sources/projection-model.d.mts +0 -327
  2024. package/dist/sources/projection-model.d.ts +0 -327
  2025. package/dist/sources/projection-model.js +0 -4
  2026. package/dist/sources/projection-model.js.map +0 -1
  2027. /package/dist/{projection → coordination/host}/index.js.map +0 -0
  2028. /package/dist/{projection → coordination/host}/index.mjs.map +0 -0
  2029. /package/dist/{projection → coordination/host}/runtime.js.map +0 -0
  2030. /package/dist/{record/migration → coordination/host}/types.cjs +0 -0
  2031. /package/dist/{record/migration → coordination/host}/types.js +0 -0
  2032. /package/dist/{record/migration → coordination/host}/types.js.map +0 -0
  2033. /package/dist/{record/migration → coordination}/identity.js.map +0 -0
  2034. /package/dist/{report/author → coordination}/index.js.map +0 -0
  2035. /package/dist/{report/execution → coordination/platform}/index.js.map +0 -0
  2036. /package/dist/{report/semantic → experiment/host}/index.js.map +0 -0
  2037. /package/dist/record/{writer → host}/runtime.js.map +0 -0
  2038. /package/dist/report/{host/presentation.js.map → presentation.js.map} +0 -0
  2039. /package/dist/report/{host/node/theme.js.map → theme.js.map} +0 -0
package/dist/cli.cjs CHANGED
@@ -19,11 +19,12 @@ exports.experimentRenameExitCode = experimentRenameExitCode;
19
19
  // niceeval exp [组|配置] [pattern] 跑实验
20
20
  // niceeval debug <配置> <eval> 只规划一个配对的 Sandbox / Plugin lifecycle
21
21
  // niceeval accept @<locator>... 接受多条历史结果并重锚到当前配置
22
- // niceeval show [selection] 终端渲染一次固定的 ReportExecution
22
+ // niceeval show [selection] 终端渲染固定 Sample 的一个目标 Page
23
23
  // niceeval list 只列出发现到的 eval
24
24
  // niceeval clean [--record <root>] [--yes] 删除未完成 Run
25
25
  // niceeval migrate [--record <root>] [--yes] 显式迁移 Record
26
26
  const node_child_process_1 = require("node:child_process");
27
+ const node_crypto_1 = require("node:crypto");
27
28
  const node_os_1 = require("node:os");
28
29
  const promises_1 = require("node:fs/promises");
29
30
  const node_fs_1 = require("node:fs");
@@ -31,22 +32,24 @@ const node_path_1 = require("node:path");
31
32
  const node_util_1 = require("node:util");
32
33
  const effect_1 = require("effect");
33
34
  const attempt_locator_ts_1 = require("./attempt-locator.cjs");
34
- const discover_ts_1 = require("./runner/discover.cjs");
35
35
  const aggregate_ts_1 = require("./shared/aggregate.cjs");
36
- const run_ts_1 = require("./runner/run.cjs");
37
- const fingerprint_ts_1 = require("./runner/fingerprint.cjs");
36
+ const index_ts_1 = require("./experiment/host/index.cjs");
38
37
  const project_current_ts_1 = require("./runner/project-current.cjs");
39
- const index_ts_1 = require("./record/index.cjs");
40
- const index_ts_2 = require("./analysis/index.cjs");
38
+ const index_ts_2 = require("./record/index.cjs");
39
+ const identifiers_ts_1 = require("./record/codec/identifiers.cjs");
41
40
  const attempt_overview_ts_1 = require("./report/built-in/attempt-overview.cjs");
42
41
  const overview_ts_1 = require("./report/built-in/overview.cjs");
43
42
  const run_membership_overview_ts_1 = require("./report/built-in/run-membership-overview.cjs");
44
43
  const execution_ts_1 = require("./report/built-in/execution.cjs");
45
44
  const source_ts_1 = require("./report/built-in/source.cjs");
46
- const identity_ts_1 = require("./report/author/identity.cjs");
45
+ const model_ts_1 = require("./report/execution/model.cjs");
46
+ const from_record_ts_1 = require("./report/host/from-record.cjs");
47
+ const execute_ts_1 = require("./report/host/execute.cjs");
48
+ const paths_ts_1 = require("./report/execution/paths.cjs");
47
49
  const index_ts_3 = require("./report/host/index.cjs");
50
+ const progress_ts_1 = require("./report/host/progress.cjs");
51
+ const static_ts_1 = require("./report/host/static.cjs");
48
52
  const node_ts_1 = require("./report/host/node.cjs");
49
- const server_ts_1 = require("./view/server.cjs");
50
53
  const record_ts_1 = require("./cli/record.cjs");
51
54
  const eval_selection_ts_1 = require("./runner/eval-selection.cjs");
52
55
  const registry_ts_1 = require("./sandbox/registry.cjs");
@@ -57,15 +60,12 @@ const experiment_cleanup_registry_ts_1 = require("./runner/experiment-cleanup-re
57
60
  const lock_ts_1 = require("./runner/lock.cjs");
58
61
  const gate_lease_ts_1 = require("./runner/gate-lease.cjs");
59
62
  const cleanup_timeout_ts_1 = require("./runner/cleanup-timeout.cjs");
63
+ const report_view_cache_ts_1 = require("./view/report-view-cache.cjs");
60
64
  const timeout_ts_1 = require("./runner/timeout.cjs");
61
- const record_ts_2 = require("./runner/record.cjs");
62
- const reuse_readback_ts_1 = require("./runner/reuse-readback.cjs");
63
65
  const teardown_registry_ts_1 = require("./runner/teardown-registry.cjs");
64
66
  const rename_experiment_ts_1 = require("./runner/rename-experiment.cjs");
65
67
  const verdict_ts_1 = require("./shared/verdict.cjs");
66
- const facts_ts_1 = require("./shared/facts.cjs");
67
68
  const sandbox_selection_ts_1 = require("./runner/sandbox-selection.cjs");
68
- const plan_ts_2 = require("./sandbox/plan.cjs");
69
69
  const json_ts_1 = require("./runner/reporters/json.cjs");
70
70
  const index_ts_4 = require("./runner/feedback/index.cjs");
71
71
  const index_ts_5 = require("./i18n/index.cjs");
@@ -112,14 +112,28 @@ function renderCliFailure(failure) {
112
112
  if (isReportCliOperation(failure.operation)) {
113
113
  const code = failureCode(failure.cause);
114
114
  if (code !== undefined) {
115
- const reason = failure.cause instanceof node_ts_1.ReportModuleLoadError ? `: ${failure.cause.reason}` : "";
116
- return `${code}${reason}\n`;
115
+ if (failure.cause instanceof node_ts_1.ReportModuleLoadError) {
116
+ return `${code}: ${failure.cause.reason}\n`;
117
+ }
118
+ const reason = stringProperty(failure.cause, "reason");
119
+ const operation = stringProperty(failure.cause, "operation");
120
+ if (reason !== undefined) {
121
+ const stage = operation === undefined ? "" : `${operation}: `;
122
+ const retry = code === "report-view-server-failed" && operation === "listen"
123
+ ? "\nChoose another port with --port <port>, or stop the process already listening there."
124
+ : "";
125
+ return `${code}: ${stage}${reason}${retry}\n`;
126
+ }
127
+ return `${code}\n`;
117
128
  }
118
129
  }
119
130
  return (0, index_ts_5.t)("cli.error", { error: (0, util_ts_1.formatThrown)(failure.cause) });
120
131
  }
121
132
  function isReportCliOperation(operation) {
122
- return operation === "execute report from Record" ||
133
+ return operation === "load trusted Report config" ||
134
+ operation === "load trusted Report module" ||
135
+ operation === "load trusted Theme module" ||
136
+ operation === "execute report from Record" ||
123
137
  operation === "render Report show output" ||
124
138
  operation === "open report view session" ||
125
139
  operation === "open report view" ||
@@ -169,7 +183,7 @@ const FLAG_OPTIONS = {
169
183
  tag: { type: "string" },
170
184
  /** 额外写一份 JUnit XML 报告到指定路径,供 CI 消费。 */
171
185
  junit: { type: "string" },
172
- /** `exp` 运行在 stdout 输出单一有序的 NDJSON 事件流;`exp --dry` 与 `debug` 输出各自的单个 JSON 计划文档。`show` 输出同一 ReportExecution 的宿主数据与状态,不打开第二条取数路径。 */
186
+ /** `exp` 运行在 stdout 输出单一有序的 NDJSON 事件流;`exp --dry` 与 `debug` 输出各自的单个 JSON 计划文档。`show` 输出 Host 拥有的内建或自定义单目标机器文档,不形成完整站点或打开第二条取数路径。 */
173
187
  json: { type: "boolean" },
174
188
  /** `docker profile doctor` 专用:启动受限 DinD 容器并运行内层容器。 */
175
189
  smoke: { type: "boolean" },
@@ -421,7 +435,7 @@ function parseArgs(argv) {
421
435
  function projectCurrentDryPlan(input) {
422
436
  return Object.freeze({
423
437
  slots: Object.freeze(input.slots.map(projectCurrentDryPlanSlot)),
424
- readbacks: Object.freeze(input.readbacks.map(reuse_readback_ts_1.projectCurrentReuseReadback)),
438
+ readbacks: Object.freeze([...input.readbacks]),
425
439
  });
426
440
  }
427
441
  function projectCurrentDryPlanSlot(slot) {
@@ -557,8 +571,6 @@ function firstViewerOnlyFlag(flags) {
557
571
  return { flag: "--stats", command: SHOW };
558
572
  if (flags.experiment !== undefined)
559
573
  return { flag: "--experiment", command: BOTH };
560
- if (flags.record !== undefined)
561
- return { flag: "--record", command: BOTH };
562
574
  if (flags.report !== undefined)
563
575
  return { flag: "--report", command: BOTH };
564
576
  if (flags.theme !== undefined)
@@ -691,8 +703,7 @@ function parseAcceptLocators(positionals, flags) {
691
703
  /** 调用 acceptance core;CLI 只负责 cwd/记录根边界、输出与退出码,不重建结果或启动 runner。 */
692
704
  function runAcceptCommand(cwd, locators, recordRoot) {
693
705
  return effect_1.Effect.gen(function* () {
694
- const mod = (yield* cliPromise("load acceptance command", () => __niceevalDynamicImport("./runner/accept.cjs")));
695
- const results = yield* cliEffect("accept locators", mod.acceptLocators({
706
+ const results = yield* cliEffect("accept locators", index_ts_1.experimentHost.accept({
696
707
  cwd,
697
708
  locators,
698
709
  ...(recordRoot !== undefined ? { recordRoot } : {}),
@@ -1289,12 +1300,6 @@ function agentRunFromExperiment(experiment, selectedEvalIds, overrides = {}) {
1289
1300
  classifyFailure: experiment.classifyFailure,
1290
1301
  };
1291
1302
  }
1292
- function uniqueExactOrPrefix(candidates, selector) {
1293
- const exact = candidates.find((candidate) => candidate.id === selector);
1294
- return exact === undefined
1295
- ? candidates.filter((candidate) => candidate.id.startsWith(selector))
1296
- : [exact];
1297
- }
1298
1303
  function renderDebugPlanJson(input) {
1299
1304
  return `${JSON.stringify({
1300
1305
  format: "niceeval.debug-plan/v1",
@@ -1311,89 +1316,68 @@ function runDebugCommand(cwd, positionals, flags) {
1311
1316
  return 1;
1312
1317
  }
1313
1318
  const [experimentSelector, evalSelector] = positionals;
1314
- const config = yield* loadConfig(cwd);
1315
- const evals = yield* cliEffect("discover evals for lifecycle debug", (0, discover_ts_1.discoverEvals)(cwd));
1316
- const experiments = yield* cliEffect("discover experiments for lifecycle debug", (0, discover_ts_1.discoverExperiments)(cwd));
1317
- const experimentIds = experiments.map((experiment) => experiment.id);
1318
- const matchedExperiments = uniqueExactOrPrefix(experiments, experimentSelector)
1319
- .slice()
1320
- .sort((left, right) => left.id.localeCompare(right.id));
1321
- if (matchedExperiments.length === 0) {
1322
- yield* writeStderr((0, index_ts_5.t)("cli.debug.experimentNoMatch", {
1323
- selector: experimentSelector,
1324
- candidates: [...experimentIds].sort().join(", ") || (0, index_ts_5.t)("cli.none"),
1325
- }));
1326
- return 1;
1327
- }
1328
- if (matchedExperiments.length > 1) {
1329
- yield* writeStderr((0, index_ts_5.t)("cli.debug.experimentAmbiguous", {
1330
- selector: experimentSelector,
1331
- candidates: matchedExperiments.map((experiment) => experiment.id).join(", "),
1332
- }));
1333
- return 1;
1334
- }
1335
- const experiment = matchedExperiments[0];
1336
- const { selectorEvals } = (0, eval_selection_ts_1.resolveExperimentEvals)({
1337
- experimentId: experiment.id,
1338
- selector: experiment.evals,
1339
- cliPatterns: [],
1340
- evals,
1341
- });
1342
- const matchedEvals = uniqueExactOrPrefix(selectorEvals, evalSelector)
1343
- .slice()
1344
- .sort((left, right) => left.id.localeCompare(right.id));
1345
- if (matchedEvals.length === 0) {
1346
- yield* writeStderr((0, index_ts_5.t)("cli.debug.evalNoMatch", {
1347
- selector: evalSelector,
1348
- experimentId: experiment.id,
1349
- candidates: selectorEvals.map((evalDef) => evalDef.id).sort().join(", ") || (0, index_ts_5.t)("cli.none"),
1350
- }));
1351
- return 1;
1352
- }
1353
- if (matchedEvals.length > 1) {
1354
- yield* writeStderr((0, index_ts_5.t)("cli.debug.evalAmbiguous", {
1355
- selector: evalSelector,
1356
- experimentId: experiment.id,
1357
- candidates: matchedEvals.map((evalDef) => evalDef.id).join(", "),
1358
- }));
1359
- return 1;
1360
- }
1361
- const evalDef = matchedEvals[0];
1362
- const run = agentRunFromExperiment(experiment, [evalDef.id]);
1363
- const prepared = yield* cliEffect("plan sandbox lifecycle debug", (0, sandbox_selection_ts_1.prepareRunSandboxes)(evals, [run], (0, plan_ts_2.liveSandboxPlanningServices)(), {
1364
- ...(config.timeoutMs === undefined ? {} : { configTimeoutMs: config.timeoutMs }),
1319
+ const result = yield* cliEffect("debug Experiment lifecycle", index_ts_1.experimentHost.debug({
1320
+ cwd,
1321
+ experimentSelector,
1322
+ evalSelector,
1365
1323
  }));
1366
- const commandPlan = (0, index_ts_4.assembleCommandPlan)({
1367
- rows: [{
1368
- experimentId: experiment.id,
1369
- evalId: evalDef.id,
1370
- ...(evalDef.evalGroup === undefined ? {} : { evalGroupId: evalDef.evalGroup.id }),
1371
- attempts: run.attempts,
1372
- dispatch: [{ attempts: Array.from({ length: run.attempts }, (_, attempt) => attempt) }],
1373
- }],
1374
- preparedPairsByKey: (0, sandbox_selection_ts_1.preparedPairsByKey)(prepared),
1375
- });
1376
- yield* writeStdout(flags.json
1377
- ? renderDebugPlanJson({ experimentId: experiment.id, evalId: evalDef.id, commandPlan })
1378
- : (0, index_ts_4.renderHumanCommandPlan)(commandPlan, {
1379
- isTTY: process.stdout.isTTY,
1380
- noColor: process.env.NO_COLOR,
1381
- width: process.stdout.columns,
1382
- }));
1383
- return 0;
1324
+ switch (result.status) {
1325
+ case "experiment-no-match":
1326
+ yield* writeStderr((0, index_ts_5.t)("cli.debug.experimentNoMatch", {
1327
+ selector: result.selector,
1328
+ candidates: result.candidates.join(", ") || (0, index_ts_5.t)("cli.none"),
1329
+ }));
1330
+ return 1;
1331
+ case "experiment-ambiguous":
1332
+ yield* writeStderr((0, index_ts_5.t)("cli.debug.experimentAmbiguous", {
1333
+ selector: result.selector,
1334
+ candidates: result.candidates.join(", "),
1335
+ }));
1336
+ return 1;
1337
+ case "eval-no-match":
1338
+ yield* writeStderr((0, index_ts_5.t)("cli.debug.evalNoMatch", {
1339
+ selector: result.selector,
1340
+ experimentId: result.experimentId,
1341
+ candidates: result.candidates.join(", ") || (0, index_ts_5.t)("cli.none"),
1342
+ }));
1343
+ return 1;
1344
+ case "eval-ambiguous":
1345
+ yield* writeStderr((0, index_ts_5.t)("cli.debug.evalAmbiguous", {
1346
+ selector: result.selector,
1347
+ experimentId: result.experimentId,
1348
+ candidates: result.candidates.join(", "),
1349
+ }));
1350
+ return 1;
1351
+ case "planned":
1352
+ yield* writeStdout(flags.json
1353
+ ? renderDebugPlanJson(result)
1354
+ : (0, index_ts_4.renderHumanCommandPlan)(result.commandPlan, {
1355
+ isTTY: process.stdout.isTTY,
1356
+ noColor: process.env.NO_COLOR,
1357
+ width: process.stdout.columns,
1358
+ }));
1359
+ return 0;
1360
+ }
1384
1361
  });
1385
1362
  }
1386
1363
  function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1387
1364
  return effect_1.Effect.gen(function* () {
1365
+ // Keep project-local coordination (sessions, locks, kept sandboxes) separate
1366
+ // from the portable Record root selected by `--record` below.
1367
+ const coordinationRoot = (0, node_path_1.resolve)(cwd, ".niceeval");
1388
1368
  const config = yield* loadConfig(cwd);
1389
1369
  const maxBuildConcurrency = flags.maxBuildConcurrency ?? config.maxBuildConcurrency ?? 2;
1390
1370
  if (!Number.isInteger(maxBuildConcurrency) || maxBuildConcurrency <= 0) {
1391
1371
  yield* writeStderr(`maxBuildConcurrency must be a positive integer, got ${maxBuildConcurrency}.\n`);
1392
1372
  return 1;
1393
1373
  }
1394
- const allEvals = yield* cliEffect("discover evals", (0, discover_ts_1.discoverEvals)(cwd));
1395
- const evals = flags.tag ? allEvals.filter((evalDefinition) => evalDefinition.tags?.includes(flags.tag)) : allEvals;
1374
+ let evals = Object.freeze([]);
1396
1375
  if (command === "list") {
1376
+ const listed = yield* cliEffect("list evals", index_ts_1.experimentHost.list({
1377
+ cwd,
1378
+ ...(flags.tag === undefined ? {} : { tag: flags.tag }),
1379
+ }));
1380
+ evals = listed.evals;
1397
1381
  yield* writeStdout((0, index_ts_5.t)("cli.list.header", { count: evals.length }));
1398
1382
  for (const evalDefinition of evals) {
1399
1383
  yield* writeStdout(` ${evalDefinition.id}${evalDefinition.description ? ` — ${evalDefinition.description}` : ""}\n`);
@@ -1412,35 +1396,36 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1412
1396
  yield* writeStderr((0, index_ts_5.t)("cli.exp.forceUnsupported"));
1413
1397
  return 1;
1414
1398
  }
1399
+ // `--record` selects the fact root for `exp`; `check` has no Record
1400
+ // reader or writer, so accepting it there would silently discard input.
1401
+ if (command === "check" && flags.record !== undefined) {
1402
+ yield* writeStderr((0, index_ts_5.t)("cli.check.recordUnsupported"));
1403
+ return 1;
1404
+ }
1415
1405
  const viewerFlag = firstViewerOnlyFlag(flags);
1416
1406
  if (viewerFlag) {
1417
1407
  yield* writeStderr((0, index_ts_5.t)("cli.exp.viewerFlagUnsupported", { flag: viewerFlag.flag, command: viewerFlag.command }));
1418
1408
  return 1;
1419
1409
  }
1420
- const experiments = yield* cliEffect("discover experiments", (0, discover_ts_1.discoverExperiments)(cwd));
1421
1410
  if (command === "exp" && positionals[0] === "list") {
1422
1411
  if (positionals.length > 2) {
1423
1412
  yield* writeStderr("niceeval exp list accepts at most one experiment prefix.\n");
1424
1413
  return 1;
1425
1414
  }
1426
1415
  const selector = positionals[1];
1427
- const ids = experiments.map((experiment) => experiment.id);
1428
- const selectedIds = selector === undefined ? new Set(ids) : new Set((0, aggregate_ts_1.matchExperimentSelector)(ids, selector));
1429
- const selected = experiments.filter((experiment) => selectedIds.has(experiment.id));
1430
- if (selected.length === 0 && selector !== undefined) {
1416
+ const listed = yield* cliEffect("list experiments", index_ts_1.experimentHost.list({
1417
+ cwd,
1418
+ ...(flags.tag === undefined ? {} : { tag: flags.tag }),
1419
+ ...(selector === undefined ? {} : { selector }),
1420
+ }));
1421
+ if (listed.selections.length === 0 && selector !== undefined) {
1431
1422
  yield* writeStderr((0, index_ts_5.t)("cli.experiment.noMatch", {
1432
1423
  arg: selector,
1433
- experiments: (0, aggregate_ts_1.browsableExperimentPaths)(ids).join(", ") || (0, index_ts_5.t)("cli.none"),
1424
+ experiments: (0, aggregate_ts_1.browsableExperimentPaths)(listed.experimentIds).join(", ") || (0, index_ts_5.t)("cli.none"),
1434
1425
  }));
1435
1426
  return 1;
1436
1427
  }
1437
- const rows = selected.map((experiment) => {
1438
- const { selectedEvalIds } = (0, eval_selection_ts_1.resolveExperimentEvals)({
1439
- experimentId: experiment.id,
1440
- selector: experiment.evals,
1441
- cliPatterns: [],
1442
- evals,
1443
- });
1428
+ const rows = listed.selections.map(({ experiment, selectedEvalIds }) => {
1444
1429
  return {
1445
1430
  experimentId: experiment.id,
1446
1431
  ...(experiment.description !== undefined ? { description: experiment.description } : {}),
@@ -1473,9 +1458,15 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1473
1458
  const expArg = positionals[0];
1474
1459
  const extraPatterns = positionals.slice(1);
1475
1460
  experimentSelection = positionals.join(" ") || (0, index_ts_5.t)("cli.all");
1476
- availableExperimentPaths = (0, aggregate_ts_1.browsableExperimentPaths)(experiments.map((experiment) => experiment.id)).join(", ") || (0, index_ts_5.t)("cli.none");
1477
- const selectedIds = expArg === undefined ? undefined : new Set((0, aggregate_ts_1.matchExperimentSelector)(experiments.map((experiment) => experiment.id), expArg));
1478
- const selected = selectedIds === undefined ? experiments : experiments.filter((experiment) => selectedIds.has(experiment.id));
1461
+ const listed = yield* cliEffect("select experiments", index_ts_1.experimentHost.list({
1462
+ cwd,
1463
+ ...(flags.tag === undefined ? {} : { tag: flags.tag }),
1464
+ ...(expArg === undefined ? {} : { selector: expArg }),
1465
+ ...(extraPatterns.length === 0 ? {} : { evalPatterns: extraPatterns }),
1466
+ }));
1467
+ evals = listed.evals;
1468
+ const selected = listed.selections;
1469
+ availableExperimentPaths = (0, aggregate_ts_1.browsableExperimentPaths)(listed.experimentIds).join(", ") || (0, index_ts_5.t)("cli.none");
1479
1470
  if (selected.length === 0) {
1480
1471
  yield* writeStderr((0, index_ts_5.t)("cli.experiment.noMatch", {
1481
1472
  arg: expArg ?? (0, index_ts_5.t)("cli.all"),
@@ -1495,7 +1486,9 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1495
1486
  const orphans = yield* (0, cli_commands_ts_1.orphanReminderEffect)(cwd).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.succeed(undefined)));
1496
1487
  if (orphans)
1497
1488
  yield* writeStderr(orphans);
1498
- const teardownReminder = yield* (0, teardown_registry_ts_1.orphanedTeardownReminderEffect)((0, node_path_1.resolve)(cwd, ".niceeval"), new Set(selected.filter((experiment) => experiment.teardown).map((experiment) => experiment.id)), (0, node_os_1.hostname)()).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.succeed(undefined)));
1489
+ const teardownReminder = yield* (0, teardown_registry_ts_1.orphanedTeardownReminderEffect)(coordinationRoot, new Set(selected
1490
+ .filter(({ experiment }) => experiment.teardown)
1491
+ .map(({ experiment }) => experiment.id)), (0, node_os_1.hostname)()).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.succeed(undefined)));
1499
1492
  if (teardownReminder)
1500
1493
  yield* writeStderr(teardownReminder);
1501
1494
  if (flags.teardown) {
@@ -1503,24 +1496,17 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1503
1496
  yield* writeStderr((0, index_ts_5.t)("cli.exp.teardownNoEvalPatterns"));
1504
1497
  return 1;
1505
1498
  }
1506
- const niceevalRootForTeardown = (0, node_path_1.resolve)(cwd, ".niceeval");
1499
+ const niceevalRootForTeardown = coordinationRoot;
1507
1500
  let anyFailed = false;
1508
- for (const experiment of selected) {
1501
+ for (const { experiment, selectedEvalIds } of selected) {
1509
1502
  if (!experiment.teardown)
1510
1503
  continue;
1511
- const { selectedEvalIds } = (0, eval_selection_ts_1.resolveExperimentEvals)({
1512
- experimentId: experiment.id,
1513
- selector: experiment.evals,
1514
- cliPatterns: [],
1515
- evals,
1516
- });
1517
1504
  const ctx = {
1518
1505
  experimentId: experiment.id,
1519
1506
  selectedEvalIds,
1520
1507
  signal: new AbortController().signal,
1521
1508
  progress: () => { },
1522
1509
  diagnostic: (input) => process.stderr.write(`${input.message}\n`),
1523
- fact: (key, value) => (0, facts_ts_1.recordFact)({}, key, value),
1524
1510
  };
1525
1511
  const registrations = yield* (0, teardown_registry_ts_1.readTeardownRegistrationsEffect)(niceevalRootForTeardown).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.succeed([])));
1526
1512
  const matching = registrations.filter(({ entry }) => entry.experimentId === experiment.id);
@@ -1546,15 +1532,9 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1546
1532
  return anyFailed ? 1 : 0;
1547
1533
  }
1548
1534
  const experimentScopeIds = new Set();
1549
- for (const experiment of selected) {
1550
- const { selectedEvalIds, selectorEvals } = (0, eval_selection_ts_1.resolveExperimentEvals)({
1551
- experimentId: experiment.id,
1552
- selector: experiment.evals,
1553
- cliPatterns: extraPatterns,
1554
- evals,
1555
- });
1556
- for (const evalDefinition of selectorEvals)
1557
- experimentScopeIds.add(evalDefinition.id);
1535
+ for (const { experiment, selectedEvalIds, selectorEvalIds } of selected) {
1536
+ for (const evalId of selectorEvalIds)
1537
+ experimentScopeIds.add(evalId);
1558
1538
  agentRuns.push(agentRunFromExperiment(experiment, selectedEvalIds, flags));
1559
1539
  }
1560
1540
  for (const pattern of extraPatterns) {
@@ -1569,10 +1549,18 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1569
1549
  }
1570
1550
  }
1571
1551
  else {
1572
- const experiments = yield* cliEffect("discover experiments", (0, discover_ts_1.discoverExperiments)(cwd));
1573
- const ids = experiments.map((experiment) => experiment.id);
1574
- const matchedIds = new Set(positionals.flatMap((pattern) => (0, aggregate_ts_1.matchExperimentSelector)(ids, pattern)));
1575
- const asExp = experiments.filter((experiment) => matchedIds.has(experiment.id));
1552
+ const listed = yield* cliEffect("list experiments", index_ts_1.experimentHost.list({
1553
+ cwd,
1554
+ ...(flags.tag === undefined ? {} : { tag: flags.tag }),
1555
+ }));
1556
+ const selectedByPattern = yield* effect_1.Effect.all(positionals.map((selector) => cliEffect("select experiments", index_ts_1.experimentHost.list({
1557
+ cwd,
1558
+ ...(flags.tag === undefined ? {} : { tag: flags.tag }),
1559
+ selector,
1560
+ }))));
1561
+ const asExp = [...new Map(selectedByPattern
1562
+ .flatMap((selection) => selection.selections)
1563
+ .map(({ experiment }) => [experiment.id, experiment])).values()];
1576
1564
  yield* writeStderr((0, index_ts_5.t)("cli.run.experimentRequired"));
1577
1565
  if (asExp.length > 0) {
1578
1566
  yield* writeStderr((0, index_ts_5.t)("cli.run.experimentRequiredHint", {
@@ -1582,7 +1570,7 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1582
1570
  }
1583
1571
  else {
1584
1572
  yield* writeStderr((0, index_ts_5.t)("cli.run.experimentRequiredKnown", {
1585
- experiments: experiments.map((experiment) => experiment.id).join(", ") || (0, index_ts_5.t)("cli.none"),
1573
+ experiments: listed.experimentIds.join(", ") || (0, index_ts_5.t)("cli.none"),
1586
1574
  }));
1587
1575
  }
1588
1576
  return 1;
@@ -1604,33 +1592,29 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1604
1592
  yield* writeStdout(`Sandbox layers linked: ${pairCount} pair${pairCount === 1 ? "" : "s"}.\n`);
1605
1593
  return 0;
1606
1594
  }
1607
- const targetPlan = yield* cliEffect("plan current ProjectTarget", (0, fingerprint_ts_1.planProjectTarget)(evals, agentRuns, config.timeoutMs, {
1608
- configJudge: config.judge,
1609
- keepSandbox: flags.keepSandbox,
1595
+ const recordTarget = yield* effect_1.Effect.try({
1596
+ try: () => parseActualRecordRoot(cwd, flags.record),
1597
+ catch: (cause) => cliFailure("parse experiment Record root", cause),
1598
+ });
1599
+ const experimentPlan = yield* cliEffect("plan Experiment", index_ts_1.experimentHost.plan({
1600
+ evals,
1601
+ agentRuns,
1602
+ config,
1603
+ recordRoot: recordTarget.root,
1604
+ ...(flags.rerun === undefined ? {} : { rerun: flags.rerun }),
1605
+ ...(flags.keepSandbox === undefined ? {} : { keepSandbox: flags.keepSandbox }),
1606
+ ...(flags.dry ? { previewStartedAt: Date.now() } : {}),
1610
1607
  }));
1608
+ const targetPlan = experimentPlan.target;
1611
1609
  if (flags.dry) {
1612
- const reuse = yield* cliEffect("prepare current Record reuse", (0, record_ts_2.prepareRunnerRecordReuse)({
1613
- evals,
1614
- runs: agentRuns,
1615
- config: { timeoutMs: config.timeoutMs },
1616
- plannedFingerprints: targetPlan.plannedFingerprints,
1617
- plannedConfigHashes: targetPlan.plannedConfigHashes,
1618
- rerun: flags.rerun,
1619
- keepSandbox: flags.keepSandbox,
1620
- }));
1621
- const currentPlan = yield* cliEffect("preview current Record reuse", (0, record_ts_2.withRunnerCurrentReusePreview)({
1622
- niceevalRoot: (0, node_path_1.resolve)(cwd, ".niceeval"),
1623
- startedAt: Date.now(),
1624
- evals,
1625
- runs: agentRuns,
1626
- reuse,
1627
- // `readReadbacks` is deliberately consumed and projected before this
1628
- // callback returns, while the exact frozen Record capability is live.
1629
- use: ({ reusePlan, readReadbacks }) => readReadbacks().pipe(effect_1.Effect.map((readbacks) => projectCurrentDryPlan({ slots: reusePlan.slots, readbacks }))),
1630
- }));
1610
+ const current = experimentPlan.current;
1611
+ if (current === undefined) {
1612
+ return yield* effect_1.Effect.fail(cliFailure("preview Experiment", new Error("Experiment Host did not return the requested dry plan.")));
1613
+ }
1614
+ const currentPlan = projectCurrentDryPlan(current);
1631
1615
  const rows = currentDryPlanRows(currentPlan);
1632
1616
  const now = Date.now();
1633
- const lockedFlags = yield* effect_1.Effect.all(rows.map((row) => (0, lock_ts_1.readCaseLockEffect)((0, node_path_1.resolve)(cwd, ".niceeval"), row.experimentId, row.evalId).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.succeed(undefined)), effect_1.Effect.map((lock) => lock !== undefined && !(0, lock_ts_1.isCaseLockExpired)(lock, now)))), { concurrency: "unbounded" });
1617
+ const lockedFlags = yield* effect_1.Effect.all(rows.map((row) => (0, lock_ts_1.readCaseLockEffect)(coordinationRoot, row.experimentId, row.evalId).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.succeed(undefined)), effect_1.Effect.map((lock) => lock !== undefined && !(0, lock_ts_1.isCaseLockExpired)(lock, now)))), { concurrency: "unbounded" });
1634
1618
  const evalGroupsByEvalId = new Map(evals.flatMap((evalDef) => evalDef.evalGroup === undefined ? [] : [[evalDef.id, {
1635
1619
  ...evalDef.evalGroup,
1636
1620
  index: evalDef.evalGroup.evalIds.indexOf(evalDef.id),
@@ -1686,7 +1670,7 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1686
1670
  const renderer = outputForm === "human"
1687
1671
  ? (0, index_ts_4.createHumanRenderer)({ io, command: commandLabel })
1688
1672
  : (0, index_ts_4.createJsonRenderer)({ io });
1689
- const sessionTracker = new session_ts_1.SessionTracker((0, node_path_1.resolve)(cwd, ".niceeval"));
1673
+ const sessionTracker = new session_ts_1.SessionTracker(coordinationRoot);
1690
1674
  const coordinator = (0, index_ts_4.createFeedbackCoordinator)({
1691
1675
  profile: outputForm,
1692
1676
  renderer,
@@ -1729,7 +1713,7 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1729
1713
  },
1730
1714
  },
1731
1715
  });
1732
- // This synchronous hand-off and the following `runEvals` yield have no
1716
+ // This synchronous hand-off and the following Experiment Host yield have no
1733
1717
  // asynchronous gap. A first signal therefore either interrupts the root
1734
1718
  // before dispatch begins, or aborts this Invocation so it can close its
1735
1719
  // durable interrupted receipt before the CLI returns.
@@ -1739,7 +1723,7 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1739
1723
  // Runner remains Effect-native. During graceful dispatch the application
1740
1724
  // edge translates SIGINT into this Invocation signal, letting dispatch
1741
1725
  // settle and the receipt close before the process exits with 130.
1742
- const receipt = yield* cliEffect("run evaluations", (0, run_ts_1.runEvals)({
1726
+ const receipt = yield* cliEffect("run Experiment", index_ts_1.experimentHost.run({
1743
1727
  config,
1744
1728
  evals,
1745
1729
  agentRuns,
@@ -1748,7 +1732,8 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1748
1732
  maxBuildConcurrency,
1749
1733
  keepSandbox: flags.keepSandbox,
1750
1734
  rerun: flags.rerun,
1751
- niceevalRoot: (0, node_path_1.resolve)(cwd, ".niceeval"),
1735
+ coordinationRoot,
1736
+ recordRoot: recordTarget.root,
1752
1737
  session: sessionTracker,
1753
1738
  onCurrentRecordReusePlan: (current) => effect_1.Effect.sync(() => coordinator.start({
1754
1739
  ...plan,
@@ -1769,6 +1754,18 @@ function runEvaluationCommand(cwd, command, positionals, flags, interruption) {
1769
1754
  return (0, index_ts_4.computeExitCode)({ ...summary, failed: foldedStats.failed, errored: foldedStats.errored }, completion);
1770
1755
  });
1771
1756
  }
1757
+ /** Resolve the CLI's one portable Record target without treating `.niceeval` as Record data. */
1758
+ function parseActualRecordRoot(cwd, rootText) {
1759
+ if (rootText !== undefined && rootText.trim() === "") {
1760
+ throw usageError("--record requires an actual Record root directory.\n");
1761
+ }
1762
+ const rootPath = (0, node_path_1.resolve)(cwd, rootText ?? ".niceeval/record");
1763
+ const root = (0, index_ts_2.makeRecordRoot)(rootPath);
1764
+ if (effect_1.Either.isLeft(root)) {
1765
+ throw usageError(`Invalid --record root: ${root.left.code}.\n`);
1766
+ }
1767
+ return Object.freeze({ root: root.right, rootPath });
1768
+ }
1772
1769
  /**
1773
1770
  * The CLI validates selection identity before Record I/O. It never turns a
1774
1771
  * prefix, a path, or a directory entry into a Run / Experiment selection.
@@ -1779,15 +1776,7 @@ function parseReportCliRequest(input) {
1779
1776
  throw usageError(`niceeval ${input.command} does not accept ${unsupported}.\n`);
1780
1777
  }
1781
1778
  const runs = input.flags.run ?? [];
1782
- const rootText = input.flags.record;
1783
- if (rootText !== undefined && rootText.trim() === "") {
1784
- throw usageError("--record requires an actual Record root directory.\n");
1785
- }
1786
- const rootPath = (0, node_path_1.resolve)(input.cwd, rootText ?? ".niceeval/record");
1787
- const root = (0, index_ts_1.makeRecordRoot)(rootPath);
1788
- if (effect_1.Either.isLeft(root)) {
1789
- throw usageError(`Invalid --record root: ${root.left.code}.\n`);
1790
- }
1779
+ const { root, rootPath } = parseActualRecordRoot(input.cwd, input.flags.record);
1791
1780
  const page = parseReportRoute(input.flags.page);
1792
1781
  const evidenceReports = [
1793
1782
  input.flags.source !== undefined ? "--source" : undefined,
@@ -1819,7 +1808,7 @@ function parseReportCliRequest(input) {
1819
1808
  return Object.freeze({
1820
1809
  command: input.command,
1821
1810
  cwd: input.cwd,
1822
- root: root.right,
1811
+ root,
1823
1812
  rootPath,
1824
1813
  target: Object.freeze({ kind: "attempt", locator: parsedLocator }),
1825
1814
  reportSelection: Object.freeze({ kind: "fixed", report }),
@@ -1845,7 +1834,7 @@ function parseReportCliRequest(input) {
1845
1834
  return Object.freeze({
1846
1835
  command: input.command,
1847
1836
  cwd: input.cwd,
1848
- root: root.right,
1837
+ root,
1849
1838
  rootPath,
1850
1839
  target: Object.freeze({ kind: "attempt", locator: parsedLocator }),
1851
1840
  reportSelection: Object.freeze({
@@ -1871,11 +1860,13 @@ function parseReportCliRequest(input) {
1871
1860
  throw usageError("niceeval show --source requires one current Record Attempt locator.\n");
1872
1861
  }
1873
1862
  const parsedLocator = parseCurrentAttemptLocator(locator);
1874
- const report = (0, source_ts_1.sourceEvidenceReport)();
1863
+ const report = (0, source_ts_1.sourceEvidenceReport)({
1864
+ ...(typeof input.flags.source === "string" ? { file: input.flags.source } : {}),
1865
+ });
1875
1866
  return Object.freeze({
1876
1867
  command: input.command,
1877
1868
  cwd: input.cwd,
1878
- root: root.right,
1869
+ root,
1879
1870
  rootPath,
1880
1871
  target: Object.freeze({ kind: "attempt", locator: parsedLocator }),
1881
1872
  reportSelection: Object.freeze({ kind: "fixed", report }),
@@ -1898,7 +1889,7 @@ function parseReportCliRequest(input) {
1898
1889
  return Object.freeze({
1899
1890
  command: input.command,
1900
1891
  cwd: input.cwd,
1901
- root: root.right,
1892
+ root,
1902
1893
  rootPath,
1903
1894
  target: Object.freeze({ kind: "attempt", locator: parsedLocator }),
1904
1895
  reportSelection: input.flags.report === undefined
@@ -1926,7 +1917,7 @@ function parseReportCliRequest(input) {
1926
1917
  return Object.freeze({
1927
1918
  command: input.command,
1928
1919
  cwd: input.cwd,
1929
- root: root.right,
1920
+ root,
1930
1921
  rootPath,
1931
1922
  target,
1932
1923
  reportSelection: report,
@@ -1989,11 +1980,11 @@ function reportUnsupportedFlag(command, flags) {
1989
1980
  function parseReportRoute(value) {
1990
1981
  if (value === undefined)
1991
1982
  return undefined;
1992
- const parsed = (0, identity_ts_1.reportRoute)(value);
1993
- if (effect_1.Either.isLeft(parsed)) {
1994
- throw usageError(`Invalid --page route "${value}": ${parsed.left.reason}.\n`);
1983
+ const issue = (0, paths_ts_1.validateReportRoute)(value);
1984
+ if (issue !== undefined) {
1985
+ throw usageError(`Invalid --page route "${value}": ${issue.reason}.\n`);
1995
1986
  }
1996
- return parsed.right;
1987
+ return value;
1997
1988
  }
1998
1989
  function reportSelection(cwd, value) {
1999
1990
  if (value === undefined)
@@ -2028,14 +2019,14 @@ function explicitSelection(values) {
2028
2019
  const nonEmptyRunIds = [first, ...rest];
2029
2020
  return Object.freeze({
2030
2021
  policy: "explicit-runs",
2031
- input: Object.freeze({ runIds: nonEmptyRunIds }),
2022
+ runIds: nonEmptyRunIds,
2032
2023
  });
2033
2024
  }
2034
2025
  function uniqueExactRunIds(values) {
2035
2026
  const result = [];
2036
2027
  const seen = new Set();
2037
2028
  for (const value of values) {
2038
- const decoded = effect_1.Schema.decodeUnknownEither(index_ts_1.RunIdSchema)(value);
2029
+ const decoded = effect_1.Schema.decodeUnknownEither(index_ts_2.RunIdSchema)(value);
2039
2030
  if (effect_1.Either.isLeft(decoded)) {
2040
2031
  throw usageError(`Invalid --run value "${value}": expected one exact portable RunId.\n`);
2041
2032
  }
@@ -2050,7 +2041,7 @@ function uniqueExactExperimentIds(values) {
2050
2041
  const result = [];
2051
2042
  const seen = new Set();
2052
2043
  for (const value of values) {
2053
- const decoded = effect_1.Schema.decodeUnknownEither(index_ts_2.ExperimentIdSchema)(value);
2044
+ const decoded = effect_1.Schema.decodeUnknownEither(identifiers_ts_1.ExperimentIdSchema)(value);
2054
2045
  if (effect_1.Either.isLeft(decoded)) {
2055
2046
  throw usageError(`Invalid --experiment value "${value}": expected one exact ExperimentId.\n`);
2056
2047
  }
@@ -2085,38 +2076,44 @@ function loadCliReportInputs(request) {
2085
2076
  }))
2086
2077
  : undefined;
2087
2078
  const configured = yield* cliEffect("load trusted Report config", (0, node_ts_1.loadTrustedReportConfig)(request.cwd));
2088
- const selectedReport = yield* reportFromSelection(request.reportSelection, configured.report);
2079
+ const selectedReport = yield* reportFromSelection(request.reportSelection, configured.report, configured.watchInputs);
2089
2080
  const selectedTheme = yield* themeFromSelection(request.themeSelection, configured.theme);
2090
2081
  const projectCurrentSelection = projectCurrent === undefined
2091
2082
  ? undefined
2092
2083
  : Object.freeze({
2093
2084
  policy: "project-current",
2094
- input: Object.freeze({
2095
- target: projectCurrent.target,
2096
- }),
2085
+ currentSlots: projectCurrent.currentSlots,
2086
+ ...(request.target.kind === "project-current" && request.target.experimentIds !== undefined
2087
+ ? { experimentIds: request.target.experimentIds }
2088
+ : {}),
2097
2089
  });
2090
+ const sourceWatchInputs = uniqueWatchInputs([
2091
+ ...(projectCurrent?.watchInputs ?? []),
2092
+ ...configured.watchInputs,
2093
+ ...selectedReport.watchInputs,
2094
+ ...selectedTheme.watchInputs,
2095
+ ]);
2098
2096
  return Object.freeze({
2099
2097
  report: selectedReport.value,
2100
2098
  theme: selectedTheme.value,
2099
+ reportWatchInputs: uniqueWatchInputs(selectedReport.watchInputs),
2100
+ sourceWatchInputs,
2101
2101
  ...(projectCurrentSelection === undefined ? {} : { projectCurrentSelection }),
2102
2102
  watchInputs: uniqueWatchInputs([
2103
2103
  request.rootPath,
2104
- ...(projectCurrent?.watchInputs ?? []),
2105
- ...configured.watchInputs,
2106
- ...selectedReport.watchInputs,
2107
- ...selectedTheme.watchInputs,
2104
+ ...sourceWatchInputs,
2108
2105
  ]),
2109
2106
  });
2110
2107
  });
2111
2108
  }
2112
- function reportFromSelection(selection, configured) {
2109
+ function reportFromSelection(selection, configured, configuredWatchInputs) {
2113
2110
  switch (selection.kind) {
2114
2111
  case "fixed":
2115
2112
  return effect_1.Effect.succeed(Object.freeze({ value: selection.report, watchInputs: Object.freeze([]) }));
2116
2113
  case "config":
2117
2114
  return effect_1.Effect.succeed(Object.freeze({
2118
2115
  value: configured ?? overview_ts_1.defaultOverviewReport,
2119
- watchInputs: Object.freeze([]),
2116
+ watchInputs: configured === undefined ? Object.freeze([]) : configuredWatchInputs,
2120
2117
  }));
2121
2118
  case "built-in":
2122
2119
  return effect_1.Effect.succeed(Object.freeze({ value: overview_ts_1.defaultOverviewReport, watchInputs: Object.freeze([]) }));
@@ -2140,21 +2137,23 @@ function themeFromSelection(selection, configured) {
2140
2137
  function uniqueWatchInputs(paths) {
2141
2138
  return Object.freeze([...new Set(paths.map((path) => (0, node_path_1.resolve)(path)))].sort());
2142
2139
  }
2143
- function executeCliReport(request, inputs) {
2144
- const execution = request.target.kind === "attempt"
2145
- ? (0, index_ts_3.executeReportForAttemptFromRecord)({
2140
+ function buildCliReportSite(request, inputs) {
2141
+ const revision = request.target.kind === "attempt"
2142
+ ? (0, from_record_ts_1.buildReportSiteFromRecord)({
2146
2143
  root: request.root,
2147
2144
  locator: request.target.locator,
2148
2145
  report: inputs.report,
2146
+ theme: inputs.theme,
2149
2147
  })
2150
- : (0, index_ts_3.executeReportFromRecord)({
2148
+ : (0, from_record_ts_1.buildReportSiteFromRecord)({
2151
2149
  root: request.root,
2152
2150
  selection: request.target.kind === "selection"
2153
2151
  ? request.target.selection
2154
2152
  : inputs.projectCurrentSelection,
2155
2153
  report: inputs.report,
2154
+ theme: inputs.theme,
2156
2155
  });
2157
- return execution.pipe(effect_1.Effect.mapError(reportExecutionFailure));
2156
+ return revision.pipe(effect_1.Effect.mapError(reportExecutionFailure));
2158
2157
  }
2159
2158
  function reportExecutionFailure(error) {
2160
2159
  switch (failureCode(error)) {
@@ -2180,24 +2179,89 @@ function reportExecutionFailure(error) {
2180
2179
  return usageError("record-format-unsupported\nUse a NiceEval version that supports this Record format.\n");
2181
2180
  case "record-migration-interrupted":
2182
2181
  return usageError("record-migration-interrupted\nRestore the Record from Git or a backup before retrying.\n");
2182
+ case "report-route-invalid":
2183
+ return usageError(`Unknown Report route "${stringProperty(error, "route") ?? "unknown"}".\n`);
2184
+ case "report-build-budget-exceeded":
2185
+ return usageError(reportBuildBudgetExceededMessage(error));
2186
+ case "report-site-execution-problem":
2187
+ return usageError(reportSiteExecutionProblemMessage(error));
2183
2188
  default:
2184
2189
  return cliFailure("execute report from Record", error);
2185
2190
  }
2186
2191
  }
2192
+ /** Preserve the actionable dimension and target from the Host's closed budget error. */
2193
+ function reportBuildBudgetExceededMessage(error) {
2194
+ const budget = stringProperty(error, "budget");
2195
+ const maximum = finiteNumberProperty(error, "maximum");
2196
+ const observedAtLeast = finiteNumberProperty(error, "observedAtLeast");
2197
+ if (budget === undefined || maximum === undefined || observedAtLeast === undefined) {
2198
+ return "report-build-budget-exceeded\n";
2199
+ }
2200
+ const pageId = stringProperty(error, "pageId");
2201
+ const route = stringProperty(error, "route");
2202
+ const target = pageId === undefined && route === undefined
2203
+ ? ""
2204
+ : ` (${[
2205
+ ...(pageId === undefined ? [] : [`page ${JSON.stringify(pageId)}`]),
2206
+ ...(route === undefined ? [] : [`route ${JSON.stringify(route)}`]),
2207
+ ].join(", ")})`;
2208
+ return `report-build-budget-exceeded: ${budget} observed at least ${observedAtLeast}; maximum ${maximum}${target}\n`;
2209
+ }
2210
+ const REPORT_CLI_PROBLEMS_MAX = 20;
2211
+ const REPORT_CLI_PROBLEM_TEXT_MAX = 1024;
2212
+ /** Keep the concrete closed-problem reason while bounding author-controlled diagnostics. */
2213
+ function reportSiteExecutionProblemMessage(error) {
2214
+ if (typeof error !== "object" || error === null)
2215
+ return "report-site-execution-problem\n";
2216
+ const problems = Reflect.get(error, "problems");
2217
+ if (!Array.isArray(problems))
2218
+ return "report-site-execution-problem\n";
2219
+ const lines = problems
2220
+ .slice(0, REPORT_CLI_PROBLEMS_MAX)
2221
+ .flatMap((problem) => {
2222
+ const code = boundedReportCliProblemText(stringProperty(problem, "code"));
2223
+ const summary = boundedReportCliProblemText(stringProperty(problem, "summary"));
2224
+ if (code === undefined && summary === undefined)
2225
+ return [];
2226
+ if (code === undefined)
2227
+ return [summary];
2228
+ return [summary === undefined ? code : `${code}: ${summary}`];
2229
+ });
2230
+ const omitted = Math.max(0, problems.length - REPORT_CLI_PROBLEMS_MAX);
2231
+ return [
2232
+ "report-site-execution-problem",
2233
+ ...lines,
2234
+ ...(omitted === 0 ? [] : [`${omitted} additional Report problem(s) omitted.`]),
2235
+ "",
2236
+ ].join("\n");
2237
+ }
2238
+ function boundedReportCliProblemText(value) {
2239
+ if (value === undefined)
2240
+ return undefined;
2241
+ const bounded = value
2242
+ .replace(/[\u0000-\u001f\u007f-\u009f]/g, " ")
2243
+ .slice(0, REPORT_CLI_PROBLEM_TEXT_MAX)
2244
+ .trim();
2245
+ return bounded === "" ? undefined : bounded;
2246
+ }
2187
2247
  function stringProperty(value, key) {
2188
2248
  if (typeof value !== "object" || value === null)
2189
2249
  return undefined;
2190
2250
  const candidate = Reflect.get(value, key);
2191
2251
  return typeof candidate === "string" ? candidate : undefined;
2192
2252
  }
2193
- function requireKnownReportPage(execution, page) {
2194
- if (page === undefined || execution.pages.some((candidate) => candidate.route === page)) {
2253
+ function finiteNumberProperty(value, key) {
2254
+ if (typeof value !== "object" || value === null)
2255
+ return undefined;
2256
+ const candidate = Reflect.get(value, key);
2257
+ return typeof candidate === "number" && Number.isFinite(candidate) ? candidate : undefined;
2258
+ }
2259
+ function requireKnownReportPage(revision, page) {
2260
+ const routes = (0, model_ts_1.closedSiteRevisionData)(revision).routes;
2261
+ if (page === undefined || routes.includes(page)) {
2195
2262
  return effect_1.Effect.void;
2196
2263
  }
2197
- const available = execution.pages
2198
- .flatMap((candidate) => candidate.route === undefined ? [] : [candidate.route])
2199
- .sort()
2200
- .join(", ");
2264
+ const available = [...routes].sort().join(", ");
2201
2265
  return effect_1.Effect.fail(usageError(`Unknown Report route "${page}". Available routes: ${available || "none"}.\n`));
2202
2266
  }
2203
2267
  const cliReportConsole = Object.freeze({
@@ -2211,32 +2275,141 @@ const cliReportConsole = Object.freeze({
2211
2275
  }),
2212
2276
  }),
2213
2277
  });
2278
+ const reportHostPhaseLabels = Object.freeze({
2279
+ "record-open": "Open Record",
2280
+ "selection": "Select runs and attempts",
2281
+ "sample-open": "Open analysis Sample",
2282
+ "report-execution": "Execute Report and read requested facts",
2283
+ });
2284
+ function formatReportProgressDuration(durationMs) {
2285
+ if (durationMs < 1000)
2286
+ return `${Math.round(durationMs)}ms`;
2287
+ return `${(durationMs / 1000).toFixed(1)}s`;
2288
+ }
2289
+ function writeReportProgress(text) {
2290
+ try {
2291
+ process.stderr.write(text);
2292
+ }
2293
+ catch {
2294
+ // Progress is diagnostic only; it must never alter Report execution.
2295
+ }
2296
+ }
2297
+ const cliProgressFrames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
2298
+ /**
2299
+ * Keeps interactive progress on one terminal line, while preserving plain
2300
+ * line-oriented diagnostics when stderr is redirected to a file or CI log.
2301
+ */
2302
+ class CliReportProgress {
2303
+ active;
2304
+ start(label) {
2305
+ if (!process.stderr.isTTY) {
2306
+ writeReportProgress(`⠋ ${label}…\n`);
2307
+ return () => undefined;
2308
+ }
2309
+ if (this.active !== undefined)
2310
+ clearInterval(this.active.timer);
2311
+ let frame = 0;
2312
+ const render = () => writeReportProgress(`\r\u001b[2K${cliProgressFrames[frame++ % cliProgressFrames.length]} ${label}…`);
2313
+ render();
2314
+ const timer = setInterval(render, 80);
2315
+ const active = { label, timer };
2316
+ this.active = active;
2317
+ return () => {
2318
+ if (this.active !== active)
2319
+ return;
2320
+ clearInterval(timer);
2321
+ this.active = undefined;
2322
+ };
2323
+ }
2324
+ complete(label, text) {
2325
+ if (process.stderr.isTTY) {
2326
+ if (this.active?.label === label) {
2327
+ clearInterval(this.active.timer);
2328
+ this.active = undefined;
2329
+ }
2330
+ writeReportProgress(`\r\u001b[2K${text}\n`);
2331
+ return;
2332
+ }
2333
+ writeReportProgress(`${text}\n`);
2334
+ }
2335
+ }
2336
+ function makeCliReportProgress(rootPath, progress) {
2337
+ return Object.freeze({
2338
+ report: (event) => {
2339
+ const label = event.phase === "record-open"
2340
+ ? `${reportHostPhaseLabels[event.phase]} (${rootPath})`
2341
+ : reportHostPhaseLabels[event.phase];
2342
+ if (event.type === "start") {
2343
+ progress.start(label);
2344
+ return;
2345
+ }
2346
+ const marker = event.outcome === "success" ? "✓" : "×";
2347
+ const outcome = event.outcome === "success" ? "" : ` · ${event.outcome}`;
2348
+ progress.complete(label, `${marker} ${label} (${formatReportProgressDuration(event.durationMs)}${outcome})`);
2349
+ },
2350
+ });
2351
+ }
2352
+ function cliPhaseOutcome(exit) {
2353
+ if (effect_1.Exit.isSuccess(exit))
2354
+ return "success";
2355
+ if (effect_1.Cause.isInterruptedOnly(exit.cause))
2356
+ return "interrupted";
2357
+ return effect_1.Cause.defects(exit.cause).pipe((defects) => defects.length > 0) ? "defect" : "failure";
2358
+ }
2359
+ function withCliReportPhase(progress, label, effect) {
2360
+ return effect_1.Effect.gen(function* () {
2361
+ const startedAt = yield* effect_1.Clock.currentTimeNanos;
2362
+ const stopProgress = yield* effect_1.Effect.sync(() => progress.start(label));
2363
+ return yield* effect.pipe(effect_1.Effect.onExit((exit) => effect_1.Effect.gen(function* () {
2364
+ const completedAt = yield* effect_1.Clock.currentTimeNanos;
2365
+ const durationMs = Math.max(0, Number(completedAt - startedAt) / 1000000);
2366
+ const outcome = cliPhaseOutcome(exit);
2367
+ const marker = outcome === "success" ? "✓" : "×";
2368
+ const detail = outcome === "success" ? "" : ` · ${outcome}`;
2369
+ yield* effect_1.Effect.sync(() => {
2370
+ stopProgress();
2371
+ progress.complete(label, `${marker} ${label} (${formatReportProgressDuration(durationMs)}${detail})`);
2372
+ });
2373
+ })));
2374
+ });
2375
+ }
2214
2376
  function runShowCommand(cwd, positionals, flags) {
2215
2377
  return effect_1.Effect.gen(function* () {
2378
+ const progress = new CliReportProgress();
2216
2379
  const request = yield* effect_1.Effect.try({
2217
2380
  try: () => parseReportCliRequest({ command: "show", cwd, positionals, flags }),
2218
2381
  catch: (cause) => cliFailure("parse show arguments", cause),
2219
2382
  });
2220
- const inputs = yield* loadCliReportInputs(request);
2221
- const execution = yield* executeCliReport(request, inputs);
2222
- yield* requireKnownReportPage(execution, request.page);
2223
- yield* (0, index_ts_3.showReport)({
2224
- execution,
2225
- ...(flags.json ? { format: "json" } : {}),
2226
- ...(request.page === undefined ? {} : { page: request.page }),
2227
- }).pipe(effect_1.Effect.provideService(index_ts_3.ReportConsole, cliReportConsole), effect_1.Effect.mapError((error) => cliFailure("render Report show output", error)));
2383
+ const inputs = yield* withCliReportPhase(progress, "Load project, config, Report, and Theme", loadCliReportInputs(request));
2384
+ const show = request.target.kind === "attempt"
2385
+ ? index_ts_3.reportHost.show({
2386
+ root: request.root,
2387
+ locator: request.target.locator,
2388
+ report: inputs.report,
2389
+ ...(request.page === undefined ? {} : { route: request.page }),
2390
+ format: flags.json ? "json" : "text",
2391
+ })
2392
+ : index_ts_3.reportHost.show({
2393
+ root: request.root,
2394
+ selection: request.target.kind === "selection"
2395
+ ? request.target.selection
2396
+ : inputs.projectCurrentSelection,
2397
+ report: inputs.report,
2398
+ ...(request.page === undefined ? {} : { route: request.page }),
2399
+ format: flags.json ? "json" : "text",
2400
+ });
2401
+ const output = yield* show.pipe(effect_1.Effect.provideService(progress_ts_1.ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)), effect_1.Effect.mapError(reportExecutionFailure));
2402
+ yield* cliReportConsole.write(output).pipe(effect_1.Effect.mapError((error) => cliFailure("render Report show output", error)));
2228
2403
  return 0;
2229
2404
  });
2230
2405
  }
2231
2406
  function runViewCommand(cwd, positionals, flags) {
2232
2407
  return effect_1.Effect.gen(function* () {
2408
+ const progress = new CliReportProgress();
2233
2409
  const request = yield* effect_1.Effect.try({
2234
2410
  try: () => parseReportCliRequest({ command: "view", cwd, positionals, flags }),
2235
2411
  catch: (cause) => cliFailure("parse view arguments", cause),
2236
2412
  });
2237
- const initialInputs = yield* loadCliReportInputs(request);
2238
- const initial = yield* executeCliReport(request, initialInputs);
2239
- yield* requireKnownReportPage(initial, request.page);
2240
2413
  if (flags.out !== undefined) {
2241
2414
  if (flags.out.trim() === "") {
2242
2415
  return yield* effect_1.Effect.fail(usageError("--out requires a target directory.\n"));
@@ -2244,32 +2417,34 @@ function runViewCommand(cwd, positionals, flags) {
2244
2417
  if (flags.port !== undefined || flags.host !== undefined || flags.open === true) {
2245
2418
  return yield* effect_1.Effect.fail(usageError("view --out does not start a server; remove --port, --host, and --open.\n"));
2246
2419
  }
2247
- const receipt = yield* (0, index_ts_3.exportStaticReport)({
2248
- execution: initial,
2420
+ if (request.page !== undefined) {
2421
+ return yield* effect_1.Effect.fail(usageError("view --out does not accept --page.\n"));
2422
+ }
2423
+ const inputs = yield* withCliReportPhase(progress, "Load project, config, Report, and Theme", loadCliReportInputs(request));
2424
+ const revision = yield* buildCliReportSite(request, inputs).pipe(effect_1.Effect.provideService(progress_ts_1.ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)));
2425
+ const receipt = yield* withCliReportPhase(progress, "Export static report site", index_ts_3.reportHost.export({
2426
+ revision,
2249
2427
  out: (0, node_path_1.resolve)(cwd, flags.out),
2250
- theme: initialInputs.theme,
2251
- }).pipe(effect_1.Effect.provideService(index_ts_3.ReportFileSystem, (0, node_ts_1.makeNodeReportFileSystem)()), effect_1.Effect.mapError((error) => staticExportFailure(error, (0, node_path_1.resolve)(cwd, flags.out))));
2428
+ }).pipe(effect_1.Effect.provideService(static_ts_1.ReportFileSystem, (0, node_ts_1.makeNodeReportFileSystem)()), effect_1.Effect.mapError((error) => staticExportFailure(error, (0, node_path_1.resolve)(cwd, flags.out)))));
2252
2429
  yield* writeStdout(`Exported static report site: ${receipt.out}\n`);
2253
2430
  return 0;
2254
2431
  }
2432
+ const initialInputs = yield* withCliReportPhase(progress, "Load project, config, Report, and Theme", loadCliReportInputs(request));
2433
+ const initial = yield* buildCliReportSite(request, initialInputs).pipe(effect_1.Effect.provideService(progress_ts_1.ReportHostProgressObserver, makeCliReportProgress(request.rootPath, progress)));
2434
+ yield* requireKnownReportPage(initial, request.page);
2435
+ const buildCache = yield* makeReportViewBuildCache(request, initialInputs, initial);
2255
2436
  const { host, port } = yield* effect_1.Effect.try({
2256
2437
  try: () => ({ host: viewHost(flags.host), port: viewPort(flags.port) }),
2257
2438
  catch: (cause) => cliFailure("parse view server arguments", cause),
2258
2439
  });
2259
- const session = yield* (0, index_ts_3.openReportViewSession)({
2440
+ const server = yield* withCliReportPhase(progress, "Start HTTP server and file watcher", index_ts_3.reportHost.serve({
2260
2441
  url: `http://${host.includes(":") ? `[${host}]` : host}:${port}/`,
2261
- theme: initialInputs.theme,
2262
2442
  watchInputs: initialInputs.watchInputs,
2263
2443
  initial: effect_1.Effect.succeed(initial),
2264
- rebuild: () => rebuildReportView(request),
2265
- }).pipe(effect_1.Effect.mapError((error) => cliFailure("open report view session", error)));
2266
- // Watch set is owned by the session revision; openViewServer only transports
2267
- // fs.watch hints and replaces them after each successful rebuild.
2268
- const server = yield* (0, server_ts_1.openViewServer)({
2269
- session,
2444
+ rebuild: () => rebuildReportView(request, buildCache),
2270
2445
  host,
2271
2446
  port,
2272
- }).pipe(effect_1.Effect.mapError((error) => cliFailure("open report view", error)));
2447
+ }).pipe(effect_1.Effect.mapError((error) => cliFailure("open report view", error))));
2273
2448
  const urls = server.urls.map((url) => request.page === undefined ? url : new URL(request.page, url).toString());
2274
2449
  const url = urls[0];
2275
2450
  if (!isLoopbackViewHost(host)) {
@@ -2283,21 +2458,72 @@ function runViewCommand(cwd, positionals, flags) {
2283
2458
  return yield* effect_1.Effect.never;
2284
2459
  });
2285
2460
  }
2286
- /**
2287
- * A watcher signal is only a hint. Every refresh re-reads config plus its
2288
- * fresh author graph and Record before one completed immutable revision is
2289
- * published with its next recoverable watch set; a typed boundary failure is
2290
- * logged once and leaves last-good execution and the prior watch set.
2291
- */
2292
- function rebuildReportView(request) {
2461
+ function rebuildReportView(request, cache) {
2293
2462
  return effect_1.Effect.gen(function* () {
2294
2463
  const inputs = yield* loadCliReportInputs(request);
2295
- const execution = yield* executeCliReport(request, inputs);
2296
- yield* requireKnownReportPage(execution, request.page);
2464
+ const [snapshotIdentity, sourceFingerprint, reportInputFingerprint, themeCss] = yield* effect_1.Effect.all([
2465
+ readReportSnapshotIdentity(request, inputs),
2466
+ fingerprintReportSourceInputs(inputs.sourceWatchInputs),
2467
+ fingerprintReportSourceInputs(inputs.reportWatchInputs),
2468
+ closeReportThemeStylesheet(inputs.theme),
2469
+ ]);
2470
+ const pageIdentity = reportPageCacheIdentity(request, inputs, {
2471
+ snapshotIdentity,
2472
+ reportInputs: reportInputFingerprint,
2473
+ });
2474
+ const themeIdentity = reportCacheBytesIdentity(themeCss);
2475
+ const cachedPages = cache.pageBytes;
2476
+ const reusePages = cachedPages !== undefined &&
2477
+ snapshotIdentity === cache.snapshotIdentity &&
2478
+ pageIdentity !== undefined && pageIdentity === cache.pageIdentity;
2479
+ const exactNoop = reusePages && themeIdentity === cache.themeIdentity &&
2480
+ sameReportInputFingerprint(sourceFingerprint, cache.sourceFingerprint);
2481
+ let revision;
2482
+ let pageBytes;
2483
+ if (exactNoop) {
2484
+ revision = cache.revision;
2485
+ pageBytes = cachedPages;
2486
+ }
2487
+ else if (reusePages && themeIdentity !== cache.themeIdentity) {
2488
+ const rethemed = (0, report_view_cache_ts_1.rethemeClosedReportPageBytes)(cachedPages, themeCss, static_ts_1.signClosedSiteRevision);
2489
+ if (rethemed === undefined) {
2490
+ revision = yield* buildCliReportSite(request, inputs);
2491
+ pageBytes = (0, report_view_cache_ts_1.closeReportPageBytes)(revision, {
2492
+ selectionIdentity: reportSelectionCacheIdentity(request, inputs),
2493
+ themeIdentity,
2494
+ });
2495
+ }
2496
+ else {
2497
+ revision = rethemed;
2498
+ pageBytes = (0, report_view_cache_ts_1.closeReportPageBytes)(revision, {
2499
+ selectionIdentity: reportSelectionCacheIdentity(request, inputs),
2500
+ themeIdentity,
2501
+ });
2502
+ }
2503
+ }
2504
+ else {
2505
+ revision = yield* buildCliReportSite(request, inputs);
2506
+ pageBytes = (0, report_view_cache_ts_1.closeReportPageBytes)(revision, {
2507
+ selectionIdentity: reportSelectionCacheIdentity(request, inputs),
2508
+ themeIdentity,
2509
+ });
2510
+ }
2511
+ yield* requireKnownReportPage(revision, request.page);
2512
+ cache.revision = revision;
2513
+ cache.pageBytes = pageBytes;
2514
+ cache.watchInputs = inputs.watchInputs;
2515
+ cache.sourceFingerprint = sourceFingerprint;
2516
+ cache.snapshotIdentity = pageBytes?.sampleIdentity ?? snapshotIdentity;
2517
+ cache.pageIdentity = pageBytes === undefined
2518
+ ? undefined
2519
+ : reportPageCacheIdentity(request, inputs, {
2520
+ snapshotIdentity: pageBytes.sampleIdentity,
2521
+ reportInputs: reportInputFingerprint,
2522
+ });
2523
+ cache.themeIdentity = themeIdentity;
2297
2524
  return Object.freeze({
2298
- kind: "execution",
2299
- execution,
2300
- theme: inputs.theme,
2525
+ kind: "site",
2526
+ site: revision,
2301
2527
  watchInputs: inputs.watchInputs,
2302
2528
  });
2303
2529
  }).pipe(effect_1.Effect.catchAll((failure) => {
@@ -2305,6 +2531,144 @@ function rebuildReportView(request) {
2305
2531
  return writeStderr(`view rebuild failed: ${problem.summary}\n`).pipe(effect_1.Effect.zipRight(effect_1.Effect.fail(problem)));
2306
2532
  }));
2307
2533
  }
2534
+ function makeReportViewBuildCache(request, inputs, revision) {
2535
+ return effect_1.Effect.gen(function* () {
2536
+ const [sourceFingerprint, reportInputFingerprint, themeCss] = yield* effect_1.Effect.all([
2537
+ fingerprintReportSourceInputs(inputs.sourceWatchInputs),
2538
+ fingerprintReportSourceInputs(inputs.reportWatchInputs),
2539
+ closeReportThemeStylesheet(inputs.theme),
2540
+ ]);
2541
+ const themeIdentity = reportCacheBytesIdentity(themeCss);
2542
+ const selectionIdentity = reportSelectionCacheIdentity(request, inputs);
2543
+ const pageBytes = (0, report_view_cache_ts_1.closeReportPageBytes)(revision, { selectionIdentity, themeIdentity });
2544
+ const pageIdentity = reportPageCacheIdentity(request, inputs, {
2545
+ snapshotIdentity: pageBytes?.sampleIdentity ?? "",
2546
+ reportInputs: reportInputFingerprint,
2547
+ });
2548
+ return {
2549
+ revision,
2550
+ ...(pageBytes === undefined ? {} : { pageBytes }),
2551
+ watchInputs: inputs.watchInputs,
2552
+ sourceFingerprint,
2553
+ snapshotIdentity: pageBytes?.sampleIdentity ?? "",
2554
+ ...(pageBytes === undefined || pageIdentity === undefined ? {} : { pageIdentity }),
2555
+ themeIdentity,
2556
+ };
2557
+ });
2558
+ }
2559
+ function sameReportInputFingerprint(left, right) {
2560
+ return left.complete && right.complete && left.digest === right.digest;
2561
+ }
2562
+ function reportPageCacheIdentity(request, inputs, input) {
2563
+ if (input.snapshotIdentity.length === 0 || !input.reportInputs.complete)
2564
+ return undefined;
2565
+ return (0, node_crypto_1.createHash)("sha256").update(JSON.stringify([
2566
+ "niceeval.report-page-bytes/v1",
2567
+ static_ts_1.REPORT_STATIC_RENDERER,
2568
+ input.snapshotIdentity,
2569
+ input.reportInputs.digest,
2570
+ (0, execute_ts_1.reportDefinitionIdentity)(inputs.report),
2571
+ reportSelectionCacheIdentity(request, inputs),
2572
+ ])).digest("hex");
2573
+ }
2574
+ function reportCacheBytesIdentity(bytes) {
2575
+ return (0, node_crypto_1.createHash)("sha256").update(bytes).digest("hex");
2576
+ }
2577
+ /** Delegates the exact Theme stylesheet closure to the static Host. */
2578
+ function closeReportThemeStylesheet(theme) {
2579
+ return effect_1.Effect.try({
2580
+ try: () => (0, static_ts_1.closeStaticThemeStylesheet)(theme),
2581
+ catch: (cause) => cliFailure("close Report theme stylesheet", cause),
2582
+ });
2583
+ }
2584
+ /**
2585
+ * The Host owns Record selection, project-current narrowing, and semantic
2586
+ * snapshot construction. This probe deliberately never opens a Sample.
2587
+ */
2588
+ function readReportSnapshotIdentity(request, inputs) {
2589
+ const target = request.target.kind === "attempt"
2590
+ ? Object.freeze({ root: request.root, locator: request.target.locator })
2591
+ : Object.freeze({
2592
+ root: request.root,
2593
+ selection: request.target.kind === "selection"
2594
+ ? request.target.selection
2595
+ : inputs.projectCurrentSelection,
2596
+ });
2597
+ return (0, from_record_ts_1.reportSnapshotIdentityFromRecord)(target).pipe(effect_1.Effect.mapError(reportExecutionFailure));
2598
+ }
2599
+ function reportSelectionCacheIdentity(request, inputs) {
2600
+ const target = request.target.kind === "project-current"
2601
+ ? inputs.projectCurrentSelection
2602
+ : request.target;
2603
+ return (0, node_crypto_1.createHash)("sha256").update(JSON.stringify(target)).digest("hex");
2604
+ }
2605
+ /**
2606
+ * A source-watch signal is only a hint. This digest deliberately excludes the
2607
+ * Record root: selected Record equivalence comes only from the Host-owned
2608
+ * semantic snapshot probe. Links and special files make the result incomplete,
2609
+ * so unprovable input can never produce an exact no-op; a missing optional
2610
+ * path is a complete, watchable source-state observation.
2611
+ */
2612
+ function fingerprintReportSourceInputs(paths) {
2613
+ return effect_1.Effect.tryPromise({
2614
+ try: async () => {
2615
+ const hash = (0, node_crypto_1.createHash)("sha256");
2616
+ const visited = new Set();
2617
+ let complete = true;
2618
+ const visit = async (path) => {
2619
+ const absolute = (0, node_path_1.resolve)(path);
2620
+ if (visited.has(absolute))
2621
+ return;
2622
+ visited.add(absolute);
2623
+ let info;
2624
+ try {
2625
+ info = await (0, promises_1.lstat)(absolute);
2626
+ }
2627
+ catch (cause) {
2628
+ if (typeof cause === "object" && cause !== null && Reflect.get(cause, "code") === "ENOENT") {
2629
+ // An absent optional config/module entry is itself a complete
2630
+ // source-state observation. A later creation emits a watcher
2631
+ // signal and changes this digest.
2632
+ hash.update(`missing\0${absolute}\0`);
2633
+ return;
2634
+ }
2635
+ throw cause;
2636
+ }
2637
+ hash.update(`path\0${absolute}\0`);
2638
+ if (info.isSymbolicLink()) {
2639
+ complete = false;
2640
+ hash.update(`link\0${await (0, promises_1.readlink)(absolute)}\0`);
2641
+ return;
2642
+ }
2643
+ if (info.isFile()) {
2644
+ hash.update("file\0");
2645
+ hash.update(await (0, promises_1.readFile)(absolute));
2646
+ hash.update("\0");
2647
+ return;
2648
+ }
2649
+ if (!info.isDirectory()) {
2650
+ complete = false;
2651
+ hash.update(`opaque\0${info.mode}\0`);
2652
+ return;
2653
+ }
2654
+ hash.update("directory\0");
2655
+ const names = (await (0, promises_1.readdir)(absolute)).sort();
2656
+ for (const name of names)
2657
+ yieldName(hash, name);
2658
+ for (const name of names)
2659
+ await visit((0, node_path_1.join)(absolute, name));
2660
+ };
2661
+ for (const path of [...new Set(paths.map((entry) => (0, node_path_1.resolve)(entry)))].sort()) {
2662
+ await visit(path);
2663
+ }
2664
+ return Object.freeze({ digest: hash.digest("hex"), complete });
2665
+ },
2666
+ catch: (cause) => cliFailure("fingerprint Report source inputs", cause),
2667
+ });
2668
+ }
2669
+ function yieldName(hash, name) {
2670
+ hash.update(`entry\0${name}\0`);
2671
+ }
2308
2672
  function staticExportFailure(error, out) {
2309
2673
  if (failureCode(error) === "report-export-target-exists") {
2310
2674
  return usageError(`report-export-target-exists\nRemove ${out} before retrying.\n`);
@@ -2321,7 +2685,7 @@ function isLoopbackViewHost(host) {
2321
2685
  return host === "127.0.0.1" || host === "::1" || host === "localhost";
2322
2686
  }
2323
2687
  function viewPort(value) {
2324
- const port = value ?? 4173;
2688
+ const port = value ?? 0;
2325
2689
  if (!Number.isInteger(port) || port < 0 || port > 65535) {
2326
2690
  throw usageError(`--port must be an integer from 0 through 65535, got ${port}.\n`);
2327
2691
  }