niceeval 0.13.1 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/INDEX.md +25 -2
  2. package/README.md +9 -10
  3. package/README.zh.md +9 -10
  4. package/dist/agents/ai-sdk.cjs.map +1 -1
  5. package/dist/agents/ai-sdk.d.cts +1 -1
  6. package/dist/agents/ai-sdk.d.mts +1 -1
  7. package/dist/agents/ai-sdk.d.ts +1 -1
  8. package/dist/agents/bub-install-spec.cjs +19 -5
  9. package/dist/agents/bub-install-spec.cjs.map +1 -1
  10. package/dist/agents/bub-install-spec.d.cts +9 -2
  11. package/dist/agents/bub-install-spec.d.mts +9 -2
  12. package/dist/agents/bub-install-spec.d.ts +9 -2
  13. package/dist/agents/bub-install-spec.js +14 -12
  14. package/dist/agents/bub.cjs +10 -6
  15. package/dist/agents/bub.cjs.map +1 -1
  16. package/dist/agents/bub.d.cts +2 -2
  17. package/dist/agents/bub.d.mts +2 -2
  18. package/dist/agents/bub.d.ts +2 -2
  19. package/dist/agents/claude-code.cjs.map +1 -1
  20. package/dist/agents/claude-code.d.cts +2 -2
  21. package/dist/agents/claude-code.d.mts +2 -2
  22. package/dist/agents/claude-code.d.ts +2 -2
  23. package/dist/agents/codex.cjs +4 -4
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/codex.d.cts +3 -3
  26. package/dist/agents/codex.d.mts +3 -3
  27. package/dist/agents/codex.d.ts +3 -3
  28. package/dist/agents/coding-cli-versions.cjs +10 -1
  29. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  30. package/dist/agents/coding-cli-versions.d.cts +8 -3
  31. package/dist/agents/coding-cli-versions.d.mts +8 -3
  32. package/dist/agents/coding-cli-versions.d.ts +8 -3
  33. package/dist/agents/coding-cli-versions.js +18 -12
  34. package/dist/agents/deepseek-harness.cjs +151 -0
  35. package/dist/agents/deepseek-harness.cjs.map +1 -0
  36. package/dist/agents/deepseek-harness.d.cts +14 -0
  37. package/dist/agents/deepseek-harness.d.mts +14 -0
  38. package/dist/agents/deepseek-harness.d.ts +14 -0
  39. package/dist/agents/deepseek-harness.js +7 -0
  40. package/dist/agents/deepseek-harness.js.map +1 -0
  41. package/dist/agents/exact-npm-plugins.cjs +28 -0
  42. package/dist/agents/exact-npm-plugins.cjs.map +1 -0
  43. package/dist/agents/exact-npm-plugins.d.cts +10 -0
  44. package/dist/agents/exact-npm-plugins.d.mts +10 -0
  45. package/dist/agents/exact-npm-plugins.d.ts +10 -0
  46. package/dist/agents/exact-npm-plugins.js +8 -0
  47. package/dist/agents/exact-npm-plugins.js.map +1 -0
  48. package/dist/agents/index.cjs +5 -1
  49. package/dist/agents/index.cjs.map +1 -1
  50. package/dist/agents/index.d.cts +4 -0
  51. package/dist/agents/index.d.mts +4 -0
  52. package/dist/agents/index.d.ts +4 -0
  53. package/dist/agents/index.js +54 -50
  54. package/dist/agents/index.mjs +54 -50
  55. package/dist/agents/omp.cjs +170 -0
  56. package/dist/agents/omp.cjs.map +1 -0
  57. package/dist/agents/omp.d.cts +14 -0
  58. package/dist/agents/omp.d.mts +14 -0
  59. package/dist/agents/omp.d.ts +14 -0
  60. package/dist/agents/omp.js +7 -0
  61. package/dist/agents/omp.js.map +1 -0
  62. package/dist/agents/openclaw.cjs +51 -2
  63. package/dist/agents/openclaw.cjs.map +1 -1
  64. package/dist/agents/openclaw.d.cts +2 -0
  65. package/dist/agents/openclaw.d.mts +2 -0
  66. package/dist/agents/openclaw.d.ts +2 -0
  67. package/dist/agents/types.cjs.map +1 -1
  68. package/dist/agents/types.d.cts +4 -4
  69. package/dist/agents/types.d.mts +4 -4
  70. package/dist/agents/types.d.ts +4 -4
  71. package/dist/agents/ui-message-stream.cjs +24 -7
  72. package/dist/agents/ui-message-stream.cjs.map +1 -1
  73. package/dist/analysis/api.cjs +28 -2
  74. package/dist/analysis/api.cjs.map +1 -1
  75. package/dist/analysis/api.d.cts +22 -1
  76. package/dist/analysis/api.d.mts +22 -1
  77. package/dist/analysis/api.d.ts +22 -1
  78. package/dist/analysis/api.js +8 -6
  79. package/dist/analysis/bindings.cjs +11 -18
  80. package/dist/analysis/bindings.cjs.map +1 -1
  81. package/dist/analysis/bindings.d.cts +177 -49
  82. package/dist/analysis/bindings.d.mts +177 -49
  83. package/dist/analysis/bindings.d.ts +177 -49
  84. package/dist/analysis/contracts.cjs +1 -0
  85. package/dist/analysis/contracts.cjs.map +1 -1
  86. package/dist/analysis/contracts.d.cts +43 -3
  87. package/dist/analysis/contracts.d.mts +43 -3
  88. package/dist/analysis/contracts.d.ts +43 -3
  89. package/dist/analysis/cost-projection.cjs +2 -1
  90. package/dist/analysis/cost-projection.cjs.map +1 -1
  91. package/dist/analysis/cost-projection.d.cts +1 -1
  92. package/dist/analysis/cost-projection.d.mts +1 -1
  93. package/dist/analysis/cost-projection.d.ts +1 -1
  94. package/dist/analysis/cost.cjs +13 -3
  95. package/dist/analysis/cost.cjs.map +1 -1
  96. package/dist/analysis/cost.d.cts +10 -3
  97. package/dist/analysis/cost.d.mts +10 -3
  98. package/dist/analysis/cost.d.ts +10 -3
  99. package/dist/analysis/experiment-groups.cjs +96 -0
  100. package/dist/analysis/experiment-groups.cjs.map +1 -0
  101. package/dist/analysis/experiment-groups.d.cts +9 -0
  102. package/dist/analysis/experiment-groups.d.mts +9 -0
  103. package/dist/analysis/experiment-groups.d.ts +9 -0
  104. package/dist/analysis/experiment-groups.js +10 -0
  105. package/dist/analysis/experiment-groups.js.map +1 -0
  106. package/dist/analysis/index.cjs +4 -1
  107. package/dist/analysis/index.cjs.map +1 -1
  108. package/dist/analysis/index.d.cts +4 -2
  109. package/dist/analysis/index.d.mts +4 -2
  110. package/dist/analysis/index.d.ts +4 -2
  111. package/dist/analysis/index.js +40 -36
  112. package/dist/analysis/index.mjs +40 -36
  113. package/dist/assertions/limits.cjs +4 -0
  114. package/dist/assertions/limits.cjs.map +1 -1
  115. package/dist/assertions/limits.d.cts +4 -0
  116. package/dist/assertions/limits.d.mts +4 -0
  117. package/dist/assertions/limits.d.ts +4 -0
  118. package/dist/assertions/match.cjs +63 -25
  119. package/dist/assertions/match.cjs.map +1 -1
  120. package/dist/assertions/match.d.cts +7 -0
  121. package/dist/assertions/match.d.mts +7 -0
  122. package/dist/assertions/match.d.ts +7 -0
  123. package/dist/assertions/record/attachment.cjs +32 -4
  124. package/dist/assertions/record/attachment.cjs.map +1 -1
  125. package/dist/assertions/record/diff.cjs +10 -4
  126. package/dist/assertions/record/diff.cjs.map +1 -1
  127. package/dist/assertions/record/producer.cjs +101 -4
  128. package/dist/assertions/record/producer.cjs.map +1 -1
  129. package/dist/assertions/record/producer.d.cts +4 -1
  130. package/dist/assertions/record/producer.d.mts +4 -1
  131. package/dist/assertions/record/producer.d.ts +4 -1
  132. package/dist/assertions/runtime.cjs +45 -5
  133. package/dist/assertions/runtime.cjs.map +1 -1
  134. package/dist/cli/record.cjs +113 -8
  135. package/dist/cli/record.cjs.map +1 -1
  136. package/dist/cli/record.d.cts +20 -1
  137. package/dist/cli/record.d.mts +20 -1
  138. package/dist/cli/record.d.ts +20 -1
  139. package/dist/cli/record.js +4 -2
  140. package/dist/cli.cjs +386 -31
  141. package/dist/cli.cjs.map +1 -1
  142. package/dist/cli.d.cts +10 -2
  143. package/dist/cli.d.mts +10 -2
  144. package/dist/cli.d.ts +10 -2
  145. package/dist/context/send-retry.cjs +4 -4
  146. package/dist/context/send-retry.cjs.map +1 -1
  147. package/dist/coordination/host/runtime.cjs +8 -30
  148. package/dist/coordination/host/runtime.cjs.map +1 -1
  149. package/dist/coordination/host/runtime.d.cts +3 -3
  150. package/dist/coordination/host/runtime.d.mts +3 -3
  151. package/dist/coordination/host/runtime.d.ts +3 -3
  152. package/dist/coordination/host/types.cjs.map +1 -1
  153. package/dist/coordination/host/types.d.cts +0 -5
  154. package/dist/coordination/host/types.d.mts +0 -5
  155. package/dist/coordination/host/types.d.ts +0 -5
  156. package/dist/coordination/platform/node.cjs +90 -9
  157. package/dist/coordination/platform/node.cjs.map +1 -1
  158. package/dist/define.cjs +25 -1
  159. package/dist/define.cjs.map +1 -1
  160. package/dist/experiment/host/index.cjs +1 -0
  161. package/dist/experiment/host/index.cjs.map +1 -1
  162. package/dist/i18n/en.cjs +26 -8
  163. package/dist/i18n/en.cjs.map +1 -1
  164. package/dist/i18n/en.d.cts +19 -6
  165. package/dist/i18n/en.d.mts +19 -6
  166. package/dist/i18n/en.d.ts +19 -6
  167. package/dist/index.cjs.map +1 -1
  168. package/dist/index.d.cts +1 -1
  169. package/dist/index.d.mts +1 -1
  170. package/dist/index.d.ts +1 -1
  171. package/dist/o11y/parsers/hermes.cjs +1 -1
  172. package/dist/o11y/parsers/hermes.cjs.map +1 -1
  173. package/dist/o11y/prices.json +1 -1
  174. package/dist/o11y/record/families.cjs +12 -3
  175. package/dist/o11y/record/families.cjs.map +1 -1
  176. package/dist/o11y/record/families.d.cts +8 -8
  177. package/dist/o11y/record/families.d.mts +8 -8
  178. package/dist/o11y/record/families.d.ts +8 -8
  179. package/dist/o11y/record/family-projectors.d.cts +66 -18
  180. package/dist/o11y/record/family-projectors.d.mts +66 -18
  181. package/dist/o11y/record/family-projectors.d.ts +66 -18
  182. package/dist/o11y/record/family-writers.d.cts +11 -3
  183. package/dist/o11y/record/family-writers.d.mts +11 -3
  184. package/dist/o11y/record/family-writers.d.ts +11 -3
  185. package/dist/o11y/record/runner-producer.cjs +14 -4
  186. package/dist/o11y/record/runner-producer.cjs.map +1 -1
  187. package/dist/record/codec/core.d.cts +2 -2
  188. package/dist/record/codec/core.d.mts +2 -2
  189. package/dist/record/codec/core.d.ts +2 -2
  190. package/dist/record/family/catalog.d.cts +44 -12
  191. package/dist/record/family/catalog.d.mts +44 -12
  192. package/dist/record/family/catalog.d.ts +44 -12
  193. package/dist/record/family/index.js +128 -124
  194. package/dist/record/family/observability-v1.cjs +35 -0
  195. package/dist/record/family/observability-v1.cjs.map +1 -0
  196. package/dist/record/family/observability-v1.d.cts +3 -0
  197. package/dist/record/family/observability-v1.d.mts +3 -0
  198. package/dist/record/family/observability-v1.d.ts +3 -0
  199. package/dist/record/family/observability-v1.js +6 -0
  200. package/dist/record/family/observability-v1.js.map +1 -0
  201. package/dist/record/family/observability.cjs +58 -9
  202. package/dist/record/family/observability.cjs.map +1 -1
  203. package/dist/record/family/observability.d.cts +1014 -15
  204. package/dist/record/family/observability.d.mts +1014 -15
  205. package/dist/record/family/observability.d.ts +1014 -15
  206. package/dist/record/family/observability.js +22 -18
  207. package/dist/record/host/runtime.cjs +600 -31
  208. package/dist/record/host/runtime.cjs.map +1 -1
  209. package/dist/record/host/types.cjs.map +1 -1
  210. package/dist/record/host/types.d.cts +33 -9
  211. package/dist/record/host/types.d.mts +33 -9
  212. package/dist/record/host/types.d.ts +33 -9
  213. package/dist/record/maintenance/runtime.cjs +1 -2
  214. package/dist/record/maintenance/runtime.cjs.map +1 -1
  215. package/dist/record/model/core.cjs.map +1 -1
  216. package/dist/record/model/core.d.cts +1 -1
  217. package/dist/record/model/core.d.mts +1 -1
  218. package/dist/record/model/core.d.ts +1 -1
  219. package/dist/record/model/definition.d.cts +6 -6
  220. package/dist/record/model/definition.d.mts +6 -6
  221. package/dist/record/model/definition.d.ts +6 -6
  222. package/dist/record/model/identifiers.cjs +1 -1
  223. package/dist/record/model/identifiers.cjs.map +1 -1
  224. package/dist/record/model/identifiers.d.cts +1 -1
  225. package/dist/record/model/identifiers.d.mts +1 -1
  226. package/dist/record/model/identifiers.d.ts +1 -1
  227. package/dist/record/platform/node.cjs +159 -23
  228. package/dist/record/platform/node.cjs.map +1 -1
  229. package/dist/record/platform/services.cjs.map +1 -1
  230. package/dist/record/platform/services.d.cts +15 -2
  231. package/dist/record/platform/services.d.mts +15 -2
  232. package/dist/record/platform/services.d.ts +15 -2
  233. package/dist/record/reader/errors.cjs +37 -1
  234. package/dist/record/reader/errors.cjs.map +1 -1
  235. package/dist/record/reader/errors.d.cts +49 -1
  236. package/dist/record/reader/errors.d.mts +49 -1
  237. package/dist/record/reader/errors.d.ts +49 -1
  238. package/dist/record/reader/errors.js +22 -12
  239. package/dist/record/reader/format.cjs +76 -17
  240. package/dist/record/reader/format.cjs.map +1 -1
  241. package/dist/record/reader/format.d.cts +11 -4
  242. package/dist/record/reader/format.d.mts +11 -4
  243. package/dist/record/reader/format.d.ts +11 -4
  244. package/dist/record/reader/format.js +2 -0
  245. package/dist/record/reader/index.js +32 -18
  246. package/dist/record/reader/runtime.cjs +64 -0
  247. package/dist/record/reader/runtime.cjs.map +1 -1
  248. package/dist/record/reader/runtime.d.cts +15 -0
  249. package/dist/record/reader/runtime.d.mts +15 -0
  250. package/dist/record/reader/runtime.d.ts +15 -0
  251. package/dist/record/reader/runtime.js +2 -0
  252. package/dist/report/assets/styles.css +53 -29
  253. package/dist/report/built-in/analysis-values.cjs +21 -13
  254. package/dist/report/built-in/analysis-values.cjs.map +1 -1
  255. package/dist/report/built-in/analysis-values.d.cts +11 -22
  256. package/dist/report/built-in/analysis-values.d.mts +11 -22
  257. package/dist/report/built-in/analysis-values.d.ts +11 -22
  258. package/dist/report/built-in/analysis-values.js +4 -6
  259. package/dist/report/built-in/index.cjs +1 -3
  260. package/dist/report/built-in/index.cjs.map +1 -1
  261. package/dist/report/built-in/index.d.cts +1 -1
  262. package/dist/report/built-in/index.d.mts +1 -1
  263. package/dist/report/built-in/index.d.ts +1 -1
  264. package/dist/report/built-in/index.js +4 -8
  265. package/dist/report/built-in/index.mjs +4 -8
  266. package/dist/report/built-in/machine.cjs +0 -2
  267. package/dist/report/built-in/machine.cjs.map +1 -1
  268. package/dist/report/built-in/machine.d.cts +0 -2
  269. package/dist/report/built-in/machine.d.mts +0 -2
  270. package/dist/report/built-in/machine.d.ts +0 -2
  271. package/dist/report/built-in/result-components.cjs +49 -51
  272. package/dist/report/built-in/result-components.cjs.map +1 -1
  273. package/dist/report/built-in/result-components.d.cts +16 -17
  274. package/dist/report/built-in/result-components.d.mts +16 -17
  275. package/dist/report/built-in/result-components.d.ts +16 -17
  276. package/dist/report/built-in/result-components.js +0 -4
  277. package/dist/report/built-in/run-membership-overview.cjs +126 -17
  278. package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
  279. package/dist/report/built-in/run-membership-overview.d.cts +14 -0
  280. package/dist/report/built-in/run-membership-overview.d.mts +14 -0
  281. package/dist/report/built-in/run-membership-overview.d.ts +14 -0
  282. package/dist/report/built-in/run-membership-overview.js +4 -2
  283. package/dist/report/built-in/standard.cjs +80 -45
  284. package/dist/report/built-in/standard.cjs.map +1 -1
  285. package/dist/report/built-in/standard.d.cts +19 -41
  286. package/dist/report/built-in/standard.d.mts +19 -41
  287. package/dist/report/built-in/standard.d.ts +19 -41
  288. package/dist/report/built-in/standard.js +6 -6
  289. package/dist/report/components/attempt-detail/compute.cjs +78 -2
  290. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  291. package/dist/report/components/attempt-detail/compute.d.cts +1 -1
  292. package/dist/report/components/attempt-detail/compute.d.mts +1 -1
  293. package/dist/report/components/attempt-detail/compute.d.ts +1 -1
  294. package/dist/report/components/attempt-detail/content.cjs +1 -1
  295. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  296. package/dist/report/components/entity-lists/compute.cjs +42 -5
  297. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  298. package/dist/report/components/entity-lists/compute.d.cts +10 -8
  299. package/dist/report/components/entity-lists/compute.d.mts +10 -8
  300. package/dist/report/components/entity-lists/compute.d.ts +10 -8
  301. package/dist/report/components/entity-lists/content.cjs +31 -6
  302. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  303. package/dist/report/components/entity-lists/index.cjs +9 -4
  304. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  305. package/dist/report/components/entity-lists/index.d.cts +4 -7
  306. package/dist/report/components/entity-lists/index.d.mts +4 -7
  307. package/dist/report/components/entity-lists/index.d.ts +4 -7
  308. package/dist/report/components/summaries/compute.cjs +8 -1
  309. package/dist/report/components/summaries/compute.cjs.map +1 -1
  310. package/dist/report/components/summaries/compute.d.cts +9 -1
  311. package/dist/report/components/summaries/compute.d.mts +9 -1
  312. package/dist/report/components/summaries/compute.d.ts +9 -1
  313. package/dist/report/components/summaries/index.cjs +48 -4
  314. package/dist/report/components/summaries/index.cjs.map +1 -1
  315. package/dist/report/components/summaries/index.d.cts +7 -4
  316. package/dist/report/components/summaries/index.d.mts +7 -4
  317. package/dist/report/components/summaries/index.d.ts +7 -4
  318. package/dist/report/definition/cell.cjs +3 -0
  319. package/dist/report/definition/cell.cjs.map +1 -1
  320. package/dist/report/definition/cell.d.cts +2 -0
  321. package/dist/report/definition/cell.d.mts +2 -0
  322. package/dist/report/definition/cell.d.ts +2 -0
  323. package/dist/report/definition/primitives/chart.cjs +8 -5
  324. package/dist/report/definition/primitives/chart.cjs.map +1 -1
  325. package/dist/report/definition/primitives/points-dataset.cjs +1 -0
  326. package/dist/report/definition/primitives/points-dataset.cjs.map +1 -1
  327. package/dist/report/definition/primitives.cjs +15 -2
  328. package/dist/report/definition/primitives.cjs.map +1 -1
  329. package/dist/report/definition/report.cjs +27 -3
  330. package/dist/report/definition/report.cjs.map +1 -1
  331. package/dist/report/definition/report.d.cts +8 -0
  332. package/dist/report/definition/report.d.mts +8 -0
  333. package/dist/report/definition/report.d.ts +8 -0
  334. package/dist/report/execution/machine.cjs +30 -14
  335. package/dist/report/execution/machine.cjs.map +1 -1
  336. package/dist/report/execution/machine.d.cts +20 -10
  337. package/dist/report/execution/machine.d.mts +20 -10
  338. package/dist/report/execution/machine.d.ts +20 -10
  339. package/dist/report/execution/machine.js +6 -6
  340. package/dist/report/host/execute.cjs +25 -16
  341. package/dist/report/host/execute.cjs.map +1 -1
  342. package/dist/report/host/execute.d.cts +4 -0
  343. package/dist/report/host/execute.d.mts +4 -0
  344. package/dist/report/host/execute.d.ts +4 -0
  345. package/dist/report/host/from-record.cjs +22 -5
  346. package/dist/report/host/from-record.cjs.map +1 -1
  347. package/dist/report/host/machine.cjs +53 -11
  348. package/dist/report/host/machine.cjs.map +1 -1
  349. package/dist/report/host/site-runtime.cjs +9 -8
  350. package/dist/report/host/site-runtime.cjs.map +1 -1
  351. package/dist/report/host/site-runtime.d.cts +1 -1
  352. package/dist/report/host/site-runtime.d.mts +1 -1
  353. package/dist/report/host/site-runtime.d.ts +1 -1
  354. package/dist/report/host/static.cjs +56 -9
  355. package/dist/report/host/static.cjs.map +1 -1
  356. package/dist/report/index.cjs.map +1 -1
  357. package/dist/report/index.d.cts +1 -1
  358. package/dist/report/index.d.mts +1 -1
  359. package/dist/report/index.d.ts +1 -1
  360. package/dist/report/model/dataset.cjs +7 -2
  361. package/dist/report/model/dataset.cjs.map +1 -1
  362. package/dist/report/model/locale.cjs +2 -0
  363. package/dist/report/model/locale.cjs.map +1 -1
  364. package/dist/report/model/locale.d.cts +1 -0
  365. package/dist/report/model/locale.d.mts +1 -0
  366. package/dist/report/model/locale.d.ts +1 -0
  367. package/dist/report/model/metrics.cjs +3 -1
  368. package/dist/report/model/metrics.cjs.map +1 -1
  369. package/dist/report/model/pricing.cjs +16 -11
  370. package/dist/report/model/pricing.cjs.map +1 -1
  371. package/dist/report/react/styles.css +53 -29
  372. package/dist/runner/adoption.cjs +1 -0
  373. package/dist/runner/adoption.cjs.map +1 -1
  374. package/dist/runner/attempt.cjs +44 -5
  375. package/dist/runner/attempt.cjs.map +1 -1
  376. package/dist/runner/attempt.d.cts +13 -1
  377. package/dist/runner/attempt.d.mts +13 -1
  378. package/dist/runner/attempt.d.ts +13 -1
  379. package/dist/runner/config-identity.cjs +10 -2
  380. package/dist/runner/config-identity.cjs.map +1 -1
  381. package/dist/runner/config-identity.d.cts +4 -2
  382. package/dist/runner/config-identity.d.mts +4 -2
  383. package/dist/runner/config-identity.d.ts +4 -2
  384. package/dist/runner/feedback/human.cjs +298 -59
  385. package/dist/runner/feedback/human.cjs.map +1 -1
  386. package/dist/runner/feedback/json.cjs +14 -6
  387. package/dist/runner/feedback/json.cjs.map +1 -1
  388. package/dist/runner/feedback/json.d.cts +3 -2
  389. package/dist/runner/feedback/json.d.mts +3 -2
  390. package/dist/runner/feedback/json.d.ts +3 -2
  391. package/dist/runner/feedback/reducer.cjs +2 -0
  392. package/dist/runner/feedback/reducer.cjs.map +1 -1
  393. package/dist/runner/judge-config.cjs +1 -1
  394. package/dist/runner/judge-config.cjs.map +1 -1
  395. package/dist/runner/ledger.cjs +124 -12
  396. package/dist/runner/ledger.cjs.map +1 -1
  397. package/dist/runner/project-current.cjs +13 -5
  398. package/dist/runner/project-current.cjs.map +1 -1
  399. package/dist/runner/run.cjs +564 -256
  400. package/dist/runner/run.cjs.map +1 -1
  401. package/dist/runner/sandbox-pool.cjs +161 -30
  402. package/dist/runner/sandbox-pool.cjs.map +1 -1
  403. package/dist/runner/sandbox-pool.d.cts +34 -2
  404. package/dist/runner/sandbox-pool.d.mts +34 -2
  405. package/dist/runner/sandbox-pool.d.ts +34 -2
  406. package/dist/runner/shared-state-lease.cjs +803 -0
  407. package/dist/runner/shared-state-lease.cjs.map +1 -0
  408. package/dist/runner/shared-state-lease.d.cts +121 -0
  409. package/dist/runner/shared-state-lease.d.mts +121 -0
  410. package/dist/runner/shared-state-lease.d.ts +121 -0
  411. package/dist/runner/shared-state-lease.js +24 -0
  412. package/dist/runner/shared-state-lease.js.map +1 -0
  413. package/dist/runner/teardown-registry.cjs +97 -34
  414. package/dist/runner/teardown-registry.cjs.map +1 -1
  415. package/dist/runner/teardown-registry.d.cts +27 -1
  416. package/dist/runner/teardown-registry.d.mts +27 -1
  417. package/dist/runner/teardown-registry.d.ts +27 -1
  418. package/dist/runner/teardown-registry.js +20 -16
  419. package/dist/runner/types.cjs.map +1 -1
  420. package/dist/runner/types.d.cts +31 -5
  421. package/dist/runner/types.d.mts +31 -5
  422. package/dist/runner/types.d.ts +31 -5
  423. package/dist/sample/analysis.cjs +249 -459
  424. package/dist/sample/analysis.cjs.map +1 -1
  425. package/dist/sample/capability.cjs +138 -7
  426. package/dist/sample/capability.cjs.map +1 -1
  427. package/dist/sample/capability.d.cts +3 -1
  428. package/dist/sample/capability.d.mts +3 -1
  429. package/dist/sample/capability.d.ts +3 -1
  430. package/dist/sample/capability.js +8 -6
  431. package/dist/sandbox/docker-agent-image.cjs +5 -1
  432. package/dist/sandbox/docker-agent-image.cjs.map +1 -1
  433. package/dist/sandbox/docker-agent-image.d.cts +2 -0
  434. package/dist/sandbox/docker-agent-image.d.mts +2 -0
  435. package/dist/sandbox/docker-agent-image.d.ts +2 -0
  436. package/dist/sandbox/docker-agent-image.js +14 -10
  437. package/dist/sandbox/docker-profile/schema.cjs +283 -534
  438. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  439. package/dist/sandbox/docker-profile/schema.d.cts +10 -27
  440. package/dist/sandbox/docker-profile/schema.d.mts +10 -27
  441. package/dist/sandbox/docker-profile/schema.d.ts +10 -27
  442. package/dist/sandbox/e2b-agent-template.cjs +5 -2
  443. package/dist/sandbox/e2b-agent-template.cjs.map +1 -1
  444. package/dist/sandbox/index.cjs +4 -2
  445. package/dist/sandbox/index.cjs.map +1 -1
  446. package/dist/sandbox/index.d.cts +1 -1
  447. package/dist/sandbox/index.d.mts +1 -1
  448. package/dist/sandbox/index.d.ts +1 -1
  449. package/dist/sandbox/index.js +120 -116
  450. package/dist/sandbox/index.mjs +120 -116
  451. package/dist/sandbox/keep-registry.cjs +28 -66
  452. package/dist/sandbox/keep-registry.cjs.map +1 -1
  453. package/dist/sandbox/types.cjs.map +1 -1
  454. package/dist/sandbox/types.d.cts +1 -1
  455. package/dist/sandbox/types.d.mts +1 -1
  456. package/dist/sandbox/types.d.ts +1 -1
  457. package/dist/shared/aggregate.cjs +16 -6
  458. package/dist/shared/aggregate.cjs.map +1 -1
  459. package/dist/shared/aggregate.d.cts +12 -4
  460. package/dist/shared/aggregate.d.mts +12 -4
  461. package/dist/shared/aggregate.d.ts +12 -4
  462. package/dist/shared/turn-label.cjs +20 -2
  463. package/dist/shared/turn-label.cjs.map +1 -1
  464. package/dist/shared/turn-label.d.cts +2 -0
  465. package/dist/shared/turn-label.d.mts +2 -0
  466. package/dist/shared/turn-label.d.ts +2 -0
  467. package/dist/shared/turn-label.js +4 -2
  468. package/dist/vendor/remark/remark-gfm.cjs +7 -7
  469. package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
  470. package/dist/vendor/remark/remark-parse.cjs +12 -12
  471. package/dist/vendor/remark/remark-parse.cjs.map +1 -1
  472. package/dist/vendor/remark/remark.cjs +13 -13
  473. package/dist/vendor/remark/remark.cjs.map +1 -1
  474. package/dist/view/server.cjs +6 -0
  475. package/dist/view/server.cjs.map +1 -1
  476. package/docs-site/images/hitl-handshake-zh.svg +3 -3
  477. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  478. package/docs-site/zh/examples/coding-agent-extensions.mdx +1 -1
  479. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +4 -3
  480. package/docs-site/zh/examples/integrations/claude-sdk.mdx +3 -3
  481. package/docs-site/zh/examples/integrations/codex-sdk.mdx +5 -5
  482. package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
  483. package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
  484. package/docs-site/zh/explanation/adapter.mdx +5 -5
  485. package/docs-site/zh/explanation/assert.mdx +7 -7
  486. package/docs-site/zh/explanation/drive.mdx +4 -2
  487. package/docs-site/zh/explanation/evals.mdx +10 -8
  488. package/docs-site/zh/explanation/experiment.mdx +2 -2
  489. package/docs-site/zh/explanation/hitl.mdx +9 -9
  490. package/docs-site/zh/explanation/judge.mdx +5 -5
  491. package/docs-site/zh/explanation/overview.mdx +3 -3
  492. package/docs-site/zh/explanation/runner.mdx +1 -1
  493. package/docs-site/zh/index.mdx +3 -3
  494. package/docs-site/zh/reference/builtin-agents.mdx +13 -13
  495. package/docs-site/zh/reference/capabilities.mdx +1 -1
  496. package/docs-site/zh/reference/cli.mdx +18 -12
  497. package/docs-site/zh/reference/define-agent.mdx +130 -5
  498. package/docs-site/zh/reference/define-config.mdx +2 -2
  499. package/docs-site/zh/reference/define-eval.mdx +4 -4
  500. package/docs-site/zh/reference/events.mdx +11 -11
  501. package/docs-site/zh/reference/official-adapters.mdx +6 -6
  502. package/docs-site/zh/reference/results-data.mdx +6 -0
  503. package/docs-site/zh/troubleshooting/debugging.mdx +1 -1
  504. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +37 -5
  505. package/docs-site/zh/tutorials/accept-results.mdx +72 -0
  506. package/docs-site/zh/tutorials/agent-onboarding.mdx +6 -6
  507. package/docs-site/zh/tutorials/authoring.mdx +9 -13
  508. package/docs-site/zh/tutorials/ci-integration.mdx +6 -6
  509. package/docs-site/zh/tutorials/compare-runs.mdx +61 -0
  510. package/docs-site/zh/tutorials/concurrency.mdx +13 -12
  511. package/docs-site/zh/tutorials/configuration.mdx +4 -6
  512. package/docs-site/zh/tutorials/connect-your-agent.mdx +1 -1
  513. package/docs-site/zh/tutorials/control-run-cost.mdx +58 -0
  514. package/docs-site/zh/tutorials/criteria-files.mdx +2 -2
  515. package/docs-site/zh/tutorials/custom-reports.mdx +2 -2
  516. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +46 -0
  517. package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -43
  518. package/docs-site/zh/tutorials/eval-groups.mdx +6 -6
  519. package/docs-site/zh/tutorials/evaluation-kinds.mdx +3 -3
  520. package/docs-site/zh/tutorials/experiments.mdx +2 -3
  521. package/docs-site/zh/tutorials/handle-execution-failures.mdx +18 -10
  522. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +16 -8
  523. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +160 -0
  524. package/docs-site/zh/tutorials/plugins.mdx +14 -0
  525. package/docs-site/zh/tutorials/rerun-and-cache.mdx +4 -2
  526. package/docs-site/zh/tutorials/sandbox-agent.mdx +17 -11
  527. package/docs-site/zh/tutorials/sandbox-providers.mdx +17 -13
  528. package/docs-site/zh/tutorials/sandbox-reuse.mdx +12 -19
  529. package/docs-site/zh/tutorials/select-and-preview.mdx +65 -0
  530. package/docs-site/zh/tutorials/verify-judge.mdx +78 -0
  531. package/docs-site/zh/tutorials/viewing-results.mdx +38 -1
  532. package/docs-site/zh/tutorials/write-experiment.mdx +7 -5
  533. package/docs-site/zh/tutorials/write-send.mdx +9 -8
  534. package/package.json +9 -5
  535. package/dist/report/built-in/overview.cjs +0 -44
  536. package/dist/report/built-in/overview.cjs.map +0 -1
  537. package/dist/report/built-in/overview.d.cts +0 -6
  538. package/dist/report/built-in/overview.d.mts +0 -6
  539. package/dist/report/built-in/overview.d.ts +0 -6
  540. package/dist/report/built-in/overview.js +0 -9
  541. package/dist/report/built-in/overview.js.map +0 -1
  542. package/dist/runner/gate-lease.cjs +0 -283
  543. package/dist/runner/gate-lease.cjs.map +0 -1
  544. package/dist/runner/gate-lease.d.cts +0 -62
  545. package/dist/runner/gate-lease.d.mts +0 -62
  546. package/dist/runner/gate-lease.d.ts +0 -62
  547. package/dist/runner/gate-lease.js +0 -22
  548. package/dist/runner/gate-lease.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["report.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The Report author declaration. This module deliberately knows how to\n * validate and normalize author data, but never how to open a Record, run an\n * Effect, or publish a site. Those are Host responsibilities.\n */\nimport type { AttemptEvidenceDomainView, JsonValue, PricingProfile, Sample as AnalysisSample, } from \"../../analysis/index.ts\";\nimport { builtInPricingProfile, isPricingProfile } from \"../../analysis/cost.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\nimport type { LocalizedText } from \"../model/locale.ts\";\nimport { isThemeDefinition, type ThemeDefinition, } from \"../theme.ts\";\nimport { assertDimensionPins, type DimensionPins, } from \"../presentation.ts\";\nimport type { ReportNode } from \"./tree.ts\";\nexport type { DimensionPins } from \"../presentation.ts\";\nexport type { PricingProfile } from \"../../analysis/index.ts\";\n/**\n * A Host-issued Analysis capability at the Report boundary. It is an alias,\n * rather than a wrapper, so the Analysis facade can consume it without a\n * second capability registry. Its public shape exposes no reader, path, or\n * Effect Scope.\n */\nexport type ReportSample = AnalysisSample;\n/** Author-facing Sample alias for Report imports. */\nexport type Sample = ReportSample;\nexport const DEFAULT_PAGE_ID = \"report\";\nexport const DEFAULT_PAGE_TITLE: LocalizedText = Object.freeze({ en: \"Report\", \"zh-CN\": \"报告\" });\nexport type HeadAttributeValue = string | true;\nexport type HeadAttributes = Readonly<Record<string, HeadAttributeValue>>;\nexport type ScriptCrossOrigin = \"anonymous\" | \"use-credentials\";\nexport type ScriptReferrerPolicy = \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\";\n/** The normalized script attributes retained after Host validation. */\nexport type ScriptHeadAttributes = Readonly<{\n readonly src?: string;\n readonly type?: string;\n readonly async?: true;\n readonly defer?: true;\n readonly integrity?: string;\n readonly crossorigin?: ScriptCrossOrigin;\n readonly referrerpolicy?: ScriptReferrerPolicy;\n}> & Readonly<Partial<Record<`data-${string}`, string>>>;\n/**\n * The author shape: a closed tag-name union with ordinary string/boolean\n * attributes. The Host still applies tag-specific validation before any value\n * enters a revision, so this preserves author inference without opening raw\n * HTML or bypassing the script/style safety boundary.\n */\nexport type HeadTag = Readonly<{\n readonly tag: \"meta\" | \"link\";\n readonly attrs: HeadAttributes;\n readonly children?: never;\n}> | Readonly<{\n readonly tag: \"script\" | \"style\";\n readonly attrs?: HeadAttributes;\n readonly children?: string;\n}>;\nexport type StyleDeclaration = Readonly<{\n readonly tag: \"style\";\n readonly attrs?: HeadAttributes;\n readonly children: string;\n}>;\n/** Declarative asset value; materialization remains Host-owned. */\nexport type ReportAsset = Readonly<{\n readonly src: string;\n readonly inline?: never;\n}> | Readonly<{\n readonly inline: string;\n readonly src?: never;\n}>;\nexport interface ReportShell {\n readonly title?: LocalizedText;\n readonly theme?: ThemeDefinition;\n readonly dimensionPins?: DimensionPins;\n readonly head?: readonly HeadTag[];\n /**\n * The one pricing source for this Report's cost projections. It must be a\n * pricing-profile/v1 value created by Analysis `definePricingProfile`.\n * Report validates it through Analysis and retains the same frozen object.\n */\n readonly pricing?: PricingProfile;\n}\n/** The page identity made available to callbacks while the ReportSample lives. */\nexport interface PageContext {\n readonly id: string;\n readonly path: string;\n readonly title: LocalizedText;\n /** Present only for one already-enumerated parameterized Page instance. */\n readonly params?: JsonValue;\n}\n/** A canonical locator selects one Host-provided closed Evidence view. */\nexport type EvidenceLocator = AttemptLocator;\nexport type PageEvidence = AttemptEvidenceDomainView;\n/**\n * The deliberately narrow Page data access surface. Evidence is already a\n * closed domain view; no Record reader, source root, filesystem path, or\n * arbitrary lookup enters author callbacks.\n */\nexport interface PageLoadContext {\n readonly page: PageContext;\n readonly evidence: (locator: EvidenceLocator) => Promise<PageEvidence>;\n}\nexport type PageLoad<Params, Input> = (sample: ReportSample, params: Params, context: PageLoadContext) => Input | Promise<Input>;\nexport type PageRender<Input> = (input: Input, context: PageContext) => ReportNode | Promise<ReportNode>;\n/** A parameter codec and the finite set of instances belonging to one build. */\nexport interface PageParams<Params extends JsonValue> {\n readonly encode: (params: Params) => string;\n readonly decode: (key: string) => Params;\n readonly enumerate: (sample: ReportSample) => Iterable<Params> | Promise<Iterable<Params>>;\n}\n/** A typed target for a Report-owned route. */\nexport interface ReportTarget<Params extends JsonValue = JsonValue> {\n readonly page: string;\n readonly params?: Params;\n}\n/** A normal Page. Without load(), its render input is the fixed ReportSample. */\nexport interface PlainPage<Input = ReportSample> {\n readonly id: string;\n readonly path?: string;\n readonly title: LocalizedText;\n readonly navigation?: boolean;\n readonly params?: never;\n readonly load?: PageLoad<void, Input>;\n readonly render: PageRender<Input>;\n}\n/** A parameterized page has no navigation entry until a Host enumerates it. */\nexport interface ParameterizedPage<Params extends JsonValue, Input> {\n readonly id: string;\n readonly path?: string;\n readonly title: LocalizedText;\n readonly navigation: false;\n readonly params: PageParams<Params>;\n readonly load: PageLoad<Params, Input>;\n readonly render: PageRender<Input>;\n}\nexport type Page<Params extends JsonValue | void = void, Input = ReportSample> = [\n Params\n] extends [\n void\n] ? PlainPage<Input> : ParameterizedPage<Extract<Params, JsonValue>, Input>;\ntype AnyPage = PlainPage<any> | ParameterizedPage<any, any>;\ninterface NormalizedPlainPage<Input = unknown> {\n readonly id: string;\n readonly path: string;\n readonly title: LocalizedText;\n readonly navigation: boolean;\n readonly params?: never;\n readonly load?: PageLoad<void, Input>;\n readonly render: PageRender<Input>;\n}\ninterface NormalizedParameterizedPage<Params extends JsonValue = JsonValue, Input = unknown> {\n readonly id: string;\n readonly path: string;\n readonly title: LocalizedText;\n readonly navigation: false;\n readonly params: PageParams<Params>;\n readonly load: PageLoad<Params, Input>;\n readonly render: PageRender<Input>;\n}\ntype NormalizedPage = NormalizedPlainPage | NormalizedParameterizedPage;\n/** Internal product-list helper also used by the built-in declaration factory. */\nexport type NonEmptyArray<Value> = readonly [\n Value,\n ...Value[]\n];\ninterface ReportInput<Pages extends NonEmptyArray<AnyPage> = NonEmptyArray<AnyPage>> extends ReportShell {\n readonly pages: Pages;\n}\n/** Internal input shape for package-built Report factories; not a public manifest alias. */\nexport interface ReportOptions<Pages extends NonEmptyArray<AnyPage> = NonEmptyArray<AnyPage>> extends ReportInput<Pages> {\n}\n/**\n * A frozen Report definition. Callback-bearing pages stay here only while a\n * Host resolves them; a finished Site revision must never retain this value.\n */\nexport interface ReportDefinition extends Omit<ReportShell, \"pricing\"> {\n readonly kind: \"report\";\n /** Structural-only declaration marker that survives independently emitted declarations. */\n readonly __niceevalReportDefinition: never;\n readonly head: readonly HeadTag[];\n readonly pages: NonEmptyArray<NormalizedPage>;\n /** The exact Analysis-created Profile, or the explicit no-Profile state. */\n readonly pricing: PricingProfile | null;\n}\nexport interface ReportMetaPage {\n readonly id: string;\n readonly title: LocalizedText;\n readonly navigation: boolean;\n}\n/** Closed declaration metadata available as ctx.report during one resolve. */\nexport interface ReportMeta {\n readonly title: LocalizedText;\n readonly pages: readonly ReportMetaPage[];\n /**\n * The exact same frozen value as the owning ReportDefinition's `pricing`.\n * `ctx.report.pricing === report.pricing` holds by construction; consumers\n * pass it to the profile-taking `costUSD(profile)` / `totalCostUSD(profile)`.\n */\n readonly pricing: PricingProfile | null;\n}\nconst REPORT_DESCRIPTOR: unique symbol = Symbol.for(\"niceeval.report.definition/v2\");\nconst REPORT_DESCRIPTOR_VERSION = 2;\n// This exact pair is shared with execution/machine.ts. The Report module\n// does not import that Host module: it only recognizes and copies this\n// data-only descriptor while normalizing an input definition.\nconst BUILT_IN_MACHINE_DESCRIPTOR = Symbol.for(\"niceeval.report.built-in-machine-descriptor/v2\");\nconst BUILT_IN_MACHINE_REPORT_DESCRIPTOR = Symbol.for(\"niceeval.report.built-in-machine-report-descriptor/v2\");\nconst BUILT_IN_MACHINE_DESCRIPTOR_BRAND = \"niceeval.report.built-in-machine-descriptor/v2\";\ninterface ReportDescriptor {\n readonly version: 2;\n readonly kind: \"report\";\n}\ninterface BuiltInMachineDescriptorCopy {\n readonly producerId: string;\n}\n/**\n * Defines a Report with a non-empty Page list. A separate overload accepts a\n * single-page shorthand and normalizes it to /.\n */\nexport function defineReport<const Pages extends NonEmptyArray<AnyPage>>(definition: ReportInput<Pages>): ReportDefinition;\nexport function defineReport(render: (sample: ReportSample) => ReportNode | Promise<ReportNode>): ReportDefinition;\nexport function defineReport(input: unknown): ReportDefinition {\n const source = typeof input === \"function\"\n ? {\n pages: [{ id: DEFAULT_PAGE_ID, title: DEFAULT_PAGE_TITLE, render: input }],\n }\n : input;\n const builtInMachine = readBuiltInMachineDescriptor(source);\n const fields = ownFields(source, \"defineReport\", [BUILT_IN_MACHINE_REPORT_DESCRIPTOR]);\n assertOnlyFields(fields, [\"title\", \"theme\", \"dimensionPins\", \"head\", \"pages\", \"pricing\"], \"defineReport\", [\"title\", \"theme\", \"dimensionPins\", \"head\", \"pricing\"]);\n const title = fields.has(\"title\") ? normalizeLocalizedText(fields.get(\"title\"), \"Report title\") : undefined;\n const theme = fields.has(\"theme\") ? normalizeTheme(fields.get(\"theme\")) : undefined;\n const dimensionPins = fields.has(\"dimensionPins\")\n ? normalizeDimensionPins(fields.get(\"dimensionPins\"))\n : undefined;\n const head = fields.has(\"head\") ? normalizeHead(fields.get(\"head\")) : Object.freeze([]) as readonly HeadTag[];\n const pages = normalizePages(fields.get(\"pages\"));\n const pricing = fields.has(\"pricing\") ? normalizePricingProfile(fields.get(\"pricing\")) : builtInPricingProfile;\n const report: Record<string | symbol, unknown> = {\n kind: \"report\",\n ...(title === undefined ? {} : { title }),\n ...(theme === undefined ? {} : { theme }),\n ...(dimensionPins === undefined ? {} : { dimensionPins }),\n pricing,\n head,\n pages,\n };\n Object.defineProperty(report, REPORT_DESCRIPTOR, {\n value: Object.freeze({ version: REPORT_DESCRIPTOR_VERSION, kind: \"report\" } satisfies ReportDescriptor),\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (builtInMachine !== undefined) {\n Object.defineProperty(report, BUILT_IN_MACHINE_REPORT_DESCRIPTOR, {\n value: builtInMachine,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n }\n return Object.freeze(report) as unknown as ReportDefinition;\n}\n/** Recognizes a Report from another installed copy of niceeval as well. */\nexport function isReport(value: unknown): value is ReportDefinition {\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n if (!hasExactReportFields(value))\n return false;\n if (value.kind !== \"report\" || !Object.hasOwn(value, \"pricing\") ||\n (value.pricing !== null && !isPricingProfile(value.pricing)))\n return false;\n const descriptor = Object.getOwnPropertyDescriptor(value, REPORT_DESCRIPTOR);\n if (!isFrozenHiddenDataDescriptor(descriptor) || !isReportDescriptor(descriptor.value))\n return false;\n if (!isFrozenHead(value.head) || !isFrozenPages(value.pages))\n return false;\n return isOptionalFrozenLocalizedText(value.title) &&\n isOptionalThemeDefinition(value.theme) && isOptionalFrozenDimensionPins(value.dimensionPins) &&\n isValidBuiltInMachineReportDescriptor(value);\n}\n/** Internal Host boundary: validates the Symbol.for descriptor before use. */\nfunction reportDefinition(value: ReportDefinition): ReportDefinition {\n if (!isReport(value))\n throw new TypeError(\"a Report must be created by defineReport\");\n return value;\n}\n/** The declaration title is stable without opening a Sample. */\nexport function resolveReportTitle(value: ReportDefinition): LocalizedText {\n const report = reportDefinition(value);\n return report.title ?? report.pages[0].title ?? DEFAULT_PAGE_TITLE;\n}\n/** Produces declaration-only metadata for ctx.report; it never opens a Sample. */\nexport function buildReportMeta(value: ReportDefinition): ReportMeta {\n const report = reportDefinition(value);\n const meta: Record<string, unknown> = {\n title: resolveReportTitle(report),\n pages: Object.freeze(report.pages.map((page) => Object.freeze({\n id: page.id,\n title: page.title,\n navigation: page.navigation,\n }))),\n pricing: report.pricing,\n };\n return Object.freeze(meta) as unknown as ReportMeta;\n}\nfunction isReportDescriptor(value: unknown): value is ReportDescriptor {\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n if (!hasExactOwnDataFields(value, [\"version\", \"kind\"]))\n return false;\n return value.version === REPORT_DESCRIPTOR_VERSION && value.kind === \"report\";\n}\n/**\n * A global Symbol alone is not provenance. A duplicate package can recognize\n * a frozen Report, but a hand-written lookalike must still satisfy the exact\n * normalized representation `defineReport` emits: no hidden fields,\n * accessors, mutable arrays, or raw Page/Head shapes survive this boundary.\n */\nfunction hasExactReportFields(value: Record<string, unknown>): boolean {\n const names = Object.getOwnPropertyNames(value);\n const allowed = new Set([\"kind\", \"title\", \"theme\", \"dimensionPins\", \"pricing\", \"head\", \"pages\"]);\n if (!names.includes(\"kind\") || !names.includes(\"pricing\") || !names.includes(\"head\") || !names.includes(\"pages\") ||\n names.some((name) => !allowed.has(name)))\n return false;\n for (const name of names) {\n const descriptor = Object.getOwnPropertyDescriptor(value, name);\n if (!isEnumerableDataDescriptor(descriptor))\n return false;\n }\n const symbols = Object.getOwnPropertySymbols(value);\n if (symbols.some((symbol) => symbol !== REPORT_DESCRIPTOR && symbol !== BUILT_IN_MACHINE_REPORT_DESCRIPTOR)) {\n return false;\n }\n return symbols.includes(REPORT_DESCRIPTOR) &&\n [\"title\", \"theme\", \"dimensionPins\"].every((name) => !Object.hasOwn(value, name) || value[name] !== undefined);\n}\nfunction isValidBuiltInMachineReportDescriptor(value: Record<string, unknown>): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(value, BUILT_IN_MACHINE_REPORT_DESCRIPTOR);\n if (descriptor === undefined)\n return true;\n return isFrozenHiddenDataDescriptor(descriptor) && isBuiltInMachineDescriptor(descriptor.value);\n}\nfunction isFrozenHiddenDataDescriptor(descriptor: PropertyDescriptor | undefined): descriptor is PropertyDescriptor & {\n readonly value: unknown;\n} {\n return descriptor !== undefined && \"value\" in descriptor &&\n descriptor.enumerable === false && descriptor.writable === false && descriptor.configurable === false &&\n typeof descriptor.get === \"undefined\" && typeof descriptor.set === \"undefined\" &&\n typeof descriptor.value === \"object\" && descriptor.value !== null && Object.isFrozen(descriptor.value);\n}\nfunction isEnumerableDataDescriptor(descriptor: PropertyDescriptor | undefined): descriptor is PropertyDescriptor & {\n readonly value: unknown;\n} {\n return descriptor !== undefined && \"value\" in descriptor && descriptor.enumerable === true &&\n typeof descriptor.get === \"undefined\" && typeof descriptor.set === \"undefined\";\n}\nfunction hasExactOwnDataFields(value: Record<string, unknown>, expected: readonly string[]): boolean {\n const names = Object.getOwnPropertyNames(value);\n if (names.length !== expected.length || expected.some((name) => !names.includes(name)) ||\n Object.getOwnPropertySymbols(value).length !== 0)\n return false;\n return names.every((name) => isEnumerableDataDescriptor(Object.getOwnPropertyDescriptor(value, name)));\n}\nfunction isOptionalThemeDefinition(value: unknown): boolean {\n return value === undefined || isThemeDefinition(value);\n}\nfunction isOptionalFrozenLocalizedText(value: unknown): boolean {\n return value === undefined || isFrozenLocalizedText(value);\n}\nfunction isOptionalFrozenDimensionPins(value: unknown): boolean {\n return value === undefined || isFrozenDimensionPins(value);\n}\nfunction isFrozenLocalizedText(value: unknown): value is LocalizedText {\n if (typeof value === \"string\")\n return value.length > 0;\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n const names = Object.getOwnPropertyNames(value);\n return names.length > 0 && Object.getOwnPropertySymbols(value).length === 0 && names.every((name) => {\n const descriptor = Object.getOwnPropertyDescriptor(value, name);\n return name.length > 0 && isEnumerableDataDescriptor(descriptor) && typeof descriptor.value === \"string\";\n }) && names.some((name) => (value as Readonly<Record<string, unknown>>)[name] !== \"\");\n}\nfunction isFrozenHead(value: unknown): value is readonly HeadTag[] {\n if (!Array.isArray(value) || !Object.isFrozen(value) || !isClosedArray(value))\n return false;\n return value.every(isFrozenHeadTag);\n}\nfunction isFrozenHeadTag(value: unknown): value is HeadTag {\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n try {\n normalizeHeadTag(value, \"Report head\");\n }\n catch {\n return false;\n }\n const tag = value.tag;\n if (tag === \"meta\" || tag === \"link\") {\n return hasExactOwnDataFields(value, [\"tag\", \"attrs\"]) && isFrozenHeadAttributes(value.attrs);\n }\n if (tag === \"style\") {\n const valid = hasExactOwnDataFields(value, [\"tag\", \"children\"]) ||\n hasExactOwnDataFields(value, [\"tag\", \"attrs\", \"children\"]);\n return valid && typeof value.children === \"string\" &&\n (value.attrs === undefined || isFrozenHeadAttributes(value.attrs));\n }\n if (tag !== \"script\")\n return false;\n const valid = hasExactOwnDataFields(value, [\"tag\", \"attrs\"]) ||\n hasExactOwnDataFields(value, [\"tag\", \"children\"]) ||\n hasExactOwnDataFields(value, [\"tag\", \"attrs\", \"children\"]);\n if (!valid || (value.attrs !== undefined && !isFrozenHeadAttributes(value.attrs)) ||\n (value.children !== undefined && typeof value.children !== \"string\"))\n return false;\n const attrs = value.attrs as Readonly<Record<string, unknown>> | undefined;\n const hasSource = attrs !== undefined && typeof attrs.src === \"string\";\n return hasSource !== Object.hasOwn(value, \"children\");\n}\nfunction isFrozenHeadAttributes(value: unknown): value is HeadAttributes {\n if (!isPlainObject(value) || !Object.isFrozen(value) || Object.getOwnPropertySymbols(value).length !== 0)\n return false;\n return Object.getOwnPropertyNames(value).every((name) => {\n const descriptor = Object.getOwnPropertyDescriptor(value, name);\n return isEnumerableDataDescriptor(descriptor) && (descriptor.value === true || typeof descriptor.value === \"string\");\n });\n}\nfunction isFrozenPages(value: unknown): value is NonEmptyArray<NormalizedPage> {\n if (!Array.isArray(value) || value.length === 0 || !Object.isFrozen(value) || !isClosedArray(value))\n return false;\n const ids = new Set<string>();\n const plainPaths = new Set<string>();\n for (const page of value) {\n if (!isFrozenNormalizedPage(page) || ids.has(page.id))\n return false;\n ids.add(page.id);\n if (page.params === undefined) {\n if (plainPaths.has(page.path))\n return false;\n plainPaths.add(page.path);\n }\n }\n return true;\n}\nfunction isFrozenNormalizedPage(value: unknown): value is NormalizedPage {\n if (!isPlainObject(value) || !Object.isFrozen(value) || !isFrozenLocalizedText(value.title) ||\n typeof value.id !== \"string\" || typeof value.path !== \"string\" || typeof value.navigation !== \"boolean\" ||\n typeof value.render !== \"function\")\n return false;\n try {\n normalizePageId(value.id, \"Report page\");\n normalizePath(value.path, \"Report page\");\n }\n catch {\n return false;\n }\n if (Object.hasOwn(value, \"params\")) {\n return value.navigation === false && typeof value.load === \"function\" &&\n hasExactOwnDataFields(value, [\"id\", \"path\", \"title\", \"navigation\", \"params\", \"load\", \"render\"]) &&\n isFrozenPageParams(value.params);\n }\n const valid = hasExactOwnDataFields(value, [\"id\", \"path\", \"title\", \"navigation\", \"render\"]) ||\n hasExactOwnDataFields(value, [\"id\", \"path\", \"title\", \"navigation\", \"load\", \"render\"]);\n return valid && (!Object.hasOwn(value, \"load\") || typeof value.load === \"function\");\n}\nfunction isFrozenDimensionPins(value: unknown): value is DimensionPins {\n if (!isPlainObject(value) || !Object.isFrozen(value) || Object.getOwnPropertySymbols(value).length !== 0)\n return false;\n try {\n assertDimensionPins(value);\n }\n catch {\n return false;\n }\n return Object.getOwnPropertyNames(value).every((dimension) => {\n const descriptor = Object.getOwnPropertyDescriptor(value, dimension);\n if (!isEnumerableDataDescriptor(descriptor) || !isPlainObject(descriptor.value) ||\n !Object.isFrozen(descriptor.value) || Object.getOwnPropertySymbols(descriptor.value).length !== 0) {\n return false;\n }\n return Object.getOwnPropertyNames(descriptor.value).every((entry) => isEnumerableDataDescriptor(Object.getOwnPropertyDescriptor(descriptor.value, entry)));\n });\n}\nfunction isFrozenPageParams(value: unknown): value is PageParams<JsonValue> {\n return isPlainObject(value) && Object.isFrozen(value) &&\n hasExactOwnDataFields(value, [\"encode\", \"decode\", \"enumerate\"]) &&\n typeof value.encode === \"function\" && typeof value.decode === \"function\" && typeof value.enumerate === \"function\";\n}\nfunction isClosedArray(value: readonly unknown[]): boolean {\n for (let index = 0; index < value.length; index += 1) {\n if (!isEnumerableDataDescriptor(Object.getOwnPropertyDescriptor(value, String(index))))\n return false;\n }\n const names = Object.getOwnPropertyNames(value);\n return names.length === value.length + 1 && names.includes(\"length\") &&\n names.every((name) => name === \"length\" || isArrayIndex(name)) && Object.getOwnPropertySymbols(value).length === 0;\n}\n/**\n * Copies the versioned identifier only. The Host owns the producer registry;\n * no executable field can pass from an input definition to its frozen Report.\n */\nfunction readBuiltInMachineDescriptor(value: unknown): BuiltInMachineDescriptorCopy | undefined {\n if ((typeof value !== \"object\" && typeof value !== \"function\") || value === null)\n return undefined;\n const property = Object.getOwnPropertyDescriptor(value, BUILT_IN_MACHINE_REPORT_DESCRIPTOR);\n if (property === undefined)\n return undefined;\n if (!(\"value\" in property) || property.enumerable || !isBuiltInMachineDescriptor(property.value)) {\n throw new TypeError(\"defineReport received an invalid built-in machine descriptor\");\n }\n const copy: Record<string | symbol, unknown> = { producerId: property.value.producerId };\n Object.defineProperty(copy, BUILT_IN_MACHINE_DESCRIPTOR, {\n value: BUILT_IN_MACHINE_DESCRIPTOR_BRAND,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n return Object.freeze(copy) as unknown as BuiltInMachineDescriptorCopy;\n}\nfunction isBuiltInMachineDescriptor(value: unknown): value is BuiltInMachineDescriptorCopy {\n if (!isPlainObject(value) || !hasOnlyStringFields(value, [\"producerId\"]) || !isVersionedProducerId(value.producerId)) {\n return false;\n }\n const brand = Object.getOwnPropertyDescriptor(value, BUILT_IN_MACHINE_DESCRIPTOR);\n return brand !== undefined && \"value\" in brand && brand.value === BUILT_IN_MACHINE_DESCRIPTOR_BRAND;\n}\nfunction hasOnlyStringFields(value: Record<string, unknown>, expected: readonly string[]): boolean {\n const keys = Object.keys(value);\n return keys.length === expected.length && expected.every((key) => Object.hasOwn(value, key));\n}\nfunction isVersionedProducerId(value: unknown): value is string {\n return typeof value === \"string\" && /^[^\\s@][^\\s]*@v[1-9][0-9]*$/u.test(value);\n}\nfunction normalizePages(value: unknown): NonEmptyArray<NormalizedPage> {\n if (!Array.isArray(value) || value.length === 0) {\n throw new TypeError(\"defineReport requires a non-empty pages array\");\n }\n assertArray(value, \"Report pages\");\n const pages = value.map((page, index) => normalizePage(page, index));\n const ids = new Set<string>();\n const plainPaths = new Set<string>();\n for (const page of pages) {\n if (ids.has(page.id))\n throw new TypeError(`Report page id ${JSON.stringify(page.id)} is duplicated`);\n ids.add(page.id);\n if (page.params === undefined) {\n if (plainPaths.has(page.path)) {\n throw new TypeError(`ordinary Report page path ${JSON.stringify(page.path)} is duplicated`);\n }\n plainPaths.add(page.path);\n }\n }\n return Object.freeze(pages) as NonEmptyArray<NormalizedPage>;\n}\nfunction normalizePage(value: unknown, index: number): NormalizedPage {\n const label = `Report page at pages[${index}]`;\n const fields = ownFields(value, label);\n const parameterized = fields.has(\"params\");\n assertOnlyFields(fields, parameterized\n ? [\"id\", \"path\", \"title\", \"navigation\", \"params\", \"load\", \"render\"]\n : [\"id\", \"path\", \"title\", \"navigation\", \"load\", \"render\"], label, parameterized ? [\"path\"] : [\"path\", \"navigation\", \"load\"]);\n const id = normalizePageId(fields.get(\"id\"), label);\n const path = fields.has(\"path\") && fields.get(\"path\") !== undefined\n ? normalizePath(fields.get(\"path\"), label)\n : derivePagePath(id);\n const title = normalizeLocalizedText(fields.get(\"title\"), `${label} title`);\n const render = requireFunction(fields.get(\"render\"), `${label}.render`);\n if (parameterized) {\n if (fields.get(\"navigation\") !== false) {\n throw new TypeError(`${label} declares params and must set navigation: false`);\n }\n const params = normalizePageParams(fields.get(\"params\"), `${label}.params`);\n const load = requireFunction(fields.get(\"load\"), `${label}.load`);\n return Object.freeze({\n id,\n path,\n title,\n navigation: false as const,\n params,\n load: load as PageLoad<JsonValue, unknown>,\n render: render as PageRender<unknown>,\n }) as NormalizedParameterizedPage<JsonValue, unknown>;\n }\n const navigation = fields.get(\"navigation\");\n if (navigation !== undefined && typeof navigation !== \"boolean\") {\n throw new TypeError(`${label}.navigation must be a boolean when supplied`);\n }\n const load = fields.get(\"load\");\n if (load !== undefined && typeof load !== \"function\") {\n throw new TypeError(`${label}.load must be a function when supplied`);\n }\n return Object.freeze({\n id,\n path,\n title,\n navigation: navigation !== false,\n ...(load === undefined ? {} : { load: load as PageLoad<void, unknown> }),\n render: render as PageRender<unknown>,\n }) as NormalizedPlainPage<unknown>;\n}\nfunction derivePagePath(id: string): string {\n return id === DEFAULT_PAGE_ID ? \"/\" : `/${id}`;\n}\nfunction normalizePageParams(value: unknown, label: string): PageParams<JsonValue> {\n const fields = ownFields(value, label);\n assertOnlyFields(fields, [\"encode\", \"decode\", \"enumerate\"], label);\n const encode = requireFunction(fields.get(\"encode\"), `${label}.encode`);\n const decode = requireFunction(fields.get(\"decode\"), `${label}.decode`);\n const enumerate = requireFunction(fields.get(\"enumerate\"), `${label}.enumerate`);\n return Object.freeze({\n encode: encode as PageParams<JsonValue>[\"encode\"],\n decode: decode as PageParams<JsonValue>[\"decode\"],\n enumerate: enumerate as PageParams<JsonValue>[\"enumerate\"],\n });\n}\nconst PAGE_ID_PATTERN = /^[a-z][a-z0-9_-]*$/;\nconst PATH_SEGMENT_PATTERN = /^[a-z0-9][a-z0-9._~-]*$/;\nconst WINDOWS_DEVICE_PATTERN = /^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\\..*)?$/i;\nconst MAX_PAGE_ID_BYTES = 128;\nconst MAX_PATH_SEGMENT_BYTES = 128;\nconst MAX_PATH_BYTES = 1024;\nconst MAX_PATH_SEGMENTS = 32;\nconst encoder = new TextEncoder();\nfunction normalizePageId(value: unknown, label: string): string {\n if (typeof value !== \"string\" || !PAGE_ID_PATTERN.test(value) || /^[0-9]+$/.test(value)) {\n throw new TypeError(`${label}.id must match [a-z][a-z0-9_-]* and cannot be an ordinal`);\n }\n if (encoder.encode(value).byteLength > MAX_PAGE_ID_BYTES) {\n throw new TypeError(`${label}.id may contain at most ${MAX_PAGE_ID_BYTES} UTF-8 bytes`);\n }\n return value;\n}\nfunction normalizePath(value: unknown, label: string): string {\n if (typeof value !== \"string\")\n throw new TypeError(`${label}.path must be a string`);\n if (value === \"/\")\n return value;\n if (!value.startsWith(\"/\") || value.endsWith(\"/\") || value.includes(\"%\") ||\n value.includes(\"?\") || value.includes(\"#\") || value.includes(\"\\\\\")) {\n throw new TypeError(`${label}.path must be a normalized absolute Report route`);\n }\n if (encoder.encode(value).byteLength > MAX_PATH_BYTES) {\n throw new TypeError(`${label}.path may contain at most ${MAX_PATH_BYTES} UTF-8 bytes`);\n }\n const segments = value.slice(1).split(\"/\");\n if (segments.length === 0 || segments.length > MAX_PATH_SEGMENTS) {\n throw new TypeError(`${label}.path must contain between 1 and ${MAX_PATH_SEGMENTS} segments`);\n }\n for (const segment of segments) {\n if (!PATH_SEGMENT_PATTERN.test(segment) || segment === \".\" || segment === \"..\" ||\n segment.endsWith(\".\") || segment.endsWith(\" \") || WINDOWS_DEVICE_PATTERN.test(segment)) {\n throw new TypeError(`${label}.path contains an invalid route segment`);\n }\n if (encoder.encode(segment).byteLength > MAX_PATH_SEGMENT_BYTES) {\n throw new TypeError(`${label}.path has a segment longer than ${MAX_PATH_SEGMENT_BYTES} UTF-8 bytes`);\n }\n }\n return value;\n}\nfunction normalizeTheme(value: unknown): ThemeDefinition {\n if (!isThemeDefinition(value)) {\n throw new TypeError(\"Report theme must be a ThemeDefinition created by defineTheme\");\n }\n return value;\n}\n// PricingProfile normalization and cross-package validation have exactly one\n// owner: `niceeval/analysis`. Preserve the validated frozen reference so\n// `ctx.report.pricing === ReportDefinition.pricing` remains true.\nfunction normalizePricingProfile(value: unknown): PricingProfile {\n if (!isPricingProfile(value)) {\n throw new TypeError(\"Report pricing must be a PricingProfile created by definePricingProfile\");\n }\n return value;\n}\nfunction normalizeDimensionPins(value: unknown): DimensionPins {\n assertDimensionPins(value);\n const dimensions = ownFields(value, \"Report dimensionPins\");\n const copy: Record<string, Readonly<Record<string, number>>> = Object.create(null) as Record<string, Readonly<Record<string, number>>>;\n for (const [dimension, rawValues] of dimensions) {\n const values = ownFields(rawValues, `Report dimensionPins.${dimension}`);\n const pinned: Record<string, number> = Object.create(null) as Record<string, number>;\n for (const [valueName, slot] of values) {\n if (typeof slot !== \"number\") {\n throw new TypeError(`Report dimensionPins.${dimension}.${valueName} must be a seriesSlot number`);\n }\n pinned[valueName] = slot;\n }\n copy[dimension] = Object.freeze(pinned);\n }\n return Object.freeze(copy);\n}\nconst HEAD_ATTRIBUTE_NAME = /^[A-Za-z_:][A-Za-z0-9:._-]*$/;\nconst SAFE_LINK_RELATIONS = new Set([\"alternate\", \"author\", \"canonical\", \"license\"]);\nconst SCRIPT_DATA_ATTRIBUTE_NAME = /^data-[a-z][a-z0-9_.:-]*$/;\nconst SCRIPT_REFERRER_POLICIES = new Set<ScriptReferrerPolicy>([\n \"no-referrer\",\n \"no-referrer-when-downgrade\",\n \"origin\",\n \"origin-when-cross-origin\",\n \"same-origin\",\n \"strict-origin\",\n \"strict-origin-when-cross-origin\",\n \"unsafe-url\",\n]);\nconst SCRIPT_INTEGRITY_TOKEN = /^(?:sha256|sha384|sha512)-[A-Za-z0-9+/_-]+={0,2}(?:\\?[A-Za-z0-9_-]+)?$/;\nconst SCRIPT_TYPE = /^(?:module|importmap|speculationrules|[A-Za-z0-9!#$&^_.+-]+\\/[A-Za-z0-9!#$&^_.+-]+(?:\\s*;\\s*[A-Za-z0-9!#$&^_.+-]+=[A-Za-z0-9!#$&^_.+-]+)*)$/;\nconst INLINE_SCRIPT_BYTES_MAX = 65536;\nfunction normalizeHead(value: unknown): readonly HeadTag[] {\n if (!Array.isArray(value))\n throw new TypeError(\"Report head must be an array of structured meta, link, style, or script declarations\");\n assertArray(value, \"Report head\");\n return Object.freeze(value.map((entry, index) => normalizeHeadTag(entry, `Report head[${index}]`)));\n}\nfunction normalizeHeadTag(value: unknown, label: string): HeadTag {\n const fields = ownFields(value, label);\n const tag = fields.get(\"tag\");\n if (tag === \"script\") {\n assertOnlyFields(fields, [\"tag\", \"attrs\", \"children\"], label, [\"attrs\", \"children\"]);\n const attrs = fields.has(\"attrs\") ? normalizeScriptAttributes(fields.get(\"attrs\"), `${label}.attrs`) : undefined;\n const source = attrs?.src;\n const hasInline = fields.has(\"children\");\n if ((source === undefined) === !hasInline) {\n throw new TypeError(`${label} script must declare exactly one of attrs.src or inline children`);\n }\n if (hasInline) {\n const children = fields.get(\"children\");\n if (typeof children !== \"string\")\n throw new TypeError(`${label}.children must be inline script text`);\n assertInlineScript(children, `${label}.children`);\n return Object.freeze({\n tag,\n ...(attrs === undefined ? {} : { attrs: withoutScriptSource(attrs) }),\n children,\n }) as HeadTag;\n }\n return Object.freeze({\n tag,\n attrs: attrs as ScriptHeadAttributes & Readonly<{\n readonly src: string;\n }>,\n }) as HeadTag;\n }\n if (tag !== \"meta\" && tag !== \"link\" && tag !== \"style\") {\n throw new TypeError(`${label}.tag must be \\\"meta\\\", \\\"link\\\", \\\"style\\\", or \\\"script\\\"`);\n }\n if (tag === \"style\") {\n assertOnlyFields(fields, [\"tag\", \"attrs\", \"children\"], label, [\"attrs\"]);\n const children = fields.get(\"children\");\n if (typeof children !== \"string\")\n throw new TypeError(`${label}.children must be CSS text`);\n assertSafeStyle(children, `${label}.children`);\n const attrs = fields.has(\"attrs\")\n ? normalizeHeadAttributes(fields.get(\"attrs\"), `${label}.attrs`, [\"media\", \"type\"])\n : undefined;\n if (attrs?.type !== undefined && attrs.type !== \"text/css\") {\n throw new TypeError(`${label}.attrs.type must be \\\"text/css\\\" when supplied`);\n }\n return Object.freeze({ tag, ...(attrs === undefined ? {} : { attrs }), children });\n }\n assertOnlyFields(fields, [\"tag\", \"attrs\"], label);\n const attrs = normalizeHeadAttributes(fields.get(\"attrs\"), `${label}.attrs`, tag === \"meta\" ? [\"content\", \"itemprop\", \"name\", \"property\"] : [\"href\", \"hreflang\", \"rel\", \"title\", \"type\"]);\n if (tag === \"link\") {\n const rel = attrs.rel;\n const href = attrs.href;\n if (typeof rel !== \"string\" || !SAFE_LINK_RELATIONS.has(rel.toLowerCase()) || typeof href !== \"string\") {\n throw new TypeError(`${label} only permits inert link metadata (rel: alternate, author, canonical, or license) with a local href`);\n }\n assertLocalHeadReference(href, `${label}.attrs.href`);\n }\n return Object.freeze({ tag, attrs });\n}\nfunction normalizeScriptAttributes(value: unknown, label: string): ScriptHeadAttributes {\n const fields = ownFields(value, label);\n const copy: Record<string, string | true> = Object.create(null) as Record<string, string | true>;\n for (const [name, attribute] of fields) {\n const lower = name.toLowerCase();\n if (lower.startsWith(\"on\") || lower === \"nonce\") {\n throw new TypeError(`${label}.${name} is not permitted on a Report script`);\n }\n if (SCRIPT_DATA_ATTRIBUTE_NAME.test(name)) {\n if (typeof attribute !== \"string\")\n throw new TypeError(`${label}.${name} must be a string data-* value`);\n copy[name] = attribute;\n continue;\n }\n switch (name) {\n case \"src\":\n if (typeof attribute !== \"string\")\n throw new TypeError(`${label}.src must be a string`);\n assertScriptSource(attribute, `${label}.src`);\n copy.src = attribute;\n break;\n case \"type\":\n if (typeof attribute !== \"string\" || !SCRIPT_TYPE.test(attribute)) {\n throw new TypeError(`${label}.type must be a supported script type or MIME type`);\n }\n copy.type = attribute;\n break;\n case \"async\":\n case \"defer\":\n if (attribute !== true)\n throw new TypeError(`${label}.${name} must be true when supplied`);\n copy[name] = true;\n break;\n case \"integrity\":\n if (typeof attribute !== \"string\" || attribute.length === 0 ||\n !attribute.split(/\\s+/u).every((token) => SCRIPT_INTEGRITY_TOKEN.test(token))) {\n throw new TypeError(`${label}.integrity must contain one or more sha256/384/512 SRI tokens`);\n }\n copy.integrity = attribute;\n break;\n case \"crossorigin\":\n if (attribute !== \"anonymous\" && attribute !== \"use-credentials\") {\n throw new TypeError(`${label}.crossorigin must be \\\"anonymous\\\" or \\\"use-credentials\\\"`);\n }\n copy.crossorigin = attribute;\n break;\n case \"referrerpolicy\":\n if (typeof attribute !== \"string\" || !SCRIPT_REFERRER_POLICIES.has(attribute as ScriptReferrerPolicy)) {\n throw new TypeError(`${label}.referrerpolicy must be a recognized referrer policy`);\n }\n copy.referrerpolicy = attribute;\n break;\n default:\n throw new TypeError(`${label}.${name} is not a supported Report script attribute`);\n }\n }\n return Object.freeze(copy) as ScriptHeadAttributes;\n}\nfunction withoutScriptSource(value: ScriptHeadAttributes): Omit<ScriptHeadAttributes, \"src\"> {\n const { src: _source, ...attrs } = value;\n return Object.freeze(attrs);\n}\nfunction assertScriptSource(value: string, label: string): void {\n if (value.length === 0 || value.startsWith(\"//\") || value.includes(\"\\\\\") || /[\\u0000-\\u001F\\u007F]/u.test(value)) {\n throw new TypeError(`${label} must be a revision-local path, HTTPS URL, or loopback HTTP URL`);\n }\n if (!/^[A-Za-z][A-Za-z0-9+.-]*:/.test(value)) {\n const pathname = value.split(/[?#]/, 1)[0] ?? \"\";\n if (pathname.length === 0 || pathname.split(\"/\").some((segment) => segment === \"..\")) {\n throw new TypeError(`${label} must stay within the closed site revision`);\n }\n return;\n }\n let parsed: URL;\n try {\n parsed = new URL(value);\n }\n catch {\n throw new TypeError(`${label} must be a valid HTTPS or loopback HTTP URL`);\n }\n if (parsed.username.length > 0 || parsed.password.length > 0) {\n throw new TypeError(`${label} cannot contain URL credentials`);\n }\n if (parsed.protocol === \"https:\")\n return;\n if (parsed.protocol === \"http:\" && isLoopbackHostname(parsed.hostname))\n return;\n throw new TypeError(`${label} must use HTTPS or HTTP only for a loopback hostname`);\n}\nfunction isLoopbackHostname(value: string): boolean {\n const hostname = value.toLowerCase().replace(/^\\[|\\]$/g, \"\");\n return hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\";\n}\nfunction assertInlineScript(value: string, label: string): void {\n if (encoder.encode(value).byteLength > INLINE_SCRIPT_BYTES_MAX) {\n throw new TypeError(`${label} may contain at most ${INLINE_SCRIPT_BYTES_MAX} UTF-8 bytes`);\n }\n if (/<\\/script\\b/i.test(value))\n throw new TypeError(`${label} cannot contain </script`);\n}\nfunction normalizeHeadAttributes(value: unknown, label: string, allowed: readonly string[]): HeadAttributes {\n const fields = ownFields(value, label);\n const allowedNames = new Set(allowed);\n const copy: Record<string, HeadAttributeValue> = Object.create(null) as Record<string, HeadAttributeValue>;\n for (const [name, attribute] of fields) {\n if (!HEAD_ATTRIBUTE_NAME.test(name) || name.toLowerCase().startsWith(\"on\") || !allowedNames.has(name)) {\n throw new TypeError(`${label}.${name} is not a safe ${allowed.join(\", \")} attribute`);\n }\n if (attribute !== true && typeof attribute !== \"string\") {\n throw new TypeError(`${label}.${name} must be a string or true`);\n }\n copy[name] = attribute;\n }\n return Object.freeze(copy);\n}\nfunction assertLocalHeadReference(value: string, label: string): void {\n if (value.length === 0 || value.startsWith(\"//\") || /^[A-Za-z][A-Za-z0-9+.-]*:/.test(value)) {\n throw new TypeError(`${label} must be a local metadata reference; network URLs and URL schemes are forbidden`);\n }\n}\nfunction assertSafeStyle(value: string, label: string): void {\n if (/<\\/style/i.test(value))\n throw new TypeError(`${label} cannot contain </style>`);\n if (/@import\\b|url\\s*\\(|expression\\s*\\(|-moz-binding\\b|\\bbehavior\\s*:/i.test(value)) {\n throw new TypeError(`${label} cannot import, fetch, or execute external resources`);\n }\n}\nfunction normalizeLocalizedText(value: unknown, label: string): LocalizedText {\n if (typeof value === \"string\") {\n if (value.length === 0)\n throw new TypeError(`${label} must not be an empty string`);\n return value;\n }\n const fields = ownFields(value, label);\n if (fields.size === 0)\n throw new TypeError(`${label} must be a string or a non-empty locale map`);\n const copy: Record<string, string> = Object.create(null) as Record<string, string>;\n let hasNonEmptyText = false;\n for (const [locale, text] of fields) {\n if (locale.length === 0 || typeof text !== \"string\") {\n throw new TypeError(`${label} locale entries must use non-empty string keys and values`);\n }\n copy[locale] = text;\n hasNonEmptyText ||= text.length > 0;\n }\n if (!hasNonEmptyText) {\n throw new TypeError(`${label} locale map must contain at least one non-empty text value`);\n }\n return Object.freeze(copy);\n}\nfunction requireFunction(value: unknown, label: string): (...arguments_: never[]) => unknown {\n if (typeof value !== \"function\")\n throw new TypeError(`${label} must be a function`);\n return value as (...arguments_: never[]) => unknown;\n}\nfunction ownFields(value: unknown, label: string, allowedHiddenSymbols: readonly symbol[] = []): ReadonlyMap<string, unknown> {\n if (!isPlainObject(value))\n throw new TypeError(`${label} must be a direct plain object`);\n const fields: Array<readonly [\n string,\n unknown\n ]> = [];\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key !== \"string\") {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!allowedHiddenSymbols.includes(key) || descriptor === undefined || descriptor.enumerable || !(\"value\" in descriptor)) {\n throw new TypeError(`${label} cannot contain symbol fields`);\n }\n continue;\n }\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor === undefined || !descriptor.enumerable || !(\"value\" in descriptor)) {\n throw new TypeError(`${label} cannot contain accessors or hidden fields`);\n }\n fields.push([key, descriptor.value]);\n }\n return new Map(fields);\n}\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\nfunction assertOnlyFields(fields: ReadonlyMap<string, unknown>, allowed: readonly string[], label: string, optional: readonly string[] = []): void {\n const allowedFields = new Set(allowed);\n for (const key of fields.keys()) {\n if (!allowedFields.has(key))\n throw new TypeError(`${label} has an unknown field: ${key}`);\n }\n for (const key of allowed) {\n if (!fields.has(key) && !optional.includes(key)) {\n throw new TypeError(`${label} is missing required field: ${key}`);\n }\n }\n}\nfunction assertArray(value: readonly unknown[], label: string): void {\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(index));\n if (descriptor === undefined || !(\"value\" in descriptor)) {\n throw new TypeError(`${label} cannot contain holes or accessors`);\n }\n }\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key === \"symbol\" || (key !== \"length\" && !isArrayIndex(key))) {\n throw new TypeError(`${label} cannot contain custom fields`);\n }\n }\n}\nfunction isArrayIndex(value: string): boolean {\n if (!/^(?:0|[1-9][0-9]*)$/.test(value))\n return false;\n const index = Number(value);\n return Number.isSafeInteger(index) && index >= 0 && index < 2 ** 32 - 1;\n}\n"]}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["report.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The Report author declaration. This module deliberately knows how to\n * validate and normalize author data, but never how to open a Record, run an\n * Effect, or publish a site. Those are Host responsibilities.\n */\nimport type { AttemptEvidenceDomainView, JsonValue, PricingProfile, Sample as AnalysisSample, } from \"../../analysis/index.ts\";\nimport { builtInPricingProfile, isPricingProfile } from \"../../analysis/cost.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\nimport type { LocalizedText } from \"../model/locale.ts\";\nimport { isThemeDefinition, type ThemeDefinition, } from \"../theme.ts\";\nimport { assertDimensionPins, type DimensionPins, } from \"../presentation.ts\";\nimport type { ReportNode } from \"./tree.ts\";\nexport type { DimensionPins } from \"../presentation.ts\";\nexport type { PricingProfile } from \"../../analysis/index.ts\";\n/**\n * A Host-issued Analysis capability at the Report boundary. It is an alias,\n * rather than a wrapper, so the Analysis facade can consume it without a\n * second capability registry. Its public shape exposes no reader, path, or\n * Effect Scope.\n */\nexport type ReportSample = AnalysisSample;\n/** Author-facing Sample alias for Report imports. */\nexport type Sample = ReportSample;\nexport const DEFAULT_PAGE_ID = \"report\";\nexport const DEFAULT_PAGE_TITLE: LocalizedText = Object.freeze({ en: \"Report\", \"zh-CN\": \"报告\" });\nexport type HeadAttributeValue = string | true;\nexport type HeadAttributes = Readonly<Record<string, HeadAttributeValue>>;\nexport type ScriptCrossOrigin = \"anonymous\" | \"use-credentials\";\nexport type ScriptReferrerPolicy = \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\";\n/** The normalized script attributes retained after Host validation. */\nexport type ScriptHeadAttributes = Readonly<{\n readonly src?: string;\n readonly type?: string;\n readonly async?: true;\n readonly defer?: true;\n readonly integrity?: string;\n readonly crossorigin?: ScriptCrossOrigin;\n readonly referrerpolicy?: ScriptReferrerPolicy;\n}> & Readonly<Partial<Record<`data-${string}`, string>>>;\n/**\n * The author shape: a closed tag-name union with ordinary string/boolean\n * attributes. The Host still applies tag-specific validation before any value\n * enters a revision, so this preserves author inference without opening raw\n * HTML or bypassing the script/style safety boundary.\n */\nexport type HeadTag = Readonly<{\n readonly tag: \"meta\" | \"link\";\n readonly attrs: HeadAttributes;\n readonly children?: never;\n}> | Readonly<{\n readonly tag: \"script\" | \"style\";\n readonly attrs?: HeadAttributes;\n readonly children?: string;\n}>;\nexport type StyleDeclaration = Readonly<{\n readonly tag: \"style\";\n readonly attrs?: HeadAttributes;\n readonly children: string;\n}>;\n/** Declarative asset value; materialization remains Host-owned. */\nexport type ReportAsset = Readonly<{\n readonly src: string;\n readonly inline?: never;\n}> | Readonly<{\n readonly inline: string;\n readonly src?: never;\n}>;\nexport interface ReportShell {\n readonly title?: LocalizedText;\n readonly theme?: ThemeDefinition;\n readonly dimensionPins?: DimensionPins;\n readonly head?: readonly HeadTag[];\n /**\n * The one pricing source for this Report's cost projections. It must be a\n * pricing-profile/v1 value created by Analysis `definePricingProfile`.\n * Report validates it through Analysis and retains the same frozen object.\n */\n readonly pricing?: PricingProfile;\n}\n/** The page identity made available to callbacks while the ReportSample lives. */\nexport interface PageContext {\n readonly id: string;\n readonly path: string;\n readonly title: LocalizedText;\n /** Present only for one already-enumerated parameterized Page instance. */\n readonly params?: JsonValue;\n}\n/** A canonical locator selects one Host-provided closed Evidence view. */\nexport type EvidenceLocator = AttemptLocator;\nexport type PageEvidence = AttemptEvidenceDomainView;\n/**\n * The deliberately narrow Page data access surface. Evidence is already a\n * closed domain view; no Record reader, source root, filesystem path, or\n * arbitrary lookup enters author callbacks.\n */\nexport interface PageLoadContext {\n readonly page: PageContext;\n readonly evidence: (locator: EvidenceLocator) => Promise<PageEvidence>;\n}\nexport type PageLoad<Params, Input> = (sample: ReportSample, params: Params, context: PageLoadContext) => Input | Promise<Input>;\nexport type PageRender<Input> = (input: Input, context: PageContext) => ReportNode | Promise<ReportNode>;\n/** A parameter codec and the finite set of instances belonging to one build. */\nexport interface PageParams<Params extends JsonValue> {\n readonly encode: (params: Params) => string;\n readonly decode: (key: string) => Params;\n readonly enumerate: (sample: ReportSample) => Iterable<Params> | Promise<Iterable<Params>>;\n}\n/** A typed target for a Report-owned route. */\nexport interface ReportTarget<Params extends JsonValue = JsonValue> {\n readonly page: string;\n readonly params?: Params;\n}\n/** A normal Page. Without load(), its render input is the fixed ReportSample. */\nexport interface PlainPage<Input = ReportSample> {\n readonly id: string;\n readonly path?: string;\n readonly title: LocalizedText;\n readonly navigation?: boolean;\n readonly params?: never;\n readonly load?: PageLoad<void, Input>;\n readonly render: PageRender<Input>;\n}\n/** A parameterized page has no navigation entry until a Host enumerates it. */\nexport interface ParameterizedPage<Params extends JsonValue, Input> {\n readonly id: string;\n readonly path?: string;\n readonly title: LocalizedText;\n readonly navigation: false;\n readonly role?: {\n readonly kind: \"experiment-group\";\n readonly groupKind: \"named\" | \"singleton\";\n };\n readonly params: PageParams<Params>;\n readonly load: PageLoad<Params, Input>;\n readonly render: PageRender<Input>;\n}\nexport type Page<Params extends JsonValue | void = void, Input = ReportSample> = [\n Params\n] extends [\n void\n] ? PlainPage<Input> : ParameterizedPage<Extract<Params, JsonValue>, Input>;\ntype AnyPage = PlainPage<any> | ParameterizedPage<any, any>;\ninterface NormalizedPlainPage<Input = unknown> {\n readonly id: string;\n readonly path: string;\n readonly title: LocalizedText;\n readonly navigation: boolean;\n readonly params?: never;\n readonly load?: PageLoad<void, Input>;\n readonly render: PageRender<Input>;\n}\ninterface NormalizedParameterizedPage<Params extends JsonValue = JsonValue, Input = unknown> {\n readonly id: string;\n readonly path: string;\n readonly title: LocalizedText;\n readonly navigation: false;\n readonly role?: {\n readonly kind: \"experiment-group\";\n readonly groupKind: \"named\" | \"singleton\";\n };\n readonly params: PageParams<Params>;\n readonly load: PageLoad<Params, Input>;\n readonly render: PageRender<Input>;\n}\ntype NormalizedPage = NormalizedPlainPage | NormalizedParameterizedPage;\n/** Internal product-list helper also used by the built-in declaration factory. */\nexport type NonEmptyArray<Value> = readonly [\n Value,\n ...Value[]\n];\ninterface ReportInput<Pages extends NonEmptyArray<AnyPage> = NonEmptyArray<AnyPage>> extends ReportShell {\n readonly pages: Pages;\n}\n/** Internal input shape for package-built Report factories; not a public manifest alias. */\nexport interface ReportOptions<Pages extends NonEmptyArray<AnyPage> = NonEmptyArray<AnyPage>> extends ReportInput<Pages> {\n}\n/**\n * A frozen Report definition. Callback-bearing pages stay here only while a\n * Host resolves them; a finished Site revision must never retain this value.\n */\nexport interface ReportDefinition extends Omit<ReportShell, \"pricing\"> {\n readonly kind: \"report\";\n /** Structural-only declaration marker that survives independently emitted declarations. */\n readonly __niceevalReportDefinition: never;\n readonly head: readonly HeadTag[];\n readonly pages: NonEmptyArray<NormalizedPage>;\n /** The exact Analysis-created Profile, or the explicit no-Profile state. */\n readonly pricing: PricingProfile | null;\n}\nexport interface ReportMetaPage {\n readonly id: string;\n readonly title: LocalizedText;\n readonly navigation: boolean;\n}\n/** Closed declaration metadata available as ctx.report during one resolve. */\nexport interface ReportMeta {\n readonly title: LocalizedText;\n readonly pages: readonly ReportMetaPage[];\n /**\n * The exact same frozen value as the owning ReportDefinition's `pricing`.\n * `ctx.report.pricing === report.pricing` holds by construction; consumers\n * pass it to the profile-taking `costUSD(profile)` / `totalCostUSD(profile)`.\n */\n readonly pricing: PricingProfile | null;\n}\nconst REPORT_DESCRIPTOR: unique symbol = Symbol.for(\"niceeval.report.definition/v2\");\nconst REPORT_DESCRIPTOR_VERSION = 2;\n// This exact pair is shared with execution/machine.ts. The Report module\n// does not import that Host module: it only recognizes and copies this\n// data-only descriptor while normalizing an input definition.\nconst BUILT_IN_MACHINE_DESCRIPTOR = Symbol.for(\"niceeval.report.built-in-machine-descriptor/v2\");\nconst BUILT_IN_MACHINE_REPORT_DESCRIPTOR = Symbol.for(\"niceeval.report.built-in-machine-report-descriptor/v2\");\nconst BUILT_IN_MACHINE_DESCRIPTOR_BRAND = \"niceeval.report.built-in-machine-descriptor/v2\";\ninterface ReportDescriptor {\n readonly version: 2;\n readonly kind: \"report\";\n}\ninterface BuiltInMachineDescriptorCopy {\n readonly producerId: string;\n}\n/**\n * Defines a Report with a non-empty Page list. A separate overload accepts a\n * single-page shorthand and normalizes it to /.\n */\nexport function defineReport<const Pages extends NonEmptyArray<AnyPage>>(definition: ReportInput<Pages>): ReportDefinition;\nexport function defineReport(render: (sample: ReportSample) => ReportNode | Promise<ReportNode>): ReportDefinition;\nexport function defineReport(input: unknown): ReportDefinition {\n const source = typeof input === \"function\"\n ? {\n pages: [{ id: DEFAULT_PAGE_ID, title: DEFAULT_PAGE_TITLE, render: input }],\n }\n : input;\n const builtInMachine = readBuiltInMachineDescriptor(source);\n const fields = ownFields(source, \"defineReport\", [BUILT_IN_MACHINE_REPORT_DESCRIPTOR]);\n assertOnlyFields(fields, [\"title\", \"theme\", \"dimensionPins\", \"head\", \"pages\", \"pricing\"], \"defineReport\", [\"title\", \"theme\", \"dimensionPins\", \"head\", \"pricing\"]);\n const title = fields.has(\"title\") ? normalizeLocalizedText(fields.get(\"title\"), \"Report title\") : undefined;\n const theme = fields.has(\"theme\") ? normalizeTheme(fields.get(\"theme\")) : undefined;\n const dimensionPins = fields.has(\"dimensionPins\")\n ? normalizeDimensionPins(fields.get(\"dimensionPins\"))\n : undefined;\n const head = fields.has(\"head\") ? normalizeHead(fields.get(\"head\")) : Object.freeze([]) as readonly HeadTag[];\n const pages = normalizePages(fields.get(\"pages\"));\n const pricing = fields.has(\"pricing\") ? normalizePricingProfile(fields.get(\"pricing\")) : builtInPricingProfile;\n const report: Record<string | symbol, unknown> = {\n kind: \"report\",\n ...(title === undefined ? {} : { title }),\n ...(theme === undefined ? {} : { theme }),\n ...(dimensionPins === undefined ? {} : { dimensionPins }),\n pricing,\n head,\n pages,\n };\n Object.defineProperty(report, REPORT_DESCRIPTOR, {\n value: Object.freeze({ version: REPORT_DESCRIPTOR_VERSION, kind: \"report\" } satisfies ReportDescriptor),\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (builtInMachine !== undefined) {\n Object.defineProperty(report, BUILT_IN_MACHINE_REPORT_DESCRIPTOR, {\n value: builtInMachine,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n }\n return Object.freeze(report) as unknown as ReportDefinition;\n}\n/** Recognizes a Report from another installed copy of niceeval as well. */\nexport function isReport(value: unknown): value is ReportDefinition {\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n if (!hasExactReportFields(value))\n return false;\n if (value.kind !== \"report\" || !Object.hasOwn(value, \"pricing\") ||\n (value.pricing !== null && !isPricingProfile(value.pricing)))\n return false;\n const descriptor = Object.getOwnPropertyDescriptor(value, REPORT_DESCRIPTOR);\n if (!isFrozenHiddenDataDescriptor(descriptor) || !isReportDescriptor(descriptor.value))\n return false;\n if (!isFrozenHead(value.head) || !isFrozenPages(value.pages))\n return false;\n return isOptionalFrozenLocalizedText(value.title) &&\n isOptionalThemeDefinition(value.theme) && isOptionalFrozenDimensionPins(value.dimensionPins) &&\n isValidBuiltInMachineReportDescriptor(value);\n}\n/** Internal Host boundary: validates the Symbol.for descriptor before use. */\nfunction reportDefinition(value: ReportDefinition): ReportDefinition {\n if (!isReport(value))\n throw new TypeError(\"a Report must be created by defineReport\");\n return value;\n}\n/** The declaration title is stable without opening a Sample. */\nexport function resolveReportTitle(value: ReportDefinition): LocalizedText {\n const report = reportDefinition(value);\n return report.title ?? report.pages[0].title ?? DEFAULT_PAGE_TITLE;\n}\n/** Produces declaration-only metadata for ctx.report; it never opens a Sample. */\nexport function buildReportMeta(value: ReportDefinition): ReportMeta {\n const report = reportDefinition(value);\n const meta: Record<string, unknown> = {\n title: resolveReportTitle(report),\n pages: Object.freeze(report.pages.map((page) => Object.freeze({\n id: page.id,\n title: page.title,\n navigation: page.navigation,\n }))),\n pricing: report.pricing,\n };\n return Object.freeze(meta) as unknown as ReportMeta;\n}\nfunction isReportDescriptor(value: unknown): value is ReportDescriptor {\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n if (!hasExactOwnDataFields(value, [\"version\", \"kind\"]))\n return false;\n return value.version === REPORT_DESCRIPTOR_VERSION && value.kind === \"report\";\n}\n/**\n * A global Symbol alone is not provenance. A duplicate package can recognize\n * a frozen Report, but a hand-written lookalike must still satisfy the exact\n * normalized representation `defineReport` emits: no hidden fields,\n * accessors, mutable arrays, or raw Page/Head shapes survive this boundary.\n */\nfunction hasExactReportFields(value: Record<string, unknown>): boolean {\n const names = Object.getOwnPropertyNames(value);\n const allowed = new Set([\"kind\", \"title\", \"theme\", \"dimensionPins\", \"pricing\", \"head\", \"pages\"]);\n if (!names.includes(\"kind\") || !names.includes(\"pricing\") || !names.includes(\"head\") || !names.includes(\"pages\") ||\n names.some((name) => !allowed.has(name)))\n return false;\n for (const name of names) {\n const descriptor = Object.getOwnPropertyDescriptor(value, name);\n if (!isEnumerableDataDescriptor(descriptor))\n return false;\n }\n const symbols = Object.getOwnPropertySymbols(value);\n if (symbols.some((symbol) => symbol !== REPORT_DESCRIPTOR && symbol !== BUILT_IN_MACHINE_REPORT_DESCRIPTOR)) {\n return false;\n }\n return symbols.includes(REPORT_DESCRIPTOR) &&\n [\"title\", \"theme\", \"dimensionPins\"].every((name) => !Object.hasOwn(value, name) || value[name] !== undefined);\n}\nfunction isValidBuiltInMachineReportDescriptor(value: Record<string, unknown>): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(value, BUILT_IN_MACHINE_REPORT_DESCRIPTOR);\n if (descriptor === undefined)\n return true;\n return isFrozenHiddenDataDescriptor(descriptor) && isBuiltInMachineDescriptor(descriptor.value);\n}\nfunction isFrozenHiddenDataDescriptor(descriptor: PropertyDescriptor | undefined): descriptor is PropertyDescriptor & {\n readonly value: unknown;\n} {\n return descriptor !== undefined && \"value\" in descriptor &&\n descriptor.enumerable === false && descriptor.writable === false && descriptor.configurable === false &&\n typeof descriptor.get === \"undefined\" && typeof descriptor.set === \"undefined\" &&\n typeof descriptor.value === \"object\" && descriptor.value !== null && Object.isFrozen(descriptor.value);\n}\nfunction isEnumerableDataDescriptor(descriptor: PropertyDescriptor | undefined): descriptor is PropertyDescriptor & {\n readonly value: unknown;\n} {\n return descriptor !== undefined && \"value\" in descriptor && descriptor.enumerable === true &&\n typeof descriptor.get === \"undefined\" && typeof descriptor.set === \"undefined\";\n}\nfunction hasExactOwnDataFields(value: Record<string, unknown>, expected: readonly string[]): boolean {\n const names = Object.getOwnPropertyNames(value);\n if (names.length !== expected.length || expected.some((name) => !names.includes(name)) ||\n Object.getOwnPropertySymbols(value).length !== 0)\n return false;\n return names.every((name) => isEnumerableDataDescriptor(Object.getOwnPropertyDescriptor(value, name)));\n}\nfunction isOptionalThemeDefinition(value: unknown): boolean {\n return value === undefined || isThemeDefinition(value);\n}\nfunction isOptionalFrozenLocalizedText(value: unknown): boolean {\n return value === undefined || isFrozenLocalizedText(value);\n}\nfunction isOptionalFrozenDimensionPins(value: unknown): boolean {\n return value === undefined || isFrozenDimensionPins(value);\n}\nfunction isFrozenLocalizedText(value: unknown): value is LocalizedText {\n if (typeof value === \"string\")\n return value.length > 0;\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n const names = Object.getOwnPropertyNames(value);\n return names.length > 0 && Object.getOwnPropertySymbols(value).length === 0 && names.every((name) => {\n const descriptor = Object.getOwnPropertyDescriptor(value, name);\n return name.length > 0 && isEnumerableDataDescriptor(descriptor) && typeof descriptor.value === \"string\";\n }) && names.some((name) => (value as Readonly<Record<string, unknown>>)[name] !== \"\");\n}\nfunction isFrozenHead(value: unknown): value is readonly HeadTag[] {\n if (!Array.isArray(value) || !Object.isFrozen(value) || !isClosedArray(value))\n return false;\n return value.every(isFrozenHeadTag);\n}\nfunction isFrozenHeadTag(value: unknown): value is HeadTag {\n if (!isPlainObject(value) || !Object.isFrozen(value))\n return false;\n try {\n normalizeHeadTag(value, \"Report head\");\n }\n catch {\n return false;\n }\n const tag = value.tag;\n if (tag === \"meta\" || tag === \"link\") {\n return hasExactOwnDataFields(value, [\"tag\", \"attrs\"]) && isFrozenHeadAttributes(value.attrs);\n }\n if (tag === \"style\") {\n const valid = hasExactOwnDataFields(value, [\"tag\", \"children\"]) ||\n hasExactOwnDataFields(value, [\"tag\", \"attrs\", \"children\"]);\n return valid && typeof value.children === \"string\" &&\n (value.attrs === undefined || isFrozenHeadAttributes(value.attrs));\n }\n if (tag !== \"script\")\n return false;\n const valid = hasExactOwnDataFields(value, [\"tag\", \"attrs\"]) ||\n hasExactOwnDataFields(value, [\"tag\", \"children\"]) ||\n hasExactOwnDataFields(value, [\"tag\", \"attrs\", \"children\"]);\n if (!valid || (value.attrs !== undefined && !isFrozenHeadAttributes(value.attrs)) ||\n (value.children !== undefined && typeof value.children !== \"string\"))\n return false;\n const attrs = value.attrs as Readonly<Record<string, unknown>> | undefined;\n const hasSource = attrs !== undefined && typeof attrs.src === \"string\";\n return hasSource !== Object.hasOwn(value, \"children\");\n}\nfunction isFrozenHeadAttributes(value: unknown): value is HeadAttributes {\n if (!isPlainObject(value) || !Object.isFrozen(value) || Object.getOwnPropertySymbols(value).length !== 0)\n return false;\n return Object.getOwnPropertyNames(value).every((name) => {\n const descriptor = Object.getOwnPropertyDescriptor(value, name);\n return isEnumerableDataDescriptor(descriptor) && (descriptor.value === true || typeof descriptor.value === \"string\");\n });\n}\nfunction isFrozenPages(value: unknown): value is NonEmptyArray<NormalizedPage> {\n if (!Array.isArray(value) || value.length === 0 || !Object.isFrozen(value) || !isClosedArray(value))\n return false;\n const ids = new Set<string>();\n const plainPaths = new Set<string>();\n for (const page of value) {\n if (!isFrozenNormalizedPage(page) || ids.has(page.id))\n return false;\n ids.add(page.id);\n if (page.params === undefined) {\n if (plainPaths.has(page.path))\n return false;\n plainPaths.add(page.path);\n }\n }\n return true;\n}\nfunction isFrozenNormalizedPage(value: unknown): value is NormalizedPage {\n if (!isPlainObject(value) || !Object.isFrozen(value) || !isFrozenLocalizedText(value.title) ||\n typeof value.id !== \"string\" || typeof value.path !== \"string\" || typeof value.navigation !== \"boolean\" ||\n typeof value.render !== \"function\")\n return false;\n try {\n normalizePageId(value.id, \"Report page\");\n normalizePath(value.path, \"Report page\");\n }\n catch {\n return false;\n }\n if (Object.hasOwn(value, \"params\")) {\n return value.navigation === false && typeof value.load === \"function\" &&\n (hasExactOwnDataFields(value, [\"id\", \"path\", \"title\", \"navigation\", \"params\", \"load\", \"render\"]) ||\n hasExactOwnDataFields(value, [\"id\", \"path\", \"title\", \"navigation\", \"role\", \"params\", \"load\", \"render\"])) &&\n (!Object.hasOwn(value, \"role\") || isExperimentGroupRole(value.role)) &&\n isFrozenPageParams(value.params);\n }\n const valid = hasExactOwnDataFields(value, [\"id\", \"path\", \"title\", \"navigation\", \"render\"]) ||\n hasExactOwnDataFields(value, [\"id\", \"path\", \"title\", \"navigation\", \"load\", \"render\"]);\n return valid && (!Object.hasOwn(value, \"load\") || typeof value.load === \"function\");\n}\nfunction isFrozenDimensionPins(value: unknown): value is DimensionPins {\n if (!isPlainObject(value) || !Object.isFrozen(value) || Object.getOwnPropertySymbols(value).length !== 0)\n return false;\n try {\n assertDimensionPins(value);\n }\n catch {\n return false;\n }\n return Object.getOwnPropertyNames(value).every((dimension) => {\n const descriptor = Object.getOwnPropertyDescriptor(value, dimension);\n if (!isEnumerableDataDescriptor(descriptor) || !isPlainObject(descriptor.value) ||\n !Object.isFrozen(descriptor.value) || Object.getOwnPropertySymbols(descriptor.value).length !== 0) {\n return false;\n }\n return Object.getOwnPropertyNames(descriptor.value).every((entry) => isEnumerableDataDescriptor(Object.getOwnPropertyDescriptor(descriptor.value, entry)));\n });\n}\nfunction isFrozenPageParams(value: unknown): value is PageParams<JsonValue> {\n return isPlainObject(value) && Object.isFrozen(value) &&\n hasExactOwnDataFields(value, [\"encode\", \"decode\", \"enumerate\"]) &&\n typeof value.encode === \"function\" && typeof value.decode === \"function\" && typeof value.enumerate === \"function\";\n}\nfunction isClosedArray(value: readonly unknown[]): boolean {\n for (let index = 0; index < value.length; index += 1) {\n if (!isEnumerableDataDescriptor(Object.getOwnPropertyDescriptor(value, String(index))))\n return false;\n }\n const names = Object.getOwnPropertyNames(value);\n return names.length === value.length + 1 && names.includes(\"length\") &&\n names.every((name) => name === \"length\" || isArrayIndex(name)) && Object.getOwnPropertySymbols(value).length === 0;\n}\n/**\n * Copies the versioned identifier only. The Host owns the producer registry;\n * no executable field can pass from an input definition to its frozen Report.\n */\nfunction readBuiltInMachineDescriptor(value: unknown): BuiltInMachineDescriptorCopy | undefined {\n if ((typeof value !== \"object\" && typeof value !== \"function\") || value === null)\n return undefined;\n const property = Object.getOwnPropertyDescriptor(value, BUILT_IN_MACHINE_REPORT_DESCRIPTOR);\n if (property === undefined)\n return undefined;\n if (!(\"value\" in property) || property.enumerable || !isBuiltInMachineDescriptor(property.value)) {\n throw new TypeError(\"defineReport received an invalid built-in machine descriptor\");\n }\n const copy: Record<string | symbol, unknown> = { producerId: property.value.producerId };\n Object.defineProperty(copy, BUILT_IN_MACHINE_DESCRIPTOR, {\n value: BUILT_IN_MACHINE_DESCRIPTOR_BRAND,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n return Object.freeze(copy) as unknown as BuiltInMachineDescriptorCopy;\n}\nfunction isBuiltInMachineDescriptor(value: unknown): value is BuiltInMachineDescriptorCopy {\n if (!isPlainObject(value) || !hasOnlyStringFields(value, [\"producerId\"]) || !isVersionedProducerId(value.producerId)) {\n return false;\n }\n const brand = Object.getOwnPropertyDescriptor(value, BUILT_IN_MACHINE_DESCRIPTOR);\n return brand !== undefined && \"value\" in brand && brand.value === BUILT_IN_MACHINE_DESCRIPTOR_BRAND;\n}\nfunction hasOnlyStringFields(value: Record<string, unknown>, expected: readonly string[]): boolean {\n const keys = Object.keys(value);\n return keys.length === expected.length && expected.every((key) => Object.hasOwn(value, key));\n}\nfunction isVersionedProducerId(value: unknown): value is string {\n return typeof value === \"string\" && /^[^\\s@][^\\s]*@v[1-9][0-9]*$/u.test(value);\n}\nfunction normalizePages(value: unknown): NonEmptyArray<NormalizedPage> {\n if (!Array.isArray(value) || value.length === 0) {\n throw new TypeError(\"defineReport requires a non-empty pages array\");\n }\n assertArray(value, \"Report pages\");\n const pages = value.map((page, index) => normalizePage(page, index));\n const ids = new Set<string>();\n const plainPaths = new Set<string>();\n for (const page of pages) {\n if (ids.has(page.id))\n throw new TypeError(`Report page id ${JSON.stringify(page.id)} is duplicated`);\n ids.add(page.id);\n if (page.params === undefined) {\n if (plainPaths.has(page.path)) {\n throw new TypeError(`ordinary Report page path ${JSON.stringify(page.path)} is duplicated`);\n }\n plainPaths.add(page.path);\n }\n }\n return Object.freeze(pages) as NonEmptyArray<NormalizedPage>;\n}\nfunction normalizePage(value: unknown, index: number): NormalizedPage {\n const label = `Report page at pages[${index}]`;\n const fields = ownFields(value, label);\n const parameterized = fields.has(\"params\");\n assertOnlyFields(fields, parameterized\n ? [\"id\", \"path\", \"title\", \"navigation\", \"role\", \"params\", \"load\", \"render\"]\n : [\"id\", \"path\", \"title\", \"navigation\", \"load\", \"render\"], label, parameterized ? [\"path\", \"role\"] : [\"path\", \"navigation\", \"load\"]);\n const id = normalizePageId(fields.get(\"id\"), label);\n const path = fields.has(\"path\") && fields.get(\"path\") !== undefined\n ? normalizePath(fields.get(\"path\"), label)\n : derivePagePath(id);\n const title = normalizeLocalizedText(fields.get(\"title\"), `${label} title`);\n const render = requireFunction(fields.get(\"render\"), `${label}.render`);\n if (parameterized) {\n if (fields.get(\"navigation\") !== false) {\n throw new TypeError(`${label} declares params and must set navigation: false`);\n }\n const params = normalizePageParams(fields.get(\"params\"), `${label}.params`);\n const load = requireFunction(fields.get(\"load\"), `${label}.load`);\n const role = fields.has(\"role\") ? normalizeExperimentGroupRole(fields.get(\"role\"), `${label}.role`) : undefined;\n return Object.freeze({\n id,\n path,\n title,\n navigation: false as const,\n ...(role === undefined ? {} : { role }),\n params,\n load: load as PageLoad<JsonValue, unknown>,\n render: render as PageRender<unknown>,\n }) as NormalizedParameterizedPage<JsonValue, unknown>;\n }\n const navigation = fields.get(\"navigation\");\n if (navigation !== undefined && typeof navigation !== \"boolean\") {\n throw new TypeError(`${label}.navigation must be a boolean when supplied`);\n }\n const load = fields.get(\"load\");\n if (load !== undefined && typeof load !== \"function\") {\n throw new TypeError(`${label}.load must be a function when supplied`);\n }\n return Object.freeze({\n id,\n path,\n title,\n navigation: navigation !== false,\n ...(load === undefined ? {} : { load: load as PageLoad<void, unknown> }),\n render: render as PageRender<unknown>,\n }) as NormalizedPlainPage<unknown>;\n}\nfunction normalizeExperimentGroupRole(value: unknown, label: string): NonNullable<NormalizedParameterizedPage[\"role\"]> {\n const fields = ownFields(value, label);\n assertOnlyFields(fields, [\"kind\", \"groupKind\"], label);\n if (fields.get(\"kind\") !== \"experiment-group\" ||\n (fields.get(\"groupKind\") !== \"named\" && fields.get(\"groupKind\") !== \"singleton\")) {\n throw new TypeError(`${label} must declare experiment-group and named/singleton`);\n }\n return Object.freeze({\n kind: \"experiment-group\" as const,\n groupKind: fields.get(\"groupKind\") as \"named\" | \"singleton\",\n });\n}\nfunction isExperimentGroupRole(value: unknown): value is NonNullable<NormalizedParameterizedPage[\"role\"]> {\n try {\n return normalizeExperimentGroupRole(value, \"Report page role\") !== undefined;\n }\n catch {\n return false;\n }\n}\nfunction derivePagePath(id: string): string {\n return id === DEFAULT_PAGE_ID ? \"/\" : `/${id}`;\n}\nfunction normalizePageParams(value: unknown, label: string): PageParams<JsonValue> {\n const fields = ownFields(value, label);\n assertOnlyFields(fields, [\"encode\", \"decode\", \"enumerate\"], label);\n const encode = requireFunction(fields.get(\"encode\"), `${label}.encode`);\n const decode = requireFunction(fields.get(\"decode\"), `${label}.decode`);\n const enumerate = requireFunction(fields.get(\"enumerate\"), `${label}.enumerate`);\n return Object.freeze({\n encode: encode as PageParams<JsonValue>[\"encode\"],\n decode: decode as PageParams<JsonValue>[\"decode\"],\n enumerate: enumerate as PageParams<JsonValue>[\"enumerate\"],\n });\n}\nconst PAGE_ID_PATTERN = /^[a-z][a-z0-9_-]*$/;\nconst PATH_SEGMENT_PATTERN = /^[a-z0-9][a-z0-9._~-]*$/;\nconst WINDOWS_DEVICE_PATTERN = /^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\\..*)?$/i;\nconst MAX_PAGE_ID_BYTES = 128;\nconst MAX_PATH_SEGMENT_BYTES = 128;\nconst MAX_PATH_BYTES = 1024;\nconst MAX_PATH_SEGMENTS = 32;\nconst encoder = new TextEncoder();\nfunction normalizePageId(value: unknown, label: string): string {\n if (typeof value !== \"string\" || !PAGE_ID_PATTERN.test(value) || /^[0-9]+$/.test(value)) {\n throw new TypeError(`${label}.id must match [a-z][a-z0-9_-]* and cannot be an ordinal`);\n }\n if (encoder.encode(value).byteLength > MAX_PAGE_ID_BYTES) {\n throw new TypeError(`${label}.id may contain at most ${MAX_PAGE_ID_BYTES} UTF-8 bytes`);\n }\n return value;\n}\nfunction normalizePath(value: unknown, label: string): string {\n if (typeof value !== \"string\")\n throw new TypeError(`${label}.path must be a string`);\n if (value === \"/\")\n return value;\n if (!value.startsWith(\"/\") || value.endsWith(\"/\") || value.includes(\"%\") ||\n value.includes(\"?\") || value.includes(\"#\") || value.includes(\"\\\\\")) {\n throw new TypeError(`${label}.path must be a normalized absolute Report route`);\n }\n if (encoder.encode(value).byteLength > MAX_PATH_BYTES) {\n throw new TypeError(`${label}.path may contain at most ${MAX_PATH_BYTES} UTF-8 bytes`);\n }\n const segments = value.slice(1).split(\"/\");\n if (segments.length === 0 || segments.length > MAX_PATH_SEGMENTS) {\n throw new TypeError(`${label}.path must contain between 1 and ${MAX_PATH_SEGMENTS} segments`);\n }\n for (const segment of segments) {\n if (!PATH_SEGMENT_PATTERN.test(segment) || segment === \".\" || segment === \"..\" ||\n segment.endsWith(\".\") || segment.endsWith(\" \") || WINDOWS_DEVICE_PATTERN.test(segment)) {\n throw new TypeError(`${label}.path contains an invalid route segment`);\n }\n if (encoder.encode(segment).byteLength > MAX_PATH_SEGMENT_BYTES) {\n throw new TypeError(`${label}.path has a segment longer than ${MAX_PATH_SEGMENT_BYTES} UTF-8 bytes`);\n }\n }\n return value;\n}\nfunction normalizeTheme(value: unknown): ThemeDefinition {\n if (!isThemeDefinition(value)) {\n throw new TypeError(\"Report theme must be a ThemeDefinition created by defineTheme\");\n }\n return value;\n}\n// PricingProfile normalization and cross-package validation have exactly one\n// owner: `niceeval/analysis`. Preserve the validated frozen reference so\n// `ctx.report.pricing === ReportDefinition.pricing` remains true.\nfunction normalizePricingProfile(value: unknown): PricingProfile {\n if (!isPricingProfile(value)) {\n throw new TypeError(\"Report pricing must be a PricingProfile created by definePricingProfile\");\n }\n return value;\n}\nfunction normalizeDimensionPins(value: unknown): DimensionPins {\n assertDimensionPins(value);\n const dimensions = ownFields(value, \"Report dimensionPins\");\n const copy: Record<string, Readonly<Record<string, number>>> = Object.create(null) as Record<string, Readonly<Record<string, number>>>;\n for (const [dimension, rawValues] of dimensions) {\n const values = ownFields(rawValues, `Report dimensionPins.${dimension}`);\n const pinned: Record<string, number> = Object.create(null) as Record<string, number>;\n for (const [valueName, slot] of values) {\n if (typeof slot !== \"number\") {\n throw new TypeError(`Report dimensionPins.${dimension}.${valueName} must be a seriesSlot number`);\n }\n pinned[valueName] = slot;\n }\n copy[dimension] = Object.freeze(pinned);\n }\n return Object.freeze(copy);\n}\nconst HEAD_ATTRIBUTE_NAME = /^[A-Za-z_:][A-Za-z0-9:._-]*$/;\nconst SAFE_LINK_RELATIONS = new Set([\"alternate\", \"author\", \"canonical\", \"license\"]);\nconst SCRIPT_DATA_ATTRIBUTE_NAME = /^data-[a-z][a-z0-9_.:-]*$/;\nconst SCRIPT_REFERRER_POLICIES = new Set<ScriptReferrerPolicy>([\n \"no-referrer\",\n \"no-referrer-when-downgrade\",\n \"origin\",\n \"origin-when-cross-origin\",\n \"same-origin\",\n \"strict-origin\",\n \"strict-origin-when-cross-origin\",\n \"unsafe-url\",\n]);\nconst SCRIPT_INTEGRITY_TOKEN = /^(?:sha256|sha384|sha512)-[A-Za-z0-9+/_-]+={0,2}(?:\\?[A-Za-z0-9_-]+)?$/;\nconst SCRIPT_TYPE = /^(?:module|importmap|speculationrules|[A-Za-z0-9!#$&^_.+-]+\\/[A-Za-z0-9!#$&^_.+-]+(?:\\s*;\\s*[A-Za-z0-9!#$&^_.+-]+=[A-Za-z0-9!#$&^_.+-]+)*)$/;\nconst INLINE_SCRIPT_BYTES_MAX = 65536;\nfunction normalizeHead(value: unknown): readonly HeadTag[] {\n if (!Array.isArray(value))\n throw new TypeError(\"Report head must be an array of structured meta, link, style, or script declarations\");\n assertArray(value, \"Report head\");\n return Object.freeze(value.map((entry, index) => normalizeHeadTag(entry, `Report head[${index}]`)));\n}\nfunction normalizeHeadTag(value: unknown, label: string): HeadTag {\n const fields = ownFields(value, label);\n const tag = fields.get(\"tag\");\n if (tag === \"script\") {\n assertOnlyFields(fields, [\"tag\", \"attrs\", \"children\"], label, [\"attrs\", \"children\"]);\n const attrs = fields.has(\"attrs\") ? normalizeScriptAttributes(fields.get(\"attrs\"), `${label}.attrs`) : undefined;\n const source = attrs?.src;\n const hasInline = fields.has(\"children\");\n if ((source === undefined) === !hasInline) {\n throw new TypeError(`${label} script must declare exactly one of attrs.src or inline children`);\n }\n if (hasInline) {\n const children = fields.get(\"children\");\n if (typeof children !== \"string\")\n throw new TypeError(`${label}.children must be inline script text`);\n assertInlineScript(children, `${label}.children`);\n return Object.freeze({\n tag,\n ...(attrs === undefined ? {} : { attrs: withoutScriptSource(attrs) }),\n children,\n }) as HeadTag;\n }\n return Object.freeze({\n tag,\n attrs: attrs as ScriptHeadAttributes & Readonly<{\n readonly src: string;\n }>,\n }) as HeadTag;\n }\n if (tag !== \"meta\" && tag !== \"link\" && tag !== \"style\") {\n throw new TypeError(`${label}.tag must be \\\"meta\\\", \\\"link\\\", \\\"style\\\", or \\\"script\\\"`);\n }\n if (tag === \"style\") {\n assertOnlyFields(fields, [\"tag\", \"attrs\", \"children\"], label, [\"attrs\"]);\n const children = fields.get(\"children\");\n if (typeof children !== \"string\")\n throw new TypeError(`${label}.children must be CSS text`);\n assertSafeStyle(children, `${label}.children`);\n const attrs = fields.has(\"attrs\")\n ? normalizeHeadAttributes(fields.get(\"attrs\"), `${label}.attrs`, [\"media\", \"type\"])\n : undefined;\n if (attrs?.type !== undefined && attrs.type !== \"text/css\") {\n throw new TypeError(`${label}.attrs.type must be \\\"text/css\\\" when supplied`);\n }\n return Object.freeze({ tag, ...(attrs === undefined ? {} : { attrs }), children });\n }\n assertOnlyFields(fields, [\"tag\", \"attrs\"], label);\n const attrs = normalizeHeadAttributes(fields.get(\"attrs\"), `${label}.attrs`, tag === \"meta\" ? [\"content\", \"itemprop\", \"name\", \"property\"] : [\"href\", \"hreflang\", \"rel\", \"title\", \"type\"]);\n if (tag === \"link\") {\n const rel = attrs.rel;\n const href = attrs.href;\n if (typeof rel !== \"string\" || !SAFE_LINK_RELATIONS.has(rel.toLowerCase()) || typeof href !== \"string\") {\n throw new TypeError(`${label} only permits inert link metadata (rel: alternate, author, canonical, or license) with a local href`);\n }\n assertLocalHeadReference(href, `${label}.attrs.href`);\n }\n return Object.freeze({ tag, attrs });\n}\nfunction normalizeScriptAttributes(value: unknown, label: string): ScriptHeadAttributes {\n const fields = ownFields(value, label);\n const copy: Record<string, string | true> = Object.create(null) as Record<string, string | true>;\n for (const [name, attribute] of fields) {\n const lower = name.toLowerCase();\n if (lower.startsWith(\"on\") || lower === \"nonce\") {\n throw new TypeError(`${label}.${name} is not permitted on a Report script`);\n }\n if (SCRIPT_DATA_ATTRIBUTE_NAME.test(name)) {\n if (typeof attribute !== \"string\")\n throw new TypeError(`${label}.${name} must be a string data-* value`);\n copy[name] = attribute;\n continue;\n }\n switch (name) {\n case \"src\":\n if (typeof attribute !== \"string\")\n throw new TypeError(`${label}.src must be a string`);\n assertScriptSource(attribute, `${label}.src`);\n copy.src = attribute;\n break;\n case \"type\":\n if (typeof attribute !== \"string\" || !SCRIPT_TYPE.test(attribute)) {\n throw new TypeError(`${label}.type must be a supported script type or MIME type`);\n }\n copy.type = attribute;\n break;\n case \"async\":\n case \"defer\":\n if (attribute !== true)\n throw new TypeError(`${label}.${name} must be true when supplied`);\n copy[name] = true;\n break;\n case \"integrity\":\n if (typeof attribute !== \"string\" || attribute.length === 0 ||\n !attribute.split(/\\s+/u).every((token) => SCRIPT_INTEGRITY_TOKEN.test(token))) {\n throw new TypeError(`${label}.integrity must contain one or more sha256/384/512 SRI tokens`);\n }\n copy.integrity = attribute;\n break;\n case \"crossorigin\":\n if (attribute !== \"anonymous\" && attribute !== \"use-credentials\") {\n throw new TypeError(`${label}.crossorigin must be \\\"anonymous\\\" or \\\"use-credentials\\\"`);\n }\n copy.crossorigin = attribute;\n break;\n case \"referrerpolicy\":\n if (typeof attribute !== \"string\" || !SCRIPT_REFERRER_POLICIES.has(attribute as ScriptReferrerPolicy)) {\n throw new TypeError(`${label}.referrerpolicy must be a recognized referrer policy`);\n }\n copy.referrerpolicy = attribute;\n break;\n default:\n throw new TypeError(`${label}.${name} is not a supported Report script attribute`);\n }\n }\n return Object.freeze(copy) as ScriptHeadAttributes;\n}\nfunction withoutScriptSource(value: ScriptHeadAttributes): Omit<ScriptHeadAttributes, \"src\"> {\n const { src: _source, ...attrs } = value;\n return Object.freeze(attrs);\n}\nfunction assertScriptSource(value: string, label: string): void {\n if (value.length === 0 || value.startsWith(\"//\") || value.includes(\"\\\\\") || /[\\u0000-\\u001F\\u007F]/u.test(value)) {\n throw new TypeError(`${label} must be a revision-local path, HTTPS URL, or loopback HTTP URL`);\n }\n if (!/^[A-Za-z][A-Za-z0-9+.-]*:/.test(value)) {\n const pathname = value.split(/[?#]/, 1)[0] ?? \"\";\n if (pathname.length === 0 || pathname.split(\"/\").some((segment) => segment === \"..\")) {\n throw new TypeError(`${label} must stay within the closed site revision`);\n }\n return;\n }\n let parsed: URL;\n try {\n parsed = new URL(value);\n }\n catch {\n throw new TypeError(`${label} must be a valid HTTPS or loopback HTTP URL`);\n }\n if (parsed.username.length > 0 || parsed.password.length > 0) {\n throw new TypeError(`${label} cannot contain URL credentials`);\n }\n if (parsed.protocol === \"https:\")\n return;\n if (parsed.protocol === \"http:\" && isLoopbackHostname(parsed.hostname))\n return;\n throw new TypeError(`${label} must use HTTPS or HTTP only for a loopback hostname`);\n}\nfunction isLoopbackHostname(value: string): boolean {\n const hostname = value.toLowerCase().replace(/^\\[|\\]$/g, \"\");\n return hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\";\n}\nfunction assertInlineScript(value: string, label: string): void {\n if (encoder.encode(value).byteLength > INLINE_SCRIPT_BYTES_MAX) {\n throw new TypeError(`${label} may contain at most ${INLINE_SCRIPT_BYTES_MAX} UTF-8 bytes`);\n }\n if (/<\\/script\\b/i.test(value))\n throw new TypeError(`${label} cannot contain </script`);\n}\nfunction normalizeHeadAttributes(value: unknown, label: string, allowed: readonly string[]): HeadAttributes {\n const fields = ownFields(value, label);\n const allowedNames = new Set(allowed);\n const copy: Record<string, HeadAttributeValue> = Object.create(null) as Record<string, HeadAttributeValue>;\n for (const [name, attribute] of fields) {\n if (!HEAD_ATTRIBUTE_NAME.test(name) || name.toLowerCase().startsWith(\"on\") || !allowedNames.has(name)) {\n throw new TypeError(`${label}.${name} is not a safe ${allowed.join(\", \")} attribute`);\n }\n if (attribute !== true && typeof attribute !== \"string\") {\n throw new TypeError(`${label}.${name} must be a string or true`);\n }\n copy[name] = attribute;\n }\n return Object.freeze(copy);\n}\nfunction assertLocalHeadReference(value: string, label: string): void {\n if (value.length === 0 || value.startsWith(\"//\") || /^[A-Za-z][A-Za-z0-9+.-]*:/.test(value)) {\n throw new TypeError(`${label} must be a local metadata reference; network URLs and URL schemes are forbidden`);\n }\n}\nfunction assertSafeStyle(value: string, label: string): void {\n if (/<\\/style/i.test(value))\n throw new TypeError(`${label} cannot contain </style>`);\n if (/@import\\b|url\\s*\\(|expression\\s*\\(|-moz-binding\\b|\\bbehavior\\s*:/i.test(value)) {\n throw new TypeError(`${label} cannot import, fetch, or execute external resources`);\n }\n}\nfunction normalizeLocalizedText(value: unknown, label: string): LocalizedText {\n if (typeof value === \"string\") {\n if (value.length === 0)\n throw new TypeError(`${label} must not be an empty string`);\n return value;\n }\n const fields = ownFields(value, label);\n if (fields.size === 0)\n throw new TypeError(`${label} must be a string or a non-empty locale map`);\n const copy: Record<string, string> = Object.create(null) as Record<string, string>;\n let hasNonEmptyText = false;\n for (const [locale, text] of fields) {\n if (locale.length === 0 || typeof text !== \"string\") {\n throw new TypeError(`${label} locale entries must use non-empty string keys and values`);\n }\n copy[locale] = text;\n hasNonEmptyText ||= text.length > 0;\n }\n if (!hasNonEmptyText) {\n throw new TypeError(`${label} locale map must contain at least one non-empty text value`);\n }\n return Object.freeze(copy);\n}\nfunction requireFunction(value: unknown, label: string): (...arguments_: never[]) => unknown {\n if (typeof value !== \"function\")\n throw new TypeError(`${label} must be a function`);\n return value as (...arguments_: never[]) => unknown;\n}\nfunction ownFields(value: unknown, label: string, allowedHiddenSymbols: readonly symbol[] = []): ReadonlyMap<string, unknown> {\n if (!isPlainObject(value))\n throw new TypeError(`${label} must be a direct plain object`);\n const fields: Array<readonly [\n string,\n unknown\n ]> = [];\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key !== \"string\") {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!allowedHiddenSymbols.includes(key) || descriptor === undefined || descriptor.enumerable || !(\"value\" in descriptor)) {\n throw new TypeError(`${label} cannot contain symbol fields`);\n }\n continue;\n }\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor === undefined || !descriptor.enumerable || !(\"value\" in descriptor)) {\n throw new TypeError(`${label} cannot contain accessors or hidden fields`);\n }\n fields.push([key, descriptor.value]);\n }\n return new Map(fields);\n}\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\nfunction assertOnlyFields(fields: ReadonlyMap<string, unknown>, allowed: readonly string[], label: string, optional: readonly string[] = []): void {\n const allowedFields = new Set(allowed);\n for (const key of fields.keys()) {\n if (!allowedFields.has(key))\n throw new TypeError(`${label} has an unknown field: ${key}`);\n }\n for (const key of allowed) {\n if (!fields.has(key) && !optional.includes(key)) {\n throw new TypeError(`${label} is missing required field: ${key}`);\n }\n }\n}\nfunction assertArray(value: readonly unknown[], label: string): void {\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(index));\n if (descriptor === undefined || !(\"value\" in descriptor)) {\n throw new TypeError(`${label} cannot contain holes or accessors`);\n }\n }\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key === \"symbol\" || (key !== \"length\" && !isArrayIndex(key))) {\n throw new TypeError(`${label} cannot contain custom fields`);\n }\n }\n}\nfunction isArrayIndex(value: string): boolean {\n if (!/^(?:0|[1-9][0-9]*)$/.test(value))\n return false;\n const index = Number(value);\n return Number.isSafeInteger(index) && index >= 0 && index < 2 ** 32 - 1;\n}\n"]}
@@ -125,6 +125,10 @@ export interface ParameterizedPage<Params extends JsonValue, Input> {
125
125
  readonly path?: string;
126
126
  readonly title: LocalizedText;
127
127
  readonly navigation: false;
128
+ readonly role?: {
129
+ readonly kind: "experiment-group";
130
+ readonly groupKind: "named" | "singleton";
131
+ };
128
132
  readonly params: PageParams<Params>;
129
133
  readonly load: PageLoad<Params, Input>;
130
134
  readonly render: PageRender<Input>;
@@ -147,6 +151,10 @@ interface NormalizedParameterizedPage<Params extends JsonValue = JsonValue, Inpu
147
151
  readonly path: string;
148
152
  readonly title: LocalizedText;
149
153
  readonly navigation: false;
154
+ readonly role?: {
155
+ readonly kind: "experiment-group";
156
+ readonly groupKind: "named" | "singleton";
157
+ };
150
158
  readonly params: PageParams<Params>;
151
159
  readonly load: PageLoad<Params, Input>;
152
160
  readonly render: PageRender<Input>;
@@ -125,6 +125,10 @@ export interface ParameterizedPage<Params extends JsonValue, Input> {
125
125
  readonly path?: string;
126
126
  readonly title: LocalizedText;
127
127
  readonly navigation: false;
128
+ readonly role?: {
129
+ readonly kind: "experiment-group";
130
+ readonly groupKind: "named" | "singleton";
131
+ };
128
132
  readonly params: PageParams<Params>;
129
133
  readonly load: PageLoad<Params, Input>;
130
134
  readonly render: PageRender<Input>;
@@ -147,6 +151,10 @@ interface NormalizedParameterizedPage<Params extends JsonValue = JsonValue, Inpu
147
151
  readonly path: string;
148
152
  readonly title: LocalizedText;
149
153
  readonly navigation: false;
154
+ readonly role?: {
155
+ readonly kind: "experiment-group";
156
+ readonly groupKind: "named" | "singleton";
157
+ };
150
158
  readonly params: PageParams<Params>;
151
159
  readonly load: PageLoad<Params, Input>;
152
160
  readonly render: PageRender<Input>;
@@ -125,6 +125,10 @@ export interface ParameterizedPage<Params extends JsonValue, Input> {
125
125
  readonly path?: string;
126
126
  readonly title: LocalizedText;
127
127
  readonly navigation: false;
128
+ readonly role?: {
129
+ readonly kind: "experiment-group";
130
+ readonly groupKind: "named" | "singleton";
131
+ };
128
132
  readonly params: PageParams<Params>;
129
133
  readonly load: PageLoad<Params, Input>;
130
134
  readonly render: PageRender<Input>;
@@ -147,6 +151,10 @@ interface NormalizedParameterizedPage<Params extends JsonValue = JsonValue, Inpu
147
151
  readonly path: string;
148
152
  readonly title: LocalizedText;
149
153
  readonly navigation: false;
154
+ readonly role?: {
155
+ readonly kind: "experiment-group";
156
+ readonly groupKind: "named" | "singleton";
157
+ };
150
158
  readonly params: PageParams<Params>;
151
159
  readonly load: PageLoad<Params, Input>;
152
160
  readonly render: PageRender<Input>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REPORT_PROJECTIONS_SCHEMA = exports.CUSTOM_TARGET_EXECUTION_SCHEMA = exports.BUILT_IN_SHOW_SCHEMA = void 0;
3
+ exports.REPORT_PROJECTIONS_FORMAT = exports.CUSTOM_TARGET_EXECUTION_FORMAT = exports.BUILT_IN_SHOW_FORMAT = void 0;
4
4
  exports.buildReportProjections = buildReportProjections;
5
5
  exports.emptyReportProjections = emptyReportProjections;
6
6
  exports.reportProjectionFailure = reportProjectionFailure;
@@ -18,10 +18,10 @@ const effect_1 = require("effect");
18
18
  const cost_ts_1 = require("../../analysis/cost.cjs");
19
19
  const resolved_page_ts_1 = require("../runtime/resolved-page.cjs");
20
20
  const text_ts_1 = require("../runtime/text.cjs");
21
- /** The exact machine schemas in docs/feature/reports/cli.md. */
22
- exports.BUILT_IN_SHOW_SCHEMA = "niceeval.show/v1";
23
- exports.CUSTOM_TARGET_EXECUTION_SCHEMA = "niceeval.report-target-execution/v1";
24
- exports.REPORT_PROJECTIONS_SCHEMA = "niceeval.report-projections/v1";
21
+ /** The exact regenerable machine formats in docs/feature/reports/cli.md. */
22
+ exports.BUILT_IN_SHOW_FORMAT = "niceeval.show";
23
+ exports.CUSTOM_TARGET_EXECUTION_FORMAT = "niceeval.report-target-execution/v1";
24
+ exports.REPORT_PROJECTIONS_FORMAT = "niceeval.report-projections/v1";
25
25
  /**
26
26
  * Closes, deduplicates, and canonically sorts captured projection entries.
27
27
  * Two identical entries at one canonical capture key collapse. Different
@@ -55,7 +55,7 @@ function buildReportProjections(input) {
55
55
  (0, resolved_page_ts_1.compareUtf8)(left.row.key, right.row.key) ||
56
56
  (0, resolved_page_ts_1.compareUtf8)(left.profileIdentity, right.profileIdentity)));
57
57
  return Object.freeze({
58
- schema: exports.REPORT_PROJECTIONS_SCHEMA,
58
+ format: exports.REPORT_PROJECTIONS_FORMAT,
59
59
  pricingProfile,
60
60
  costs,
61
61
  });
@@ -268,7 +268,7 @@ function produceBuiltInShowData(input) {
268
268
  /** Builds the docs-defined built-in show document from already closed domain data. */
269
269
  function builtInShowDocument(input) {
270
270
  return Object.freeze({
271
- schema: exports.BUILT_IN_SHOW_SCHEMA,
271
+ format: exports.BUILT_IN_SHOW_FORMAT,
272
272
  locale: "en",
273
273
  selection: freezeSelection(input.selection),
274
274
  report: Object.freeze({
@@ -295,7 +295,7 @@ function customTargetExecutionManifest(input) {
295
295
  throw new TypeError("the selected Page lacks a closed English text projection at the requested width");
296
296
  }
297
297
  return Object.freeze({
298
- schema: exports.CUSTOM_TARGET_EXECUTION_SCHEMA,
298
+ format: exports.CUSTOM_TARGET_EXECUTION_FORMAT,
299
299
  locale: "en",
300
300
  selection: freezeSelection(input.selection),
301
301
  report: Object.freeze({
@@ -374,9 +374,25 @@ function freezeBuiltInData(value) {
374
374
  // The selected registry producer owns their stable identities and must close
375
375
  // them in the canonical order defined for that domain before returning.
376
376
  switch (value.kind) {
377
- case "leaderboard":
378
- assertExactFields(value, ["kind", "rows"], "leaderboard show data");
379
- return Object.freeze({ kind: "leaderboard", rows: closeMachineJson(value.rows) });
377
+ case "groups":
378
+ assertExactFields(value, ["kind", "groups"], "groups show data");
379
+ return Object.freeze({ kind: "groups", groups: closeMachineJson(value.groups) });
380
+ case "experiment-group":
381
+ assertExactFields(value, ["kind", "group", "comparison"], "experiment-group show data");
382
+ return Object.freeze({
383
+ kind: "experiment-group",
384
+ group: closeMachineJson(value.group),
385
+ comparison: closeMachineJson(value.comparison),
386
+ });
387
+ case "run-membership":
388
+ assertExactFields(value, ["kind", "summary", "members", "errors", "evidence"], "run-membership show data");
389
+ return Object.freeze({
390
+ kind: "run-membership",
391
+ summary: closeMachineJson(value.summary),
392
+ members: closeMachineJson(value.members),
393
+ errors: closeMachineJson(value.errors),
394
+ evidence: closeMachineJson(value.evidence),
395
+ });
380
396
  case "attempt":
381
397
  assertExactFields(value, ["kind", "evidence", "observability", "fileChanges"], "attempt show data");
382
398
  return Object.freeze({
@@ -395,12 +411,12 @@ function freezeBuiltInData(value) {
395
411
  assertExactFields(value, ["kind", "timing"], "timing show data");
396
412
  return Object.freeze({ kind: "timing", timing: closeMachineJson(value.timing) });
397
413
  default:
398
- throw new TypeError("built-in show data kind is not declared by the show schema");
414
+ throw new TypeError("built-in show data kind is not declared by the show format");
399
415
  }
400
416
  }
401
- /** Re-closes a ReportProjections value: validates schema, dedupes, and canonically sorts. */
417
+ /** Re-closes a ReportProjections value: validates format, dedupes, and canonically sorts. */
402
418
  function freezeProjections(value) {
403
- if (!isPlainRecord(value) || value.schema !== exports.REPORT_PROJECTIONS_SCHEMA) {
419
+ if (!isPlainRecord(value) || value.format !== exports.REPORT_PROJECTIONS_FORMAT) {
404
420
  throw new TypeError("projections must be a niceeval.report-projections/v1 value");
405
421
  }
406
422
  return buildReportProjections({