niceeval 0.13.2 → 0.13.3

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 (494) hide show
  1. package/dist/agents/bub.cjs +4 -4
  2. package/dist/agents/bub.cjs.map +1 -1
  3. package/dist/agents/bub.d.cts +2 -2
  4. package/dist/agents/bub.d.mts +2 -2
  5. package/dist/agents/bub.d.ts +2 -2
  6. package/dist/agents/claude-code-native.cjs +213 -0
  7. package/dist/agents/claude-code-native.cjs.map +1 -0
  8. package/dist/agents/claude-code-native.d.cts +5 -0
  9. package/dist/agents/claude-code-native.d.mts +5 -0
  10. package/dist/agents/claude-code-native.d.ts +5 -0
  11. package/dist/agents/claude-code-native.js +6 -0
  12. package/dist/agents/claude-code-native.js.map +1 -0
  13. package/dist/agents/claude-code.cjs +26 -80
  14. package/dist/agents/claude-code.cjs.map +1 -1
  15. package/dist/agents/codex-app-server.cjs +314 -0
  16. package/dist/agents/codex-app-server.cjs.map +1 -0
  17. package/dist/agents/codex-app-server.d.cts +9 -0
  18. package/dist/agents/codex-app-server.d.mts +9 -0
  19. package/dist/agents/codex-app-server.d.ts +9 -0
  20. package/dist/agents/codex-app-server.js +6 -0
  21. package/dist/agents/codex-app-server.js.map +1 -0
  22. package/dist/agents/codex.cjs +19 -68
  23. package/dist/agents/codex.cjs.map +1 -1
  24. package/dist/agents/codex.d.cts +3 -3
  25. package/dist/agents/codex.d.mts +3 -3
  26. package/dist/agents/codex.d.ts +3 -3
  27. package/dist/agents/index.cjs +3 -1
  28. package/dist/agents/index.cjs.map +1 -1
  29. package/dist/agents/index.d.cts +1 -0
  30. package/dist/agents/index.d.mts +1 -0
  31. package/dist/agents/index.d.ts +1 -0
  32. package/dist/agents/index.js +84 -82
  33. package/dist/agents/index.mjs +84 -82
  34. package/dist/agents/managed-jsonl.cjs +207 -0
  35. package/dist/agents/managed-jsonl.cjs.map +1 -0
  36. package/dist/agents/managed-jsonl.d.cts +39 -0
  37. package/dist/agents/managed-jsonl.d.mts +39 -0
  38. package/dist/agents/managed-jsonl.d.ts +39 -0
  39. package/dist/agents/managed-jsonl.js +6 -0
  40. package/dist/agents/managed-jsonl.js.map +1 -0
  41. package/dist/agents/managed-process.cjs +31 -0
  42. package/dist/agents/managed-process.cjs.map +1 -0
  43. package/dist/agents/managed-process.d.cts +3 -0
  44. package/dist/agents/managed-process.d.mts +3 -0
  45. package/dist/agents/managed-process.d.ts +3 -0
  46. package/dist/agents/managed-process.js +6 -0
  47. package/dist/agents/managed-process.js.map +1 -0
  48. package/dist/agents/omp.cjs +18 -1
  49. package/dist/agents/omp.cjs.map +1 -1
  50. package/dist/agents/sdk-streams.cjs +11 -4
  51. package/dist/agents/sdk-streams.cjs.map +1 -1
  52. package/dist/agents/types.cjs.map +1 -1
  53. package/dist/agents/types.d.cts +8 -0
  54. package/dist/agents/types.d.mts +8 -0
  55. package/dist/agents/types.d.ts +8 -0
  56. package/dist/analysis/bindings.cjs +74 -19
  57. package/dist/analysis/bindings.cjs.map +1 -1
  58. package/dist/analysis/bindings.d.cts +534 -156
  59. package/dist/analysis/bindings.d.mts +534 -156
  60. package/dist/analysis/bindings.d.ts +534 -156
  61. package/dist/analysis/domain-view.cjs.map +1 -1
  62. package/dist/analysis/domain-view.d.cts +137 -8
  63. package/dist/analysis/domain-view.d.mts +137 -8
  64. package/dist/analysis/domain-view.d.ts +137 -8
  65. package/dist/analysis/index.cjs.map +1 -1
  66. package/dist/analysis/index.d.cts +1 -1
  67. package/dist/analysis/index.d.mts +1 -1
  68. package/dist/analysis/index.d.ts +1 -1
  69. package/dist/assertions/api.cjs.map +1 -1
  70. package/dist/assertions/api.d.cts +62 -0
  71. package/dist/assertions/api.d.mts +62 -0
  72. package/dist/assertions/api.d.ts +62 -0
  73. package/dist/assertions/judge.cjs +56 -5
  74. package/dist/assertions/judge.cjs.map +1 -1
  75. package/dist/assertions/match.cjs +66 -42
  76. package/dist/assertions/match.cjs.map +1 -1
  77. package/dist/assertions/match.d.cts +13 -0
  78. package/dist/assertions/match.d.mts +13 -0
  79. package/dist/assertions/match.d.ts +13 -0
  80. package/dist/assertions/record/attachment.cjs +104 -33
  81. package/dist/assertions/record/attachment.cjs.map +1 -1
  82. package/dist/assertions/record/attachment.d.cts +294 -57
  83. package/dist/assertions/record/attachment.d.mts +294 -57
  84. package/dist/assertions/record/attachment.d.ts +294 -57
  85. package/dist/assertions/record/codec.cjs +91 -17
  86. package/dist/assertions/record/codec.cjs.map +1 -1
  87. package/dist/assertions/record/codec.d.cts +280 -52
  88. package/dist/assertions/record/codec.d.mts +280 -52
  89. package/dist/assertions/record/codec.d.ts +280 -52
  90. package/dist/assertions/record/index.js +2 -0
  91. package/dist/assertions/record/model.cjs +16 -0
  92. package/dist/assertions/record/model.cjs.map +1 -1
  93. package/dist/assertions/record/model.d.cts +120 -13
  94. package/dist/assertions/record/model.d.mts +120 -13
  95. package/dist/assertions/record/model.d.ts +120 -13
  96. package/dist/assertions/record/model.js +2 -0
  97. package/dist/assertions/record/producer.cjs +70 -50
  98. package/dist/assertions/record/producer.cjs.map +1 -1
  99. package/dist/assertions/record/producer.d.cts +8 -7
  100. package/dist/assertions/record/producer.d.mts +8 -7
  101. package/dist/assertions/record/producer.d.ts +8 -7
  102. package/dist/assertions/runtime.cjs +49 -7
  103. package/dist/assertions/runtime.cjs.map +1 -1
  104. package/dist/cli/application.cjs +40 -0
  105. package/dist/cli/application.cjs.map +1 -0
  106. package/dist/cli/application.d.cts +129 -0
  107. package/dist/cli/application.d.mts +129 -0
  108. package/dist/cli/application.d.ts +129 -0
  109. package/dist/cli/application.js +24 -0
  110. package/dist/cli/application.js.map +1 -0
  111. package/dist/cli/bootstrap.cjs +10 -4
  112. package/dist/cli/bootstrap.cjs.map +1 -1
  113. package/dist/cli/node-application.cjs +123 -0
  114. package/dist/cli/node-application.cjs.map +1 -0
  115. package/dist/cli/node-application.d.cts +14 -0
  116. package/dist/cli/node-application.d.mts +14 -0
  117. package/dist/cli/node-application.d.ts +14 -0
  118. package/dist/cli/node-application.js +26 -0
  119. package/dist/cli/node-application.js.map +1 -0
  120. package/dist/cli/program.cjs +2807 -0
  121. package/dist/cli/program.cjs.map +1 -0
  122. package/dist/cli/program.d.cts +352 -0
  123. package/dist/cli/program.d.mts +352 -0
  124. package/dist/cli/program.d.ts +352 -0
  125. package/dist/cli/program.js +36 -0
  126. package/dist/cli/program.js.map +1 -0
  127. package/dist/cli/project-configuration.cjs +134 -0
  128. package/dist/cli/project-configuration.cjs.map +1 -0
  129. package/dist/cli/project-configuration.d.cts +64 -0
  130. package/dist/cli/project-configuration.d.mts +64 -0
  131. package/dist/cli/project-configuration.d.ts +64 -0
  132. package/dist/cli/project-configuration.js +22 -0
  133. package/dist/cli/project-configuration.js.map +1 -0
  134. package/dist/cli/record.cjs +20 -4
  135. package/dist/cli/record.cjs.map +1 -1
  136. package/dist/cli/record.d.cts +3 -3
  137. package/dist/cli/record.d.mts +3 -3
  138. package/dist/cli/record.d.ts +3 -3
  139. package/dist/cli.cjs +19 -3130
  140. package/dist/cli.cjs.map +1 -1
  141. package/dist/cli.d.cts +2 -148
  142. package/dist/cli.d.mts +2 -148
  143. package/dist/cli.d.ts +2 -148
  144. package/dist/cli.js +22 -30
  145. package/dist/context/assert-first.cjs +21 -15
  146. package/dist/context/assert-first.cjs.map +1 -1
  147. package/dist/context/assert-first.d.cts +1 -0
  148. package/dist/context/assert-first.d.mts +1 -0
  149. package/dist/context/assert-first.d.ts +1 -0
  150. package/dist/context/attempt-resources.cjs +13 -0
  151. package/dist/context/attempt-resources.cjs.map +1 -0
  152. package/dist/context/attempt-resources.d.cts +3 -0
  153. package/dist/context/attempt-resources.d.mts +3 -0
  154. package/dist/context/attempt-resources.d.ts +3 -0
  155. package/dist/context/attempt-resources.js +8 -0
  156. package/dist/context/attempt-resources.js.map +1 -0
  157. package/dist/context/session.cjs +4 -3
  158. package/dist/context/session.cjs.map +1 -1
  159. package/dist/context/session.d.cts +1 -0
  160. package/dist/context/session.d.mts +1 -0
  161. package/dist/context/session.d.ts +1 -0
  162. package/dist/eval/record/verdict.cjs +3 -2
  163. package/dist/eval/record/verdict.cjs.map +1 -1
  164. package/dist/experiment/host/index.cjs +1 -6
  165. package/dist/experiment/host/index.cjs.map +1 -1
  166. package/dist/experiment/host/index.d.cts +1 -0
  167. package/dist/experiment/host/index.d.mts +1 -0
  168. package/dist/experiment/host/index.d.ts +1 -0
  169. package/dist/load-config.cjs +13 -4
  170. package/dist/load-config.cjs.map +1 -1
  171. package/dist/load-config.d.cts +4 -3
  172. package/dist/load-config.d.mts +4 -3
  173. package/dist/load-config.d.ts +4 -3
  174. package/dist/load-config.js +4 -2
  175. package/dist/o11y/parsers/codex.cjs +29 -7
  176. package/dist/o11y/parsers/codex.cjs.map +1 -1
  177. package/dist/record/codec/core.d.cts +0 -2
  178. package/dist/record/codec/core.d.mts +0 -2
  179. package/dist/record/codec/core.d.ts +0 -2
  180. package/dist/record/codec/identifiers.cjs +2 -3
  181. package/dist/record/codec/identifiers.cjs.map +1 -1
  182. package/dist/record/codec/identifiers.d.cts +1 -2
  183. package/dist/record/codec/identifiers.d.mts +1 -2
  184. package/dist/record/codec/identifiers.d.ts +1 -2
  185. package/dist/record/codec/identifiers.js +10 -12
  186. package/dist/record/codec/index.js +42 -44
  187. package/dist/record/definition/attachment.cjs +1 -0
  188. package/dist/record/definition/attachment.cjs.map +1 -1
  189. package/dist/record/definition/attachment.d.cts +14 -0
  190. package/dist/record/definition/attachment.d.mts +14 -0
  191. package/dist/record/definition/attachment.d.ts +14 -0
  192. package/dist/record/family/assertions-v1.cjs +104 -0
  193. package/dist/record/family/assertions-v1.cjs.map +1 -0
  194. package/dist/record/family/assertions-v1.d.cts +2 -0
  195. package/dist/record/family/assertions-v1.d.mts +2 -0
  196. package/dist/record/family/assertions-v1.d.ts +2 -0
  197. package/dist/record/family/assertions-v1.js +6 -0
  198. package/dist/record/family/assertions-v1.js.map +1 -0
  199. package/dist/record/family/assertions.cjs +16 -5
  200. package/dist/record/family/assertions.cjs.map +1 -1
  201. package/dist/record/family/assertions.d.cts +510 -56
  202. package/dist/record/family/assertions.d.mts +510 -56
  203. package/dist/record/family/assertions.d.ts +510 -56
  204. package/dist/record/family/assertions.js +14 -10
  205. package/dist/record/family/catalog.cjs +17 -1
  206. package/dist/record/family/catalog.cjs.map +1 -1
  207. package/dist/record/family/catalog.d.cts +1292 -104
  208. package/dist/record/family/catalog.d.mts +1292 -104
  209. package/dist/record/family/catalog.d.ts +1292 -104
  210. package/dist/record/family/catalog.js +22 -20
  211. package/dist/record/family/index.js +144 -138
  212. package/dist/record/family/observability-v1.cjs +5 -0
  213. package/dist/record/family/observability-v1.cjs.map +1 -1
  214. package/dist/record/family/observability.cjs +1 -1
  215. package/dist/record/family/observability.cjs.map +1 -1
  216. package/dist/record/host/runtime.cjs +323 -173
  217. package/dist/record/host/runtime.cjs.map +1 -1
  218. package/dist/record/host/types.cjs.map +1 -1
  219. package/dist/record/host/types.d.cts +9 -7
  220. package/dist/record/host/types.d.mts +9 -7
  221. package/dist/record/host/types.d.ts +9 -7
  222. package/dist/record/model/core.cjs.map +1 -1
  223. package/dist/record/model/core.d.cts +1 -2
  224. package/dist/record/model/core.d.mts +1 -2
  225. package/dist/record/model/core.d.ts +1 -2
  226. package/dist/record/model/definition.cjs +1 -2
  227. package/dist/record/model/definition.cjs.map +1 -1
  228. package/dist/record/model/definition.d.cts +1 -7
  229. package/dist/record/model/definition.d.mts +1 -7
  230. package/dist/record/model/definition.d.ts +1 -7
  231. package/dist/record/model/identifiers.cjs +2 -3
  232. package/dist/record/model/identifiers.cjs.map +1 -1
  233. package/dist/record/model/identifiers.d.cts +1 -3
  234. package/dist/record/model/identifiers.d.mts +1 -3
  235. package/dist/record/model/identifiers.d.ts +1 -3
  236. package/dist/record/model/identifiers.js +36 -38
  237. package/dist/record/model/index.js +60 -62
  238. package/dist/record/platform/node.cjs +17 -7
  239. package/dist/record/platform/node.cjs.map +1 -1
  240. package/dist/record/platform/services.cjs.map +1 -1
  241. package/dist/record/platform/services.d.cts +8 -3
  242. package/dist/record/platform/services.d.mts +8 -3
  243. package/dist/record/platform/services.d.ts +8 -3
  244. package/dist/record/reader/format.cjs +16 -65
  245. package/dist/record/reader/format.cjs.map +1 -1
  246. package/dist/record/reader/format.d.cts +5 -9
  247. package/dist/record/reader/format.d.mts +5 -9
  248. package/dist/record/reader/format.d.ts +5 -9
  249. package/dist/record/reader/index.js +10 -8
  250. package/dist/record/reader/runtime.cjs +63 -32
  251. package/dist/record/reader/runtime.cjs.map +1 -1
  252. package/dist/record/reader/runtime.d.cts +40 -4
  253. package/dist/record/reader/runtime.d.mts +40 -4
  254. package/dist/record/reader/runtime.d.ts +40 -4
  255. package/dist/record/reader/runtime.js +6 -4
  256. package/dist/report/assets/enhance.js +5 -5
  257. package/dist/report/assets/styles.css +190 -24
  258. package/dist/report/built-in/result-components.cjs +8 -5
  259. package/dist/report/built-in/result-components.cjs.map +1 -1
  260. package/dist/report/built-in/standard.cjs +3 -0
  261. package/dist/report/built-in/standard.cjs.map +1 -1
  262. package/dist/report/built-in/standard.d.cts +2 -0
  263. package/dist/report/built-in/standard.d.mts +2 -0
  264. package/dist/report/built-in/standard.d.ts +2 -0
  265. package/dist/report/client-dist/app.js +53 -0
  266. package/dist/report/components/attempt-detail/compute.cjs +108 -231
  267. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  268. package/dist/report/components/attempt-detail/compute.d.cts +11 -45
  269. package/dist/report/components/attempt-detail/compute.d.mts +11 -45
  270. package/dist/report/components/attempt-detail/compute.d.ts +11 -45
  271. package/dist/report/components/attempt-detail/compute.js +2 -4
  272. package/dist/report/components/attempt-detail/content.cjs +4 -4
  273. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  274. package/dist/report/components/attempt-detail/validate.cjs +47 -4
  275. package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
  276. package/dist/report/components/entity-lists/compute.cjs +9 -15
  277. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  278. package/dist/report/components/entity-lists/content.cjs +53 -40
  279. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  280. package/dist/report/components/entity-lists/index.cjs +1 -3
  281. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  282. package/dist/report/components/experiment-detail/compute.cjs +4 -6
  283. package/dist/report/components/experiment-detail/compute.cjs.map +1 -1
  284. package/dist/report/components/summaries/index.cjs +5 -1
  285. package/dist/report/components/summaries/index.cjs.map +1 -1
  286. package/dist/report/definition/cell.cjs +14 -7
  287. package/dist/report/definition/cell.cjs.map +1 -1
  288. package/dist/report/definition/cell.d.cts +4 -0
  289. package/dist/report/definition/cell.d.mts +4 -0
  290. package/dist/report/definition/cell.d.ts +4 -0
  291. package/dist/report/definition/primitives/assertion-evidence.cjs +96 -0
  292. package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -0
  293. package/dist/report/definition/primitives/assertion-evidence.d.cts +11 -0
  294. package/dist/report/definition/primitives/assertion-evidence.d.mts +11 -0
  295. package/dist/report/definition/primitives/assertion-evidence.d.ts +11 -0
  296. package/dist/report/definition/primitives/assertion-evidence.js +6 -0
  297. package/dist/report/definition/primitives/assertion-evidence.js.map +1 -0
  298. package/dist/report/definition/primitives/conversation.cjs +7 -0
  299. package/dist/report/definition/primitives/conversation.cjs.map +1 -1
  300. package/dist/report/definition/primitives/conversation.d.cts +2 -0
  301. package/dist/report/definition/primitives/conversation.d.mts +2 -0
  302. package/dist/report/definition/primitives/conversation.d.ts +2 -0
  303. package/dist/report/definition/primitives/turn-trace.cjs +53 -3
  304. package/dist/report/definition/primitives/turn-trace.cjs.map +1 -1
  305. package/dist/report/definition/primitives.cjs +14 -1
  306. package/dist/report/definition/primitives.cjs.map +1 -1
  307. package/dist/report/definition/report.cjs +16 -8
  308. package/dist/report/definition/report.cjs.map +1 -1
  309. package/dist/report/definition/report.d.cts +6 -0
  310. package/dist/report/definition/report.d.mts +6 -0
  311. package/dist/report/definition/report.d.ts +6 -0
  312. package/dist/report/definition/table-text.cjs +12 -3
  313. package/dist/report/definition/table-text.cjs.map +1 -1
  314. package/dist/report/definition/table-text.d.cts +6 -1
  315. package/dist/report/definition/table-text.d.mts +6 -1
  316. package/dist/report/definition/table-text.d.ts +6 -1
  317. package/dist/report/execution/model.cjs +6 -14
  318. package/dist/report/execution/model.cjs.map +1 -1
  319. package/dist/report/execution/model.d.cts +5 -10
  320. package/dist/report/execution/model.d.mts +5 -10
  321. package/dist/report/execution/model.d.ts +5 -10
  322. package/dist/report/execution/model.js +6 -6
  323. package/dist/report/execution/paths.cjs +0 -11
  324. package/dist/report/execution/paths.cjs.map +1 -1
  325. package/dist/report/execution/paths.d.cts +0 -1
  326. package/dist/report/execution/paths.d.mts +0 -1
  327. package/dist/report/execution/paths.d.ts +0 -1
  328. package/dist/report/execution/paths.js +6 -8
  329. package/dist/report/host/execute.cjs +13 -22
  330. package/dist/report/host/execute.cjs.map +1 -1
  331. package/dist/report/host/execute.d.cts +1 -4
  332. package/dist/report/host/execute.d.mts +1 -4
  333. package/dist/report/host/execute.d.ts +1 -4
  334. package/dist/report/host/from-record.cjs +3 -0
  335. package/dist/report/host/from-record.cjs.map +1 -1
  336. package/dist/report/host/from-record.d.cts +4 -1
  337. package/dist/report/host/from-record.d.mts +4 -1
  338. package/dist/report/host/from-record.d.ts +4 -1
  339. package/dist/report/host/site-assets.cjs +1 -2
  340. package/dist/report/host/site-assets.cjs.map +1 -1
  341. package/dist/report/host/site-assets.d.cts +0 -1
  342. package/dist/report/host/site-assets.d.mts +0 -1
  343. package/dist/report/host/site-assets.d.ts +0 -1
  344. package/dist/report/host/site-assets.js +2 -4
  345. package/dist/report/host/static.cjs +71 -346
  346. package/dist/report/host/static.cjs.map +1 -1
  347. package/dist/report/host/static.d.cts +1 -3
  348. package/dist/report/host/static.d.mts +1 -3
  349. package/dist/report/host/static.d.ts +1 -3
  350. package/dist/report/host/static.js +2 -2
  351. package/dist/report/host/view-session.cjs.map +1 -1
  352. package/dist/report/host/view-session.d.cts +1 -1
  353. package/dist/report/host/view-session.d.mts +1 -1
  354. package/dist/report/host/view-session.d.ts +1 -1
  355. package/dist/report/model/locale.cjs +1 -1
  356. package/dist/report/model/locale.cjs.map +1 -1
  357. package/dist/report/model/locale.d.cts +1 -1
  358. package/dist/report/model/locale.d.mts +1 -1
  359. package/dist/report/model/locale.d.ts +1 -1
  360. package/dist/report/model/pricing.cjs +2 -2
  361. package/dist/report/model/pricing.cjs.map +1 -1
  362. package/dist/report/react/enhance.js +5 -5
  363. package/dist/report/react/styles.css +190 -24
  364. package/dist/runner/adoption.cjs +4 -7
  365. package/dist/runner/adoption.cjs.map +1 -1
  366. package/dist/runner/attempt-resources.cjs +60 -0
  367. package/dist/runner/attempt-resources.cjs.map +1 -0
  368. package/dist/runner/attempt-resources.d.cts +13 -0
  369. package/dist/runner/attempt-resources.d.mts +13 -0
  370. package/dist/runner/attempt-resources.d.ts +13 -0
  371. package/dist/runner/attempt-resources.js +6 -0
  372. package/dist/runner/attempt-resources.js.map +1 -0
  373. package/dist/runner/attempt.cjs +37 -3
  374. package/dist/runner/attempt.cjs.map +1 -1
  375. package/dist/runner/feedback/failure.cjs +77 -2
  376. package/dist/runner/feedback/failure.cjs.map +1 -1
  377. package/dist/runner/feedback/failure.d.cts +2 -1
  378. package/dist/runner/feedback/failure.d.mts +2 -1
  379. package/dist/runner/feedback/failure.d.ts +2 -1
  380. package/dist/runner/project-current.cjs +2 -13
  381. package/dist/runner/project-current.cjs.map +1 -1
  382. package/dist/runner/project-current.d.cts +4 -2
  383. package/dist/runner/project-current.d.mts +4 -2
  384. package/dist/runner/project-current.d.ts +4 -2
  385. package/dist/runner/reporters/braintrust.cjs +7 -7
  386. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  387. package/dist/runner/reuse-readback.cjs +3 -4
  388. package/dist/runner/reuse-readback.cjs.map +1 -1
  389. package/dist/runner/run.cjs +5 -2
  390. package/dist/runner/run.cjs.map +1 -1
  391. package/dist/sandbox/backend.cjs +32 -2
  392. package/dist/sandbox/backend.cjs.map +1 -1
  393. package/dist/sandbox/backend.d.cts +12 -1
  394. package/dist/sandbox/backend.d.mts +12 -1
  395. package/dist/sandbox/backend.d.ts +12 -1
  396. package/dist/sandbox/backend.js +28 -22
  397. package/dist/sandbox/docker.cjs +140 -0
  398. package/dist/sandbox/docker.cjs.map +1 -1
  399. package/dist/sandbox/docker.d.cts +3 -1
  400. package/dist/sandbox/docker.d.mts +3 -1
  401. package/dist/sandbox/docker.d.ts +3 -1
  402. package/dist/sandbox/e2b.cjs +42 -0
  403. package/dist/sandbox/e2b.cjs.map +1 -1
  404. package/dist/sandbox/e2b.d.cts +2 -0
  405. package/dist/sandbox/e2b.d.mts +2 -0
  406. package/dist/sandbox/e2b.d.ts +2 -0
  407. package/dist/sandbox/local.cjs +64 -0
  408. package/dist/sandbox/local.cjs.map +1 -1
  409. package/dist/sandbox/local.d.cts +3 -1
  410. package/dist/sandbox/local.d.mts +3 -1
  411. package/dist/sandbox/local.d.ts +3 -1
  412. package/dist/sandbox/managed-process.cjs +49 -0
  413. package/dist/sandbox/managed-process.cjs.map +1 -0
  414. package/dist/sandbox/managed-process.d.cts +11 -0
  415. package/dist/sandbox/managed-process.d.mts +11 -0
  416. package/dist/sandbox/managed-process.d.ts +11 -0
  417. package/dist/sandbox/managed-process.js +6 -0
  418. package/dist/sandbox/managed-process.js.map +1 -0
  419. package/dist/sandbox/types.cjs.map +1 -1
  420. package/dist/sandbox/types.d.cts +24 -0
  421. package/dist/sandbox/types.d.mts +24 -0
  422. package/dist/sandbox/types.d.ts +24 -0
  423. package/dist/sandbox/vercel.cjs +1 -0
  424. package/dist/sandbox/vercel.cjs.map +1 -1
  425. package/dist/sandbox/vercel.d.cts +1 -0
  426. package/dist/sandbox/vercel.d.mts +1 -0
  427. package/dist/sandbox/vercel.d.ts +1 -0
  428. package/dist/view/server.cjs +2 -37
  429. package/dist/view/server.cjs.map +1 -1
  430. package/dist/view/server.d.cts +0 -3
  431. package/dist/view/server.d.mts +0 -3
  432. package/dist/view/server.d.ts +0 -3
  433. package/docs-site/zh/reference/builtin-agents.mdx +7 -7
  434. package/docs-site/zh/reference/official-adapters.mdx +4 -4
  435. package/docs-site/zh/reference/report-components.mdx +2 -2
  436. package/docs-site/zh/tutorials/configuration.mdx +2 -2
  437. package/docs-site/zh/tutorials/deploy-report-site.mdx +24 -2
  438. package/docs-site/zh/tutorials/publish-report.mdx +4 -4
  439. package/docs-site/zh/tutorials/sandbox-agent.mdx +5 -5
  440. package/docs-site/zh/tutorials/theming.mdx +2 -2
  441. package/package.json +4 -6
  442. package/dist/record/migration/index.cjs +0 -5
  443. package/dist/record/migration/index.cjs.map +0 -1
  444. package/dist/record/migration/index.d.cts +0 -11
  445. package/dist/record/migration/index.d.mts +0 -11
  446. package/dist/record/migration/index.d.ts +0 -11
  447. package/dist/record/migration/index.js +0 -6
  448. package/dist/record/migration/index.js.map +0 -1
  449. package/dist/report/host/site-runtime.cjs +0 -92
  450. package/dist/report/host/site-runtime.cjs.map +0 -1
  451. package/dist/report/host/site-runtime.d.cts +0 -9
  452. package/dist/report/host/site-runtime.d.mts +0 -9
  453. package/dist/report/host/site-runtime.d.ts +0 -9
  454. package/dist/report/host/site-runtime.js +0 -10
  455. package/dist/report/host/site-runtime.js.map +0 -1
  456. package/dist/view/client-dist/app.css +0 -2
  457. package/dist/view/client-dist/app.js +0 -49
  458. package/dist/view/data.cjs +0 -3
  459. package/dist/view/data.cjs.map +0 -1
  460. package/dist/view/data.d.cts +0 -9
  461. package/dist/view/data.d.mts +0 -9
  462. package/dist/view/data.d.ts +0 -9
  463. package/dist/view/data.js +0 -4
  464. package/dist/view/data.js.map +0 -1
  465. package/dist/view/index.cjs +0 -24
  466. package/dist/view/index.cjs.map +0 -1
  467. package/dist/view/index.d.cts +0 -9
  468. package/dist/view/index.d.mts +0 -9
  469. package/dist/view/index.d.ts +0 -9
  470. package/dist/view/index.js +0 -28
  471. package/dist/view/index.js.map +0 -1
  472. package/dist/view/report-view-cache.cjs +0 -200
  473. package/dist/view/report-view-cache.cjs.map +0 -1
  474. package/dist/view/report-view-cache.d.cts +0 -67
  475. package/dist/view/report-view-cache.d.mts +0 -67
  476. package/dist/view/report-view-cache.d.ts +0 -67
  477. package/dist/view/report-view-cache.js +0 -8
  478. package/dist/view/report-view-cache.js.map +0 -1
  479. package/dist/view/shared/types.cjs +0 -3
  480. package/dist/view/shared/types.cjs.map +0 -1
  481. package/dist/view/shared/types.d.cts +0 -51
  482. package/dist/view/shared/types.d.mts +0 -51
  483. package/dist/view/shared/types.d.ts +0 -51
  484. package/dist/view/shared/types.js +0 -4
  485. package/dist/view/shared/types.js.map +0 -1
  486. package/dist/view/site.cjs +0 -32
  487. package/dist/view/site.cjs.map +0 -1
  488. package/dist/view/site.d.cts +0 -24
  489. package/dist/view/site.d.mts +0 -24
  490. package/dist/view/site.d.ts +0 -24
  491. package/dist/view/site.js +0 -8
  492. package/dist/view/site.js.map +0 -1
  493. package/dist/view/styles.css +0 -170
  494. package/dist/view/template.html +0 -17
@@ -17,6 +17,50 @@ export interface AssertionDisplay {
17
17
  readonly label?: string;
18
18
  readonly groupPath: readonly string[];
19
19
  }
20
+ export type AssertionFactValue = {
21
+ readonly kind: "unavailable";
22
+ readonly reason: "not-recorded" | "not-declared" | "source-unavailable";
23
+ } | {
24
+ readonly kind: "value";
25
+ readonly value: BoundedJsonPrimitive;
26
+ } | {
27
+ readonly kind: "text";
28
+ readonly text: string;
29
+ } | {
30
+ readonly kind: "list";
31
+ readonly items: readonly AssertionFactValue[];
32
+ } | {
33
+ readonly kind: "fields";
34
+ readonly fields: readonly AssertionFactField[];
35
+ };
36
+ export interface AssertionFactField {
37
+ readonly label: string;
38
+ readonly value: AssertionFactValue;
39
+ }
40
+ export interface AssertionDecisionPolicy {
41
+ readonly requirement: {
42
+ readonly state: "available";
43
+ readonly value: "required" | "optional";
44
+ } | {
45
+ readonly state: "unavailable";
46
+ readonly reason: "not-recorded";
47
+ };
48
+ readonly condition: {
49
+ readonly state: "available";
50
+ readonly value: {
51
+ readonly kind: "boolean";
52
+ readonly expected: true;
53
+ } | {
54
+ readonly kind: "at-least";
55
+ readonly threshold: number;
56
+ } | {
57
+ readonly kind: "record-only";
58
+ };
59
+ } | {
60
+ readonly state: "unavailable";
61
+ readonly reason: "not-recorded";
62
+ };
63
+ }
20
64
  /** The outer builtin shape deliberately preserves an unknown future id. */
21
65
  export interface BuiltInCriterionEnvelope {
22
66
  readonly kind: "builtin";
@@ -37,6 +81,12 @@ export type BuiltInCriterion = {
37
81
  readonly id: "value-match/v1";
38
82
  readonly data: {
39
83
  readonly subject: "explicit-value";
84
+ readonly matcher: {
85
+ readonly state: "declared";
86
+ readonly name: string;
87
+ } | {
88
+ readonly state: "unavailable";
89
+ };
40
90
  };
41
91
  } | {
42
92
  readonly kind: "builtin";
@@ -118,6 +168,9 @@ export type BuiltInCriterion = {
118
168
  /** A v1 writer may only emit a known builtin or a versioned third-party schema. */
119
169
  export type WritableCriterionEnvelope = BuiltInCriterion | ThirdPartyCriterion;
120
170
  export type AssertionMaterial<BlobRef> = {
171
+ readonly kind: "unavailable";
172
+ readonly reason: "not-recorded";
173
+ } | {
121
174
  readonly kind: "snapshot";
122
175
  readonly value: BoundedJsonValue;
123
176
  } | {
@@ -169,47 +222,100 @@ export interface UnavailableScoreContribution {
169
222
  readonly reason: "source-unavailable" | "evaluation-errored" | "not-applicable";
170
223
  }
171
224
  export type ScoreContribution = NoScoreContribution | EarnedScoreContribution | UnavailableScoreContribution;
225
+ export interface AssertionCollectionReceipt {
226
+ readonly examined: number;
227
+ readonly matched: number;
228
+ readonly mismatched: number;
229
+ readonly unavailable: number;
230
+ readonly knownTotal: number | null;
231
+ readonly complete: boolean;
232
+ readonly exhaustive: boolean;
233
+ readonly decisive: boolean;
234
+ }
172
235
  export type SealedAssertionResult = {
173
236
  readonly state: "matched";
174
237
  readonly gate: "not-gate" | "satisfied";
175
238
  readonly score: NoScoreContribution | EarnedScoreContribution;
176
239
  /** Bounded evaluator diagnostics, including ToolMatch evidence paths. */
177
240
  readonly diagnostic?: BoundedJsonObject;
241
+ readonly receipt?: AssertionCollectionReceipt;
178
242
  } | {
179
243
  readonly state: "mismatched";
180
244
  readonly reason: "condition-not-met";
181
245
  readonly gate: "not-gate" | "failed";
182
246
  readonly score: NoScoreContribution | EarnedScoreContribution;
183
247
  readonly diagnostic?: BoundedJsonObject;
248
+ readonly receipt?: AssertionCollectionReceipt;
184
249
  } | {
185
250
  readonly state: "unavailable";
186
251
  readonly reason: "evidence-unavailable" | "source-unavailable" | "redacted";
187
252
  readonly gate: "not-gate" | "unavailable";
188
253
  readonly score: NoScoreContribution | UnavailableScoreContribution;
189
254
  readonly diagnostic?: BoundedJsonObject;
255
+ readonly receipt?: AssertionCollectionReceipt;
190
256
  } | {
191
257
  readonly state: "errored";
192
258
  readonly reason: "evaluator-failed" | "producer-interrupted" | "invalid-subject";
193
259
  readonly gate: "not-gate" | "unavailable";
194
260
  readonly score: NoScoreContribution | UnavailableScoreContribution;
195
261
  readonly diagnostic?: BoundedJsonObject;
262
+ readonly receipt?: AssertionCollectionReceipt;
196
263
  } | {
197
264
  readonly state: "not-applicable";
198
265
  readonly reason: "coverage-not-applicable";
199
266
  readonly gate: "not-gate" | "not-applicable";
200
267
  readonly score: NoScoreContribution | UnavailableScoreContribution;
201
268
  readonly diagnostic?: BoundedJsonObject;
269
+ readonly receipt?: AssertionCollectionReceipt;
202
270
  };
203
- /** The exact v1 value that a producer is allowed to seal. */
204
- export interface AssertionEntry<BlobRef> {
205
- readonly entryId: AssertionEntryId;
206
- readonly display: AssertionDisplay;
207
- readonly criterion: WritableCriterionEnvelope;
208
- readonly subject: AssertionMaterial<BlobRef>;
271
+ export type AssertionCriterionRecord = {
272
+ readonly state: "available";
273
+ readonly value: WritableCriterionEnvelope;
274
+ } | {
275
+ readonly state: "unavailable";
276
+ readonly reason: "not-recorded";
277
+ };
278
+ export type AssertionCriterionRecordOuter = {
279
+ readonly state: "available";
280
+ readonly value: BoundedJsonObject;
281
+ } | {
282
+ readonly state: "unavailable";
283
+ readonly reason: "not-recorded";
284
+ };
285
+ export interface AssertionMaterials<BlobRef> {
286
+ readonly source: AssertionMaterial<BlobRef>;
209
287
  readonly evidence: readonly AssertionMaterial<BlobRef>[];
210
288
  readonly coverage: AssertionCoverage;
211
289
  readonly limitations: readonly AssertionLimitation[];
212
- readonly result: SealedAssertionResult;
290
+ }
291
+ export interface AssertionEvaluation {
292
+ readonly observed: AssertionFactValue;
293
+ readonly receipt?: AssertionCollectionReceipt;
294
+ }
295
+ export interface AssertionDecision {
296
+ readonly result: "matched" | "mismatched" | "unavailable" | "errored" | "not-applicable";
297
+ readonly reason: "condition-not-met" | "evidence-unavailable" | "source-unavailable" | "redacted" | "evaluator-failed" | "producer-interrupted" | "invalid-subject" | "coverage-not-applicable" | null;
298
+ readonly gate: GateDisposition;
299
+ }
300
+ export declare function sealedAssertionResult(entry: Pick<AssertionEntry<unknown>, "decision" | "contribution" | "evaluation">): SealedAssertionResult;
301
+ export type ExplanationRetention = {
302
+ readonly state: "retained";
303
+ readonly value: AssertionFactValue;
304
+ } | {
305
+ readonly state: "unavailable";
306
+ readonly reason: "not-recorded";
307
+ };
308
+ /** The sole current semantic entry. Each fact has exactly one durable owner. */
309
+ export interface AssertionEntry<BlobRef> {
310
+ readonly entryId: AssertionEntryId;
311
+ readonly display: AssertionDisplay;
312
+ readonly criterion: AssertionCriterionRecord;
313
+ readonly materials: AssertionMaterials<BlobRef>;
314
+ readonly evaluation: AssertionEvaluation;
315
+ readonly decision: AssertionDecision;
316
+ readonly policy: AssertionDecisionPolicy;
317
+ readonly contribution: ScoreContribution;
318
+ readonly explanationRetention: ExplanationRetention;
213
319
  }
214
320
  /**
215
321
  * Reader framing intentionally leaves `criterion` as bounded JSON. This
@@ -219,12 +325,13 @@ export interface AssertionEntry<BlobRef> {
219
325
  export interface AssertionEntryOuter<BlobRef> {
220
326
  readonly entryId: AssertionEntryId;
221
327
  readonly display: AssertionDisplay;
222
- readonly criterion: BoundedJsonObject;
223
- readonly subject: AssertionMaterial<BlobRef>;
224
- readonly evidence: readonly AssertionMaterial<BlobRef>[];
225
- readonly coverage: AssertionCoverage;
226
- readonly limitations: readonly AssertionLimitation[];
227
- readonly result: SealedAssertionResult;
328
+ readonly criterion: AssertionCriterionRecordOuter;
329
+ readonly materials: AssertionMaterials<BlobRef>;
330
+ readonly evaluation: AssertionEvaluation;
331
+ readonly decision: AssertionDecision;
332
+ readonly policy: AssertionDecisionPolicy;
333
+ readonly contribution: ScoreContribution;
334
+ readonly explanationRetention: ExplanationRetention;
228
335
  }
229
336
  export interface AssertionsDocument<BlobRef> {
230
337
  readonly entries: readonly AssertionEntry<BlobRef>[];
@@ -17,6 +17,50 @@ export interface AssertionDisplay {
17
17
  readonly label?: string;
18
18
  readonly groupPath: readonly string[];
19
19
  }
20
+ export type AssertionFactValue = {
21
+ readonly kind: "unavailable";
22
+ readonly reason: "not-recorded" | "not-declared" | "source-unavailable";
23
+ } | {
24
+ readonly kind: "value";
25
+ readonly value: BoundedJsonPrimitive;
26
+ } | {
27
+ readonly kind: "text";
28
+ readonly text: string;
29
+ } | {
30
+ readonly kind: "list";
31
+ readonly items: readonly AssertionFactValue[];
32
+ } | {
33
+ readonly kind: "fields";
34
+ readonly fields: readonly AssertionFactField[];
35
+ };
36
+ export interface AssertionFactField {
37
+ readonly label: string;
38
+ readonly value: AssertionFactValue;
39
+ }
40
+ export interface AssertionDecisionPolicy {
41
+ readonly requirement: {
42
+ readonly state: "available";
43
+ readonly value: "required" | "optional";
44
+ } | {
45
+ readonly state: "unavailable";
46
+ readonly reason: "not-recorded";
47
+ };
48
+ readonly condition: {
49
+ readonly state: "available";
50
+ readonly value: {
51
+ readonly kind: "boolean";
52
+ readonly expected: true;
53
+ } | {
54
+ readonly kind: "at-least";
55
+ readonly threshold: number;
56
+ } | {
57
+ readonly kind: "record-only";
58
+ };
59
+ } | {
60
+ readonly state: "unavailable";
61
+ readonly reason: "not-recorded";
62
+ };
63
+ }
20
64
  /** The outer builtin shape deliberately preserves an unknown future id. */
21
65
  export interface BuiltInCriterionEnvelope {
22
66
  readonly kind: "builtin";
@@ -37,6 +81,12 @@ export type BuiltInCriterion = {
37
81
  readonly id: "value-match/v1";
38
82
  readonly data: {
39
83
  readonly subject: "explicit-value";
84
+ readonly matcher: {
85
+ readonly state: "declared";
86
+ readonly name: string;
87
+ } | {
88
+ readonly state: "unavailable";
89
+ };
40
90
  };
41
91
  } | {
42
92
  readonly kind: "builtin";
@@ -118,6 +168,9 @@ export type BuiltInCriterion = {
118
168
  /** A v1 writer may only emit a known builtin or a versioned third-party schema. */
119
169
  export type WritableCriterionEnvelope = BuiltInCriterion | ThirdPartyCriterion;
120
170
  export type AssertionMaterial<BlobRef> = {
171
+ readonly kind: "unavailable";
172
+ readonly reason: "not-recorded";
173
+ } | {
121
174
  readonly kind: "snapshot";
122
175
  readonly value: BoundedJsonValue;
123
176
  } | {
@@ -169,47 +222,100 @@ export interface UnavailableScoreContribution {
169
222
  readonly reason: "source-unavailable" | "evaluation-errored" | "not-applicable";
170
223
  }
171
224
  export type ScoreContribution = NoScoreContribution | EarnedScoreContribution | UnavailableScoreContribution;
225
+ export interface AssertionCollectionReceipt {
226
+ readonly examined: number;
227
+ readonly matched: number;
228
+ readonly mismatched: number;
229
+ readonly unavailable: number;
230
+ readonly knownTotal: number | null;
231
+ readonly complete: boolean;
232
+ readonly exhaustive: boolean;
233
+ readonly decisive: boolean;
234
+ }
172
235
  export type SealedAssertionResult = {
173
236
  readonly state: "matched";
174
237
  readonly gate: "not-gate" | "satisfied";
175
238
  readonly score: NoScoreContribution | EarnedScoreContribution;
176
239
  /** Bounded evaluator diagnostics, including ToolMatch evidence paths. */
177
240
  readonly diagnostic?: BoundedJsonObject;
241
+ readonly receipt?: AssertionCollectionReceipt;
178
242
  } | {
179
243
  readonly state: "mismatched";
180
244
  readonly reason: "condition-not-met";
181
245
  readonly gate: "not-gate" | "failed";
182
246
  readonly score: NoScoreContribution | EarnedScoreContribution;
183
247
  readonly diagnostic?: BoundedJsonObject;
248
+ readonly receipt?: AssertionCollectionReceipt;
184
249
  } | {
185
250
  readonly state: "unavailable";
186
251
  readonly reason: "evidence-unavailable" | "source-unavailable" | "redacted";
187
252
  readonly gate: "not-gate" | "unavailable";
188
253
  readonly score: NoScoreContribution | UnavailableScoreContribution;
189
254
  readonly diagnostic?: BoundedJsonObject;
255
+ readonly receipt?: AssertionCollectionReceipt;
190
256
  } | {
191
257
  readonly state: "errored";
192
258
  readonly reason: "evaluator-failed" | "producer-interrupted" | "invalid-subject";
193
259
  readonly gate: "not-gate" | "unavailable";
194
260
  readonly score: NoScoreContribution | UnavailableScoreContribution;
195
261
  readonly diagnostic?: BoundedJsonObject;
262
+ readonly receipt?: AssertionCollectionReceipt;
196
263
  } | {
197
264
  readonly state: "not-applicable";
198
265
  readonly reason: "coverage-not-applicable";
199
266
  readonly gate: "not-gate" | "not-applicable";
200
267
  readonly score: NoScoreContribution | UnavailableScoreContribution;
201
268
  readonly diagnostic?: BoundedJsonObject;
269
+ readonly receipt?: AssertionCollectionReceipt;
202
270
  };
203
- /** The exact v1 value that a producer is allowed to seal. */
204
- export interface AssertionEntry<BlobRef> {
205
- readonly entryId: AssertionEntryId;
206
- readonly display: AssertionDisplay;
207
- readonly criterion: WritableCriterionEnvelope;
208
- readonly subject: AssertionMaterial<BlobRef>;
271
+ export type AssertionCriterionRecord = {
272
+ readonly state: "available";
273
+ readonly value: WritableCriterionEnvelope;
274
+ } | {
275
+ readonly state: "unavailable";
276
+ readonly reason: "not-recorded";
277
+ };
278
+ export type AssertionCriterionRecordOuter = {
279
+ readonly state: "available";
280
+ readonly value: BoundedJsonObject;
281
+ } | {
282
+ readonly state: "unavailable";
283
+ readonly reason: "not-recorded";
284
+ };
285
+ export interface AssertionMaterials<BlobRef> {
286
+ readonly source: AssertionMaterial<BlobRef>;
209
287
  readonly evidence: readonly AssertionMaterial<BlobRef>[];
210
288
  readonly coverage: AssertionCoverage;
211
289
  readonly limitations: readonly AssertionLimitation[];
212
- readonly result: SealedAssertionResult;
290
+ }
291
+ export interface AssertionEvaluation {
292
+ readonly observed: AssertionFactValue;
293
+ readonly receipt?: AssertionCollectionReceipt;
294
+ }
295
+ export interface AssertionDecision {
296
+ readonly result: "matched" | "mismatched" | "unavailable" | "errored" | "not-applicable";
297
+ readonly reason: "condition-not-met" | "evidence-unavailable" | "source-unavailable" | "redacted" | "evaluator-failed" | "producer-interrupted" | "invalid-subject" | "coverage-not-applicable" | null;
298
+ readonly gate: GateDisposition;
299
+ }
300
+ export declare function sealedAssertionResult(entry: Pick<AssertionEntry<unknown>, "decision" | "contribution" | "evaluation">): SealedAssertionResult;
301
+ export type ExplanationRetention = {
302
+ readonly state: "retained";
303
+ readonly value: AssertionFactValue;
304
+ } | {
305
+ readonly state: "unavailable";
306
+ readonly reason: "not-recorded";
307
+ };
308
+ /** The sole current semantic entry. Each fact has exactly one durable owner. */
309
+ export interface AssertionEntry<BlobRef> {
310
+ readonly entryId: AssertionEntryId;
311
+ readonly display: AssertionDisplay;
312
+ readonly criterion: AssertionCriterionRecord;
313
+ readonly materials: AssertionMaterials<BlobRef>;
314
+ readonly evaluation: AssertionEvaluation;
315
+ readonly decision: AssertionDecision;
316
+ readonly policy: AssertionDecisionPolicy;
317
+ readonly contribution: ScoreContribution;
318
+ readonly explanationRetention: ExplanationRetention;
213
319
  }
214
320
  /**
215
321
  * Reader framing intentionally leaves `criterion` as bounded JSON. This
@@ -219,12 +325,13 @@ export interface AssertionEntry<BlobRef> {
219
325
  export interface AssertionEntryOuter<BlobRef> {
220
326
  readonly entryId: AssertionEntryId;
221
327
  readonly display: AssertionDisplay;
222
- readonly criterion: BoundedJsonObject;
223
- readonly subject: AssertionMaterial<BlobRef>;
224
- readonly evidence: readonly AssertionMaterial<BlobRef>[];
225
- readonly coverage: AssertionCoverage;
226
- readonly limitations: readonly AssertionLimitation[];
227
- readonly result: SealedAssertionResult;
328
+ readonly criterion: AssertionCriterionRecordOuter;
329
+ readonly materials: AssertionMaterials<BlobRef>;
330
+ readonly evaluation: AssertionEvaluation;
331
+ readonly decision: AssertionDecision;
332
+ readonly policy: AssertionDecisionPolicy;
333
+ readonly contribution: ScoreContribution;
334
+ readonly explanationRetention: ExplanationRetention;
228
335
  }
229
336
  export interface AssertionsDocument<BlobRef> {
230
337
  readonly entries: readonly AssertionEntry<BlobRef>[];
@@ -17,6 +17,50 @@ export interface AssertionDisplay {
17
17
  readonly label?: string;
18
18
  readonly groupPath: readonly string[];
19
19
  }
20
+ export type AssertionFactValue = {
21
+ readonly kind: "unavailable";
22
+ readonly reason: "not-recorded" | "not-declared" | "source-unavailable";
23
+ } | {
24
+ readonly kind: "value";
25
+ readonly value: BoundedJsonPrimitive;
26
+ } | {
27
+ readonly kind: "text";
28
+ readonly text: string;
29
+ } | {
30
+ readonly kind: "list";
31
+ readonly items: readonly AssertionFactValue[];
32
+ } | {
33
+ readonly kind: "fields";
34
+ readonly fields: readonly AssertionFactField[];
35
+ };
36
+ export interface AssertionFactField {
37
+ readonly label: string;
38
+ readonly value: AssertionFactValue;
39
+ }
40
+ export interface AssertionDecisionPolicy {
41
+ readonly requirement: {
42
+ readonly state: "available";
43
+ readonly value: "required" | "optional";
44
+ } | {
45
+ readonly state: "unavailable";
46
+ readonly reason: "not-recorded";
47
+ };
48
+ readonly condition: {
49
+ readonly state: "available";
50
+ readonly value: {
51
+ readonly kind: "boolean";
52
+ readonly expected: true;
53
+ } | {
54
+ readonly kind: "at-least";
55
+ readonly threshold: number;
56
+ } | {
57
+ readonly kind: "record-only";
58
+ };
59
+ } | {
60
+ readonly state: "unavailable";
61
+ readonly reason: "not-recorded";
62
+ };
63
+ }
20
64
  /** The outer builtin shape deliberately preserves an unknown future id. */
21
65
  export interface BuiltInCriterionEnvelope {
22
66
  readonly kind: "builtin";
@@ -37,6 +81,12 @@ export type BuiltInCriterion = {
37
81
  readonly id: "value-match/v1";
38
82
  readonly data: {
39
83
  readonly subject: "explicit-value";
84
+ readonly matcher: {
85
+ readonly state: "declared";
86
+ readonly name: string;
87
+ } | {
88
+ readonly state: "unavailable";
89
+ };
40
90
  };
41
91
  } | {
42
92
  readonly kind: "builtin";
@@ -118,6 +168,9 @@ export type BuiltInCriterion = {
118
168
  /** A v1 writer may only emit a known builtin or a versioned third-party schema. */
119
169
  export type WritableCriterionEnvelope = BuiltInCriterion | ThirdPartyCriterion;
120
170
  export type AssertionMaterial<BlobRef> = {
171
+ readonly kind: "unavailable";
172
+ readonly reason: "not-recorded";
173
+ } | {
121
174
  readonly kind: "snapshot";
122
175
  readonly value: BoundedJsonValue;
123
176
  } | {
@@ -169,47 +222,100 @@ export interface UnavailableScoreContribution {
169
222
  readonly reason: "source-unavailable" | "evaluation-errored" | "not-applicable";
170
223
  }
171
224
  export type ScoreContribution = NoScoreContribution | EarnedScoreContribution | UnavailableScoreContribution;
225
+ export interface AssertionCollectionReceipt {
226
+ readonly examined: number;
227
+ readonly matched: number;
228
+ readonly mismatched: number;
229
+ readonly unavailable: number;
230
+ readonly knownTotal: number | null;
231
+ readonly complete: boolean;
232
+ readonly exhaustive: boolean;
233
+ readonly decisive: boolean;
234
+ }
172
235
  export type SealedAssertionResult = {
173
236
  readonly state: "matched";
174
237
  readonly gate: "not-gate" | "satisfied";
175
238
  readonly score: NoScoreContribution | EarnedScoreContribution;
176
239
  /** Bounded evaluator diagnostics, including ToolMatch evidence paths. */
177
240
  readonly diagnostic?: BoundedJsonObject;
241
+ readonly receipt?: AssertionCollectionReceipt;
178
242
  } | {
179
243
  readonly state: "mismatched";
180
244
  readonly reason: "condition-not-met";
181
245
  readonly gate: "not-gate" | "failed";
182
246
  readonly score: NoScoreContribution | EarnedScoreContribution;
183
247
  readonly diagnostic?: BoundedJsonObject;
248
+ readonly receipt?: AssertionCollectionReceipt;
184
249
  } | {
185
250
  readonly state: "unavailable";
186
251
  readonly reason: "evidence-unavailable" | "source-unavailable" | "redacted";
187
252
  readonly gate: "not-gate" | "unavailable";
188
253
  readonly score: NoScoreContribution | UnavailableScoreContribution;
189
254
  readonly diagnostic?: BoundedJsonObject;
255
+ readonly receipt?: AssertionCollectionReceipt;
190
256
  } | {
191
257
  readonly state: "errored";
192
258
  readonly reason: "evaluator-failed" | "producer-interrupted" | "invalid-subject";
193
259
  readonly gate: "not-gate" | "unavailable";
194
260
  readonly score: NoScoreContribution | UnavailableScoreContribution;
195
261
  readonly diagnostic?: BoundedJsonObject;
262
+ readonly receipt?: AssertionCollectionReceipt;
196
263
  } | {
197
264
  readonly state: "not-applicable";
198
265
  readonly reason: "coverage-not-applicable";
199
266
  readonly gate: "not-gate" | "not-applicable";
200
267
  readonly score: NoScoreContribution | UnavailableScoreContribution;
201
268
  readonly diagnostic?: BoundedJsonObject;
269
+ readonly receipt?: AssertionCollectionReceipt;
202
270
  };
203
- /** The exact v1 value that a producer is allowed to seal. */
204
- export interface AssertionEntry<BlobRef> {
205
- readonly entryId: AssertionEntryId;
206
- readonly display: AssertionDisplay;
207
- readonly criterion: WritableCriterionEnvelope;
208
- readonly subject: AssertionMaterial<BlobRef>;
271
+ export type AssertionCriterionRecord = {
272
+ readonly state: "available";
273
+ readonly value: WritableCriterionEnvelope;
274
+ } | {
275
+ readonly state: "unavailable";
276
+ readonly reason: "not-recorded";
277
+ };
278
+ export type AssertionCriterionRecordOuter = {
279
+ readonly state: "available";
280
+ readonly value: BoundedJsonObject;
281
+ } | {
282
+ readonly state: "unavailable";
283
+ readonly reason: "not-recorded";
284
+ };
285
+ export interface AssertionMaterials<BlobRef> {
286
+ readonly source: AssertionMaterial<BlobRef>;
209
287
  readonly evidence: readonly AssertionMaterial<BlobRef>[];
210
288
  readonly coverage: AssertionCoverage;
211
289
  readonly limitations: readonly AssertionLimitation[];
212
- readonly result: SealedAssertionResult;
290
+ }
291
+ export interface AssertionEvaluation {
292
+ readonly observed: AssertionFactValue;
293
+ readonly receipt?: AssertionCollectionReceipt;
294
+ }
295
+ export interface AssertionDecision {
296
+ readonly result: "matched" | "mismatched" | "unavailable" | "errored" | "not-applicable";
297
+ readonly reason: "condition-not-met" | "evidence-unavailable" | "source-unavailable" | "redacted" | "evaluator-failed" | "producer-interrupted" | "invalid-subject" | "coverage-not-applicable" | null;
298
+ readonly gate: GateDisposition;
299
+ }
300
+ export declare function sealedAssertionResult(entry: Pick<AssertionEntry<unknown>, "decision" | "contribution" | "evaluation">): SealedAssertionResult;
301
+ export type ExplanationRetention = {
302
+ readonly state: "retained";
303
+ readonly value: AssertionFactValue;
304
+ } | {
305
+ readonly state: "unavailable";
306
+ readonly reason: "not-recorded";
307
+ };
308
+ /** The sole current semantic entry. Each fact has exactly one durable owner. */
309
+ export interface AssertionEntry<BlobRef> {
310
+ readonly entryId: AssertionEntryId;
311
+ readonly display: AssertionDisplay;
312
+ readonly criterion: AssertionCriterionRecord;
313
+ readonly materials: AssertionMaterials<BlobRef>;
314
+ readonly evaluation: AssertionEvaluation;
315
+ readonly decision: AssertionDecision;
316
+ readonly policy: AssertionDecisionPolicy;
317
+ readonly contribution: ScoreContribution;
318
+ readonly explanationRetention: ExplanationRetention;
213
319
  }
214
320
  /**
215
321
  * Reader framing intentionally leaves `criterion` as bounded JSON. This
@@ -219,12 +325,13 @@ export interface AssertionEntry<BlobRef> {
219
325
  export interface AssertionEntryOuter<BlobRef> {
220
326
  readonly entryId: AssertionEntryId;
221
327
  readonly display: AssertionDisplay;
222
- readonly criterion: BoundedJsonObject;
223
- readonly subject: AssertionMaterial<BlobRef>;
224
- readonly evidence: readonly AssertionMaterial<BlobRef>[];
225
- readonly coverage: AssertionCoverage;
226
- readonly limitations: readonly AssertionLimitation[];
227
- readonly result: SealedAssertionResult;
328
+ readonly criterion: AssertionCriterionRecordOuter;
329
+ readonly materials: AssertionMaterials<BlobRef>;
330
+ readonly evaluation: AssertionEvaluation;
331
+ readonly decision: AssertionDecision;
332
+ readonly policy: AssertionDecisionPolicy;
333
+ readonly contribution: ScoreContribution;
334
+ readonly explanationRetention: ExplanationRetention;
228
335
  }
229
336
  export interface AssertionsDocument<BlobRef> {
230
337
  readonly entries: readonly AssertionEntry<BlobRef>[];
@@ -3,4 +3,6 @@ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
3
  const __niceevalCanonical = __niceevalRequire("./model.cjs");
4
4
  const __niceevalExport0 = __niceevalCanonical["ASSERTION_ENTRY_ID_BRAND"];
5
5
  export { __niceevalExport0 as ASSERTION_ENTRY_ID_BRAND };
6
+ const __niceevalExport1 = __niceevalCanonical["sealedAssertionResult"];
7
+ export { __niceevalExport1 as sealedAssertionResult };
6
8
  //# sourceMappingURL=model.js.map