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,40 +1,42 @@
1
1
  import { createRequire as __niceevalCreateRequire } from "node:module";
2
2
  const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
3
  const __niceevalCanonical = __niceevalRequire("./protocol.cjs");
4
- const __niceevalExport0 = __niceevalCanonical["RecordAttachmentReference"];
5
- export { __niceevalExport0 as RecordAttachmentReference };
6
- const __niceevalExport1 = __niceevalCanonical["defineRecordAttachment"];
7
- export { __niceevalExport1 as defineRecordAttachment };
8
- const __niceevalExport2 = __niceevalCanonical["defineRecordAttachmentPersistence"];
9
- export { __niceevalExport2 as defineRecordAttachmentPersistence };
10
- const __niceevalExport3 = __niceevalCanonical["encodeRecordAttachmentCurrent"];
11
- export { __niceevalExport3 as encodeRecordAttachmentCurrent };
12
- const __niceevalExport4 = __niceevalCanonical["enumerateRecordAttachmentClosure"];
13
- export { __niceevalExport4 as enumerateRecordAttachmentClosure };
14
- const __niceevalExport5 = __niceevalCanonical["hydrateRecordAttachmentCurrent"];
15
- export { __niceevalExport5 as hydrateRecordAttachmentCurrent };
16
- const __niceevalExport6 = __niceevalCanonical["inspectRecordAttachmentOpaqueClosure"];
17
- export { __niceevalExport6 as inspectRecordAttachmentOpaqueClosure };
18
- const __niceevalExport7 = __niceevalCanonical["isRecordAttachmentDefinition"];
19
- export { __niceevalExport7 as isRecordAttachmentDefinition };
20
- const __niceevalExport8 = __niceevalCanonical["isRecordAttachmentPersistence"];
21
- export { __niceevalExport8 as isRecordAttachmentPersistence };
22
- const __niceevalExport9 = __niceevalCanonical["isRecordAttachmentReference"];
23
- export { __niceevalExport9 as isRecordAttachmentReference };
24
- const __niceevalExport10 = __niceevalCanonical["isRecordAttachmentSchema"];
25
- export { __niceevalExport10 as isRecordAttachmentSchema };
26
- const __niceevalExport11 = __niceevalCanonical["mintRecordAttachmentReference"];
27
- export { __niceevalExport11 as mintRecordAttachmentReference };
28
- const __niceevalExport12 = __niceevalCanonical["recordAttachmentDefinitionHasOpaqueDeclarations"];
29
- export { __niceevalExport12 as recordAttachmentDefinitionHasOpaqueDeclarations };
30
- const __niceevalExport13 = __niceevalCanonical["recordAttachmentReferenceDeclarationMetadata"];
31
- export { __niceevalExport13 as recordAttachmentReferenceDeclarationMetadata };
32
- const __niceevalExport14 = __niceevalCanonical["recordAttachmentReferenceDefinition"];
33
- export { __niceevalExport14 as recordAttachmentReferenceDefinition };
34
- const __niceevalExport15 = __niceevalCanonical["recordAttachmentReferenceWire"];
35
- export { __niceevalExport15 as recordAttachmentReferenceWire };
36
- const __niceevalExport16 = __niceevalCanonical["registerRecordAttachmentDefinitionAlias"];
37
- export { __niceevalExport16 as registerRecordAttachmentDefinitionAlias };
38
- const __niceevalExport17 = __niceevalCanonical["resolveRecordAttachmentDefinition"];
39
- export { __niceevalExport17 as resolveRecordAttachmentDefinition };
4
+ const __niceevalExport0 = __niceevalCanonical["RecordAttachmentEncodingLimits"];
5
+ export { __niceevalExport0 as RecordAttachmentEncodingLimits };
6
+ const __niceevalExport1 = __niceevalCanonical["RecordAttachmentReference"];
7
+ export { __niceevalExport1 as RecordAttachmentReference };
8
+ const __niceevalExport2 = __niceevalCanonical["defineRecordAttachment"];
9
+ export { __niceevalExport2 as defineRecordAttachment };
10
+ const __niceevalExport3 = __niceevalCanonical["defineRecordAttachmentPersistence"];
11
+ export { __niceevalExport3 as defineRecordAttachmentPersistence };
12
+ const __niceevalExport4 = __niceevalCanonical["encodeRecordAttachmentCurrent"];
13
+ export { __niceevalExport4 as encodeRecordAttachmentCurrent };
14
+ const __niceevalExport5 = __niceevalCanonical["enumerateRecordAttachmentClosure"];
15
+ export { __niceevalExport5 as enumerateRecordAttachmentClosure };
16
+ const __niceevalExport6 = __niceevalCanonical["hydrateRecordAttachmentCurrent"];
17
+ export { __niceevalExport6 as hydrateRecordAttachmentCurrent };
18
+ const __niceevalExport7 = __niceevalCanonical["inspectRecordAttachmentOpaqueClosure"];
19
+ export { __niceevalExport7 as inspectRecordAttachmentOpaqueClosure };
20
+ const __niceevalExport8 = __niceevalCanonical["isRecordAttachmentDefinition"];
21
+ export { __niceevalExport8 as isRecordAttachmentDefinition };
22
+ const __niceevalExport9 = __niceevalCanonical["isRecordAttachmentPersistence"];
23
+ export { __niceevalExport9 as isRecordAttachmentPersistence };
24
+ const __niceevalExport10 = __niceevalCanonical["isRecordAttachmentReference"];
25
+ export { __niceevalExport10 as isRecordAttachmentReference };
26
+ const __niceevalExport11 = __niceevalCanonical["isRecordAttachmentSchema"];
27
+ export { __niceevalExport11 as isRecordAttachmentSchema };
28
+ const __niceevalExport12 = __niceevalCanonical["mintRecordAttachmentReference"];
29
+ export { __niceevalExport12 as mintRecordAttachmentReference };
30
+ const __niceevalExport13 = __niceevalCanonical["recordAttachmentDefinitionHasOpaqueDeclarations"];
31
+ export { __niceevalExport13 as recordAttachmentDefinitionHasOpaqueDeclarations };
32
+ const __niceevalExport14 = __niceevalCanonical["recordAttachmentReferenceDeclarationMetadata"];
33
+ export { __niceevalExport14 as recordAttachmentReferenceDeclarationMetadata };
34
+ const __niceevalExport15 = __niceevalCanonical["recordAttachmentReferenceDefinition"];
35
+ export { __niceevalExport15 as recordAttachmentReferenceDefinition };
36
+ const __niceevalExport16 = __niceevalCanonical["recordAttachmentReferenceWire"];
37
+ export { __niceevalExport16 as recordAttachmentReferenceWire };
38
+ const __niceevalExport17 = __niceevalCanonical["registerRecordAttachmentDefinitionAlias"];
39
+ export { __niceevalExport17 as registerRecordAttachmentDefinitionAlias };
40
+ const __niceevalExport18 = __niceevalCanonical["resolveRecordAttachmentDefinition"];
41
+ export { __niceevalExport18 as resolveRecordAttachmentDefinition };
40
42
  //# sourceMappingURL=protocol.js.map
@@ -14,7 +14,7 @@ export declare const SealManifestDefinition: import("../definition/core.cjs").Re
14
14
  readonly format: "niceeval.seal-manifest";
15
15
  readonly runId: import("../model/identifiers.cjs").RunId;
16
16
  readonly entries: readonly {
17
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
17
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
18
18
  readonly path: import("../model/identifiers.cjs").CanonicalRunRelativePath;
19
19
  readonly byteLength: number;
20
20
  readonly sha256: Sha256Digest;
@@ -37,7 +37,7 @@ export declare const SealManifestPublicationDefinition: import("../definition/co
37
37
  readonly format: "niceeval.seal-manifest";
38
38
  readonly runId: import("../model/identifiers.cjs").RunId;
39
39
  readonly entries: readonly {
40
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
40
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
41
41
  readonly path: import("../model/identifiers.cjs").CanonicalRunRelativePath;
42
42
  readonly byteLength: number;
43
43
  readonly sha256: Sha256Digest;
@@ -65,7 +65,7 @@ export declare const RecordPublishRecoveryDefinition: import("../definition/core
65
65
  readonly destinationPath: string;
66
66
  readonly sealManifestSha256: Sha256Digest;
67
67
  readonly inventory: readonly {
68
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
68
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
69
69
  readonly path: import("../model/identifiers.cjs").CanonicalRunRelativePath;
70
70
  readonly byteLength: number;
71
71
  readonly sha256: Sha256Digest;
@@ -14,7 +14,7 @@ export declare const SealManifestDefinition: import("../definition/core.mjs").Re
14
14
  readonly format: "niceeval.seal-manifest";
15
15
  readonly runId: import("../model/identifiers.mjs").RunId;
16
16
  readonly entries: readonly {
17
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
17
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
18
18
  readonly path: import("../model/identifiers.mjs").CanonicalRunRelativePath;
19
19
  readonly byteLength: number;
20
20
  readonly sha256: Sha256Digest;
@@ -37,7 +37,7 @@ export declare const SealManifestPublicationDefinition: import("../definition/co
37
37
  readonly format: "niceeval.seal-manifest";
38
38
  readonly runId: import("../model/identifiers.mjs").RunId;
39
39
  readonly entries: readonly {
40
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
40
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
41
41
  readonly path: import("../model/identifiers.mjs").CanonicalRunRelativePath;
42
42
  readonly byteLength: number;
43
43
  readonly sha256: Sha256Digest;
@@ -65,7 +65,7 @@ export declare const RecordPublishRecoveryDefinition: import("../definition/core
65
65
  readonly destinationPath: string;
66
66
  readonly sealManifestSha256: Sha256Digest;
67
67
  readonly inventory: readonly {
68
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
68
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
69
69
  readonly path: import("../model/identifiers.mjs").CanonicalRunRelativePath;
70
70
  readonly byteLength: number;
71
71
  readonly sha256: Sha256Digest;
@@ -14,7 +14,7 @@ export declare const SealManifestDefinition: import("../definition/core.js").Rec
14
14
  readonly format: "niceeval.seal-manifest";
15
15
  readonly runId: import("../model/identifiers.js").RunId;
16
16
  readonly entries: readonly {
17
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
17
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
18
18
  readonly path: import("../model/identifiers.js").CanonicalRunRelativePath;
19
19
  readonly byteLength: number;
20
20
  readonly sha256: Sha256Digest;
@@ -37,7 +37,7 @@ export declare const SealManifestPublicationDefinition: import("../definition/co
37
37
  readonly format: "niceeval.seal-manifest";
38
38
  readonly runId: import("../model/identifiers.js").RunId;
39
39
  readonly entries: readonly {
40
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
40
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
41
41
  readonly path: import("../model/identifiers.js").CanonicalRunRelativePath;
42
42
  readonly byteLength: number;
43
43
  readonly sha256: Sha256Digest;
@@ -65,7 +65,7 @@ export declare const RecordPublishRecoveryDefinition: import("../definition/core
65
65
  readonly destinationPath: string;
66
66
  readonly sealManifestSha256: Sha256Digest;
67
67
  readonly inventory: readonly {
68
- readonly kind: "attachment-envelope" | "core" | "payload" | "blob";
68
+ readonly kind: "core" | "attachment-envelope" | "payload" | "blob";
69
69
  readonly path: import("../model/identifiers.js").CanonicalRunRelativePath;
70
70
  readonly byteLength: number;
71
71
  readonly sha256: Sha256Digest;
@@ -13,6 +13,7 @@ export declare const adapterUsageRecordAttachment: import("../../attachment/prot
13
13
  }>]>>;
14
14
  }>]>;
15
15
  readonly calls: import("effect/Schema").$Array<import("effect/Schema").Struct<{
16
+ readonly modelSlot: import("effect/Schema").NullOr<import("effect/Schema").String>;
16
17
  readonly route: import("effect/Schema").Struct<{
17
18
  readonly transportProvider: import("effect/Schema").NullOr<import("effect/Schema").String>;
18
19
  readonly endpointId: import("effect/Schema").NullOr<import("effect/Schema").String>;
@@ -13,6 +13,7 @@ export declare const adapterUsageRecordAttachment: import("../../attachment/prot
13
13
  }>]>>;
14
14
  }>]>;
15
15
  readonly calls: import("effect/Schema").$Array<import("effect/Schema").Struct<{
16
+ readonly modelSlot: import("effect/Schema").NullOr<import("effect/Schema").String>;
16
17
  readonly route: import("effect/Schema").Struct<{
17
18
  readonly transportProvider: import("effect/Schema").NullOr<import("effect/Schema").String>;
18
19
  readonly endpointId: import("effect/Schema").NullOr<import("effect/Schema").String>;
@@ -13,6 +13,7 @@ export declare const adapterUsageRecordAttachment: import("../../attachment/prot
13
13
  }>]>>;
14
14
  }>]>;
15
15
  readonly calls: import("effect/Schema").$Array<import("effect/Schema").Struct<{
16
+ readonly modelSlot: import("effect/Schema").NullOr<import("effect/Schema").String>;
16
17
  readonly route: import("effect/Schema").Struct<{
17
18
  readonly transportProvider: import("effect/Schema").NullOr<import("effect/Schema").String>;
18
19
  readonly endpointId: import("effect/Schema").NullOr<import("effect/Schema").String>;
@@ -5,6 +5,6 @@ const index_ts_1 = require("../../attachment/index.cjs");
5
5
  const definition_ts_1 = require("./definition.cjs");
6
6
  exports.adapterUsageRecordAttachmentPersistence = (0, index_ts_1.defineRecordAttachmentPersistence)({
7
7
  attachment: definition_ts_1.adapterUsageRecordAttachment,
8
- revision: 2,
8
+ revision: 4,
9
9
  });
10
10
  //# sourceMappingURL=persistence.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["persistence.ts"],"names":[],"mappings":";;;AAAA,wDAA8E;AAC9E,mDAA+D;AAClD,QAAA,uCAAuC,GAAG,IAAA,4CAAiC,EAAC;IACrF,UAAU,EAAE,4CAA4B;IACxC,QAAQ,EAAE,CAAC;CACd,CAAC,CAAC","sourcesContent":["import { defineRecordAttachmentPersistence } from \"../../attachment/index.ts\";\nimport { adapterUsageRecordAttachment } from \"./definition.ts\";\nexport const adapterUsageRecordAttachmentPersistence = defineRecordAttachmentPersistence({\n attachment: adapterUsageRecordAttachment,\n revision: 2,\n});\n"]}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["persistence.ts"],"names":[],"mappings":";;;AAAA,wDAA8E;AAC9E,mDAA+D;AAClD,QAAA,uCAAuC,GAAG,IAAA,4CAAiC,EAAC;IACrF,UAAU,EAAE,4CAA4B;IACxC,QAAQ,EAAE,CAAC;CACd,CAAC,CAAC","sourcesContent":["import { defineRecordAttachmentPersistence } from \"../../attachment/index.ts\";\nimport { adapterUsageRecordAttachment } from \"./definition.ts\";\nexport const adapterUsageRecordAttachmentPersistence = defineRecordAttachmentPersistence({\n attachment: adapterUsageRecordAttachment,\n revision: 4,\n});\n"]}
@@ -13,6 +13,7 @@ export declare const adapterUsageRecordAttachmentPersistence: import("../../atta
13
13
  }>]>>;
14
14
  }>]>;
15
15
  readonly calls: import("effect/Schema").$Array<import("effect/Schema").Struct<{
16
+ readonly modelSlot: import("effect/Schema").NullOr<import("effect/Schema").String>;
16
17
  readonly route: import("effect/Schema").Struct<{
17
18
  readonly transportProvider: import("effect/Schema").NullOr<import("effect/Schema").String>;
18
19
  readonly endpointId: import("effect/Schema").NullOr<import("effect/Schema").String>;
@@ -76,4 +77,4 @@ export declare const adapterUsageRecordAttachmentPersistence: import("../../atta
76
77
  readonly reason: import("effect/Schema").Literals<readonly ["tokens-unknown", "rate-unknown"]>;
77
78
  }>>;
78
79
  }>>;
79
- }>>, 2>;
80
+ }>>, 4>;
@@ -13,6 +13,7 @@ export declare const adapterUsageRecordAttachmentPersistence: import("../../atta
13
13
  }>]>>;
14
14
  }>]>;
15
15
  readonly calls: import("effect/Schema").$Array<import("effect/Schema").Struct<{
16
+ readonly modelSlot: import("effect/Schema").NullOr<import("effect/Schema").String>;
16
17
  readonly route: import("effect/Schema").Struct<{
17
18
  readonly transportProvider: import("effect/Schema").NullOr<import("effect/Schema").String>;
18
19
  readonly endpointId: import("effect/Schema").NullOr<import("effect/Schema").String>;
@@ -76,4 +77,4 @@ export declare const adapterUsageRecordAttachmentPersistence: import("../../atta
76
77
  readonly reason: import("effect/Schema").Literals<readonly ["tokens-unknown", "rate-unknown"]>;
77
78
  }>>;
78
79
  }>>;
79
- }>>, 2>;
80
+ }>>, 4>;
@@ -13,6 +13,7 @@ export declare const adapterUsageRecordAttachmentPersistence: import("../../atta
13
13
  }>]>>;
14
14
  }>]>;
15
15
  readonly calls: import("effect/Schema").$Array<import("effect/Schema").Struct<{
16
+ readonly modelSlot: import("effect/Schema").NullOr<import("effect/Schema").String>;
16
17
  readonly route: import("effect/Schema").Struct<{
17
18
  readonly transportProvider: import("effect/Schema").NullOr<import("effect/Schema").String>;
18
19
  readonly endpointId: import("effect/Schema").NullOr<import("effect/Schema").String>;
@@ -76,4 +77,4 @@ export declare const adapterUsageRecordAttachmentPersistence: import("../../atta
76
77
  readonly reason: import("effect/Schema").Literals<readonly ["tokens-unknown", "rate-unknown"]>;
77
78
  }>>;
78
79
  }>>;
79
- }>>, 2>;
80
+ }>>, 4>;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdapterUsageAttachmentSchema = exports.AdapterUsageAttachmentRevision1Schema = exports.AdapterUsageLimits = exports.AdapterUsageCallSchema = exports.AdapterCallPriceReceiptSchema = void 0;
3
+ exports.AdapterUsageAttachmentSchema = exports.AdapterUsageAttachmentRevision2Schema = exports.AdapterUsageAttachmentRevision1Schema = exports.AdapterUsageLimits = exports.AdapterUsageCallSchema = exports.AdapterUsageModelSlotSchema = exports.AdapterCallPriceReceiptSchema = void 0;
4
4
  exports.projectAdapterUsageRevision1 = projectAdapterUsageRevision1;
5
+ exports.projectAdapterUsageRevision2 = projectAdapterUsageRevision2;
5
6
  exports.validateAdapterUsageCalls = validateAdapterUsageCalls;
6
7
  exports.validateAdapterUsageAttachment = validateAdapterUsageAttachment;
7
8
  const effect_1 = require("effect");
@@ -76,16 +77,26 @@ exports.AdapterCallPriceReceiptSchema = effect_1.Schema.Struct({
76
77
  charges: effect_1.Schema.NonEmptyArray(AdapterCallPriceChargeSchema),
77
78
  missing: effect_1.Schema.Array(AdapterCallPriceMissingSchema),
78
79
  });
79
- exports.AdapterUsageCallSchema = effect_1.Schema.Struct({
80
+ exports.AdapterUsageModelSlotSchema = effect_1.Schema.String.check(effect_1.Schema.isPattern(/^[A-Za-z][A-Za-z0-9_-]{0,63}$(?![\s\S])/u));
81
+ const AdapterUsageCallRevision2Schema = effect_1.Schema.Struct({
80
82
  ...AdapterUsageCallRevision1Schema.fields,
81
83
  route: AdapterUsageRouteSchema,
82
84
  cost: effect_1.Schema.NullOr(AdapterUsageReportedCostSchema),
83
85
  });
86
+ exports.AdapterUsageCallSchema = effect_1.Schema.Struct({
87
+ ...AdapterUsageCallRevision2Schema.fields,
88
+ modelSlot: effect_1.Schema.NullOr(exports.AdapterUsageModelSlotSchema),
89
+ });
84
90
  exports.AdapterUsageLimits = Object.freeze({ maximumCalls: 4000 });
85
91
  exports.AdapterUsageAttachmentRevision1Schema = effect_1.Schema.Struct({
86
92
  collection: common_ts_1.CollectionStateSchema,
87
93
  calls: effect_1.Schema.Array(AdapterUsageCallRevision1Schema),
88
94
  });
95
+ exports.AdapterUsageAttachmentRevision2Schema = effect_1.Schema.Struct({
96
+ collection: common_ts_1.CollectionStateSchema,
97
+ calls: effect_1.Schema.Array(AdapterUsageCallRevision2Schema),
98
+ priceReceipts: effect_1.Schema.Array(exports.AdapterCallPriceReceiptSchema),
99
+ });
89
100
  exports.AdapterUsageAttachmentSchema = effect_1.Schema.Struct({
90
101
  collection: common_ts_1.CollectionStateSchema,
91
102
  calls: effect_1.Schema.Array(exports.AdapterUsageCallSchema),
@@ -98,12 +109,20 @@ function projectAdapterUsageRevision1(value) {
98
109
  collection: value.collection,
99
110
  calls: Object.freeze(value.calls.map((call) => Object.freeze({
100
111
  ...call,
112
+ modelSlot: null,
101
113
  route: Object.freeze({ transportProvider: null, endpointId: null }),
102
114
  cost: null,
103
115
  }))),
104
116
  priceReceipts: null,
105
117
  });
106
118
  }
119
+ /** Revision 2 preserves reported costs and sealed estimates while leaving purpose unknown. */
120
+ function projectAdapterUsageRevision2(value) {
121
+ return Object.freeze({
122
+ ...value,
123
+ calls: Object.freeze(value.calls.map((call) => Object.freeze({ ...call, modelSlot: null }))),
124
+ });
125
+ }
107
126
  function pricingDigestInput(pricing) {
108
127
  const source = { kind: pricing.source.kind, id: pricing.source.id, asOf: pricing.source.asOf };
109
128
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema } from \"effect\";\nimport { recordAttachmentIssue, type RecordAttachmentIssue } from \"../../attachment/index.ts\";\nimport { CollectionStateSchema, NonNegativeSafeIntegerSchema, PositiveSafeIntegerSchema } from \"../common.ts\";\nimport { CanonicalDecimalSchema, CurrencyCodeSchema } from \"../source-receipt/codec.ts\";\nimport { AdapterCallPriceBuckets, adapterCallPricingProfileDigest, addCanonicalDecimals, multiplyCanonicalDecimalPerMillion, } from \"./pricing.ts\";\nconst Identity = Schema.String.pipe(Schema.check(Schema.makeFilter((value) => value.trim().length > 0 && new TextEncoder().encode(value).byteLength <= 256 && !/[\\u0000-\\u001f\\u007f]/u.test(value))));\nconst Tokens = Schema.NullOr(NonNegativeSafeIntegerSchema);\nconst AdapterUsageCallRevision1Schema = Schema.Struct({\n callId: Identity,\n retryOf: Schema.NullOr(Identity),\n provider: Schema.NullOr(Identity),\n model: Schema.NullOr(Identity),\n status: Schema.Literals([\"succeeded\", \"failed\", \"cancelled\", \"unknown\"]),\n inputTokens: Tokens,\n inputTotalTokens: Tokens,\n outputTokens: Tokens,\n cacheReadTokens: Tokens,\n cacheWriteTokens: Tokens,\n});\nconst AdapterUsageRouteSchema = Schema.Struct({\n transportProvider: Schema.NullOr(Identity),\n endpointId: Schema.NullOr(Identity),\n});\nconst AdapterUsageReportedCostSchema = Schema.Struct({\n amount: CanonicalDecimalSchema,\n currency: CurrencyCodeSchema,\n source: Schema.Struct({ kind: Schema.Literal(\"reported\"), id: Identity }),\n});\nconst Digest = Schema.String.pipe(Schema.check(Schema.makeFilter((value) => /^sha256:[0-9a-f]{64}$/u.test(value))));\nconst NullableRateSchema = Schema.NullOr(CanonicalDecimalSchema);\nconst AdapterCallPriceRatesSchema = Schema.Struct({\n input: NullableRateSchema,\n output: NullableRateSchema,\n cacheRead: NullableRateSchema,\n cacheWrite: NullableRateSchema,\n});\nconst AdapterCallPriceSourceSchema = Schema.Struct({\n kind: Schema.Literal(\"configured-profile\"),\n id: Identity,\n asOf: Schema.NullOr(PositiveSafeIntegerSchema),\n profileDigest: Digest,\n});\nconst AdapterCallPricingSchema = Schema.Struct({\n basis: Schema.Literal(\"catalog-reference\"),\n currency: Schema.Literal(\"USD\"),\n source: AdapterCallPriceSourceSchema,\n requestModel: Identity,\n selector: Identity,\n match: Schema.Literals([\"exact\", \"provider-wildcard\"]),\n ratesPerMTok: AdapterCallPriceRatesSchema,\n});\nconst AdapterCallPriceChargeSchema = Schema.Struct({\n bucket: Schema.Literals(AdapterCallPriceBuckets),\n tokens: NonNegativeSafeIntegerSchema,\n ratePerMTok: NullableRateSchema,\n amount: CanonicalDecimalSchema,\n});\nconst AdapterCallPriceMissingSchema = Schema.Struct({\n bucket: Schema.Literals(AdapterCallPriceBuckets),\n reason: Schema.Literals([\"tokens-unknown\", \"rate-unknown\"]),\n});\nexport const AdapterCallPriceReceiptSchema = Schema.Struct({\n kind: Schema.Literal(\"adapter-call-price-estimate\"),\n callId: Identity,\n state: Schema.Literals([\"complete\", \"partial\"]),\n amount: CanonicalDecimalSchema,\n currency: Schema.Literal(\"USD\"),\n source: Schema.Struct({ kind: Schema.Literal(\"estimated\"), id: Identity }),\n pricing: AdapterCallPricingSchema,\n charges: Schema.NonEmptyArray(AdapterCallPriceChargeSchema),\n missing: Schema.Array(AdapterCallPriceMissingSchema),\n});\nexport type AdapterCallPriceReceipt = Schema.Schema.Type<typeof AdapterCallPriceReceiptSchema>;\nexport const AdapterUsageCallSchema = Schema.Struct({\n ...AdapterUsageCallRevision1Schema.fields,\n route: AdapterUsageRouteSchema,\n cost: Schema.NullOr(AdapterUsageReportedCostSchema),\n});\nexport type AdapterUsageCall = Schema.Schema.Type<typeof AdapterUsageCallSchema>;\nexport const AdapterUsageLimits = Object.freeze({ maximumCalls: 4000 });\nexport const AdapterUsageAttachmentRevision1Schema = Schema.Struct({\n collection: CollectionStateSchema,\n calls: Schema.Array(AdapterUsageCallRevision1Schema),\n});\nexport type AdapterUsageAttachmentRevision1 = Schema.Schema.Type<typeof AdapterUsageAttachmentRevision1Schema>;\nexport const AdapterUsageAttachmentSchema = Schema.Struct({\n collection: CollectionStateSchema,\n calls: Schema.Array(AdapterUsageCallSchema),\n /** Estimates only for calls without a reported cost and with at least one proven charge. */\n priceReceipts: Schema.Array(AdapterCallPriceReceiptSchema),\n});\nexport type AdapterUsageAttachment = Schema.Schema.Type<typeof AdapterUsageAttachmentSchema>;\nexport interface ReadableAdapterUsageAttachment {\n readonly collection: AdapterUsageAttachment[\"collection\"];\n readonly calls: AdapterUsageAttachment[\"calls\"];\n /** null means revision 1 contained no call-bound estimate proofs. */\n readonly priceReceipts: AdapterUsageAttachment[\"priceReceipts\"] | null;\n}\n/** Valid revision 1 facts remain readable without rewriting bytes or repricing historical calls. */\nexport function projectAdapterUsageRevision1(value: AdapterUsageAttachmentRevision1): ReadableAdapterUsageAttachment {\n return Object.freeze({\n collection: value.collection,\n calls: Object.freeze(value.calls.map((call) => Object.freeze({\n ...call,\n route: Object.freeze({ transportProvider: null, endpointId: null }),\n cost: null,\n }))),\n priceReceipts: null,\n });\n}\nfunction pricingDigestInput(pricing: AdapterCallPriceReceipt[\"pricing\"]): object {\n const source = { kind: pricing.source.kind, id: pricing.source.id, asOf: pricing.source.asOf };\n return {\n basis: pricing.basis,\n currency: \"USD\",\n source,\n requestModel: pricing.requestModel,\n selector: pricing.selector,\n match: pricing.match,\n ratesPerMTok: pricing.ratesPerMTok,\n };\n}\nfunction callTokens(call: AdapterUsageCall, bucket: (typeof AdapterCallPriceBuckets)[number]): number | null {\n switch (bucket) {\n case \"input\": return call.inputTokens;\n case \"output\": return call.outputTokens;\n case \"cache-read\": return call.cacheReadTokens;\n case \"cache-write\": return call.cacheWriteTokens;\n }\n}\nfunction bucketRate(rates: AdapterCallPriceReceipt[\"pricing\"][\"ratesPerMTok\"], bucket: (typeof AdapterCallPriceBuckets)[number]): string | null {\n switch (bucket) {\n case \"input\": return rates.input;\n case \"output\": return rates.output;\n case \"cache-read\": return rates.cacheRead;\n case \"cache-write\": return rates.cacheWrite;\n }\n}\nfunction receiptIssue(call: AdapterUsageCall, receipt: AdapterCallPriceReceipt): RecordAttachmentIssue | undefined {\n if (receipt.callId !== call.callId || call.cost !== null || receipt.pricing.requestModel !== call.model ||\n receipt.source.id !== receipt.pricing.source.id ||\n adapterCallPricingProfileDigest(pricingDigestInput(receipt.pricing)) !== receipt.pricing.source.profileDigest) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"pricing\"]);\n }\n const charges = new Map(receipt.charges.map((charge) => [charge.bucket, charge]));\n const missing = new Map(receipt.missing.map((entry) => [entry.bucket, entry]));\n if (charges.size !== receipt.charges.length || missing.size !== receipt.missing.length ||\n AdapterCallPriceBuckets.some((bucket) => Number(charges.has(bucket)) + Number(missing.has(bucket)) !== 1)) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"charges\"]);\n }\n for (const bucket of AdapterCallPriceBuckets) {\n const tokens = callTokens(call, bucket);\n const expectedRate = bucketRate(receipt.pricing.ratesPerMTok, bucket);\n const charge = charges.get(bucket);\n const absent = missing.get(bucket);\n if (charge !== undefined) {\n if (tokens === null || charge.tokens !== tokens || charge.ratePerMTok !== expectedRate ||\n (tokens > 0 && expectedRate === null) ||\n charge.amount !== (expectedRate === null ? \"0\" : multiplyCanonicalDecimalPerMillion(expectedRate, tokens))) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"charges\"]);\n }\n }\n else if (tokens === null\n ? absent?.reason !== \"tokens-unknown\"\n : tokens === 0 || expectedRate !== null || absent?.reason !== \"rate-unknown\") {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"missing\"]);\n }\n }\n const state = receipt.missing.length === 0 ? \"complete\" : \"partial\";\n const amount = addCanonicalDecimals(receipt.charges.map((charge) => charge.amount));\n if (receipt.state !== state || receipt.amount !== amount) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"state\"]);\n }\n return undefined;\n}\nexport function validateAdapterUsageCalls(calls: readonly AdapterUsageCall[]): readonly RecordAttachmentIssue[] {\n const seen = new Set<string>();\n for (const call of calls) {\n const buckets = [call.inputTokens, call.cacheReadTokens, call.cacheWriteTokens];\n const known = buckets.filter((value): value is number => value !== null);\n const sum = known.reduce((total, value) => total + value, 0);\n if (!Number.isSafeInteger(sum) || (call.inputTotalTokens !== null &&\n (sum > call.inputTotalTokens || (known.length === 3 && sum !== call.inputTotalTokens)))) {\n return [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"calls\", \"inputTotalTokens\"])];\n }\n if (seen.has(call.callId) || (call.retryOf !== null && !seen.has(call.retryOf))) {\n return [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"calls\"])];\n }\n seen.add(call.callId);\n }\n return calls.length > AdapterUsageLimits.maximumCalls\n ? [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"calls\"])]\n : [];\n}\nexport function validateAdapterUsageAttachment(value: ReadableAdapterUsageAttachment): readonly RecordAttachmentIssue[] {\n const callIssues = validateAdapterUsageCalls(value.calls);\n if (callIssues.length > 0 || value.priceReceipts === null)\n return callIssues;\n const calls = new Map(value.calls.map((call) => [call.callId, call]));\n const seen = new Set<string>();\n for (const receipt of value.priceReceipts) {\n const call = calls.get(receipt.callId);\n if (call === undefined || seen.has(receipt.callId)) {\n return [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"callId\"])];\n }\n seen.add(receipt.callId);\n const issue = receiptIssue(call, receipt);\n if (issue !== undefined)\n return [issue];\n }\n return [];\n}\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema } from \"effect\";\nimport { recordAttachmentIssue, type RecordAttachmentIssue } from \"../../attachment/index.ts\";\nimport { CollectionStateSchema, NonNegativeSafeIntegerSchema, PositiveSafeIntegerSchema } from \"../common.ts\";\nimport { CanonicalDecimalSchema, CurrencyCodeSchema } from \"../source-receipt/codec.ts\";\nimport { AdapterCallPriceBuckets, adapterCallPricingProfileDigest, addCanonicalDecimals, multiplyCanonicalDecimalPerMillion, } from \"./pricing.ts\";\nconst Identity = Schema.String.pipe(Schema.check(Schema.makeFilter((value) => value.trim().length > 0 && new TextEncoder().encode(value).byteLength <= 256 && !/[\\u0000-\\u001f\\u007f]/u.test(value))));\nconst Tokens = Schema.NullOr(NonNegativeSafeIntegerSchema);\nconst AdapterUsageCallRevision1Schema = Schema.Struct({\n callId: Identity,\n retryOf: Schema.NullOr(Identity),\n provider: Schema.NullOr(Identity),\n model: Schema.NullOr(Identity),\n status: Schema.Literals([\"succeeded\", \"failed\", \"cancelled\", \"unknown\"]),\n inputTokens: Tokens,\n inputTotalTokens: Tokens,\n outputTokens: Tokens,\n cacheReadTokens: Tokens,\n cacheWriteTokens: Tokens,\n});\nconst AdapterUsageRouteSchema = Schema.Struct({\n transportProvider: Schema.NullOr(Identity),\n endpointId: Schema.NullOr(Identity),\n});\nconst AdapterUsageReportedCostSchema = Schema.Struct({\n amount: CanonicalDecimalSchema,\n currency: CurrencyCodeSchema,\n source: Schema.Struct({ kind: Schema.Literal(\"reported\"), id: Identity }),\n});\nconst Digest = Schema.String.pipe(Schema.check(Schema.makeFilter((value) => /^sha256:[0-9a-f]{64}$/u.test(value))));\nconst NullableRateSchema = Schema.NullOr(CanonicalDecimalSchema);\nconst AdapterCallPriceRatesSchema = Schema.Struct({\n input: NullableRateSchema,\n output: NullableRateSchema,\n cacheRead: NullableRateSchema,\n cacheWrite: NullableRateSchema,\n});\nconst AdapterCallPriceSourceSchema = Schema.Struct({\n kind: Schema.Literal(\"configured-profile\"),\n id: Identity,\n asOf: Schema.NullOr(PositiveSafeIntegerSchema),\n profileDigest: Digest,\n});\nconst AdapterCallPricingSchema = Schema.Struct({\n basis: Schema.Literal(\"catalog-reference\"),\n currency: Schema.Literal(\"USD\"),\n source: AdapterCallPriceSourceSchema,\n requestModel: Identity,\n selector: Identity,\n match: Schema.Literals([\"exact\", \"provider-wildcard\"]),\n ratesPerMTok: AdapterCallPriceRatesSchema,\n});\nconst AdapterCallPriceChargeSchema = Schema.Struct({\n bucket: Schema.Literals(AdapterCallPriceBuckets),\n tokens: NonNegativeSafeIntegerSchema,\n ratePerMTok: NullableRateSchema,\n amount: CanonicalDecimalSchema,\n});\nconst AdapterCallPriceMissingSchema = Schema.Struct({\n bucket: Schema.Literals(AdapterCallPriceBuckets),\n reason: Schema.Literals([\"tokens-unknown\", \"rate-unknown\"]),\n});\nexport const AdapterCallPriceReceiptSchema = Schema.Struct({\n kind: Schema.Literal(\"adapter-call-price-estimate\"),\n callId: Identity,\n state: Schema.Literals([\"complete\", \"partial\"]),\n amount: CanonicalDecimalSchema,\n currency: Schema.Literal(\"USD\"),\n source: Schema.Struct({ kind: Schema.Literal(\"estimated\"), id: Identity }),\n pricing: AdapterCallPricingSchema,\n charges: Schema.NonEmptyArray(AdapterCallPriceChargeSchema),\n missing: Schema.Array(AdapterCallPriceMissingSchema),\n});\nexport type AdapterCallPriceReceipt = Schema.Schema.Type<typeof AdapterCallPriceReceiptSchema>;\nexport const AdapterUsageModelSlotSchema = Schema.String.check(Schema.isPattern(/^[A-Za-z][A-Za-z0-9_-]{0,63}$(?![\\s\\S])/u));\nconst AdapterUsageCallRevision2Schema = Schema.Struct({\n ...AdapterUsageCallRevision1Schema.fields,\n route: AdapterUsageRouteSchema,\n cost: Schema.NullOr(AdapterUsageReportedCostSchema),\n});\nexport const AdapterUsageCallSchema = Schema.Struct({\n ...AdapterUsageCallRevision2Schema.fields,\n modelSlot: Schema.NullOr(AdapterUsageModelSlotSchema),\n});\nexport type AdapterUsageCall = Schema.Schema.Type<typeof AdapterUsageCallSchema>;\nexport const AdapterUsageLimits = Object.freeze({ maximumCalls: 4000 });\nexport const AdapterUsageAttachmentRevision1Schema = Schema.Struct({\n collection: CollectionStateSchema,\n calls: Schema.Array(AdapterUsageCallRevision1Schema),\n});\nexport type AdapterUsageAttachmentRevision1 = Schema.Schema.Type<typeof AdapterUsageAttachmentRevision1Schema>;\nexport const AdapterUsageAttachmentRevision2Schema = Schema.Struct({\n collection: CollectionStateSchema,\n calls: Schema.Array(AdapterUsageCallRevision2Schema),\n priceReceipts: Schema.Array(AdapterCallPriceReceiptSchema),\n});\nexport type AdapterUsageAttachmentRevision2 = Schema.Schema.Type<typeof AdapterUsageAttachmentRevision2Schema>;\nexport const AdapterUsageAttachmentSchema = Schema.Struct({\n collection: CollectionStateSchema,\n calls: Schema.Array(AdapterUsageCallSchema),\n /** Estimates only for calls without a reported cost and with at least one proven charge. */\n priceReceipts: Schema.Array(AdapterCallPriceReceiptSchema),\n});\nexport type AdapterUsageAttachment = Schema.Schema.Type<typeof AdapterUsageAttachmentSchema>;\nexport interface ReadableAdapterUsageAttachment {\n readonly collection: AdapterUsageAttachment[\"collection\"];\n readonly calls: AdapterUsageAttachment[\"calls\"];\n /** null means revision 1 contained no call-bound estimate proofs. */\n readonly priceReceipts: AdapterUsageAttachment[\"priceReceipts\"] | null;\n}\n/** Valid revision 1 facts remain readable without rewriting bytes or repricing historical calls. */\nexport function projectAdapterUsageRevision1(value: AdapterUsageAttachmentRevision1): ReadableAdapterUsageAttachment {\n return Object.freeze({\n collection: value.collection,\n calls: Object.freeze(value.calls.map((call) => Object.freeze({\n ...call,\n modelSlot: null,\n route: Object.freeze({ transportProvider: null, endpointId: null }),\n cost: null,\n }))),\n priceReceipts: null,\n });\n}\n/** Revision 2 preserves reported costs and sealed estimates while leaving purpose unknown. */\nexport function projectAdapterUsageRevision2(value: AdapterUsageAttachmentRevision2): ReadableAdapterUsageAttachment {\n return Object.freeze({\n ...value,\n calls: Object.freeze(value.calls.map((call) => Object.freeze({ ...call, modelSlot: null }))),\n });\n}\nfunction pricingDigestInput(pricing: AdapterCallPriceReceipt[\"pricing\"]): object {\n const source = { kind: pricing.source.kind, id: pricing.source.id, asOf: pricing.source.asOf };\n return {\n basis: pricing.basis,\n currency: \"USD\",\n source,\n requestModel: pricing.requestModel,\n selector: pricing.selector,\n match: pricing.match,\n ratesPerMTok: pricing.ratesPerMTok,\n };\n}\nfunction callTokens(call: AdapterUsageCall, bucket: (typeof AdapterCallPriceBuckets)[number]): number | null {\n switch (bucket) {\n case \"input\": return call.inputTokens;\n case \"output\": return call.outputTokens;\n case \"cache-read\": return call.cacheReadTokens;\n case \"cache-write\": return call.cacheWriteTokens;\n }\n}\nfunction bucketRate(rates: AdapterCallPriceReceipt[\"pricing\"][\"ratesPerMTok\"], bucket: (typeof AdapterCallPriceBuckets)[number]): string | null {\n switch (bucket) {\n case \"input\": return rates.input;\n case \"output\": return rates.output;\n case \"cache-read\": return rates.cacheRead;\n case \"cache-write\": return rates.cacheWrite;\n }\n}\nfunction receiptIssue(call: AdapterUsageCall, receipt: AdapterCallPriceReceipt): RecordAttachmentIssue | undefined {\n if (receipt.callId !== call.callId || call.cost !== null || receipt.pricing.requestModel !== call.model ||\n receipt.source.id !== receipt.pricing.source.id ||\n adapterCallPricingProfileDigest(pricingDigestInput(receipt.pricing)) !== receipt.pricing.source.profileDigest) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"pricing\"]);\n }\n const charges = new Map(receipt.charges.map((charge) => [charge.bucket, charge]));\n const missing = new Map(receipt.missing.map((entry) => [entry.bucket, entry]));\n if (charges.size !== receipt.charges.length || missing.size !== receipt.missing.length ||\n AdapterCallPriceBuckets.some((bucket) => Number(charges.has(bucket)) + Number(missing.has(bucket)) !== 1)) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"charges\"]);\n }\n for (const bucket of AdapterCallPriceBuckets) {\n const tokens = callTokens(call, bucket);\n const expectedRate = bucketRate(receipt.pricing.ratesPerMTok, bucket);\n const charge = charges.get(bucket);\n const absent = missing.get(bucket);\n if (charge !== undefined) {\n if (tokens === null || charge.tokens !== tokens || charge.ratePerMTok !== expectedRate ||\n (tokens > 0 && expectedRate === null) ||\n charge.amount !== (expectedRate === null ? \"0\" : multiplyCanonicalDecimalPerMillion(expectedRate, tokens))) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"charges\"]);\n }\n }\n else if (tokens === null\n ? absent?.reason !== \"tokens-unknown\"\n : tokens === 0 || expectedRate !== null || absent?.reason !== \"rate-unknown\") {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"missing\"]);\n }\n }\n const state = receipt.missing.length === 0 ? \"complete\" : \"partial\";\n const amount = addCanonicalDecimals(receipt.charges.map((charge) => charge.amount));\n if (receipt.state !== state || receipt.amount !== amount) {\n return recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"state\"]);\n }\n return undefined;\n}\nexport function validateAdapterUsageCalls(calls: readonly AdapterUsageCall[]): readonly RecordAttachmentIssue[] {\n const seen = new Set<string>();\n for (const call of calls) {\n const buckets = [call.inputTokens, call.cacheReadTokens, call.cacheWriteTokens];\n const known = buckets.filter((value): value is number => value !== null);\n const sum = known.reduce((total, value) => total + value, 0);\n if (!Number.isSafeInteger(sum) || (call.inputTotalTokens !== null &&\n (sum > call.inputTotalTokens || (known.length === 3 && sum !== call.inputTotalTokens)))) {\n return [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"calls\", \"inputTotalTokens\"])];\n }\n if (seen.has(call.callId) || (call.retryOf !== null && !seen.has(call.retryOf))) {\n return [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"calls\"])];\n }\n seen.add(call.callId);\n }\n return calls.length > AdapterUsageLimits.maximumCalls\n ? [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"calls\"])]\n : [];\n}\nexport function validateAdapterUsageAttachment(value: ReadableAdapterUsageAttachment): readonly RecordAttachmentIssue[] {\n const callIssues = validateAdapterUsageCalls(value.calls);\n if (callIssues.length > 0 || value.priceReceipts === null)\n return callIssues;\n const calls = new Map(value.calls.map((call) => [call.callId, call]));\n const seen = new Set<string>();\n for (const receipt of value.priceReceipts) {\n const call = calls.get(receipt.callId);\n if (call === undefined || seen.has(receipt.callId)) {\n return [recordAttachmentIssue(\"record-attachment-schema-invalid\", [\"priceReceipts\", \"callId\"])];\n }\n seen.add(receipt.callId);\n const issue = receiptIssue(call, receipt);\n if (issue !== undefined)\n return [issue];\n }\n return [];\n}\n"]}
@@ -41,7 +41,9 @@ export declare const AdapterCallPriceReceiptSchema: Schema.Struct<{
41
41
  }>>;
42
42
  }>;
43
43
  export type AdapterCallPriceReceipt = Schema.Schema.Type<typeof AdapterCallPriceReceiptSchema>;
44
+ export declare const AdapterUsageModelSlotSchema: Schema.String;
44
45
  export declare const AdapterUsageCallSchema: Schema.Struct<{
46
+ readonly modelSlot: Schema.NullOr<Schema.String>;
45
47
  readonly route: Schema.Struct<{
46
48
  readonly transportProvider: Schema.NullOr<Schema.String>;
47
49
  readonly endpointId: Schema.NullOr<Schema.String>;
@@ -97,6 +99,86 @@ export declare const AdapterUsageAttachmentRevision1Schema: Schema.Struct<{
97
99
  }>>;
98
100
  }>;
99
101
  export type AdapterUsageAttachmentRevision1 = Schema.Schema.Type<typeof AdapterUsageAttachmentRevision1Schema>;
102
+ export declare const AdapterUsageAttachmentRevision2Schema: Schema.Struct<{
103
+ readonly collection: Schema.Union<readonly [Schema.Struct<{
104
+ readonly state: Schema.Literal<"complete">;
105
+ readonly limitations: Schema.Tuple<readonly []>;
106
+ }>, Schema.Struct<{
107
+ readonly state: Schema.Literal<"partial">;
108
+ readonly limitations: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
109
+ readonly code: Schema.Literals<readonly ["capture-failed", "capture-interrupted"]>;
110
+ readonly stage: Schema.String;
111
+ }>, Schema.Struct<{
112
+ readonly code: Schema.Literals<readonly ["collection-cap-reached", "unsupported-input"]>;
113
+ readonly omittedAtLeast: Schema.Number;
114
+ }>]>>;
115
+ }>]>;
116
+ readonly calls: Schema.$Array<Schema.Struct<{
117
+ readonly route: Schema.Struct<{
118
+ readonly transportProvider: Schema.NullOr<Schema.String>;
119
+ readonly endpointId: Schema.NullOr<Schema.String>;
120
+ }>;
121
+ readonly cost: Schema.NullOr<Schema.Struct<{
122
+ readonly amount: Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>;
123
+ readonly currency: Schema.Codec<import("../source-receipt/model.cjs").CurrencyCode, string, never, never>;
124
+ readonly source: Schema.Struct<{
125
+ readonly kind: Schema.Literal<"reported">;
126
+ readonly id: Schema.String;
127
+ }>;
128
+ }>>;
129
+ readonly callId: Schema.String;
130
+ readonly retryOf: Schema.NullOr<Schema.String>;
131
+ readonly provider: Schema.NullOr<Schema.String>;
132
+ readonly model: Schema.NullOr<Schema.String>;
133
+ readonly status: Schema.Literals<readonly ["succeeded", "failed", "cancelled", "unknown"]>;
134
+ readonly inputTokens: Schema.NullOr<Schema.Number>;
135
+ readonly inputTotalTokens: Schema.NullOr<Schema.Number>;
136
+ readonly outputTokens: Schema.NullOr<Schema.Number>;
137
+ readonly cacheReadTokens: Schema.NullOr<Schema.Number>;
138
+ readonly cacheWriteTokens: Schema.NullOr<Schema.Number>;
139
+ }>>;
140
+ readonly priceReceipts: Schema.$Array<Schema.Struct<{
141
+ readonly kind: Schema.Literal<"adapter-call-price-estimate">;
142
+ readonly callId: Schema.String;
143
+ readonly state: Schema.Literals<readonly ["complete", "partial"]>;
144
+ readonly amount: Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>;
145
+ readonly currency: Schema.Literal<"USD">;
146
+ readonly source: Schema.Struct<{
147
+ readonly kind: Schema.Literal<"estimated">;
148
+ readonly id: Schema.String;
149
+ }>;
150
+ readonly pricing: Schema.Struct<{
151
+ readonly basis: Schema.Literal<"catalog-reference">;
152
+ readonly currency: Schema.Literal<"USD">;
153
+ readonly source: Schema.Struct<{
154
+ readonly kind: Schema.Literal<"configured-profile">;
155
+ readonly id: Schema.String;
156
+ readonly asOf: Schema.NullOr<Schema.Number>;
157
+ readonly profileDigest: Schema.String;
158
+ }>;
159
+ readonly requestModel: Schema.String;
160
+ readonly selector: Schema.String;
161
+ readonly match: Schema.Literals<readonly ["exact", "provider-wildcard"]>;
162
+ readonly ratesPerMTok: Schema.Struct<{
163
+ readonly input: Schema.NullOr<Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>>;
164
+ readonly output: Schema.NullOr<Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>>;
165
+ readonly cacheRead: Schema.NullOr<Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>>;
166
+ readonly cacheWrite: Schema.NullOr<Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>>;
167
+ }>;
168
+ }>;
169
+ readonly charges: Schema.NonEmptyArray<Schema.Struct<{
170
+ readonly bucket: Schema.Literals<readonly ["input", "output", "cache-read", "cache-write"]>;
171
+ readonly tokens: Schema.Number;
172
+ readonly ratePerMTok: Schema.NullOr<Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>>;
173
+ readonly amount: Schema.Codec<import("../source-receipt/model.cjs").CanonicalDecimal, string, never, never>;
174
+ }>>;
175
+ readonly missing: Schema.$Array<Schema.Struct<{
176
+ readonly bucket: Schema.Literals<readonly ["input", "output", "cache-read", "cache-write"]>;
177
+ readonly reason: Schema.Literals<readonly ["tokens-unknown", "rate-unknown"]>;
178
+ }>>;
179
+ }>>;
180
+ }>;
181
+ export type AdapterUsageAttachmentRevision2 = Schema.Schema.Type<typeof AdapterUsageAttachmentRevision2Schema>;
100
182
  export declare const AdapterUsageAttachmentSchema: Schema.Struct<{
101
183
  readonly collection: Schema.Union<readonly [Schema.Struct<{
102
184
  readonly state: Schema.Literal<"complete">;
@@ -112,6 +194,7 @@ export declare const AdapterUsageAttachmentSchema: Schema.Struct<{
112
194
  }>]>>;
113
195
  }>]>;
114
196
  readonly calls: Schema.$Array<Schema.Struct<{
197
+ readonly modelSlot: Schema.NullOr<Schema.String>;
115
198
  readonly route: Schema.Struct<{
116
199
  readonly transportProvider: Schema.NullOr<Schema.String>;
117
200
  readonly endpointId: Schema.NullOr<Schema.String>;
@@ -186,5 +269,7 @@ export interface ReadableAdapterUsageAttachment {
186
269
  }
187
270
  /** Valid revision 1 facts remain readable without rewriting bytes or repricing historical calls. */
188
271
  export declare function projectAdapterUsageRevision1(value: AdapterUsageAttachmentRevision1): ReadableAdapterUsageAttachment;
272
+ /** Revision 2 preserves reported costs and sealed estimates while leaving purpose unknown. */
273
+ export declare function projectAdapterUsageRevision2(value: AdapterUsageAttachmentRevision2): ReadableAdapterUsageAttachment;
189
274
  export declare function validateAdapterUsageCalls(calls: readonly AdapterUsageCall[]): readonly RecordAttachmentIssue[];
190
275
  export declare function validateAdapterUsageAttachment(value: ReadableAdapterUsageAttachment): readonly RecordAttachmentIssue[];