niceeval 0.15.1-canary.76 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/INDEX.md +45 -40
  2. package/dist/adapter-execution-trace.cjs.map +1 -1
  3. package/dist/adapter-execution-trace.d.cts +26 -0
  4. package/dist/adapter-execution-trace.d.mts +26 -0
  5. package/dist/adapter-execution-trace.d.ts +26 -0
  6. package/dist/adapter-usage.cjs.map +1 -1
  7. package/dist/adapter-usage.d.cts +9 -0
  8. package/dist/adapter-usage.d.mts +9 -0
  9. package/dist/adapter-usage.d.ts +9 -0
  10. package/dist/adapter.cjs +19 -4
  11. package/dist/adapter.cjs.map +1 -1
  12. package/dist/adapter.d.cts +37 -12
  13. package/dist/adapter.d.mts +37 -12
  14. package/dist/adapter.d.ts +37 -12
  15. package/dist/agents/ai-sdk.cjs +3 -0
  16. package/dist/agents/ai-sdk.cjs.map +1 -1
  17. package/dist/agents/bub.cjs +3 -0
  18. package/dist/agents/bub.cjs.map +1 -1
  19. package/dist/agents/claude-code-native.cjs +28 -2
  20. package/dist/agents/claude-code-native.cjs.map +1 -1
  21. package/dist/agents/claude-code.cjs +3 -0
  22. package/dist/agents/claude-code.cjs.map +1 -1
  23. package/dist/agents/codex.cjs +3 -0
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/coding-cli-versions.cjs +9 -10
  26. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  27. package/dist/agents/coding-cli-versions.d.cts +1 -1
  28. package/dist/agents/coding-cli-versions.d.mts +1 -1
  29. package/dist/agents/coding-cli-versions.d.ts +1 -1
  30. package/dist/agents/deepseek-harness.cjs +3 -0
  31. package/dist/agents/deepseek-harness.cjs.map +1 -1
  32. package/dist/agents/hermes.cjs +3 -0
  33. package/dist/agents/hermes.cjs.map +1 -1
  34. package/dist/agents/index.cjs.map +1 -1
  35. package/dist/agents/index.d.cts +3 -2
  36. package/dist/agents/index.d.mts +3 -2
  37. package/dist/agents/index.d.ts +3 -2
  38. package/dist/agents/omp.cjs +3 -0
  39. package/dist/agents/omp.cjs.map +1 -1
  40. package/dist/agents/openai-compat.cjs +6 -0
  41. package/dist/agents/openai-compat.cjs.map +1 -1
  42. package/dist/agents/openclaw.cjs +3 -0
  43. package/dist/agents/openclaw.cjs.map +1 -1
  44. package/dist/agents/opencode.cjs +3 -0
  45. package/dist/agents/opencode.cjs.map +1 -1
  46. package/dist/agents/sdk-streams.cjs +9 -0
  47. package/dist/agents/sdk-streams.cjs.map +1 -1
  48. package/dist/agents/ui-message-stream.cjs +3 -0
  49. package/dist/agents/ui-message-stream.cjs.map +1 -1
  50. package/dist/assertions/api.cjs.map +1 -1
  51. package/dist/assertions/api.d.cts +27 -5
  52. package/dist/assertions/api.d.mts +27 -5
  53. package/dist/assertions/api.d.ts +27 -5
  54. package/dist/assertions/collection.cjs +6 -0
  55. package/dist/assertions/collection.cjs.map +1 -1
  56. package/dist/assertions/collection.d.cts +4 -2
  57. package/dist/assertions/collection.d.mts +4 -2
  58. package/dist/assertions/collection.d.ts +4 -2
  59. package/dist/assertions/collection.js +12 -8
  60. package/dist/assertions/context-match.cjs +70 -0
  61. package/dist/assertions/context-match.cjs.map +1 -0
  62. package/dist/assertions/context-match.d.cts +107 -0
  63. package/dist/assertions/context-match.d.mts +107 -0
  64. package/dist/assertions/context-match.d.ts +107 -0
  65. package/dist/assertions/context-match.js +12 -0
  66. package/dist/assertions/context-match.js.map +1 -0
  67. package/dist/assertions/full-content.cjs +109 -0
  68. package/dist/assertions/full-content.cjs.map +1 -0
  69. package/dist/assertions/full-content.d.cts +6 -0
  70. package/dist/assertions/full-content.d.mts +6 -0
  71. package/dist/assertions/full-content.d.ts +6 -0
  72. package/dist/assertions/full-content.js +12 -0
  73. package/dist/assertions/full-content.js.map +1 -0
  74. package/dist/assertions/judge-presets.cjs +2 -34
  75. package/dist/assertions/judge-presets.cjs.map +1 -1
  76. package/dist/assertions/judge-presets.d.cts +6 -9
  77. package/dist/assertions/judge-presets.d.mts +6 -9
  78. package/dist/assertions/judge-presets.d.ts +6 -9
  79. package/dist/assertions/judge-presets.js +8 -8
  80. package/dist/assertions/judge.cjs +107 -29
  81. package/dist/assertions/judge.cjs.map +1 -1
  82. package/dist/assertions/judge.d.cts +2 -0
  83. package/dist/assertions/judge.d.mts +2 -0
  84. package/dist/assertions/judge.d.ts +2 -0
  85. package/dist/assertions/match.cjs +244 -5
  86. package/dist/assertions/match.cjs.map +1 -1
  87. package/dist/assertions/match.d.cts +43 -3
  88. package/dist/assertions/match.d.mts +43 -3
  89. package/dist/assertions/match.d.ts +43 -3
  90. package/dist/assertions/match.js +88 -78
  91. package/dist/assertions/material.cjs +520 -0
  92. package/dist/assertions/material.cjs.map +1 -0
  93. package/dist/assertions/material.d.cts +56 -0
  94. package/dist/assertions/material.d.mts +56 -0
  95. package/dist/assertions/material.d.ts +56 -0
  96. package/dist/assertions/material.js +20 -0
  97. package/dist/assertions/material.js.map +1 -0
  98. package/dist/assertions/record/attachment.cjs +5 -2
  99. package/dist/assertions/record/attachment.cjs.map +1 -1
  100. package/dist/assertions/record/codec.cjs +2 -1
  101. package/dist/assertions/record/codec.cjs.map +1 -1
  102. package/dist/assertions/record/model.cjs.map +1 -1
  103. package/dist/assertions/record/model.d.cts +6 -1
  104. package/dist/assertions/record/model.d.mts +6 -1
  105. package/dist/assertions/record/model.d.ts +6 -1
  106. package/dist/assertions/runtime.cjs +207 -14
  107. package/dist/assertions/runtime.cjs.map +1 -1
  108. package/dist/assertions/runtime.d.cts +9 -0
  109. package/dist/assertions/runtime.d.mts +9 -0
  110. package/dist/assertions/runtime.d.ts +9 -0
  111. package/dist/assertions/runtime.js +14 -8
  112. package/dist/assertions/score-match-audit.cjs +18 -8
  113. package/dist/assertions/score-match-audit.cjs.map +1 -1
  114. package/dist/assertions/score-match-gateway.cjs +83 -25
  115. package/dist/assertions/score-match-gateway.cjs.map +1 -1
  116. package/dist/assertions/score-match-gateway.d.cts +2 -0
  117. package/dist/assertions/score-match-gateway.d.mts +2 -0
  118. package/dist/assertions/score-match-gateway.d.ts +2 -0
  119. package/dist/assertions/value-composition.test-d.cjs +77 -0
  120. package/dist/assertions/value-composition.test-d.cjs.map +1 -0
  121. package/dist/assertions/value-composition.test-d.d.cts +1 -0
  122. package/dist/assertions/value-composition.test-d.d.mts +1 -0
  123. package/dist/assertions/value-composition.test-d.d.ts +1 -0
  124. package/dist/assertions/value-composition.test-d.js +4 -0
  125. package/dist/assertions/value-composition.test-d.js.map +1 -0
  126. package/dist/context/assert-first.cjs +207 -213
  127. package/dist/context/assert-first.cjs.map +1 -1
  128. package/dist/context/assert-first.d.cts +49 -23
  129. package/dist/context/assert-first.d.mts +49 -23
  130. package/dist/context/assert-first.d.ts +49 -23
  131. package/dist/context/session.cjs +111 -9
  132. package/dist/context/session.cjs.map +1 -1
  133. package/dist/context/session.d.cts +18 -0
  134. package/dist/context/session.d.mts +18 -0
  135. package/dist/context/session.d.ts +18 -0
  136. package/dist/define.cjs +17 -1
  137. package/dist/define.cjs.map +1 -1
  138. package/dist/eval/cli/contribution.cjs +2 -0
  139. package/dist/eval/cli/contribution.cjs.map +1 -1
  140. package/dist/eval/host/index.cjs +2 -0
  141. package/dist/eval/host/index.cjs.map +1 -1
  142. package/dist/eval/record/evaluation.cjs +3 -0
  143. package/dist/eval/record/evaluation.cjs.map +1 -1
  144. package/dist/eval/record/membership-provenance.d.cts +15 -15
  145. package/dist/eval/record/membership-provenance.d.mts +15 -15
  146. package/dist/eval/record/membership-provenance.d.ts +15 -15
  147. package/dist/eval/record/score.cjs +7 -0
  148. package/dist/eval/record/score.cjs.map +1 -1
  149. package/dist/eval/record/sealed-assertion.cjs +3 -0
  150. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  151. package/dist/eval/record/verdict.cjs +7 -0
  152. package/dist/eval/record/verdict.cjs.map +1 -1
  153. package/dist/expect/index.cjs +8 -2
  154. package/dist/expect/index.cjs.map +1 -1
  155. package/dist/expect/index.d.cts +9 -4
  156. package/dist/expect/index.d.mts +9 -4
  157. package/dist/expect/index.d.ts +9 -4
  158. package/dist/expect/index.js +72 -62
  159. package/dist/expect/index.mjs +72 -62
  160. package/dist/experiment/host/cli/contribution.cjs +37 -23
  161. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  162. package/dist/experiment/host/cli/contribution.d.cts +9 -1
  163. package/dist/experiment/host/cli/contribution.d.mts +9 -1
  164. package/dist/experiment/host/cli/contribution.d.ts +9 -1
  165. package/dist/experiment/host/current.cjs +74 -0
  166. package/dist/experiment/host/current.cjs.map +1 -0
  167. package/dist/experiment/host/current.d.cts +33 -0
  168. package/dist/experiment/host/current.d.mts +33 -0
  169. package/dist/experiment/host/current.d.ts +33 -0
  170. package/dist/experiment/host/current.js +10 -0
  171. package/dist/experiment/host/current.js.map +1 -0
  172. package/dist/experiment/host/index.cjs +17 -174
  173. package/dist/experiment/host/index.cjs.map +1 -1
  174. package/dist/experiment/host/index.d.cts +8 -54
  175. package/dist/experiment/host/index.d.mts +8 -54
  176. package/dist/experiment/host/index.d.ts +8 -54
  177. package/dist/experiment/host/operations.cjs +33 -10
  178. package/dist/experiment/host/operations.cjs.map +1 -1
  179. package/dist/experiment/host/operations.d.cts +29 -1
  180. package/dist/experiment/host/operations.d.mts +29 -1
  181. package/dist/experiment/host/operations.d.ts +29 -1
  182. package/dist/experiment/host/operations.js +6 -4
  183. package/dist/experiment/host/requirements.cjs +3 -0
  184. package/dist/experiment/host/requirements.cjs.map +1 -0
  185. package/dist/experiment/host/requirements.d.cts +3 -0
  186. package/dist/experiment/host/requirements.d.mts +3 -0
  187. package/dist/experiment/host/requirements.d.ts +3 -0
  188. package/dist/experiment/host/requirements.js +4 -0
  189. package/dist/experiment/host/requirements.js.map +1 -0
  190. package/dist/experiment/host/runtime.cjs +179 -0
  191. package/dist/experiment/host/runtime.cjs.map +1 -0
  192. package/dist/experiment/host/runtime.d.cts +79 -0
  193. package/dist/experiment/host/runtime.d.mts +79 -0
  194. package/dist/experiment/host/runtime.d.ts +79 -0
  195. package/dist/experiment/host/runtime.js +6 -0
  196. package/dist/experiment/host/runtime.js.map +1 -0
  197. package/dist/experiment/host/types.cjs.map +1 -1
  198. package/dist/experiment/host/types.d.cts +17 -16
  199. package/dist/experiment/host/types.d.mts +17 -16
  200. package/dist/experiment/host/types.d.ts +17 -16
  201. package/dist/fresh-import.cjs +2 -1
  202. package/dist/fresh-import.cjs.map +1 -1
  203. package/dist/index.cjs +4 -2
  204. package/dist/index.cjs.map +1 -1
  205. package/dist/index.d.cts +12 -6
  206. package/dist/index.d.mts +12 -6
  207. package/dist/index.d.ts +12 -6
  208. package/dist/index.js +32 -30
  209. package/dist/index.mjs +32 -30
  210. package/dist/inspection/artifacts.cjs +83 -54
  211. package/dist/inspection/artifacts.cjs.map +1 -1
  212. package/dist/inspection/artifacts.d.cts +8 -0
  213. package/dist/inspection/artifacts.d.mts +8 -0
  214. package/dist/inspection/artifacts.d.ts +8 -0
  215. package/dist/inspection/artifacts.js +2 -0
  216. package/dist/inspection/assertions.cjs +4 -1
  217. package/dist/inspection/assertions.cjs.map +1 -1
  218. package/dist/inspection/cli/contribution.cjs +27 -4
  219. package/dist/inspection/cli/contribution.cjs.map +1 -1
  220. package/dist/inspection/cli/contribution.d.cts +2 -1
  221. package/dist/inspection/cli/contribution.d.mts +2 -1
  222. package/dist/inspection/cli/contribution.d.ts +2 -1
  223. package/dist/inspection/execution-traces.cjs +114 -8
  224. package/dist/inspection/execution-traces.cjs.map +1 -1
  225. package/dist/inspection/execution-traces.d.cts +38 -0
  226. package/dist/inspection/execution-traces.d.mts +38 -0
  227. package/dist/inspection/execution-traces.d.ts +38 -0
  228. package/dist/inspection/facts.cjs +12 -0
  229. package/dist/inspection/facts.cjs.map +1 -1
  230. package/dist/inspection/limits.cjs +5 -1
  231. package/dist/inspection/limits.cjs.map +1 -1
  232. package/dist/inspection/limits.d.cts +4 -0
  233. package/dist/inspection/limits.d.mts +4 -0
  234. package/dist/inspection/limits.d.ts +4 -0
  235. package/dist/inspection/limits.js +6 -2
  236. package/dist/inspection/overview.cjs +74 -33
  237. package/dist/inspection/overview.cjs.map +1 -1
  238. package/dist/inspection/overview.d.cts +19 -1
  239. package/dist/inspection/overview.d.mts +19 -1
  240. package/dist/inspection/overview.d.ts +19 -1
  241. package/dist/inspection/overview.js +4 -2
  242. package/dist/inspection/project-input.cjs +9 -0
  243. package/dist/inspection/project-input.cjs.map +1 -0
  244. package/dist/inspection/project-input.d.cts +20 -0
  245. package/dist/inspection/project-input.d.mts +20 -0
  246. package/dist/inspection/project-input.d.ts +20 -0
  247. package/dist/inspection/project-input.js +8 -0
  248. package/dist/inspection/project-input.js.map +1 -0
  249. package/dist/inspection/project-result.cjs +60 -0
  250. package/dist/inspection/project-result.cjs.map +1 -0
  251. package/dist/inspection/project-result.d.cts +1264 -0
  252. package/dist/inspection/project-result.d.mts +1264 -0
  253. package/dist/inspection/project-result.d.ts +1264 -0
  254. package/dist/inspection/project-result.js +10 -0
  255. package/dist/inspection/project-result.js.map +1 -0
  256. package/dist/inspection/project-source.cjs +109 -0
  257. package/dist/inspection/project-source.cjs.map +1 -0
  258. package/dist/inspection/project-source.d.cts +10 -0
  259. package/dist/inspection/project-source.d.mts +10 -0
  260. package/dist/inspection/project-source.d.ts +10 -0
  261. package/dist/inspection/project-source.js +6 -0
  262. package/dist/inspection/project-source.js.map +1 -0
  263. package/dist/inspection/project.cjs +100 -0
  264. package/dist/inspection/project.cjs.map +1 -0
  265. package/dist/inspection/project.d.cts +3 -0
  266. package/dist/inspection/project.d.mts +3 -0
  267. package/dist/inspection/project.d.ts +3 -0
  268. package/dist/inspection/project.js +6 -0
  269. package/dist/inspection/project.js.map +1 -0
  270. package/dist/inspection/protocol.cjs +19 -9
  271. package/dist/inspection/protocol.cjs.map +1 -1
  272. package/dist/inspection/protocol.d.cts +5506 -38189
  273. package/dist/inspection/protocol.d.mts +5506 -38189
  274. package/dist/inspection/protocol.d.ts +5506 -38189
  275. package/dist/inspection/public.mjs +896 -84
  276. package/dist/inspection/query.cjs +2 -0
  277. package/dist/inspection/query.cjs.map +1 -1
  278. package/dist/inspection/results.cjs +234 -29
  279. package/dist/inspection/results.cjs.map +1 -1
  280. package/dist/inspection/results.d.cts +870 -13
  281. package/dist/inspection/results.d.mts +870 -13
  282. package/dist/inspection/results.d.ts +870 -13
  283. package/dist/inspection/results.js +36 -34
  284. package/dist/inspection/select.cjs +126 -14
  285. package/dist/inspection/select.cjs.map +1 -1
  286. package/dist/inspection/select.d.cts +1 -1
  287. package/dist/inspection/select.d.mts +1 -1
  288. package/dist/inspection/select.d.ts +1 -1
  289. package/dist/inspection/source.cjs +4 -0
  290. package/dist/inspection/source.cjs.map +1 -1
  291. package/dist/inspection/sources.cjs +5 -0
  292. package/dist/inspection/sources.cjs.map +1 -1
  293. package/dist/inspection/trace.cjs +82 -84
  294. package/dist/inspection/trace.cjs.map +1 -1
  295. package/dist/inspection/trace.d.cts +7 -2
  296. package/dist/inspection/trace.d.mts +7 -2
  297. package/dist/inspection/trace.d.ts +7 -2
  298. package/dist/model-slots.cjs +35 -0
  299. package/dist/model-slots.cjs.map +1 -0
  300. package/dist/model-slots.d.cts +19 -0
  301. package/dist/model-slots.d.mts +19 -0
  302. package/dist/model-slots.d.ts +19 -0
  303. package/dist/model-slots.js +8 -0
  304. package/dist/model-slots.js.map +1 -0
  305. package/dist/o11y/adapter-call-price.cjs +4 -0
  306. package/dist/o11y/adapter-call-price.cjs.map +1 -1
  307. package/dist/o11y/adapter-call-price.d.cts +24 -0
  308. package/dist/o11y/adapter-call-price.d.mts +24 -0
  309. package/dist/o11y/adapter-call-price.d.ts +24 -0
  310. package/dist/o11y/adapter-call-price.js +6 -2
  311. package/dist/o11y/adapter-usage-projection.cjs +158 -0
  312. package/dist/o11y/adapter-usage-projection.cjs.map +1 -0
  313. package/dist/o11y/adapter-usage-projection.d.cts +141 -0
  314. package/dist/o11y/adapter-usage-projection.d.mts +141 -0
  315. package/dist/o11y/adapter-usage-projection.d.ts +141 -0
  316. package/dist/o11y/adapter-usage-projection.js +20 -0
  317. package/dist/o11y/adapter-usage-projection.js.map +1 -0
  318. package/dist/o11y/eval-usage.cjs +149 -0
  319. package/dist/o11y/eval-usage.cjs.map +1 -0
  320. package/dist/o11y/eval-usage.d.cts +46 -0
  321. package/dist/o11y/eval-usage.d.mts +46 -0
  322. package/dist/o11y/eval-usage.d.ts +46 -0
  323. package/dist/o11y/eval-usage.js +8 -0
  324. package/dist/o11y/eval-usage.js.map +1 -0
  325. package/dist/o11y/judge-call-price.cjs +62 -0
  326. package/dist/o11y/judge-call-price.cjs.map +1 -0
  327. package/dist/o11y/judge-call-price.d.cts +3 -0
  328. package/dist/o11y/judge-call-price.d.mts +3 -0
  329. package/dist/o11y/judge-call-price.d.ts +3 -0
  330. package/dist/o11y/judge-call-price.js +6 -0
  331. package/dist/o11y/judge-call-price.js.map +1 -0
  332. package/dist/o11y/judge-usage-projection.cjs +134 -0
  333. package/dist/o11y/judge-usage-projection.cjs.map +1 -0
  334. package/dist/o11y/judge-usage-projection.d.cts +18 -0
  335. package/dist/o11y/judge-usage-projection.d.mts +18 -0
  336. package/dist/o11y/judge-usage-projection.d.ts +18 -0
  337. package/dist/o11y/judge-usage-projection.js +20 -0
  338. package/dist/o11y/judge-usage-projection.js.map +1 -0
  339. package/dist/o11y/judge-usage-receipt.cjs +135 -0
  340. package/dist/o11y/judge-usage-receipt.cjs.map +1 -0
  341. package/dist/o11y/judge-usage-receipt.d.cts +5 -0
  342. package/dist/o11y/judge-usage-receipt.d.mts +5 -0
  343. package/dist/o11y/judge-usage-receipt.d.ts +5 -0
  344. package/dist/o11y/judge-usage-receipt.js +6 -0
  345. package/dist/o11y/judge-usage-receipt.js.map +1 -0
  346. package/dist/o11y/judge-usage.cjs +171 -0
  347. package/dist/o11y/judge-usage.cjs.map +1 -0
  348. package/dist/o11y/judge-usage.d.cts +35 -0
  349. package/dist/o11y/judge-usage.d.mts +35 -0
  350. package/dist/o11y/judge-usage.d.ts +35 -0
  351. package/dist/o11y/judge-usage.js +6 -0
  352. package/dist/o11y/judge-usage.js.map +1 -0
  353. package/dist/plugin/contracts.cjs +2 -0
  354. package/dist/plugin/contracts.cjs.map +1 -1
  355. package/dist/plugin/link.cjs +7 -0
  356. package/dist/plugin/link.cjs.map +1 -1
  357. package/dist/record/attachment/protocol.cjs +8 -6
  358. package/dist/record/attachment/protocol.cjs.map +1 -1
  359. package/dist/record/attachment/protocol.d.cts +10 -0
  360. package/dist/record/attachment/protocol.d.mts +10 -0
  361. package/dist/record/attachment/protocol.d.ts +10 -0
  362. package/dist/record/attachment/protocol.js +38 -36
  363. package/dist/record/codec/seal-manifest.d.cts +3 -3
  364. package/dist/record/codec/seal-manifest.d.mts +3 -3
  365. package/dist/record/codec/seal-manifest.d.ts +3 -3
  366. package/dist/record/family/adapter-usage/definition.d.cts +1 -0
  367. package/dist/record/family/adapter-usage/definition.d.mts +1 -0
  368. package/dist/record/family/adapter-usage/definition.d.ts +1 -0
  369. package/dist/record/family/adapter-usage/persistence.cjs +1 -1
  370. package/dist/record/family/adapter-usage/persistence.cjs.map +1 -1
  371. package/dist/record/family/adapter-usage/persistence.d.cts +2 -1
  372. package/dist/record/family/adapter-usage/persistence.d.mts +2 -1
  373. package/dist/record/family/adapter-usage/persistence.d.ts +2 -1
  374. package/dist/record/family/adapter-usage/schema.cjs +21 -2
  375. package/dist/record/family/adapter-usage/schema.cjs.map +1 -1
  376. package/dist/record/family/adapter-usage/schema.d.cts +85 -0
  377. package/dist/record/family/adapter-usage/schema.d.mts +85 -0
  378. package/dist/record/family/adapter-usage/schema.d.ts +85 -0
  379. package/dist/record/family/adapter-usage/schema.js +18 -12
  380. package/dist/record/family/catalog.cjs +31 -27
  381. package/dist/record/family/catalog.cjs.map +1 -1
  382. package/dist/record/family/catalog.d.cts +94 -3
  383. package/dist/record/family/catalog.d.mts +94 -3
  384. package/dist/record/family/catalog.d.ts +94 -3
  385. package/dist/record/family/current.cjs +45 -42
  386. package/dist/record/family/current.cjs.map +1 -1
  387. package/dist/record/family/current.d.cts +240 -1
  388. package/dist/record/family/current.d.mts +240 -1
  389. package/dist/record/family/current.d.ts +240 -1
  390. package/dist/record/family/execution-traces/definition.d.cts +26 -0
  391. package/dist/record/family/execution-traces/definition.d.mts +26 -0
  392. package/dist/record/family/execution-traces/definition.d.ts +26 -0
  393. package/dist/record/family/execution-traces/definition.js +20 -14
  394. package/dist/record/family/execution-traces/schema.cjs +57 -1
  395. package/dist/record/family/execution-traces/schema.cjs.map +1 -1
  396. package/dist/record/family/execution-traces/schema.d.cts +114 -0
  397. package/dist/record/family/execution-traces/schema.d.mts +114 -0
  398. package/dist/record/family/execution-traces/schema.d.ts +114 -0
  399. package/dist/record/family/execution-traces/schema.js +18 -12
  400. package/dist/record/family/judge-usage/definition.cjs +12 -0
  401. package/dist/record/family/judge-usage/definition.cjs.map +1 -0
  402. package/dist/record/family/judge-usage/definition.d.cts +91 -0
  403. package/dist/record/family/judge-usage/definition.d.mts +91 -0
  404. package/dist/record/family/judge-usage/definition.d.ts +91 -0
  405. package/dist/record/family/judge-usage/definition.js +6 -0
  406. package/dist/record/family/judge-usage/definition.js.map +1 -0
  407. package/dist/record/family/judge-usage/persistence.cjs +10 -0
  408. package/dist/record/family/judge-usage/persistence.cjs.map +1 -0
  409. package/dist/record/family/judge-usage/persistence.d.cts +91 -0
  410. package/dist/record/family/judge-usage/persistence.d.mts +91 -0
  411. package/dist/record/family/judge-usage/persistence.d.ts +91 -0
  412. package/dist/record/family/judge-usage/persistence.js +6 -0
  413. package/dist/record/family/judge-usage/persistence.js.map +1 -0
  414. package/dist/record/family/judge-usage/schema.cjs +307 -0
  415. package/dist/record/family/judge-usage/schema.cjs.map +1 -0
  416. package/dist/record/family/judge-usage/schema.d.cts +351 -0
  417. package/dist/record/family/judge-usage/schema.d.mts +351 -0
  418. package/dist/record/family/judge-usage/schema.d.ts +351 -0
  419. package/dist/record/family/judge-usage/schema.js +18 -0
  420. package/dist/record/family/judge-usage/schema.js.map +1 -0
  421. package/dist/record/host/sqlite-host.cjs +55 -9
  422. package/dist/record/host/sqlite-host.cjs.map +1 -1
  423. package/dist/record/host/types.cjs.map +1 -1
  424. package/dist/record/host/types.d.cts +7 -0
  425. package/dist/record/host/types.d.mts +7 -0
  426. package/dist/record/host/types.d.ts +7 -0
  427. package/dist/record/model/run-context.cjs +7 -1
  428. package/dist/record/model/run-context.cjs.map +1 -1
  429. package/dist/record/model/run-context.d.cts +4 -0
  430. package/dist/record/model/run-context.d.mts +4 -0
  431. package/dist/record/model/run-context.d.ts +4 -0
  432. package/dist/record/model/seal-manifest.d.cts +1 -1
  433. package/dist/record/model/seal-manifest.d.mts +1 -1
  434. package/dist/record/model/seal-manifest.d.ts +1 -1
  435. package/dist/record/sqlite/client.cjs +18 -5
  436. package/dist/record/sqlite/client.cjs.map +1 -1
  437. package/dist/record/sqlite/client.d.cts +1 -1
  438. package/dist/record/sqlite/client.d.mts +1 -1
  439. package/dist/record/sqlite/client.d.ts +1 -1
  440. package/dist/record/sqlite/project-state-database.cjs +29 -8
  441. package/dist/record/sqlite/project-state-database.cjs.map +1 -1
  442. package/dist/run/host/runtime.cjs +4 -0
  443. package/dist/run/host/runtime.cjs.map +1 -1
  444. package/dist/run/storage/sqlite.cjs +20 -0
  445. package/dist/run/storage/sqlite.cjs.map +1 -1
  446. package/dist/runner/adapter-execution-trace.cjs +125 -2
  447. package/dist/runner/adapter-execution-trace.cjs.map +1 -1
  448. package/dist/runner/adapter-execution-trace.d.cts +1 -1
  449. package/dist/runner/adapter-execution-trace.d.mts +1 -1
  450. package/dist/runner/adapter-execution-trace.d.ts +1 -1
  451. package/dist/runner/adapter-usage.cjs +55 -7
  452. package/dist/runner/adapter-usage.cjs.map +1 -1
  453. package/dist/runner/adapter-usage.d.cts +9 -2
  454. package/dist/runner/adapter-usage.d.mts +9 -2
  455. package/dist/runner/adapter-usage.d.ts +9 -2
  456. package/dist/runner/adoption.cjs +9 -0
  457. package/dist/runner/adoption.cjs.map +1 -1
  458. package/dist/runner/attempt-cancellation.cjs +12 -0
  459. package/dist/runner/attempt-cancellation.cjs.map +1 -0
  460. package/dist/runner/attempt-cancellation.d.cts +6 -0
  461. package/dist/runner/attempt-cancellation.d.mts +6 -0
  462. package/dist/runner/attempt-cancellation.d.ts +6 -0
  463. package/dist/runner/attempt-cancellation.js +6 -0
  464. package/dist/runner/attempt-cancellation.js.map +1 -0
  465. package/dist/runner/attempt-resources.cjs +10 -4
  466. package/dist/runner/attempt-resources.cjs.map +1 -1
  467. package/dist/runner/attempt-resources.d.cts +2 -1
  468. package/dist/runner/attempt-resources.d.mts +2 -1
  469. package/dist/runner/attempt-resources.d.ts +2 -1
  470. package/dist/runner/attempt.cjs +1177 -1139
  471. package/dist/runner/attempt.cjs.map +1 -1
  472. package/dist/runner/config-identity.cjs +20 -1
  473. package/dist/runner/config-identity.cjs.map +1 -1
  474. package/dist/runner/config-identity.d.cts +5 -0
  475. package/dist/runner/config-identity.d.mts +5 -0
  476. package/dist/runner/config-identity.d.ts +5 -0
  477. package/dist/runner/discover.cjs +14 -0
  478. package/dist/runner/discover.cjs.map +1 -1
  479. package/dist/runner/discover.d.cts +3 -0
  480. package/dist/runner/discover.d.mts +3 -0
  481. package/dist/runner/discover.d.ts +3 -0
  482. package/dist/runner/feedback/human.cjs +9 -4
  483. package/dist/runner/feedback/human.cjs.map +1 -1
  484. package/dist/runner/fingerprint.cjs +1 -0
  485. package/dist/runner/fingerprint.cjs.map +1 -1
  486. package/dist/runner/judge-usage.cjs +18 -0
  487. package/dist/runner/judge-usage.cjs.map +1 -0
  488. package/dist/runner/judge-usage.d.cts +5 -0
  489. package/dist/runner/judge-usage.d.mts +5 -0
  490. package/dist/runner/judge-usage.d.ts +5 -0
  491. package/dist/runner/judge-usage.js +8 -0
  492. package/dist/runner/judge-usage.js.map +1 -0
  493. package/dist/runner/project-target.cjs.map +1 -1
  494. package/dist/runner/project-target.d.cts +2 -0
  495. package/dist/runner/project-target.d.mts +2 -0
  496. package/dist/runner/project-target.d.ts +2 -0
  497. package/dist/runner/record/planning.cjs +1 -0
  498. package/dist/runner/record/planning.cjs.map +1 -1
  499. package/dist/runner/record.cjs +4 -0
  500. package/dist/runner/record.cjs.map +1 -1
  501. package/dist/runner/reporters/braintrust.cjs +2 -0
  502. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  503. package/dist/runner/reuse-diagnostics.cjs +9 -10
  504. package/dist/runner/reuse-diagnostics.cjs.map +1 -1
  505. package/dist/runner/reuse-diagnostics.d.cts +5 -6
  506. package/dist/runner/reuse-diagnostics.d.mts +5 -6
  507. package/dist/runner/reuse-diagnostics.d.ts +5 -6
  508. package/dist/runner/reuse-diagnostics.js +4 -4
  509. package/dist/runner/reuse-plan.cjs +100 -48
  510. package/dist/runner/reuse-plan.cjs.map +1 -1
  511. package/dist/runner/reuse-plan.d.cts +60 -3
  512. package/dist/runner/reuse-plan.d.mts +60 -3
  513. package/dist/runner/reuse-plan.d.ts +60 -3
  514. package/dist/runner/reuse-plan.js +14 -10
  515. package/dist/runner/run.cjs +8 -6
  516. package/dist/runner/run.cjs.map +1 -1
  517. package/dist/runner/session.cjs +1 -1
  518. package/dist/runner/session.cjs.map +1 -1
  519. package/dist/runner/session.d.cts +1 -1
  520. package/dist/runner/session.d.mts +1 -1
  521. package/dist/runner/session.d.ts +1 -1
  522. package/dist/runner/source-producer.cjs +3 -1
  523. package/dist/runner/source-producer.cjs.map +1 -1
  524. package/dist/runner/types.cjs.map +1 -1
  525. package/dist/runner/types.d.cts +26 -5
  526. package/dist/runner/types.d.mts +26 -5
  527. package/dist/runner/types.d.ts +26 -5
  528. package/dist/sandbox/action.cjs +3 -0
  529. package/dist/sandbox/action.cjs.map +1 -1
  530. package/dist/sandbox/commands.cjs +3 -0
  531. package/dist/sandbox/commands.cjs.map +1 -1
  532. package/dist/sandbox/compose.cjs +6 -0
  533. package/dist/sandbox/compose.cjs.map +1 -1
  534. package/dist/sandbox/docker-profile/registry.cjs +7 -0
  535. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  536. package/dist/sandbox/docker-profile/runtime.cjs +3 -0
  537. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  538. package/dist/sandbox/docker-profile/schema.cjs +7 -0
  539. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  540. package/dist/sandbox/incus.cjs +7 -0
  541. package/dist/sandbox/incus.cjs.map +1 -1
  542. package/dist/sandbox/layer.cjs +12 -0
  543. package/dist/sandbox/layer.cjs.map +1 -1
  544. package/dist/shared/adapter-cleanup.cjs +18 -0
  545. package/dist/shared/adapter-cleanup.cjs.map +1 -0
  546. package/dist/shared/adapter-cleanup.d.cts +4 -0
  547. package/dist/shared/adapter-cleanup.d.mts +4 -0
  548. package/dist/shared/adapter-cleanup.d.ts +4 -0
  549. package/dist/shared/adapter-cleanup.js +10 -0
  550. package/dist/shared/adapter-cleanup.js.map +1 -0
  551. package/dist/shared/attempt-lifecycle.cjs +3 -0
  552. package/dist/shared/attempt-lifecycle.cjs.map +1 -0
  553. package/dist/shared/attempt-lifecycle.d.cts +13 -0
  554. package/dist/shared/attempt-lifecycle.d.mts +13 -0
  555. package/dist/shared/attempt-lifecycle.d.ts +13 -0
  556. package/dist/shared/attempt-lifecycle.js +4 -0
  557. package/dist/shared/attempt-lifecycle.js.map +1 -0
  558. package/dist/show/contribution.cjs +52 -14
  559. package/dist/show/contribution.cjs.map +1 -1
  560. package/dist/show/contribution.d.cts +23 -1
  561. package/dist/show/contribution.d.mts +23 -1
  562. package/dist/show/contribution.d.ts +23 -1
  563. package/dist/show/model.cjs +8 -1
  564. package/dist/show/model.cjs.map +1 -1
  565. package/dist/show/model.d.cts +10 -1
  566. package/dist/show/model.d.mts +10 -1
  567. package/dist/show/model.d.ts +10 -1
  568. package/dist/show/render.cjs +287 -49
  569. package/dist/show/render.cjs.map +1 -1
  570. package/dist/show/render.d.cts +3 -0
  571. package/dist/show/render.d.mts +3 -0
  572. package/dist/show/render.d.ts +3 -0
  573. package/dist/sources/projector.cjs +3 -0
  574. package/dist/sources/projector.cjs.map +1 -1
  575. package/dist/types.cjs.map +1 -1
  576. package/dist/types.d.cts +1 -1
  577. package/dist/types.d.mts +1 -1
  578. package/dist/types.d.ts +1 -1
  579. package/dist/view/app-dist/.vite/manifest.json +2 -2
  580. package/dist/view/app-dist/assets/index-CmVoXbwG.js +63 -0
  581. package/dist/view/app-dist/assets/{quality-cost-scatter-CFB3wnkN.js → quality-cost-scatter-BuLISaH4.js} +1 -1
  582. package/dist/view/app-dist/index.html +1 -1
  583. package/dist/view/cli/contribution.cjs +54 -21
  584. package/dist/view/cli/contribution.cjs.map +1 -1
  585. package/dist/view/cli/contribution.d.cts +2 -1
  586. package/dist/view/cli/contribution.d.mts +2 -1
  587. package/dist/view/cli/contribution.d.ts +2 -1
  588. package/dist/view/function-runtime.mjs +13231 -11647
  589. package/dist/view/http-protocol.cjs +3 -0
  590. package/dist/view/http-protocol.cjs.map +1 -1
  591. package/dist/view/http-protocol.d.cts +8 -0
  592. package/dist/view/http-protocol.d.mts +8 -0
  593. package/dist/view/http-protocol.d.ts +8 -0
  594. package/dist/view/inspection-host.cjs +17 -1
  595. package/dist/view/inspection-host.cjs.map +1 -1
  596. package/dist/view/render.cjs +1 -0
  597. package/dist/view/render.cjs.map +1 -1
  598. package/dist/view/render.d.cts +2 -1
  599. package/dist/view/render.d.mts +2 -1
  600. package/dist/view/render.d.ts +2 -1
  601. package/dist/view/revision.cjs.map +1 -1
  602. package/dist/view/revision.d.cts +12 -0
  603. package/dist/view/revision.d.mts +12 -0
  604. package/dist/view/revision.d.ts +12 -0
  605. package/dist/view/server.cjs +10 -9
  606. package/dist/view/server.cjs.map +1 -1
  607. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  608. package/docs-site/zh/explanation/adapter.mdx +2 -2
  609. package/docs-site/zh/explanation/assert.mdx +60 -24
  610. package/docs-site/zh/explanation/drive.mdx +1 -1
  611. package/docs-site/zh/explanation/evals.mdx +31 -29
  612. package/docs-site/zh/explanation/experiment.mdx +15 -15
  613. package/docs-site/zh/explanation/judge.mdx +23 -15
  614. package/docs-site/zh/explanation/overview.mdx +44 -21
  615. package/docs-site/zh/explanation/record.mdx +28 -13
  616. package/docs-site/zh/explanation/results-flow.mdx +37 -0
  617. package/docs-site/zh/explanation/runner.mdx +27 -6
  618. package/docs-site/zh/index.mdx +22 -115
  619. package/docs-site/zh/introduction.mdx +89 -61
  620. package/docs-site/zh/reference/cli.mdx +50 -26
  621. package/docs-site/zh/reference/define-agent.mdx +37 -5
  622. package/docs-site/zh/reference/define-eval.mdx +130 -29
  623. package/docs-site/zh/reference/define-experiment.mdx +251 -0
  624. package/docs-site/zh/reference/events.mdx +34 -30
  625. package/docs-site/zh/reference/expect.mdx +77 -2
  626. package/docs-site/zh/reference/official-adapters.mdx +2 -2
  627. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +43 -24
  628. package/docs-site/zh/troubleshooting/debugging.mdx +65 -42
  629. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +35 -28
  630. package/docs-site/zh/tutorials/accept-results.mdx +34 -24
  631. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +74 -43
  632. package/docs-site/zh/tutorials/agent-onboarding.mdx +27 -20
  633. package/docs-site/zh/tutorials/authoring.mdx +138 -121
  634. package/docs-site/zh/tutorials/ci-integration.mdx +46 -22
  635. package/docs-site/zh/tutorials/compare-runs.mdx +40 -13
  636. package/docs-site/zh/tutorials/concurrency.mdx +66 -62
  637. package/docs-site/zh/tutorials/configuration.mdx +17 -17
  638. package/docs-site/zh/tutorials/connect-otel.mdx +48 -37
  639. package/docs-site/zh/tutorials/connect-your-agent.mdx +80 -173
  640. package/docs-site/zh/tutorials/control-run-cost.mdx +63 -12
  641. package/docs-site/zh/tutorials/criteria-files.mdx +28 -21
  642. package/docs-site/zh/tutorials/custom-application.mdx +75 -55
  643. package/docs-site/zh/tutorials/dataset-fanout.mdx +32 -22
  644. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +38 -31
  645. package/docs-site/zh/tutorials/docker-in-docker.mdx +83 -89
  646. package/docs-site/zh/tutorials/eval-groups.mdx +70 -89
  647. package/docs-site/zh/tutorials/evaluation-kinds.mdx +12 -5
  648. package/docs-site/zh/tutorials/experiment-services.mdx +243 -0
  649. package/docs-site/zh/tutorials/fixtures.mdx +42 -26
  650. package/docs-site/zh/tutorials/handle-execution-failures.mdx +41 -19
  651. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +21 -16
  652. package/docs-site/zh/tutorials/niceeval-taste-application.mdx +394 -0
  653. package/docs-site/zh/tutorials/niceeval-taste.mdx +190 -0
  654. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +51 -39
  655. package/docs-site/zh/tutorials/plugins.mdx +55 -31
  656. package/docs-site/zh/tutorials/prebuilt-sandbox.mdx +204 -0
  657. package/docs-site/zh/tutorials/quickstart.mdx +91 -47
  658. package/docs-site/zh/tutorials/reporters.mdx +45 -30
  659. package/docs-site/zh/tutorials/rerun-and-cache.mdx +39 -40
  660. package/docs-site/zh/tutorials/sandbox-agent.mdx +65 -40
  661. package/docs-site/zh/tutorials/sandbox-providers.mdx +104 -282
  662. package/docs-site/zh/tutorials/sandbox-reuse.mdx +65 -97
  663. package/docs-site/zh/tutorials/select-and-preview.mdx +25 -20
  664. package/docs-site/zh/tutorials/verify-judge.mdx +49 -26
  665. package/docs-site/zh/tutorials/viewing-results.mdx +130 -80
  666. package/docs-site/zh/tutorials/write-experiment.mdx +116 -298
  667. package/docs-site/zh/tutorials/write-send.mdx +53 -52
  668. package/node_modules/undici/docs/docs/api/Agent.md +8 -8
  669. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  670. package/node_modules/undici/docs/docs/api/Errors.md +25 -0
  671. package/node_modules/undici/docs/docs/api/Interceptors.md +4 -3
  672. package/node_modules/undici/docs/docs/api/Pool.md +5 -6
  673. package/node_modules/undici/lib/api/readable.js +1 -2
  674. package/node_modules/undici/lib/core/request.js +23 -2
  675. package/node_modules/undici/lib/core/util.js +0 -39
  676. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
  677. package/node_modules/undici/lib/dispatcher/client-h2.js +52 -8
  678. package/node_modules/undici/lib/dispatcher/client.js +1 -1
  679. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -2
  680. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  681. package/node_modules/undici/lib/dispatcher/pool-base.js +63 -2
  682. package/node_modules/undici/lib/dispatcher/pool.js +90 -7
  683. package/node_modules/undici/lib/dispatcher/proxy-agent.js +16 -3
  684. package/node_modules/undici/lib/handler/deduplication-handler.js +24 -11
  685. package/node_modules/undici/lib/handler/redirect-handler.js +5 -0
  686. package/node_modules/undici/lib/handler/retry-handler.js +72 -13
  687. package/node_modules/undici/lib/interceptor/cache.js +4 -1
  688. package/node_modules/undici/lib/interceptor/decompress.js +236 -69
  689. package/node_modules/undici/lib/web/cache/cache.js +17 -8
  690. package/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  691. package/node_modules/undici/lib/web/cookies/index.js +19 -7
  692. package/node_modules/undici/lib/web/cookies/util.js +3 -1
  693. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -1
  694. package/node_modules/undici/lib/web/fetch/body.js +22 -15
  695. package/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  696. package/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  697. package/node_modules/undici/lib/web/fetch/headers.js +34 -31
  698. package/node_modules/undici/lib/web/fetch/index.js +38 -14
  699. package/node_modules/undici/lib/web/fetch/request.js +74 -79
  700. package/node_modules/undici/lib/web/fetch/response.js +43 -44
  701. package/node_modules/undici/lib/web/fetch/util.js +7 -7
  702. package/node_modules/undici/lib/web/infra/index.js +16 -1
  703. package/node_modules/undici/lib/web/webidl/index.js +2 -14
  704. package/node_modules/undici/lib/web/websocket/events.js +43 -26
  705. package/node_modules/undici/lib/web/websocket/receiver.js +5 -0
  706. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  707. package/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  708. package/node_modules/undici/package.json +1 -1
  709. package/node_modules/undici/types/diagnostics-channel.d.ts +2 -1
  710. package/node_modules/undici/types/interceptors.d.ts +1 -1
  711. package/node_modules/undici/types/webidl.d.ts +13 -7
  712. package/package.json +4 -4
  713. package/dist/view/app-dist/assets/index-DFzw1L97.js +0 -63
  714. package/docs-site/zh/tutorials/experiments.mdx +0 -101
@@ -1 +1 @@
1
- {"version":3,"file":"execution-traces.js","sourceRoot":"","sources":["execution-traces.ts"],"names":[],"mappings":"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","sourcesContent":["import { Result, Schema } from \"effect\";\nimport { canonicalizeRecordJson, canonicalRecordJsonText, type RecordJson, } from \"../record/definition/canonical.ts\";\nimport type { AttemptRecordCollectionLimitation } from \"../record/authoring.ts\";\nimport { executionTracesRecordCollection } from \"../record/family/execution-traces/definition.ts\";\nimport { ExecutionTraceRecordLimits, ExecutionTraceRecordSchema, type ExecutionTraceEventRecord, type ExecutionTraceHeaderRecord, } from \"../record/family/execution-traces/schema.ts\";\nimport type { DecodedInspectionAttachment, ResolvedInspectionAttempt } from \"./facts.ts\";\nimport { readInspectionArtifactBytes, type InspectionArtifactBytes } from \"./artifacts.ts\";\nimport { decodeBase64UrlUtf8, encodeBase64Bytes, encodeBase64UrlUtf8, InspectionSha256, utf8ByteLength, } from \"./bytes.ts\";\nimport type { InspectionFactSource } from \"./source.ts\";\nimport { INSPECTION_BEHAVIOR_VERSION } from \"./protocol-values.ts\";\nexport const EXECUTION_TRACE_FAMILY_REVISION = 1 as const;\nconst PAGE_ROWS = 64;\nconst IDENTITY_INDEX_LIMIT = 256;\nconst TARGET_LIMITS = Object.freeze({\n maximumJsonBytes: ExecutionTraceRecordLimits.maximumEvidenceTargetBytes,\n maximumDepth: ExecutionTraceRecordLimits.maximumJsonDepth,\n maximumNodes: 70000000,\n maximumObjectKeys: 40000000,\n maximumArrayItems: 70000000,\n maximumKeyUtf8Bytes: ExecutionTraceRecordLimits.maximumEvidenceTargetBytes,\n maximumStringUtf8Bytes: ExecutionTraceRecordLimits.maximumEvidenceTargetBytes,\n});\nconst PAYLOAD_LIMITS = Object.freeze({\n maximumJsonBytes: ExecutionTraceRecordLimits.maximumPayloadBytes,\n maximumDepth: ExecutionTraceRecordLimits.maximumJsonDepth,\n maximumNodes: 20000,\n maximumObjectKeys: 10000,\n maximumArrayItems: 20000,\n maximumKeyUtf8Bytes: ExecutionTraceRecordLimits.maximumPayloadBytes,\n maximumStringUtf8Bytes: ExecutionTraceRecordLimits.maximumPayloadBytes,\n});\nconst SCOPE_BOUNDARY_LIMITS = Object.freeze({\n maximumJsonBytes: ExecutionTraceRecordLimits.maximumCanonicalInputBytes,\n maximumDepth: ExecutionTraceRecordLimits.maximumJsonDepth,\n maximumNodes: 40000000,\n maximumObjectKeys: 20000000,\n maximumArrayItems: 40000000,\n maximumKeyUtf8Bytes: ExecutionTraceRecordLimits.maximumCanonicalInputBytes,\n maximumStringUtf8Bytes: ExecutionTraceRecordLimits.maximumCanonicalInputBytes,\n});\nconst utf8 = new TextEncoder();\nexport interface ExecutionTraceFilters {\n readonly traceId?: string;\n readonly sourceId?: string;\n readonly actorId?: string;\n}\nexport interface ExecutionTraceOutlineRequest extends ExecutionTraceFilters {\n readonly continuation?: string;\n}\nexport type ExecutionTraceDetailSelector = {\n readonly kind: \"execution-event\";\n readonly eventId: string;\n} | {\n readonly kind: \"execution-evidence\";\n readonly evidenceId: string;\n readonly offset?: number;\n readonly limit?: number;\n};\nexport interface ExecutionTraceOutlineResult {\n readonly state: \"complete\" | \"partial\" | \"not-recorded\" | \"invalid\";\n readonly limitations: readonly ({\n readonly code: \"capture-failed\";\n readonly stage: \"adapter\";\n } | {\n readonly code: \"capture-interrupted\";\n readonly stage: \"attempt-finalizer\";\n } | {\n readonly code: \"collection-cap-reached\";\n readonly omittedAtLeast: number;\n } | {\n readonly code: \"legacy-source-state\";\n readonly state: \"partial\" | \"invalid\";\n readonly message: string;\n })[];\n readonly traces: readonly (ExecutionTraceHeaderRecord & {\n readonly eventCount: number;\n })[];\n readonly events: readonly ExecutionTraceEventOutline[];\n readonly identityIndex: {\n readonly traceIds: readonly string[];\n readonly omittedTraceIdCount: number;\n readonly eventIds: readonly string[];\n readonly omittedEventIdCount: number;\n readonly evidenceIds: readonly string[];\n readonly omittedEvidenceIdCount: number;\n };\n readonly hasMore: boolean;\n readonly omittedEventCount: number;\n readonly continuation?: string;\n}\nexport interface ExecutionTraceEventOutline {\n readonly traceId: string;\n readonly eventId: string;\n readonly origin: {\n readonly kind: \"execution-event\";\n readonly eventId: string;\n } | {\n readonly kind: \"agent-item\";\n readonly itemId: string;\n };\n readonly ordinal: number;\n readonly type: string;\n readonly source: ExecutionTraceEventRecord[\"source\"];\n readonly actor?: ExecutionTraceEventRecord[\"actor\"];\n readonly time?: ExecutionTraceEventRecord[\"time\"];\n readonly summary: string;\n readonly links: ExecutionTraceEventRecord[\"links\"];\n readonly evidence: readonly {\n readonly evidenceId: string;\n readonly key: string;\n readonly label: string;\n }[];\n readonly scopeMemberships: ExecutionTraceEventRecord[\"scopeMemberships\"];\n}\nexport type ExecutionTraceDetailResult = {\n readonly kind: \"execution-event\";\n readonly event: ExecutionTraceEventRecord;\n readonly evidence: readonly ExecutionEvidencePreview[];\n} | ({\n readonly kind: \"execution-evidence\";\n} & ExecutionEvidenceRange);\nexport interface ExecutionEvidencePreview {\n readonly evidenceId: string;\n readonly key: string;\n readonly label: string;\n readonly artifactId: string;\n readonly pointer: string;\n readonly targetSha256: string;\n readonly targetByteLength: number;\n readonly offset: 0;\n readonly base64: string;\n readonly nextOffset: number | null;\n readonly truncated: boolean;\n}\nexport interface ExecutionEvidenceRange extends Omit<ExecutionEvidencePreview, \"offset\" | \"truncated\"> {\n readonly eventId: string;\n readonly traceId: string;\n readonly artifactSha256: string;\n readonly offset: number;\n}\nexport class InspectionExecutionTraceError extends Error {\n readonly code: \"inspection-request-invalid\" | \"inspection-record-integrity-failure\" | \"evidence-budget-exceeded\" | \"restart-required\";\n constructor(code: InspectionExecutionTraceError[\"code\"], message: string) {\n super(message);\n this.name = \"InspectionExecutionTraceError\";\n this.code = code;\n }\n}\ninterface EvidenceTarget {\n readonly bytes: Uint8Array;\n readonly artifact: InspectionArtifactBytes;\n readonly targetSha256: string;\n}\ninterface ScanState {\n readonly headers: Map<string, ExecutionTraceHeaderRecord>;\n readonly sourceTraceIds: Set<string>;\n readonly eventCounts: Map<string, number>;\n readonly eventKeys: Map<string, Set<string>>;\n readonly scopeIds: Map<string, Set<string>>;\n readonly clockUnits: Map<string, Map<string, string>>;\n readonly resolvedLinks: Array<{\n readonly traceId: string;\n readonly targetKey: string;\n }>;\n readonly causeEdges: Map<string, Map<string, string[]>>;\n readonly eventIds: Set<string>;\n readonly evidenceIds: Set<string>;\n readonly traceIdsForIndex: string[];\n readonly eventIdsForIndex: string[];\n readonly evidenceIdsForIndex: string[];\n sourceBytes: number;\n targetBytes: number;\n readonly artifacts: Map<string, InspectionArtifactBytes>;\n readonly parsedArtifacts: Map<string, unknown>;\n readonly targets: Map<string, EvidenceTarget>;\n}\nfunction digest(value: Uint8Array | string): string {\n return new InspectionSha256().update(typeof value === \"string\" ? utf8.encode(value) : value).digestHex();\n}\nfunction tupleLengthPrefix(length: number): Uint8Array {\n if (!Number.isSafeInteger(length) || length < 0 || length > 4294967295) {\n throw integrity(\"Execution trace collection item identity length is invalid.\");\n }\n const prefix = new Uint8Array(4);\n new DataView(prefix.buffer).setUint32(0, length, false);\n return prefix;\n}\nfunction updateTuplePart(hash: InspectionSha256, part: string | number): void {\n const tag = typeof part === \"string\" ? 1 : 2;\n if (typeof part === \"number\" && !Number.isSafeInteger(part)) {\n throw integrity(\"Execution trace collection item identity ordinal is invalid.\");\n }\n const payload = utf8.encode(String(part));\n hash.update(Uint8Array.of(tag)).update(tupleLengthPrefix(payload.byteLength)).update(payload);\n}\nfunction executionCollectionItemLogicalIdentity(ordinal: number, canonicalDigest: string): string {\n return inspectionTupleDigest(\"niceeval.record.collection-item-logical-identity/v1\", [ordinal, canonicalDigest]);\n}\nfunction inspectionTupleDigest(domain: string, parts: readonly (string | number)[]): string {\n const hash = new InspectionSha256();\n updateTuplePart(hash, domain);\n for (const part of parts)\n updateTuplePart(hash, part);\n return hash.digestHex();\n}\nfunction parseJson(bytes: Uint8Array, label: string): unknown {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n throw integrity(`${label} is not UTF-8 JSON.`);\n }\n}\nfunction integrity(message: string): InspectionExecutionTraceError {\n return new InspectionExecutionTraceError(\"inspection-record-integrity-failure\", message);\n}\nfunction pointerSegments(pointer: string): readonly string[] | undefined {\n if (pointer === \"\")\n return [];\n if (!pointer.startsWith(\"/\"))\n return undefined;\n const output: string[] = [];\n for (const token of pointer.slice(1).split(\"/\")) {\n let decoded = \"\";\n for (let index = 0; index < token.length; index += 1) {\n if (token[index] !== \"~\") {\n decoded += token[index];\n continue;\n }\n const escape = token[index + 1];\n if (escape === \"0\")\n decoded += \"~\";\n else if (escape === \"1\")\n decoded += \"/\";\n else\n return undefined;\n index += 1;\n }\n output.push(decoded);\n }\n return output;\n}\nfunction resolvePointer(root: unknown, pointer: string): unknown | undefined {\n const segments = pointerSegments(pointer);\n if (segments === undefined)\n return undefined;\n let current = root;\n for (const segment of segments) {\n if (Array.isArray(current)) {\n if (!/^(?:0|[1-9][0-9]*)$/u.test(segment))\n return undefined;\n const index = Number(segment);\n if (!Number.isSafeInteger(index) || index >= current.length || !Object.prototype.hasOwnProperty.call(current, segment))\n return undefined;\n current = current[index];\n }\n else if (typeof current === \"object\" && current !== null && Object.prototype.hasOwnProperty.call(current, segment)) {\n const descriptor = Object.getOwnPropertyDescriptor(current, segment);\n if (descriptor === undefined || !(\"value\" in descriptor) || descriptor.enumerable !== true)\n return undefined;\n current = descriptor.value;\n }\n else\n return undefined;\n }\n return current;\n}\nfunction collectionAttachment(resolved: ResolvedInspectionAttempt): DecodedInspectionAttachment | undefined {\n const matches = resolved.origin.attachments.filter(({ physical }) => physical.ownerKind === \"attempt\" &&\n physical.ownerAttemptId === resolved.attempt.attemptId &&\n physical.family === executionTracesRecordCollection.family);\n if (matches.length > 1)\n throw integrity(\"Execution trace owner has duplicate collection attachments.\");\n return matches[0];\n}\nfunction validateAttachment(resolved: ResolvedInspectionAttempt, attachment: DecodedInspectionAttachment): {\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly AttemptRecordCollectionLimitation[];\n };\n readonly expectedDigest: string;\n} {\n const physical = attachment.physical;\n if (physical.ownerKind !== \"attempt\" || physical.ownerAttemptId !== resolved.attempt.attemptId ||\n physical.ownerRunId !== resolved.attempt.originRunId || physical.family !== executionTracesRecordCollection.family ||\n physical.familyRevision !== EXECUTION_TRACE_FAMILY_REVISION || physical.references.length !== 0 || physical.contents.length !== 0 ||\n digest(physical.canonicalBytes) !== physical.canonicalDigest || digest(physical.logicalInventoryBytes) !== physical.inventoryDigest ||\n physical.logicalIdentity !== inspectionTupleDigest(\"niceeval.record.attachment-logical-identity/v1\", [\n physical.attachmentId,\n physical.canonicalDigest,\n physical.inventoryDigest,\n ])) {\n throw integrity(\"Execution trace collection attachment closure is invalid.\");\n }\n const shell = Schema.decodeUnknownResult(executionTracesRecordCollection.schema, { onExcessProperty: \"error\" })(attachment.value);\n if (Result.isFailure(shell) || shell.success.items.length !== 0)\n throw integrity(\"Execution trace collection shell is invalid.\");\n const inventory = parseJson(physical.logicalInventoryBytes, \"Execution trace collection inventory\") as {\n readonly collection?: {\n readonly count?: unknown;\n readonly byteLength?: unknown;\n readonly digest?: unknown;\n };\n };\n if (inventory.collection?.count !== physical.collectionItemCount ||\n inventory.collection.byteLength !== physical.collectionItemByteLength ||\n typeof inventory.collection.digest !== \"string\")\n throw integrity(\"Execution trace collection inventory is invalid.\");\n return Object.freeze({\n collection: shell.success.collection,\n expectedDigest: inventory.collection.digest,\n });\n}\nfunction newScanState(): ScanState {\n return {\n headers: new Map(), sourceTraceIds: new Set(), eventCounts: new Map(), eventKeys: new Map(),\n scopeIds: new Map(), clockUnits: new Map(), resolvedLinks: [], causeEdges: new Map(),\n eventIds: new Set(), evidenceIds: new Set(), traceIdsForIndex: [], eventIdsForIndex: [], evidenceIdsForIndex: [],\n sourceBytes: 0, targetBytes: 0, artifacts: new Map(), parsedArtifacts: new Map(), targets: new Map(),\n };\n}\nfunction readArtifact(resolved: ResolvedInspectionAttempt, state: ScanState, artifactId: string): InspectionArtifactBytes {\n const cached = state.artifacts.get(artifactId);\n if (cached !== undefined)\n return cached;\n const read = readInspectionArtifactBytes(resolved, artifactId, Math.min(64 * 1024 * 1024, ExecutionTraceRecordLimits.maximumEvidenceSourceBytes - state.sourceBytes));\n if (Result.isFailure(read) && read.failure.code === \"inspection-request-invalid\") {\n throw new InspectionExecutionTraceError(\"evidence-budget-exceeded\", \"Execution evidence source budget exceeded.\");\n }\n if (Result.isFailure(read) || read.success === undefined)\n throw integrity(`Execution evidence artifact ${artifactId} is unavailable.`);\n state.sourceBytes += read.success.byteLength;\n if (state.sourceBytes > ExecutionTraceRecordLimits.maximumEvidenceSourceBytes) {\n throw new InspectionExecutionTraceError(\"evidence-budget-exceeded\", \"Execution evidence source budget exceeded.\");\n }\n state.artifacts.set(artifactId, read.success);\n return read.success;\n}\nfunction verifyEvidence(resolved: ResolvedInspectionAttempt, state: ScanState, evidence: ExecutionTraceEventRecord[\"evidence\"][number]): EvidenceTarget {\n const artifact = readArtifact(resolved, state, evidence.artifactId);\n if (artifact.sha256 !== evidence.artifactSha256 || artifact.mediaType !== \"application/json\") {\n throw integrity(\"Execution evidence artifact digest or media type is invalid.\");\n }\n const cacheKey = `${artifact.artifactId}\\u0000${artifact.sha256}\\u0000${evidence.pointer}`;\n const cached = state.targets.get(cacheKey);\n if (cached !== undefined) {\n if (cached.targetSha256 !== evidence.targetSha256 || cached.bytes.byteLength !== evidence.targetByteLength) {\n throw integrity(\"Execution evidence target digest is invalid.\");\n }\n return cached;\n }\n let parsed = state.parsedArtifacts.get(artifact.artifactId);\n if (parsed === undefined) {\n parsed = parseJson(artifact.bytes, `Execution evidence artifact ${artifact.artifactId}`);\n state.parsedArtifacts.set(artifact.artifactId, parsed);\n }\n const target = resolvePointer(parsed, evidence.pointer);\n if (target === undefined)\n throw integrity(\"Execution evidence JSON pointer does not resolve.\");\n const canonical = canonicalizeRecordJson(target, TARGET_LIMITS);\n if (Result.isFailure(canonical))\n throw integrity(\"Execution evidence target is not bounded finite JSON.\");\n const bytes = utf8.encode(canonicalRecordJsonText(canonical.success as RecordJson));\n state.targetBytes += bytes.byteLength;\n if (state.targetBytes > ExecutionTraceRecordLimits.maximumEvidenceTargetBytes) {\n throw new InspectionExecutionTraceError(\"evidence-budget-exceeded\", \"Execution evidence target budget exceeded.\");\n }\n if (digest(bytes) !== evidence.targetSha256 || bytes.byteLength !== evidence.targetByteLength) {\n throw integrity(\"Execution evidence target digest or length is invalid.\");\n }\n const verified = Object.freeze({ bytes, artifact, targetSha256: evidence.targetSha256 });\n state.targets.set(cacheKey, verified);\n return verified;\n}\nfunction observeRecord(resolved: ResolvedInspectionAttempt, state: ScanState, record: Schema.Schema.Type<typeof ExecutionTraceRecordSchema>): void {\n if (record.kind === \"trace-header\") {\n if (state.headers.has(record.traceId) || state.sourceTraceIds.has(record.sourceTraceId)) {\n throw integrity(\"Execution trace identities are duplicated.\");\n }\n state.headers.set(record.traceId, record);\n state.sourceTraceIds.add(record.sourceTraceId);\n state.eventCounts.set(record.traceId, 0);\n state.eventKeys.set(record.traceId, new Set());\n const scopeIds = new Set<string>();\n for (const scope of record.scopes) {\n if (scopeIds.has(scope.scopeId) || Result.isFailure(canonicalizeRecordJson(scope.boundary, SCOPE_BOUNDARY_LIMITS))) {\n throw integrity(\"Execution trace scope identity or boundary is invalid.\");\n }\n scopeIds.add(scope.scopeId);\n }\n state.scopeIds.set(record.traceId, scopeIds);\n state.clockUnits.set(record.traceId, new Map());\n state.causeEdges.set(record.traceId, new Map());\n if (state.traceIdsForIndex.length < IDENTITY_INDEX_LIMIT)\n state.traceIdsForIndex.push(record.traceId);\n return;\n }\n const header = state.headers.get(record.traceId);\n const keys = state.eventKeys.get(record.traceId);\n const expectedOrdinal = state.eventCounts.get(record.traceId);\n if (header === undefined || keys === undefined || expectedOrdinal === undefined || record.ordinal !== expectedOrdinal ||\n keys.has(record.key) || state.eventIds.has(record.eventId))\n throw integrity(\"Execution trace event sequence or identity is invalid.\");\n keys.add(record.key);\n state.eventIds.add(record.eventId);\n state.eventCounts.set(record.traceId, expectedOrdinal + 1);\n if (state.eventIdsForIndex.length < IDENTITY_INDEX_LIMIT)\n state.eventIdsForIndex.push(record.eventId);\n if (record.links.length > ExecutionTraceRecordLimits.maximumLinksPerEvent ||\n record.evidence.length > ExecutionTraceRecordLimits.maximumEvidencePerEvent ||\n record.scopeMemberships.length > ExecutionTraceRecordLimits.maximumScopesPerEvent ||\n record.payload !== undefined && Result.isFailure(canonicalizeRecordJson(record.payload, PAYLOAD_LIMITS))) {\n throw integrity(\"Execution trace event exceeds its fixed semantic limits.\");\n }\n const evidenceKeys = new Set<string>();\n for (const evidence of record.evidence) {\n if (evidenceKeys.has(evidence.key) || state.evidenceIds.has(evidence.evidenceId))\n throw integrity(\"Execution evidence identity is duplicated.\");\n evidenceKeys.add(evidence.key);\n state.evidenceIds.add(evidence.evidenceId);\n if (state.evidenceIdsForIndex.length < IDENTITY_INDEX_LIMIT)\n state.evidenceIdsForIndex.push(evidence.evidenceId);\n verifyEvidence(resolved, state, evidence);\n }\n const membershipScopes = new Set<string>();\n const declaredScopes = state.scopeIds.get(record.traceId)!;\n for (const membership of record.scopeMemberships) {\n if (!declaredScopes.has(membership.scopeId) || membershipScopes.has(membership.scopeId)) {\n throw integrity(\"Execution trace scope membership is invalid.\");\n }\n membershipScopes.add(membership.scopeId);\n }\n if (record.time !== undefined) {\n const units = state.clockUnits.get(record.traceId)!;\n const priorUnit = units.get(record.time.clockId);\n if (priorUnit !== undefined && priorUnit !== record.time.unit) {\n throw integrity(\"Execution trace clock unit changed within one trace.\");\n }\n units.set(record.time.clockId, record.time.unit);\n }\n for (const link of record.links) {\n if (!(\"targetKey\" in link))\n continue;\n state.resolvedLinks.push(Object.freeze({ traceId: record.traceId, targetKey: link.targetKey }));\n if (link.relation === \"causes\") {\n const edges = state.causeEdges.get(record.traceId)!;\n const targets = edges.get(record.key) ?? [];\n targets.push(link.targetKey);\n edges.set(record.key, targets);\n }\n }\n}\nfunction hasDirectedCycle(keys: ReadonlySet<string>, edges: ReadonlyMap<string, readonly string[]>): boolean {\n const states = new Map<string, \"visiting\" | \"visited\">();\n for (const root of keys) {\n if (states.get(root) === \"visited\")\n continue;\n const stack: Array<{\n readonly key: string;\n next: number;\n }> = [{ key: root, next: 0 }];\n states.set(root, \"visiting\");\n while (stack.length > 0) {\n const frame = stack[stack.length - 1]!;\n const target = (edges.get(frame.key) ?? [])[frame.next];\n if (target === undefined) {\n states.set(frame.key, \"visited\");\n stack.pop();\n continue;\n }\n frame.next += 1;\n const targetState = states.get(target);\n if (targetState === \"visiting\")\n return true;\n if (targetState === \"visited\")\n continue;\n states.set(target, \"visiting\");\n stack.push({ key: target, next: 0 });\n }\n }\n return false;\n}\nfunction validateScanSemantics(state: ScanState): void {\n if (state.headers.size > ExecutionTraceRecordLimits.maximumTraces ||\n state.eventIds.size > ExecutionTraceRecordLimits.maximumEvents) {\n throw integrity(\"Execution trace collection exceeds its fixed trace or event limit.\");\n }\n for (const link of state.resolvedLinks) {\n if (!state.eventKeys.get(link.traceId)?.has(link.targetKey)) {\n throw integrity(\"Resolved execution trace link leaves its trace snapshot.\");\n }\n }\n for (const [traceId, edges] of state.causeEdges) {\n const keys = state.eventKeys.get(traceId);\n if (keys === undefined || hasDirectedCycle(keys, edges)) {\n throw integrity(\"Execution trace causes links contain a cycle.\");\n }\n }\n}\nfunction scanCollection(resolved: ResolvedInspectionAttempt, visit: (record: Schema.Schema.Type<typeof ExecutionTraceRecordSchema>, collectionOrdinal: number, state: ScanState) => void): {\n readonly state: ScanState;\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly AttemptRecordCollectionLimitation[];\n };\n} | undefined {\n const attachment = collectionAttachment(resolved);\n if (attachment === undefined)\n return undefined;\n const validated = validateAttachment(resolved, attachment);\n const state = newScanState();\n const hash = new InspectionSha256();\n let after = -1;\n let ordinal = 0;\n let byteLength = 0;\n for (;;) {\n const page = resolved.origin.source.readCollectionPage(attachment.physical.attachmentId, after, PAGE_ROWS);\n if (page.attachmentId !== attachment.physical.attachmentId || page.afterOrdinal !== after || page.items.length > PAGE_ROWS ||\n page.items.length === 0 && page.nextOrdinal !== null)\n throw integrity(\"Execution trace collection page is invalid.\");\n for (const item of page.items) {\n const itemDigest = digest(item.canonicalBytes);\n if (item.ordinal !== ordinal || item.canonicalDigest !== itemDigest ||\n item.logicalIdentity !== executionCollectionItemLogicalIdentity(ordinal, itemDigest))\n throw integrity(\"Execution trace collection item closure is invalid.\");\n const decoded = Schema.decodeUnknownResult(ExecutionTraceRecordSchema, { onExcessProperty: \"error\" })(parseJson(item.canonicalBytes, \"Execution trace collection item\"));\n if (Result.isFailure(decoded))\n throw integrity(\"Execution trace collection item schema is invalid.\");\n hash.update(item.canonicalBytes).update(Uint8Array.of(0x0a));\n byteLength += item.canonicalBytes.byteLength;\n observeRecord(resolved, state, decoded.success);\n visit(decoded.success, ordinal, state);\n ordinal += 1;\n }\n if (page.nextOrdinal === null)\n break;\n if (page.items.length === 0 || page.nextOrdinal !== ordinal - 1)\n throw integrity(\"Execution trace collection continuation is invalid.\");\n after = page.nextOrdinal;\n }\n if (ordinal !== attachment.physical.collectionItemCount || byteLength !== attachment.physical.collectionItemByteLength ||\n hash.digestHex() !== validated.expectedDigest)\n throw integrity(\"Execution trace collection aggregate closure is invalid.\");\n validateScanSemantics(state);\n return Object.freeze({ state, collection: validated.collection });\n}\nfunction matches(event: ExecutionTraceEventRecord, filters: ExecutionTraceFilters): boolean {\n return (filters.traceId === undefined || event.traceId === filters.traceId) &&\n (filters.sourceId === undefined || event.source.id === filters.sourceId) &&\n (filters.actorId === undefined || event.actor?.id === filters.actorId);\n}\nexport const EXECUTION_TRACE_CONTINUATION_FAMILIES = Object.freeze({\n executionTraces: executionTracesRecordCollection.family,\n agentTurns: \"niceeval.agent-turns\",\n});\ninterface ContinuationBinding {\n readonly operation: \"attempt.trace\";\n readonly sourceIdentity: InspectionFactSource[\"kind\"];\n readonly cutoff: string;\n readonly originAttempt: string;\n readonly sourceFamily: string;\n readonly familyRevision: number;\n readonly behaviorVersion: typeof INSPECTION_BEHAVIOR_VERSION;\n readonly filters: {\n readonly traceId: string | null;\n readonly sourceId: string | null;\n readonly actorId: string | null;\n };\n readonly lastOrdinal: number;\n}\nexport interface ExecutionTraceContinuationContext {\n readonly source: InspectionFactSource;\n readonly originAttempt: string;\n readonly sourceFamily: string;\n readonly familyRevision: number;\n readonly filters: ExecutionTraceFilters;\n}\nfunction continuationBinding(context: ExecutionTraceContinuationContext, lastOrdinal: number): ContinuationBinding {\n return Object.freeze({\n operation: \"attempt.trace\",\n sourceIdentity: context.source.kind,\n cutoff: context.source.cutoff().identity,\n originAttempt: context.originAttempt,\n sourceFamily: context.sourceFamily,\n familyRevision: context.familyRevision,\n behaviorVersion: INSPECTION_BEHAVIOR_VERSION,\n filters: Object.freeze({\n traceId: context.filters.traceId ?? null,\n sourceId: context.filters.sourceId ?? null,\n actorId: context.filters.actorId ?? null,\n }),\n lastOrdinal,\n });\n}\nfunction nativeContinuationContext(source: InspectionFactSource, resolved: ResolvedInspectionAttempt, filters: ExecutionTraceFilters): ExecutionTraceContinuationContext {\n return Object.freeze({\n source,\n originAttempt: `${resolved.attempt.originRunId}:${resolved.attempt.attemptId}`,\n sourceFamily: EXECUTION_TRACE_CONTINUATION_FAMILIES.executionTraces,\n familyRevision: EXECUTION_TRACE_FAMILY_REVISION,\n filters,\n });\n}\nexport function encodeExecutionTraceContinuation(context: ExecutionTraceContinuationContext, lastOrdinal: number): string {\n if (!Number.isSafeInteger(lastOrdinal) || lastOrdinal < 0) {\n throw new InspectionExecutionTraceError(\"restart-required\", \"Execution trace continuation binding changed; restart from the first page.\");\n }\n return encodeBase64UrlUtf8(JSON.stringify(continuationBinding(context, lastOrdinal)));\n}\nexport function decodeExecutionTraceContinuation(token: string, context: ExecutionTraceContinuationContext): number {\n try {\n const parsed = JSON.parse(decodeBase64UrlUtf8(token)) as ContinuationBinding;\n const expected = continuationBinding(context, parsed.lastOrdinal);\n if (!Number.isSafeInteger(parsed.lastOrdinal) || parsed.lastOrdinal < 0 || JSON.stringify(parsed) !== JSON.stringify(expected)) {\n throw new Error(\"binding changed\");\n }\n return parsed.lastOrdinal;\n }\n catch {\n throw new InspectionExecutionTraceError(\"restart-required\", \"Execution trace continuation binding changed; restart from the first page.\");\n }\n}\nfunction continuationSourceFamily(token: string): string | undefined {\n try {\n const parsed = JSON.parse(decodeBase64UrlUtf8(token)) as {\n readonly sourceFamily?: unknown;\n };\n return typeof parsed.sourceFamily === \"string\" ? parsed.sourceFamily : undefined;\n }\n catch {\n return undefined;\n }\n}\nfunction outlineEvent(event: ExecutionTraceEventRecord): ExecutionTraceEventOutline {\n return Object.freeze({\n traceId: event.traceId,\n eventId: event.eventId,\n origin: Object.freeze({ kind: \"execution-event\", eventId: event.eventId }),\n ordinal: event.ordinal,\n type: event.type,\n source: event.source,\n ...(event.actor === undefined ? {} : { actor: event.actor }),\n ...(event.time === undefined ? {} : { time: event.time }),\n summary: event.summary,\n links: event.links,\n evidence: Object.freeze(event.evidence.map(({ evidenceId, key, label }) => Object.freeze({ evidenceId, key, label }))),\n scopeMemberships: event.scopeMemberships,\n });\n}\nexport function projectExecutionTraceOutline(source: InspectionFactSource, resolved: ResolvedInspectionAttempt, request: ExecutionTraceOutlineRequest): ExecutionTraceOutlineResult {\n const filters: ExecutionTraceFilters = Object.freeze({\n ...(request.traceId === undefined ? {} : { traceId: request.traceId }),\n ...(request.sourceId === undefined ? {} : { sourceId: request.sourceId }),\n ...(request.actorId === undefined ? {} : { actorId: request.actorId }),\n });\n const nativeAttachment = collectionAttachment(resolved);\n if (request.continuation !== undefined && nativeAttachment === undefined &&\n continuationSourceFamily(request.continuation) === EXECUTION_TRACE_CONTINUATION_FAMILIES.agentTurns) {\n return Object.freeze({\n state: \"not-recorded\", limitations: Object.freeze([]), traces: Object.freeze([]), events: Object.freeze([]),\n identityIndex: Object.freeze({ traceIds: Object.freeze([]), omittedTraceIdCount: 0, eventIds: Object.freeze([]), omittedEventIdCount: 0, evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0 }),\n hasMore: false, omittedEventCount: 0,\n });\n }\n const continuationContext = nativeContinuationContext(source, resolved, filters);\n const resumeAfter = request.continuation === undefined\n ? -1\n : decodeExecutionTraceContinuation(request.continuation, continuationContext);\n const retained: Array<{\n readonly event: ExecutionTraceEventOutline;\n readonly collectionOrdinal: number;\n }> = [];\n let matched = 0;\n let priorMatches = 0;\n let pageFull = false;\n const matchedTraceIds = new Set<string>();\n const scanned = scanCollection(resolved, (record, collectionOrdinal) => {\n if (record.kind !== \"event\" || !matches(record, filters))\n return;\n matched += 1;\n matchedTraceIds.add(record.traceId);\n if (collectionOrdinal <= resumeAfter) {\n priorMatches += 1;\n return;\n }\n if (pageFull || retained.length >= ExecutionTraceRecordLimits.maximumOutlineEvents) {\n pageFull = true;\n return;\n }\n const candidate = Object.freeze({ event: outlineEvent(record), collectionOrdinal });\n const nextEvents = [...retained.map(({ event }) => event), candidate.event];\n if (utf8ByteLength(JSON.stringify(nextEvents)) > ExecutionTraceRecordLimits.maximumOutlineBytes) {\n if (retained.length === 0)\n throw integrity(\"One execution trace outline event exceeds the fixed page budget.\");\n pageFull = true;\n return;\n }\n retained.push(candidate);\n });\n if (scanned === undefined)\n return Object.freeze({\n state: \"not-recorded\", limitations: Object.freeze([]), traces: Object.freeze([]), events: Object.freeze([]),\n identityIndex: Object.freeze({ traceIds: Object.freeze([]), omittedTraceIdCount: 0, eventIds: Object.freeze([]), omittedEventIdCount: 0, evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0 }),\n hasMore: false, omittedEventCount: 0,\n });\n const remaining = Math.max(0, matched - priorMatches - retained.length);\n const lastOrdinal = retained.at(-1)?.collectionOrdinal;\n const hasEventFilter = filters.sourceId !== undefined || filters.actorId !== undefined;\n const traceHeaders = [...scanned.state.headers.values()]\n .filter((header) => (filters.traceId === undefined || header.traceId === filters.traceId) &&\n (!hasEventFilter || matchedTraceIds.has(header.traceId)))\n .map((header) => Object.freeze({\n ...header,\n eventCount: scanned.state.eventCounts.get(header.traceId) ?? 0,\n }));\n return Object.freeze({\n state: scanned.collection.state,\n limitations: scanned.collection.limitations,\n traces: Object.freeze(traceHeaders),\n events: Object.freeze(retained.map(({ event }) => event)),\n identityIndex: Object.freeze({\n traceIds: Object.freeze(scanned.state.traceIdsForIndex),\n omittedTraceIdCount: scanned.state.headers.size - scanned.state.traceIdsForIndex.length,\n eventIds: Object.freeze(scanned.state.eventIdsForIndex),\n omittedEventIdCount: scanned.state.eventIds.size - scanned.state.eventIdsForIndex.length,\n evidenceIds: Object.freeze(scanned.state.evidenceIdsForIndex),\n omittedEvidenceIdCount: scanned.state.evidenceIds.size - scanned.state.evidenceIdsForIndex.length,\n }),\n hasMore: remaining > 0,\n omittedEventCount: remaining,\n ...(remaining > 0 && lastOrdinal !== undefined\n ? { continuation: encodeExecutionTraceContinuation(continuationContext, lastOrdinal) }\n : {}),\n });\n}\nfunction range(event: ExecutionTraceEventRecord, evidence: ExecutionTraceEventRecord[\"evidence\"][number], target: EvidenceTarget, offset: number, limit: number): ExecutionEvidenceRange {\n if (!Number.isSafeInteger(offset) || offset < 0 || offset > target.bytes.byteLength ||\n !Number.isSafeInteger(limit) || limit < 1 || limit > 256 * 1024) {\n throw new InspectionExecutionTraceError(\"inspection-request-invalid\", \"Execution evidence offset or limit is invalid.\");\n }\n const bytes = target.bytes.subarray(offset, Math.min(target.bytes.byteLength, offset + limit));\n return Object.freeze({\n evidenceId: evidence.evidenceId,\n eventId: event.eventId,\n traceId: event.traceId,\n key: evidence.key,\n label: evidence.label,\n artifactId: evidence.artifactId,\n pointer: evidence.pointer,\n artifactSha256: evidence.artifactSha256,\n targetSha256: evidence.targetSha256,\n targetByteLength: evidence.targetByteLength,\n offset,\n base64: encodeBase64Bytes(bytes),\n nextOffset: offset + bytes.byteLength < target.bytes.byteLength ? offset + bytes.byteLength : null,\n });\n}\nexport function projectExecutionTraceDetail(resolved: ResolvedInspectionAttempt, selector: ExecutionTraceDetailSelector): ExecutionTraceDetailResult | undefined {\n let selectedEvent: ExecutionTraceEventRecord | undefined;\n let selectedEvidence: ExecutionTraceEventRecord[\"evidence\"][number] | undefined;\n let selectedTarget: EvidenceTarget | undefined;\n const scanned = scanCollection(resolved, (record, _ordinal, state) => {\n if (record.kind !== \"event\")\n return;\n if (selector.kind === \"execution-event\" && record.eventId === selector.eventId)\n selectedEvent = record;\n if (selector.kind === \"execution-evidence\") {\n const evidence = record.evidence.find(({ evidenceId }) => evidenceId === selector.evidenceId);\n if (evidence !== undefined) {\n selectedEvent = record;\n selectedEvidence = evidence;\n selectedTarget = verifyEvidence(resolved, state, evidence);\n }\n }\n });\n if (scanned === undefined || selectedEvent === undefined)\n return undefined;\n if (selector.kind === \"execution-evidence\") {\n if (selectedEvidence === undefined || selectedTarget === undefined)\n return undefined;\n return Object.freeze({\n kind: \"execution-evidence\",\n ...range(selectedEvent, selectedEvidence, selectedTarget, selector.offset ?? 0, selector.limit ?? 64 * 1024),\n });\n }\n const previews = selectedEvent.evidence.map((evidence) => {\n const target = scanned.state.targets.get(`${evidence.artifactId}\\u0000${evidence.artifactSha256}\\u0000${evidence.pointer}`);\n if (target === undefined)\n throw integrity(\"Execution evidence cache is unavailable.\");\n const value = range(selectedEvent!, evidence, target, 0, ExecutionTraceRecordLimits.maximumDetailPreviewBytes);\n return Object.freeze({\n evidenceId: value.evidenceId,\n key: value.key,\n label: value.label,\n artifactId: value.artifactId,\n pointer: value.pointer,\n targetSha256: value.targetSha256,\n targetByteLength: value.targetByteLength,\n offset: 0 as const,\n base64: value.base64,\n nextOffset: value.nextOffset,\n truncated: value.nextOffset !== null,\n });\n });\n const result: ExecutionTraceDetailResult = Object.freeze({ kind: \"execution-event\", event: selectedEvent, evidence: Object.freeze(previews) });\n if (utf8ByteLength(JSON.stringify(result)) > ExecutionTraceRecordLimits.maximumDetailBytes) {\n throw integrity(\"Execution event detail exceeds its fixed response budget.\");\n }\n return result;\n}\n"]}
1
+ {"version":3,"file":"execution-traces.js","sourceRoot":"","sources":["execution-traces.ts"],"names":[],"mappings":"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","sourcesContent":["import { Result, Schema } from \"effect\";\nimport { canonicalizeRecordJson, canonicalRecordJsonText, type RecordJson, } from \"../record/definition/canonical.ts\";\nimport type { AttemptRecordCollectionLimitation } from \"../record/authoring.ts\";\nimport { executionTracesRecordCollection } from \"../record/family/execution-traces/definition.ts\";\nimport { ExecutionTraceRecordLimits, ExecutionTraceRecordSchema, displayTextHasForbiddenCharacter, type ExecutionDisplayBlockRecord, type ExecutionTraceEventRecord, type ExecutionTraceHeaderRecord, } from \"../record/family/execution-traces/schema.ts\";\nimport type { DecodedInspectionAttachment, ResolvedInspectionAttempt } from \"./facts.ts\";\nimport { readInspectionArtifactBytes, readInspectionArtifactDescriptors, type InspectionArtifactBytes, type InspectionArtifactDescriptor, } from \"./artifacts.ts\";\nimport { decodeBase64UrlUtf8, encodeBase64Bytes, encodeBase64UrlUtf8, InspectionSha256, utf8ByteLength, } from \"./bytes.ts\";\nimport type { InspectionFactSource } from \"./source.ts\";\nimport { INSPECTION_BEHAVIOR_VERSION } from \"./protocol-values.ts\";\nexport const EXECUTION_TRACE_FAMILY_REVISION = 1 as const;\nconst PAGE_ROWS = 64;\nconst IDENTITY_INDEX_LIMIT = 256;\nconst TARGET_LIMITS = Object.freeze({\n maximumJsonBytes: ExecutionTraceRecordLimits.maximumEvidenceTargetBytes,\n maximumDepth: ExecutionTraceRecordLimits.maximumJsonDepth,\n maximumNodes: 70000000,\n maximumObjectKeys: 40000000,\n maximumArrayItems: 70000000,\n maximumKeyUtf8Bytes: ExecutionTraceRecordLimits.maximumEvidenceTargetBytes,\n maximumStringUtf8Bytes: ExecutionTraceRecordLimits.maximumEvidenceTargetBytes,\n});\nconst PAYLOAD_LIMITS = Object.freeze({\n maximumJsonBytes: ExecutionTraceRecordLimits.maximumPayloadBytes,\n maximumDepth: ExecutionTraceRecordLimits.maximumJsonDepth,\n maximumNodes: 20000,\n maximumObjectKeys: 10000,\n maximumArrayItems: 20000,\n maximumKeyUtf8Bytes: ExecutionTraceRecordLimits.maximumPayloadBytes,\n maximumStringUtf8Bytes: ExecutionTraceRecordLimits.maximumPayloadBytes,\n});\nconst SCOPE_BOUNDARY_LIMITS = Object.freeze({\n maximumJsonBytes: ExecutionTraceRecordLimits.maximumCanonicalInputBytes,\n maximumDepth: ExecutionTraceRecordLimits.maximumJsonDepth,\n maximumNodes: 40000000,\n maximumObjectKeys: 20000000,\n maximumArrayItems: 40000000,\n maximumKeyUtf8Bytes: ExecutionTraceRecordLimits.maximumCanonicalInputBytes,\n maximumStringUtf8Bytes: ExecutionTraceRecordLimits.maximumCanonicalInputBytes,\n});\nconst utf8 = new TextEncoder();\nexport interface ExecutionTraceFilters {\n readonly traceId?: string;\n readonly sourceId?: string;\n readonly actorId?: string;\n readonly eventType?: string;\n}\nexport interface ExecutionTraceOutlineRequest extends ExecutionTraceFilters {\n readonly continuation?: string;\n}\nexport type ExecutionTraceDetailSelector = {\n readonly kind: \"execution-event\";\n readonly eventId: string;\n} | {\n readonly kind: \"execution-evidence\";\n readonly evidenceId: string;\n readonly offset?: number;\n readonly limit?: number;\n};\nexport interface ExecutionTraceOutlineResult {\n readonly state: \"complete\" | \"partial\" | \"not-recorded\" | \"invalid\";\n readonly limitations: readonly ({\n readonly code: \"capture-failed\";\n readonly stage: \"adapter\";\n } | {\n readonly code: \"capture-interrupted\";\n readonly stage: \"attempt-finalizer\";\n } | {\n readonly code: \"collection-cap-reached\";\n readonly omittedAtLeast: number;\n } | {\n readonly code: \"legacy-source-state\";\n readonly state: \"partial\" | \"invalid\";\n readonly message: string;\n })[];\n readonly traces: readonly (ExecutionTraceHeaderRecord & {\n readonly eventCount: number;\n })[];\n readonly events: readonly ExecutionTraceEventOutline[];\n readonly identityIndex: {\n readonly traceIds: readonly string[];\n readonly omittedTraceIdCount: number;\n readonly eventIds: readonly string[];\n readonly omittedEventIdCount: number;\n readonly evidenceIds: readonly string[];\n readonly omittedEvidenceIdCount: number;\n };\n readonly hasMore: boolean;\n readonly omittedEventCount: number;\n readonly continuation?: string;\n}\nexport interface ExecutionDisplayPreviewText {\n readonly preview: string;\n readonly omittedBytes: number;\n}\nexport type ExecutionDisplayBlockPreview = {\n readonly kind: \"text\";\n readonly text: ExecutionDisplayPreviewText;\n} | {\n readonly kind: \"message\";\n readonly role: \"user\" | \"assistant\" | \"system\" | \"other\";\n readonly speaker?: string;\n readonly text: ExecutionDisplayPreviewText;\n} | {\n readonly kind: \"fields\";\n readonly fields: readonly {\n readonly label: string;\n readonly value: ExecutionDisplayPreviewText | number | boolean | null;\n }[];\n} | {\n readonly kind: \"code\";\n readonly language?: string;\n readonly text: ExecutionDisplayPreviewText;\n} | {\n readonly kind: \"image\";\n readonly artifactId: string;\n readonly alt: string;\n readonly mediaType: string;\n readonly byteLength: number;\n readonly sha256: string;\n};\nexport type ExecutionDisplayPreview = {\n readonly state: \"absent\";\n} | {\n readonly state: \"present\";\n readonly blocks: readonly ExecutionDisplayBlockPreview[];\n};\nexport interface ExecutionTraceEventOutline {\n readonly traceId: string;\n readonly eventId: string;\n readonly origin: {\n readonly kind: \"execution-event\";\n readonly eventId: string;\n } | {\n readonly kind: \"agent-item\";\n readonly itemId: string;\n };\n readonly ordinal: number;\n readonly type: string;\n readonly source: ExecutionTraceEventRecord[\"source\"];\n readonly actor?: ExecutionTraceEventRecord[\"actor\"];\n readonly time?: ExecutionTraceEventRecord[\"time\"];\n readonly summary: string;\n readonly links: ExecutionTraceEventRecord[\"links\"];\n readonly evidence: readonly {\n readonly evidenceId: string;\n readonly key: string;\n readonly label: string;\n }[];\n readonly scopeMemberships: ExecutionTraceEventRecord[\"scopeMemberships\"];\n readonly display: ExecutionDisplayPreview;\n}\nexport type ExecutionTraceDetailResult = {\n readonly kind: \"execution-event\";\n readonly event: ExecutionTraceEventRecord;\n readonly evidence: readonly ExecutionEvidencePreview[];\n} | ({\n readonly kind: \"execution-evidence\";\n} & ExecutionEvidenceRange);\nexport interface ExecutionEvidencePreview {\n readonly evidenceId: string;\n readonly key: string;\n readonly label: string;\n readonly artifactId: string;\n readonly pointer: string;\n readonly targetSha256: string;\n readonly targetByteLength: number;\n readonly offset: 0;\n readonly base64: string;\n readonly nextOffset: number | null;\n readonly truncated: boolean;\n}\nexport interface ExecutionEvidenceRange extends Omit<ExecutionEvidencePreview, \"offset\" | \"truncated\"> {\n readonly eventId: string;\n readonly traceId: string;\n readonly artifactSha256: string;\n readonly offset: number;\n}\nexport class InspectionExecutionTraceError extends Error {\n readonly code: \"inspection-request-invalid\" | \"inspection-record-integrity-failure\" | \"evidence-budget-exceeded\" | \"restart-required\";\n constructor(code: InspectionExecutionTraceError[\"code\"], message: string) {\n super(message);\n this.name = \"InspectionExecutionTraceError\";\n this.code = code;\n }\n}\ninterface EvidenceTarget {\n readonly bytes: Uint8Array;\n readonly artifact: InspectionArtifactBytes;\n readonly targetSha256: string;\n}\ninterface ScanState {\n readonly headers: Map<string, ExecutionTraceHeaderRecord>;\n readonly sourceTraceIds: Set<string>;\n readonly eventCounts: Map<string, number>;\n readonly eventKeys: Map<string, Set<string>>;\n readonly scopeIds: Map<string, Set<string>>;\n readonly clockUnits: Map<string, Map<string, string>>;\n readonly resolvedLinks: Array<{\n readonly traceId: string;\n readonly targetKey: string;\n }>;\n readonly causeEdges: Map<string, Map<string, string[]>>;\n readonly eventIds: Set<string>;\n readonly evidenceIds: Set<string>;\n readonly traceIdsForIndex: string[];\n readonly eventIdsForIndex: string[];\n readonly evidenceIdsForIndex: string[];\n sourceBytes: number;\n targetBytes: number;\n readonly artifacts: Map<string, InspectionArtifactBytes>;\n readonly parsedArtifacts: Map<string, unknown>;\n readonly targets: Map<string, EvidenceTarget>;\n descriptors: ReadonlyMap<string, InspectionArtifactDescriptor> | undefined;\n}\nfunction digest(value: Uint8Array | string): string {\n return new InspectionSha256().update(typeof value === \"string\" ? utf8.encode(value) : value).digestHex();\n}\nfunction tupleLengthPrefix(length: number): Uint8Array {\n if (!Number.isSafeInteger(length) || length < 0 || length > 4294967295) {\n throw integrity(\"Execution trace collection item identity length is invalid.\");\n }\n const prefix = new Uint8Array(4);\n new DataView(prefix.buffer).setUint32(0, length, false);\n return prefix;\n}\nfunction updateTuplePart(hash: InspectionSha256, part: string | number): void {\n const tag = typeof part === \"string\" ? 1 : 2;\n if (typeof part === \"number\" && !Number.isSafeInteger(part)) {\n throw integrity(\"Execution trace collection item identity ordinal is invalid.\");\n }\n const payload = utf8.encode(String(part));\n hash.update(Uint8Array.of(tag)).update(tupleLengthPrefix(payload.byteLength)).update(payload);\n}\nfunction executionCollectionItemLogicalIdentity(ordinal: number, canonicalDigest: string): string {\n return inspectionTupleDigest(\"niceeval.record.collection-item-logical-identity/v1\", [ordinal, canonicalDigest]);\n}\nfunction inspectionTupleDigest(domain: string, parts: readonly (string | number)[]): string {\n const hash = new InspectionSha256();\n updateTuplePart(hash, domain);\n for (const part of parts)\n updateTuplePart(hash, part);\n return hash.digestHex();\n}\nfunction parseJson(bytes: Uint8Array, label: string): unknown {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n throw integrity(`${label} is not UTF-8 JSON.`);\n }\n}\nfunction integrity(message: string): InspectionExecutionTraceError {\n return new InspectionExecutionTraceError(\"inspection-record-integrity-failure\", message);\n}\nfunction pointerSegments(pointer: string): readonly string[] | undefined {\n if (pointer === \"\")\n return [];\n if (!pointer.startsWith(\"/\"))\n return undefined;\n const output: string[] = [];\n for (const token of pointer.slice(1).split(\"/\")) {\n let decoded = \"\";\n for (let index = 0; index < token.length; index += 1) {\n if (token[index] !== \"~\") {\n decoded += token[index];\n continue;\n }\n const escape = token[index + 1];\n if (escape === \"0\")\n decoded += \"~\";\n else if (escape === \"1\")\n decoded += \"/\";\n else\n return undefined;\n index += 1;\n }\n output.push(decoded);\n }\n return output;\n}\nfunction resolvePointer(root: unknown, pointer: string): unknown | undefined {\n const segments = pointerSegments(pointer);\n if (segments === undefined)\n return undefined;\n let current = root;\n for (const segment of segments) {\n if (Array.isArray(current)) {\n if (!/^(?:0|[1-9][0-9]*)$/u.test(segment))\n return undefined;\n const index = Number(segment);\n if (!Number.isSafeInteger(index) || index >= current.length || !Object.prototype.hasOwnProperty.call(current, segment))\n return undefined;\n current = current[index];\n }\n else if (typeof current === \"object\" && current !== null && Object.prototype.hasOwnProperty.call(current, segment)) {\n const descriptor = Object.getOwnPropertyDescriptor(current, segment);\n if (descriptor === undefined || !(\"value\" in descriptor) || descriptor.enumerable !== true)\n return undefined;\n current = descriptor.value;\n }\n else\n return undefined;\n }\n return current;\n}\nfunction collectionAttachment(resolved: ResolvedInspectionAttempt): DecodedInspectionAttachment | undefined {\n const matches = resolved.origin.attachments.filter(({ physical }) => physical.ownerKind === \"attempt\" &&\n physical.ownerAttemptId === resolved.attempt.attemptId &&\n physical.family === executionTracesRecordCollection.family);\n if (matches.length > 1)\n throw integrity(\"Execution trace owner has duplicate collection attachments.\");\n return matches[0];\n}\nfunction validateAttachment(resolved: ResolvedInspectionAttempt, attachment: DecodedInspectionAttachment): {\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly AttemptRecordCollectionLimitation[];\n };\n readonly expectedDigest: string;\n} {\n const physical = attachment.physical;\n if (physical.ownerKind !== \"attempt\" || physical.ownerAttemptId !== resolved.attempt.attemptId ||\n physical.ownerRunId !== resolved.attempt.originRunId || physical.family !== executionTracesRecordCollection.family ||\n physical.familyRevision !== EXECUTION_TRACE_FAMILY_REVISION || physical.references.length !== 0 || physical.contents.length !== 0 ||\n digest(physical.canonicalBytes) !== physical.canonicalDigest || digest(physical.logicalInventoryBytes) !== physical.inventoryDigest ||\n physical.logicalIdentity !== inspectionTupleDigest(\"niceeval.record.attachment-logical-identity/v1\", [\n physical.attachmentId,\n physical.canonicalDigest,\n physical.inventoryDigest,\n ])) {\n throw integrity(\"Execution trace collection attachment closure is invalid.\");\n }\n const shell = Schema.decodeUnknownResult(executionTracesRecordCollection.schema, { onExcessProperty: \"error\" })(attachment.value);\n if (Result.isFailure(shell) || shell.success.items.length !== 0)\n throw integrity(\"Execution trace collection shell is invalid.\");\n const inventory = parseJson(physical.logicalInventoryBytes, \"Execution trace collection inventory\") as {\n readonly collection?: {\n readonly count?: unknown;\n readonly byteLength?: unknown;\n readonly digest?: unknown;\n };\n };\n if (inventory.collection?.count !== physical.collectionItemCount ||\n inventory.collection.byteLength !== physical.collectionItemByteLength ||\n typeof inventory.collection.digest !== \"string\")\n throw integrity(\"Execution trace collection inventory is invalid.\");\n return Object.freeze({\n collection: shell.success.collection,\n expectedDigest: inventory.collection.digest,\n });\n}\nfunction newScanState(): ScanState {\n return {\n headers: new Map(), sourceTraceIds: new Set(), eventCounts: new Map(), eventKeys: new Map(),\n scopeIds: new Map(), clockUnits: new Map(), resolvedLinks: [], causeEdges: new Map(),\n eventIds: new Set(), evidenceIds: new Set(), traceIdsForIndex: [], eventIdsForIndex: [], evidenceIdsForIndex: [],\n sourceBytes: 0, targetBytes: 0, artifacts: new Map(), parsedArtifacts: new Map(), targets: new Map(),\n descriptors: undefined,\n };\n}\nfunction readArtifact(resolved: ResolvedInspectionAttempt, state: ScanState, artifactId: string): InspectionArtifactBytes {\n const cached = state.artifacts.get(artifactId);\n if (cached !== undefined)\n return cached;\n const read = readInspectionArtifactBytes(resolved, artifactId, Math.min(64 * 1024 * 1024, ExecutionTraceRecordLimits.maximumEvidenceSourceBytes - state.sourceBytes));\n if (Result.isFailure(read) && read.failure.code === \"inspection-request-invalid\") {\n throw new InspectionExecutionTraceError(\"evidence-budget-exceeded\", \"Execution evidence source budget exceeded.\");\n }\n if (Result.isFailure(read) || read.success === undefined)\n throw integrity(`Execution evidence artifact ${artifactId} is unavailable.`);\n state.sourceBytes += read.success.byteLength;\n if (state.sourceBytes > ExecutionTraceRecordLimits.maximumEvidenceSourceBytes) {\n throw new InspectionExecutionTraceError(\"evidence-budget-exceeded\", \"Execution evidence source budget exceeded.\");\n }\n state.artifacts.set(artifactId, read.success);\n return read.success;\n}\nfunction verifyEvidence(resolved: ResolvedInspectionAttempt, state: ScanState, evidence: ExecutionTraceEventRecord[\"evidence\"][number]): EvidenceTarget {\n const artifact = readArtifact(resolved, state, evidence.artifactId);\n if (artifact.sha256 !== evidence.artifactSha256 || artifact.mediaType !== \"application/json\") {\n throw integrity(\"Execution evidence artifact digest or media type is invalid.\");\n }\n const cacheKey = `${artifact.artifactId}\\u0000${artifact.sha256}\\u0000${evidence.pointer}`;\n const cached = state.targets.get(cacheKey);\n if (cached !== undefined) {\n if (cached.targetSha256 !== evidence.targetSha256 || cached.bytes.byteLength !== evidence.targetByteLength) {\n throw integrity(\"Execution evidence target digest is invalid.\");\n }\n return cached;\n }\n let parsed = state.parsedArtifacts.get(artifact.artifactId);\n if (parsed === undefined) {\n parsed = parseJson(artifact.bytes, `Execution evidence artifact ${artifact.artifactId}`);\n state.parsedArtifacts.set(artifact.artifactId, parsed);\n }\n const target = resolvePointer(parsed, evidence.pointer);\n if (target === undefined)\n throw integrity(\"Execution evidence JSON pointer does not resolve.\");\n const canonical = canonicalizeRecordJson(target, TARGET_LIMITS);\n if (Result.isFailure(canonical))\n throw integrity(\"Execution evidence target is not bounded finite JSON.\");\n const bytes = utf8.encode(canonicalRecordJsonText(canonical.success as RecordJson));\n state.targetBytes += bytes.byteLength;\n if (state.targetBytes > ExecutionTraceRecordLimits.maximumEvidenceTargetBytes) {\n throw new InspectionExecutionTraceError(\"evidence-budget-exceeded\", \"Execution evidence target budget exceeded.\");\n }\n if (digest(bytes) !== evidence.targetSha256 || bytes.byteLength !== evidence.targetByteLength) {\n throw integrity(\"Execution evidence target digest or length is invalid.\");\n }\n const verified = Object.freeze({ bytes, artifact, targetSha256: evidence.targetSha256 });\n state.targets.set(cacheKey, verified);\n return verified;\n}\nfunction displayStrings(block: ExecutionDisplayBlockRecord): readonly string[] {\n switch (block.kind) {\n case \"text\": return [block.text];\n case \"message\": return block.speaker === undefined ? [block.text] : [block.text, block.speaker];\n case \"fields\": return block.fields.flatMap((field) => typeof field.value === \"string\" ? [field.label, field.value] : [field.label]);\n case \"code\": return block.language === undefined ? [block.text] : [block.text, block.language];\n case \"image\": return [block.alt];\n }\n}\n/** Display blocks are re-validated on read so a hostile or foreign writer cannot bypass acceptance rules. */\nfunction verifyDisplay(resolved: ResolvedInspectionAttempt, state: ScanState, display: ExecutionTraceEventRecord[\"display\"]): void {\n if (display === undefined)\n return;\n const limits = ExecutionTraceRecordLimits;\n if (display.length > limits.maximumDisplayBlocksPerEvent) {\n throw integrity(\"Execution display exceeds its fixed block limit.\");\n }\n if (utf8ByteLength(canonicalRecordJsonText(display as unknown as RecordJson)) > limits.maximumDisplayBytesPerEvent) {\n throw integrity(\"Execution display exceeds its fixed byte limit.\");\n }\n for (const block of display) {\n if (displayStrings(block).some(displayTextHasForbiddenCharacter)) {\n throw integrity(\"Execution display contains a control or bidirectional formatting character.\");\n }\n if (block.kind === \"fields\" && block.fields.length > limits.maximumDisplayFields) {\n throw integrity(\"Execution display fields exceed their fixed limit.\");\n }\n const singleLine = block.kind === \"fields\" ? block.fields.map((field) => field.label)\n : block.kind === \"message\" ? block.speaker === undefined ? [] : [block.speaker]\n : block.kind === \"code\" ? block.language === undefined ? [] : [block.language]\n : block.kind === \"image\" ? [block.alt] : [];\n const maximumBytes = block.kind === \"image\" ? limits.maximumDisplayAltBytes : limits.maximumDisplayLabelBytes;\n if (singleLine.some((text) => text.includes(\"\\n\") || utf8ByteLength(text) > maximumBytes)) {\n throw integrity(\"Execution display label exceeds its single-line or byte limit.\");\n }\n if (block.kind !== \"image\")\n continue;\n if (state.descriptors === undefined) {\n const read = readInspectionArtifactDescriptors(resolved);\n if (Result.isFailure(read))\n throw integrity(\"Execution display image artifacts are unreadable.\");\n state.descriptors = read.success;\n }\n const descriptor = state.descriptors.get(block.artifactId);\n if (descriptor === undefined || descriptor.sha256 !== block.sha256 ||\n descriptor.byteLength !== block.byteLength || descriptor.mediaType !== block.mediaType) {\n throw integrity(\"Execution display image artifact closure is invalid.\");\n }\n }\n}\nfunction observeRecord(resolved: ResolvedInspectionAttempt, state: ScanState, record: Schema.Schema.Type<typeof ExecutionTraceRecordSchema>): void {\n if (record.kind === \"trace-header\") {\n if (state.headers.has(record.traceId) || state.sourceTraceIds.has(record.sourceTraceId)) {\n throw integrity(\"Execution trace identities are duplicated.\");\n }\n state.headers.set(record.traceId, record);\n state.sourceTraceIds.add(record.sourceTraceId);\n state.eventCounts.set(record.traceId, 0);\n state.eventKeys.set(record.traceId, new Set());\n const scopeIds = new Set<string>();\n for (const scope of record.scopes) {\n if (scopeIds.has(scope.scopeId) || Result.isFailure(canonicalizeRecordJson(scope.boundary, SCOPE_BOUNDARY_LIMITS))) {\n throw integrity(\"Execution trace scope identity or boundary is invalid.\");\n }\n scopeIds.add(scope.scopeId);\n }\n state.scopeIds.set(record.traceId, scopeIds);\n state.clockUnits.set(record.traceId, new Map());\n state.causeEdges.set(record.traceId, new Map());\n if (state.traceIdsForIndex.length < IDENTITY_INDEX_LIMIT)\n state.traceIdsForIndex.push(record.traceId);\n return;\n }\n const header = state.headers.get(record.traceId);\n const keys = state.eventKeys.get(record.traceId);\n const expectedOrdinal = state.eventCounts.get(record.traceId);\n if (header === undefined || keys === undefined || expectedOrdinal === undefined || record.ordinal !== expectedOrdinal ||\n keys.has(record.key) || state.eventIds.has(record.eventId))\n throw integrity(\"Execution trace event sequence or identity is invalid.\");\n keys.add(record.key);\n state.eventIds.add(record.eventId);\n state.eventCounts.set(record.traceId, expectedOrdinal + 1);\n if (state.eventIdsForIndex.length < IDENTITY_INDEX_LIMIT)\n state.eventIdsForIndex.push(record.eventId);\n if (record.links.length > ExecutionTraceRecordLimits.maximumLinksPerEvent ||\n record.evidence.length > ExecutionTraceRecordLimits.maximumEvidencePerEvent ||\n record.scopeMemberships.length > ExecutionTraceRecordLimits.maximumScopesPerEvent ||\n record.payload !== undefined && Result.isFailure(canonicalizeRecordJson(record.payload, PAYLOAD_LIMITS))) {\n throw integrity(\"Execution trace event exceeds its fixed semantic limits.\");\n }\n const evidenceKeys = new Set<string>();\n for (const evidence of record.evidence) {\n if (evidenceKeys.has(evidence.key) || state.evidenceIds.has(evidence.evidenceId))\n throw integrity(\"Execution evidence identity is duplicated.\");\n evidenceKeys.add(evidence.key);\n state.evidenceIds.add(evidence.evidenceId);\n if (state.evidenceIdsForIndex.length < IDENTITY_INDEX_LIMIT)\n state.evidenceIdsForIndex.push(evidence.evidenceId);\n verifyEvidence(resolved, state, evidence);\n }\n verifyDisplay(resolved, state, record.display);\n const membershipScopes = new Set<string>();\n const declaredScopes = state.scopeIds.get(record.traceId)!;\n for (const membership of record.scopeMemberships) {\n if (!declaredScopes.has(membership.scopeId) || membershipScopes.has(membership.scopeId)) {\n throw integrity(\"Execution trace scope membership is invalid.\");\n }\n membershipScopes.add(membership.scopeId);\n }\n if (record.time !== undefined) {\n const units = state.clockUnits.get(record.traceId)!;\n const priorUnit = units.get(record.time.clockId);\n if (priorUnit !== undefined && priorUnit !== record.time.unit) {\n throw integrity(\"Execution trace clock unit changed within one trace.\");\n }\n units.set(record.time.clockId, record.time.unit);\n }\n for (const link of record.links) {\n if (!(\"targetKey\" in link))\n continue;\n state.resolvedLinks.push(Object.freeze({ traceId: record.traceId, targetKey: link.targetKey }));\n if (link.relation === \"causes\") {\n const edges = state.causeEdges.get(record.traceId)!;\n const targets = edges.get(record.key) ?? [];\n targets.push(link.targetKey);\n edges.set(record.key, targets);\n }\n }\n}\nfunction hasDirectedCycle(keys: ReadonlySet<string>, edges: ReadonlyMap<string, readonly string[]>): boolean {\n const states = new Map<string, \"visiting\" | \"visited\">();\n for (const root of keys) {\n if (states.get(root) === \"visited\")\n continue;\n const stack: Array<{\n readonly key: string;\n next: number;\n }> = [{ key: root, next: 0 }];\n states.set(root, \"visiting\");\n while (stack.length > 0) {\n const frame = stack[stack.length - 1]!;\n const target = (edges.get(frame.key) ?? [])[frame.next];\n if (target === undefined) {\n states.set(frame.key, \"visited\");\n stack.pop();\n continue;\n }\n frame.next += 1;\n const targetState = states.get(target);\n if (targetState === \"visiting\")\n return true;\n if (targetState === \"visited\")\n continue;\n states.set(target, \"visiting\");\n stack.push({ key: target, next: 0 });\n }\n }\n return false;\n}\nfunction validateScanSemantics(state: ScanState): void {\n if (state.headers.size > ExecutionTraceRecordLimits.maximumTraces ||\n state.eventIds.size > ExecutionTraceRecordLimits.maximumEvents) {\n throw integrity(\"Execution trace collection exceeds its fixed trace or event limit.\");\n }\n for (const link of state.resolvedLinks) {\n if (!state.eventKeys.get(link.traceId)?.has(link.targetKey)) {\n throw integrity(\"Resolved execution trace link leaves its trace snapshot.\");\n }\n }\n for (const [traceId, edges] of state.causeEdges) {\n const keys = state.eventKeys.get(traceId);\n if (keys === undefined || hasDirectedCycle(keys, edges)) {\n throw integrity(\"Execution trace causes links contain a cycle.\");\n }\n }\n}\nfunction scanCollection(resolved: ResolvedInspectionAttempt, visit: (record: Schema.Schema.Type<typeof ExecutionTraceRecordSchema>, collectionOrdinal: number, state: ScanState) => void): {\n readonly state: ScanState;\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly AttemptRecordCollectionLimitation[];\n };\n} | undefined {\n const attachment = collectionAttachment(resolved);\n if (attachment === undefined)\n return undefined;\n const validated = validateAttachment(resolved, attachment);\n const state = newScanState();\n const hash = new InspectionSha256();\n let after = -1;\n let ordinal = 0;\n let byteLength = 0;\n for (;;) {\n const page = resolved.origin.source.readCollectionPage(attachment.physical.attachmentId, after, PAGE_ROWS);\n if (page.attachmentId !== attachment.physical.attachmentId || page.afterOrdinal !== after || page.items.length > PAGE_ROWS ||\n page.items.length === 0 && page.nextOrdinal !== null)\n throw integrity(\"Execution trace collection page is invalid.\");\n for (const item of page.items) {\n const itemDigest = digest(item.canonicalBytes);\n if (item.ordinal !== ordinal || item.canonicalDigest !== itemDigest ||\n item.logicalIdentity !== executionCollectionItemLogicalIdentity(ordinal, itemDigest))\n throw integrity(\"Execution trace collection item closure is invalid.\");\n const decoded = Schema.decodeUnknownResult(ExecutionTraceRecordSchema, { onExcessProperty: \"error\" })(parseJson(item.canonicalBytes, \"Execution trace collection item\"));\n if (Result.isFailure(decoded))\n throw integrity(\"Execution trace collection item schema is invalid.\");\n hash.update(item.canonicalBytes).update(Uint8Array.of(0x0a));\n byteLength += item.canonicalBytes.byteLength;\n observeRecord(resolved, state, decoded.success);\n visit(decoded.success, ordinal, state);\n ordinal += 1;\n }\n if (page.nextOrdinal === null)\n break;\n if (page.items.length === 0 || page.nextOrdinal !== ordinal - 1)\n throw integrity(\"Execution trace collection continuation is invalid.\");\n after = page.nextOrdinal;\n }\n if (ordinal !== attachment.physical.collectionItemCount || byteLength !== attachment.physical.collectionItemByteLength ||\n hash.digestHex() !== validated.expectedDigest)\n throw integrity(\"Execution trace collection aggregate closure is invalid.\");\n validateScanSemantics(state);\n return Object.freeze({ state, collection: validated.collection });\n}\nfunction matches(event: ExecutionTraceEventRecord, filters: ExecutionTraceFilters): boolean {\n return (filters.traceId === undefined || event.traceId === filters.traceId) &&\n (filters.sourceId === undefined || event.source.id === filters.sourceId) &&\n (filters.actorId === undefined || event.actor?.id === filters.actorId) &&\n (filters.eventType === undefined || event.type === filters.eventType);\n}\nexport const EXECUTION_TRACE_CONTINUATION_FAMILIES = Object.freeze({\n executionTraces: executionTracesRecordCollection.family,\n agentTurns: \"niceeval.agent-turns\",\n});\ninterface ContinuationBinding {\n readonly operation: \"attempt.trace\";\n readonly sourceIdentity: InspectionFactSource[\"kind\"];\n readonly cutoff: string;\n readonly originAttempt: string;\n readonly sourceFamily: string;\n readonly familyRevision: number;\n readonly behaviorVersion: typeof INSPECTION_BEHAVIOR_VERSION;\n readonly filters: {\n readonly traceId: string | null;\n readonly sourceId: string | null;\n readonly actorId: string | null;\n readonly eventType: string | null;\n };\n readonly lastOrdinal: number;\n}\nexport interface ExecutionTraceContinuationContext {\n readonly source: InspectionFactSource;\n readonly originAttempt: string;\n readonly sourceFamily: string;\n readonly familyRevision: number;\n readonly filters: ExecutionTraceFilters;\n}\nfunction continuationBinding(context: ExecutionTraceContinuationContext, lastOrdinal: number): ContinuationBinding {\n return Object.freeze({\n operation: \"attempt.trace\",\n sourceIdentity: context.source.kind,\n cutoff: context.source.cutoff().identity,\n originAttempt: context.originAttempt,\n sourceFamily: context.sourceFamily,\n familyRevision: context.familyRevision,\n behaviorVersion: INSPECTION_BEHAVIOR_VERSION,\n filters: Object.freeze({\n traceId: context.filters.traceId ?? null,\n sourceId: context.filters.sourceId ?? null,\n actorId: context.filters.actorId ?? null,\n eventType: context.filters.eventType ?? null,\n }),\n lastOrdinal,\n });\n}\nfunction nativeContinuationContext(source: InspectionFactSource, resolved: ResolvedInspectionAttempt, filters: ExecutionTraceFilters): ExecutionTraceContinuationContext {\n return Object.freeze({\n source,\n originAttempt: `${resolved.attempt.originRunId}:${resolved.attempt.attemptId}`,\n sourceFamily: EXECUTION_TRACE_CONTINUATION_FAMILIES.executionTraces,\n familyRevision: EXECUTION_TRACE_FAMILY_REVISION,\n filters,\n });\n}\nexport function encodeExecutionTraceContinuation(context: ExecutionTraceContinuationContext, lastOrdinal: number): string {\n if (!Number.isSafeInteger(lastOrdinal) || lastOrdinal < 0) {\n throw new InspectionExecutionTraceError(\"restart-required\", \"Execution trace continuation binding changed; restart from the first page.\");\n }\n return encodeBase64UrlUtf8(JSON.stringify(continuationBinding(context, lastOrdinal)));\n}\nexport function decodeExecutionTraceContinuation(token: string, context: ExecutionTraceContinuationContext): number {\n try {\n const parsed = JSON.parse(decodeBase64UrlUtf8(token)) as ContinuationBinding;\n const expected = continuationBinding(context, parsed.lastOrdinal);\n if (!Number.isSafeInteger(parsed.lastOrdinal) || parsed.lastOrdinal < 0 || JSON.stringify(parsed) !== JSON.stringify(expected)) {\n throw new Error(\"binding changed\");\n }\n return parsed.lastOrdinal;\n }\n catch {\n throw new InspectionExecutionTraceError(\"restart-required\", \"Execution trace continuation binding changed; restart from the first page.\");\n }\n}\nfunction continuationSourceFamily(token: string): string | undefined {\n try {\n const parsed = JSON.parse(decodeBase64UrlUtf8(token)) as {\n readonly sourceFamily?: unknown;\n };\n return typeof parsed.sourceFamily === \"string\" ? parsed.sourceFamily : undefined;\n }\n catch {\n return undefined;\n }\n}\n/** UTF-8-safe prefix: never splits a code point; omitted bytes count the remainder. */\nfunction previewText(value: string, limit: number): ExecutionDisplayPreviewText {\n const total = utf8ByteLength(value);\n if (total <= limit)\n return Object.freeze({ preview: value, omittedBytes: 0 });\n let used = 0;\n let end = 0;\n for (const character of value) {\n const size = utf8ByteLength(character);\n if (used + size > limit)\n break;\n used += size;\n end += character.length;\n }\n return Object.freeze({ preview: value.slice(0, end), omittedBytes: total - used });\n}\nfunction previewBlock(block: ExecutionDisplayBlockRecord, limit: number): ExecutionDisplayBlockPreview {\n switch (block.kind) {\n case \"text\": return Object.freeze({ kind: \"text\", text: previewText(block.text, limit) });\n case \"message\": return Object.freeze({\n kind: \"message\", role: block.role,\n ...(block.speaker === undefined ? {} : { speaker: block.speaker }),\n text: previewText(block.text, limit),\n });\n case \"fields\": return Object.freeze({\n kind: \"fields\",\n fields: Object.freeze(block.fields.map((field) => Object.freeze({\n label: field.label,\n value: typeof field.value === \"string\" ? previewText(field.value, limit) : field.value,\n }))),\n });\n case \"code\": return Object.freeze({\n kind: \"code\",\n ...(block.language === undefined ? {} : { language: block.language }),\n text: previewText(block.text, limit),\n });\n case \"image\": return Object.freeze({ ...block });\n }\n}\nfunction previewDisplay(display: ExecutionTraceEventRecord[\"display\"], limit: number): ExecutionDisplayPreview {\n return display === undefined\n ? Object.freeze({ state: \"absent\" })\n : Object.freeze({ state: \"present\", blocks: Object.freeze(display.map((block) => previewBlock(block, limit))) });\n}\nfunction outlineEvent(event: ExecutionTraceEventRecord): ExecutionTraceEventOutline {\n const envelope = {\n traceId: event.traceId,\n eventId: event.eventId,\n origin: Object.freeze({ kind: \"execution-event\", eventId: event.eventId }),\n ordinal: event.ordinal,\n type: event.type,\n source: event.source,\n ...(event.actor === undefined ? {} : { actor: event.actor }),\n ...(event.time === undefined ? {} : { time: event.time }),\n summary: event.summary,\n links: event.links,\n evidence: Object.freeze(event.evidence.map(({ evidenceId, key, label }) => Object.freeze({ evidenceId, key, label }))),\n scopeMemberships: event.scopeMemberships,\n };\n let limit: number = ExecutionTraceRecordLimits.maximumDisplayPreviewBytes;\n while (true) {\n const projected = Object.freeze({ ...envelope, display: previewDisplay(event.display, limit) });\n if (event.display === undefined || utf8ByteLength(JSON.stringify(projected)) <= ExecutionTraceRecordLimits.maximumOutlineEventBytes)\n return projected;\n // Existing envelope fields have no preview shape; retain them under the page budget.\n if (limit === 0)\n return projected;\n limit = Math.floor(limit / 2);\n }\n}\nexport function projectExecutionTraceOutline(source: InspectionFactSource, resolved: ResolvedInspectionAttempt, request: ExecutionTraceOutlineRequest): ExecutionTraceOutlineResult {\n const filters: ExecutionTraceFilters = Object.freeze({\n ...(request.traceId === undefined ? {} : { traceId: request.traceId }),\n ...(request.sourceId === undefined ? {} : { sourceId: request.sourceId }),\n ...(request.actorId === undefined ? {} : { actorId: request.actorId }),\n ...(request.eventType === undefined ? {} : { eventType: request.eventType }),\n });\n const nativeAttachment = collectionAttachment(resolved);\n if (request.continuation !== undefined && nativeAttachment === undefined &&\n continuationSourceFamily(request.continuation) === EXECUTION_TRACE_CONTINUATION_FAMILIES.agentTurns) {\n return Object.freeze({\n state: \"not-recorded\", limitations: Object.freeze([]), traces: Object.freeze([]), events: Object.freeze([]),\n identityIndex: Object.freeze({ traceIds: Object.freeze([]), omittedTraceIdCount: 0, eventIds: Object.freeze([]), omittedEventIdCount: 0, evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0 }),\n hasMore: false, omittedEventCount: 0,\n });\n }\n const continuationContext = nativeContinuationContext(source, resolved, filters);\n const resumeAfter = request.continuation === undefined\n ? -1\n : decodeExecutionTraceContinuation(request.continuation, continuationContext);\n const retained: Array<{\n readonly event: ExecutionTraceEventOutline;\n readonly collectionOrdinal: number;\n }> = [];\n let matched = 0;\n let priorMatches = 0;\n let pageFull = false;\n const scanned = scanCollection(resolved, (record, collectionOrdinal) => {\n if (record.kind !== \"event\" || !matches(record, filters))\n return;\n matched += 1;\n if (collectionOrdinal <= resumeAfter) {\n priorMatches += 1;\n return;\n }\n if (pageFull || retained.length >= ExecutionTraceRecordLimits.maximumOutlineEvents) {\n pageFull = true;\n return;\n }\n const candidate = Object.freeze({ event: outlineEvent(record), collectionOrdinal });\n const nextEvents = [...retained.map(({ event }) => event), candidate.event];\n if (utf8ByteLength(JSON.stringify(nextEvents)) > ExecutionTraceRecordLimits.maximumOutlineBytes) {\n if (retained.length === 0)\n throw integrity(\"One execution trace outline event exceeds the fixed page budget.\");\n pageFull = true;\n return;\n }\n retained.push(candidate);\n });\n if (scanned === undefined)\n return Object.freeze({\n state: \"not-recorded\", limitations: Object.freeze([]), traces: Object.freeze([]), events: Object.freeze([]),\n identityIndex: Object.freeze({ traceIds: Object.freeze([]), omittedTraceIdCount: 0, eventIds: Object.freeze([]), omittedEventIdCount: 0, evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0 }),\n hasMore: false, omittedEventCount: 0,\n });\n const remaining = Math.max(0, matched - priorMatches - retained.length);\n const lastOrdinal = retained.at(-1)?.collectionOrdinal;\n const traceHeaders = [...scanned.state.headers.values()]\n // An empty filtered page does not prove the producer captured all events.\n .filter((header) => filters.traceId === undefined || header.traceId === filters.traceId)\n .map((header) => Object.freeze({\n ...header,\n eventCount: scanned.state.eventCounts.get(header.traceId) ?? 0,\n }));\n return Object.freeze({\n state: scanned.collection.state,\n limitations: scanned.collection.limitations,\n traces: Object.freeze(traceHeaders),\n events: Object.freeze(retained.map(({ event }) => event)),\n identityIndex: Object.freeze({\n traceIds: Object.freeze(scanned.state.traceIdsForIndex),\n omittedTraceIdCount: scanned.state.headers.size - scanned.state.traceIdsForIndex.length,\n eventIds: Object.freeze(scanned.state.eventIdsForIndex),\n omittedEventIdCount: scanned.state.eventIds.size - scanned.state.eventIdsForIndex.length,\n evidenceIds: Object.freeze(scanned.state.evidenceIdsForIndex),\n omittedEvidenceIdCount: scanned.state.evidenceIds.size - scanned.state.evidenceIdsForIndex.length,\n }),\n hasMore: remaining > 0,\n omittedEventCount: remaining,\n ...(remaining > 0 && lastOrdinal !== undefined\n ? { continuation: encodeExecutionTraceContinuation(continuationContext, lastOrdinal) }\n : {}),\n });\n}\nfunction range(event: ExecutionTraceEventRecord, evidence: ExecutionTraceEventRecord[\"evidence\"][number], target: EvidenceTarget, offset: number, limit: number): ExecutionEvidenceRange {\n if (!Number.isSafeInteger(offset) || offset < 0 || offset > target.bytes.byteLength ||\n !Number.isSafeInteger(limit) || limit < 1 || limit > 256 * 1024) {\n throw new InspectionExecutionTraceError(\"inspection-request-invalid\", \"Execution evidence offset or limit is invalid.\");\n }\n const bytes = target.bytes.subarray(offset, Math.min(target.bytes.byteLength, offset + limit));\n return Object.freeze({\n evidenceId: evidence.evidenceId,\n eventId: event.eventId,\n traceId: event.traceId,\n key: evidence.key,\n label: evidence.label,\n artifactId: evidence.artifactId,\n pointer: evidence.pointer,\n artifactSha256: evidence.artifactSha256,\n targetSha256: evidence.targetSha256,\n targetByteLength: evidence.targetByteLength,\n offset,\n base64: encodeBase64Bytes(bytes),\n nextOffset: offset + bytes.byteLength < target.bytes.byteLength ? offset + bytes.byteLength : null,\n });\n}\nexport function projectExecutionTraceDetail(resolved: ResolvedInspectionAttempt, selector: ExecutionTraceDetailSelector): ExecutionTraceDetailResult | undefined {\n let selectedEvent: ExecutionTraceEventRecord | undefined;\n let selectedEvidence: ExecutionTraceEventRecord[\"evidence\"][number] | undefined;\n let selectedTarget: EvidenceTarget | undefined;\n const scanned = scanCollection(resolved, (record, _ordinal, state) => {\n if (record.kind !== \"event\")\n return;\n if (selector.kind === \"execution-event\" && record.eventId === selector.eventId)\n selectedEvent = record;\n if (selector.kind === \"execution-evidence\") {\n const evidence = record.evidence.find(({ evidenceId }) => evidenceId === selector.evidenceId);\n if (evidence !== undefined) {\n selectedEvent = record;\n selectedEvidence = evidence;\n selectedTarget = verifyEvidence(resolved, state, evidence);\n }\n }\n });\n if (scanned === undefined || selectedEvent === undefined)\n return undefined;\n if (selector.kind === \"execution-evidence\") {\n if (selectedEvidence === undefined || selectedTarget === undefined)\n return undefined;\n return Object.freeze({\n kind: \"execution-evidence\",\n ...range(selectedEvent, selectedEvidence, selectedTarget, selector.offset ?? 0, selector.limit ?? 64 * 1024),\n });\n }\n const previews = selectedEvent.evidence.map((evidence) => {\n const target = scanned.state.targets.get(`${evidence.artifactId}\\u0000${evidence.artifactSha256}\\u0000${evidence.pointer}`);\n if (target === undefined)\n throw integrity(\"Execution evidence cache is unavailable.\");\n const value = range(selectedEvent!, evidence, target, 0, ExecutionTraceRecordLimits.maximumDetailPreviewBytes);\n return Object.freeze({\n evidenceId: value.evidenceId,\n key: value.key,\n label: value.label,\n artifactId: value.artifactId,\n pointer: value.pointer,\n targetSha256: value.targetSha256,\n targetByteLength: value.targetByteLength,\n offset: 0 as const,\n base64: value.base64,\n nextOffset: value.nextOffset,\n truncated: value.nextOffset !== null,\n });\n });\n const result: ExecutionTraceDetailResult = Object.freeze({ kind: \"execution-event\", event: selectedEvent, evidence: Object.freeze(previews) });\n if (utf8ByteLength(JSON.stringify(result)) > ExecutionTraceRecordLimits.maximumDetailBytes) {\n throw integrity(\"Execution event detail exceeds its fixed response budget.\");\n }\n return result;\n}\n"]}
@@ -6,6 +6,7 @@ export interface ExecutionTraceFilters {
6
6
  readonly traceId?: string;
7
7
  readonly sourceId?: string;
8
8
  readonly actorId?: string;
9
+ readonly eventType?: string;
9
10
  }
10
11
  export interface ExecutionTraceOutlineRequest extends ExecutionTraceFilters {
11
12
  readonly continuation?: string;
@@ -51,6 +52,42 @@ export interface ExecutionTraceOutlineResult {
51
52
  readonly omittedEventCount: number;
52
53
  readonly continuation?: string;
53
54
  }
55
+ export interface ExecutionDisplayPreviewText {
56
+ readonly preview: string;
57
+ readonly omittedBytes: number;
58
+ }
59
+ export type ExecutionDisplayBlockPreview = {
60
+ readonly kind: "text";
61
+ readonly text: ExecutionDisplayPreviewText;
62
+ } | {
63
+ readonly kind: "message";
64
+ readonly role: "user" | "assistant" | "system" | "other";
65
+ readonly speaker?: string;
66
+ readonly text: ExecutionDisplayPreviewText;
67
+ } | {
68
+ readonly kind: "fields";
69
+ readonly fields: readonly {
70
+ readonly label: string;
71
+ readonly value: ExecutionDisplayPreviewText | number | boolean | null;
72
+ }[];
73
+ } | {
74
+ readonly kind: "code";
75
+ readonly language?: string;
76
+ readonly text: ExecutionDisplayPreviewText;
77
+ } | {
78
+ readonly kind: "image";
79
+ readonly artifactId: string;
80
+ readonly alt: string;
81
+ readonly mediaType: string;
82
+ readonly byteLength: number;
83
+ readonly sha256: string;
84
+ };
85
+ export type ExecutionDisplayPreview = {
86
+ readonly state: "absent";
87
+ } | {
88
+ readonly state: "present";
89
+ readonly blocks: readonly ExecutionDisplayBlockPreview[];
90
+ };
54
91
  export interface ExecutionTraceEventOutline {
55
92
  readonly traceId: string;
56
93
  readonly eventId: string;
@@ -74,6 +111,7 @@ export interface ExecutionTraceEventOutline {
74
111
  readonly label: string;
75
112
  }[];
76
113
  readonly scopeMemberships: ExecutionTraceEventRecord["scopeMemberships"];
114
+ readonly display: ExecutionDisplayPreview;
77
115
  }
78
116
  export type ExecutionTraceDetailResult = {
79
117
  readonly kind: "execution-event";
@@ -6,6 +6,7 @@ export interface ExecutionTraceFilters {
6
6
  readonly traceId?: string;
7
7
  readonly sourceId?: string;
8
8
  readonly actorId?: string;
9
+ readonly eventType?: string;
9
10
  }
10
11
  export interface ExecutionTraceOutlineRequest extends ExecutionTraceFilters {
11
12
  readonly continuation?: string;
@@ -51,6 +52,42 @@ export interface ExecutionTraceOutlineResult {
51
52
  readonly omittedEventCount: number;
52
53
  readonly continuation?: string;
53
54
  }
55
+ export interface ExecutionDisplayPreviewText {
56
+ readonly preview: string;
57
+ readonly omittedBytes: number;
58
+ }
59
+ export type ExecutionDisplayBlockPreview = {
60
+ readonly kind: "text";
61
+ readonly text: ExecutionDisplayPreviewText;
62
+ } | {
63
+ readonly kind: "message";
64
+ readonly role: "user" | "assistant" | "system" | "other";
65
+ readonly speaker?: string;
66
+ readonly text: ExecutionDisplayPreviewText;
67
+ } | {
68
+ readonly kind: "fields";
69
+ readonly fields: readonly {
70
+ readonly label: string;
71
+ readonly value: ExecutionDisplayPreviewText | number | boolean | null;
72
+ }[];
73
+ } | {
74
+ readonly kind: "code";
75
+ readonly language?: string;
76
+ readonly text: ExecutionDisplayPreviewText;
77
+ } | {
78
+ readonly kind: "image";
79
+ readonly artifactId: string;
80
+ readonly alt: string;
81
+ readonly mediaType: string;
82
+ readonly byteLength: number;
83
+ readonly sha256: string;
84
+ };
85
+ export type ExecutionDisplayPreview = {
86
+ readonly state: "absent";
87
+ } | {
88
+ readonly state: "present";
89
+ readonly blocks: readonly ExecutionDisplayBlockPreview[];
90
+ };
54
91
  export interface ExecutionTraceEventOutline {
55
92
  readonly traceId: string;
56
93
  readonly eventId: string;
@@ -74,6 +111,7 @@ export interface ExecutionTraceEventOutline {
74
111
  readonly label: string;
75
112
  }[];
76
113
  readonly scopeMemberships: ExecutionTraceEventRecord["scopeMemberships"];
114
+ readonly display: ExecutionDisplayPreview;
77
115
  }
78
116
  export type ExecutionTraceDetailResult = {
79
117
  readonly kind: "execution-event";
@@ -6,6 +6,7 @@ export interface ExecutionTraceFilters {
6
6
  readonly traceId?: string;
7
7
  readonly sourceId?: string;
8
8
  readonly actorId?: string;
9
+ readonly eventType?: string;
9
10
  }
10
11
  export interface ExecutionTraceOutlineRequest extends ExecutionTraceFilters {
11
12
  readonly continuation?: string;
@@ -51,6 +52,42 @@ export interface ExecutionTraceOutlineResult {
51
52
  readonly omittedEventCount: number;
52
53
  readonly continuation?: string;
53
54
  }
55
+ export interface ExecutionDisplayPreviewText {
56
+ readonly preview: string;
57
+ readonly omittedBytes: number;
58
+ }
59
+ export type ExecutionDisplayBlockPreview = {
60
+ readonly kind: "text";
61
+ readonly text: ExecutionDisplayPreviewText;
62
+ } | {
63
+ readonly kind: "message";
64
+ readonly role: "user" | "assistant" | "system" | "other";
65
+ readonly speaker?: string;
66
+ readonly text: ExecutionDisplayPreviewText;
67
+ } | {
68
+ readonly kind: "fields";
69
+ readonly fields: readonly {
70
+ readonly label: string;
71
+ readonly value: ExecutionDisplayPreviewText | number | boolean | null;
72
+ }[];
73
+ } | {
74
+ readonly kind: "code";
75
+ readonly language?: string;
76
+ readonly text: ExecutionDisplayPreviewText;
77
+ } | {
78
+ readonly kind: "image";
79
+ readonly artifactId: string;
80
+ readonly alt: string;
81
+ readonly mediaType: string;
82
+ readonly byteLength: number;
83
+ readonly sha256: string;
84
+ };
85
+ export type ExecutionDisplayPreview = {
86
+ readonly state: "absent";
87
+ } | {
88
+ readonly state: "present";
89
+ readonly blocks: readonly ExecutionDisplayBlockPreview[];
90
+ };
54
91
  export interface ExecutionTraceEventOutline {
55
92
  readonly traceId: string;
56
93
  readonly eventId: string;
@@ -74,6 +111,7 @@ export interface ExecutionTraceEventOutline {
74
111
  readonly label: string;
75
112
  }[];
76
113
  readonly scopeMemberships: ExecutionTraceEventRecord["scopeMemberships"];
114
+ readonly display: ExecutionDisplayPreview;
77
115
  }
78
116
  export type ExecutionTraceDetailResult = {
79
117
  readonly kind: "execution-event";
@@ -9,6 +9,10 @@ exports.resolveInspectionMemberAttempt = resolveInspectionMemberAttempt;
9
9
  exports.attemptAttachment = attemptAttachment;
10
10
  exports.runAttachment = runAttachment;
11
11
  exports.readInspectionAssertions = readInspectionAssertions;
12
+ // @concord-file ne-eval-inspection-facts-reader
13
+ // @concord-implements docs/feature/inspection/README.md
14
+ // @concord-implements docs/feature/inspection/architecture.md
15
+ // @concord-implements docs/feature/inspection/use-case/inspection-check-completeness.md
12
16
  const effect_1 = require("effect");
13
17
  const attempt_locator_ts_1 = require("../attempt-locator.cjs");
14
18
  const content_ts_1 = require("../record/attachment/content.cjs");
@@ -23,6 +27,9 @@ const ATTEMPT_TARGET_MEMBER_LIMIT = 256;
23
27
  * Pins the source cutoff, exhausts the fixed Run-summary pagination, then
24
28
  * reads and strictly decodes every Run Core in that exact sealed generation.
25
29
  */
30
+ // @concord-code ne-eval-inspection-load-runs
31
+ // @concord-implements docs/feature/inspection/architecture.md
32
+ // @concord-implements docs/feature/inspection/use-case/inspection-check-completeness.md
26
33
  function loadInspectionRuns(source) {
27
34
  const cutoff = source.cutoff();
28
35
  const summaries = [];
@@ -179,6 +186,8 @@ function decodeInspectionRun(source, physical) {
179
186
  });
180
187
  }
181
188
  /** Resolves a public locator through the source's bounded exact index. */
189
+ // @concord-code ne-eval-inspection-resolve-attempt
190
+ // @concord-implements docs/feature/inspection/architecture.md
182
191
  function resolveInspectionAttempt(source, locator) {
183
192
  const projection = source.findAttemptLocatorCandidates(locator, ATTEMPT_CANDIDATE_RUN_LIMIT);
184
193
  if (projection.candidates.length === 0)
@@ -259,6 +268,9 @@ function runAttachment(run, family) {
259
268
  return run.attachments.find(({ physical }) => physical.ownerKind === "run" && physical.family === family);
260
269
  }
261
270
  /** Reads only the current logical Assertions family, preserving failure state. */
271
+ // @concord-code ne-eval-inspection-read-assertions
272
+ // @concord-implements docs/feature/assertions/README.md
273
+ // @concord-implements docs/feature/inspection/README.md
262
274
  function readInspectionAssertions(resolved) {
263
275
  const attachment = attemptAttachment(resolved, current_ts_1.NiceEvalRecordAttachments.assertions.family);
264
276
  if (attachment === undefined) {