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
@@ -2,17 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.openViewServer = openViewServer;
4
4
  // The Node view host owns transport and watch lifetime only. Its caller has
5
- // already closed RecordReader -> AnalysisSampleHandle -> executeReport into a
6
- // fixed execution rebuild; this module never reopens a retired Record graph.
5
+ // already closed Record -> Sample -> Report into a fixed execution rebuild;
6
+ // this module never reopens Record facts.
7
7
  const node_fs_1 = require("node:fs");
8
8
  const node_http_1 = require("node:http");
9
9
  const node_os_1 = require("node:os");
10
10
  const node_path_1 = require("node:path");
11
11
  const effect_1 = require("effect");
12
- const identity_ts_1 = require("../report/author/identity.cjs");
13
- const presentation_ts_1 = require("../report/host/presentation.cjs");
12
+ const model_ts_1 = require("../report/execution/model.cjs");
14
13
  const view_session_ts_1 = require("../report/host/view-session.cjs");
15
- const site_ts_1 = require("./site.cjs");
16
14
  const inboxClosed = Object.freeze({ code: "report-view-inbox-closed" });
17
15
  const HTTP_REQUEST_QUEUE_MAX = 128;
18
16
  /**
@@ -120,6 +118,7 @@ class RefreshInbox {
120
118
  */
121
119
  function openViewServer(options = {}) {
122
120
  return effect_1.Effect.gen(function* () {
121
+ const serverScope = yield* effect_1.Effect.scope;
123
122
  if (options.session !== undefined && options.request !== undefined) {
124
123
  return yield* effect_1.Effect.fail(serverError("open", "provide either session or request, not both"));
125
124
  }
@@ -151,7 +150,7 @@ function openViewServer(options = {}) {
151
150
  const advertisedAuthorities = Object.freeze(new Set(urls.map((url) => new URL(url).host)));
152
151
  const watches = yield* effect_1.Effect.acquireRelease(openWatchers(initialWatchInputs, () => resources.refreshes.request()), (value) => closeWatchers(value));
153
152
  yield* effect_1.Effect.forkScoped(effect_1.Effect.forever(effect_1.Effect.flatMap(resources.requests.take(), (request) => serveRequest(session, request, advertisedAuthorities))).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.void)));
154
- yield* effect_1.Effect.forkScoped(effect_1.Effect.forever(effect_1.Effect.flatMap(resources.refreshes.take(), () => refreshSession(session, watches, options.onRebuild))).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.void)));
153
+ yield* effect_1.Effect.forkScoped(effect_1.Effect.forever(effect_1.Effect.flatMap(resources.refreshes.take(), () => registerRefreshIntent(session, watches, options.onRebuild, serverScope))).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.void)));
155
154
  const close = effect_1.Effect.zipRight(closeWatchers(watches), closeResources(resources));
156
155
  return Object.freeze({ url: urls[0], urls, close });
157
156
  });
@@ -220,67 +219,58 @@ function serveRequest(session, request, advertisedAuthorities) {
220
219
  const headers = Object.freeze({
221
220
  "cache-control": "no-store",
222
221
  "x-niceeval-report-revision": String(state.current.revision),
222
+ "x-niceeval-report-content-hash": (0, model_ts_1.closedSiteRevisionData)(state.current.site).identity.contentHash,
223
223
  ...(state.lastProblem === undefined ? {} : { "x-niceeval-last-rebuild-problem": "1" }),
224
224
  });
225
- const hostTextPrefix = state.lastProblem === undefined
226
- ? `Revision ${state.current.revision}\n\n`
227
- : `Revision ${state.current.revision}\nLast rebuild failed: ${state.lastProblem.summary}\n\n`;
228
- if (url.pathname === "/_niceeval/execution.json") {
229
- return effect_1.Effect.flatMap((0, presentation_ts_1.renderReportExecutionJson)({ execution: state.current.execution }), (body) => effect_1.Effect.sync(() => send(request.response, 200, body, "application/json; charset=utf-8", headers)));
230
- }
231
- if (url.pathname === "/_niceeval/problems" || url.pathname === "/_niceeval/problems/") {
232
- return effect_1.Effect.sync(() => send(request.response, 200, (0, site_ts_1.renderHtml)(`${hostTextPrefix}${(0, presentation_ts_1.renderReportExecutionProblemsText)(state.current.execution)}`, state.current.theme), "text/html; charset=utf-8", headers));
233
- }
234
- const download = downloadForPath(url.pathname, state.current.execution);
235
- if (download !== undefined) {
236
- return effect_1.Effect.sync(() => send(request.response, 200, download.bytes, downloadContentType(download.mediaType), {
225
+ // Optional host transport probe. It contains no Report body and does
226
+ // not belong to the content-addressed file mapping. The HTML response
227
+ // below establishes its own served revision through an HttpOnly cookie;
228
+ // after publication this endpoint can report that the browser document
229
+ // is stale without putting revision information into its body bytes.
230
+ if (url.pathname === "/_niceeval/refresh") {
231
+ const servedIdentity = reportRevisionCookieValue(request.request.headers.cookie);
232
+ return effect_1.Effect.sync(() => send(request.response, 204, new Uint8Array(), "text/plain; charset=utf-8", {
237
233
  ...headers,
238
- "content-disposition": "attachment",
239
- "x-content-type-options": "nosniff",
234
+ "x-niceeval-view-stale": servedIdentity === undefined || servedIdentity === (0, model_ts_1.closedSiteRevisionData)(state.current.site).identity.contentHash
235
+ ? "0"
236
+ : "1",
240
237
  }));
241
238
  }
242
- const canonical = canonicalPagePath(url.pathname);
243
- if (canonical !== undefined &&
244
- canonical !== url.pathname &&
245
- pageForPath(canonical, state.current.execution) !== "missing") {
246
- return effect_1.Effect.sync(() => redirect(request.response, canonical, headers));
239
+ const resolved = siteFileForPath(url.pathname, state.current.site);
240
+ if (resolved.state === "redirect") {
241
+ return effect_1.Effect.sync(() => redirect(request.response, resolved.location, headers));
247
242
  }
248
- const page = pageForPath(url.pathname, state.current.execution);
249
- if (page === "missing") {
243
+ if (resolved.state === "missing") {
250
244
  return effect_1.Effect.sync(() => sendText(request.response, 404, url.pathname.startsWith("/downloads/") ? "download not found" : "page not found", headers));
251
245
  }
252
- return effect_1.Effect.sync(() => send(request.response, 200, page === "fallback"
253
- ? (0, site_ts_1.renderHtml)(`${hostTextPrefix}${(0, presentation_ts_1.renderReportExecutionText)({ execution: state.current.execution })}`, state.current.theme)
254
- : (0, site_ts_1.renderHtml)({
255
- document: page.document,
256
- route: page.route,
257
- theme: state.current.theme,
258
- hostMetadata: {
259
- revision: state.current.revision,
260
- ...(state.lastProblem === undefined
261
- ? {}
262
- : { lastRebuildProblem: state.lastProblem.summary }),
263
- },
264
- }), "text/html; charset=utf-8", headers));
246
+ return effect_1.Effect.sync(() => send(request.response, 200, resolved.file.bytes, siteContentType(resolved.file.mediaType), resolved.file.path.startsWith("downloads/")
247
+ ? { ...headers, "content-disposition": "attachment", "x-content-type-options": "nosniff" }
248
+ : resolved.file.mediaType.startsWith("text/html;")
249
+ ? { ...headers, "set-cookie": reportRevisionCookie((0, model_ts_1.closedSiteRevisionData)(state.current.site).identity.contentHash) }
250
+ : headers));
265
251
  }), effect_1.Effect.catchAll(() => effect_1.Effect.sync(() => sendText(request.response, 503, "report view session is closed"))));
266
252
  }
267
- function refreshSession(session, watches, onRebuild) {
253
+ /**
254
+ * Register immediately, then subscribe in a scoped waiter. The refresh inbox
255
+ * can therefore accept a newer intent while this candidate still performs
256
+ * author work; only a published outcome mutates watcher ownership or emits a
257
+ * browser-facing rebuild notification.
258
+ */
259
+ function registerRefreshIntent(session, watches, onRebuild, serverScope) {
268
260
  return effect_1.Effect.gen(function* () {
269
- const before = yield* session.snapshot;
270
- yield* session.refresh;
271
- const after = yield* session.snapshot;
272
- if (after.current.revision <= before.current.revision) {
273
- // Failure kept last-good execution and the prior recoverable watch set.
274
- return;
275
- }
276
- // One successful revision owns one fixed execution and one next-round watch set.
277
- yield* effect_1.Effect.sync(() => replaceWatchInputs(watches, after.current.watchInputs));
278
- if (onRebuild !== undefined) {
279
- yield* effect_1.Effect.try({
280
- try: () => onRebuild(new Date()),
281
- catch: () => undefined,
282
- }).pipe(effect_1.Effect.ignore);
283
- }
261
+ const intent = yield* session.refresh;
262
+ yield* effect_1.Effect.forkIn(intent.outcome.pipe(effect_1.Effect.flatMap((outcome) => outcome.state !== "published"
263
+ ? effect_1.Effect.void
264
+ : effect_1.Effect.gen(function* () {
265
+ // One published revision owns its corresponding successful watch set.
266
+ yield* effect_1.Effect.sync(() => replaceWatchInputs(watches, outcome.revision.watchInputs));
267
+ if (onRebuild !== undefined) {
268
+ yield* effect_1.Effect.try({
269
+ try: () => onRebuild(new Date()),
270
+ catch: () => undefined,
271
+ }).pipe(effect_1.Effect.ignore);
272
+ }
273
+ }))), serverScope);
284
274
  });
285
275
  }
286
276
  function optionWatchInputs(options) {
@@ -517,53 +507,45 @@ function closeServer(server) {
517
507
  return effect_1.Effect.void;
518
508
  });
519
509
  }
520
- function pageForPath(pathname, execution) {
521
- const route = routeForOutputPath(pathname);
522
- if (route === undefined)
523
- return "missing";
524
- const page = execution.pages.find((candidate) => candidate.state === "rendered" && candidate.route === route);
525
- if (page !== undefined)
526
- return page;
527
- return route === "/" ? "fallback" : "missing";
528
- }
529
- function canonicalPagePath(pathname) {
530
- if (routeForOutputPath(pathname) !== undefined)
531
- return pathname;
532
- const direct = (0, identity_ts_1.reportRoute)(pathname);
533
- if (effect_1.Either.isRight(direct) && direct.right !== "/") {
534
- return `${direct.right}/index.html`;
535
- }
536
- if (pathname.endsWith("/") && pathname.length > 1) {
537
- const withoutTrailingSlash = pathname.slice(0, -1);
538
- const parsed = (0, identity_ts_1.reportRoute)(withoutTrailingSlash);
539
- if (effect_1.Either.isRight(parsed))
540
- return `${parsed.right}/index.html`;
510
+ /**
511
+ * Resolves HTTP paths strictly through the current revision's finished file
512
+ * map. There is intentionally no route callback, renderer, Sample, or Record
513
+ * fallback here, so a request can never splice two revisions together.
514
+ */
515
+ function siteFileForPath(pathname, site) {
516
+ if (!pathname.startsWith("/") || pathname.includes("%") || pathname.includes("\\")) {
517
+ return Object.freeze({ state: "missing" });
518
+ }
519
+ const requested = pathname.slice(1);
520
+ const exact = requested === "" ? "index.html" : requested;
521
+ const revision = (0, model_ts_1.closedSiteRevisionData)(site);
522
+ const files = revision.files;
523
+ const direct = files.find((file) => file.path === exact);
524
+ if (direct !== undefined)
525
+ return Object.freeze({ state: "file", file: direct });
526
+ // A report may deliberately declare its first Page at /overview (or another
527
+ // route), so its immutable closure has no root index.html. The advertised
528
+ // root must still land on that revision's canonical entry route rather than
529
+ // becoming a host-generated 404 or re-entering Report execution.
530
+ if (requested === "" && revision.defaultRoute !== undefined) {
531
+ const entryFile = staticPageFileForRoute(revision.defaultRoute);
532
+ if (files.some((file) => file.path === entryFile)) {
533
+ return Object.freeze({ state: "redirect", location: revision.defaultRoute });
534
+ }
541
535
  }
542
- return undefined;
543
- }
544
- function routeForOutputPath(pathname) {
545
- if (pathname === "/" || pathname === "/index.html") {
546
- return (0, identity_ts_1.reportRoute)("/").pipe(effect_1.Either.getOrUndefined);
536
+ // Keep direct Page URLs convenient without manufacturing a different body.
537
+ // The redirect selects the exact generated index.html path from this same map.
538
+ const indexPath = requested.endsWith("/")
539
+ ? `${requested}index.html`
540
+ : `${requested}/index.html`;
541
+ const page = files.find((file) => file.path === indexPath);
542
+ if (page !== undefined) {
543
+ return Object.freeze({ state: "redirect", location: `/${indexPath}` });
547
544
  }
548
- if (!pathname.endsWith("/index.html"))
549
- return undefined;
550
- return (0, identity_ts_1.reportRoute)(pathname.slice(0, -"/index.html".length)).pipe(effect_1.Either.getOrUndefined);
545
+ return Object.freeze({ state: "missing" });
551
546
  }
552
- function downloadForPath(pathname, execution) {
553
- const prefix = "/downloads/";
554
- if (!pathname.startsWith(prefix))
555
- return undefined;
556
- const path = pathname.slice(prefix.length);
557
- if (!(0, identity_ts_1.isReportDownloadPath)(path))
558
- return undefined;
559
- for (const download of execution.downloads) {
560
- if (download.state !== "built")
561
- continue;
562
- const file = download.files.find((candidate) => candidate.path === path);
563
- if (file !== undefined)
564
- return file;
565
- }
566
- return undefined;
547
+ function staticPageFileForRoute(route) {
548
+ return route === "/" ? "index.html" : `${route.slice(1)}/index.html`;
567
549
  }
568
550
  function requestUrl(request) {
569
551
  try {
@@ -573,6 +555,20 @@ function requestUrl(request) {
573
555
  return undefined;
574
556
  }
575
557
  }
558
+ const REPORT_REVISION_COOKIE = "niceeval_report_revision";
559
+ function reportRevisionCookie(contentHash) {
560
+ return `${REPORT_REVISION_COOKIE}=${contentHash}; Path=/; SameSite=Strict; HttpOnly`;
561
+ }
562
+ function reportRevisionCookieValue(cookie) {
563
+ if (cookie === undefined)
564
+ return undefined;
565
+ for (const entry of cookie.split(";")) {
566
+ const [name, ...value] = entry.trim().split("=");
567
+ if (name === REPORT_REVISION_COOKIE)
568
+ return value.join("=");
569
+ }
570
+ return undefined;
571
+ }
576
572
  function sendText(response, status, body, headers = {}) {
577
573
  send(response, status, body, "text/plain; charset=utf-8", headers);
578
574
  }
@@ -589,8 +585,9 @@ function redirect(response, location, headers) {
589
585
  response.end();
590
586
  }
591
587
  const SAFE_MEDIA_TYPE = /^[A-Za-z0-9!#$%&'*+.^_`|~-]+\/[A-Za-z0-9!#$%&'*+.^_`|~-]+$/;
592
- function downloadContentType(mediaType) {
593
- return SAFE_MEDIA_TYPE.test(mediaType) ? mediaType : "application/octet-stream";
588
+ function siteContentType(mediaType) {
589
+ const base = mediaType.split(";", 1)[0]?.trim() ?? "";
590
+ return SAFE_MEDIA_TYPE.test(base) ? base : "application/octet-stream";
594
591
  }
595
592
  function viewUrls(host, port) {
596
593
  if (host === "0.0.0.0") {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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","sourcesContent":["// The Node view host owns transport and watch lifetime only. Its caller has\n// already closed RecordReader -> AnalysisSampleHandle -> executeReport into a\n// fixed execution rebuild; this module never reopens a retired Record graph.\nimport { readdirSync, statSync, watch, type FSWatcher } from \"node:fs\";\nimport { createServer, type IncomingMessage, type Server, type ServerResponse } from \"node:http\";\nimport type { Socket } from \"node:net\";\nimport { networkInterfaces } from \"node:os\";\nimport { basename, dirname, resolve } from \"node:path\";\nimport { Effect, Either } from \"effect\";\nimport type * as Scope from \"effect/Scope\";\nimport { isReportDownloadPath, reportRoute, type ReportRoute, } from \"../report/author/identity.ts\";\nimport type { ReportExecution } from \"../report/execution/model.ts\";\nimport type { ReportPageResult } from \"../report/execution/results.ts\";\nimport { renderReportExecutionJson, renderReportExecutionProblemsText, renderReportExecutionText, } from \"../report/host/presentation.ts\";\nimport { openReportViewSession, type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSessionClosed, type ReportViewSession, } from \"../report/host/view-session.ts\";\nimport type { ThemeDefinition } from \"../report/host/node/theme.ts\";\nimport type { ViewScanOptions } from \"./data.ts\";\nimport { renderHtml } from \"./site.ts\";\nexport interface NodeViewServerError {\n readonly code: \"report-view-server-failed\";\n readonly operation: \"open\" | \"listen\" | \"watch\";\n readonly reason: string;\n}\nexport interface ViewOptions<Requirements = never> {\n readonly input?: string;\n readonly out?: string;\n readonly port?: number;\n /** Defaults to loopback. An explicit address opts into that network exposure. */\n readonly host?: string;\n /** Retained for the CLI-shaped facade; it is never interpreted as Record data. */\n readonly scan?: ViewScanOptions;\n /**\n * Bootstrap watch inputs when the session/request has none yet. After each\n * successful rebuild the session revision owns the next-round watch set.\n */\n readonly watchInputs?: readonly string[];\n readonly onRebuild?: (completedAt: Date) => void;\n /** Static export consumes this exact fixed execution. */\n readonly reportExecution?: ReportExecution;\n /** A one-shot static export Theme; an open session keeps its revision Theme. */\n readonly theme?: ThemeDefinition;\n /** An already-open scoped session owned by the caller. */\n readonly session?: ReportViewSession<Requirements>;\n /** Or let this scope open a session from a caller-supplied current rebuild. */\n readonly request?: OpenReportViewSessionInput<Requirements>;\n}\n/** The native Effect-facing server handle. Its resources are also Scope-owned. */\nexport interface ReportViewServer {\n readonly url: string;\n readonly urls: readonly string[];\n readonly close: Effect.Effect<void>;\n}\nexport type RebuildReason = \"records\" | \"modules\";\ninterface InboxClosed {\n readonly code: \"report-view-inbox-closed\";\n}\nconst inboxClosed: InboxClosed = Object.freeze({ code: \"report-view-inbox-closed\" });\ninterface HttpRequest {\n readonly request: IncomingMessage;\n readonly response: ServerResponse;\n}\ntype RenderedPage = Extract<ReportPageResult, {\n readonly state: \"rendered\";\n}>;\ntype PageLookup = RenderedPage | \"fallback\" | \"missing\";\nconst HTTP_REQUEST_QUEUE_MAX = 128;\n/**\n * A small callback-to-Effect bridge. Node callbacks only enqueue a value; the\n * long-lived scoped Effect performs every session operation, so callbacks do\n * not create private runtimes or invoke `runPromise`/`runSync`.\n */\nclass Inbox<Value> {\n private readonly values: Value[] = [];\n private resume: ((effect: Effect.Effect<Value, InboxClosed>) => void) | undefined;\n private closed = false;\n constructor(private readonly capacity: number) { }\n take(): Effect.Effect<Value, InboxClosed> {\n return Effect.async((resume) => {\n if (this.values.length > 0) {\n resume(Effect.succeed(this.values.shift()!));\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n offer(value: Value): boolean {\n if (this.closed)\n return false;\n const resume = this.resume;\n if (resume === undefined) {\n if (this.values.length >= this.capacity)\n return false;\n this.values.push(value);\n return true;\n }\n this.resume = undefined;\n resume(Effect.succeed(value));\n return true;\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\n/** Coalesces a burst of filesystem events into sequential refresh requests. */\nclass RefreshInbox {\n private pending = false;\n private resume: ((effect: Effect.Effect<void, InboxClosed>) => void) | undefined;\n private closed = false;\n take(): Effect.Effect<void, InboxClosed> {\n return Effect.async((resume) => {\n if (this.pending) {\n this.pending = false;\n resume(Effect.void);\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n request(): void {\n if (this.closed)\n return;\n const resume = this.resume;\n if (resume === undefined) {\n this.pending = true;\n return;\n }\n this.resume = undefined;\n resume(Effect.void);\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\ninterface ServerResources {\n readonly server: Server;\n readonly sockets: Set<Socket>;\n readonly requests: Inbox<HttpRequest>;\n readonly refreshes: RefreshInbox;\n closed: boolean;\n}\ninterface WatchResources {\n /** The one currently published watcher closure. */\n current: WatchSet;\n /** Stable refresh request callback for the current server lifetime. */\n onChange: () => void;\n closed: boolean;\n}\n/**\n * A complete watcher closure. A candidate stays `opening` until every watch\n * for its current directory tree has opened. Callbacks test both this state\n * and the owning resource's current reference, so an old or failed candidate\n * cannot enqueue a late rebuild.\n */\ninterface WatchSet {\n readonly inputs: readonly string[];\n readonly watchers: Map<string, FSWatcher>;\n state: \"opening\" | \"active\" | \"closed\";\n}\n/**\n * Opens a real HTTP server, defaulting to loopback. A watcher event only requests\n * `session.refresh`; the session serializes rebuild and close, preserves the\n * last good immutable execution and recoverable watch set, and publishes a new\n * revision only on success. The Node server then atomically replaces its\n * fs.watch resources from that revision's watchInputs.\n */\nexport function openViewServer<Requirements>(options: ViewOptions<Requirements> = {}): Effect.Effect<ReportViewServer, NodeViewServerError | ReportViewOpenError, Scope.Scope | Requirements> {\n return Effect.gen(function* () {\n if (options.session !== undefined && options.request !== undefined) {\n return yield* Effect.fail(serverError(\"open\", \"provide either session or request, not both\"));\n }\n const host = (options.host ?? \"127.0.0.1\").trim();\n if (host.length === 0) {\n return yield* Effect.fail(serverError(\"open\", \"view host must not be empty\"));\n }\n if (host.includes(\"%\")) {\n return yield* Effect.fail(serverError(\"open\", \"scoped IPv6 view hosts are not supported\"));\n }\n const port = options.port ?? 0;\n if (!Number.isInteger(port) || port < 0 || port > 65535) {\n return yield* Effect.fail(serverError(\"open\", `view port must be an integer from 0 through 65535, got ${port}`));\n }\n const session = options.session ?? (options.request === undefined\n ? yield* Effect.fail(serverError(\"open\", \"view needs a scoped ReportViewSession or current rebuild request\"))\n : yield* openReportViewSession({\n ...options.request,\n // Bootstrap the opening revision when the request omitted a watch set.\n watchInputs: options.request.watchInputs ?? optionWatchInputs(options),\n }));\n const opening = yield* session.snapshot.pipe(Effect.mapError(() => serverError(\"open\", \"report view session closed before watchers opened\")));\n const initialWatchInputs = opening.current.watchInputs.length > 0\n ? opening.current.watchInputs\n : optionWatchInputs(options);\n const resources = yield* Effect.acquireRelease(Effect.sync(() => makeResources()), (value) => closeResources(value));\n const address = yield* listen(resources.server, host, port);\n const urls = viewUrls(host, address.port);\n const advertisedAuthorities = Object.freeze(new Set(urls.map((url) => new URL(url).host)));\n const watches = yield* Effect.acquireRelease(openWatchers(initialWatchInputs, () => resources.refreshes.request()), (value) => closeWatchers(value));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.requests.take(), (request) => serveRequest(session, request, advertisedAuthorities))).pipe(Effect.catchAll(() => Effect.void)));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.refreshes.take(), () => refreshSession(session, watches, options.onRebuild))).pipe(Effect.catchAll(() => Effect.void)));\n const close = Effect.zipRight(closeWatchers(watches), closeResources(resources));\n return Object.freeze({ url: urls[0]!, urls, close });\n });\n}\nfunction makeResources(): ServerResources {\n const requests = new Inbox<HttpRequest>(HTTP_REQUEST_QUEUE_MAX);\n const refreshes = new RefreshInbox();\n const sockets = new Set<Socket>();\n const server = createServer((request, response) => {\n if (!requests.offer(Object.freeze({ request, response }))) {\n sendText(response, 503, \"report view is busy; retry shortly\");\n }\n });\n server.on(\"connection\", (socket) => {\n sockets.add(socket);\n socket.once(\"close\", () => sockets.delete(socket));\n });\n return { server, sockets, requests, refreshes, closed: false };\n}\nfunction listen(server: Server, host: string, port: number): Effect.Effect<{\n readonly host: string;\n readonly port: number;\n}, NodeViewServerError> {\n return Effect.async((resume) => {\n const cleanup = (): void => {\n server.off(\"error\", onError);\n server.off(\"listening\", onListening);\n };\n const onError = (error: Error): void => {\n cleanup();\n resume(Effect.fail(serverError(\"listen\", error.message)));\n };\n const onListening = (): void => {\n cleanup();\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n resume(Effect.fail(serverError(\"listen\", \"server did not expose a TCP address\")));\n return;\n }\n resume(Effect.succeed(Object.freeze({ host: address.address, port: address.port })));\n };\n server.once(\"error\", onError);\n server.once(\"listening\", onListening);\n try {\n server.listen({ host, port });\n }\n catch (error) {\n onError(asError(error));\n }\n return Effect.sync(() => cleanup());\n });\n}\nfunction serveRequest<Requirements>(session: ReportViewSession<Requirements>, request: HttpRequest, advertisedAuthorities: ReadonlySet<string>): Effect.Effect<void> {\n const authority = requestAuthority(request.request.headers.host);\n if (authority === undefined || !advertisedAuthorities.has(authority)) {\n return Effect.sync(() => sendText(request.response, 421, \"view host is not advertised\"));\n }\n if (request.request.method !== \"GET\" && request.request.method !== \"HEAD\") {\n return Effect.sync(() => sendText(request.response, 405, \"method not allowed\", { allow: \"GET, HEAD\" }));\n }\n const url = requestUrl(request.request);\n if (url === undefined) {\n return Effect.sync(() => sendText(request.response, 400, \"bad request\"));\n }\n if (url.pathname === \"/healthz\") {\n return Effect.sync(() => sendText(request.response, 200, \"ok\"));\n }\n return session.snapshot.pipe(Effect.flatMap((state) => {\n const headers = Object.freeze({\n \"cache-control\": \"no-store\",\n \"x-niceeval-report-revision\": String(state.current.revision),\n ...(state.lastProblem === undefined ? {} : { \"x-niceeval-last-rebuild-problem\": \"1\" }),\n });\n const hostTextPrefix = state.lastProblem === undefined\n ? `Revision ${state.current.revision}\\n\\n`\n : `Revision ${state.current.revision}\\nLast rebuild failed: ${state.lastProblem.summary}\\n\\n`;\n if (url.pathname === \"/_niceeval/execution.json\") {\n return Effect.flatMap(renderReportExecutionJson({ execution: state.current.execution }), (body) => Effect.sync(() => send(request.response, 200, body, \"application/json; charset=utf-8\", headers)));\n }\n if (url.pathname === \"/_niceeval/problems\" || url.pathname === \"/_niceeval/problems/\") {\n return Effect.sync(() => send(request.response, 200, renderHtml(`${hostTextPrefix}${renderReportExecutionProblemsText(state.current.execution)}`, state.current.theme), \"text/html; charset=utf-8\", headers));\n }\n const download = downloadForPath(url.pathname, state.current.execution);\n if (download !== undefined) {\n return Effect.sync(() => send(request.response, 200, download.bytes, downloadContentType(download.mediaType), {\n ...headers,\n \"content-disposition\": \"attachment\",\n \"x-content-type-options\": \"nosniff\",\n }));\n }\n const canonical = canonicalPagePath(url.pathname);\n if (canonical !== undefined &&\n canonical !== url.pathname &&\n pageForPath(canonical, state.current.execution) !== \"missing\") {\n return Effect.sync(() => redirect(request.response, canonical, headers));\n }\n const page = pageForPath(url.pathname, state.current.execution);\n if (page === \"missing\") {\n return Effect.sync(() => sendText(request.response, 404, url.pathname.startsWith(\"/downloads/\") ? \"download not found\" : \"page not found\", headers));\n }\n return Effect.sync(() => send(request.response, 200, page === \"fallback\"\n ? renderHtml(`${hostTextPrefix}${renderReportExecutionText({ execution: state.current.execution })}`, state.current.theme)\n : renderHtml({\n document: page.document,\n route: page.route,\n theme: state.current.theme,\n hostMetadata: {\n revision: state.current.revision,\n ...(state.lastProblem === undefined\n ? {}\n : { lastRebuildProblem: state.lastProblem.summary }),\n },\n }), \"text/html; charset=utf-8\", headers));\n }), Effect.catchAll(() => Effect.sync(() => sendText(request.response, 503, \"report view session is closed\"))));\n}\nfunction refreshSession<Requirements>(session: ReportViewSession<Requirements>, watches: WatchResources, onRebuild: ViewOptions[\"onRebuild\"]): Effect.Effect<void, ReportViewSessionClosed, Requirements> {\n return Effect.gen(function* () {\n const before = yield* session.snapshot;\n yield* session.refresh;\n const after = yield* session.snapshot;\n if (after.current.revision <= before.current.revision) {\n // Failure kept last-good execution and the prior recoverable watch set.\n return;\n }\n // One successful revision owns one fixed execution and one next-round watch set.\n yield* Effect.sync(() => replaceWatchInputs(watches, after.current.watchInputs));\n if (onRebuild !== undefined) {\n yield* Effect.try({\n try: () => onRebuild(new Date()),\n catch: () => undefined,\n }).pipe(Effect.ignore);\n }\n });\n}\nfunction optionWatchInputs<Requirements>(options: ViewOptions<Requirements>): readonly string[] {\n const values = options.watchInputs ?? [];\n return Object.freeze([...new Set(values.map((value) => resolve(value)))]);\n}\nfunction openWatchers(inputs: readonly string[], onChange: () => void): Effect.Effect<WatchResources, NodeViewServerError> {\n return Effect.try({\n try: () => {\n const resources: WatchResources = {\n current: closedWatchSet(),\n onChange,\n closed: false,\n };\n try {\n const opening = openWatchSet(resources, inputs);\n publishWatchSet(resources, opening);\n return resources;\n }\n catch (error) {\n closeWatchSet(resources.current);\n throw error;\n }\n },\n catch: (error): NodeViewServerError => serverError(\"watch\", asError(error).message),\n });\n}\n/**\n * Atomically swaps the next-round watch set after a successful revision. Failure\n * paths never call this, so last-good entry edges remain recoverable.\n */\nfunction replaceWatchInputs(resources: WatchResources, inputs: readonly string[]): void {\n if (resources.closed)\n return;\n try {\n const opening = openWatchSet(resources, inputs);\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n // No Effect boundary or callback can interleave this publication: the\n // replacement is entirely synchronous after the candidate validated.\n publishWatchSet(resources, opening);\n }\n catch {\n // A transient directory race must not discard the previous recoverable\n // closure. The next filesystem hint retries full reconciliation.\n }\n}\nfunction closedWatchSet(): WatchSet {\n return {\n inputs: Object.freeze([]),\n watchers: new Map(),\n state: \"closed\",\n };\n}\n/**\n * Opens a whole candidate closure without touching the published set. This is\n * also the full reconciliation path for directory-tree changes: fs.watch is a\n * hint, so every event rescans all inputs before requesting a rebuild.\n */\nfunction openWatchSet(resources: WatchResources, inputs: readonly string[]): WatchSet {\n const watchSet: WatchSet = {\n inputs: normalizeWatchInputs(inputs),\n watchers: new Map(),\n state: \"opening\",\n };\n try {\n synchronizeWatchSet(resources, watchSet);\n return watchSet;\n }\n catch (error) {\n closeWatchSet(watchSet);\n throw error;\n }\n}\n/** Watch the Record root and its current Run directories without a polling loop. */\nfunction synchronizeWatchSet(resources: WatchResources, watchSet: WatchSet): void {\n for (const input of watchSet.inputs) {\n let inputIsDirectory: boolean;\n try {\n inputIsDirectory = statSync(input).isDirectory();\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n // A missing config / module / Record root remains observable through its\n // parent directory. It can appear later without restarting the host.\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n continue;\n }\n if (inputIsDirectory) {\n watchDirectoryTree(resources, watchSet, input, 0);\n }\n else {\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n }\n }\n}\nfunction normalizeWatchInputs(inputs: readonly string[]): readonly string[] {\n return Object.freeze([...new Set(inputs.map((input) => resolve(input)))].sort());\n}\nconst WATCH_DIRECTORY_DEPTH_MAX = 4;\nfunction watchDirectoryTree(resources: WatchResources, watchSet: WatchSet, directory: string, depth: number): void {\n try {\n watchDirectory(resources, watchSet, directory);\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n if (depth >= WATCH_DIRECTORY_DEPTH_MAX)\n return;\n let entries: readonly {\n readonly name: string;\n isDirectory(): boolean;\n }[];\n try {\n entries = readdirSync(directory, { withFileTypes: true });\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n for (const entry of entries) {\n if (entry.isDirectory()) {\n watchDirectoryTree(resources, watchSet, resolve(directory, entry.name), depth + 1);\n }\n }\n}\nfunction watchDirectory(resources: WatchResources, watchSet: WatchSet, directory: string): void {\n const key = `directory:${directory}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, () => watchSetChanged(resources, watchSet));\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchNamedInput(resources: WatchResources, watchSet: WatchSet, directory: string, name: string): void {\n const key = `named:${directory}:${name}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, (_event, filename) => {\n if (filename === null || filename.toString() === name)\n watchSetChanged(resources, watchSet);\n });\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchFailure(resources: WatchResources, watchSet: WatchSet, key: string, watcher: FSWatcher): void {\n watcher.once(\"error\", () => {\n if (watchSet.watchers.get(key) === watcher) {\n watchSet.watchers.delete(key);\n closeWatcher(watcher);\n }\n watchSetChanged(resources, watchSet);\n });\n}\nfunction watchSetChanged(resources: WatchResources, watchSet: WatchSet): void {\n if (!isCurrentWatchSet(resources, watchSet))\n return;\n // A new Run gets its own directory before its completion marker. Reconcile\n // the whole closure now so the marker change is observed as well as the\n // first incomplete rebuild. Failure leaves this complete old set active.\n replaceWatchInputs(resources, watchSet.inputs);\n if (isCurrentWatchSet(resources, resources.current))\n resources.onChange();\n}\nfunction isCurrentWatchSet(resources: WatchResources, watchSet: WatchSet): boolean {\n return !resources.closed && resources.current === watchSet && watchSet.state === \"active\";\n}\n/** Publishes a fully opened candidate, then retires the old closure synchronously. */\nfunction publishWatchSet(resources: WatchResources, opening: WatchSet): void {\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n const previous = resources.current;\n opening.state = \"active\";\n resources.current = opening;\n closeWatchSet(previous);\n}\nfunction closeWatchSet(watchSet: WatchSet): void {\n if (watchSet.state === \"closed\")\n return;\n watchSet.state = \"closed\";\n const watchers = [...watchSet.watchers.values()];\n watchSet.watchers.clear();\n for (const watcher of watchers)\n closeWatcher(watcher);\n}\nfunction closeWatcher(watcher: FSWatcher): void {\n try {\n watcher.close();\n }\n catch {\n // Closing is best-effort and idempotent at the Node boundary.\n }\n}\nfunction closeResources(resources: ServerResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.zipRight(Effect.sync(() => {\n resources.requests.close();\n resources.refreshes.close();\n for (const socket of resources.sockets)\n socket.destroy();\n }), closeServer(resources.server));\n });\n}\nfunction closeWatchers(resources: WatchResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.sync(() => closeWatchSet(resources.current));\n });\n}\nfunction closeServer(server: Server): Effect.Effect<void> {\n return Effect.async((resume) => {\n if (!server.listening) {\n resume(Effect.void);\n return Effect.void;\n }\n try {\n server.close(() => resume(Effect.void));\n }\n catch {\n resume(Effect.void);\n }\n return Effect.void;\n });\n}\nfunction pageForPath(pathname: string, execution: ReportExecution): PageLookup {\n const route = routeForOutputPath(pathname);\n if (route === undefined)\n return \"missing\";\n const page = execution.pages.find((candidate): candidate is RenderedPage => candidate.state === \"rendered\" && candidate.route === route);\n if (page !== undefined)\n return page;\n return route === \"/\" ? \"fallback\" : \"missing\";\n}\nfunction canonicalPagePath(pathname: string): string | undefined {\n if (routeForOutputPath(pathname) !== undefined)\n return pathname;\n const direct = reportRoute(pathname);\n if (Either.isRight(direct) && direct.right !== \"/\") {\n return `${direct.right}/index.html`;\n }\n if (pathname.endsWith(\"/\") && pathname.length > 1) {\n const withoutTrailingSlash = pathname.slice(0, -1);\n const parsed = reportRoute(withoutTrailingSlash);\n if (Either.isRight(parsed))\n return `${parsed.right}/index.html`;\n }\n return undefined;\n}\nfunction routeForOutputPath(pathname: string): ReportRoute | undefined {\n if (pathname === \"/\" || pathname === \"/index.html\") {\n return reportRoute(\"/\").pipe(Either.getOrUndefined);\n }\n if (!pathname.endsWith(\"/index.html\"))\n return undefined;\n return reportRoute(pathname.slice(0, -\"/index.html\".length)).pipe(Either.getOrUndefined);\n}\nfunction downloadForPath(pathname: string, execution: ReportExecution): {\n readonly bytes: Uint8Array;\n readonly mediaType: string;\n} | undefined {\n const prefix = \"/downloads/\";\n if (!pathname.startsWith(prefix))\n return undefined;\n const path = pathname.slice(prefix.length);\n if (!isReportDownloadPath(path))\n return undefined;\n for (const download of execution.downloads) {\n if (download.state !== \"built\")\n continue;\n const file = download.files.find((candidate) => candidate.path === path);\n if (file !== undefined)\n return file;\n }\n return undefined;\n}\nfunction requestUrl(request: IncomingMessage): URL | undefined {\n try {\n return new URL(request.url ?? \"/\", \"http://127.0.0.1\");\n }\n catch {\n return undefined;\n }\n}\nfunction sendText(response: ServerResponse, status: number, body: string, headers: Readonly<Record<string, string>> = {}): void {\n send(response, status, body, \"text/plain; charset=utf-8\", headers);\n}\nfunction send(response: ServerResponse, status: number, body: string | Uint8Array, contentType: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(status, { \"content-type\": contentType, ...headers });\n response.end(body);\n}\nfunction redirect(response: ServerResponse, location: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(308, { location, ...headers });\n response.end();\n}\nconst SAFE_MEDIA_TYPE = /^[A-Za-z0-9!#$%&'*+.^_`|~-]+\\/[A-Za-z0-9!#$%&'*+.^_`|~-]+$/;\nfunction downloadContentType(mediaType: string): string {\n return SAFE_MEDIA_TYPE.test(mediaType) ? mediaType : \"application/octet-stream\";\n}\nfunction viewUrls(host: string, port: number): readonly string[] {\n if (host === \"0.0.0.0\") {\n return urlsForAddresses([\n \"127.0.0.1\",\n ...interfaceAddresses(\"IPv4\"),\n ], port);\n }\n if (host === \"::\") {\n return urlsForAddresses([\n \"::1\",\n ...interfaceAddresses(\"IPv6\"),\n ], port);\n }\n return Object.freeze([viewUrl(host, port)]);\n}\nfunction interfaceAddresses(family: \"IPv4\" | \"IPv6\"): readonly string[] {\n const addresses: string[] = [];\n for (const entries of Object.values(networkInterfaces())) {\n for (const entry of entries ?? []) {\n if (entry.family === family &&\n !entry.internal &&\n !entry.address.includes(\"%\") &&\n (family !== \"IPv6\" || entry.scopeid === 0)) {\n addresses.push(entry.address);\n }\n }\n }\n return addresses.sort((left, right) => left.localeCompare(right));\n}\nfunction urlsForAddresses(addresses: readonly string[], port: number): readonly string[] {\n return Object.freeze([...new Set(addresses)].map((address) => viewUrl(address, port)));\n}\nfunction viewUrl(host: string, port: number): string {\n return new URL(`http://${formatHost(host)}:${port}/`).toString();\n}\nfunction requestAuthority(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n try {\n const url = new URL(`http://${value}`);\n if (url.username.length > 0 || url.password.length > 0)\n return undefined;\n return url.host;\n }\n catch {\n return undefined;\n }\n}\nfunction formatHost(host: string): string {\n return host.includes(\":\") ? `[${host}]` : host;\n}\nfunction serverError(operation: NodeViewServerError[\"operation\"], reason: string): NodeViewServerError {\n return Object.freeze({ code: \"report-view-server-failed\", operation, reason });\n}\nfunction asError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\nfunction isMissingPath(error: unknown): boolean {\n if (typeof error !== \"object\" || error === null)\n return false;\n const code = Reflect.get(error, \"code\");\n return code === \"ENOENT\" || code === \"ENOTDIR\";\n}\n"]}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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","sourcesContent":["// The Node view host owns transport and watch lifetime only. Its caller has\n// already closed Record -> Sample -> Report into a fixed execution rebuild;\n// this module never reopens Record facts.\nimport { readdirSync, statSync, watch, type FSWatcher } from \"node:fs\";\nimport { createServer, type IncomingMessage, type Server, type ServerResponse } from \"node:http\";\nimport type { Socket } from \"node:net\";\nimport { networkInterfaces } from \"node:os\";\nimport { basename, dirname, resolve } from \"node:path\";\nimport { Effect } from \"effect\";\nimport type * as Scope from \"effect/Scope\";\nimport { closedSiteRevisionData, type ClosedSiteFile, type ClosedSiteRevision, } from \"../report/execution/model.ts\";\nimport { openReportViewSession, type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSessionClosed, type ReportViewSession, } from \"../report/host/view-session.ts\";\nimport type { ViewScanOptions } from \"./data.ts\";\nexport interface NodeViewServerError {\n readonly code: \"report-view-server-failed\";\n readonly operation: \"open\" | \"listen\" | \"watch\";\n readonly reason: string;\n}\nexport interface ViewOptions<Requirements = never> {\n readonly input?: string;\n readonly out?: string;\n readonly port?: number;\n /** Defaults to loopback. An explicit address opts into that network exposure. */\n readonly host?: string;\n /** Retained for the CLI-shaped facade; it is never interpreted as Record data. */\n readonly scan?: ViewScanOptions;\n /**\n * Bootstrap watch inputs when the session/request has none yet. After each\n * successful rebuild the session revision owns the next-round watch set.\n */\n readonly watchInputs?: readonly string[];\n readonly onRebuild?: (completedAt: Date) => void;\n /** An already-open scoped session owned by the caller. */\n readonly session?: ReportViewSession<Requirements>;\n /** Or let this scope open a session from a caller-supplied current rebuild. */\n readonly request?: OpenReportViewSessionInput<Requirements>;\n}\n/** The native Effect-facing server handle. Its resources are also Scope-owned. */\nexport interface ReportViewServer {\n readonly url: string;\n readonly urls: readonly string[];\n readonly close: Effect.Effect<void>;\n}\nexport type RebuildReason = \"records\" | \"modules\";\ninterface InboxClosed {\n readonly code: \"report-view-inbox-closed\";\n}\nconst inboxClosed: InboxClosed = Object.freeze({ code: \"report-view-inbox-closed\" });\ninterface HttpRequest {\n readonly request: IncomingMessage;\n readonly response: ServerResponse;\n}\nconst HTTP_REQUEST_QUEUE_MAX = 128;\n/**\n * A small callback-to-Effect bridge. Node callbacks only enqueue a value; the\n * long-lived scoped Effect performs every session operation, so callbacks do\n * not create private runtimes or invoke `runPromise`/`runSync`.\n */\nclass Inbox<Value> {\n private readonly values: Value[] = [];\n private resume: ((effect: Effect.Effect<Value, InboxClosed>) => void) | undefined;\n private closed = false;\n constructor(private readonly capacity: number) { }\n take(): Effect.Effect<Value, InboxClosed> {\n return Effect.async((resume) => {\n if (this.values.length > 0) {\n resume(Effect.succeed(this.values.shift()!));\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n offer(value: Value): boolean {\n if (this.closed)\n return false;\n const resume = this.resume;\n if (resume === undefined) {\n if (this.values.length >= this.capacity)\n return false;\n this.values.push(value);\n return true;\n }\n this.resume = undefined;\n resume(Effect.succeed(value));\n return true;\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\n/** Coalesces a burst of filesystem events into sequential refresh requests. */\nclass RefreshInbox {\n private pending = false;\n private resume: ((effect: Effect.Effect<void, InboxClosed>) => void) | undefined;\n private closed = false;\n take(): Effect.Effect<void, InboxClosed> {\n return Effect.async((resume) => {\n if (this.pending) {\n this.pending = false;\n resume(Effect.void);\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n request(): void {\n if (this.closed)\n return;\n const resume = this.resume;\n if (resume === undefined) {\n this.pending = true;\n return;\n }\n this.resume = undefined;\n resume(Effect.void);\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\ninterface ServerResources {\n readonly server: Server;\n readonly sockets: Set<Socket>;\n readonly requests: Inbox<HttpRequest>;\n readonly refreshes: RefreshInbox;\n closed: boolean;\n}\ninterface WatchResources {\n /** The one currently published watcher closure. */\n current: WatchSet;\n /** Stable refresh request callback for the current server lifetime. */\n onChange: () => void;\n closed: boolean;\n}\n/**\n * A complete watcher closure. A candidate stays `opening` until every watch\n * for its current directory tree has opened. Callbacks test both this state\n * and the owning resource's current reference, so an old or failed candidate\n * cannot enqueue a late rebuild.\n */\ninterface WatchSet {\n readonly inputs: readonly string[];\n readonly watchers: Map<string, FSWatcher>;\n state: \"opening\" | \"active\" | \"closed\";\n}\n/**\n * Opens a real HTTP server, defaulting to loopback. A watcher event only requests\n * `session.refresh`; the session serializes rebuild and close, preserves the\n * last good immutable execution and recoverable watch set, and publishes a new\n * revision only on success. The Node server then atomically replaces its\n * fs.watch resources from that revision's watchInputs.\n */\nexport function openViewServer<Requirements>(options: ViewOptions<Requirements> = {}): Effect.Effect<ReportViewServer, NodeViewServerError | ReportViewOpenError, Scope.Scope | Requirements> {\n return Effect.gen(function* () {\n const serverScope = yield* Effect.scope;\n if (options.session !== undefined && options.request !== undefined) {\n return yield* Effect.fail(serverError(\"open\", \"provide either session or request, not both\"));\n }\n const host = (options.host ?? \"127.0.0.1\").trim();\n if (host.length === 0) {\n return yield* Effect.fail(serverError(\"open\", \"view host must not be empty\"));\n }\n if (host.includes(\"%\")) {\n return yield* Effect.fail(serverError(\"open\", \"scoped IPv6 view hosts are not supported\"));\n }\n const port = options.port ?? 0;\n if (!Number.isInteger(port) || port < 0 || port > 65535) {\n return yield* Effect.fail(serverError(\"open\", `view port must be an integer from 0 through 65535, got ${port}`));\n }\n const session = options.session ?? (options.request === undefined\n ? yield* Effect.fail(serverError(\"open\", \"view needs a scoped ReportViewSession or current rebuild request\"))\n : yield* openReportViewSession({\n ...options.request,\n // Bootstrap the opening revision when the request omitted a watch set.\n watchInputs: options.request.watchInputs ?? optionWatchInputs(options),\n }));\n const opening = yield* session.snapshot.pipe(Effect.mapError(() => serverError(\"open\", \"report view session closed before watchers opened\")));\n const initialWatchInputs = opening.current.watchInputs.length > 0\n ? opening.current.watchInputs\n : optionWatchInputs(options);\n const resources = yield* Effect.acquireRelease(Effect.sync(() => makeResources()), (value) => closeResources(value));\n const address = yield* listen(resources.server, host, port);\n const urls = viewUrls(host, address.port);\n const advertisedAuthorities = Object.freeze(new Set(urls.map((url) => new URL(url).host)));\n const watches = yield* Effect.acquireRelease(openWatchers(initialWatchInputs, () => resources.refreshes.request()), (value) => closeWatchers(value));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.requests.take(), (request) => serveRequest(session, request, advertisedAuthorities))).pipe(Effect.catchAll(() => Effect.void)));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.refreshes.take(), () => registerRefreshIntent(session, watches, options.onRebuild, serverScope))).pipe(Effect.catchAll(() => Effect.void)));\n const close = Effect.zipRight(closeWatchers(watches), closeResources(resources));\n return Object.freeze({ url: urls[0]!, urls, close });\n });\n}\nfunction makeResources(): ServerResources {\n const requests = new Inbox<HttpRequest>(HTTP_REQUEST_QUEUE_MAX);\n const refreshes = new RefreshInbox();\n const sockets = new Set<Socket>();\n const server = createServer((request, response) => {\n if (!requests.offer(Object.freeze({ request, response }))) {\n sendText(response, 503, \"report view is busy; retry shortly\");\n }\n });\n server.on(\"connection\", (socket) => {\n sockets.add(socket);\n socket.once(\"close\", () => sockets.delete(socket));\n });\n return { server, sockets, requests, refreshes, closed: false };\n}\nfunction listen(server: Server, host: string, port: number): Effect.Effect<{\n readonly host: string;\n readonly port: number;\n}, NodeViewServerError> {\n return Effect.async((resume) => {\n const cleanup = (): void => {\n server.off(\"error\", onError);\n server.off(\"listening\", onListening);\n };\n const onError = (error: Error): void => {\n cleanup();\n resume(Effect.fail(serverError(\"listen\", error.message)));\n };\n const onListening = (): void => {\n cleanup();\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n resume(Effect.fail(serverError(\"listen\", \"server did not expose a TCP address\")));\n return;\n }\n resume(Effect.succeed(Object.freeze({ host: address.address, port: address.port })));\n };\n server.once(\"error\", onError);\n server.once(\"listening\", onListening);\n try {\n server.listen({ host, port });\n }\n catch (error) {\n onError(asError(error));\n }\n return Effect.sync(() => cleanup());\n });\n}\nfunction serveRequest<Requirements>(session: ReportViewSession<Requirements>, request: HttpRequest, advertisedAuthorities: ReadonlySet<string>): Effect.Effect<void> {\n const authority = requestAuthority(request.request.headers.host);\n if (authority === undefined || !advertisedAuthorities.has(authority)) {\n return Effect.sync(() => sendText(request.response, 421, \"view host is not advertised\"));\n }\n if (request.request.method !== \"GET\" && request.request.method !== \"HEAD\") {\n return Effect.sync(() => sendText(request.response, 405, \"method not allowed\", { allow: \"GET, HEAD\" }));\n }\n const url = requestUrl(request.request);\n if (url === undefined) {\n return Effect.sync(() => sendText(request.response, 400, \"bad request\"));\n }\n if (url.pathname === \"/healthz\") {\n return Effect.sync(() => sendText(request.response, 200, \"ok\"));\n }\n return session.snapshot.pipe(Effect.flatMap((state) => {\n const headers = Object.freeze({\n \"cache-control\": \"no-store\",\n \"x-niceeval-report-revision\": String(state.current.revision),\n \"x-niceeval-report-content-hash\": closedSiteRevisionData(state.current.site).identity.contentHash,\n ...(state.lastProblem === undefined ? {} : { \"x-niceeval-last-rebuild-problem\": \"1\" }),\n });\n // Optional host transport probe. It contains no Report body and does\n // not belong to the content-addressed file mapping. The HTML response\n // below establishes its own served revision through an HttpOnly cookie;\n // after publication this endpoint can report that the browser document\n // is stale without putting revision information into its body bytes.\n if (url.pathname === \"/_niceeval/refresh\") {\n const servedIdentity = reportRevisionCookieValue(request.request.headers.cookie);\n return Effect.sync(() => send(request.response, 204, new Uint8Array(), \"text/plain; charset=utf-8\", {\n ...headers,\n \"x-niceeval-view-stale\": servedIdentity === undefined || servedIdentity === closedSiteRevisionData(state.current.site).identity.contentHash\n ? \"0\"\n : \"1\",\n }));\n }\n const resolved = siteFileForPath(url.pathname, state.current.site);\n if (resolved.state === \"redirect\") {\n return Effect.sync(() => redirect(request.response, resolved.location, headers));\n }\n if (resolved.state === \"missing\") {\n return Effect.sync(() => sendText(request.response, 404, url.pathname.startsWith(\"/downloads/\") ? \"download not found\" : \"page not found\", headers));\n }\n return Effect.sync(() => send(request.response, 200, resolved.file.bytes, siteContentType(resolved.file.mediaType), resolved.file.path.startsWith(\"downloads/\")\n ? { ...headers, \"content-disposition\": \"attachment\", \"x-content-type-options\": \"nosniff\" }\n : resolved.file.mediaType.startsWith(\"text/html;\")\n ? { ...headers, \"set-cookie\": reportRevisionCookie(closedSiteRevisionData(state.current.site).identity.contentHash) }\n : headers));\n }), Effect.catchAll(() => Effect.sync(() => sendText(request.response, 503, \"report view session is closed\"))));\n}\n/**\n * Register immediately, then subscribe in a scoped waiter. The refresh inbox\n * can therefore accept a newer intent while this candidate still performs\n * author work; only a published outcome mutates watcher ownership or emits a\n * browser-facing rebuild notification.\n */\nfunction registerRefreshIntent<Requirements>(session: ReportViewSession<Requirements>, watches: WatchResources, onRebuild: ViewOptions[\"onRebuild\"], serverScope: Scope.Scope): Effect.Effect<void, ReportViewSessionClosed, Requirements> {\n return Effect.gen(function* () {\n const intent = yield* session.refresh;\n yield* Effect.forkIn(intent.outcome.pipe(Effect.flatMap((outcome) => outcome.state !== \"published\"\n ? Effect.void\n : Effect.gen(function* () {\n // One published revision owns its corresponding successful watch set.\n yield* Effect.sync(() => replaceWatchInputs(watches, outcome.revision.watchInputs));\n if (onRebuild !== undefined) {\n yield* Effect.try({\n try: () => onRebuild(new Date()),\n catch: () => undefined,\n }).pipe(Effect.ignore);\n }\n }))), serverScope);\n });\n}\nfunction optionWatchInputs<Requirements>(options: ViewOptions<Requirements>): readonly string[] {\n const values = options.watchInputs ?? [];\n return Object.freeze([...new Set(values.map((value) => resolve(value)))]);\n}\nfunction openWatchers(inputs: readonly string[], onChange: () => void): Effect.Effect<WatchResources, NodeViewServerError> {\n return Effect.try({\n try: () => {\n const resources: WatchResources = {\n current: closedWatchSet(),\n onChange,\n closed: false,\n };\n try {\n const opening = openWatchSet(resources, inputs);\n publishWatchSet(resources, opening);\n return resources;\n }\n catch (error) {\n closeWatchSet(resources.current);\n throw error;\n }\n },\n catch: (error): NodeViewServerError => serverError(\"watch\", asError(error).message),\n });\n}\n/**\n * Atomically swaps the next-round watch set after a successful revision. Failure\n * paths never call this, so last-good entry edges remain recoverable.\n */\nfunction replaceWatchInputs(resources: WatchResources, inputs: readonly string[]): void {\n if (resources.closed)\n return;\n try {\n const opening = openWatchSet(resources, inputs);\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n // No Effect boundary or callback can interleave this publication: the\n // replacement is entirely synchronous after the candidate validated.\n publishWatchSet(resources, opening);\n }\n catch {\n // A transient directory race must not discard the previous recoverable\n // closure. The next filesystem hint retries full reconciliation.\n }\n}\nfunction closedWatchSet(): WatchSet {\n return {\n inputs: Object.freeze([]),\n watchers: new Map(),\n state: \"closed\",\n };\n}\n/**\n * Opens a whole candidate closure without touching the published set. This is\n * also the full reconciliation path for directory-tree changes: fs.watch is a\n * hint, so every event rescans all inputs before requesting a rebuild.\n */\nfunction openWatchSet(resources: WatchResources, inputs: readonly string[]): WatchSet {\n const watchSet: WatchSet = {\n inputs: normalizeWatchInputs(inputs),\n watchers: new Map(),\n state: \"opening\",\n };\n try {\n synchronizeWatchSet(resources, watchSet);\n return watchSet;\n }\n catch (error) {\n closeWatchSet(watchSet);\n throw error;\n }\n}\n/** Watch the Record root and its current Run directories without a polling loop. */\nfunction synchronizeWatchSet(resources: WatchResources, watchSet: WatchSet): void {\n for (const input of watchSet.inputs) {\n let inputIsDirectory: boolean;\n try {\n inputIsDirectory = statSync(input).isDirectory();\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n // A missing config / module / Record root remains observable through its\n // parent directory. It can appear later without restarting the host.\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n continue;\n }\n if (inputIsDirectory) {\n watchDirectoryTree(resources, watchSet, input, 0);\n }\n else {\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n }\n }\n}\nfunction normalizeWatchInputs(inputs: readonly string[]): readonly string[] {\n return Object.freeze([...new Set(inputs.map((input) => resolve(input)))].sort());\n}\nconst WATCH_DIRECTORY_DEPTH_MAX = 4;\nfunction watchDirectoryTree(resources: WatchResources, watchSet: WatchSet, directory: string, depth: number): void {\n try {\n watchDirectory(resources, watchSet, directory);\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n if (depth >= WATCH_DIRECTORY_DEPTH_MAX)\n return;\n let entries: readonly {\n readonly name: string;\n isDirectory(): boolean;\n }[];\n try {\n entries = readdirSync(directory, { withFileTypes: true });\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n for (const entry of entries) {\n if (entry.isDirectory()) {\n watchDirectoryTree(resources, watchSet, resolve(directory, entry.name), depth + 1);\n }\n }\n}\nfunction watchDirectory(resources: WatchResources, watchSet: WatchSet, directory: string): void {\n const key = `directory:${directory}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, () => watchSetChanged(resources, watchSet));\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchNamedInput(resources: WatchResources, watchSet: WatchSet, directory: string, name: string): void {\n const key = `named:${directory}:${name}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, (_event, filename) => {\n if (filename === null || filename.toString() === name)\n watchSetChanged(resources, watchSet);\n });\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchFailure(resources: WatchResources, watchSet: WatchSet, key: string, watcher: FSWatcher): void {\n watcher.once(\"error\", () => {\n if (watchSet.watchers.get(key) === watcher) {\n watchSet.watchers.delete(key);\n closeWatcher(watcher);\n }\n watchSetChanged(resources, watchSet);\n });\n}\nfunction watchSetChanged(resources: WatchResources, watchSet: WatchSet): void {\n if (!isCurrentWatchSet(resources, watchSet))\n return;\n // A new Run gets its own directory before its completion marker. Reconcile\n // the whole closure now so the marker change is observed as well as the\n // first incomplete rebuild. Failure leaves this complete old set active.\n replaceWatchInputs(resources, watchSet.inputs);\n if (isCurrentWatchSet(resources, resources.current))\n resources.onChange();\n}\nfunction isCurrentWatchSet(resources: WatchResources, watchSet: WatchSet): boolean {\n return !resources.closed && resources.current === watchSet && watchSet.state === \"active\";\n}\n/** Publishes a fully opened candidate, then retires the old closure synchronously. */\nfunction publishWatchSet(resources: WatchResources, opening: WatchSet): void {\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n const previous = resources.current;\n opening.state = \"active\";\n resources.current = opening;\n closeWatchSet(previous);\n}\nfunction closeWatchSet(watchSet: WatchSet): void {\n if (watchSet.state === \"closed\")\n return;\n watchSet.state = \"closed\";\n const watchers = [...watchSet.watchers.values()];\n watchSet.watchers.clear();\n for (const watcher of watchers)\n closeWatcher(watcher);\n}\nfunction closeWatcher(watcher: FSWatcher): void {\n try {\n watcher.close();\n }\n catch {\n // Closing is best-effort and idempotent at the Node boundary.\n }\n}\nfunction closeResources(resources: ServerResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.zipRight(Effect.sync(() => {\n resources.requests.close();\n resources.refreshes.close();\n for (const socket of resources.sockets)\n socket.destroy();\n }), closeServer(resources.server));\n });\n}\nfunction closeWatchers(resources: WatchResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.sync(() => closeWatchSet(resources.current));\n });\n}\nfunction closeServer(server: Server): Effect.Effect<void> {\n return Effect.async((resume) => {\n if (!server.listening) {\n resume(Effect.void);\n return Effect.void;\n }\n try {\n server.close(() => resume(Effect.void));\n }\n catch {\n resume(Effect.void);\n }\n return Effect.void;\n });\n}\ntype SitePathLookup = {\n readonly state: \"file\";\n readonly file: ClosedSiteFile;\n} | {\n readonly state: \"redirect\";\n readonly location: string;\n} | {\n readonly state: \"missing\";\n};\n/**\n * Resolves HTTP paths strictly through the current revision's finished file\n * map. There is intentionally no route callback, renderer, Sample, or Record\n * fallback here, so a request can never splice two revisions together.\n */\nfunction siteFileForPath(pathname: string, site: ClosedSiteRevision): SitePathLookup {\n if (!pathname.startsWith(\"/\") || pathname.includes(\"%\") || pathname.includes(\"\\\\\")) {\n return Object.freeze({ state: \"missing\" as const });\n }\n const requested = pathname.slice(1);\n const exact = requested === \"\" ? \"index.html\" : requested;\n const revision = closedSiteRevisionData(site);\n const files = revision.files;\n const direct = files.find((file) => file.path === exact);\n if (direct !== undefined)\n return Object.freeze({ state: \"file\" as const, file: direct });\n // A report may deliberately declare its first Page at /overview (or another\n // route), so its immutable closure has no root index.html. The advertised\n // root must still land on that revision's canonical entry route rather than\n // becoming a host-generated 404 or re-entering Report execution.\n if (requested === \"\" && revision.defaultRoute !== undefined) {\n const entryFile = staticPageFileForRoute(revision.defaultRoute);\n if (files.some((file) => file.path === entryFile)) {\n return Object.freeze({ state: \"redirect\" as const, location: revision.defaultRoute });\n }\n }\n // Keep direct Page URLs convenient without manufacturing a different body.\n // The redirect selects the exact generated index.html path from this same map.\n const indexPath = requested.endsWith(\"/\")\n ? `${requested}index.html`\n : `${requested}/index.html`;\n const page = files.find((file) => file.path === indexPath);\n if (page !== undefined) {\n return Object.freeze({ state: \"redirect\" as const, location: `/${indexPath}` });\n }\n return Object.freeze({ state: \"missing\" as const });\n}\nfunction staticPageFileForRoute(route: string): string {\n return route === \"/\" ? \"index.html\" : `${route.slice(1)}/index.html`;\n}\nfunction requestUrl(request: IncomingMessage): URL | undefined {\n try {\n return new URL(request.url ?? \"/\", \"http://127.0.0.1\");\n }\n catch {\n return undefined;\n }\n}\nconst REPORT_REVISION_COOKIE = \"niceeval_report_revision\";\nfunction reportRevisionCookie(contentHash: string): string {\n return `${REPORT_REVISION_COOKIE}=${contentHash}; Path=/; SameSite=Strict; HttpOnly`;\n}\nfunction reportRevisionCookieValue(cookie: string | undefined): string | undefined {\n if (cookie === undefined)\n return undefined;\n for (const entry of cookie.split(\";\")) {\n const [name, ...value] = entry.trim().split(\"=\");\n if (name === REPORT_REVISION_COOKIE)\n return value.join(\"=\");\n }\n return undefined;\n}\nfunction sendText(response: ServerResponse, status: number, body: string, headers: Readonly<Record<string, string>> = {}): void {\n send(response, status, body, \"text/plain; charset=utf-8\", headers);\n}\nfunction send(response: ServerResponse, status: number, body: string | Uint8Array, contentType: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(status, { \"content-type\": contentType, ...headers });\n response.end(body);\n}\nfunction redirect(response: ServerResponse, location: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(308, { location, ...headers });\n response.end();\n}\nconst SAFE_MEDIA_TYPE = /^[A-Za-z0-9!#$%&'*+.^_`|~-]+\\/[A-Za-z0-9!#$%&'*+.^_`|~-]+$/;\nfunction siteContentType(mediaType: string): string {\n const base = mediaType.split(\";\", 1)[0]?.trim() ?? \"\";\n return SAFE_MEDIA_TYPE.test(base) ? base : \"application/octet-stream\";\n}\nfunction viewUrls(host: string, port: number): readonly string[] {\n if (host === \"0.0.0.0\") {\n return urlsForAddresses([\n \"127.0.0.1\",\n ...interfaceAddresses(\"IPv4\"),\n ], port);\n }\n if (host === \"::\") {\n return urlsForAddresses([\n \"::1\",\n ...interfaceAddresses(\"IPv6\"),\n ], port);\n }\n return Object.freeze([viewUrl(host, port)]);\n}\nfunction interfaceAddresses(family: \"IPv4\" | \"IPv6\"): readonly string[] {\n const addresses: string[] = [];\n for (const entries of Object.values(networkInterfaces())) {\n for (const entry of entries ?? []) {\n if (entry.family === family &&\n !entry.internal &&\n !entry.address.includes(\"%\") &&\n (family !== \"IPv6\" || entry.scopeid === 0)) {\n addresses.push(entry.address);\n }\n }\n }\n return addresses.sort((left, right) => left.localeCompare(right));\n}\nfunction urlsForAddresses(addresses: readonly string[], port: number): readonly string[] {\n return Object.freeze([...new Set(addresses)].map((address) => viewUrl(address, port)));\n}\nfunction viewUrl(host: string, port: number): string {\n return new URL(`http://${formatHost(host)}:${port}/`).toString();\n}\nfunction requestAuthority(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n try {\n const url = new URL(`http://${value}`);\n if (url.username.length > 0 || url.password.length > 0)\n return undefined;\n return url.host;\n }\n catch {\n return undefined;\n }\n}\nfunction formatHost(host: string): string {\n return host.includes(\":\") ? `[${host}]` : host;\n}\nfunction serverError(operation: NodeViewServerError[\"operation\"], reason: string): NodeViewServerError {\n return Object.freeze({ code: \"report-view-server-failed\", operation, reason });\n}\nfunction asError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\nfunction isMissingPath(error: unknown): boolean {\n if (typeof error !== \"object\" || error === null)\n return false;\n const code = Reflect.get(error, \"code\");\n return code === \"ENOENT\" || code === \"ENOTDIR\";\n}\n"]}
@@ -1,8 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
  import type * as Scope from "effect/Scope";
3
- import type { ReportExecution } from "../report/execution/model.cjs";
4
3
  import { type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSession } from "../report/host/view-session.cjs";
5
- import type { ThemeDefinition } from "../report/host/node/theme.cjs";
6
4
  import type { ViewScanOptions } from "./data.cjs";
7
5
  export interface NodeViewServerError {
8
6
  readonly code: "report-view-server-failed";
@@ -23,10 +21,6 @@ export interface ViewOptions<Requirements = never> {
23
21
  */
24
22
  readonly watchInputs?: readonly string[];
25
23
  readonly onRebuild?: (completedAt: Date) => void;
26
- /** Static export consumes this exact fixed execution. */
27
- readonly reportExecution?: ReportExecution;
28
- /** A one-shot static export Theme; an open session keeps its revision Theme. */
29
- readonly theme?: ThemeDefinition;
30
24
  /** An already-open scoped session owned by the caller. */
31
25
  readonly session?: ReportViewSession<Requirements>;
32
26
  /** Or let this scope open a session from a caller-supplied current rebuild. */
@@ -1,8 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
  import type * as Scope from "effect/Scope";
3
- import type { ReportExecution } from "../report/execution/model.mjs";
4
3
  import { type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSession } from "../report/host/view-session.mjs";
5
- import type { ThemeDefinition } from "../report/host/node/theme.mjs";
6
4
  import type { ViewScanOptions } from "./data.mjs";
7
5
  export interface NodeViewServerError {
8
6
  readonly code: "report-view-server-failed";
@@ -23,10 +21,6 @@ export interface ViewOptions<Requirements = never> {
23
21
  */
24
22
  readonly watchInputs?: readonly string[];
25
23
  readonly onRebuild?: (completedAt: Date) => void;
26
- /** Static export consumes this exact fixed execution. */
27
- readonly reportExecution?: ReportExecution;
28
- /** A one-shot static export Theme; an open session keeps its revision Theme. */
29
- readonly theme?: ThemeDefinition;
30
24
  /** An already-open scoped session owned by the caller. */
31
25
  readonly session?: ReportViewSession<Requirements>;
32
26
  /** Or let this scope open a session from a caller-supplied current rebuild. */
@@ -1,8 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
  import type * as Scope from "effect/Scope";
3
- import type { ReportExecution } from "../report/execution/model.js";
4
3
  import { type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSession } from "../report/host/view-session.js";
5
- import type { ThemeDefinition } from "../report/host/node/theme.js";
6
4
  import type { ViewScanOptions } from "./data.js";
7
5
  export interface NodeViewServerError {
8
6
  readonly code: "report-view-server-failed";
@@ -23,10 +21,6 @@ export interface ViewOptions<Requirements = never> {
23
21
  */
24
22
  readonly watchInputs?: readonly string[];
25
23
  readonly onRebuild?: (completedAt: Date) => void;
26
- /** Static export consumes this exact fixed execution. */
27
- readonly reportExecution?: ReportExecution;
28
- /** A one-shot static export Theme; an open session keeps its revision Theme. */
29
- readonly theme?: ThemeDefinition;
30
24
  /** An already-open scoped session owned by the caller. */
31
25
  readonly session?: ReportViewSession<Requirements>;
32
26
  /** Or let this scope open a session from a caller-supplied current rebuild. */