@sixb/core 0.1.11 → 0.1.13

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 (910) hide show
  1. package/dist/actions/builders/params.d.ts +1 -22
  2. package/dist/actions/builders/params.d.ts.map +1 -1
  3. package/dist/actions/index.d.ts +2 -2
  4. package/dist/actions/index.d.ts.map +1 -1
  5. package/dist/actions/index.js +33 -30
  6. package/dist/actions/index.js.map +1 -1
  7. package/dist/actions/read-facade.d.ts +14 -16
  8. package/dist/actions/read-facade.d.ts.map +1 -1
  9. package/dist/actions/request.d.ts.map +1 -1
  10. package/dist/actions/run-dispatch.d.ts +2 -0
  11. package/dist/actions/run-dispatch.d.ts.map +1 -1
  12. package/dist/actions/types/context.d.ts +18 -31
  13. package/dist/actions/types/context.d.ts.map +1 -1
  14. package/dist/actions/types/params.d.ts +11 -44
  15. package/dist/actions/types/params.d.ts.map +1 -1
  16. package/dist/actions/validation.d.ts.map +1 -1
  17. package/dist/actions/worker.js +3 -2
  18. package/dist/actions/worker.js.map +2 -2
  19. package/dist/agents/errors.d.ts +1 -1
  20. package/dist/agents/errors.d.ts.map +1 -1
  21. package/dist/agents/execution.d.ts +15 -9
  22. package/dist/agents/execution.d.ts.map +1 -1
  23. package/dist/agents/ids.d.ts +2 -0
  24. package/dist/agents/ids.d.ts.map +1 -1
  25. package/dist/agents/index.d.ts +1 -1
  26. package/dist/agents/index.d.ts.map +1 -1
  27. package/dist/agents/index.js +52 -44
  28. package/dist/agents/index.js.map +1 -1
  29. package/dist/agents/request.d.ts.map +1 -1
  30. package/dist/agents/sandbox.d.ts +5 -0
  31. package/dist/agents/sandbox.d.ts.map +1 -0
  32. package/dist/agents/streams/index.js +4 -3
  33. package/dist/agents/streams/index.js.map +1 -1
  34. package/dist/agents/streams/internal.js +4 -3
  35. package/dist/agents/streams/internal.js.map +1 -1
  36. package/dist/agents/validation.d.ts.map +1 -1
  37. package/dist/assert-never.d.ts +6 -0
  38. package/dist/assert-never.d.ts.map +1 -0
  39. package/dist/auth/client-address.d.ts +3 -0
  40. package/dist/auth/client-address.d.ts.map +1 -0
  41. package/dist/auth/csrf.d.ts +5 -1
  42. package/dist/auth/csrf.d.ts.map +1 -1
  43. package/dist/auth/index.d.ts +3 -2
  44. package/dist/auth/index.d.ts.map +1 -1
  45. package/dist/auth/index.js +15 -7
  46. package/dist/auth/index.js.map +1 -1
  47. package/dist/auth/runtime.d.ts +58 -41
  48. package/dist/auth/runtime.d.ts.map +1 -1
  49. package/dist/auth/session-cache.d.ts +10 -3
  50. package/dist/auth/session-cache.d.ts.map +1 -1
  51. package/dist/auth/sessions.d.ts +12 -0
  52. package/dist/auth/sessions.d.ts.map +1 -1
  53. package/dist/auth/strategy.js +1 -1
  54. package/dist/auth/types.d.ts +8 -15
  55. package/dist/auth/types.d.ts.map +1 -1
  56. package/dist/authorization/index.js +5 -4
  57. package/dist/authorization/index.js.map +1 -1
  58. package/dist/bootstrap/index.d.ts +1 -1
  59. package/dist/bootstrap/index.d.ts.map +1 -1
  60. package/dist/bootstrap/index.js +54 -48
  61. package/dist/bootstrap/index.js.map +1 -1
  62. package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
  63. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  64. package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
  65. package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
  66. package/dist/{chunk-d63nnr5b.js → chunk-04h4t2b5.js} +39 -53
  67. package/dist/{chunk-d63nnr5b.js.map → chunk-04h4t2b5.js.map} +5 -6
  68. package/dist/chunk-2fv8sajb.js +84 -0
  69. package/dist/chunk-2fv8sajb.js.map +10 -0
  70. package/dist/{chunk-1yefycb1.js → chunk-2hbhn1ff.js} +2 -2
  71. package/dist/{chunk-ap0g1g74.js → chunk-3nx8vj5a.js} +43 -6
  72. package/dist/chunk-3nx8vj5a.js.map +12 -0
  73. package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
  74. package/dist/{chunk-0y39rgsb.js → chunk-4tnrzqqh.js} +1 -1
  75. package/dist/chunk-58geavnf.js +29 -0
  76. package/dist/chunk-58geavnf.js.map +10 -0
  77. package/dist/{chunk-01kj2pbh.js → chunk-63fp9x3q.js} +97 -67
  78. package/dist/chunk-63fp9x3q.js.map +20 -0
  79. package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
  80. package/dist/chunk-69266efg.js.map +12 -0
  81. package/dist/{chunk-sepyxgpc.js → chunk-693f3zn8.js} +70 -28
  82. package/dist/chunk-693f3zn8.js.map +15 -0
  83. package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
  84. package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
  85. package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
  86. package/dist/{chunk-a0e6x5hd.js → chunk-898y24dd.js} +165 -90
  87. package/dist/chunk-898y24dd.js.map +15 -0
  88. package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
  89. package/dist/chunk-91kcnbf0.js.map +10 -0
  90. package/dist/{chunk-z0s4axeh.js → chunk-91wthfwe.js} +97 -21
  91. package/dist/{chunk-z0s4axeh.js.map → chunk-91wthfwe.js.map} +8 -7
  92. package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
  93. package/dist/chunk-96yw3pwd.js.map +10 -0
  94. package/dist/chunk-98cw09sw.js.map +2 -2
  95. package/dist/{chunk-g00bfdq6.js → chunk-9pfw47qx.js} +318 -257
  96. package/dist/chunk-9pfw47qx.js.map +44 -0
  97. package/dist/{chunk-5hz0fnca.js → chunk-a0073121.js} +64 -60
  98. package/dist/chunk-a0073121.js.map +12 -0
  99. package/dist/{chunk-cfvakeax.js → chunk-a69fkrtr.js} +5 -5
  100. package/dist/{chunk-72w2pxk7.js → chunk-bdhfn0ww.js} +11 -3
  101. package/dist/{chunk-72w2pxk7.js.map → chunk-bdhfn0ww.js.map} +3 -3
  102. package/dist/chunk-bep5rrdq.js +81 -0
  103. package/dist/chunk-bep5rrdq.js.map +10 -0
  104. package/dist/chunk-bxx3ms5t.js +29 -0
  105. package/dist/chunk-bxx3ms5t.js.map +10 -0
  106. package/dist/{chunk-v2vcg0w6.js → chunk-cbn96bve.js} +2 -2
  107. package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
  108. package/dist/chunk-cd234ba4.js.map +14 -0
  109. package/dist/{chunk-gq8vhakp.js → chunk-cvrbhvtr.js} +292 -104
  110. package/dist/chunk-cvrbhvtr.js.map +46 -0
  111. package/dist/{chunk-ms2tmn1k.js → chunk-d8yes9yx.js} +355 -100
  112. package/dist/chunk-d8yes9yx.js.map +20 -0
  113. package/dist/{chunk-pr2h4bv4.js → chunk-darm7eeg.js} +9 -9
  114. package/dist/{chunk-pr2h4bv4.js.map → chunk-darm7eeg.js.map} +3 -3
  115. package/dist/chunk-dmn70ztd.js.map +2 -2
  116. package/dist/chunk-drz59ve0.js +57 -0
  117. package/dist/chunk-drz59ve0.js.map +10 -0
  118. package/dist/{chunk-skz0hst3.js → chunk-dsfw1bdr.js} +6 -86
  119. package/dist/{chunk-skz0hst3.js.map → chunk-dsfw1bdr.js.map} +3 -3
  120. package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
  121. package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
  122. package/dist/chunk-ffwvdgk1.js +85 -0
  123. package/dist/chunk-ffwvdgk1.js.map +10 -0
  124. package/dist/chunk-gbcrz0gr.js +552 -0
  125. package/dist/chunk-gbcrz0gr.js.map +17 -0
  126. package/dist/{chunk-gqm76kse.js → chunk-gc226ten.js} +434 -177
  127. package/dist/chunk-gc226ten.js.map +62 -0
  128. package/dist/{chunk-awbhdqyc.js → chunk-gmt22nxx.js} +10 -16
  129. package/dist/chunk-gmt22nxx.js.map +10 -0
  130. package/dist/chunk-h89wz928.js +42 -0
  131. package/dist/chunk-h89wz928.js.map +10 -0
  132. package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
  133. package/dist/chunk-hgqpcmyr.js.map +12 -0
  134. package/dist/{chunk-gqh45d2n.js → chunk-ht4a7mjg.js} +76 -6
  135. package/dist/chunk-ht4a7mjg.js.map +15 -0
  136. package/dist/{chunk-x9m9x2eq.js → chunk-jhyc777j.js} +3 -3
  137. package/dist/{chunk-fh8kgex1.js → chunk-jmwy25mf.js} +76 -58
  138. package/dist/{chunk-fh8kgex1.js.map → chunk-jmwy25mf.js.map} +3 -3
  139. package/dist/{chunk-rb1xx120.js → chunk-k4kkp58d.js} +25 -8
  140. package/dist/chunk-k4kkp58d.js.map +11 -0
  141. package/dist/{chunk-jsy70480.js → chunk-ky7zpbtt.js} +366 -98
  142. package/dist/chunk-ky7zpbtt.js.map +19 -0
  143. package/dist/chunk-m4ehq95f.js +9 -0
  144. package/dist/chunk-m4ehq95f.js.map +10 -0
  145. package/dist/{chunk-17kfctj6.js → chunk-m8zkvep1.js} +2 -2
  146. package/dist/{chunk-z0271qkp.js → chunk-mdnw7nj8.js} +8 -6
  147. package/dist/chunk-mdnw7nj8.js.map +15 -0
  148. package/dist/{chunk-4zhmdsx6.js → chunk-mf6hwpzh.js} +121 -28
  149. package/dist/{chunk-4zhmdsx6.js.map → chunk-mf6hwpzh.js.map} +6 -6
  150. package/dist/{chunk-z30bv4ga.js → chunk-mr60an99.js} +5 -3
  151. package/dist/{chunk-z30bv4ga.js.map → chunk-mr60an99.js.map} +3 -3
  152. package/dist/chunk-n33e8dz8.js +191 -0
  153. package/dist/chunk-n33e8dz8.js.map +11 -0
  154. package/dist/chunk-p1683c0v.js +104 -0
  155. package/dist/chunk-p1683c0v.js.map +11 -0
  156. package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
  157. package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
  158. package/dist/chunk-rdghfsss.js.map +10 -0
  159. package/dist/{chunk-ftv470j8.js → chunk-rqtdtm43.js} +365 -67
  160. package/dist/chunk-rqtdtm43.js.map +50 -0
  161. package/dist/{chunk-dz5h08xv.js → chunk-rzcjp5m2.js} +28 -9
  162. package/dist/chunk-rzcjp5m2.js.map +25 -0
  163. package/dist/{chunk-f4w3yp4f.js → chunk-rzkr70gr.js} +108 -21
  164. package/dist/chunk-rzkr70gr.js.map +13 -0
  165. package/dist/{chunk-3ckk0xfj.js → chunk-s24qbp32.js} +18 -13
  166. package/dist/{chunk-3ckk0xfj.js.map → chunk-s24qbp32.js.map} +3 -3
  167. package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
  168. package/dist/chunk-t6f3tdnr.js.map +10 -0
  169. package/dist/{chunk-93csa55g.js → chunk-tw03bsmb.js} +11 -5
  170. package/dist/chunk-tw03bsmb.js.map +11 -0
  171. package/dist/chunk-vef6qa14.js +363 -0
  172. package/dist/chunk-vef6qa14.js.map +14 -0
  173. package/dist/{chunk-92vk7gta.js → chunk-vn3yh259.js} +1 -1
  174. package/dist/{chunk-g91qxjj0.js → chunk-w9bp61e7.js} +5 -5
  175. package/dist/{chunk-b19g04jk.js → chunk-xgptywp0.js} +4 -3
  176. package/dist/chunk-xgptywp0.js.map +11 -0
  177. package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
  178. package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
  179. package/dist/{chunk-1824gssz.js → chunk-y487ywrv.js} +4 -4
  180. package/dist/{chunk-7apz6hg4.js → chunk-y6vnvayj.js} +8 -4
  181. package/dist/chunk-y6vnvayj.js.map +10 -0
  182. package/dist/{chunk-wf88w4kp.js → chunk-ypj2wqtj.js} +3 -6
  183. package/dist/{chunk-wf88w4kp.js.map → chunk-ypj2wqtj.js.map} +4 -4
  184. package/dist/chunk-z3y5kg1x.js +14 -0
  185. package/dist/chunk-z3y5kg1x.js.map +10 -0
  186. package/dist/{chunk-38zv5rkr.js → chunk-z9h698s8.js} +1 -1
  187. package/dist/{chunk-38zv5rkr.js.map → chunk-z9h698s8.js.map} +2 -2
  188. package/dist/{chunk-8vj0rjgs.js → chunk-zdkcdshk.js} +3 -36
  189. package/dist/{chunk-8vj0rjgs.js.map → chunk-zdkcdshk.js.map} +3 -4
  190. package/dist/{chunk-358caqf5.js → chunk-znw0zvy4.js} +2 -2
  191. package/dist/datasets/validation.d.ts +4 -0
  192. package/dist/datasets/validation.d.ts.map +1 -1
  193. package/dist/datasets/write.d.ts.map +1 -1
  194. package/dist/datasets/write.js +5 -4
  195. package/dist/datasets/write.js.map +1 -1
  196. package/dist/edits/types.d.ts +19 -19
  197. package/dist/edits/types.d.ts.map +1 -1
  198. package/dist/error-reporting/capability.d.ts +3 -2
  199. package/dist/error-reporting/capability.d.ts.map +1 -1
  200. package/dist/error-reporting/internal.js +5 -4
  201. package/dist/error-reporting/internal.js.map +1 -1
  202. package/dist/error-reporting/reports.d.ts +10 -0
  203. package/dist/error-reporting/reports.d.ts.map +1 -1
  204. package/dist/error-reporting/types.d.ts +10 -2
  205. package/dist/error-reporting/types.d.ts.map +1 -1
  206. package/dist/errors/catalog.d.ts +16 -0
  207. package/dist/errors/catalog.d.ts.map +1 -1
  208. package/dist/errors/failure-message.d.ts +8 -0
  209. package/dist/errors/failure-message.d.ts.map +1 -0
  210. package/dist/errors/internal.d.ts.map +1 -1
  211. package/dist/errors/internal.js +3 -2
  212. package/dist/errors/internal.js.map +1 -1
  213. package/dist/events/envelope.d.ts +0 -12
  214. package/dist/events/envelope.d.ts.map +1 -1
  215. package/dist/events/index.d.ts +1 -1
  216. package/dist/events/index.d.ts.map +1 -1
  217. package/dist/events/index.js +5 -4
  218. package/dist/events/index.js.map +1 -1
  219. package/dist/events/service.d.ts +1 -2
  220. package/dist/events/service.d.ts.map +1 -1
  221. package/dist/events/toStoredEvent.d.ts +1 -2
  222. package/dist/events/toStoredEvent.d.ts.map +1 -1
  223. package/dist/events/types/index.d.ts +2 -1
  224. package/dist/events/types/index.d.ts.map +1 -1
  225. package/dist/execution/agent.d.ts +1 -2
  226. package/dist/execution/agent.d.ts.map +1 -1
  227. package/dist/execution/agent.js +48 -43
  228. package/dist/execution/agent.js.map +1 -1
  229. package/dist/execution/authorization.d.ts.map +1 -1
  230. package/dist/execution/authorized-object-reader.d.ts +3 -0
  231. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  232. package/dist/execution/kernel-operation.d.ts +4 -0
  233. package/dist/execution/kernel-operation.d.ts.map +1 -0
  234. package/dist/execution/primitive.d.ts +1 -2
  235. package/dist/execution/primitive.d.ts.map +1 -1
  236. package/dist/execution/primitive.js +47 -42
  237. package/dist/execution/primitive.js.map +3 -3
  238. package/dist/execution/request.d.ts +1 -2
  239. package/dist/execution/request.d.ts.map +1 -1
  240. package/dist/execution/request.js +48 -43
  241. package/dist/execution/request.js.map +3 -3
  242. package/dist/execution/types.d.ts +6 -0
  243. package/dist/execution/types.d.ts.map +1 -1
  244. package/dist/index.d.ts +20 -10
  245. package/dist/index.d.ts.map +1 -1
  246. package/dist/index.js +77 -62
  247. package/dist/index.js.map +1 -1
  248. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  249. package/dist/lake-storage/index.js +5 -4
  250. package/dist/lake-storage/index.js.map +1 -1
  251. package/dist/maintenance/ontology-maintenance.d.ts +11 -1
  252. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  253. package/dist/materialization/errors.d.ts +4 -2
  254. package/dist/materialization/errors.d.ts.map +1 -1
  255. package/dist/materialization/events.d.ts +27 -2
  256. package/dist/materialization/events.d.ts.map +1 -1
  257. package/dist/materialization/index.d.ts +1 -0
  258. package/dist/materialization/index.d.ts.map +1 -1
  259. package/dist/materialization/index.js +3 -3
  260. package/dist/materialization/model.d.ts +2 -0
  261. package/dist/materialization/model.d.ts.map +1 -1
  262. package/dist/materialization/vectors.d.ts +19 -0
  263. package/dist/materialization/vectors.d.ts.map +1 -0
  264. package/dist/materializer/context.d.ts.map +1 -1
  265. package/dist/materializer/edits/commit.d.ts.map +1 -1
  266. package/dist/materializer/edits/operations.d.ts +2 -1
  267. package/dist/materializer/edits/operations.d.ts.map +1 -1
  268. package/dist/materializer/edits/plan.d.ts +2 -2
  269. package/dist/materializer/edits/plan.d.ts.map +1 -1
  270. package/dist/materializer/edits/user-refs.d.ts +30 -0
  271. package/dist/materializer/edits/user-refs.d.ts.map +1 -0
  272. package/dist/materializer/edits/vector-authority.d.ts +6 -0
  273. package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
  274. package/dist/materializer/edits/vectors.d.ts +6 -0
  275. package/dist/materializer/edits/vectors.d.ts.map +1 -0
  276. package/dist/materializer/effective/build-events.d.ts +2 -2
  277. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  278. package/dist/materializer/effective/validate.d.ts.map +1 -1
  279. package/dist/materializer/effective/vector-indexing.d.ts +7 -0
  280. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
  281. package/dist/materializer/effective/vectors.d.ts +6 -0
  282. package/dist/materializer/effective/vectors.d.ts.map +1 -0
  283. package/dist/materializer/execution/scope.d.ts +11 -3
  284. package/dist/materializer/execution/scope.d.ts.map +1 -1
  285. package/dist/materializer/execution/work-executor.d.ts +2 -1
  286. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  287. package/dist/materializer/index.js +30 -27
  288. package/dist/materializer/index.js.map +1 -1
  289. package/dist/materializer/projections/replacement-plan.d.ts +2 -0
  290. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  291. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  292. package/dist/materializer/telemetry/plan.d.ts +2 -2
  293. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  294. package/dist/models/catalog-index.d.ts +15 -0
  295. package/dist/models/catalog-index.d.ts.map +1 -0
  296. package/dist/models/catalog.d.ts +27 -6
  297. package/dist/models/catalog.d.ts.map +1 -1
  298. package/dist/models/decision/catalog.d.ts +12 -0
  299. package/dist/models/decision/catalog.d.ts.map +1 -0
  300. package/dist/models/decision/errors.d.ts +7 -0
  301. package/dist/models/decision/errors.d.ts.map +1 -0
  302. package/dist/models/decision/output.d.ts +50 -0
  303. package/dist/models/decision/output.d.ts.map +1 -0
  304. package/dist/models/decision/questions.d.ts +14 -0
  305. package/dist/models/decision/questions.d.ts.map +1 -0
  306. package/dist/models/decision/runtime.d.ts +7 -0
  307. package/dist/models/decision/runtime.d.ts.map +1 -0
  308. package/dist/models/decision/types.d.ts +92 -0
  309. package/dist/models/decision/types.d.ts.map +1 -0
  310. package/dist/models/decision/validation.d.ts +7 -0
  311. package/dist/models/decision/validation.d.ts.map +1 -0
  312. package/dist/models/definitions.d.ts +1 -1
  313. package/dist/models/definitions.d.ts.map +1 -1
  314. package/dist/models/embedding-model.d.ts +60 -0
  315. package/dist/models/embedding-model.d.ts.map +1 -0
  316. package/dist/models/execution/binding.d.ts +2 -0
  317. package/dist/models/execution/binding.d.ts.map +1 -1
  318. package/dist/models/execution/embedding.d.ts +5 -0
  319. package/dist/models/execution/embedding.d.ts.map +1 -0
  320. package/dist/models/execution/index.js +32 -27
  321. package/dist/models/execution/index.js.map +1 -1
  322. package/dist/models/execution/model-call-recorder.d.ts +5 -1
  323. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  324. package/dist/models/execution/session.d.ts +21 -0
  325. package/dist/models/execution/session.d.ts.map +1 -0
  326. package/dist/models/execution.d.ts.map +1 -1
  327. package/dist/models/generation-types.d.ts +2 -0
  328. package/dist/models/generation-types.d.ts.map +1 -1
  329. package/dist/models/index.d.ts +9 -1
  330. package/dist/models/index.d.ts.map +1 -1
  331. package/dist/models/index.js +17 -7
  332. package/dist/models/index.js.map +1 -1
  333. package/dist/models/pricing.d.ts +3 -2
  334. package/dist/models/pricing.d.ts.map +1 -1
  335. package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
  336. package/dist/objects/execution.d.ts +21 -26
  337. package/dist/objects/execution.d.ts.map +1 -1
  338. package/dist/objects/index.js +33 -30
  339. package/dist/objects/index.js.map +1 -1
  340. package/dist/objects/query/executor.d.ts +3 -0
  341. package/dist/objects/query/executor.d.ts.map +1 -1
  342. package/dist/objects/query/index.d.ts +2 -0
  343. package/dist/objects/query/index.d.ts.map +1 -1
  344. package/dist/objects/query/index.js +42 -30
  345. package/dist/objects/query/index.js.map +1 -1
  346. package/dist/objects/query/ir.d.ts +14 -3
  347. package/dist/objects/query/ir.d.ts.map +1 -1
  348. package/dist/objects/query/normalize.d.ts.map +1 -1
  349. package/dist/objects/query/scalar-values.d.ts.map +1 -1
  350. package/dist/objects/query/validate.d.ts.map +1 -1
  351. package/dist/objects/sdk/object-handle.d.ts +6 -2
  352. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  353. package/dist/objects/sdk/object-set.d.ts +2 -3
  354. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  355. package/dist/objects/sdk/query-builder.d.ts +8 -10
  356. package/dist/objects/sdk/query-builder.d.ts.map +1 -1
  357. package/dist/objects/sdk/query-executor.d.ts +2 -0
  358. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  359. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  360. package/dist/objects/sdk/telemetry-channel.d.ts +1 -2
  361. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  362. package/dist/objects/sdk/where.d.ts +2 -3
  363. package/dist/objects/sdk/where.d.ts.map +1 -1
  364. package/dist/objects/vectors/handle.d.ts +4 -0
  365. package/dist/objects/vectors/handle.d.ts.map +1 -0
  366. package/dist/objects/vectors/indexing-batch.d.ts +6 -0
  367. package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
  368. package/dist/objects/vectors/indexing-generate.d.ts +11 -0
  369. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
  370. package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
  371. package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
  372. package/dist/objects/vectors/indexing-shared.d.ts +17 -0
  373. package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
  374. package/dist/objects/vectors/indexing-single.d.ts +4 -0
  375. package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
  376. package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
  377. package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
  378. package/dist/objects/vectors/indexing.d.ts +7 -0
  379. package/dist/objects/vectors/indexing.d.ts.map +1 -0
  380. package/dist/objects/vectors/profile.d.ts +13 -0
  381. package/dist/objects/vectors/profile.d.ts.map +1 -0
  382. package/dist/objects/vectors/query.d.ts +5 -0
  383. package/dist/objects/vectors/query.d.ts.map +1 -0
  384. package/dist/objects/vectors/resolve-query.d.ts +6 -0
  385. package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
  386. package/dist/objects/vectors/types.d.ts +11 -0
  387. package/dist/objects/vectors/types.d.ts.map +1 -0
  388. package/dist/ontology/builders.d.ts +11 -10
  389. package/dist/ontology/builders.d.ts.map +1 -1
  390. package/dist/ontology/index.d.ts +5 -2
  391. package/dist/ontology/index.d.ts.map +1 -1
  392. package/dist/ontology/index.js +7 -5
  393. package/dist/ontology/index.js.map +1 -1
  394. package/dist/ontology/inference/index.d.ts +34 -22
  395. package/dist/ontology/inference/index.d.ts.map +1 -1
  396. package/dist/ontology/internal.d.ts +1 -0
  397. package/dist/ontology/internal.d.ts.map +1 -1
  398. package/dist/ontology/internal.js +10 -7
  399. package/dist/ontology/internal.js.map +1 -1
  400. package/dist/ontology/primitives.d.ts +38 -0
  401. package/dist/ontology/primitives.d.ts.map +1 -0
  402. package/dist/ontology/query-capabilities.d.ts +38 -0
  403. package/dist/ontology/query-capabilities.d.ts.map +1 -0
  404. package/dist/ontology/refs.d.ts +23 -2
  405. package/dist/ontology/refs.d.ts.map +1 -1
  406. package/dist/ontology/registered.d.ts +16 -0
  407. package/dist/ontology/registered.d.ts.map +1 -0
  408. package/dist/ontology/registry.d.ts.map +1 -1
  409. package/dist/ontology/tokens.d.ts +35 -1
  410. package/dist/ontology/tokens.d.ts.map +1 -1
  411. package/dist/ontology/types.d.ts +26 -13
  412. package/dist/ontology/types.d.ts.map +1 -1
  413. package/dist/ontology/user-ref.d.ts +35 -0
  414. package/dist/ontology/user-ref.d.ts.map +1 -0
  415. package/dist/ontology/validation/definition.d.ts +3 -0
  416. package/dist/ontology/validation/definition.d.ts.map +1 -0
  417. package/dist/ontology/validation/index.d.ts +1 -1
  418. package/dist/ontology/validation/index.d.ts.map +1 -1
  419. package/dist/ontology/validation/normalize.d.ts.map +1 -1
  420. package/dist/ontology/validation/properties.d.ts +6 -1
  421. package/dist/ontology/validation/properties.d.ts.map +1 -1
  422. package/dist/ontology/validation/query.d.ts.map +1 -1
  423. package/dist/ontology/validation/schema.d.ts +1 -1
  424. package/dist/ontology/validation/schema.d.ts.map +1 -1
  425. package/dist/ontology/vector-profiles.d.ts +4 -0
  426. package/dist/ontology/vector-profiles.d.ts.map +1 -0
  427. package/dist/pipelines/index.js +32 -29
  428. package/dist/pipelines/index.js.map +1 -1
  429. package/dist/predicates/types.d.ts +53 -3
  430. package/dist/predicates/types.d.ts.map +1 -1
  431. package/dist/projections/builders.d.ts +19 -1
  432. package/dist/projections/builders.d.ts.map +1 -1
  433. package/dist/projections/internal.js +28 -25
  434. package/dist/projections/internal.js.map +1 -1
  435. package/dist/projections/validation.d.ts.map +1 -1
  436. package/dist/query.js +2 -2
  437. package/dist/queues/in-memory.d.ts +3 -2
  438. package/dist/queues/in-memory.d.ts.map +1 -1
  439. package/dist/queues/index.d.ts +1 -1
  440. package/dist/queues/index.d.ts.map +1 -1
  441. package/dist/queues/index.js +1 -1
  442. package/dist/queues/types.d.ts +5 -0
  443. package/dist/queues/types.d.ts.map +1 -1
  444. package/dist/runtime/create.d.ts +4 -3
  445. package/dist/runtime/create.d.ts.map +1 -1
  446. package/dist/runtime/host.d.ts +10 -7
  447. package/dist/runtime/host.d.ts.map +1 -1
  448. package/dist/runtime/index.d.ts +1 -1
  449. package/dist/runtime/index.d.ts.map +1 -1
  450. package/dist/runtime/internal.d.ts +3 -0
  451. package/dist/runtime/internal.d.ts.map +1 -1
  452. package/dist/runtime/internal.js +49 -1
  453. package/dist/runtime/internal.js.map +1 -1
  454. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  455. package/dist/runtime/sixb.d.ts +11 -6
  456. package/dist/runtime/sixb.d.ts.map +1 -1
  457. package/dist/runtime/types.d.ts +182 -187
  458. package/dist/runtime/types.d.ts.map +1 -1
  459. package/dist/sandboxes/auth.d.ts +16 -0
  460. package/dist/sandboxes/auth.d.ts.map +1 -0
  461. package/dist/sandboxes/config.d.ts +5 -0
  462. package/dist/sandboxes/config.d.ts.map +1 -0
  463. package/dist/sandboxes/configuration.d.ts +41 -0
  464. package/dist/sandboxes/configuration.d.ts.map +1 -0
  465. package/dist/sandboxes/environment.d.ts +13 -0
  466. package/dist/sandboxes/environment.d.ts.map +1 -0
  467. package/dist/sandboxes/errors.d.ts +1 -1
  468. package/dist/sandboxes/errors.d.ts.map +1 -1
  469. package/dist/sandboxes/index.d.ts +6 -1
  470. package/dist/sandboxes/index.d.ts.map +1 -1
  471. package/dist/sandboxes/index.js +16 -3
  472. package/dist/sandboxes/index.js.map +1 -1
  473. package/dist/sandboxes/sandbox.d.ts +39 -4
  474. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  475. package/dist/shared/params/builders.d.ts +25 -0
  476. package/dist/shared/params/builders.d.ts.map +1 -0
  477. package/dist/shared/params/types.d.ts +48 -0
  478. package/dist/shared/params/types.d.ts.map +1 -0
  479. package/dist/shared/params/user-refs.d.ts +19 -0
  480. package/dist/shared/params/user-refs.d.ts.map +1 -0
  481. package/dist/shared/params/validation.d.ts +15 -0
  482. package/dist/shared/params/validation.d.ts.map +1 -0
  483. package/dist/shares/compiler.d.ts.map +1 -1
  484. package/dist/shares/internal.js +29 -26
  485. package/dist/shares/internal.js.map +2 -2
  486. package/dist/storage/action-runs/failure.js +4 -3
  487. package/dist/storage/action-runs/failure.js.map +1 -1
  488. package/dist/storage/action-runs/provider.js +1 -1
  489. package/dist/storage/action-runs/types.d.ts +1 -1
  490. package/dist/storage/action-runs/types.d.ts.map +1 -1
  491. package/dist/storage/agents/in-memory.d.ts +2 -1
  492. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  493. package/dist/storage/agents/index.d.ts +1 -1
  494. package/dist/storage/agents/index.d.ts.map +1 -1
  495. package/dist/storage/agents/provider.d.ts +5 -1
  496. package/dist/storage/agents/provider.d.ts.map +1 -1
  497. package/dist/storage/agents/provider.js +8 -4
  498. package/dist/storage/agents/provider.js.map +1 -1
  499. package/dist/storage/agents/types.d.ts +49 -0
  500. package/dist/storage/agents/types.d.ts.map +1 -1
  501. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  502. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  503. package/dist/storage/ai-cost/index.d.ts +1 -1
  504. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  505. package/dist/storage/ai-cost/provider.js +2 -2
  506. package/dist/storage/ai-cost/types.d.ts +14 -2
  507. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  508. package/dist/storage/ai-limits/enforcement.js +4 -3
  509. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  510. package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
  511. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  512. package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
  513. package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
  514. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  515. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  516. package/dist/storage/auth/index.d.ts +1 -1
  517. package/dist/storage/auth/index.d.ts.map +1 -1
  518. package/dist/storage/auth/types.d.ts +62 -13
  519. package/dist/storage/auth/types.d.ts.map +1 -1
  520. package/dist/storage/connector-connections/provider.js +3 -2
  521. package/dist/storage/connector-connections/provider.js.map +2 -2
  522. package/dist/storage/executions/provider.d.ts +3 -3
  523. package/dist/storage/executions/provider.d.ts.map +1 -1
  524. package/dist/storage/executions/provider.js +13 -11
  525. package/dist/storage/executions/provider.js.map +3 -3
  526. package/dist/storage/executions/types.d.ts +3 -0
  527. package/dist/storage/executions/types.d.ts.map +1 -1
  528. package/dist/storage/executions/validation.d.ts.map +1 -1
  529. package/dist/storage/file-upload-sessions/in-memory.d.ts +9 -18
  530. package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
  531. package/dist/storage/file-upload-sessions/index.d.ts +1 -1
  532. package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
  533. package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
  534. package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
  535. package/dist/storage/file-upload-sessions/provider.js +24 -0
  536. package/dist/storage/file-upload-sessions/provider.js.map +9 -0
  537. package/dist/storage/file-upload-sessions/types.d.ts +19 -1
  538. package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
  539. package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
  540. package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
  541. package/dist/storage/index.d.ts +8 -6
  542. package/dist/storage/index.d.ts.map +1 -1
  543. package/dist/storage/index.js +37 -30
  544. package/dist/storage/index.js.map +1 -1
  545. package/dist/storage/internal.js +11 -9
  546. package/dist/storage/internal.js.map +1 -1
  547. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  548. package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
  549. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  550. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  551. package/dist/storage/objects/in-memory/storage.d.ts +7 -0
  552. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  553. package/dist/storage/objects/types.d.ts +2 -0
  554. package/dist/storage/objects/types.d.ts.map +1 -1
  555. package/dist/storage/ontology/commits.d.ts +7 -2
  556. package/dist/storage/ontology/commits.d.ts.map +1 -1
  557. package/dist/storage/ontology/in-memory/index.d.ts +4 -0
  558. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  559. package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
  560. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  561. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
  562. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  563. package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
  564. package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
  565. package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
  566. package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
  567. package/dist/storage/ontology/index.d.ts +6 -0
  568. package/dist/storage/ontology/index.d.ts.map +1 -1
  569. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  570. package/dist/storage/ontology/provider.d.ts +14 -1
  571. package/dist/storage/ontology/provider.d.ts.map +1 -1
  572. package/dist/storage/ontology/provider.js +9 -3
  573. package/dist/storage/ontology/provider.js.map +1 -1
  574. package/dist/storage/ontology/vector-indexing.d.ts +94 -0
  575. package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
  576. package/dist/storage/ontology/vectors.d.ts +56 -0
  577. package/dist/storage/ontology/vectors.d.ts.map +1 -0
  578. package/dist/storage/operation-scope.d.ts.map +1 -1
  579. package/dist/storage/operation-scope.js +1 -1
  580. package/dist/storage/projection-runs/provider.js +4 -3
  581. package/dist/storage/projection-runs/provider.js.map +1 -1
  582. package/dist/storage/types.d.ts +2 -2
  583. package/dist/storage/types.d.ts.map +1 -1
  584. package/dist/storage/workflow-interventions/index.d.ts +1 -1
  585. package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
  586. package/dist/storage/workflow-interventions/types.d.ts +5 -8
  587. package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
  588. package/dist/storage/workflow-runs/provider.js +10 -8
  589. package/dist/storage/workflow-runs/provider.js.map +1 -1
  590. package/dist/syncs/index.js +33 -30
  591. package/dist/syncs/index.js.map +1 -1
  592. package/dist/testing/action-execution.d.ts +4 -0
  593. package/dist/testing/action-execution.d.ts.map +1 -1
  594. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  595. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  596. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  597. package/dist/testing/execution.d.ts +1 -2
  598. package/dist/testing/execution.d.ts.map +1 -1
  599. package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
  600. package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
  601. package/dist/testing/index.d.ts +2 -0
  602. package/dist/testing/index.d.ts.map +1 -1
  603. package/dist/testing/index.js +2351 -1263
  604. package/dist/testing/index.js.map +19 -17
  605. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  606. package/dist/testing/object-query-contract.d.ts.map +1 -1
  607. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  608. package/dist/testing/ontology-contract-fixture.d.ts +8 -0
  609. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  610. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  611. package/dist/testing/queues-contract.d.ts.map +1 -1
  612. package/dist/testing/sandboxes-contract.d.ts.map +1 -1
  613. package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
  614. package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
  615. package/dist/webhooks/internal.js +29 -26
  616. package/dist/webhooks/internal.js.map +2 -2
  617. package/dist/webhooks/types.d.ts +2 -2
  618. package/dist/webhooks/types.d.ts.map +1 -1
  619. package/dist/workers/index.js +3 -2
  620. package/dist/workers/index.js.map +2 -2
  621. package/dist/workflows/failure.d.ts.map +1 -1
  622. package/dist/workflows/index.js +51 -45
  623. package/dist/workflows/index.js.map +1 -1
  624. package/dist/workflows/run-dispatch.d.ts.map +1 -1
  625. package/dist/workflows/types.d.ts +2 -2
  626. package/dist/workflows/types.d.ts.map +1 -1
  627. package/package.json +7 -1
  628. package/src/actions/builders/params.ts +1 -48
  629. package/src/actions/index.ts +0 -3
  630. package/src/actions/read-facade.ts +102 -62
  631. package/src/actions/request.ts +13 -0
  632. package/src/actions/run-dispatch.ts +3 -0
  633. package/src/actions/types/context.ts +17 -65
  634. package/src/actions/types/params.ts +16 -75
  635. package/src/actions/validation.ts +7 -84
  636. package/src/agents/authority.ts +1 -1
  637. package/src/agents/errors.ts +3 -0
  638. package/src/agents/execution.ts +67 -15
  639. package/src/agents/ids.ts +8 -0
  640. package/src/agents/index.ts +1 -0
  641. package/src/agents/request.ts +11 -0
  642. package/src/agents/sandbox.ts +44 -0
  643. package/src/agents/validation.ts +2 -108
  644. package/src/assert-never.ts +7 -0
  645. package/src/auth/client-address.ts +12 -0
  646. package/src/auth/csrf.ts +14 -5
  647. package/src/auth/index.ts +3 -2
  648. package/src/auth/runtime.ts +299 -277
  649. package/src/auth/session-cache.ts +18 -6
  650. package/src/auth/sessions.ts +30 -0
  651. package/src/auth/types.ts +7 -17
  652. package/src/bootstrap/index.ts +1 -0
  653. package/src/bootstrap/ontology-type-manifest.ts +112 -60
  654. package/src/datasets/validation.ts +40 -11
  655. package/src/datasets/write.ts +8 -11
  656. package/src/edits/types.ts +47 -63
  657. package/src/error-reporting/capability.ts +11 -0
  658. package/src/error-reporting/reports.ts +23 -0
  659. package/src/error-reporting/types.ts +12 -1
  660. package/src/errors/catalog.ts +16 -0
  661. package/src/errors/failure-message.ts +15 -0
  662. package/src/errors/internal.ts +57 -25
  663. package/src/events/envelope.ts +0 -13
  664. package/src/events/index.ts +1 -1
  665. package/src/events/service.ts +1 -11
  666. package/src/events/toStoredEvent.ts +1 -3
  667. package/src/events/types/index.ts +1 -1
  668. package/src/execution/agent.ts +1 -2
  669. package/src/execution/authorization.ts +12 -5
  670. package/src/execution/authorized-object-reader.ts +42 -9
  671. package/src/execution/kernel-operation.ts +27 -0
  672. package/src/execution/primitive.ts +1 -2
  673. package/src/execution/request.ts +1 -2
  674. package/src/execution/scopes.ts +2 -0
  675. package/src/execution/types.ts +4 -4
  676. package/src/index.ts +68 -8
  677. package/src/lake-storage/in-memory.ts +5 -3
  678. package/src/maintenance/ontology-maintenance.ts +77 -1
  679. package/src/materialization/errors.ts +4 -2
  680. package/src/materialization/events.ts +27 -2
  681. package/src/materialization/index.ts +1 -0
  682. package/src/materialization/model.ts +2 -0
  683. package/src/materialization/vectors.ts +18 -0
  684. package/src/materializer/README.md +16 -0
  685. package/src/materializer/context.ts +10 -0
  686. package/src/materializer/edits/commit.ts +29 -13
  687. package/src/materializer/edits/operations.ts +32 -4
  688. package/src/materializer/edits/plan.ts +4 -5
  689. package/src/materializer/edits/user-refs.ts +115 -0
  690. package/src/materializer/edits/vector-authority.ts +108 -0
  691. package/src/materializer/edits/vectors.ts +100 -0
  692. package/src/materializer/effective/build-events.ts +4 -5
  693. package/src/materializer/effective/validate.ts +10 -3
  694. package/src/materializer/effective/vector-indexing.ts +84 -0
  695. package/src/materializer/effective/vectors.ts +47 -0
  696. package/src/materializer/execution/scope.ts +40 -7
  697. package/src/materializer/execution/work-executor.ts +11 -3
  698. package/src/materializer/projections/replace.ts +3 -1
  699. package/src/materializer/projections/replacement-plan.ts +4 -0
  700. package/src/materializer/shared/normalize.ts +11 -0
  701. package/src/materializer/telemetry/append.ts +5 -13
  702. package/src/materializer/telemetry/plan.ts +4 -5
  703. package/src/models/catalog-index.ts +38 -0
  704. package/src/models/catalog.ts +66 -38
  705. package/src/models/decision/catalog.ts +32 -0
  706. package/src/models/decision/errors.ts +18 -0
  707. package/src/models/decision/output.ts +101 -0
  708. package/src/models/decision/questions.ts +29 -0
  709. package/src/models/decision/runtime.ts +188 -0
  710. package/src/models/decision/types.ts +109 -0
  711. package/src/models/decision/validation.ts +335 -0
  712. package/src/models/definitions.ts +1 -1
  713. package/src/models/embedding-model.ts +129 -0
  714. package/src/models/execution/README.md +63 -0
  715. package/src/models/execution/binding.ts +2 -0
  716. package/src/models/execution/embedding.ts +133 -0
  717. package/src/models/execution/model-call-recorder.ts +42 -30
  718. package/src/models/execution/session.ts +81 -0
  719. package/src/models/execution.ts +10 -52
  720. package/src/models/generation-types.ts +2 -0
  721. package/src/models/index.ts +37 -0
  722. package/src/models/pricing.ts +1 -2
  723. package/src/objects/authorized-ontology-view.ts +12 -8
  724. package/src/objects/execution.ts +34 -61
  725. package/src/objects/query/executor.ts +25 -7
  726. package/src/objects/query/explain.ts +7 -2
  727. package/src/objects/query/index.ts +2 -0
  728. package/src/objects/query/ir.ts +13 -2
  729. package/src/objects/query/normalize.ts +5 -1
  730. package/src/objects/query/planner.ts +1 -0
  731. package/src/objects/query/scalar-values.ts +19 -0
  732. package/src/objects/query/validate.ts +129 -117
  733. package/src/objects/sdk/object-handle.ts +11 -8
  734. package/src/objects/sdk/object-set.ts +9 -15
  735. package/src/objects/sdk/query-builder.ts +66 -72
  736. package/src/objects/sdk/query-executor.ts +2 -1
  737. package/src/objects/sdk/runtime-query-executor.ts +6 -2
  738. package/src/objects/sdk/telemetry-channel.ts +6 -7
  739. package/src/objects/sdk/where.ts +6 -13
  740. package/src/objects/vectors/README.md +59 -0
  741. package/src/objects/vectors/handle.ts +91 -0
  742. package/src/objects/vectors/indexing-batch.ts +163 -0
  743. package/src/objects/vectors/indexing-generate.ts +184 -0
  744. package/src/objects/vectors/indexing-runtime.ts +17 -0
  745. package/src/objects/vectors/indexing-shared.ts +188 -0
  746. package/src/objects/vectors/indexing-single.ts +51 -0
  747. package/src/objects/vectors/indexing-store-batch.ts +62 -0
  748. package/src/objects/vectors/indexing.ts +23 -0
  749. package/src/objects/vectors/profile.ts +64 -0
  750. package/src/objects/vectors/query.ts +16 -0
  751. package/src/objects/vectors/resolve-query.ts +89 -0
  752. package/src/objects/vectors/types.ts +10 -0
  753. package/src/ontology/builders.ts +15 -11
  754. package/src/ontology/index.ts +6 -0
  755. package/src/ontology/inference/index.ts +56 -36
  756. package/src/ontology/internal.ts +1 -0
  757. package/src/ontology/json-schema.ts +12 -0
  758. package/src/ontology/primitives.ts +91 -0
  759. package/src/ontology/query-capabilities.ts +136 -0
  760. package/src/ontology/refs.ts +33 -6
  761. package/src/ontology/registered.ts +22 -0
  762. package/src/ontology/registry.ts +14 -3
  763. package/src/ontology/tokens.ts +41 -2
  764. package/src/ontology/types.ts +28 -12
  765. package/src/ontology/user-ref.ts +120 -0
  766. package/src/ontology/validation/definition.ts +93 -0
  767. package/src/ontology/validation/index.ts +1 -0
  768. package/src/ontology/validation/normalize.ts +39 -3
  769. package/src/ontology/validation/properties.ts +109 -23
  770. package/src/ontology/validation/query.ts +44 -92
  771. package/src/ontology/validation/schema.ts +101 -23
  772. package/src/ontology/vector-profiles.ts +35 -0
  773. package/src/predicates/types.ts +43 -33
  774. package/src/projections/builders.ts +24 -3
  775. package/src/projections/validation.ts +15 -1
  776. package/src/queues/in-memory.ts +5 -0
  777. package/src/queues/index.ts +1 -0
  778. package/src/queues/types.ts +10 -0
  779. package/src/runtime/create.ts +7 -6
  780. package/src/runtime/host.ts +44 -10
  781. package/src/runtime/index.ts +3 -2
  782. package/src/runtime/internal.ts +3 -0
  783. package/src/runtime/resolve-definitions.ts +19 -1
  784. package/src/runtime/sixb.ts +25 -17
  785. package/src/runtime/types.ts +288 -478
  786. package/src/sandboxes/README.md +41 -0
  787. package/src/sandboxes/auth.ts +17 -0
  788. package/src/sandboxes/config.ts +37 -0
  789. package/src/sandboxes/configuration.ts +268 -0
  790. package/src/sandboxes/environment.ts +107 -0
  791. package/src/sandboxes/errors.ts +1 -1
  792. package/src/sandboxes/index.ts +15 -0
  793. package/src/sandboxes/sandbox.ts +42 -4
  794. package/src/shared/params/builders.ts +50 -0
  795. package/src/shared/params/types.ts +85 -0
  796. package/src/shared/params/user-refs.ts +48 -0
  797. package/src/shared/params/validation.ts +114 -0
  798. package/src/shares/compiler.ts +6 -16
  799. package/src/storage/action-runs/types.ts +1 -0
  800. package/src/storage/agents/in-memory.ts +25 -1
  801. package/src/storage/agents/index.ts +3 -0
  802. package/src/storage/agents/provider.ts +105 -0
  803. package/src/storage/agents/types.ts +54 -0
  804. package/src/storage/ai-cost/analytics.ts +59 -21
  805. package/src/storage/ai-cost/index.ts +1 -0
  806. package/src/storage/ai-cost/types.ts +19 -2
  807. package/src/storage/auth/in-memory/access-tokens.ts +5 -2
  808. package/src/storage/auth/in-memory/auth-storage.ts +5 -8
  809. package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
  810. package/src/storage/auth/in-memory/sessions.ts +69 -1
  811. package/src/storage/auth/in-memory/shared.ts +13 -7
  812. package/src/storage/auth/index.ts +2 -1
  813. package/src/storage/auth/types.ts +57 -13
  814. package/src/storage/executions/provider.ts +24 -12
  815. package/src/storage/executions/types.ts +1 -0
  816. package/src/storage/executions/validation.ts +8 -4
  817. package/src/storage/file-upload-sessions/in-memory.ts +64 -113
  818. package/src/storage/file-upload-sessions/index.ts +1 -0
  819. package/src/storage/file-upload-sessions/provider.ts +258 -0
  820. package/src/storage/file-upload-sessions/types.ts +20 -1
  821. package/src/storage/file-upload-sessions/utils.ts +25 -9
  822. package/src/storage/index.ts +18 -3
  823. package/src/storage/objects/in-memory/query.ts +38 -14
  824. package/src/storage/objects/in-memory/read-scope.ts +9 -2
  825. package/src/storage/objects/in-memory/read-source.ts +5 -0
  826. package/src/storage/objects/in-memory/selected-reader.ts +5 -1
  827. package/src/storage/objects/in-memory/storage.ts +19 -1
  828. package/src/storage/objects/types.ts +2 -0
  829. package/src/storage/ontology/commits.ts +7 -2
  830. package/src/storage/ontology/in-memory/index.ts +20 -0
  831. package/src/storage/ontology/in-memory/materializations.ts +19 -34
  832. package/src/storage/ontology/in-memory/shared-state.ts +9 -0
  833. package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
  834. package/src/storage/ontology/in-memory/vectors.ts +73 -0
  835. package/src/storage/ontology/index.ts +14 -0
  836. package/src/storage/ontology/provider-header-validation.ts +57 -0
  837. package/src/storage/ontology/provider-work.ts +15 -3
  838. package/src/storage/ontology/provider.ts +59 -1
  839. package/src/storage/ontology/vector-indexing.ts +98 -0
  840. package/src/storage/ontology/vectors.ts +48 -0
  841. package/src/storage/operation-scope.ts +2 -0
  842. package/src/storage/types.ts +3 -1
  843. package/src/storage/workflow-interventions/index.ts +0 -1
  844. package/src/storage/workflow-interventions/types.ts +5 -9
  845. package/src/testing/action-execution.ts +13 -3
  846. package/src/testing/agent-storage-contract.ts +246 -0
  847. package/src/testing/ai-cost-storage-contract.ts +134 -0
  848. package/src/testing/auth-storage-contract.ts +149 -62
  849. package/src/testing/execution-storage-contract.ts +1 -2
  850. package/src/testing/execution.ts +4 -7
  851. package/src/testing/file-upload-session-storage-contract.ts +335 -0
  852. package/src/testing/index.ts +8 -0
  853. package/src/testing/materializer-storage-contract.ts +86 -4
  854. package/src/testing/object-query-contract.ts +162 -27
  855. package/src/testing/object-read-scope-contract.ts +1 -5
  856. package/src/testing/ontology-contract-fixture.ts +23 -3
  857. package/src/testing/ontology-storage-contract.ts +58 -0
  858. package/src/testing/queues-contract.ts +31 -0
  859. package/src/testing/sandboxes-contract.ts +27 -0
  860. package/src/testing/workflow-intervention-storage-contract.ts +203 -0
  861. package/src/webhooks/types.ts +2 -2
  862. package/src/workflows/failure.ts +10 -4
  863. package/src/workflows/run-dispatch.ts +12 -1
  864. package/src/workflows/snapshot.ts +16 -7
  865. package/src/workflows/types.ts +2 -2
  866. package/src/workflows/validation.ts +2 -2
  867. package/dist/chunk-01kj2pbh.js.map +0 -19
  868. package/dist/chunk-5hz0fnca.js.map +0 -12
  869. package/dist/chunk-653vwrzr.js.map +0 -10
  870. package/dist/chunk-7apz6hg4.js.map +0 -10
  871. package/dist/chunk-7bs40fe1.js.map +0 -12
  872. package/dist/chunk-860dwwy0.js.map +0 -14
  873. package/dist/chunk-93csa55g.js.map +0 -11
  874. package/dist/chunk-a0e6x5hd.js.map +0 -14
  875. package/dist/chunk-aa6z4a19.js.map +0 -12
  876. package/dist/chunk-ap0g1g74.js.map +0 -11
  877. package/dist/chunk-awbhdqyc.js.map +0 -10
  878. package/dist/chunk-b19g04jk.js.map +0 -11
  879. package/dist/chunk-dz5h08xv.js.map +0 -25
  880. package/dist/chunk-f0rwz2vh.js.map +0 -11
  881. package/dist/chunk-f4w3yp4f.js.map +0 -12
  882. package/dist/chunk-ftv470j8.js.map +0 -45
  883. package/dist/chunk-g00bfdq6.js.map +0 -43
  884. package/dist/chunk-gq8vhakp.js.map +0 -44
  885. package/dist/chunk-gqh45d2n.js.map +0 -15
  886. package/dist/chunk-gqm76kse.js.map +0 -58
  887. package/dist/chunk-jsy70480.js.map +0 -15
  888. package/dist/chunk-mrp7k0pw.js.map +0 -10
  889. package/dist/chunk-ms2tmn1k.js.map +0 -17
  890. package/dist/chunk-rb1xx120.js.map +0 -11
  891. package/dist/chunk-sepyxgpc.js.map +0 -15
  892. package/dist/chunk-yv79ncbv.js.map +0 -10
  893. package/dist/chunk-z0271qkp.js.map +0 -15
  894. package/dist/chunk-z3y411fq.js +0 -99
  895. package/dist/chunk-z3y411fq.js.map +0 -11
  896. /package/dist/{chunk-1yefycb1.js.map → chunk-2hbhn1ff.js.map} +0 -0
  897. /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
  898. /package/dist/{chunk-0y39rgsb.js.map → chunk-4tnrzqqh.js.map} +0 -0
  899. /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
  900. /package/dist/{chunk-cfvakeax.js.map → chunk-a69fkrtr.js.map} +0 -0
  901. /package/dist/{chunk-v2vcg0w6.js.map → chunk-cbn96bve.js.map} +0 -0
  902. /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
  903. /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
  904. /package/dist/{chunk-x9m9x2eq.js.map → chunk-jhyc777j.js.map} +0 -0
  905. /package/dist/{chunk-17kfctj6.js.map → chunk-m8zkvep1.js.map} +0 -0
  906. /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
  907. /package/dist/{chunk-92vk7gta.js.map → chunk-vn3yh259.js.map} +0 -0
  908. /package/dist/{chunk-g91qxjj0.js.map → chunk-w9bp61e7.js.map} +0 -0
  909. /package/dist/{chunk-1824gssz.js.map → chunk-y487ywrv.js.map} +0 -0
  910. /package/dist/{chunk-358caqf5.js.map → chunk-znw0zvy4.js.map} +0 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/storage/action-runs/types.ts", "../src/storage/action-runs/failure.ts"],
4
+ "sourcesContent": [
5
+ "import type { ActionSubject } from \"../../actions\"\nimport type { SixbErrorCode, SixbFailure } from \"../../errors/types\"\nimport type { JsonValue } from \"../../json\"\n\nexport type ActionRunStatus = \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\"\n\nexport const ACTION_RUN_PHASES = [\n \"request\",\n \"enqueue\",\n \"validation\",\n \"writeback\",\n \"edits\",\n \"commit\",\n \"effects\",\n \"cancelled\",\n] as const\n\nexport type ActionRunPhase = (typeof ACTION_RUN_PHASES)[number]\n\nexport type ActionRunParams = Readonly<Record<string, JsonValue>>\n\nexport type ActionRunPhaseStatus = \"succeeded\" | \"failed\"\n\n/** Error codes an action run or phase record can persist and expose. */\nexport const ACTION_RUN_FAILURE_CODES = [\n \"internal.unexpected\",\n \"runtime.cancelled\",\n \"queue.enqueue_failed\",\n \"action.phase_failed\",\n \"action.read_conflict\",\n] as const satisfies readonly [SixbErrorCode, ...SixbErrorCode[]]\n\nexport type ActionRunFailureCode = (typeof ACTION_RUN_FAILURE_CODES)[number]\n\nexport interface ActionRunFailureDetails<TPhase extends ActionRunPhase = ActionRunPhase> {\n readonly actionId: string\n readonly runId: string\n readonly phase: TPhase\n}\n\n/** Portable failure record with Action's required correlation details. */\nexport interface ActionRunFailure<TPhase extends ActionRunPhase = ActionRunPhase>\n extends Omit<SixbFailure<ActionRunFailureCode>, \"details\"> {\n readonly details: ActionRunFailureDetails<TPhase>\n}\n\nexport type ActionRunWritebackRecord =\n | {\n readonly status: \"succeeded\"\n readonly completedAt: Date\n readonly result: JsonValue\n readonly error?: never\n }\n | {\n readonly status: \"failed\"\n readonly completedAt: Date\n readonly result?: never\n readonly error: ActionRunFailure<\"writeback\">\n }\n\nexport type ActionRunEffectsRecord =\n | {\n readonly status: \"succeeded\"\n readonly completedAt: Date\n readonly error?: never\n }\n | {\n readonly status: \"failed\"\n readonly completedAt: Date\n readonly error: ActionRunFailure<\"effects\">\n }\n\nexport interface ActionRunRecord {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly actionId: string\n readonly subject: ActionSubject\n readonly status: ActionRunStatus\n readonly phase?: ActionRunPhase\n readonly queuedAt: Date\n readonly startedAt?: Date\n readonly finishedAt?: Date\n readonly params: ActionRunParams\n readonly idempotencyKey: string\n readonly writeback?: ActionRunWritebackRecord\n readonly effects?: ActionRunEffectsRecord\n readonly error?: ActionRunFailure\n}\n\nexport interface QueueActionRunInput {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly actionId: string\n readonly subject: ActionSubject\n readonly params: ActionRunParams\n readonly idempotencyKey: string\n readonly queuedAt?: Date\n}\n\nexport interface StartActionRunInput {\n readonly id: string\n readonly projectId: string\n readonly startedAt?: Date\n readonly phase?: Extract<ActionRunPhase, \"validation\">\n}\n\nexport interface EnterActionRunPhaseInput {\n readonly id: string\n readonly projectId: string\n readonly phase: Extract<\n ActionRunPhase,\n \"validation\" | \"writeback\" | \"edits\" | \"commit\" | \"effects\"\n >\n}\n\nexport type RecordActionWritebackInput =\n | {\n readonly id: string\n readonly projectId: string\n readonly status: \"succeeded\"\n readonly completedAt?: Date\n readonly result: JsonValue\n }\n | {\n readonly id: string\n readonly projectId: string\n readonly status: \"failed\"\n readonly completedAt?: Date\n readonly error: ActionRunFailure<\"writeback\">\n }\n\nexport type RecordActionEffectsInput =\n | {\n readonly id: string\n readonly projectId: string\n readonly status: \"succeeded\"\n readonly completedAt?: Date\n }\n | {\n readonly id: string\n readonly projectId: string\n readonly status: \"failed\"\n readonly completedAt?: Date\n readonly error: ActionRunFailure<\"effects\">\n }\n\nexport type FinishActionRunInput =\n | {\n readonly id: string\n readonly projectId: string\n readonly status: \"succeeded\"\n readonly finishedAt?: Date\n readonly phase?: ActionRunPhase\n }\n | {\n readonly id: string\n readonly projectId: string\n readonly status: \"failed\" | \"cancelled\"\n readonly finishedAt?: Date\n readonly error: ActionRunFailure\n }\n\nexport interface ListActionRunsInput {\n readonly projectId: string\n readonly actionId?: string\n readonly actionIds?: readonly string[]\n readonly subject?: ActionSubject\n readonly objectTypeId?: string\n readonly objectTypeIds?: readonly string[]\n readonly primaryId?: string\n readonly statuses?: readonly ActionRunStatus[]\n readonly startedAfter?: Date\n readonly startedBefore?: Date\n readonly limit?: number\n readonly offset?: number\n readonly order?: \"asc\" | \"desc\"\n}\n\nexport interface ListActionRunsResult {\n readonly runs: readonly ActionRunRecord[]\n readonly hasMore: boolean\n readonly total: number\n}\n\nexport interface LockActionMaterializationRunInput {\n readonly projectId: string\n readonly actionId: string\n readonly runId: string\n}\n\nexport interface ActionRunStorage {\n /** Transactional fence for Action identity and running state before a new ontology commit. */\n lockForMaterialization(input: LockActionMaterializationRunInput): Promise<ActionRunRecord>\n queue(input: QueueActionRunInput): Promise<ActionRunRecord>\n start(input: StartActionRunInput): Promise<ActionRunRecord>\n enterPhase(input: EnterActionRunPhaseInput): Promise<ActionRunRecord>\n recordWriteback(input: RecordActionWritebackInput): Promise<ActionRunRecord>\n recordEffects(input: RecordActionEffectsInput): Promise<ActionRunRecord>\n finish(input: FinishActionRunInput): Promise<ActionRunRecord>\n getById(params: { projectId: string; id: string }): Promise<ActionRunRecord | null>\n list(input: ListActionRunsInput): Promise<ListActionRunsResult>\n}\n",
6
+ "import { parseSixbFailure } from \"../../errors/internal\"\nimport { isPlainRecord } from \"../../json\"\nimport {\n ACTION_RUN_FAILURE_CODES,\n ACTION_RUN_PHASES,\n type ActionRunFailure,\n type ActionRunFailureDetails,\n type ActionRunPhase,\n} from \"./types\"\n\n/** Serializes the canonical failure plus Action's typed lifecycle extension. */\nexport function serializeActionRunFailure<TPhase extends ActionRunPhase>(\n failure: ActionRunFailure<TPhase>,\n expectedPhase?: TPhase\n): string {\n const parsed =\n expectedPhase === undefined\n ? parseActionRunFailure(failure)\n : parseActionRunFailure(failure, expectedPhase)\n return JSON.stringify(parsed)\n}\n\n/** Validates and detaches an Action failure read from a storage boundary. */\nexport function parseActionRunFailure<TPhase extends ActionRunPhase>(\n value: unknown,\n expectedPhase: TPhase\n): ActionRunFailure<TPhase>\nexport function parseActionRunFailure(value: unknown): ActionRunFailure\nexport function parseActionRunFailure(\n value: unknown,\n expectedPhase?: ActionRunPhase\n): ActionRunFailure {\n const candidate = parseStoredActionRunFailureValue(value)\n const failure = parseSixbFailure(candidate, ACTION_RUN_FAILURE_CODES)\n const details = failure.details\n if (\n !isPlainRecord(details) ||\n typeof details.actionId !== \"string\" ||\n typeof details.runId !== \"string\" ||\n typeof details.phase !== \"string\" ||\n !(ACTION_RUN_PHASES as readonly string[]).includes(details.phase)\n ) {\n throw new Error(\n \"[Sixb] Stored failure is invalid: Action details must contain actionId, runId, and a known phase.\"\n )\n }\n if (expectedPhase !== undefined && details.phase !== expectedPhase) {\n throw new Error(`[Sixb] Stored Action ${expectedPhase} failure has phase '${details.phase}'.`)\n }\n\n return {\n ...failure,\n details: details as unknown as ActionRunFailureDetails,\n }\n}\n\nfunction parseStoredActionRunFailureValue(value: unknown): unknown {\n if (typeof value !== \"string\") return value\n try {\n return JSON.parse(value) as unknown\n } catch {\n throw new Error(\"[Sixb] Stored failure is invalid: value is not valid JSON.\")\n }\n}\n"
7
+ ],
8
+ "mappings": ";;;;;;;;;AAMO,IAAM,qBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASO,IAAM,4BAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACnBO,SAAS,0BAAwD,CACtE,SACA,eACQ;AAAA,EACR,MAAM,SACJ,kBAAkB,YACd,uBAAsB,OAAO,IAC7B,uBAAsB,SAAS,aAAa;AAAA,EAClD,OAAO,KAAK,UAAU,MAAM;AAAA;AASvB,SAAS,sBAAqB,CACnC,OACA,eACkB;AAAA,EAClB,MAAM,YAAY,iCAAiC,KAAK;AAAA,EACxD,MAAM,UAAU,kBAAiB,WAAW,yBAAwB;AAAA,EACpE,MAAM,UAAU,QAAQ;AAAA,EACxB,IACE,CAAC,cAAc,OAAO,KACtB,OAAO,QAAQ,aAAa,YAC5B,OAAO,QAAQ,UAAU,YACzB,OAAO,QAAQ,UAAU,YACzB,CAAE,mBAAwC,SAAS,QAAQ,KAAK,GAChE;AAAA,IACA,MAAM,IAAI,MACR,mGACF;AAAA,EACF;AAAA,EACA,IAAI,kBAAkB,aAAa,QAAQ,UAAU,eAAe;AAAA,IAClE,MAAM,IAAI,MAAM,wBAAwB,oCAAoC,QAAQ,SAAS;AAAA,EAC/F;AAAA,EAEA,OAAO;AAAA,OACF;AAAA,IACH;AAAA,EACF;AAAA;AAGF,SAAS,gCAAgC,CAAC,OAAyB;AAAA,EACjE,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI;AAAA,IACF,OAAO,KAAK,MAAM,KAAK;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,IAAI,MAAM,4DAA4D;AAAA;AAAA;",
9
+ "debugId": "4C1D77261542AF7164756E2164756E21",
10
+ "names": []
11
+ }
@@ -345,9 +345,24 @@ function aiAccountingBucketStart(at, bucket) {
345
345
  return start;
346
346
  }
347
347
  function aggregateAccountingItems(items) {
348
+ const value = aggregateFragmentAccumulator();
349
+ value.modelCallCount = BigInt(items.length);
350
+ for (const item of items) {
351
+ const usage = normalizeAiModelCallUsage2(item.usage.usage);
352
+ if (usage.reportingStatus !== "unavailable")
353
+ value.reportedUsageCallCount += 1n;
354
+ if (usage.reportingStatus === "complete")
355
+ value.completeUsageCallCount += 1n;
356
+ for (const field of AGGREGATE_USAGE_FIELDS) {
357
+ if (usage[field] === undefined)
358
+ continue;
359
+ value.usage[field].presentCallCount += 1n;
360
+ value.usage[field].total += BigInt(usage[field]);
361
+ }
362
+ }
348
363
  return {
349
364
  modelCallCount: items.length,
350
- usage: aggregateAiModelCallUsage2(items.map((item) => item.usage.usage)),
365
+ ...finishAggregateUsage(value),
351
366
  costs: aggregateCosts(items)
352
367
  };
353
368
  }
@@ -386,6 +401,7 @@ function aggregateFragmentAccumulator() {
386
401
  return {
387
402
  modelCallCount: 0n,
388
403
  reportedUsageCallCount: 0n,
404
+ completeUsageCallCount: 0n,
389
405
  usage: Object.fromEntries(AGGREGATE_USAGE_FIELDS.map((field) => [field, { presentCallCount: 0n, total: 0n }])),
390
406
  amounts: new Map,
391
407
  ratedCallCount: 0n,
@@ -404,6 +420,7 @@ function getFragmentAccumulator(values, key) {
404
420
  function appendAggregateFragment(target, fragment) {
405
421
  target.modelCallCount += naturalBigInt(fragment.modelCallCount, "modelCallCount");
406
422
  target.reportedUsageCallCount += naturalBigInt(fragment.usage.reportedCallCount, "reported usage call count");
423
+ target.completeUsageCallCount += naturalBigInt(fragment.usage.completeCallCount, "complete usage call count");
407
424
  for (const field of AGGREGATE_USAGE_FIELDS) {
408
425
  const source = fragment.usage[field];
409
426
  const presentCallCount = naturalBigInt(source.presentCallCount, `${field} call count`);
@@ -423,26 +440,13 @@ function appendAggregateFragment(target, fragment) {
423
440
  }
424
441
  function finishAggregateFragment(value) {
425
442
  const classifiedCallCount = value.ratedCallCount + value.unpriceableCallCount + value.unvaluedCallCount;
426
- if (classifiedCallCount !== value.modelCallCount || value.reportedUsageCallCount > value.modelCallCount || AGGREGATE_USAGE_FIELDS.some((field) => value.usage[field].presentCallCount > value.modelCallCount)) {
443
+ if (classifiedCallCount !== value.modelCallCount || value.reportedUsageCallCount > value.modelCallCount || value.completeUsageCallCount > value.reportedUsageCallCount || AGGREGATE_USAGE_FIELDS.some((field) => value.usage[field].presentCallCount > value.modelCallCount)) {
427
444
  throw new TypeError("[Sixb] AI accounting SQL aggregate counts are inconsistent.");
428
445
  }
429
446
  const modelCallCount = safeAggregateNumber(value.modelCallCount, "model-call count");
430
- const usageInput = {};
431
- if (value.modelCallCount > 0n) {
432
- for (const field of AGGREGATE_USAGE_FIELDS) {
433
- const aggregate = value.usage[field];
434
- if (aggregate.presentCallCount === value.modelCallCount) {
435
- usageInput[field] = safeAggregateNumber(aggregate.total, field);
436
- }
437
- }
438
- }
439
- let usage = normalizeAiModelCallUsage2(usageInput);
440
- if (usage.reportingStatus === "unavailable" && value.reportedUsageCallCount > 0n) {
441
- usage = { ...usage, reportingStatus: "partial" };
442
- }
443
447
  return {
444
448
  modelCallCount,
445
- usage,
449
+ ...finishAggregateUsage(value),
446
450
  costs: {
447
451
  amounts: [...value.amounts].sort(([left], [right]) => left.localeCompare(right)).map(([currency, amountNanos]) => ({ currency, amountNanos: amountNanos.toString() })),
448
452
  ratedCallCount: safeAggregateNumber(value.ratedCallCount, "rated call count"),
@@ -451,6 +455,30 @@ function finishAggregateFragment(value) {
451
455
  }
452
456
  };
453
457
  }
458
+ function finishAggregateUsage(value) {
459
+ const counts = {};
460
+ const fieldCallCounts = {};
461
+ for (const field of AGGREGATE_USAGE_FIELDS) {
462
+ const aggregate = value.usage[field];
463
+ fieldCallCounts[field] = safeAggregateNumber(aggregate.presentCallCount, `${field} call count`);
464
+ if (aggregate.presentCallCount > 0n) {
465
+ counts[field] = safeAggregateNumber(aggregate.total, field);
466
+ }
467
+ }
468
+ if (counts.inputTokens !== undefined || counts.outputTokens !== undefined) {
469
+ counts.totalTokens = safeAggregateNumber(value.usage.inputTokens.total + value.usage.outputTokens.total, "totalTokens");
470
+ }
471
+ return {
472
+ usage: {
473
+ ...counts,
474
+ reportingStatus: value.reportedUsageCallCount === 0n ? "unavailable" : value.completeUsageCallCount === value.modelCallCount ? "complete" : "partial"
475
+ },
476
+ usageCoverage: {
477
+ completeCallCount: safeAggregateNumber(value.completeUsageCallCount, "complete call count"),
478
+ fieldCallCounts
479
+ }
480
+ };
481
+ }
454
482
  function naturalBigInt(value, field) {
455
483
  if (!/^(0|[1-9]\d*)$/.test(value)) {
456
484
  throw new TypeError(`[Sixb] AI accounting SQL ${field} must be a natural integer.`);
@@ -1066,4 +1094,4 @@ function cloneDate(value, field) {
1066
1094
 
1067
1095
  export { AiUsageStorageError2, InMemoryAiUsageStorage2, normalizeAiAccountingQuery2, normalizeAiModelCallAccountingQuery2, buildAiAccountingOverview, buildAiAccountingOverviewFromFragments2, buildAiModelCallAccountingList, toAccountingItem2, directModelCallAttribution2, aiModelCallGroupFragmentFromRow2, buildAiModelCallGroupsFromFragments2, buildAiModelCallGroups, normalizeAiPricingContext2, normalizeAiModelCallCostRecord2, aiModelCallCostMatchesUsage2, normalizeAiCostEstimate };
1068
1096
 
1069
- //# debugId=3EFE5C3CDFF5349664756E2164756E21
1097
+ //# debugId=09D39788C52B304E64756E2164756E21
@@ -4,12 +4,12 @@
4
4
  "sourcesContent": [
5
5
  "export type AiUsageStorageErrorCode = \"duplicate_id\" | \"missing_execution\"\n\n/** Storage failure specific to the AI model-call usage ledger. */\nexport class AiUsageStorageError extends Error {\n readonly name = \"AiUsageStorageError\"\n\n constructor(\n readonly code: AiUsageStorageErrorCode,\n message: string\n ) {\n super(message)\n }\n}\n",
6
6
  "import type { ExecutionStorage } from \"../executions\"\nimport { AiUsageStorageError } from \"./errors\"\nimport { assertAiUsageExecutionId, normalizeAiModelCallRecord } from \"./record\"\nimport type {\n AiModelCallUsageRecord,\n AiUsageExecutionSummary,\n AiUsageStorage,\n GetLatestAiModelCallForExecutionInput,\n RecordAiModelCallInput,\n RecordAiModelCallResult,\n SummarizeAiUsageExecutionInput,\n SummarizeAiUsageExecutionsInput,\n} from \"./types\"\nimport { aggregateAiModelCallUsage } from \"./usage\"\n\nexport interface InMemoryAiUsageGroupRow {\n readonly projectId: string\n readonly usageRecordId: string\n readonly groupId: string\n readonly occurredAt: Date\n}\n\nexport interface InMemoryAiUsageStorageSnapshot {\n readonly records: Map<string, AiModelCallUsageRecord>\n readonly recordKeysByIdempotencyKey: Map<string, string>\n readonly groupRows: Map<string, InMemoryAiUsageGroupRow>\n}\n\n/** In-memory model-call ledger used by development runtimes and storage contract tests. */\nexport class InMemoryAiUsageStorage implements AiUsageStorage {\n private readonly records = new Map<string, AiModelCallUsageRecord>()\n private readonly recordKeysByIdempotencyKey = new Map<string, string>()\n private readonly groupRows = new Map<string, InMemoryAiUsageGroupRow>()\n\n constructor(private readonly executions: Pick<ExecutionStorage, \"getById\">) {}\n\n async recordModelCall(input: RecordAiModelCallInput): Promise<RecordAiModelCallResult> {\n const record = normalizeAiModelCallRecord(input)\n await this.assertExecutionExists(record.projectId, record.executionId)\n const idempotencyKey = modelCallIdempotencyKey(record)\n const existingRecordKey = this.recordKeysByIdempotencyKey.get(idempotencyKey)\n if (existingRecordKey !== undefined) {\n const existing = this.records.get(existingRecordKey)\n if (!existing) {\n throw new Error(\"[Sixb] In-memory AI usage idempotency index is inconsistent.\")\n }\n return { record: structuredClone(existing), created: false }\n }\n\n const recordKey = modelCallRecordKey(record.projectId, record.id)\n if (this.records.has(recordKey)) {\n throw new AiUsageStorageError(\n \"duplicate_id\",\n `[Sixb] AI usage record '${record.id}' already exists for project '${record.projectId}'.`\n )\n }\n\n this.records.set(recordKey, structuredClone(record))\n this.recordKeysByIdempotencyKey.set(idempotencyKey, recordKey)\n for (const groupId of record.requesterGroupIds) {\n const row: InMemoryAiUsageGroupRow = {\n projectId: record.projectId,\n usageRecordId: record.id,\n groupId,\n occurredAt: record.occurredAt,\n }\n this.groupRows.set(groupRowKey(row), row)\n }\n\n return { record: structuredClone(record), created: true }\n }\n\n async getLatestForExecution(\n input: GetLatestAiModelCallForExecutionInput\n ): Promise<AiModelCallUsageRecord | null> {\n assertAiUsageExecutionId(input.executionId)\n if (typeof input.projectId !== \"string\" || input.projectId.trim().length === 0) {\n throw new TypeError(\"[Sixb] AI usage projectId must be nonblank.\")\n }\n\n let latest: AiModelCallUsageRecord | null = null\n for (const record of this.records.values()) {\n if (record.projectId !== input.projectId || record.executionId !== input.executionId) continue\n if (\n !latest ||\n record.occurredAt.getTime() > latest.occurredAt.getTime() ||\n (record.occurredAt.getTime() === latest.occurredAt.getTime() && record.id > latest.id)\n ) {\n latest = record\n }\n }\n return latest ? structuredClone(latest) : null\n }\n\n async summarizeExecution(\n input: SummarizeAiUsageExecutionInput\n ): Promise<AiUsageExecutionSummary> {\n const [summary] = await this.summarizeExecutions({\n projectId: input.projectId,\n executionIds: [input.executionId],\n })\n return summary!\n }\n\n async summarizeExecutions(\n input: SummarizeAiUsageExecutionsInput\n ): Promise<readonly AiUsageExecutionSummary[]> {\n if (typeof input.projectId !== \"string\" || input.projectId.trim().length === 0) {\n throw new TypeError(\"[Sixb] AI usage projectId must be nonblank.\")\n }\n\n const usageByExecutionId = new Map<string, AiModelCallUsageRecord[\"usage\"][]>()\n for (const executionId of input.executionIds) {\n assertAiUsageExecutionId(executionId)\n usageByExecutionId.set(executionId, [])\n }\n if (usageByExecutionId.size === 0) return []\n\n for (const record of this.records.values()) {\n if (record.projectId !== input.projectId) continue\n usageByExecutionId.get(record.executionId)?.push(record.usage)\n }\n\n return input.executionIds.map((executionId) => {\n const usages = usageByExecutionId.get(executionId) ?? []\n return {\n modelCallCount: usages.length,\n usage: aggregateAiModelCallUsage(usages),\n }\n })\n }\n\n snapshot(): InMemoryAiUsageStorageSnapshot {\n return structuredClone({\n records: this.records,\n recordKeysByIdempotencyKey: this.recordKeysByIdempotencyKey,\n groupRows: this.groupRows,\n })\n }\n\n restore(snapshot: InMemoryAiUsageStorageSnapshot): void {\n replaceMap(this.records, snapshot.records)\n replaceMap(this.recordKeysByIdempotencyKey, snapshot.recordKeysByIdempotencyKey)\n replaceMap(this.groupRows, snapshot.groupRows)\n }\n\n /** @internal Immutable accounting source used by in-memory AI limit enforcement. */\n getRecord(projectId: string, id: string): AiModelCallUsageRecord | null {\n const record = this.records.get(modelCallRecordKey(projectId, id))\n return record ? structuredClone(record) : null\n }\n\n /** @internal Immutable accounting source used by in-memory AI limit status reads. */\n listRecords(projectId: string): readonly AiModelCallUsageRecord[] {\n return [...this.records.values()]\n .filter((record) => record.projectId === projectId)\n .map((record) => structuredClone(record))\n }\n\n private async assertExecutionExists(projectId: string, executionId: string): Promise<void> {\n const execution = await this.executions.getById({ projectId, id: executionId })\n if (execution) return\n throw new AiUsageStorageError(\n \"missing_execution\",\n `[Sixb] AI usage execution '${executionId}' does not exist in project '${projectId}'.`\n )\n }\n}\n\nfunction modelCallRecordKey(projectId: string, id: string): string {\n return JSON.stringify([projectId, id])\n}\n\nfunction modelCallIdempotencyKey(\n record: Pick<\n AiModelCallUsageRecord,\n \"projectId\" | \"executionId\" | \"attempt\" | \"callId\" | \"responseId\"\n >\n): string {\n return JSON.stringify([\n record.projectId,\n record.executionId,\n record.attempt,\n record.callId,\n record.responseId,\n ])\n}\n\nfunction groupRowKey(row: InMemoryAiUsageGroupRow): string {\n return JSON.stringify([row.projectId, row.usageRecordId, row.groupId])\n}\n\nfunction replaceMap<TKey, TValue>(target: Map<TKey, TValue>, source: Map<TKey, TValue>): void {\n target.clear()\n for (const [key, value] of structuredClone(source)) {\n target.set(key, value)\n }\n}\n",
7
- "import {\n type AiModelCallUsage,\n type AiModelCallUsageRecord,\n aggregateAiModelCallUsage,\n normalizeAiModelCallUsage,\n} from \"../ai-usage\"\nimport type {\n AiAccountingAgentBreakdown,\n AiAccountingAggregate,\n AiAccountingAttribution,\n AiAccountingBucket,\n AiAccountingModelBreakdown,\n AiAccountingOverview,\n AiAccountingTimeBucket,\n AiAccountingWorkflowBreakdown,\n AiCostSummary,\n AiModelCallAccountingItem,\n AiModelCallCostRecord,\n AiMoney,\n ListAiModelCallAccountingInput,\n ListAiModelCallAccountingResult,\n QueryAiAccountingOverviewInput,\n} from \"./types\"\n\nconst DEFAULT_MODEL_CALL_PAGE_SIZE = 50\nconst MAX_MODEL_CALL_PAGE_SIZE = 200\nconst MAX_CHART_BUCKETS = 10_000\n\n/** One joined immutable model-call row used by in-memory analytics and bounded SQL pages. */\nexport interface AiAccountingRecordSetItem {\n readonly usage: AiModelCallUsageRecord\n readonly attribution?: AiAccountingAttribution\n readonly cost?: AiModelCallCostRecord\n}\n\nexport interface NormalizedAiAccountingQuery {\n readonly projectId: string\n readonly from: Date\n readonly to: Date\n readonly providerId?: string\n readonly modelId?: string\n}\n\nexport interface NormalizedAiModelCallAccountingQuery extends NormalizedAiAccountingQuery {\n readonly executionId?: string\n readonly valuationStatus?: ListAiModelCallAccountingInput[\"valuationStatus\"]\n readonly limit: number\n readonly offset: number\n}\n\ninterface AiAccountingUsageMeterFragment {\n readonly presentCallCount: string\n readonly total: string | null\n}\n\n/** One SQL-aggregated currency fragment; providers merge fragments without loading model calls. */\nexport interface AiAccountingAggregateFragment {\n readonly dimension: \"totals\" | \"series\" | \"model\" | \"agent\" | \"workflow\"\n readonly start?: Date\n readonly providerId?: string\n readonly modelId?: string\n readonly agentKind?: \"agent\" | \"workflowAgent\"\n readonly agentStepId?: string\n readonly workflowId?: string\n readonly modelCallCount: string\n readonly usage: {\n readonly reportedCallCount: string\n readonly inputTokens: AiAccountingUsageMeterFragment\n readonly outputTokens: AiAccountingUsageMeterFragment\n readonly uncachedInputTokens: AiAccountingUsageMeterFragment\n readonly cacheReadInputTokens: AiAccountingUsageMeterFragment\n readonly cacheWriteInputTokens: AiAccountingUsageMeterFragment\n readonly textOutputTokens: AiAccountingUsageMeterFragment\n readonly reasoningOutputTokens: AiAccountingUsageMeterFragment\n }\n readonly costs: {\n readonly amount?: AiMoney\n readonly ratedCallCount: string\n readonly unpriceableCallCount: string\n readonly unvaluedCallCount: string\n }\n}\n\nexport function normalizeAiAccountingQuery(\n input: Omit<QueryAiAccountingOverviewInput, \"bucket\"> | ListAiModelCallAccountingInput\n): NormalizedAiAccountingQuery {\n assertNonBlank(input.projectId, \"accounting projectId\")\n assertDate(input.from, \"accounting from\")\n assertDate(input.to, \"accounting to\")\n if (input.from.getTime() >= input.to.getTime()) {\n throw new TypeError(\"[Sixb] AI accounting from must be before to.\")\n }\n if (input.providerId !== undefined) assertNonBlank(input.providerId, \"accounting providerId\")\n if (input.modelId !== undefined) assertNonBlank(input.modelId, \"accounting modelId\")\n return {\n projectId: input.projectId,\n from: new Date(input.from),\n to: new Date(input.to),\n ...(input.providerId === undefined ? {} : { providerId: input.providerId }),\n ...(input.modelId === undefined ? {} : { modelId: input.modelId }),\n }\n}\n\nexport function normalizeAiModelCallAccountingQuery(\n input: ListAiModelCallAccountingInput\n): NormalizedAiModelCallAccountingQuery {\n const query = normalizeAiAccountingQuery(input)\n if (input.executionId !== undefined) {\n assertNonBlank(input.executionId, \"accounting executionId\")\n }\n const { limit, offset } = normalizePage(input.limit, input.offset)\n return {\n ...query,\n ...(input.executionId === undefined ? {} : { executionId: input.executionId }),\n ...(input.valuationStatus === undefined ? {} : { valuationStatus: input.valuationStatus }),\n limit,\n offset,\n }\n}\n\nexport function aiAccountingItemMatchesQuery(\n item: AiAccountingRecordSetItem,\n query: NormalizedAiAccountingQuery\n): boolean {\n const occurredAt = item.usage.occurredAt.getTime()\n return (\n item.usage.projectId === query.projectId &&\n occurredAt >= query.from.getTime() &&\n occurredAt < query.to.getTime() &&\n (query.providerId === undefined || item.usage.providerId === query.providerId) &&\n (query.modelId === undefined || item.usage.requestedModelId === query.modelId)\n )\n}\n\nexport function buildAiAccountingOverview(\n input: QueryAiAccountingOverviewInput,\n source: Iterable<AiAccountingRecordSetItem>\n): AiAccountingOverview {\n const query = normalizeAiAccountingQuery(input)\n assertAiAccountingBucket(input.bucket)\n const items = Array.from(source).filter((item) => aiAccountingItemMatchesQuery(item, query))\n const periods = accountingPeriods(query.from, query.to, input.bucket)\n const periodItems = new Map<number, AiAccountingRecordSetItem[]>(\n periods.map((period) => [period.start.getTime(), []])\n )\n const modelItems = new Map<string, AiAccountingRecordSetItem[]>()\n const agentItems = new Map<string, AiAccountingRecordSetItem[]>()\n const workflowItems = new Map<string, AiAccountingRecordSetItem[]>()\n\n for (const item of items) {\n const periodStart = aiAccountingBucketStart(item.usage.occurredAt, input.bucket).getTime()\n periodItems.get(periodStart)?.push(item)\n appendGrouped(\n modelItems,\n JSON.stringify([item.usage.providerId, item.usage.requestedModelId]),\n item\n )\n if (item.attribution?.kind === \"agent\") {\n appendGrouped(agentItems, JSON.stringify([\"agent\"]), item)\n } else if (item.attribution?.kind === \"workflowAgent\") {\n appendGrouped(\n agentItems,\n JSON.stringify([\n \"workflowAgent\",\n item.attribution.workflowId,\n item.attribution.agentStepId,\n ]),\n item\n )\n }\n if (item.attribution?.kind === \"workflowAgent\" || item.attribution?.kind === \"workflow\") {\n appendGrouped(workflowItems, item.attribution.workflowId, item)\n }\n }\n\n const series: AiAccountingTimeBucket[] = periods.map((period) => ({\n ...period,\n ...aggregateAccountingItems(periodItems.get(period.start.getTime()) ?? []),\n }))\n const models: AiAccountingModelBreakdown[] = [...modelItems]\n .map(([key, grouped]) => {\n const [providerId, modelId] = JSON.parse(key) as [string, string]\n return { providerId, modelId, ...aggregateAccountingItems(grouped) }\n })\n .sort(compareModelBreakdowns)\n const agents: AiAccountingAgentBreakdown[] = [...agentItems]\n .map(([key, grouped]) => {\n const [kind, workflowId, agentStepId] = JSON.parse(key) as [\n \"agent\" | \"workflowAgent\",\n string?,\n string?,\n ]\n return kind === \"agent\"\n ? { kind, ...aggregateAccountingItems(grouped) }\n : {\n kind,\n workflowId: requiredFragmentString(workflowId, \"workflowId\"),\n agentStepId: requiredFragmentString(agentStepId, \"agentStepId\"),\n ...aggregateAccountingItems(grouped),\n }\n })\n .sort(compareAgentBreakdowns)\n const workflows: AiAccountingWorkflowBreakdown[] = [...workflowItems]\n .map(([workflowId, grouped]) => ({ workflowId, ...aggregateAccountingItems(grouped) }))\n .sort(compareWorkflowBreakdowns)\n\n return structuredClone({\n range: { from: query.from, to: query.to },\n bucket: input.bucket,\n totals: aggregateAccountingItems(items),\n series,\n models,\n agents,\n workflows,\n })\n}\n\nexport function buildAiAccountingOverviewFromFragments(\n input: QueryAiAccountingOverviewInput,\n fragments: Iterable<AiAccountingAggregateFragment>\n): AiAccountingOverview {\n const query = normalizeAiAccountingQuery(input)\n const periods = accountingPeriods(query.from, query.to, input.bucket)\n const totals = aggregateFragmentAccumulator()\n const series = new Map<number, AggregateFragmentAccumulator>(\n periods.map((period) => [period.start.getTime(), aggregateFragmentAccumulator()])\n )\n const models = new Map<string, AggregateFragmentAccumulator>()\n const agents = new Map<string, AggregateFragmentAccumulator>()\n const workflows = new Map<string, AggregateFragmentAccumulator>()\n\n for (const fragment of fragments) {\n let target: AggregateFragmentAccumulator\n switch (fragment.dimension) {\n case \"totals\":\n target = totals\n break\n case \"series\": {\n const start = requiredFragmentDate(fragment.start, \"series start\")\n const existing = series.get(start.getTime())\n if (!existing) {\n throw new TypeError(\"[Sixb] AI accounting SQL series returned an unexpected bucket.\")\n }\n target = existing\n break\n }\n case \"model\":\n target = getFragmentAccumulator(\n models,\n JSON.stringify([\n requiredFragmentString(fragment.providerId, \"providerId\"),\n requiredFragmentString(fragment.modelId, \"modelId\"),\n ])\n )\n break\n case \"agent\":\n target = getFragmentAccumulator(\n agents,\n JSON.stringify([\n requiredFragmentString(fragment.agentKind, \"agentKind\"),\n fragment.workflowId,\n fragment.agentStepId,\n ])\n )\n break\n case \"workflow\":\n target = getFragmentAccumulator(\n workflows,\n requiredFragmentString(fragment.workflowId, \"workflowId\")\n )\n break\n }\n appendAggregateFragment(target, fragment)\n }\n\n return structuredClone({\n range: { from: query.from, to: query.to },\n bucket: input.bucket,\n totals: finishAggregateFragment(totals),\n series: periods.map((period) => ({\n ...period,\n ...finishAggregateFragment(series.get(period.start.getTime())!),\n })),\n models: [...models]\n .map(([key, value]) => {\n const [providerId, modelId] = JSON.parse(key) as [string, string]\n return { providerId, modelId, ...finishAggregateFragment(value) }\n })\n .sort(compareModelBreakdowns),\n agents: [...agents]\n .map(([key, value]) => {\n const [kind, workflowId, agentStepId] = JSON.parse(key) as [\n \"agent\" | \"workflowAgent\",\n string?,\n string?,\n ]\n return kind === \"agent\"\n ? { kind, ...finishAggregateFragment(value) }\n : {\n kind,\n workflowId: requiredFragmentString(workflowId, \"workflowId\"),\n agentStepId: requiredFragmentString(agentStepId, \"agentStepId\"),\n ...finishAggregateFragment(value),\n }\n })\n .sort(compareAgentBreakdowns),\n workflows: [...workflows]\n .map(([workflowId, value]) => ({ workflowId, ...finishAggregateFragment(value) }))\n .sort(compareWorkflowBreakdowns),\n })\n}\n\nexport function buildAiModelCallAccountingList(\n input: ListAiModelCallAccountingInput,\n source: Iterable<AiAccountingRecordSetItem>\n): ListAiModelCallAccountingResult {\n const query = normalizeAiModelCallAccountingQuery(input)\n const { limit, offset } = query\n const items = Array.from(source)\n .filter((item) => aiAccountingItemMatchesQuery(item, query))\n .map(toAccountingItem)\n .filter(\n (item) =>\n (input.executionId === undefined || item.usage.executionId === input.executionId) &&\n (input.valuationStatus === undefined || item.valuationStatus === input.valuationStatus)\n )\n .sort(compareAccountingItems)\n const page = items.slice(offset, offset + limit)\n return structuredClone({\n items: page,\n hasMore: offset + page.length < items.length,\n total: items.length,\n })\n}\n\nexport function toAccountingItem(item: AiAccountingRecordSetItem): AiModelCallAccountingItem {\n return {\n usage: item.usage,\n ...(item.attribution === undefined ? {} : { attribution: item.attribution }),\n ...(item.cost === undefined ? {} : { cost: item.cost }),\n valuationStatus: item.cost?.status ?? \"unvalued\",\n }\n}\n\nexport function aiAccountingBucketStart(at: Date, bucket: AiAccountingBucket): Date {\n assertDate(at, \"accounting bucket timestamp\")\n assertAiAccountingBucket(bucket)\n const start = new Date(at)\n start.setUTCMinutes(0, 0, 0)\n if (bucket === \"hour\") return start\n start.setUTCHours(0)\n if (bucket === \"day\") return start\n const mondayOffset = (start.getUTCDay() + 6) % 7\n start.setUTCDate(start.getUTCDate() - mondayOffset)\n return start\n}\n\nfunction aggregateAccountingItems(\n items: readonly AiAccountingRecordSetItem[]\n): AiAccountingAggregate {\n return {\n modelCallCount: items.length,\n usage: aggregateAiModelCallUsage(items.map((item) => item.usage.usage)),\n costs: aggregateCosts(items),\n }\n}\n\nfunction aggregateCosts(items: readonly AiAccountingRecordSetItem[]): AiCostSummary {\n const amounts = new Map<string, bigint>()\n let ratedCallCount = 0\n let unpriceableCallCount = 0\n let unvaluedCallCount = 0\n for (const item of items) {\n if (item.cost?.status === \"rated\") {\n ratedCallCount += 1\n addAmount(amounts, item.cost.money.currency, item.cost.money.amountNanos)\n } else if (item.cost?.status === \"unpriceable\") {\n unpriceableCallCount += 1\n } else {\n unvaluedCallCount += 1\n }\n }\n return {\n amounts: [...amounts]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, amountNanos]) => ({ currency, amountNanos: amountNanos.toString() })),\n ratedCallCount,\n unpriceableCallCount,\n unvaluedCallCount,\n }\n}\n\nconst AGGREGATE_USAGE_FIELDS = [\n \"inputTokens\",\n \"outputTokens\",\n \"uncachedInputTokens\",\n \"cacheReadInputTokens\",\n \"cacheWriteInputTokens\",\n \"textOutputTokens\",\n \"reasoningOutputTokens\",\n] as const\n\ntype AggregateUsageField = (typeof AGGREGATE_USAGE_FIELDS)[number]\n\ninterface AggregateFragmentAccumulator {\n modelCallCount: bigint\n reportedUsageCallCount: bigint\n usage: Record<AggregateUsageField, { presentCallCount: bigint; total: bigint }>\n amounts: Map<string, bigint>\n ratedCallCount: bigint\n unpriceableCallCount: bigint\n unvaluedCallCount: bigint\n}\n\nfunction aggregateFragmentAccumulator(): AggregateFragmentAccumulator {\n return {\n modelCallCount: 0n,\n reportedUsageCallCount: 0n,\n usage: Object.fromEntries(\n AGGREGATE_USAGE_FIELDS.map((field) => [field, { presentCallCount: 0n, total: 0n }])\n ) as AggregateFragmentAccumulator[\"usage\"],\n amounts: new Map(),\n ratedCallCount: 0n,\n unpriceableCallCount: 0n,\n unvaluedCallCount: 0n,\n }\n}\n\nfunction getFragmentAccumulator(\n values: Map<string, AggregateFragmentAccumulator>,\n key: string\n): AggregateFragmentAccumulator {\n const existing = values.get(key)\n if (existing) return existing\n const created = aggregateFragmentAccumulator()\n values.set(key, created)\n return created\n}\n\nfunction appendAggregateFragment(\n target: AggregateFragmentAccumulator,\n fragment: AiAccountingAggregateFragment\n): void {\n target.modelCallCount += naturalBigInt(fragment.modelCallCount, \"modelCallCount\")\n target.reportedUsageCallCount += naturalBigInt(\n fragment.usage.reportedCallCount,\n \"reported usage call count\"\n )\n for (const field of AGGREGATE_USAGE_FIELDS) {\n const source = fragment.usage[field]\n const presentCallCount = naturalBigInt(source.presentCallCount, `${field} call count`)\n target.usage[field].presentCallCount += presentCallCount\n if (source.total !== null) {\n target.usage[field].total += naturalBigInt(source.total, `${field} total`)\n } else if (presentCallCount !== 0n) {\n throw new TypeError(`[Sixb] AI accounting SQL ${field} total is missing.`)\n }\n }\n target.ratedCallCount += naturalBigInt(fragment.costs.ratedCallCount, \"rated call count\")\n target.unpriceableCallCount += naturalBigInt(\n fragment.costs.unpriceableCallCount,\n \"unpriceable call count\"\n )\n target.unvaluedCallCount += naturalBigInt(fragment.costs.unvaluedCallCount, \"unvalued call count\")\n if (fragment.costs.amount) {\n addAmount(target.amounts, fragment.costs.amount.currency, fragment.costs.amount.amountNanos)\n }\n}\n\nfunction finishAggregateFragment(value: AggregateFragmentAccumulator): AiAccountingAggregate {\n const classifiedCallCount =\n value.ratedCallCount + value.unpriceableCallCount + value.unvaluedCallCount\n if (\n classifiedCallCount !== value.modelCallCount ||\n value.reportedUsageCallCount > value.modelCallCount ||\n AGGREGATE_USAGE_FIELDS.some(\n (field) => value.usage[field].presentCallCount > value.modelCallCount\n )\n ) {\n throw new TypeError(\"[Sixb] AI accounting SQL aggregate counts are inconsistent.\")\n }\n const modelCallCount = safeAggregateNumber(value.modelCallCount, \"model-call count\")\n const usageInput: Partial<Record<AggregateUsageField, number>> = {}\n if (value.modelCallCount > 0n) {\n for (const field of AGGREGATE_USAGE_FIELDS) {\n const aggregate = value.usage[field]\n if (aggregate.presentCallCount === value.modelCallCount) {\n usageInput[field] = safeAggregateNumber(aggregate.total, field)\n }\n }\n }\n let usage: AiModelCallUsage = normalizeAiModelCallUsage(usageInput)\n if (usage.reportingStatus === \"unavailable\" && value.reportedUsageCallCount > 0n) {\n usage = { ...usage, reportingStatus: \"partial\" }\n }\n return {\n modelCallCount,\n usage,\n costs: {\n amounts: [...value.amounts]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, amountNanos]) => ({ currency, amountNanos: amountNanos.toString() })),\n ratedCallCount: safeAggregateNumber(value.ratedCallCount, \"rated call count\"),\n unpriceableCallCount: safeAggregateNumber(\n value.unpriceableCallCount,\n \"unpriceable call count\"\n ),\n unvaluedCallCount: safeAggregateNumber(value.unvaluedCallCount, \"unvalued call count\"),\n },\n }\n}\n\nfunction naturalBigInt(value: string, field: string): bigint {\n if (!/^(0|[1-9]\\d*)$/.test(value)) {\n throw new TypeError(`[Sixb] AI accounting SQL ${field} must be a natural integer.`)\n }\n return BigInt(value)\n}\n\nfunction safeAggregateNumber(value: bigint, field: string): number {\n if (value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new TypeError(`[Sixb] AI accounting ${field} exceeds the safe integer range.`)\n }\n return Number(value)\n}\n\nfunction requiredFragmentString(value: string | undefined, field: string): string {\n if (value === undefined || value.length === 0) {\n throw new TypeError(`[Sixb] AI accounting SQL ${field} is missing.`)\n }\n return value\n}\n\nfunction requiredFragmentDate(value: Date | undefined, field: string): Date {\n if (value === undefined) throw new TypeError(`[Sixb] AI accounting SQL ${field} is missing.`)\n assertDate(value, field)\n return value\n}\n\nfunction accountingPeriods(\n from: Date,\n to: Date,\n bucket: AiAccountingBucket\n): Array<{ start: Date; end: Date }> {\n const result: Array<{ start: Date; end: Date }> = []\n let cursor = aiAccountingBucketStart(from, bucket)\n while (cursor.getTime() < to.getTime()) {\n if (result.length >= MAX_CHART_BUCKETS) {\n throw new RangeError(`[Sixb] AI accounting query exceeds ${MAX_CHART_BUCKETS} chart buckets.`)\n }\n const next = nextBucket(cursor, bucket)\n result.push({ start: new Date(cursor), end: next })\n cursor = next\n }\n return result\n}\n\nfunction nextBucket(start: Date, bucket: AiAccountingBucket): Date {\n const next = new Date(start)\n if (bucket === \"hour\") next.setUTCHours(next.getUTCHours() + 1)\n else if (bucket === \"day\") next.setUTCDate(next.getUTCDate() + 1)\n else next.setUTCDate(next.getUTCDate() + 7)\n return next\n}\n\nfunction appendGrouped(\n groups: Map<string, AiAccountingRecordSetItem[]>,\n key: string,\n item: AiAccountingRecordSetItem\n): void {\n const existing = groups.get(key)\n if (existing) existing.push(item)\n else groups.set(key, [item])\n}\n\nfunction addAmount(amounts: Map<string, bigint>, currency: string, amountNanos: string): void {\n amounts.set(currency, (amounts.get(currency) ?? 0n) + BigInt(amountNanos))\n}\n\nfunction normalizePage(\n requestedLimit: number | undefined,\n requestedOffset: number | undefined\n): { limit: number; offset: number } {\n const limit = requestedLimit ?? DEFAULT_MODEL_CALL_PAGE_SIZE\n const offset = requestedOffset ?? 0\n if (!Number.isSafeInteger(limit) || limit < 1 || limit > MAX_MODEL_CALL_PAGE_SIZE) {\n throw new TypeError(\n `[Sixb] AI accounting list limit must be an integer between 1 and ${MAX_MODEL_CALL_PAGE_SIZE}.`\n )\n }\n if (!Number.isSafeInteger(offset) || offset < 0) {\n throw new TypeError(\"[Sixb] AI accounting list offset must be a non-negative integer.\")\n }\n return { limit, offset }\n}\n\nfunction compareAccountingItems(\n left: AiModelCallAccountingItem,\n right: AiModelCallAccountingItem\n): number {\n return (\n right.usage.occurredAt.getTime() - left.usage.occurredAt.getTime() ||\n left.usage.id.localeCompare(right.usage.id)\n )\n}\n\nfunction compareAgentBreakdowns(\n left: AiAccountingAgentBreakdown,\n right: AiAccountingAgentBreakdown\n): number {\n return (\n right.modelCallCount - left.modelCallCount ||\n agentBreakdownKey(left).localeCompare(agentBreakdownKey(right))\n )\n}\n\nfunction agentBreakdownKey(value: AiAccountingAgentBreakdown): string {\n return value.kind === \"agent\"\n ? \"agent\"\n : JSON.stringify([\"workflowAgent\", value.workflowId, value.agentStepId])\n}\n\nfunction compareWorkflowBreakdowns(\n left: AiAccountingWorkflowBreakdown,\n right: AiAccountingWorkflowBreakdown\n): number {\n return (\n right.modelCallCount - left.modelCallCount || left.workflowId.localeCompare(right.workflowId)\n )\n}\n\nfunction compareModelBreakdowns(\n left: AiAccountingModelBreakdown,\n right: AiAccountingModelBreakdown\n): number {\n return (\n right.modelCallCount - left.modelCallCount ||\n left.providerId.localeCompare(right.providerId) ||\n left.modelId.localeCompare(right.modelId)\n )\n}\n\nfunction assertAiAccountingBucket(bucket: AiAccountingBucket): void {\n if (bucket !== \"hour\" && bucket !== \"day\" && bucket !== \"week\") {\n throw new TypeError(\"[Sixb] AI accounting bucket must be hour, day, or week.\")\n }\n}\n\nfunction assertDate(value: Date, label: string): void {\n if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {\n throw new TypeError(`[Sixb] AI ${label} must be a valid Date.`)\n }\n}\n\nfunction assertNonBlank(value: string, label: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`[Sixb] AI ${label} must be nonblank.`)\n }\n}\n",
7
+ "import { type AiModelCallUsageRecord, normalizeAiModelCallUsage } from \"../ai-usage\"\nimport type {\n AiAccountingAgentBreakdown,\n AiAccountingAggregate,\n AiAccountingAttribution,\n AiAccountingBucket,\n AiAccountingModelBreakdown,\n AiAccountingOverview,\n AiAccountingTimeBucket,\n AiAccountingWorkflowBreakdown,\n AiCostSummary,\n AiModelCallAccountingItem,\n AiModelCallCostRecord,\n AiMoney,\n ListAiModelCallAccountingInput,\n ListAiModelCallAccountingResult,\n QueryAiAccountingOverviewInput,\n} from \"./types\"\n\nconst DEFAULT_MODEL_CALL_PAGE_SIZE = 50\nconst MAX_MODEL_CALL_PAGE_SIZE = 200\nconst MAX_CHART_BUCKETS = 10_000\n\n/** One joined immutable model-call row used by in-memory analytics and bounded SQL pages. */\nexport interface AiAccountingRecordSetItem {\n readonly usage: AiModelCallUsageRecord\n readonly attribution?: AiAccountingAttribution\n readonly cost?: AiModelCallCostRecord\n}\n\nexport interface NormalizedAiAccountingQuery {\n readonly projectId: string\n readonly from: Date\n readonly to: Date\n readonly providerId?: string\n readonly modelId?: string\n}\n\nexport interface NormalizedAiModelCallAccountingQuery extends NormalizedAiAccountingQuery {\n readonly executionId?: string\n readonly valuationStatus?: ListAiModelCallAccountingInput[\"valuationStatus\"]\n readonly limit: number\n readonly offset: number\n}\n\ninterface AiAccountingUsageMeterFragment {\n readonly presentCallCount: string\n readonly total: string | null\n}\n\n/** One SQL-aggregated currency fragment; providers merge fragments without loading model calls. */\nexport interface AiAccountingAggregateFragment {\n readonly dimension: \"totals\" | \"series\" | \"model\" | \"agent\" | \"workflow\"\n readonly start?: Date\n readonly providerId?: string\n readonly modelId?: string\n readonly agentKind?: \"agent\" | \"workflowAgent\"\n readonly agentStepId?: string\n readonly workflowId?: string\n readonly modelCallCount: string\n readonly usage: {\n readonly reportedCallCount: string\n readonly completeCallCount: string\n readonly inputTokens: AiAccountingUsageMeterFragment\n readonly outputTokens: AiAccountingUsageMeterFragment\n readonly uncachedInputTokens: AiAccountingUsageMeterFragment\n readonly cacheReadInputTokens: AiAccountingUsageMeterFragment\n readonly cacheWriteInputTokens: AiAccountingUsageMeterFragment\n readonly textOutputTokens: AiAccountingUsageMeterFragment\n readonly reasoningOutputTokens: AiAccountingUsageMeterFragment\n }\n readonly costs: {\n readonly amount?: AiMoney\n readonly ratedCallCount: string\n readonly unpriceableCallCount: string\n readonly unvaluedCallCount: string\n }\n}\n\nexport function normalizeAiAccountingQuery(\n input: Omit<QueryAiAccountingOverviewInput, \"bucket\"> | ListAiModelCallAccountingInput\n): NormalizedAiAccountingQuery {\n assertNonBlank(input.projectId, \"accounting projectId\")\n assertDate(input.from, \"accounting from\")\n assertDate(input.to, \"accounting to\")\n if (input.from.getTime() >= input.to.getTime()) {\n throw new TypeError(\"[Sixb] AI accounting from must be before to.\")\n }\n if (input.providerId !== undefined) assertNonBlank(input.providerId, \"accounting providerId\")\n if (input.modelId !== undefined) assertNonBlank(input.modelId, \"accounting modelId\")\n return {\n projectId: input.projectId,\n from: new Date(input.from),\n to: new Date(input.to),\n ...(input.providerId === undefined ? {} : { providerId: input.providerId }),\n ...(input.modelId === undefined ? {} : { modelId: input.modelId }),\n }\n}\n\nexport function normalizeAiModelCallAccountingQuery(\n input: ListAiModelCallAccountingInput\n): NormalizedAiModelCallAccountingQuery {\n const query = normalizeAiAccountingQuery(input)\n if (input.executionId !== undefined) {\n assertNonBlank(input.executionId, \"accounting executionId\")\n }\n const { limit, offset } = normalizePage(input.limit, input.offset)\n return {\n ...query,\n ...(input.executionId === undefined ? {} : { executionId: input.executionId }),\n ...(input.valuationStatus === undefined ? {} : { valuationStatus: input.valuationStatus }),\n limit,\n offset,\n }\n}\n\nexport function aiAccountingItemMatchesQuery(\n item: AiAccountingRecordSetItem,\n query: NormalizedAiAccountingQuery\n): boolean {\n const occurredAt = item.usage.occurredAt.getTime()\n return (\n item.usage.projectId === query.projectId &&\n occurredAt >= query.from.getTime() &&\n occurredAt < query.to.getTime() &&\n (query.providerId === undefined || item.usage.providerId === query.providerId) &&\n (query.modelId === undefined || item.usage.requestedModelId === query.modelId)\n )\n}\n\nexport function buildAiAccountingOverview(\n input: QueryAiAccountingOverviewInput,\n source: Iterable<AiAccountingRecordSetItem>\n): AiAccountingOverview {\n const query = normalizeAiAccountingQuery(input)\n assertAiAccountingBucket(input.bucket)\n const items = Array.from(source).filter((item) => aiAccountingItemMatchesQuery(item, query))\n const periods = accountingPeriods(query.from, query.to, input.bucket)\n const periodItems = new Map<number, AiAccountingRecordSetItem[]>(\n periods.map((period) => [period.start.getTime(), []])\n )\n const modelItems = new Map<string, AiAccountingRecordSetItem[]>()\n const agentItems = new Map<string, AiAccountingRecordSetItem[]>()\n const workflowItems = new Map<string, AiAccountingRecordSetItem[]>()\n\n for (const item of items) {\n const periodStart = aiAccountingBucketStart(item.usage.occurredAt, input.bucket).getTime()\n periodItems.get(periodStart)?.push(item)\n appendGrouped(\n modelItems,\n JSON.stringify([item.usage.providerId, item.usage.requestedModelId]),\n item\n )\n if (item.attribution?.kind === \"agent\") {\n appendGrouped(agentItems, JSON.stringify([\"agent\"]), item)\n } else if (item.attribution?.kind === \"workflowAgent\") {\n appendGrouped(\n agentItems,\n JSON.stringify([\n \"workflowAgent\",\n item.attribution.workflowId,\n item.attribution.agentStepId,\n ]),\n item\n )\n }\n if (item.attribution?.kind === \"workflowAgent\" || item.attribution?.kind === \"workflow\") {\n appendGrouped(workflowItems, item.attribution.workflowId, item)\n }\n }\n\n const series: AiAccountingTimeBucket[] = periods.map((period) => ({\n ...period,\n ...aggregateAccountingItems(periodItems.get(period.start.getTime()) ?? []),\n }))\n const models: AiAccountingModelBreakdown[] = [...modelItems]\n .map(([key, grouped]) => {\n const [providerId, modelId] = JSON.parse(key) as [string, string]\n return { providerId, modelId, ...aggregateAccountingItems(grouped) }\n })\n .sort(compareModelBreakdowns)\n const agents: AiAccountingAgentBreakdown[] = [...agentItems]\n .map(([key, grouped]) => {\n const [kind, workflowId, agentStepId] = JSON.parse(key) as [\n \"agent\" | \"workflowAgent\",\n string?,\n string?,\n ]\n return kind === \"agent\"\n ? { kind, ...aggregateAccountingItems(grouped) }\n : {\n kind,\n workflowId: requiredFragmentString(workflowId, \"workflowId\"),\n agentStepId: requiredFragmentString(agentStepId, \"agentStepId\"),\n ...aggregateAccountingItems(grouped),\n }\n })\n .sort(compareAgentBreakdowns)\n const workflows: AiAccountingWorkflowBreakdown[] = [...workflowItems]\n .map(([workflowId, grouped]) => ({ workflowId, ...aggregateAccountingItems(grouped) }))\n .sort(compareWorkflowBreakdowns)\n\n return structuredClone({\n range: { from: query.from, to: query.to },\n bucket: input.bucket,\n totals: aggregateAccountingItems(items),\n series,\n models,\n agents,\n workflows,\n })\n}\n\nexport function buildAiAccountingOverviewFromFragments(\n input: QueryAiAccountingOverviewInput,\n fragments: Iterable<AiAccountingAggregateFragment>\n): AiAccountingOverview {\n const query = normalizeAiAccountingQuery(input)\n const periods = accountingPeriods(query.from, query.to, input.bucket)\n const totals = aggregateFragmentAccumulator()\n const series = new Map<number, AggregateFragmentAccumulator>(\n periods.map((period) => [period.start.getTime(), aggregateFragmentAccumulator()])\n )\n const models = new Map<string, AggregateFragmentAccumulator>()\n const agents = new Map<string, AggregateFragmentAccumulator>()\n const workflows = new Map<string, AggregateFragmentAccumulator>()\n\n for (const fragment of fragments) {\n let target: AggregateFragmentAccumulator\n switch (fragment.dimension) {\n case \"totals\":\n target = totals\n break\n case \"series\": {\n const start = requiredFragmentDate(fragment.start, \"series start\")\n const existing = series.get(start.getTime())\n if (!existing) {\n throw new TypeError(\"[Sixb] AI accounting SQL series returned an unexpected bucket.\")\n }\n target = existing\n break\n }\n case \"model\":\n target = getFragmentAccumulator(\n models,\n JSON.stringify([\n requiredFragmentString(fragment.providerId, \"providerId\"),\n requiredFragmentString(fragment.modelId, \"modelId\"),\n ])\n )\n break\n case \"agent\":\n target = getFragmentAccumulator(\n agents,\n JSON.stringify([\n requiredFragmentString(fragment.agentKind, \"agentKind\"),\n fragment.workflowId,\n fragment.agentStepId,\n ])\n )\n break\n case \"workflow\":\n target = getFragmentAccumulator(\n workflows,\n requiredFragmentString(fragment.workflowId, \"workflowId\")\n )\n break\n }\n appendAggregateFragment(target, fragment)\n }\n\n return structuredClone({\n range: { from: query.from, to: query.to },\n bucket: input.bucket,\n totals: finishAggregateFragment(totals),\n series: periods.map((period) => ({\n ...period,\n ...finishAggregateFragment(series.get(period.start.getTime())!),\n })),\n models: [...models]\n .map(([key, value]) => {\n const [providerId, modelId] = JSON.parse(key) as [string, string]\n return { providerId, modelId, ...finishAggregateFragment(value) }\n })\n .sort(compareModelBreakdowns),\n agents: [...agents]\n .map(([key, value]) => {\n const [kind, workflowId, agentStepId] = JSON.parse(key) as [\n \"agent\" | \"workflowAgent\",\n string?,\n string?,\n ]\n return kind === \"agent\"\n ? { kind, ...finishAggregateFragment(value) }\n : {\n kind,\n workflowId: requiredFragmentString(workflowId, \"workflowId\"),\n agentStepId: requiredFragmentString(agentStepId, \"agentStepId\"),\n ...finishAggregateFragment(value),\n }\n })\n .sort(compareAgentBreakdowns),\n workflows: [...workflows]\n .map(([workflowId, value]) => ({ workflowId, ...finishAggregateFragment(value) }))\n .sort(compareWorkflowBreakdowns),\n })\n}\n\nexport function buildAiModelCallAccountingList(\n input: ListAiModelCallAccountingInput,\n source: Iterable<AiAccountingRecordSetItem>\n): ListAiModelCallAccountingResult {\n const query = normalizeAiModelCallAccountingQuery(input)\n const { limit, offset } = query\n const items = Array.from(source)\n .filter((item) => aiAccountingItemMatchesQuery(item, query))\n .map(toAccountingItem)\n .filter(\n (item) =>\n (input.executionId === undefined || item.usage.executionId === input.executionId) &&\n (input.valuationStatus === undefined || item.valuationStatus === input.valuationStatus)\n )\n .sort(compareAccountingItems)\n const page = items.slice(offset, offset + limit)\n return structuredClone({\n items: page,\n hasMore: offset + page.length < items.length,\n total: items.length,\n })\n}\n\nexport function toAccountingItem(item: AiAccountingRecordSetItem): AiModelCallAccountingItem {\n return {\n usage: item.usage,\n ...(item.attribution === undefined ? {} : { attribution: item.attribution }),\n ...(item.cost === undefined ? {} : { cost: item.cost }),\n valuationStatus: item.cost?.status ?? \"unvalued\",\n }\n}\n\nexport function aiAccountingBucketStart(at: Date, bucket: AiAccountingBucket): Date {\n assertDate(at, \"accounting bucket timestamp\")\n assertAiAccountingBucket(bucket)\n const start = new Date(at)\n start.setUTCMinutes(0, 0, 0)\n if (bucket === \"hour\") return start\n start.setUTCHours(0)\n if (bucket === \"day\") return start\n const mondayOffset = (start.getUTCDay() + 6) % 7\n start.setUTCDate(start.getUTCDate() - mondayOffset)\n return start\n}\n\nfunction aggregateAccountingItems(\n items: readonly AiAccountingRecordSetItem[]\n): AiAccountingAggregate {\n const value = aggregateFragmentAccumulator()\n value.modelCallCount = BigInt(items.length)\n for (const item of items) {\n const usage = normalizeAiModelCallUsage(item.usage.usage)\n if (usage.reportingStatus !== \"unavailable\") value.reportedUsageCallCount += 1n\n if (usage.reportingStatus === \"complete\") value.completeUsageCallCount += 1n\n for (const field of AGGREGATE_USAGE_FIELDS) {\n if (usage[field] === undefined) continue\n value.usage[field].presentCallCount += 1n\n value.usage[field].total += BigInt(usage[field])\n }\n }\n return {\n modelCallCount: items.length,\n ...finishAggregateUsage(value),\n costs: aggregateCosts(items),\n }\n}\n\nfunction aggregateCosts(items: readonly AiAccountingRecordSetItem[]): AiCostSummary {\n const amounts = new Map<string, bigint>()\n let ratedCallCount = 0\n let unpriceableCallCount = 0\n let unvaluedCallCount = 0\n for (const item of items) {\n if (item.cost?.status === \"rated\") {\n ratedCallCount += 1\n addAmount(amounts, item.cost.money.currency, item.cost.money.amountNanos)\n } else if (item.cost?.status === \"unpriceable\") {\n unpriceableCallCount += 1\n } else {\n unvaluedCallCount += 1\n }\n }\n return {\n amounts: [...amounts]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, amountNanos]) => ({ currency, amountNanos: amountNanos.toString() })),\n ratedCallCount,\n unpriceableCallCount,\n unvaluedCallCount,\n }\n}\n\nconst AGGREGATE_USAGE_FIELDS = [\n \"inputTokens\",\n \"outputTokens\",\n \"uncachedInputTokens\",\n \"cacheReadInputTokens\",\n \"cacheWriteInputTokens\",\n \"textOutputTokens\",\n \"reasoningOutputTokens\",\n] as const\n\ntype AggregateUsageField = (typeof AGGREGATE_USAGE_FIELDS)[number]\n\ninterface AggregateFragmentAccumulator {\n modelCallCount: bigint\n reportedUsageCallCount: bigint\n completeUsageCallCount: bigint\n usage: Record<AggregateUsageField, { presentCallCount: bigint; total: bigint }>\n amounts: Map<string, bigint>\n ratedCallCount: bigint\n unpriceableCallCount: bigint\n unvaluedCallCount: bigint\n}\n\nfunction aggregateFragmentAccumulator(): AggregateFragmentAccumulator {\n return {\n modelCallCount: 0n,\n reportedUsageCallCount: 0n,\n completeUsageCallCount: 0n,\n usage: Object.fromEntries(\n AGGREGATE_USAGE_FIELDS.map((field) => [field, { presentCallCount: 0n, total: 0n }])\n ) as AggregateFragmentAccumulator[\"usage\"],\n amounts: new Map(),\n ratedCallCount: 0n,\n unpriceableCallCount: 0n,\n unvaluedCallCount: 0n,\n }\n}\n\nfunction getFragmentAccumulator(\n values: Map<string, AggregateFragmentAccumulator>,\n key: string\n): AggregateFragmentAccumulator {\n const existing = values.get(key)\n if (existing) return existing\n const created = aggregateFragmentAccumulator()\n values.set(key, created)\n return created\n}\n\nfunction appendAggregateFragment(\n target: AggregateFragmentAccumulator,\n fragment: AiAccountingAggregateFragment\n): void {\n target.modelCallCount += naturalBigInt(fragment.modelCallCount, \"modelCallCount\")\n target.reportedUsageCallCount += naturalBigInt(\n fragment.usage.reportedCallCount,\n \"reported usage call count\"\n )\n target.completeUsageCallCount += naturalBigInt(\n fragment.usage.completeCallCount,\n \"complete usage call count\"\n )\n for (const field of AGGREGATE_USAGE_FIELDS) {\n const source = fragment.usage[field]\n const presentCallCount = naturalBigInt(source.presentCallCount, `${field} call count`)\n target.usage[field].presentCallCount += presentCallCount\n if (source.total !== null) {\n target.usage[field].total += naturalBigInt(source.total, `${field} total`)\n } else if (presentCallCount !== 0n) {\n throw new TypeError(`[Sixb] AI accounting SQL ${field} total is missing.`)\n }\n }\n target.ratedCallCount += naturalBigInt(fragment.costs.ratedCallCount, \"rated call count\")\n target.unpriceableCallCount += naturalBigInt(\n fragment.costs.unpriceableCallCount,\n \"unpriceable call count\"\n )\n target.unvaluedCallCount += naturalBigInt(fragment.costs.unvaluedCallCount, \"unvalued call count\")\n if (fragment.costs.amount) {\n addAmount(target.amounts, fragment.costs.amount.currency, fragment.costs.amount.amountNanos)\n }\n}\n\nfunction finishAggregateFragment(value: AggregateFragmentAccumulator): AiAccountingAggregate {\n const classifiedCallCount =\n value.ratedCallCount + value.unpriceableCallCount + value.unvaluedCallCount\n if (\n classifiedCallCount !== value.modelCallCount ||\n value.reportedUsageCallCount > value.modelCallCount ||\n value.completeUsageCallCount > value.reportedUsageCallCount ||\n AGGREGATE_USAGE_FIELDS.some(\n (field) => value.usage[field].presentCallCount > value.modelCallCount\n )\n ) {\n throw new TypeError(\"[Sixb] AI accounting SQL aggregate counts are inconsistent.\")\n }\n const modelCallCount = safeAggregateNumber(value.modelCallCount, \"model-call count\")\n return {\n modelCallCount,\n ...finishAggregateUsage(value),\n costs: {\n amounts: [...value.amounts]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, amountNanos]) => ({ currency, amountNanos: amountNanos.toString() })),\n ratedCallCount: safeAggregateNumber(value.ratedCallCount, \"rated call count\"),\n unpriceableCallCount: safeAggregateNumber(\n value.unpriceableCallCount,\n \"unpriceable call count\"\n ),\n unvaluedCallCount: safeAggregateNumber(value.unvaluedCallCount, \"unvalued call count\"),\n },\n }\n}\n\nfunction finishAggregateUsage(\n value: AggregateFragmentAccumulator\n): Pick<AiAccountingAggregate, \"usage\" | \"usageCoverage\"> {\n const counts: Partial<Record<AggregateUsageField | \"totalTokens\", number>> = {}\n const fieldCallCounts = {} as Record<AggregateUsageField, number>\n for (const field of AGGREGATE_USAGE_FIELDS) {\n const aggregate = value.usage[field]\n fieldCallCounts[field] = safeAggregateNumber(aggregate.presentCallCount, `${field} call count`)\n if (aggregate.presentCallCount > 0n) {\n counts[field] = safeAggregateNumber(aggregate.total, field)\n }\n }\n // Only the top-level meters contribute: cache/reasoning partitions overlap them.\n if (counts.inputTokens !== undefined || counts.outputTokens !== undefined) {\n counts.totalTokens = safeAggregateNumber(\n value.usage.inputTokens.total + value.usage.outputTokens.total,\n \"totalTokens\"\n )\n }\n return {\n usage: {\n ...counts,\n reportingStatus:\n value.reportedUsageCallCount === 0n\n ? \"unavailable\"\n : value.completeUsageCallCount === value.modelCallCount\n ? \"complete\"\n : \"partial\",\n },\n usageCoverage: {\n completeCallCount: safeAggregateNumber(value.completeUsageCallCount, \"complete call count\"),\n fieldCallCounts,\n },\n }\n}\n\nfunction naturalBigInt(value: string, field: string): bigint {\n if (!/^(0|[1-9]\\d*)$/.test(value)) {\n throw new TypeError(`[Sixb] AI accounting SQL ${field} must be a natural integer.`)\n }\n return BigInt(value)\n}\n\nfunction safeAggregateNumber(value: bigint, field: string): number {\n if (value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new TypeError(`[Sixb] AI accounting ${field} exceeds the safe integer range.`)\n }\n return Number(value)\n}\n\nfunction requiredFragmentString(value: string | undefined, field: string): string {\n if (value === undefined || value.length === 0) {\n throw new TypeError(`[Sixb] AI accounting SQL ${field} is missing.`)\n }\n return value\n}\n\nfunction requiredFragmentDate(value: Date | undefined, field: string): Date {\n if (value === undefined) throw new TypeError(`[Sixb] AI accounting SQL ${field} is missing.`)\n assertDate(value, field)\n return value\n}\n\nfunction accountingPeriods(\n from: Date,\n to: Date,\n bucket: AiAccountingBucket\n): Array<{ start: Date; end: Date }> {\n const result: Array<{ start: Date; end: Date }> = []\n let cursor = aiAccountingBucketStart(from, bucket)\n while (cursor.getTime() < to.getTime()) {\n if (result.length >= MAX_CHART_BUCKETS) {\n throw new RangeError(`[Sixb] AI accounting query exceeds ${MAX_CHART_BUCKETS} chart buckets.`)\n }\n const next = nextBucket(cursor, bucket)\n result.push({ start: new Date(cursor), end: next })\n cursor = next\n }\n return result\n}\n\nfunction nextBucket(start: Date, bucket: AiAccountingBucket): Date {\n const next = new Date(start)\n if (bucket === \"hour\") next.setUTCHours(next.getUTCHours() + 1)\n else if (bucket === \"day\") next.setUTCDate(next.getUTCDate() + 1)\n else next.setUTCDate(next.getUTCDate() + 7)\n return next\n}\n\nfunction appendGrouped(\n groups: Map<string, AiAccountingRecordSetItem[]>,\n key: string,\n item: AiAccountingRecordSetItem\n): void {\n const existing = groups.get(key)\n if (existing) existing.push(item)\n else groups.set(key, [item])\n}\n\nfunction addAmount(amounts: Map<string, bigint>, currency: string, amountNanos: string): void {\n amounts.set(currency, (amounts.get(currency) ?? 0n) + BigInt(amountNanos))\n}\n\nfunction normalizePage(\n requestedLimit: number | undefined,\n requestedOffset: number | undefined\n): { limit: number; offset: number } {\n const limit = requestedLimit ?? DEFAULT_MODEL_CALL_PAGE_SIZE\n const offset = requestedOffset ?? 0\n if (!Number.isSafeInteger(limit) || limit < 1 || limit > MAX_MODEL_CALL_PAGE_SIZE) {\n throw new TypeError(\n `[Sixb] AI accounting list limit must be an integer between 1 and ${MAX_MODEL_CALL_PAGE_SIZE}.`\n )\n }\n if (!Number.isSafeInteger(offset) || offset < 0) {\n throw new TypeError(\"[Sixb] AI accounting list offset must be a non-negative integer.\")\n }\n return { limit, offset }\n}\n\nfunction compareAccountingItems(\n left: AiModelCallAccountingItem,\n right: AiModelCallAccountingItem\n): number {\n return (\n right.usage.occurredAt.getTime() - left.usage.occurredAt.getTime() ||\n left.usage.id.localeCompare(right.usage.id)\n )\n}\n\nfunction compareAgentBreakdowns(\n left: AiAccountingAgentBreakdown,\n right: AiAccountingAgentBreakdown\n): number {\n return (\n right.modelCallCount - left.modelCallCount ||\n agentBreakdownKey(left).localeCompare(agentBreakdownKey(right))\n )\n}\n\nfunction agentBreakdownKey(value: AiAccountingAgentBreakdown): string {\n return value.kind === \"agent\"\n ? \"agent\"\n : JSON.stringify([\"workflowAgent\", value.workflowId, value.agentStepId])\n}\n\nfunction compareWorkflowBreakdowns(\n left: AiAccountingWorkflowBreakdown,\n right: AiAccountingWorkflowBreakdown\n): number {\n return (\n right.modelCallCount - left.modelCallCount || left.workflowId.localeCompare(right.workflowId)\n )\n}\n\nfunction compareModelBreakdowns(\n left: AiAccountingModelBreakdown,\n right: AiAccountingModelBreakdown\n): number {\n return (\n right.modelCallCount - left.modelCallCount ||\n left.providerId.localeCompare(right.providerId) ||\n left.modelId.localeCompare(right.modelId)\n )\n}\n\nfunction assertAiAccountingBucket(bucket: AiAccountingBucket): void {\n if (bucket !== \"hour\" && bucket !== \"day\" && bucket !== \"week\") {\n throw new TypeError(\"[Sixb] AI accounting bucket must be hour, day, or week.\")\n }\n}\n\nfunction assertDate(value: Date, label: string): void {\n if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {\n throw new TypeError(`[Sixb] AI ${label} must be a valid Date.`)\n }\n}\n\nfunction assertNonBlank(value: string, label: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`[Sixb] AI ${label} must be nonblank.`)\n }\n}\n",
8
8
  "import type { AiAccountingAttribution } from \"./types\"\n\n/** Direct calls are identified by durable provenance, even when their run has been removed. */\nexport function directModelCallAttribution(\n kind: string | null,\n id: string | null,\n primitiveId: string | null\n): AiAccountingAttribution | undefined {\n if (!id) return undefined\n if (kind === \"request\") return { kind, requestId: id }\n if (kind === \"action\" && primitiveId) return { kind, actionId: primitiveId, actionRunId: id }\n if (kind === \"workflow\" && primitiveId)\n return { kind, workflowId: primitiveId, workflowRunId: id }\n return undefined\n}\n",
9
9
  "import type { AiAccountingRecordSetItem } from \"./analytics\"\nimport { aiAccountingItemMatchesQuery, normalizeAiModelCallAccountingQuery } from \"./analytics\"\nimport { directModelCallAttribution } from \"./attribution\"\nimport type {\n AiAccountingAttribution,\n AiBillingIdentity,\n AiCostSummary,\n AiModelCallExecutionSummary,\n AiModelCallGroup,\n AiModelCallGroupSummary,\n AiMoney,\n ListAiModelCallGroupsInput,\n ListAiModelCallGroupsResult,\n} from \"./types\"\n\nexport interface AiAccountingGroupIdentity {\n readonly executionId: string\n readonly attribution?: AiAccountingAttribution\n}\n\n/** A compact SQL aggregate, never the raw provider response or a page of individual calls. */\nexport interface AiModelCallGroupFragment {\n readonly root: AiAccountingGroupIdentity\n readonly execution: AiAccountingGroupIdentity\n readonly model: AiBillingIdentity\n readonly firstCallAt: Date\n readonly lastCallAt: Date\n readonly callCount: string\n readonly tokenCount: string\n readonly totalTokens: string | null\n readonly valuationStatus: \"rated\" | \"unpriceable\" | \"unvalued\"\n readonly money?: AiMoney\n}\n\n/** Common provider projection; SQL groups meters before returning rows to the runtime. */\nexport interface AiModelCallGroupRow {\n readonly root_execution_id: string\n readonly execution_id: string\n readonly provider_id: string\n readonly requested_model_id: string\n readonly first_call_at: Date | string\n readonly last_call_at: Date | string\n readonly call_count: string\n readonly token_count: string\n readonly total_tokens: string | null\n readonly valuation_status: AiModelCallGroupFragment[\"valuationStatus\"]\n readonly amount_currency: string | null\n readonly amount_high: string | null\n readonly amount_middle: string | null\n readonly amount_low: string | null\n readonly root_agent_run_id: string | null\n readonly root_thread_id: string | null\n readonly direct_kind: string | null\n readonly direct_run_id: string | null\n readonly parent_run_id: string | null\n readonly workflow_agent_step_id: string | null\n readonly workflow_node_run_id: string | null\n readonly workflow_id: string | null\n readonly workflow_run_id: string | null\n readonly executor_kind: string | null\n readonly executor_id: string | null\n readonly primitive_id: string | null\n}\n\nexport function aiModelCallGroupFragmentFromRow(\n row: AiModelCallGroupRow\n): AiModelCallGroupFragment {\n let attribution = directModelCallAttribution(row.executor_kind, row.executor_id, row.primitive_id)\n if (row.root_agent_run_id && row.root_thread_id) {\n attribution = {\n kind: \"agent\",\n agentRunId: row.root_agent_run_id,\n threadId: row.root_thread_id,\n }\n } else if (\n row.workflow_agent_step_id &&\n row.workflow_node_run_id &&\n row.workflow_id &&\n row.workflow_run_id\n ) {\n attribution = {\n kind: \"workflowAgent\",\n agentStepId: row.workflow_agent_step_id,\n nodeRunId: row.workflow_node_run_id,\n workflowId: row.workflow_id,\n workflowRunId: row.workflow_run_id,\n }\n }\n const executionAttribution: AiAccountingAttribution | undefined =\n row.direct_kind === \"subagent\" && row.direct_run_id && row.parent_run_id\n ? { kind: \"subagent\", subagentRunId: row.direct_run_id, parentRunId: row.parent_run_id }\n : attribution\n return {\n root: { executionId: row.root_execution_id, attribution },\n execution: { executionId: row.execution_id, attribution: executionAttribution },\n model: { providerId: row.provider_id, modelId: row.requested_model_id },\n firstCallAt: new Date(row.first_call_at),\n lastCallAt: new Date(row.last_call_at),\n callCount: row.call_count,\n tokenCount: row.token_count,\n totalTokens: row.total_tokens,\n valuationStatus: row.valuation_status,\n ...(row.amount_currency === null\n ? {}\n : {\n money: {\n currency: row.amount_currency,\n amountNanos: (\n BigInt(row.amount_high ?? \"0\") * 1_000_000_000_000n +\n BigInt(row.amount_middle ?? \"0\") * 1_000_000n +\n BigInt(row.amount_low ?? \"0\")\n ).toString(),\n },\n }),\n }\n}\n\nexport function buildAiModelCallGroupsFromFragments(\n fragments: readonly AiModelCallGroupFragment[]\n): readonly AiModelCallGroup[] {\n const roots = new Map<string, AiModelCallGroupFragment[]>()\n for (const fragment of fragments) append(roots, fragment.root.executionId, fragment)\n return [...roots.values()]\n .map((rootFragments): AiModelCallGroup => {\n const first = rootFragments[0]!\n const executions = new Map<string, AiModelCallGroupFragment[]>()\n for (const fragment of rootFragments)\n append(executions, fragment.execution.executionId, fragment)\n return {\n ...first.root,\n ...summarize(rootFragments),\n ...timeRange(rootFragments),\n executions: [...executions.values()]\n .map(\n (items): AiModelCallExecutionSummary => ({\n ...items[0]!.execution,\n ...summarize(items),\n ...timeRange(items),\n models: [\n ...new Map(items.map(({ model }) => [JSON.stringify(model), model])).values(),\n ].sort(\n (a, b) =>\n compareText(a.providerId, b.providerId) || compareText(a.modelId, b.modelId)\n ),\n })\n )\n .sort(\n (a, b) =>\n a.firstCallAt.getTime() - b.firstCallAt.getTime() ||\n compareText(a.executionId, b.executionId)\n ),\n }\n })\n .sort(\n (a, b) =>\n b.lastCallAt.getTime() - a.lastCallAt.getTime() || compareText(a.executionId, b.executionId)\n )\n}\n\nexport function buildAiModelCallGroups(\n input: ListAiModelCallGroupsInput,\n source: readonly (AiAccountingRecordSetItem & { readonly root: AiAccountingGroupIdentity })[]\n): ListAiModelCallGroupsResult {\n const query = normalizeAiModelCallAccountingQuery(input)\n const fragments = source\n .filter(\n (item) =>\n aiAccountingItemMatchesQuery(item, query) &&\n (query.valuationStatus === undefined ||\n (item.cost?.status ?? \"unvalued\") === query.valuationStatus)\n )\n .map(\n (item): AiModelCallGroupFragment => ({\n root: item.root,\n execution: { executionId: item.usage.executionId, attribution: item.attribution },\n model: { providerId: item.usage.providerId, modelId: item.usage.requestedModelId },\n firstCallAt: item.usage.occurredAt,\n lastCallAt: item.usage.occurredAt,\n callCount: \"1\",\n tokenCount: item.usage.usage.totalTokens === undefined ? \"0\" : \"1\",\n totalTokens: item.usage.usage.totalTokens?.toString() ?? null,\n valuationStatus: item.cost?.status ?? \"unvalued\",\n ...(item.cost && item.cost.status !== \"unpriceable\" ? { money: item.cost.money } : {}),\n })\n )\n const groups = buildAiModelCallGroupsFromFragments(fragments)\n const items = groups.slice(query.offset, query.offset + query.limit)\n return structuredClone({\n items,\n total: groups.length,\n hasMore: query.offset + items.length < groups.length,\n })\n}\n\nfunction summarize(items: readonly AiModelCallGroupFragment[]): AiModelCallGroupSummary {\n let calls = 0n\n let tokenCount = 0n\n let tokens = 0n\n const counts = { rated: 0n, unpriceable: 0n, unvalued: 0n }\n const money = new Map<string, bigint>()\n for (const item of items) {\n const count = BigInt(item.callCount)\n calls += count\n tokenCount += BigInt(item.tokenCount)\n tokens += BigInt(item.totalTokens ?? \"0\")\n counts[item.valuationStatus] += count\n if (item.money)\n money.set(\n item.money.currency,\n (money.get(item.money.currency) ?? 0n) + BigInt(item.money.amountNanos)\n )\n }\n const costs: AiCostSummary = {\n amounts: [...money]\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([currency, amount]) => ({ currency, amountNanos: amount.toString() })),\n ratedCallCount: safeCount(counts.rated),\n unpriceableCallCount: safeCount(counts.unpriceable),\n unvaluedCallCount: safeCount(counts.unvalued),\n }\n return {\n modelCallCount: safeCount(calls),\n ...(calls === tokenCount ? { totalTokens: safeCount(tokens) } : {}),\n costs,\n }\n}\n\nfunction timeRange(items: readonly AiModelCallGroupFragment[]) {\n let first = items[0]!.firstCallAt.getTime()\n let last = items[0]!.lastCallAt.getTime()\n for (const item of items) {\n first = Math.min(first, item.firstCallAt.getTime())\n last = Math.max(last, item.lastCallAt.getTime())\n }\n return { firstCallAt: new Date(first), lastCallAt: new Date(last) }\n}\n\nfunction compareText(a: string, b: string): number {\n return a === b ? 0 : a < b ? -1 : 1\n}\n\nfunction safeCount(value: bigint): number {\n if (value < 0n || value > BigInt(Number.MAX_SAFE_INTEGER))\n throw new RangeError(\"[Sixb] AI accounting group count exceeds the safe integer range.\")\n return Number(value)\n}\n\nfunction append<T>(map: Map<string, T[]>, key: string, item: T): void {\n const items = map.get(key)\n if (items) items.push(item)\n else map.set(key, [item])\n}\n",
10
10
  "import { assertJsonObject } from \"../../json\"\nimport type { AiModelCallUsage, AiModelCallUsageRecord } from \"../ai-usage\"\nimport { normalizeAiModelCallUsage } from \"../ai-usage\"\nimport type {\n AiBillableMeter,\n AiBillingIdentity,\n AiCostComponent,\n AiCostEstimate,\n AiModelCallCostRecord,\n AiPriceSource,\n AiPricingContext,\n AiRatedModelCallCostRecord,\n AiUnpriceableModelCallCostRecord,\n AiUnpriceableReason,\n} from \"./types\"\n\nconst SIGNED_INT64_MAX = 9_223_372_036_854_775_807n\nconst TOKENS_PER_MILLION = 1_000_000n\nconst HALF_MILLION = TOKENS_PER_MILLION / 2n\nconst MAX_NUMERIC_TEXT_LENGTH = 128\nconst METER_ORDER: Readonly<Record<AiBillableMeter, number>> = {\n \"tokens.input.total\": 0,\n \"tokens.input.uncached\": 1,\n \"tokens.input.cacheRead\": 2,\n \"tokens.input.cacheWrite\": 3,\n \"tokens.input.cacheWrite5m\": 4,\n \"tokens.input.cacheWrite1h\": 5,\n \"tokens.output.total\": 6,\n \"tokens.output.text\": 7,\n \"tokens.output.reasoning\": 8,\n}\nconst METERS = new Set(Object.keys(METER_ORDER) as AiBillableMeter[])\nconst UNPRICEABLE_REASONS = new Set<AiUnpriceableReason>([\n \"missingBillingIdentity\",\n \"missingRateCard\",\n \"missingUsageMeter\",\n \"unsupportedPricingDimension\",\n \"invalidUsageForFormula\",\n])\nconst CONTEXT_STRING_FIELDS = [\n \"serviceTier\",\n \"region\",\n \"inferenceGeo\",\n \"routedProviderId\",\n \"routedModelId\",\n \"deploymentId\",\n \"inferenceProfileId\",\n \"mode\",\n] as const\n\nexport function normalizeAiPricingContext(input: AiPricingContext): AiPricingContext {\n if (typeof input !== \"object\" || input === null || Array.isArray(input)) {\n throw new TypeError(\"[Sixb] AI pricing context must be an object.\")\n }\n const result: Record<string, string | boolean | number> = {}\n for (const field of CONTEXT_STRING_FIELDS) {\n const value = input[field]\n if (value !== undefined) {\n assertNonBlank(value, `pricingContext.${field}`)\n result[field] = value\n }\n }\n if (input.batch !== undefined) {\n if (typeof input.batch !== \"boolean\") {\n throw new TypeError(\"[Sixb] AI pricingContext.batch must be boolean.\")\n }\n result.batch = input.batch\n }\n if (input.cacheWriteTtlSeconds !== undefined) {\n if (!Number.isSafeInteger(input.cacheWriteTtlSeconds) || input.cacheWriteTtlSeconds <= 0) {\n throw new TypeError(\n \"[Sixb] AI pricingContext.cacheWriteTtlSeconds must be a positive safe integer.\"\n )\n }\n result.cacheWriteTtlSeconds = input.cacheWriteTtlSeconds\n }\n return result\n}\n\nexport function normalizeAiModelCallCostRecord(\n input: AiModelCallCostRecord\n): AiModelCallCostRecord {\n assertNonBlank(input.projectId, \"cost record projectId\")\n assertNonBlank(input.usageRecordId, \"cost record usageRecordId\")\n const base = {\n ...(input.estimate === undefined ? {} : { estimate: normalizeAiCostEstimate(input.estimate) }),\n projectId: input.projectId,\n usageRecordId: input.usageRecordId,\n pricingContext: normalizeAiPricingContext(input.pricingContext),\n ratedAt: cloneDate(input.ratedAt, \"cost record ratedAt\"),\n }\n\n if (input.status === \"rated\") {\n return normalizeRatedCost(input, {\n ...base,\n priceSource: normalizePriceSource(input.priceSource),\n })\n }\n if (input.status === \"unpriceable\") {\n return normalizeUnpriceableCost(input, {\n ...base,\n ...(input.priceSource === undefined\n ? {}\n : { priceSource: normalizePriceSource(input.priceSource) }),\n })\n }\n throw new TypeError(\"[Sixb] AI cost status is invalid.\")\n}\n\n/** Verify that a normalized valuation's billed quantities describe its usage record. */\nexport function aiModelCallCostMatchesUsage(\n record: AiModelCallCostRecord,\n usageRecord: AiModelCallUsageRecord\n): boolean {\n if (record.projectId !== usageRecord.projectId || record.usageRecordId !== usageRecord.id) {\n return false\n }\n if (record.estimate?.status === \"rated\") {\n const usage = normalizeAiModelCallUsage(usageRecord.usage)\n const components = new Map(\n record.estimate.components.map((component) => [component.meter, component])\n )\n if (\n !inputComponentsMatchUsage(components, usage) ||\n !outputComponentsMatchUsage(components, usage)\n )\n return false\n }\n if (record.status === \"unpriceable\") return true\n if (record.components.length === 0 && isExternalValuationSource(record.priceSource.sourceId)) {\n return true\n }\n\n const usage = normalizeAiModelCallUsage(usageRecord.usage)\n const components = new Map(record.components.map((component) => [component.meter, component]))\n return (\n inputComponentsMatchUsage(components, usage) && outputComponentsMatchUsage(components, usage)\n )\n}\n\nfunction inputComponentsMatchUsage(\n components: ReadonlyMap<AiBillableMeter, AiCostComponent>,\n usage: AiModelCallUsage\n): boolean {\n if (usage.inputTokens === undefined) return false\n const total = components.get(\"tokens.input.total\")\n const directPartitions = [\n [\"tokens.input.uncached\", usage.uncachedInputTokens],\n [\"tokens.input.cacheRead\", usage.cacheReadInputTokens],\n [\"tokens.input.cacheWrite\", usage.cacheWriteInputTokens],\n ] as const\n const presentDirect = directPartitions.filter(([meter]) => components.has(meter))\n const specificWrites = [\n components.get(\"tokens.input.cacheWrite5m\"),\n components.get(\"tokens.input.cacheWrite1h\"),\n ].filter((component): component is AiCostComponent => component !== undefined)\n\n if (total) {\n return (\n presentDirect.length === 0 &&\n specificWrites.length === 0 &&\n BigInt(total.quantity) === BigInt(usage.inputTokens)\n )\n }\n if (presentDirect.length === 0 && specificWrites.length === 0) return false\n if (components.has(\"tokens.input.cacheWrite\") && specificWrites.length > 0) return false\n\n let quantity = 0n\n for (const [meter, expected] of presentDirect) {\n if (expected === undefined) return false\n const component = components.get(meter)!\n if (BigInt(component.quantity) !== BigInt(expected)) return false\n quantity += BigInt(component.quantity)\n }\n if (specificWrites.length > 0) {\n if (usage.cacheWriteInputTokens === undefined) return false\n const specificWriteQuantity = specificWrites.reduce(\n (sum, component) => sum + BigInt(component.quantity),\n 0n\n )\n if (specificWriteQuantity !== BigInt(usage.cacheWriteInputTokens)) return false\n quantity += specificWriteQuantity\n }\n return quantity === BigInt(usage.inputTokens)\n}\n\nfunction outputComponentsMatchUsage(\n components: ReadonlyMap<AiBillableMeter, AiCostComponent>,\n usage: AiModelCallUsage\n): boolean {\n if (usage.outputTokens === undefined) return false\n const total = components.get(\"tokens.output.total\")\n const partitions = [\n [\"tokens.output.text\", usage.textOutputTokens],\n [\"tokens.output.reasoning\", usage.reasoningOutputTokens],\n ] as const\n const presentPartitions = partitions.filter(([meter]) => components.has(meter))\n\n if (total) {\n return presentPartitions.length === 0 && BigInt(total.quantity) === BigInt(usage.outputTokens)\n }\n if (presentPartitions.length === 0) return false\n\n let quantity = 0n\n for (const [meter, expected] of presentPartitions) {\n if (expected === undefined) return false\n const component = components.get(meter)!\n if (BigInt(component.quantity) !== BigInt(expected)) return false\n quantity += BigInt(component.quantity)\n }\n return quantity === BigInt(usage.outputTokens)\n}\n\nfunction normalizeRatedCost(\n input: AiRatedModelCallCostRecord,\n base: Pick<\n AiRatedModelCallCostRecord,\n \"projectId\" | \"usageRecordId\" | \"pricingContext\" | \"priceSource\" | \"ratedAt\"\n >\n): AiRatedModelCallCostRecord {\n const billingIdentity = normalizeBillingIdentity(input.billingIdentity)\n const components = input.components.map(normalizeCostComponent).sort(compareComponents)\n if (components.length === 0 && !isExternalValuationSource(base.priceSource.sourceId)) {\n throw new TypeError(\"[Sixb] AI rated cost requires components.\")\n }\n if (new Set(components.map((component) => component.meter)).size !== components.length) {\n throw new TypeError(\"[Sixb] AI rated cost cannot contain duplicate meters.\")\n }\n const amountNanos = parseNonnegativeInt64(input.money.amountNanos, \"money amountNanos\").toString()\n if (components.length > 0 && amountNanos !== sumComponents(components)) {\n throw new TypeError(\"[Sixb] AI cost total does not equal its component charges.\")\n }\n return {\n ...base,\n status: \"rated\",\n billingIdentity,\n money: { currency: normalizeCurrency(input.money.currency), amountNanos },\n components,\n }\n}\n\nexport function normalizeAiCostEstimate(value: unknown): AiCostEstimate {\n assertJsonObject(value, \"AI cost estimate\")\n if (value.status === \"rated\") {\n assertJsonObject(value.money, \"estimate money\")\n const { currency, amountNanos } = value.money\n if (\n typeof currency !== \"string\" ||\n typeof amountNanos !== \"string\" ||\n !Array.isArray(value.components)\n )\n throw new TypeError(\"[Sixb] Invalid cost estimate money or components.\")\n const components = value.components\n .map((component) => {\n assertJsonObject(component, \"estimate component\")\n const meter = [...METERS].find((meter) => meter === component.meter)\n if (\n !meter ||\n typeof component.quantity !== \"string\" ||\n typeof component.rateAmountNanosPerMillion !== \"string\" ||\n typeof component.chargeAmountNanos !== \"string\"\n )\n throw new TypeError(\"[Sixb] Invalid cost estimate component.\")\n return normalizeCostComponent({\n meter,\n quantity: component.quantity,\n rateAmountNanosPerMillion: component.rateAmountNanosPerMillion,\n chargeAmountNanos: component.chargeAmountNanos,\n })\n })\n .sort(compareComponents)\n if (\n !components.length ||\n new Set(components.map((c) => c.meter)).size !== components.length ||\n parseNonnegativeInt64(amountNanos, \"estimate amountNanos\").toString() !==\n sumComponents(components)\n )\n throw new TypeError(\n \"[Sixb] Estimate must contain unique meters whose charges equal its total.\"\n )\n return {\n status: \"rated\",\n money: { currency: normalizeCurrency(currency), amountNanos },\n components,\n }\n }\n const reason = [...UNPRICEABLE_REASONS].find((reason) => reason === value.reason)\n if (value.status !== \"unpriceable\" || !reason)\n throw new TypeError(\"[Sixb] Invalid cost estimate status or reason.\")\n let missingMeters: readonly AiBillableMeter[] | undefined\n if (value.missingMeters !== undefined) {\n if (!Array.isArray(value.missingMeters))\n throw new TypeError(\"[Sixb] Invalid estimate missing meters.\")\n missingMeters = normalizeMissingMeters(\n value.missingMeters.map((input) => {\n const meter = [...METERS].find((meter) => meter === input)\n if (!meter) throw new TypeError(\"[Sixb] Invalid estimate missing meter.\")\n return meter\n })\n )\n }\n if (reason === \"missingUsageMeter\" && !missingMeters)\n throw new TypeError(\"[Sixb] Missing usage estimate requires missingMeters.\")\n return {\n status: \"unpriceable\",\n reason,\n ...(missingMeters === undefined ? {} : { missingMeters }),\n }\n}\n\nfunction isExternalValuationSource(sourceId: string): boolean {\n return sourceId === \"provider-reported\"\n}\n\nfunction normalizeUnpriceableCost(\n input: AiUnpriceableModelCallCostRecord,\n base: Pick<\n AiUnpriceableModelCallCostRecord,\n \"projectId\" | \"usageRecordId\" | \"pricingContext\" | \"priceSource\" | \"ratedAt\"\n >\n): AiUnpriceableModelCallCostRecord {\n if (!UNPRICEABLE_REASONS.has(input.reason)) {\n throw new TypeError(`[Sixb] AI unpriceable reason '${String(input.reason)}' is invalid.`)\n }\n const billingIdentity = input.billingIdentity\n ? normalizeBillingIdentity(input.billingIdentity)\n : undefined\n if (input.reason === \"missingBillingIdentity\" && billingIdentity !== undefined) {\n throw new TypeError(\"[Sixb] AI missingBillingIdentity cannot contain a billing identity.\")\n }\n if (input.reason !== \"missingBillingIdentity\" && billingIdentity === undefined) {\n throw new TypeError(`[Sixb] AI ${input.reason} requires a billing identity.`)\n }\n const missingMeters = normalizeMissingMeters(input.missingMeters)\n if (input.reason === \"missingUsageMeter\" && !missingMeters) {\n throw new TypeError(\"[Sixb] AI missingUsageMeter requires missingMeters.\")\n }\n return {\n ...base,\n status: \"unpriceable\",\n ...(billingIdentity ? { billingIdentity } : {}),\n reason: input.reason,\n ...(missingMeters ? { missingMeters } : {}),\n }\n}\n\nfunction normalizeCostComponent(input: AiCostComponent): AiCostComponent {\n if (!METERS.has(input.meter)) {\n throw new TypeError(`[Sixb] AI cost meter '${String(input.meter)}' is invalid.`)\n }\n const expected = calculateComponent(input.meter, input.quantity, input.rateAmountNanosPerMillion)\n if (expected.chargeAmountNanos !== input.chargeAmountNanos) {\n throw new TypeError(`[Sixb] AI cost component '${input.meter}' charge is invalid.`)\n }\n return expected\n}\n\nfunction calculateComponent(\n meter: AiBillableMeter,\n quantity: number | string,\n rateAmountNanosPerMillion: string\n): AiCostComponent {\n const normalizedQuantity = parseQuantity(quantity, `${meter} quantity`)\n const rate = parseNonnegativeInt64(rateAmountNanosPerMillion, `${meter} rate`)\n const charge = (normalizedQuantity * rate + HALF_MILLION) / TOKENS_PER_MILLION\n assertSignedInt64(charge, `${meter} charge`)\n return {\n meter,\n quantity: normalizedQuantity.toString(),\n rateAmountNanosPerMillion: rate.toString(),\n chargeAmountNanos: charge.toString(),\n }\n}\n\nfunction normalizePriceSource(input: AiPriceSource): AiPriceSource {\n assertNonBlank(input.sourceId, \"price sourceId\")\n assertNonBlank(input.sourceEntryId, \"price sourceEntryId\")\n assertNonBlank(input.sourceVersion, \"price sourceVersion\")\n if (input.sourceUrl !== undefined) assertNonBlank(input.sourceUrl, \"price sourceUrl\")\n return {\n sourceId: input.sourceId,\n sourceEntryId: input.sourceEntryId,\n sourceVersion: input.sourceVersion,\n ...(input.sourceUrl === undefined ? {} : { sourceUrl: input.sourceUrl }),\n observedAt: cloneDate(input.observedAt, \"price source observedAt\"),\n }\n}\n\nfunction normalizeBillingIdentity(input: AiBillingIdentity): AiBillingIdentity {\n assertNonBlank(input.providerId, \"billingIdentity.providerId\")\n assertNonBlank(input.modelId, \"billingIdentity.modelId\")\n return { providerId: input.providerId, modelId: input.modelId }\n}\n\nfunction normalizeMissingMeters(\n input: readonly AiBillableMeter[] | undefined\n): readonly AiBillableMeter[] | undefined {\n if (!input?.length) return undefined\n const result = [...new Set(input)]\n for (const meter of result) {\n if (!METERS.has(meter)) throw new TypeError(`[Sixb] AI missing meter '${meter}' is invalid.`)\n }\n return result.sort((left, right) => METER_ORDER[left] - METER_ORDER[right])\n}\n\nfunction sumComponents(components: readonly AiCostComponent[]): string {\n let total = 0n\n for (const component of components) {\n total += parseNonnegativeInt64(component.chargeAmountNanos, \"component charge\")\n assertSignedInt64(total, \"cost total\")\n }\n return total.toString()\n}\n\nfunction parseQuantity(value: number | string, field: string): bigint {\n if (typeof value === \"number\") {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`[Sixb] AI ${field} must be a non-negative safe integer.`)\n }\n return BigInt(value)\n }\n return parseNonnegativeInt64(value, field)\n}\n\nfunction parseNonnegativeInt64(value: string, field: string): bigint {\n if (\n typeof value !== \"string\" ||\n value.length === 0 ||\n value.length > MAX_NUMERIC_TEXT_LENGTH ||\n !/^\\d+$/.test(value)\n ) {\n throw new TypeError(`[Sixb] AI ${field} must be a non-negative integer string.`)\n }\n const parsed = BigInt(value)\n assertSignedInt64(parsed, field)\n return parsed\n}\n\nfunction compareComponents(left: AiCostComponent, right: AiCostComponent): number {\n return METER_ORDER[left.meter] - METER_ORDER[right.meter]\n}\n\nfunction normalizeCurrency(value: string): string {\n if (!/^[A-Z]{3}$/.test(value)) {\n throw new TypeError(\"[Sixb] AI currency must be a three-letter uppercase code.\")\n }\n return value\n}\n\nfunction assertSignedInt64(value: bigint, field: string): void {\n if (value < 0n || value > SIGNED_INT64_MAX) {\n throw new TypeError(`[Sixb] AI ${field} exceeds the signed 64-bit range.`)\n }\n}\n\nfunction assertNonBlank(value: string, field: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`[Sixb] AI ${field} must be nonblank.`)\n }\n}\n\nfunction cloneDate(value: Date, field: string): Date {\n if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {\n throw new TypeError(`[Sixb] AI ${field} must be a valid Date.`)\n }\n return new Date(value)\n}\n"
11
11
  ],
12
- "mappings": "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",
13
- "debugId": "3EFE5C3CDFF5349664756E2164756E21",
12
+ "mappings": "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",
13
+ "debugId": "09D39788C52B304E64756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -1,18 +1,18 @@
1
1
  // @bun
2
2
  import {
3
3
  ProjectionValidationError2
4
- } from "./chunk-dz5h08xv.js";
4
+ } from "./chunk-rzcjp5m2.js";
5
5
  import {
6
6
  sha256Canonical2
7
- } from "./chunk-gqh45d2n.js";
7
+ } from "./chunk-ht4a7mjg.js";
8
8
  import {
9
9
  ProjectionRunError2,
10
10
  assertProjectionRunIdentityMatches2,
11
11
  assertProjectionRunDurableExecution2
12
- } from "./chunk-358caqf5.js";
12
+ } from "./chunk-znw0zvy4.js";
13
13
  import {
14
14
  createPrimitiveExecutionRecord
15
- } from "./chunk-17kfctj6.js";
15
+ } from "./chunk-m8zkvep1.js";
16
16
  import {
17
17
  findPrimitiveRunExecution
18
18
  } from "./chunk-ey1nk510.js";
@@ -4,8 +4,9 @@ import {
4
4
  reportRunFailure3,
5
5
  reportActionPhaseFailure3,
6
6
  reportEventDeliveryFailure3,
7
- reportRuleEvaluationFailure3
8
- } from "./chunk-72w2pxk7.js";
7
+ reportRuleEvaluationFailure3,
8
+ reportVectorIndexingFailure2
9
+ } from "./chunk-bdhfn0ww.js";
9
10
 
10
11
  // src/error-reporting/capability.ts
11
12
  var ERROR_REPORTER = Symbol("sixb.error-reporter");
@@ -44,7 +45,10 @@ function reportRuleEvaluationFailure2(host, error, input) {
44
45
  async function flushSixbErrors2(host, timeoutMs) {
45
46
  await resolveSixbErrorReporter(host).flush(timeoutMs);
46
47
  }
48
+ function reportVectorIndexingFailure(host, error, input) {
49
+ reportVectorIndexingFailure2(resolveSixbErrorReporter(host), error, input);
50
+ }
47
51
 
48
- export { attachSixbErrorReporter2, shareSixbErrorReporter2, reportActionPhaseFailure2, reportRunFailure2, reportEventDeliveryFailure2, reportRuleEvaluationFailure2, flushSixbErrors2 };
52
+ export { attachSixbErrorReporter2, shareSixbErrorReporter2, reportActionPhaseFailure2, reportRunFailure2, reportEventDeliveryFailure2, reportRuleEvaluationFailure2, flushSixbErrors2, reportVectorIndexingFailure };
49
53
 
50
- //# debugId=0310499CECFA28FE64756E2164756E21
54
+ //# debugId=C975299A5F78166E64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/error-reporting/capability.ts"],
4
+ "sourcesContent": [
5
+ "import { SixbErrorReporter } from \"./reporter\"\nimport {\n type ReportActionPhaseFailureInput,\n type ReportEventDeliveryFailureInput,\n type ReportRuleEvaluationFailureInput,\n type ReportRunFailureInput,\n type ReportVectorIndexingFailureInput,\n reportActionPhaseFailure as reportActionPhaseFailureWith,\n reportEventDeliveryFailure as reportEventDeliveryFailureWith,\n reportRuleEvaluationFailure as reportRuleEvaluationFailureWith,\n reportRunFailure as reportRunFailureWith,\n reportVectorIndexingFailure as reportVectorIndexingFailureWith,\n} from \"./reports\"\nimport type { SixbErrorHandler } from \"./types\"\n\nconst ERROR_REPORTER = Symbol(\"sixb.error-reporter\")\nconst FALLBACK_REPORTER = new SixbErrorReporter()\n\ntype ErrorReporterHost = {\n [ERROR_REPORTER]?: SixbErrorReporter\n}\n\nfunction asHost(value: unknown): ErrorReporterHost | null {\n if ((typeof value !== \"object\" && typeof value !== \"function\") || value === null) {\n return null\n }\n return value as ErrorReporterHost\n}\n\nfunction resolveSixbErrorReporter(host: unknown): SixbErrorReporter {\n return asHost(host)?.[ERROR_REPORTER] ?? FALLBACK_REPORTER\n}\n\nexport function attachSixbErrorReporter(\n host: object,\n handler?: SixbErrorHandler\n): SixbErrorReporter {\n const reporter = new SixbErrorReporter(handler)\n ;(host as ErrorReporterHost)[ERROR_REPORTER] = reporter\n return reporter\n}\n\nexport function shareSixbErrorReporter(source: object, target: object): void {\n const reporter = (source as ErrorReporterHost)[ERROR_REPORTER]\n if (reporter) (target as ErrorReporterHost)[ERROR_REPORTER] = reporter\n}\n\nexport type {\n ReportActionPhaseFailureInput,\n ReportEventDeliveryFailureInput,\n ReportRuleEvaluationFailureInput,\n ReportRunFailureInput,\n ReportVectorIndexingFailureInput,\n}\n\nexport function reportActionPhaseFailure(\n host: unknown,\n error: unknown,\n input: ReportActionPhaseFailureInput\n): void {\n reportActionPhaseFailureWith(resolveSixbErrorReporter(host), error, input)\n}\n\nexport function reportRunFailure(\n host: unknown,\n error: unknown,\n input: ReportRunFailureInput\n): void {\n reportRunFailureWith(resolveSixbErrorReporter(host), error, input)\n}\n\nexport function reportEventDeliveryFailure(\n host: unknown,\n error: unknown,\n input: ReportEventDeliveryFailureInput\n): void {\n reportEventDeliveryFailureWith(resolveSixbErrorReporter(host), error, input)\n}\n\nexport function reportRuleEvaluationFailure(\n host: unknown,\n error: unknown,\n input: ReportRuleEvaluationFailureInput\n): void {\n reportRuleEvaluationFailureWith(resolveSixbErrorReporter(host), error, input)\n}\n\nexport async function flushSixbErrors(host: unknown, timeoutMs?: number): Promise<void> {\n await resolveSixbErrorReporter(host).flush(timeoutMs)\n}\n\nexport function reportVectorIndexingFailure(\n host: object,\n error: unknown,\n input: ReportVectorIndexingFailureInput\n): void {\n reportVectorIndexingFailureWith(resolveSixbErrorReporter(host), error, input)\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;AAeA,IAAM,iBAAiB,OAAO,qBAAqB;AACnD,IAAM,oBAAoB,IAAI;AAM9B,SAAS,MAAM,CAAC,OAA0C;AAAA,EACxD,IAAK,OAAO,UAAU,YAAY,OAAO,UAAU,cAAe,UAAU,MAAM;AAAA,IAChF,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,wBAAwB,CAAC,MAAkC;AAAA,EAClE,OAAO,OAAO,IAAI,IAAI,mBAAmB;AAAA;AAGpC,SAAS,wBAAuB,CACrC,MACA,SACmB;AAAA,EACnB,MAAM,WAAW,IAAI,mBAAkB,OAAO;AAAA,EAC5C,KAA2B,kBAAkB;AAAA,EAC/C,OAAO;AAAA;AAGF,SAAS,uBAAsB,CAAC,QAAgB,QAAsB;AAAA,EAC3E,MAAM,WAAY,OAA6B;AAAA,EAC/C,IAAI;AAAA,IAAW,OAA6B,kBAAkB;AAAA;AAWzD,SAAS,yBAAwB,CACtC,MACA,OACA,OACM;AAAA,EACN,0BAA6B,yBAAyB,IAAI,GAAG,OAAO,KAAK;AAAA;AAGpE,SAAS,iBAAgB,CAC9B,MACA,OACA,OACM;AAAA,EACN,kBAAqB,yBAAyB,IAAI,GAAG,OAAO,KAAK;AAAA;AAG5D,SAAS,2BAA0B,CACxC,MACA,OACA,OACM;AAAA,EACN,4BAA+B,yBAAyB,IAAI,GAAG,OAAO,KAAK;AAAA;AAGtE,SAAS,4BAA2B,CACzC,MACA,OACA,OACM;AAAA,EACN,6BAAgC,yBAAyB,IAAI,GAAG,OAAO,KAAK;AAAA;AAG9E,eAAsB,gBAAe,CAAC,MAAe,WAAmC;AAAA,EACtF,MAAM,yBAAyB,IAAI,EAAE,MAAM,SAAS;AAAA;AAG/C,SAAS,2BAA2B,CACzC,MACA,OACA,OACM;AAAA,EACN,6BAAgC,yBAAyB,IAAI,GAAG,OAAO,KAAK;AAAA;",
8
+ "debugId": "C975299A5F78166E64756E2164756E21",
9
+ "names": []
10
+ }
@@ -3,14 +3,14 @@ import {
3
3
  createSixbError2,
4
4
  toSixbFailure2,
5
5
  serializeSixbFailure2
6
- } from "./chunk-f4w3yp4f.js";
6
+ } from "./chunk-rzkr70gr.js";
7
7
  import {
8
8
  ONTOLOGY_OUTBOX_FAILURE_CODES2
9
9
  } from "./chunk-d62kjtbg.js";
10
10
  import {
11
11
  SixbErrorReporter2,
12
12
  reportEventDeliveryFailure3
13
- } from "./chunk-72w2pxk7.js";
13
+ } from "./chunk-bdhfn0ww.js";
14
14
  import {
15
15
  getInvalidJsonValueReason2
16
16
  } from "./chunk-wy0qdqfm.js";
@@ -625,7 +625,6 @@ class DomainEventService2 {
625
625
  }
626
626
  const payloads = input.events.map((event) => toStoredEventPayload({
627
627
  projectId: this.projectId,
628
- actor: input.actor,
629
628
  correlationId: input.correlationId,
630
629
  causationId: input.causationId,
631
630
  event
@@ -756,7 +755,6 @@ function toStoredEventPayload(params) {
756
755
  setIfDefined(payload, "correlationId", params.correlationId);
757
756
  setIfDefined(payload, "causationId", params.causationId);
758
757
  setIfDefined(payload, "idempotencyKey", params.event.idempotencyKey);
759
- setIfDefined(payload, "actor", params.actor);
760
758
  setIfDefined(payload, "origin", params.event.origin);
761
759
  setIfDefined(payload, "metadata", params.event.metadata);
762
760
  return payload;
@@ -815,7 +813,6 @@ function toStoredEvent2(params) {
815
813
  correlationId: params.correlationId,
816
814
  causationId: params.causationId,
817
815
  idempotencyKey: params.event.idempotencyKey,
818
- actor: params.actor,
819
816
  origin: params.event.origin,
820
817
  metadata: params.event.metadata,
821
818
  cursor: params.cursor
@@ -831,4 +828,4 @@ function toStoredEvent2(params) {
831
828
  }
832
829
  export { EventsError2, OBJECT_EVENT_DEFINITIONS2, TELEMETRY_EVENT_DEFINITIONS2, LINK_EVENT_DEFINITIONS2, ACTION_EVENT_DEFINITIONS2, SCHEDULE_EVENT_DEFINITIONS2, RULE_EVENT_DEFINITIONS2, SYNC_EVENT_DEFINITIONS2, PIPELINE_EVENT_DEFINITIONS2, WORKFLOW_EVENT_DEFINITIONS2, DATASET_EVENT_DEFINITIONS2, EVENT_DEFINITIONS2, EVENT_TYPES2, EVENT_TOPICS2, isDomainEventType2, isOntologyFactType2, resolveEventStorage2, OntologyOutboxDispatcher2, DEFAULT_EVENTS_RETENTION_MS2, EVENTS_STREAM2, DomainEventService2, createDomainEventService2, toStoredEvent2 };
833
830
 
834
- //# debugId=D60791393813ED9264756E2164756E21
831
+ //# debugId=0B70DE3369D60A2064756E2164756E21