@sixb/core 0.1.17 → 0.1.19

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 (715) hide show
  1. package/README.md +7 -6
  2. package/dist/actions/commit-edits.d.ts +7 -19
  3. package/dist/actions/commit-edits.d.ts.map +1 -1
  4. package/dist/actions/errors.d.ts +0 -3
  5. package/dist/actions/errors.d.ts.map +1 -1
  6. package/dist/actions/execution.d.ts +10 -3
  7. package/dist/actions/execution.d.ts.map +1 -1
  8. package/dist/actions/index.d.ts +6 -9
  9. package/dist/actions/index.d.ts.map +1 -1
  10. package/dist/actions/index.js +56 -52
  11. package/dist/actions/index.js.map +1 -1
  12. package/dist/actions/read-facade.d.ts +1 -1
  13. package/dist/actions/request.d.ts +14 -25
  14. package/dist/actions/request.d.ts.map +1 -1
  15. package/dist/actions/run/context.d.ts +40 -0
  16. package/dist/actions/run/context.d.ts.map +1 -0
  17. package/dist/actions/run/edits-commit.d.ts +31 -0
  18. package/dist/actions/run/edits-commit.d.ts.map +1 -0
  19. package/dist/actions/run/effects.d.ts +23 -0
  20. package/dist/actions/run/effects.d.ts.map +1 -0
  21. package/dist/actions/run/execute.d.ts +30 -0
  22. package/dist/actions/run/execute.d.ts.map +1 -0
  23. package/dist/actions/run/executor.d.ts +95 -0
  24. package/dist/actions/run/executor.d.ts.map +1 -0
  25. package/dist/actions/run/normalize.d.ts +36 -0
  26. package/dist/actions/run/normalize.d.ts.map +1 -0
  27. package/dist/actions/run/phase-types.d.ts +18 -0
  28. package/dist/actions/run/phase-types.d.ts.map +1 -0
  29. package/dist/actions/run/phases.d.ts +20 -0
  30. package/dist/actions/run/phases.d.ts.map +1 -0
  31. package/dist/actions/run/run-action.d.ts +25 -0
  32. package/dist/actions/run/run-action.d.ts.map +1 -0
  33. package/dist/actions/run/signals.d.ts +67 -0
  34. package/dist/actions/run/signals.d.ts.map +1 -0
  35. package/dist/actions/run/state.d.ts +47 -0
  36. package/dist/actions/run/state.d.ts.map +1 -0
  37. package/dist/actions/run/types.d.ts +54 -0
  38. package/dist/actions/run/types.d.ts.map +1 -0
  39. package/dist/actions/run/writeback.d.ts +17 -0
  40. package/dist/actions/run/writeback.d.ts.map +1 -0
  41. package/dist/actions/run-authorization.d.ts +1 -1
  42. package/dist/actions/run-authorization.d.ts.map +1 -1
  43. package/dist/actions/run-persistence.d.ts +53 -0
  44. package/dist/actions/run-persistence.d.ts.map +1 -0
  45. package/dist/actions/types/context.d.ts +10 -0
  46. package/dist/actions/types/context.d.ts.map +1 -1
  47. package/dist/actions/validation.d.ts.map +1 -1
  48. package/dist/agents/adapters.d.ts +7 -0
  49. package/dist/agents/adapters.d.ts.map +1 -1
  50. package/dist/agents/authority.d.ts +7 -0
  51. package/dist/agents/authority.d.ts.map +1 -1
  52. package/dist/agents/context/entries.d.ts +10 -1
  53. package/dist/agents/context/entries.d.ts.map +1 -1
  54. package/dist/agents/context/index.d.ts +1 -1
  55. package/dist/agents/context/index.d.ts.map +1 -1
  56. package/dist/agents/context/index.js +4 -2
  57. package/dist/agents/context/index.js.map +1 -1
  58. package/dist/agents/context-compaction.d.ts.map +1 -1
  59. package/dist/agents/errors.d.ts +1 -1
  60. package/dist/agents/errors.d.ts.map +1 -1
  61. package/dist/agents/index.d.ts +6 -4
  62. package/dist/agents/index.d.ts.map +1 -1
  63. package/dist/agents/index.js +63 -59
  64. package/dist/agents/index.js.map +1 -1
  65. package/dist/agents/message.d.ts +8 -1
  66. package/dist/agents/message.d.ts.map +1 -1
  67. package/dist/agents/request.d.ts +19 -5
  68. package/dist/agents/request.d.ts.map +1 -1
  69. package/dist/agents/skills.d.ts +41 -0
  70. package/dist/agents/skills.d.ts.map +1 -0
  71. package/dist/agents/streams/index.js +2 -2
  72. package/dist/agents/streams/internal.js +2 -2
  73. package/dist/agents/types.d.ts +33 -4
  74. package/dist/agents/types.d.ts.map +1 -1
  75. package/dist/auth/index.js +12 -9
  76. package/dist/auth/index.js.map +1 -1
  77. package/dist/auth/runtime.d.ts.map +1 -1
  78. package/dist/auth/types.d.ts +6 -0
  79. package/dist/auth/types.d.ts.map +1 -1
  80. package/dist/authorization/event-visibility.d.ts.map +1 -1
  81. package/dist/authorization/index.js +6 -4
  82. package/dist/authorization/index.js.map +1 -1
  83. package/dist/authorization/resolve.d.ts +1 -1
  84. package/dist/authorization/resolve.d.ts.map +1 -1
  85. package/dist/authorization/types.d.ts +7 -0
  86. package/dist/authorization/types.d.ts.map +1 -1
  87. package/dist/blob-storage/browser.js +1 -1
  88. package/dist/blob-storage/execution.d.ts.map +1 -1
  89. package/dist/blob-storage/file-content.d.ts +18 -0
  90. package/dist/blob-storage/file-content.d.ts.map +1 -0
  91. package/dist/blob-storage/index.d.ts +1 -1
  92. package/dist/blob-storage/index.d.ts.map +1 -1
  93. package/dist/blob-storage/index.js +2 -2
  94. package/dist/blob-storage/internal.d.ts +2 -0
  95. package/dist/blob-storage/internal.d.ts.map +1 -1
  96. package/dist/blob-storage/internal.js +16 -4
  97. package/dist/blob-storage/internal.js.map +1 -1
  98. package/dist/blob-storage/media-type.d.ts +8 -0
  99. package/dist/blob-storage/media-type.d.ts.map +1 -0
  100. package/dist/blob-storage/types.d.ts +12 -1
  101. package/dist/blob-storage/types.d.ts.map +1 -1
  102. package/dist/blob-storage/validation.d.ts +6 -0
  103. package/dist/blob-storage/validation.d.ts.map +1 -1
  104. package/dist/bootstrap/agent-context.d.ts +33 -0
  105. package/dist/bootstrap/agent-context.d.ts.map +1 -0
  106. package/dist/bootstrap/discovery.d.ts +23 -3
  107. package/dist/bootstrap/discovery.d.ts.map +1 -1
  108. package/dist/bootstrap/index.d.ts +2 -1
  109. package/dist/bootstrap/index.d.ts.map +1 -1
  110. package/dist/bootstrap/index.js +285 -77
  111. package/dist/bootstrap/index.js.map +4 -3
  112. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  113. package/dist/{chunk-t9shqx3w.js → chunk-1f7wpmyp.js} +143 -7
  114. package/dist/chunk-1f7wpmyp.js.map +14 -0
  115. package/dist/{chunk-jjrn5v0p.js → chunk-1k89ecfr.js} +1 -1
  116. package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
  117. package/dist/chunk-1sr8ryzk.js.map +11 -0
  118. package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
  119. package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
  120. package/dist/{chunk-svabwqdq.js → chunk-3gnrh4ve.js} +44 -420
  121. package/dist/{chunk-svabwqdq.js.map → chunk-3gnrh4ve.js.map} +9 -13
  122. package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
  123. package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
  124. package/dist/{chunk-pja9jfz6.js → chunk-4tcx876c.js} +126 -64
  125. package/dist/chunk-4tcx876c.js.map +19 -0
  126. package/dist/{chunk-vre348sb.js → chunk-52bk93x8.js} +2 -2
  127. package/dist/{chunk-4gmng3vf.js → chunk-5e43w60z.js} +2 -2
  128. package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
  129. package/dist/chunk-6gmfggss.js.map +10 -0
  130. package/dist/{chunk-33saed7g.js → chunk-7kg3k1m9.js} +1 -1
  131. package/dist/{chunk-7ecp4v7a.js → chunk-7mbzgd9m.js} +10 -4
  132. package/dist/{chunk-7ecp4v7a.js.map → chunk-7mbzgd9m.js.map} +3 -3
  133. package/dist/{chunk-b9affek3.js → chunk-7n440zgt.js} +30 -30
  134. package/dist/{chunk-b9affek3.js.map → chunk-7n440zgt.js.map} +4 -4
  135. package/dist/{chunk-kkqwzy6h.js → chunk-7t429e3f.js} +1 -1
  136. package/dist/{chunk-xcy5ddha.js → chunk-80mc0971.js} +356 -301
  137. package/dist/chunk-80mc0971.js.map +15 -0
  138. package/dist/{chunk-gf7yht60.js → chunk-85yvv5n0.js} +27 -10
  139. package/dist/chunk-85yvv5n0.js.map +12 -0
  140. package/dist/{chunk-6fsr7y93.js → chunk-8mx7qw3y.js} +14 -13
  141. package/dist/{chunk-6fsr7y93.js.map → chunk-8mx7qw3y.js.map} +4 -4
  142. package/dist/{chunk-kpx7jrmn.js → chunk-91mg3nj9.js} +59 -59
  143. package/dist/{chunk-kpx7jrmn.js.map → chunk-91mg3nj9.js.map} +5 -5
  144. package/dist/{chunk-2am3db31.js → chunk-9gyp8hg1.js} +2 -2
  145. package/dist/{chunk-ewqa58h9.js → chunk-9k93ah50.js} +4 -4
  146. package/dist/{chunk-ewqa58h9.js.map → chunk-9k93ah50.js.map} +1 -1
  147. package/dist/{chunk-4wn7bxxa.js → chunk-9ybhtmg4.js} +1 -1
  148. package/dist/{chunk-fc5zfxy1.js → chunk-a40ad1ft.js} +5 -13
  149. package/dist/chunk-a40ad1ft.js.map +10 -0
  150. package/dist/{chunk-dam456ve.js → chunk-aff7cyea.js} +431 -70
  151. package/dist/{chunk-dam456ve.js.map → chunk-aff7cyea.js.map} +10 -7
  152. package/dist/{chunk-y2aq6ag9.js → chunk-b38szspf.js} +5 -14
  153. package/dist/chunk-b38szspf.js.map +11 -0
  154. package/dist/{chunk-r2y23egw.js → chunk-bkpke1sg.js} +1 -10
  155. package/dist/chunk-bkpke1sg.js.map +10 -0
  156. package/dist/{chunk-xyvy73tj.js → chunk-bpgy64fw.js} +8 -3
  157. package/dist/chunk-bpgy64fw.js.map +12 -0
  158. package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
  159. package/dist/{chunk-5thzcb8g.js → chunk-c85m1hyj.js} +2 -2
  160. package/dist/{chunk-e67ynxcr.js → chunk-d2ync1v3.js} +5 -5
  161. package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
  162. package/dist/chunk-enpsx8k5.js +127 -0
  163. package/dist/chunk-enpsx8k5.js.map +10 -0
  164. package/dist/chunk-ey3pyej1.js +8807 -0
  165. package/dist/chunk-ey3pyej1.js.map +106 -0
  166. package/dist/{chunk-vjcd8d27.js → chunk-fa02jy15.js} +1 -1
  167. package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
  168. package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
  169. package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
  170. package/dist/chunk-hkc3jct7.js.map +10 -0
  171. package/dist/{chunk-rpxz486p.js → chunk-hvsb78a1.js} +24 -8
  172. package/dist/{chunk-rpxz486p.js.map → chunk-hvsb78a1.js.map} +3 -3
  173. package/dist/{chunk-5yd8cchh.js → chunk-j2bp5ryw.js} +55 -246
  174. package/dist/{chunk-5yd8cchh.js.map → chunk-j2bp5ryw.js.map} +4 -4
  175. package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
  176. package/dist/chunk-jhm3zsa7.js.map +12 -0
  177. package/dist/{chunk-w9yycd3t.js → chunk-kg5j6fct.js} +4 -8
  178. package/dist/{chunk-w9yycd3t.js.map → chunk-kg5j6fct.js.map} +3 -3
  179. package/dist/{chunk-vp3z1ckh.js → chunk-kyzq4wy9.js} +7 -7
  180. package/dist/{chunk-wr8qp979.js → chunk-m427qgq0.js} +9 -5
  181. package/dist/{chunk-wr8qp979.js.map → chunk-m427qgq0.js.map} +4 -3
  182. package/dist/{chunk-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
  183. package/dist/{chunk-e1c18xjx.js → chunk-nq6gpjt7.js} +4 -45
  184. package/dist/{chunk-e1c18xjx.js.map → chunk-nq6gpjt7.js.map} +5 -5
  185. package/dist/{chunk-a7er86jd.js → chunk-nre82s12.js} +1 -1
  186. package/dist/{chunk-1hqwggsn.js → chunk-nzapm6p0.js} +1 -2
  187. package/dist/chunk-nzapm6p0.js.map +12 -0
  188. package/dist/{chunk-wt4szfec.js → chunk-pbcbn83d.js} +4 -4
  189. package/dist/{chunk-wt4szfec.js.map → chunk-pbcbn83d.js.map} +1 -1
  190. package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
  191. package/dist/chunk-pfp1txq2.js.map +11 -0
  192. package/dist/chunk-pqajwytd.js.map +2 -2
  193. package/dist/{chunk-f1xh7a32.js → chunk-q1vkr2ys.js} +4 -4
  194. package/dist/chunk-rdghfsss.js.map +2 -2
  195. package/dist/{chunk-23xs4qp9.js → chunk-rhg02hxq.js} +4 -4
  196. package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
  197. package/dist/chunk-rz53yb4v.js.map +14 -0
  198. package/dist/{chunk-aq39q04r.js → chunk-s16apyk9.js} +104 -18
  199. package/dist/chunk-s16apyk9.js.map +16 -0
  200. package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
  201. package/dist/chunk-s54c868q.js.map +12 -0
  202. package/dist/{chunk-k4g51s47.js → chunk-t6vq7bff.js} +5 -5
  203. package/dist/{chunk-sk0hcjsz.js → chunk-tjb1mk5t.js} +3 -3
  204. package/dist/{chunk-cnb5kv05.js → chunk-tpn40322.js} +23 -8
  205. package/dist/chunk-tpn40322.js.map +19 -0
  206. package/dist/{chunk-rx7h5fdx.js → chunk-v9xd5wzd.js} +1 -1
  207. package/dist/{chunk-2vhg6ysa.js → chunk-vyf9kfqf.js} +1 -1
  208. package/dist/chunk-wwdfe68s.js +128 -0
  209. package/dist/chunk-wwdfe68s.js.map +11 -0
  210. package/dist/{chunk-jnfxmr3f.js → chunk-wz0xs816.js} +6 -6
  211. package/dist/{chunk-jnfxmr3f.js.map → chunk-wz0xs816.js.map} +1 -1
  212. package/dist/chunk-xt1zt7gv.js +471 -0
  213. package/dist/chunk-xt1zt7gv.js.map +13 -0
  214. package/dist/chunk-y0c4e6ex.js +16 -0
  215. package/dist/chunk-y0c4e6ex.js.map +10 -0
  216. package/dist/{chunk-5be2ath4.js → chunk-y7rqfrgg.js} +20 -138
  217. package/dist/{chunk-5be2ath4.js.map → chunk-y7rqfrgg.js.map} +8 -9
  218. package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
  219. package/dist/chunk-yw9pyg66.js.map +11 -0
  220. package/dist/{chunk-dfm066qg.js → chunk-yxd3nnqt.js} +2 -29
  221. package/dist/chunk-yxd3nnqt.js.map +11 -0
  222. package/dist/{chunk-70jmg2zx.js → chunk-yzwja0mj.js} +4 -19
  223. package/dist/{chunk-70jmg2zx.js.map → chunk-yzwja0mj.js.map} +3 -3
  224. package/dist/{chunk-fggq3d9k.js → chunk-zrmy8zvw.js} +66 -47
  225. package/dist/{chunk-fggq3d9k.js.map → chunk-zrmy8zvw.js.map} +4 -4
  226. package/dist/datasets/builders.d.ts +12 -1
  227. package/dist/datasets/builders.d.ts.map +1 -1
  228. package/dist/datasets/execution.d.ts +27 -1
  229. package/dist/datasets/execution.d.ts.map +1 -1
  230. package/dist/datasets/index.d.ts +1 -1
  231. package/dist/datasets/index.d.ts.map +1 -1
  232. package/dist/datasets/types.d.ts +2 -0
  233. package/dist/datasets/types.d.ts.map +1 -1
  234. package/dist/datasets/write.d.ts +5 -0
  235. package/dist/datasets/write.d.ts.map +1 -1
  236. package/dist/datasets/write.js +10 -5
  237. package/dist/datasets/write.js.map +1 -1
  238. package/dist/deploy/index.d.ts +1 -1
  239. package/dist/deploy/index.d.ts.map +1 -1
  240. package/dist/deploy/internal.js +10 -8
  241. package/dist/deploy/internal.js.map +4 -4
  242. package/dist/deploy/services.d.ts +1 -2
  243. package/dist/deploy/services.d.ts.map +1 -1
  244. package/dist/deploy/types.d.ts +6 -5
  245. package/dist/deploy/types.d.ts.map +1 -1
  246. package/dist/deploy/validation.d.ts.map +1 -1
  247. package/dist/edits/index.js +3 -5
  248. package/dist/edits/index.js.map +1 -1
  249. package/dist/edits/properties.d.ts.map +1 -1
  250. package/dist/error-reporting/internal.js +3 -3
  251. package/dist/error-reporting/types.d.ts +2 -9
  252. package/dist/error-reporting/types.d.ts.map +1 -1
  253. package/dist/errors/catalog.d.ts +12 -0
  254. package/dist/errors/catalog.d.ts.map +1 -1
  255. package/dist/errors/internal.js +1 -1
  256. package/dist/events/definitions.d.ts +0 -5
  257. package/dist/events/definitions.d.ts.map +1 -1
  258. package/dist/events/execution.d.ts +2 -1
  259. package/dist/events/execution.d.ts.map +1 -1
  260. package/dist/events/index.d.ts +3 -3
  261. package/dist/events/index.d.ts.map +1 -1
  262. package/dist/events/index.js +6 -8
  263. package/dist/events/index.js.map +1 -1
  264. package/dist/events/scope.d.ts +0 -1
  265. package/dist/events/scope.d.ts.map +1 -1
  266. package/dist/events/scope.js +1 -1
  267. package/dist/events/selectors/builder.d.ts +1 -8
  268. package/dist/events/selectors/builder.d.ts.map +1 -1
  269. package/dist/events/selectors/index.d.ts +2 -2
  270. package/dist/events/selectors/index.d.ts.map +1 -1
  271. package/dist/events/selectors/index.js +2 -2
  272. package/dist/events/selectors/predicate.d.ts.map +1 -1
  273. package/dist/events/selectors/types.d.ts +2 -33
  274. package/dist/events/selectors/types.d.ts.map +1 -1
  275. package/dist/events/types/index.d.ts +1 -12
  276. package/dist/events/types/index.d.ts.map +1 -1
  277. package/dist/events/types/objects.d.ts +5 -0
  278. package/dist/events/types/objects.d.ts.map +1 -1
  279. package/dist/execution/agent.d.ts +10 -0
  280. package/dist/execution/agent.d.ts.map +1 -1
  281. package/dist/execution/agent.js +50 -48
  282. package/dist/execution/agent.js.map +1 -1
  283. package/dist/execution/authorized-object-reader.d.ts +6 -1
  284. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  285. package/dist/execution/primitive.js +60 -88
  286. package/dist/execution/primitive.js.map +3 -4
  287. package/dist/execution/request.js +46 -46
  288. package/dist/execution/request.js.map +1 -1
  289. package/dist/http/api-routes.d.ts.map +1 -1
  290. package/dist/http/index.js +1 -1
  291. package/dist/index.d.ts +12 -11
  292. package/dist/index.d.ts.map +1 -1
  293. package/dist/index.js +120 -124
  294. package/dist/index.js.map +1 -1
  295. package/dist/lake-storage/index.js +8 -5
  296. package/dist/lake-storage/index.js.map +1 -1
  297. package/dist/materialization/index.js +3 -3
  298. package/dist/materialization/index.js.map +1 -1
  299. package/dist/materialization/model.d.ts +19 -6
  300. package/dist/materialization/model.d.ts.map +1 -1
  301. package/dist/materializer/index.js +35 -32
  302. package/dist/materializer/index.js.map +1 -1
  303. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  304. package/dist/models/catalog.d.ts +1 -1
  305. package/dist/models/catalog.d.ts.map +1 -1
  306. package/dist/models/execution/binding.d.ts +6 -0
  307. package/dist/models/execution/binding.d.ts.map +1 -1
  308. package/dist/models/execution/index.js +26 -23
  309. package/dist/models/execution/index.js.map +1 -1
  310. package/dist/models/execution/model-call-recorder.d.ts +4 -0
  311. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  312. package/dist/models/execution.d.ts.map +1 -1
  313. package/dist/models/index.js +1 -1
  314. package/dist/models/language-model.d.ts +6 -0
  315. package/dist/models/language-model.d.ts.map +1 -1
  316. package/dist/objects/action/errors.d.ts +0 -9
  317. package/dist/objects/action/errors.d.ts.map +1 -1
  318. package/dist/objects/action/index.d.ts +3 -3
  319. package/dist/objects/action/index.d.ts.map +1 -1
  320. package/dist/objects/action/request.d.ts +2 -8
  321. package/dist/objects/action/request.d.ts.map +1 -1
  322. package/dist/objects/context/index.d.ts +1 -1
  323. package/dist/objects/context/index.d.ts.map +1 -1
  324. package/dist/objects/context/types.d.ts +6 -0
  325. package/dist/objects/context/types.d.ts.map +1 -1
  326. package/dist/objects/execution.d.ts +2 -3
  327. package/dist/objects/execution.d.ts.map +1 -1
  328. package/dist/objects/index.js +49 -30
  329. package/dist/objects/index.js.map +1 -1
  330. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  331. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  332. package/dist/objects/object/upsert.d.ts.map +1 -1
  333. package/dist/objects/property-clearance.d.ts +41 -0
  334. package/dist/objects/property-clearance.d.ts.map +1 -0
  335. package/dist/objects/query/executor.d.ts +3 -0
  336. package/dist/objects/query/executor.d.ts.map +1 -1
  337. package/dist/objects/query/index.js +34 -31
  338. package/dist/objects/query/index.js.map +1 -1
  339. package/dist/objects/query/validate.d.ts +10 -1
  340. package/dist/objects/query/validate.d.ts.map +1 -1
  341. package/dist/objects/sdk/file-handle.d.ts +6 -0
  342. package/dist/objects/sdk/file-handle.d.ts.map +1 -0
  343. package/dist/objects/sdk/object-handle.d.ts +2 -2
  344. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  345. package/dist/objects/sdk/object-set.d.ts +2 -0
  346. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  347. package/dist/objects/service/index.d.ts +0 -1
  348. package/dist/objects/service/index.d.ts.map +1 -1
  349. package/dist/ontology/builders.d.ts +12 -1
  350. package/dist/ontology/builders.d.ts.map +1 -1
  351. package/dist/ontology/docs-markdown.d.ts +35 -0
  352. package/dist/ontology/docs-markdown.d.ts.map +1 -0
  353. package/dist/ontology/docs.d.ts +50 -0
  354. package/dist/ontology/docs.d.ts.map +1 -0
  355. package/dist/ontology/index.js +7 -4
  356. package/dist/ontology/index.js.map +1 -1
  357. package/dist/ontology/inference/index.d.ts +19 -0
  358. package/dist/ontology/inference/index.d.ts.map +1 -1
  359. package/dist/ontology/internal.d.ts +3 -1
  360. package/dist/ontology/internal.d.ts.map +1 -1
  361. package/dist/ontology/internal.js +276 -3
  362. package/dist/ontology/internal.js.map +4 -3
  363. package/dist/ontology/tokens.d.ts +8 -1
  364. package/dist/ontology/tokens.d.ts.map +1 -1
  365. package/dist/ontology/types.d.ts +5 -0
  366. package/dist/ontology/types.d.ts.map +1 -1
  367. package/dist/ontology/validation/index.d.ts +1 -1
  368. package/dist/ontology/validation/index.d.ts.map +1 -1
  369. package/dist/ontology/validation/schema.d.ts +7 -0
  370. package/dist/ontology/validation/schema.d.ts.map +1 -1
  371. package/dist/pipelines/index.js +34 -31
  372. package/dist/pipelines/index.js.map +1 -1
  373. package/dist/projections/internal.js +27 -24
  374. package/dist/projections/internal.js.map +1 -1
  375. package/dist/query.js +2 -2
  376. package/dist/queues/in-memory.d.ts +1 -2
  377. package/dist/queues/in-memory.d.ts.map +1 -1
  378. package/dist/queues/index.d.ts +1 -1
  379. package/dist/queues/index.d.ts.map +1 -1
  380. package/dist/queues/index.js +1 -1
  381. package/dist/queues/types.d.ts +0 -7
  382. package/dist/queues/types.d.ts.map +1 -1
  383. package/dist/runtime/create.d.ts +11 -2
  384. package/dist/runtime/create.d.ts.map +1 -1
  385. package/dist/runtime/definitions.d.ts +3 -1
  386. package/dist/runtime/definitions.d.ts.map +1 -1
  387. package/dist/runtime/host.d.ts +13 -2
  388. package/dist/runtime/host.d.ts.map +1 -1
  389. package/dist/runtime/index.d.ts +1 -1
  390. package/dist/runtime/index.d.ts.map +1 -1
  391. package/dist/runtime/internal.js +30 -28
  392. package/dist/runtime/internal.js.map +1 -1
  393. package/dist/runtime/locale.d.ts +9 -0
  394. package/dist/runtime/locale.d.ts.map +1 -0
  395. package/dist/runtime/resolve-definitions.d.ts +4 -2
  396. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  397. package/dist/runtime/types.d.ts +46 -39
  398. package/dist/runtime/types.d.ts.map +1 -1
  399. package/dist/sandboxes/index.js +7 -6
  400. package/dist/sandboxes/index.js.map +1 -1
  401. package/dist/scheduler/index.js +1 -1
  402. package/dist/scheduler/runtime.d.ts +3 -0
  403. package/dist/scheduler/runtime.d.ts.map +1 -1
  404. package/dist/schedules/builders.d.ts.map +1 -1
  405. package/dist/schedules/index.js +3 -3
  406. package/dist/schedules/runtime.d.ts.map +1 -1
  407. package/dist/schedules/validation.d.ts +0 -1
  408. package/dist/schedules/validation.d.ts.map +1 -1
  409. package/dist/security/builders.d.ts +11 -2
  410. package/dist/security/builders.d.ts.map +1 -1
  411. package/dist/security/every.d.ts +1 -1
  412. package/dist/security/index.d.ts +4 -4
  413. package/dist/security/index.d.ts.map +1 -1
  414. package/dist/security/markings.d.ts +19 -0
  415. package/dist/security/markings.d.ts.map +1 -0
  416. package/dist/security/redactions.d.ts +4 -0
  417. package/dist/security/redactions.d.ts.map +1 -0
  418. package/dist/security/registry.d.ts +7 -1
  419. package/dist/security/registry.d.ts.map +1 -1
  420. package/dist/security/types.d.ts +25 -0
  421. package/dist/security/types.d.ts.map +1 -1
  422. package/dist/security/validation.d.ts +4 -1
  423. package/dist/security/validation.d.ts.map +1 -1
  424. package/dist/shares/internal.js +24 -21
  425. package/dist/shares/internal.js.map +2 -2
  426. package/dist/storage/action-runs/failure.js +2 -2
  427. package/dist/storage/action-runs/idempotency.d.ts +3 -4
  428. package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
  429. package/dist/storage/action-runs/in-memory.d.ts +2 -9
  430. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  431. package/dist/storage/action-runs/index.d.ts +1 -3
  432. package/dist/storage/action-runs/index.d.ts.map +1 -1
  433. package/dist/storage/action-runs/provider.js +1 -1
  434. package/dist/storage/action-runs/record.d.ts +20 -0
  435. package/dist/storage/action-runs/record.d.ts.map +1 -0
  436. package/dist/storage/action-runs/types.d.ts +39 -68
  437. package/dist/storage/action-runs/types.d.ts.map +1 -1
  438. package/dist/storage/agents/provider.d.ts.map +1 -1
  439. package/dist/storage/agents/provider.js +5 -4
  440. package/dist/storage/agents/provider.js.map +1 -1
  441. package/dist/storage/agents/types.d.ts +15 -9
  442. package/dist/storage/agents/types.d.ts.map +1 -1
  443. package/dist/storage/ai-limits/enforcement.js +2 -2
  444. package/dist/storage/connector-connections/provider.js +1 -1
  445. package/dist/storage/file-upload-sessions/provider.js +12 -9
  446. package/dist/storage/file-upload-sessions/provider.js.map +1 -1
  447. package/dist/storage/index.d.ts +3 -2
  448. package/dist/storage/index.d.ts.map +1 -1
  449. package/dist/storage/index.js +36 -34
  450. package/dist/storage/index.js.map +1 -1
  451. package/dist/storage/internal.d.ts +1 -1
  452. package/dist/storage/internal.d.ts.map +1 -1
  453. package/dist/storage/internal.js +11 -13
  454. package/dist/storage/internal.js.map +1 -1
  455. package/dist/storage/objects/execution-limits.d.ts +1 -1
  456. package/dist/storage/objects/execution-limits.d.ts.map +1 -1
  457. package/dist/storage/objects/types.d.ts +7 -0
  458. package/dist/storage/objects/types.d.ts.map +1 -1
  459. package/dist/storage/ontology/provider.js +2 -2
  460. package/dist/storage/projection-runs/provider.js +2 -2
  461. package/dist/storage/types.d.ts +1 -1
  462. package/dist/storage/types.d.ts.map +1 -1
  463. package/dist/storage/workflow-runs/provider.js +12 -9
  464. package/dist/storage/workflow-runs/provider.js.map +1 -1
  465. package/dist/syncs/index.js +35 -32
  466. package/dist/syncs/index.js.map +1 -1
  467. package/dist/testing/action-execution.d.ts +34 -4
  468. package/dist/testing/action-execution.d.ts.map +1 -1
  469. package/dist/testing/action-run-storage-contract.d.ts +11 -0
  470. package/dist/testing/action-run-storage-contract.d.ts.map +1 -0
  471. package/dist/testing/index.d.ts +2 -1
  472. package/dist/testing/index.d.ts.map +1 -1
  473. package/dist/testing/index.js +3213 -2869
  474. package/dist/testing/index.js.map +7 -6
  475. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  476. package/dist/testing/queues-contract.d.ts.map +1 -1
  477. package/dist/webhooks/internal.js +29 -26
  478. package/dist/webhooks/internal.js.map +2 -2
  479. package/dist/workers/index.js +1 -1
  480. package/dist/workflows/builders.d.ts.map +1 -1
  481. package/dist/workflows/index.js +55 -55
  482. package/dist/workflows/index.js.map +1 -1
  483. package/dist/workflows/request.d.ts.map +1 -1
  484. package/dist/workflows/types.d.ts +6 -3
  485. package/dist/workflows/types.d.ts.map +1 -1
  486. package/dist/workflows/validation.d.ts +2 -1
  487. package/dist/workflows/validation.d.ts.map +1 -1
  488. package/package.json +1 -7
  489. package/src/actions/commit-edits.ts +9 -37
  490. package/src/actions/errors.ts +0 -4
  491. package/src/actions/execution.ts +10 -10
  492. package/src/actions/index.ts +5 -24
  493. package/src/actions/read-facade.ts +2 -1
  494. package/src/actions/request.ts +157 -295
  495. package/src/actions/run/context.ts +193 -0
  496. package/src/actions/run/edits-commit.ts +102 -0
  497. package/src/actions/run/effects.ts +105 -0
  498. package/src/actions/run/execute.ts +113 -0
  499. package/src/actions/run/executor.ts +314 -0
  500. package/src/actions/run/normalize.ts +142 -0
  501. package/src/actions/run/phase-types.ts +20 -0
  502. package/src/actions/run/phases.ts +150 -0
  503. package/src/actions/run/run-action.ts +170 -0
  504. package/src/actions/run/signals.ts +118 -0
  505. package/src/actions/run/state.ts +95 -0
  506. package/src/actions/run/types.ts +61 -0
  507. package/src/actions/run/writeback.ts +79 -0
  508. package/src/actions/run-authorization.ts +1 -1
  509. package/src/actions/run-persistence.ts +105 -0
  510. package/src/actions/types/context.ts +10 -0
  511. package/src/actions/validation.ts +4 -1
  512. package/src/agents/adapters.ts +15 -0
  513. package/src/agents/authority.ts +15 -0
  514. package/src/agents/context/entries.ts +48 -4
  515. package/src/agents/context/index.ts +1 -0
  516. package/src/agents/context-compaction.ts +6 -0
  517. package/src/agents/errors.ts +3 -0
  518. package/src/agents/index.ts +13 -1
  519. package/src/agents/message.ts +9 -0
  520. package/src/agents/request.ts +178 -22
  521. package/src/agents/skills.ts +63 -0
  522. package/src/agents/types.ts +35 -5
  523. package/src/auth/runtime.ts +14 -0
  524. package/src/auth/types.ts +6 -0
  525. package/src/authorization/event-visibility.ts +0 -12
  526. package/src/authorization/resolve.ts +6 -1
  527. package/src/authorization/types.ts +7 -0
  528. package/src/blob-storage/execution.ts +12 -0
  529. package/src/blob-storage/file-content.ts +106 -0
  530. package/src/blob-storage/index.ts +1 -0
  531. package/src/blob-storage/internal.ts +7 -0
  532. package/src/blob-storage/media-type.ts +29 -0
  533. package/src/blob-storage/types.ts +13 -1
  534. package/src/blob-storage/validation.ts +13 -0
  535. package/src/bootstrap/agent-context.ts +356 -0
  536. package/src/bootstrap/discovery.ts +100 -33
  537. package/src/bootstrap/index.ts +1 -1
  538. package/src/bootstrap/ontology-type-manifest.ts +3 -38
  539. package/src/datasets/builders.ts +17 -1
  540. package/src/datasets/execution.ts +110 -2
  541. package/src/datasets/index.ts +7 -1
  542. package/src/datasets/types.ts +2 -0
  543. package/src/datasets/write.ts +21 -2
  544. package/src/deploy/index.ts +0 -1
  545. package/src/deploy/services.ts +2 -11
  546. package/src/deploy/types.ts +6 -6
  547. package/src/deploy/validation.ts +12 -6
  548. package/src/edits/properties.ts +3 -0
  549. package/src/error-reporting/types.ts +2 -10
  550. package/src/errors/catalog.ts +13 -0
  551. package/src/events/definitions.ts +0 -17
  552. package/src/events/execution.ts +15 -16
  553. package/src/events/index.ts +0 -14
  554. package/src/events/scope.ts +0 -12
  555. package/src/events/selectors/builder.ts +0 -51
  556. package/src/events/selectors/index.ts +0 -6
  557. package/src/events/selectors/predicate.ts +0 -2
  558. package/src/events/selectors/types.ts +7 -65
  559. package/src/events/types/index.ts +0 -11
  560. package/src/events/types/objects.ts +5 -0
  561. package/src/execution/agent.ts +27 -0
  562. package/src/execution/authorization.ts +1 -0
  563. package/src/execution/authorized-object-reader.ts +96 -34
  564. package/src/execution/scopes.ts +2 -6
  565. package/src/http/api-routes.ts +4 -3
  566. package/src/index.ts +28 -21
  567. package/src/materialization/model.ts +26 -9
  568. package/src/materializer/README.md +6 -1
  569. package/src/materializer/edits/commit.ts +42 -32
  570. package/src/materializer/shared/normalize.ts +25 -14
  571. package/src/models/catalog.ts +26 -2
  572. package/src/models/execution/README.md +4 -3
  573. package/src/models/execution/binding.ts +6 -0
  574. package/src/models/execution/model-call-recorder.ts +10 -0
  575. package/src/models/execution/session.ts +2 -2
  576. package/src/models/execution.ts +6 -2
  577. package/src/models/language-model.ts +6 -0
  578. package/src/objects/action/errors.ts +0 -12
  579. package/src/objects/action/index.ts +3 -3
  580. package/src/objects/action/request.ts +2 -29
  581. package/src/objects/context/index.ts +1 -0
  582. package/src/objects/context/types.ts +7 -0
  583. package/src/objects/execution.ts +6 -3
  584. package/src/objects/materializer-adapter.ts +3 -0
  585. package/src/objects/object/upsert-batch.ts +4 -1
  586. package/src/objects/object/upsert.ts +3 -1
  587. package/src/objects/property-clearance.ts +209 -0
  588. package/src/objects/query/executor.ts +43 -36
  589. package/src/objects/query/validate.ts +133 -14
  590. package/src/objects/sdk/file-handle.ts +77 -0
  591. package/src/objects/sdk/object-handle.ts +11 -33
  592. package/src/objects/sdk/object-set.ts +10 -32
  593. package/src/objects/service/index.ts +0 -1
  594. package/src/ontology/builders.ts +18 -2
  595. package/src/ontology/docs-markdown.ts +394 -0
  596. package/src/ontology/docs.ts +196 -0
  597. package/src/ontology/inference/index.ts +25 -0
  598. package/src/ontology/internal.ts +7 -0
  599. package/src/ontology/tokens.ts +13 -2
  600. package/src/ontology/types.ts +5 -0
  601. package/src/ontology/validation/index.ts +1 -0
  602. package/src/ontology/validation/schema.ts +26 -1
  603. package/src/queues/in-memory.ts +0 -6
  604. package/src/queues/index.ts +0 -2
  605. package/src/queues/types.ts +0 -11
  606. package/src/runtime/create.ts +34 -4
  607. package/src/runtime/definitions.ts +3 -1
  608. package/src/runtime/host.ts +50 -1
  609. package/src/runtime/index.ts +3 -0
  610. package/src/runtime/locale.ts +26 -0
  611. package/src/runtime/resolve-definitions.ts +28 -2
  612. package/src/runtime/sixb.ts +1 -1
  613. package/src/runtime/types.ts +55 -48
  614. package/src/scheduler/runtime.ts +11 -2
  615. package/src/schedules/builders.ts +1 -4
  616. package/src/schedules/runtime.ts +0 -41
  617. package/src/schedules/validation.ts +2 -16
  618. package/src/security/builders.ts +49 -5
  619. package/src/security/every.ts +1 -1
  620. package/src/security/index.ts +6 -1
  621. package/src/security/markings.ts +313 -0
  622. package/src/security/redactions.ts +6 -0
  623. package/src/security/registry.ts +21 -1
  624. package/src/security/types.ts +26 -0
  625. package/src/security/validation.ts +59 -2
  626. package/src/storage/action-runs/idempotency.ts +13 -41
  627. package/src/storage/action-runs/in-memory.ts +20 -311
  628. package/src/storage/action-runs/index.ts +1 -16
  629. package/src/storage/action-runs/record.ts +130 -0
  630. package/src/storage/action-runs/types.ts +37 -92
  631. package/src/storage/agents/provider.ts +11 -0
  632. package/src/storage/agents/types.ts +15 -7
  633. package/src/storage/index.ts +2 -9
  634. package/src/storage/internal.ts +1 -7
  635. package/src/storage/objects/execution-limits.ts +3 -2
  636. package/src/storage/objects/types.ts +7 -0
  637. package/src/storage/types.ts +2 -4
  638. package/src/testing/action-execution.ts +73 -13
  639. package/src/testing/action-run-storage-contract.ts +335 -0
  640. package/src/testing/index.ts +8 -1
  641. package/src/testing/materializer-storage-contract.ts +174 -18
  642. package/src/testing/queues-contract.ts +0 -18
  643. package/src/workflows/builders.ts +24 -1
  644. package/src/workflows/request.ts +3 -0
  645. package/src/workflows/types.ts +6 -3
  646. package/src/workflows/validation.ts +32 -4
  647. package/dist/actions/run-dispatch.d.ts +0 -25
  648. package/dist/actions/run-dispatch.d.ts.map +0 -1
  649. package/dist/actions/worker.d.ts +0 -3
  650. package/dist/actions/worker.d.ts.map +0 -1
  651. package/dist/actions/worker.js +0 -321
  652. package/dist/actions/worker.js.map +0 -11
  653. package/dist/chunk-10styjgk.js +0 -1572
  654. package/dist/chunk-10styjgk.js.map +0 -20
  655. package/dist/chunk-1hqwggsn.js.map +0 -12
  656. package/dist/chunk-52c5zb0z.js +0 -81
  657. package/dist/chunk-52c5zb0z.js.map +0 -10
  658. package/dist/chunk-69266efg.js.map +0 -12
  659. package/dist/chunk-6wbm6ymz.js +0 -4399
  660. package/dist/chunk-6wbm6ymz.js.map +0 -48
  661. package/dist/chunk-85cd7e8c.js +0 -51
  662. package/dist/chunk-85cd7e8c.js.map +0 -10
  663. package/dist/chunk-91kcnbf0.js.map +0 -10
  664. package/dist/chunk-98cw09sw.js.map +0 -10
  665. package/dist/chunk-9g6jz9kk.js +0 -592
  666. package/dist/chunk-9g6jz9kk.js.map +0 -15
  667. package/dist/chunk-9vx5e9g1.js.map +0 -11
  668. package/dist/chunk-aq39q04r.js.map +0 -15
  669. package/dist/chunk-cd234ba4.js.map +0 -14
  670. package/dist/chunk-cnb5kv05.js.map +0 -19
  671. package/dist/chunk-dfm066qg.js.map +0 -11
  672. package/dist/chunk-dmn70ztd.js.map +0 -11
  673. package/dist/chunk-fc5zfxy1.js.map +0 -11
  674. package/dist/chunk-gf7yht60.js.map +0 -12
  675. package/dist/chunk-h3v76ams.js.map +0 -11
  676. package/dist/chunk-pja9jfz6.js.map +0 -19
  677. package/dist/chunk-r2y23egw.js.map +0 -10
  678. package/dist/chunk-t9shqx3w.js.map +0 -12
  679. package/dist/chunk-tjjgy3z4.js +0 -1277
  680. package/dist/chunk-tjjgy3z4.js.map +0 -35
  681. package/dist/chunk-xcy5ddha.js.map +0 -15
  682. package/dist/chunk-xyvy73tj.js.map +0 -12
  683. package/dist/chunk-y2aq6ag9.js.map +0 -11
  684. package/dist/chunk-z5rnrmz1.js.map +0 -11
  685. package/dist/chunk-zvx7h87b.js +0 -12
  686. package/dist/chunk-zvx7h87b.js.map +0 -10
  687. package/dist/events/types/actions.d.ts +0 -39
  688. package/dist/events/types/actions.d.ts.map +0 -1
  689. package/dist/objects/service/action-service.d.ts +0 -13
  690. package/dist/objects/service/action-service.d.ts.map +0 -1
  691. package/src/actions/run-dispatch.ts +0 -282
  692. package/src/actions/worker.ts +0 -2
  693. package/src/events/types/actions.ts +0 -42
  694. package/src/objects/service/action-service.ts +0 -43
  695. /package/dist/{chunk-jjrn5v0p.js.map → chunk-1k89ecfr.js.map} +0 -0
  696. /package/dist/{chunk-vre348sb.js.map → chunk-52bk93x8.js.map} +0 -0
  697. /package/dist/{chunk-4gmng3vf.js.map → chunk-5e43w60z.js.map} +0 -0
  698. /package/dist/{chunk-33saed7g.js.map → chunk-7kg3k1m9.js.map} +0 -0
  699. /package/dist/{chunk-kkqwzy6h.js.map → chunk-7t429e3f.js.map} +0 -0
  700. /package/dist/{chunk-2am3db31.js.map → chunk-9gyp8hg1.js.map} +0 -0
  701. /package/dist/{chunk-4wn7bxxa.js.map → chunk-9ybhtmg4.js.map} +0 -0
  702. /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
  703. /package/dist/{chunk-5thzcb8g.js.map → chunk-c85m1hyj.js.map} +0 -0
  704. /package/dist/{chunk-e67ynxcr.js.map → chunk-d2ync1v3.js.map} +0 -0
  705. /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
  706. /package/dist/{chunk-vjcd8d27.js.map → chunk-fa02jy15.js.map} +0 -0
  707. /package/dist/{chunk-vp3z1ckh.js.map → chunk-kyzq4wy9.js.map} +0 -0
  708. /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
  709. /package/dist/{chunk-a7er86jd.js.map → chunk-nre82s12.js.map} +0 -0
  710. /package/dist/{chunk-f1xh7a32.js.map → chunk-q1vkr2ys.js.map} +0 -0
  711. /package/dist/{chunk-23xs4qp9.js.map → chunk-rhg02hxq.js.map} +0 -0
  712. /package/dist/{chunk-k4g51s47.js.map → chunk-t6vq7bff.js.map} +0 -0
  713. /package/dist/{chunk-sk0hcjsz.js.map → chunk-tjb1mk5t.js.map} +0 -0
  714. /package/dist/{chunk-rx7h5fdx.js.map → chunk-v9xd5wzd.js.map} +0 -0
  715. /package/dist/{chunk-2vhg6ysa.js.map → chunk-vyf9kfqf.js.map} +0 -0
@@ -1,17 +1,27 @@
1
1
  // @bun
2
+ import {
3
+ isFileRef2,
4
+ isValidFileRef
5
+ } from "./chunk-jhm3zsa7.js";
2
6
  import {
3
7
  getDatasetRowValidationFailure
4
- } from "./chunk-cd234ba4.js";
8
+ } from "./chunk-rz53yb4v.js";
5
9
  import {
6
10
  getDatasetMergeChangeValidationError2
7
- } from "./chunk-rb143ggb.js";
8
- import {
9
- isFileRef2
10
- } from "./chunk-h3v76ams.js";
11
+ } from "./chunk-bwjcehza.js";
11
12
 
12
13
  // src/datasets/write.ts
14
+ function lakeDatasetDefinition2(dataset) {
15
+ if (!dataset.schema.columns.some((column) => column.markings))
16
+ return dataset;
17
+ return {
18
+ ...dataset,
19
+ schema: { columns: dataset.schema.columns.map(({ markings: _markings, ...column }) => column) }
20
+ };
21
+ }
13
22
  async function writeDataset2(input) {
14
- const { lakeStorage, dataset, signal } = input;
23
+ const { lakeStorage, signal } = input;
24
+ const dataset = lakeDatasetDefinition2(input.dataset);
15
25
  let abortWrite;
16
26
  let rowsRead = 0;
17
27
  const onRead = () => {
@@ -115,8 +125,11 @@ async function verifyRowFileRefs(row, input, itemIndex) {
115
125
  }
116
126
  }
117
127
  async function verifyFileRef(fileRef, input, columnName, itemIndex) {
118
- const blobInfo = await input.blobStorage.stat(fileRef.blobId);
119
128
  const context = `${sourceLabel(input)} returned row ${itemIndex} with dataset '${input.dataset.id}' column '${columnName}'`;
129
+ if (!isValidFileRef(fileRef)) {
130
+ throw new Error(`${context} with an invalid mediaType; use one media type, such as "application/pdf".`);
131
+ }
132
+ const blobInfo = await input.blobStorage.stat(fileRef.blobId);
120
133
  if (!blobInfo) {
121
134
  throw new Error(`${context} referencing unknown blob '${fileRef.blobId}'.`);
122
135
  }
@@ -137,6 +150,6 @@ function throwIfAborted(signal) {
137
150
  throw error;
138
151
  }
139
152
 
140
- export { writeDataset2 };
153
+ export { lakeDatasetDefinition2, writeDataset2 };
141
154
 
142
- //# debugId=013E5C6E3459B8F964756E2164756E21
155
+ //# debugId=CDE5D84B182CBD5A64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/datasets/write.ts"],
4
+ "sourcesContent": [
5
+ "import type { BlobStorage, FileRef } from \"../blob-storage\"\nimport { isFileRef } from \"../blob-storage\"\nimport { isValidFileRef } from \"../blob-storage/validation\"\nimport type { DatasetMergeCommitResult } from \"../lake-storage/merge\"\nimport { getDatasetMergeChangeValidationError } from \"../lake-storage/merge-validation\"\nimport type {\n DatasetProducer,\n DatasetRow,\n DatasetWriteMode,\n LakeStorage,\n} from \"../lake-storage/types\"\nimport type { MergeChange } from \"./changes\"\nimport type { DatasetDefinition } from \"./types\"\nimport { getDatasetRowValidationFailure } from \"./validation\"\n\nexport interface DatasetWriteValue {\n readonly value: unknown\n}\n\nexport interface WriteDatasetInput<TValue extends DatasetWriteValue = DatasetWriteValue> {\n readonly lakeStorage: LakeStorage\n readonly blobStorage: Pick<BlobStorage, \"stat\">\n readonly dataset: DatasetDefinition\n readonly mode: DatasetWriteMode | \"merge\"\n readonly signal: AbortSignal\n /** Lazy so a merge's latest-version guard is checked before fetching source data. */\n readValues(): Promise<Iterable<TValue> | AsyncIterable<TValue>>\n readonly producer?: DatasetProducer\n readonly expectedLatestVersionId?: string\n readonly commitMessage?: string\n /** Diagnostic label for the caller, including its component prefix. */\n readonly sourceLabel?: string\n /** Progress includes validated values even if the operation subsequently fails. */\n onRead?(rowsRead: number): void\n /** Attach caller-owned source provenance to a validation failure. */\n mapValidationError?(error: unknown, value: TValue, itemIndex: number): unknown\n}\n\nexport type WriteDatasetResult = DatasetMergeCommitResult & { readonly rowsRead: number }\n\n/**\n * The definition the lake receives. Markings are enforced from the registered definition and never\n * stored, so a stored schema cannot keep a classification the code has since changed.\n */\nexport function lakeDatasetDefinition(dataset: DatasetDefinition): DatasetDefinition {\n if (!dataset.schema.columns.some((column) => column.markings)) return dataset\n return {\n ...dataset,\n schema: { columns: dataset.schema.columns.map(({ markings: _markings, ...column }) => column) },\n }\n}\n\n/**\n * Validate, stage, and commit one dataset write using existing lake sessions.\n *\n * The caller owns fetching/cancelling its source, execution bookkeeping, and publishing the\n * dataset-update notification for a `created` result. This operation returns immediately after\n * the lake commit; it does not wait for downstream pipelines or projections.\n */\nexport async function writeDataset<TValue extends DatasetWriteValue>(\n input: WriteDatasetInput<TValue>\n): Promise<WriteDatasetResult> {\n const { lakeStorage, signal } = input\n const dataset = lakeDatasetDefinition(input.dataset)\n let abortWrite: (() => Promise<void>) | undefined\n let rowsRead = 0\n const onRead = () => {\n rowsRead += 1\n input.onRead?.(rowsRead)\n }\n\n throwIfAborted(signal)\n await lakeStorage.createDataset(dataset)\n try {\n throwIfAborted(signal)\n const reconcileSnapshot = dataset.sequenceBy !== undefined && input.mode === \"snapshot\"\n if (input.mode === \"merge\" || reconcileSnapshot) {\n const session = await lakeStorage.beginMerge({\n dataset,\n expectedLatestVersionId: input.expectedLatestVersionId,\n producer: input.producer,\n })\n abortWrite = () => session.abort()\n throwIfAborted(signal)\n const values = await input.readValues()\n throwIfAborted(signal)\n await session.writeChanges(\n validatedValues(\n input,\n values,\n async (value, itemIndex) =>\n reconcileSnapshot\n ? { kind: \"upsert\" as const, row: await validateRow(value, input, itemIndex) }\n : validateMergeChange(value, input, itemIndex),\n onRead\n )\n )\n throwIfAborted(signal)\n const result = await session.commit({\n commitMessage: input.commitMessage,\n createInitialVersion: reconcileSnapshot,\n retryOnConflict: dataset.sequenceBy !== undefined,\n signal,\n })\n return { ...result, rowsRead }\n }\n\n const values = await input.readValues()\n throwIfAborted(signal)\n const session = await lakeStorage.beginWrite({\n dataset,\n mode: input.mode,\n producer: input.producer,\n })\n abortWrite = () => session.abort()\n await session.writeRows(\n validatedValues(\n input,\n values,\n (value, itemIndex) => validateRow(value, input, itemIndex),\n onRead\n )\n )\n throwIfAborted(signal)\n\n // Preserve sync semantics: an empty append must not invent an initial dataset version.\n if (rowsRead === 0 && input.mode === \"append\") {\n const version = await lakeStorage.getLatestVersion(dataset.id)\n await session.abort()\n return { outcome: \"unchanged\", version, rowsRead }\n }\n\n const { outcome, ...version } = await session.commit({\n expectedLatestVersionId: input.expectedLatestVersionId,\n commitMessage: input.commitMessage,\n })\n return { outcome, version, rowsRead }\n } catch (error) {\n // Cleanup must not replace the source, validation, cancellation, or commit failure.\n await abortWrite?.().catch(() => {})\n throw error\n }\n}\n\nasync function* validatedValues<TValue extends DatasetWriteValue, TResult>(\n input: WriteDatasetInput<TValue>,\n values: Iterable<TValue> | AsyncIterable<TValue>,\n validate: (value: unknown, itemIndex: number) => Promise<TResult>,\n onRead: () => void\n): AsyncIterable<TResult> {\n let itemIndex = 0\n for await (const sourceValue of values) {\n throwIfAborted(input.signal)\n itemIndex += 1\n let value: TResult\n try {\n value = await validate(sourceValue.value, itemIndex)\n } catch (error) {\n throw input.mapValidationError\n ? input.mapValidationError(error, sourceValue, itemIndex)\n : error\n }\n onRead()\n yield value\n }\n}\n\nfunction sourceLabel(input: Pick<WriteDatasetInput, \"dataset\" | \"sourceLabel\">): string {\n return input.sourceLabel ?? `[Sixb] Dataset '${input.dataset.id}' writer`\n}\n\nasync function validateRow(\n value: unknown,\n input: WriteDatasetInput,\n itemIndex: number\n): Promise<DatasetRow> {\n const validationError = getDatasetRowValidationFailure(value, input.dataset)\n if (validationError) {\n throw new Error(\n `${sourceLabel(input)} returned an invalid row at item ${itemIndex}. ${validationError.message}`,\n { cause: validationError }\n )\n }\n // The validator above establishes the row shape.\n const row = value as DatasetRow\n await verifyRowFileRefs(row, input, itemIndex)\n return row\n}\n\nasync function validateMergeChange(\n value: unknown,\n input: WriteDatasetInput,\n itemIndex: number\n): Promise<MergeChange<DatasetRow, DatasetRow>> {\n const validationError = getDatasetMergeChangeValidationError(value, input.dataset)\n if (validationError) {\n throw new Error(\n `${sourceLabel(input)} returned an invalid merge change at item ${itemIndex}. ${validationError}`\n )\n }\n const change = value as MergeChange<DatasetRow, DatasetRow>\n if (change.kind === \"upsert\") await verifyRowFileRefs(change.row, input, itemIndex)\n return change\n}\n\nasync function verifyRowFileRefs(\n row: DatasetRow,\n input: WriteDatasetInput,\n itemIndex: number\n): Promise<void> {\n for (const column of input.dataset.schema.columns) {\n if (column.type !== \"fileRef\") continue\n const value = row[column.name]\n if (isFileRef(value)) await verifyFileRef(value, input, column.name, itemIndex)\n }\n}\n\nasync function verifyFileRef(\n fileRef: FileRef,\n input: WriteDatasetInput,\n columnName: string,\n itemIndex: number\n): Promise<void> {\n const context = `${sourceLabel(input)} returned row ${itemIndex} with dataset '${input.dataset.id}' column '${columnName}'`\n if (!isValidFileRef(fileRef)) {\n throw new Error(\n `${context} with an invalid mediaType; use one media type, such as \"application/pdf\".`\n )\n }\n const blobInfo = await input.blobStorage.stat(fileRef.blobId)\n if (!blobInfo) {\n throw new Error(`${context} referencing unknown blob '${fileRef.blobId}'.`)\n }\n if (blobInfo.digest !== fileRef.digest) {\n throw new Error(\n `${context} referencing blob '${fileRef.blobId}' with digest '${fileRef.digest}', but blob storage has '${blobInfo.digest}'.`\n )\n }\n if (blobInfo.sizeBytes !== fileRef.sizeBytes) {\n throw new Error(\n `${context} referencing blob '${fileRef.blobId}' with size ${fileRef.sizeBytes}, but blob storage has ${blobInfo.sizeBytes}.`\n )\n }\n}\n\nfunction throwIfAborted(signal: AbortSignal): void {\n if (!signal.aborted) return\n if (signal.reason instanceof Error) throw signal.reason\n const error = new Error(\n typeof signal.reason === \"string\" && signal.reason.length > 0\n ? signal.reason\n : \"[Sixb] Dataset write was cancelled.\"\n )\n error.name = \"AbortError\"\n throw error\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "CDE5D84B182CBD5A64756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  principalsEqual2
4
- } from "./chunk-svabwqdq.js";
4
+ } from "./chunk-3gnrh4ve.js";
5
5
  import {
6
6
  createFileUploadId2,
7
7
  isFileUploadSessionExpired,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  createSixbError2,
4
4
  isSixbError2
5
- } from "./chunk-6fsr7y93.js";
5
+ } from "./chunk-8mx7qw3y.js";
6
6
  import {
7
7
  AiLimitStorageError2,
8
8
  aiLimitMeterApplies2
@@ -12,7 +12,7 @@ import {
12
12
  applicableAiLimitPolicies2,
13
13
  aiUsageLimitExceededError2,
14
14
  aiUsageLimitUnavailableError2
15
- } from "./chunk-2vhg6ysa.js";
15
+ } from "./chunk-vyf9kfqf.js";
16
16
  import {
17
17
  AiUsageStorageError2,
18
18
  normalizeAiModelCallCostRecord2,
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-ere85b8y.js";
21
21
  import {
22
22
  AiCostStorageError2
23
- } from "./chunk-5yd8cchh.js";
23
+ } from "./chunk-j2bp5ryw.js";
24
24
  import {
25
25
  normalizeAiModelCallRecord2
26
26
  } from "./chunk-rj69qcrd.js";
@@ -434,6 +434,12 @@ class AiModelCallRecorder2 {
434
434
  await recordAiModelCallAccounting({ storage: this.input.storage, ...recovery });
435
435
  });
436
436
  }
437
+ get executionId() {
438
+ return this.input.executionId;
439
+ }
440
+ get attempt() {
441
+ return this.input.attempt;
442
+ }
437
443
  wrapModel(model) {
438
444
  return {
439
445
  providerId: model.providerId,
@@ -592,4 +598,4 @@ async function enqueueAiModelCallRecovery2(queue, input) {
592
598
 
593
599
  export { AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE, aiModelCallOutputTokenAllowance, requireAccountingCapabilities, createAiModelCallLimitController2, ModelUsageRecordingError2, recordRecoveredAiModelCall2, isPermanentAiUsageRecoveryError2, AiModelCallRecorder2, enqueueAiModelCallRecovery2 };
594
600
 
595
- //# debugId=723C9B221336858664756E2164756E21
601
+ //# debugId=4BD85BF64D5B7A3564756E2164756E21
@@ -7,11 +7,11 @@
7
7
  "import { createHash } from \"node:crypto\"\nimport { assertJsonObject } from \"../../json\"\nimport type {\n AiBillableMeter,\n AiCostStorage,\n AiLimitStorage,\n AiModelCallCostRecord,\n AiModelCallUsageRecord,\n AiPricingContext,\n AiUsageStorage,\n RecordAiModelCallResult,\n Storage,\n} from \"../../storage\"\nimport {\n aiModelCallCostMatchesUsage,\n normalizeAiModelCallCostRecord,\n} from \"../../storage/ai-cost/provider\"\nimport { normalizeAiModelCallRecord } from \"../../storage/ai-usage/record\"\nimport type { ModelCostEstimate } from \"../pricing\"\nimport type { ModelCallAccountingStorage, RecoverAiModelCallInput } from \"./types\"\n\ninterface RecordAiModelCallAccountingInput extends RecoverAiModelCallInput {\n readonly storage: Pick<ModelCallAccountingStorage, \"transaction\">\n}\n\ninterface AiAccountingCapabilities {\n readonly aiUsage: AiUsageStorage\n readonly aiCosts: AiCostStorage\n readonly aiLimits: AiLimitStorage\n}\n\n/** Atomically append one provider call's usage and the valuation captured by the model runtime. */\nexport async function recordAiModelCallAccounting(\n input: RecordAiModelCallAccountingInput\n): Promise<RecordAiModelCallResult> {\n return input.storage.transaction(async (tx) => {\n const { aiUsage, aiCosts, aiLimits } = requireAccountingCapabilities(tx)\n const usage = await aiUsage.recordModelCall(input.usage)\n // Usage deduplicates provider lifecycle replays by execution/call identity. Always attach the\n // valuation to the canonical row it returns, not the fresh candidate ID from a replay.\n const canonical = normalizeModelCallAccounting({\n ...input,\n usage: usage.record,\n ratedAt: usage.record.recordedAt,\n })\n const record = modelCostRecord(canonical, usage.record.id)\n const estimate =\n canonical.cost.status !== \"reported\" || canonical.estimate === undefined\n ? undefined\n : modelCostRecord({ ...canonical, cost: canonical.estimate }, usage.record.id)\n await aiCosts.recordModelCallCost({\n ...record,\n ...(estimate === undefined\n ? {}\n : {\n estimate:\n estimate.status === \"rated\"\n ? { status: \"rated\", money: estimate.money, components: estimate.components }\n : {\n status: \"unpriceable\",\n reason: estimate.reason,\n ...(estimate.missingMeters === undefined\n ? {}\n : { missingMeters: estimate.missingMeters }),\n },\n }),\n })\n if (usage.created) {\n await aiLimits.recordModelCallActuals({\n projectId: usage.record.projectId,\n usageRecordId: usage.record.id,\n recordedAt: input.ratedAt,\n })\n }\n if (input.reconcileLimitReservation) {\n await aiLimits.reconcileModelCall({\n projectId: usage.record.projectId,\n executionId: usage.record.executionId,\n attempt: usage.record.attempt,\n callId: usage.record.callId,\n usageRecordId: usage.record.id,\n reconciledAt: input.ratedAt,\n })\n }\n return usage\n })\n}\n\n/** Sanitize optional enrichment before either persistence or a JSON-safe recovery handoff. */\nexport function normalizeModelCallAccounting(\n input: RecoverAiModelCallInput\n): RecoverAiModelCallInput {\n const usage = normalizeAiModelCallRecord(input.usage)\n return {\n ...input,\n cost:\n input.cost.status === \"reported\" ? input.cost : validatedEstimate(input.cost, input, usage),\n ...(input.estimate === undefined\n ? {}\n : { estimate: validatedEstimate(input.estimate, input, usage) }),\n }\n}\n\nfunction validatedEstimate(\n cost: ModelCostEstimate,\n input: RecoverAiModelCallInput,\n usage: AiModelCallUsageRecord\n): ModelCostEstimate {\n try {\n assertJsonObject(cost, \"model cost estimate\")\n const record = normalizeAiModelCallCostRecord(modelCostRecord({ ...input, cost }, usage.id))\n if (!aiModelCallCostMatchesUsage(record, usage)) {\n throw new TypeError(\"Estimate quantities do not match recorded usage.\")\n }\n return structuredClone(cost)\n } catch {\n console.warn(\n \"[SixbModels] Invalid model cost estimate; preserving call usage and provider cost.\"\n )\n return { status: \"unpriceable\", reason: \"inconsistent-usage\" }\n }\n}\n\nfunction modelCostRecord(\n input: RecoverAiModelCallInput,\n usageRecordId: string\n): AiModelCallCostRecord {\n const billingIdentity = {\n providerId: input.usage.providerId,\n modelId: input.usage.requestedModelId,\n }\n const pricingContext: AiPricingContext = {\n ...(input.route?.providerId === undefined ? {} : { routedProviderId: input.route.providerId }),\n ...(input.route?.modelId === undefined ? {} : { routedModelId: input.route.modelId }),\n }\n if (input.cost.status === \"reported\" || input.cost.status === \"rated\") {\n return {\n projectId: input.usage.projectId,\n usageRecordId,\n status: \"rated\",\n billingIdentity,\n pricingContext,\n priceSource: costPriceSource(input.usage, input.cost),\n money: input.cost.money,\n components: input.cost.status === \"rated\" ? input.cost.components : [],\n ratedAt: new Date(input.ratedAt),\n }\n }\n\n const reason =\n input.cost.reason === \"missing-rate-card\"\n ? \"missingRateCard\"\n : input.cost.reason === \"missing-usage\"\n ? \"missingUsageMeter\"\n : \"invalidUsageForFormula\"\n const missingMeters =\n reason === \"missingUsageMeter\" ? normalizeMissingMeters(input.cost.missingMeters) : undefined\n return {\n projectId: input.usage.projectId,\n usageRecordId,\n status: \"unpriceable\",\n billingIdentity,\n pricingContext,\n reason,\n ...(missingMeters === undefined ? {} : { missingMeters }),\n ratedAt: new Date(input.ratedAt),\n }\n}\n\nfunction costPriceSource(\n usage: RecoverAiModelCallInput[\"usage\"],\n cost: Extract<RecoverAiModelCallInput[\"cost\"], { status: \"reported\" | \"rated\" }>\n) {\n if (cost.status === \"reported\") {\n return {\n sourceId: \"provider-reported\",\n sourceEntryId: `${usage.providerId}/${usage.responseId}`,\n sourceVersion: \"response-v1\",\n observedAt: new Date(usage.occurredAt),\n }\n }\n const rates = cost.components.map(({ meter, rateAmountNanosPerMillion }) => ({\n meter,\n rateAmountNanosPerMillion,\n }))\n const version = createHash(\"sha256\").update(JSON.stringify(rates)).digest(\"hex\")\n return {\n sourceId: \"model-rate-card\",\n sourceEntryId: `${usage.providerId}/${usage.requestedModelId}`,\n sourceVersion: `sha256:${version}`,\n observedAt: new Date(usage.occurredAt),\n }\n}\n\nfunction normalizeMissingMeters(\n meters: Extract<RecoverAiModelCallInput[\"cost\"], { status: \"unpriceable\" }>[\"missingMeters\"]\n): readonly AiBillableMeter[] {\n const fallback: readonly AiBillableMeter[] = [\"tokens.input.total\", \"tokens.output.total\"]\n return [...new Set<AiBillableMeter>(meters ?? fallback)]\n}\n\nexport function requireAccountingCapabilities(\n storage: Pick<Storage, \"aiUsage\" | \"aiCosts\" | \"aiLimits\">\n): AiAccountingCapabilities {\n if (!storage.aiUsage || !storage.aiCosts || !storage.aiLimits) {\n throw new Error(\n \"[SixbModels] AI model-call accounting requires storage.aiUsage, storage.aiCosts, and storage.aiLimits.\"\n )\n }\n return { aiUsage: storage.aiUsage, aiCosts: storage.aiCosts, aiLimits: storage.aiLimits }\n}\n",
8
8
  "import type { AiModelCallUsageInput } from \"../../storage\"\nimport type { ModelUsage } from \"../events\"\n\n/** Map one provider-neutral model call into Sixb's durable accounting vocabulary. */\nexport function aiModelCallUsageFromModel(usage: ModelUsage): AiModelCallUsageInput {\n return {\n ...(usage.audioDurationMs === undefined ? {} : { audioDurationMs: usage.audioDurationMs }),\n ...(usage.inputTokens === undefined ? {} : { inputTokens: usage.inputTokens }),\n ...(usage.outputTokens === undefined ? {} : { outputTokens: usage.outputTokens }),\n ...(usage.uncachedInputTokens === undefined\n ? {}\n : { uncachedInputTokens: usage.uncachedInputTokens }),\n ...(usage.cacheReadInputTokens === undefined\n ? {}\n : { cacheReadInputTokens: usage.cacheReadInputTokens }),\n ...(usage.cacheWriteInputTokens === undefined\n ? {}\n : { cacheWriteInputTokens: usage.cacheWriteInputTokens }),\n ...(usage.textOutputTokens === undefined ? {} : { textOutputTokens: usage.textOutputTokens }),\n ...(usage.reasoningOutputTokens === undefined\n ? {}\n : { reasoningOutputTokens: usage.reasoningOutputTokens }),\n }\n}\n",
9
9
  "import type { RecordAiModelCallInput, RecordAiModelCallResult } from \"../../storage\"\nimport { AiCostStorageError, AiLimitStorageError, AiUsageStorageError } from \"../../storage\"\nimport { normalizeAiModelCallRecord } from \"../../storage/ai-usage/record\"\nimport { recordAiModelCallAccounting } from \"./model-call-accounting\"\nimport type {\n AiModelCallAccountingPayload,\n AiModelCallRecordPayload,\n AiModelCallRecoveryRecord,\n ModelCallAccountingStorage,\n RecoverAiModelCallInput,\n} from \"./types\"\nimport { aiModelCallUsageFromModel } from \"./usage\"\n\nclass InvalidAiUsageRecoveryJobError extends Error {\n readonly name = \"InvalidAiUsageRecoveryJobError\"\n\n constructor(message: string, options?: ErrorOptions) {\n super(`[SixbModels] ${message}`, options)\n }\n}\n\n/** Encode one failed accounting transaction for a durable, JSON-safe handoff. */\nexport function modelCallRecoveryPayload(input: RecoverAiModelCallInput): {\n readonly record: AiModelCallRecordPayload\n readonly accounting: AiModelCallAccountingPayload\n} {\n normalizeAiModelCallRecord(input.usage)\n return {\n record: toQueuePayload(input.usage),\n accounting: toAccountingPayload(input),\n }\n}\n\n/** Replay one durable handoff through the idempotent atomic accounting boundary. */\nexport async function recordRecoveredAiModelCall(\n storage: Pick<ModelCallAccountingStorage, \"transaction\">,\n job: AiModelCallRecoveryRecord\n): Promise<RecordAiModelCallResult> {\n const usage = fromQueuePayload(job)\n const accounting = accountingFromQueuePayload(job)\n return recordAiModelCallAccounting({ storage, usage, ...accounting })\n}\n\n/** Validation and referential-integrity failures cannot become valid through queue redelivery. */\nexport function isPermanentAiUsageRecoveryError(error: unknown): boolean {\n return (\n error instanceof InvalidAiUsageRecoveryJobError ||\n error instanceof TypeError ||\n (error instanceof AiUsageStorageError &&\n (error.code === \"duplicate_id\" || error.code === \"missing_execution\")) ||\n (error instanceof AiCostStorageError &&\n (error.code === \"missing_usage\" || error.code === \"cost_mismatch\")) ||\n (error instanceof AiLimitStorageError &&\n (error.code === \"missing_execution\" ||\n error.code === \"missing_reservation\" ||\n error.code === \"missing_usage_record\" ||\n error.code === \"usage_mismatch\" ||\n error.code === \"reservation_conflict\" ||\n error.code === \"reconciliation_conflict\" ||\n error.code === \"invalid_reservation_state\"))\n )\n}\n\nfunction toQueuePayload(record: RecordAiModelCallInput): AiModelCallRecordPayload {\n return {\n id: record.id,\n executionId: record.executionId,\n attempt: record.attempt,\n callId: record.callId,\n requesterGroupIds: [...record.requesterGroupIds],\n providerId: record.providerId,\n ...(record.providerIds === undefined\n ? {}\n : { providerIds: structuredClone(record.providerIds) }),\n requestedModelId: record.requestedModelId,\n ...(record.modelKind === undefined ? {} : { modelKind: record.modelKind }),\n ...(record.requestedReasoning === undefined\n ? {}\n : { requestedReasoning: structuredClone(record.requestedReasoning) }),\n ...(record.responseModelId === undefined ? {} : { responseModelId: record.responseModelId }),\n responseId: record.responseId,\n usage: aiModelCallUsageFromModel(record.usage),\n ...(record.rawUsage === undefined ? {} : { rawUsage: structuredClone(record.rawUsage) }),\n occurredAt: record.occurredAt.toISOString(),\n }\n}\n\nfunction toAccountingPayload(input: RecoverAiModelCallInput): AiModelCallAccountingPayload {\n return {\n cost: structuredClone(input.cost),\n ...(input.estimate === undefined ? {} : { estimate: structuredClone(input.estimate) }),\n ...(input.route === undefined ? {} : { route: structuredClone(input.route) }),\n ratedAt: input.ratedAt.toISOString(),\n ...(input.reconcileLimitReservation ? { reconcileLimitReservation: true } : {}),\n }\n}\n\nfunction fromQueuePayload(job: AiModelCallRecoveryRecord): RecordAiModelCallInput {\n const occurredAt = parseDate(job.payload.record.occurredAt, job.id, \"occurredAt\")\n return { ...job.payload.record, projectId: job.projectId, occurredAt }\n}\n\nfunction accountingFromQueuePayload(\n job: AiModelCallRecoveryRecord\n): Omit<RecoverAiModelCallInput, \"usage\"> {\n const accounting = job.payload.accounting\n return {\n cost: structuredClone(accounting.cost),\n ...(accounting.estimate === undefined\n ? {}\n : { estimate: structuredClone(accounting.estimate) }),\n ...(accounting.route === undefined ? {} : { route: structuredClone(accounting.route) }),\n ratedAt: parseDate(accounting.ratedAt, job.id, \"ratedAt\"),\n reconcileLimitReservation: accounting.reconcileLimitReservation === true,\n }\n}\n\nfunction parseDate(value: string, jobId: string, field: string): Date {\n const date = new Date(value)\n if (!Number.isFinite(date.getTime())) {\n throw new InvalidAiUsageRecoveryJobError(\n `AI usage recovery job '${jobId}' has an invalid ${field} timestamp.`\n )\n }\n return date\n}\n",
10
- "import { randomUUID } from \"node:crypto\"\nimport type { ReadonlyJsonObject, RecordAiModelCallInput } from \"../../storage\"\nimport type { ModelCallEndEvent, ModelUsage } from \"../events\"\nimport type { LanguageModel } from \"../language-model\"\nimport { ModelUsageRecordingError } from \"./errors\"\nimport {\n normalizeModelCallAccounting,\n recordAiModelCallAccounting,\n requireAccountingCapabilities,\n} from \"./model-call-accounting\"\nimport {\n type AiModelCallAdmissionInput,\n aiModelCallOutputTokenAllowance,\n estimateAiModelCallInputTokens,\n estimatedAiModelCallTotalTokens,\n} from \"./model-call-admission\"\nimport type { AiModelCallLimitController } from \"./model-call-limits\"\nimport { isPermanentAiUsageRecoveryError } from \"./model-call-recovery\"\nimport type {\n ModelCallAccountingStorage,\n RecoverAiModelCall,\n RecoverAiModelCallInput,\n} from \"./types\"\nimport { aiModelCallUsageFromModel } from \"./usage\"\n\nconst STORAGE_RETRY_DELAYS_MS = [50, 200, 600] as const\n\nexport interface AiModelCallRecorderInput {\n readonly storage: ModelCallAccountingStorage\n readonly projectId: string\n readonly executionId: string\n readonly attempt: number\n readonly requesterGroupIds: readonly string[]\n readonly limits: AiModelCallLimitController\n readonly recoverAiModelCall: RecoverAiModelCall\n}\n\ninterface AiModelCallRecorderInternals {\n readonly generateId?: () => string\n readonly now?: () => Date\n readonly retryDelaysMs?: readonly number[]\n readonly sleep?: (ms: number) => Promise<void>\n readonly recordAccounting?: (input: RecoverAiModelCallInput) => Promise<void>\n}\n\n/** Persist every completed provider call before another billable loop step can start. */\nexport class AiModelCallRecorder {\n private readonly generateId: () => string\n private readonly now: () => Date\n private readonly retryDelaysMs: readonly number[]\n private readonly sleep: (ms: number) => Promise<void>\n private readonly recordAccounting: (input: RecoverAiModelCallInput) => Promise<void>\n private readonly reservations = new Set<string>()\n private admissionError: unknown\n private recordingError: ModelUsageRecordingError | undefined\n\n constructor(\n private readonly input: AiModelCallRecorderInput,\n internals: AiModelCallRecorderInternals = {}\n ) {\n requireAccountingCapabilities(input.storage)\n this.generateId = internals.generateId ?? (() => `ai_usage_${randomUUID()}`)\n this.now = internals.now ?? (() => new Date())\n this.retryDelaysMs = internals.retryDelaysMs ?? STORAGE_RETRY_DELAYS_MS\n this.sleep = internals.sleep ?? sleep\n this.recordAccounting =\n internals.recordAccounting ??\n (async (recovery) => {\n await recordAiModelCallAccounting({ storage: this.input.storage, ...recovery })\n })\n }\n\n /** Wrap the resolved model so all calls in an execution share admission. */\n wrapModel(model: LanguageModel): LanguageModel {\n return {\n providerId: model.providerId,\n modelId: model.modelId,\n definition: model.definition,\n costEstimator: model.costEstimator,\n ...(model.validateResponseFormat === undefined\n ? {}\n : { validateResponseFormat: model.validateResponseFormat.bind(model) }),\n stream: async (request) => {\n this.assertHealthy()\n const inputTokens = estimateAiModelCallInputTokens({\n prompt: request.messages,\n tools: request.tools,\n responseFormat: request.responseFormat,\n })\n const outputTokenAllowance = aiModelCallOutputTokenAllowance(request.maxOutputTokens)\n await this.admitCall({\n callId: request.callId,\n providerId: model.providerId,\n modelId: model.modelId,\n costEstimator: model.costEstimator,\n inputTokens,\n outputTokenAllowance,\n estimatedTotalTokens: estimatedAiModelCallTotalTokens(inputTokens, outputTokenAllowance),\n })\n try {\n return await model.stream(request)\n } catch (error) {\n await this.markCallUnknown(request.callId)\n throw error\n }\n },\n }\n }\n\n /** Admit one provider attempt, independently of its language or embedding protocol. */\n async admitCall(\n call: Omit<\n AiModelCallAdmissionInput,\n \"projectId\" | \"executionId\" | \"attempt\" | \"requesterGroupIds\"\n >\n ): Promise<void> {\n this.assertHealthy()\n try {\n const decision = await this.input.limits.beforeModelCall({\n ...call,\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n requesterGroupIds: this.input.requesterGroupIds,\n })\n if (decision.reservation === \"active\") this.reservations.add(call.callId)\n } catch (error) {\n // Execution boundaries must retain the original coded admission failure.\n this.admissionError = error\n throw error\n }\n }\n\n /** Keep an unresolved reservation when an attempted call's billable outcome is unknown. */\n private async markCallUnknown(callId: string): Promise<void> {\n if (!this.reservations.has(callId)) return\n await this.input.limits.markModelCallUnknown({\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId,\n })\n }\n\n readonly onModelCallEnd = async (event: ModelCallEndEvent): Promise<void> => {\n // Calls already in flight still need their own accounting after another call fails.\n // Only admission is gated by the execution's sticky failure.\n try {\n const occurredAt = this.now()\n const record: RecordAiModelCallInput = {\n id: this.generateId(),\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId: event.callId,\n requesterGroupIds: this.input.requesterGroupIds,\n providerId: event.providerId,\n ...(event.providerIds === undefined ? {} : { providerIds: event.providerIds }),\n requestedModelId: event.modelId,\n ...(event.modelKind === undefined ? {} : { modelKind: event.modelKind }),\n ...(event.requestedReasoning === undefined\n ? {}\n : { requestedReasoning: event.requestedReasoning }),\n ...(event.responseModelId === undefined ? {} : { responseModelId: event.responseModelId }),\n responseId: event.responseId,\n usage: aiModelCallUsageFromModel(event.usage),\n ...(event.usage.raw === undefined ? {} : { rawUsage: rawUsage(event.usage) }),\n occurredAt,\n }\n const recoveryInput = normalizeModelCallAccounting({\n usage: record,\n cost: event.cost,\n ...(event.estimate === undefined ? {} : { estimate: event.estimate }),\n ...(event.route === undefined ? {} : { route: event.route }),\n ratedAt: new Date(occurredAt),\n ...(this.reservations.has(event.callId) ? { reconcileLimitReservation: true } : {}),\n })\n\n try {\n await retryOperation(\n () => this.recordAccounting(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (storageError) {\n if (isPermanentAiUsageRecoveryError(storageError)) throw storageError\n\n try {\n await retryOperation(\n () => this.input.recoverAiModelCall(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (recoveryError) {\n throw new AggregateError(\n [storageError, recoveryError],\n \"Direct AI accounting and durable recovery both failed.\"\n )\n }\n throw new ModelUsageRecordingError(this.input.executionId, event.callId, true, {\n cause: storageError,\n })\n }\n } catch (error) {\n const recordingError =\n error instanceof ModelUsageRecordingError\n ? error\n : new ModelUsageRecordingError(this.input.executionId, event.callId, false, {\n cause: error,\n })\n this.recordingError ??= recordingError\n throw recordingError\n }\n }\n\n assertHealthy(): void {\n if (this.admissionError !== undefined) throw this.admissionError\n if (this.recordingError) throw this.recordingError\n }\n}\n\nfunction rawUsage(usage: ModelUsage): ReadonlyJsonObject {\n return structuredClone(usage.raw ?? {})\n}\n\nasync function retryOperation<TResult>(\n operation: () => Promise<TResult>,\n retryDelaysMs: readonly number[],\n wait: (ms: number) => Promise<void>,\n shouldRetry: (error: unknown) => boolean\n): Promise<TResult> {\n for (let attempt = 0; ; attempt += 1) {\n try {\n return await operation()\n } catch (error) {\n if (!shouldRetry(error)) throw error\n const delay = retryDelaysMs[attempt]\n if (delay === undefined) throw error\n await wait(delay)\n }\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n",
10
+ "import { randomUUID } from \"node:crypto\"\nimport type { ReadonlyJsonObject, RecordAiModelCallInput } from \"../../storage\"\nimport type { ModelCallEndEvent, ModelUsage } from \"../events\"\nimport type { LanguageModel } from \"../language-model\"\nimport { ModelUsageRecordingError } from \"./errors\"\nimport {\n normalizeModelCallAccounting,\n recordAiModelCallAccounting,\n requireAccountingCapabilities,\n} from \"./model-call-accounting\"\nimport {\n type AiModelCallAdmissionInput,\n aiModelCallOutputTokenAllowance,\n estimateAiModelCallInputTokens,\n estimatedAiModelCallTotalTokens,\n} from \"./model-call-admission\"\nimport type { AiModelCallLimitController } from \"./model-call-limits\"\nimport { isPermanentAiUsageRecoveryError } from \"./model-call-recovery\"\nimport type {\n ModelCallAccountingStorage,\n RecoverAiModelCall,\n RecoverAiModelCallInput,\n} from \"./types\"\nimport { aiModelCallUsageFromModel } from \"./usage\"\n\nconst STORAGE_RETRY_DELAYS_MS = [50, 200, 600] as const\n\nexport interface AiModelCallRecorderInput {\n readonly storage: ModelCallAccountingStorage\n readonly projectId: string\n readonly executionId: string\n readonly attempt: number\n readonly requesterGroupIds: readonly string[]\n readonly limits: AiModelCallLimitController\n readonly recoverAiModelCall: RecoverAiModelCall\n}\n\ninterface AiModelCallRecorderInternals {\n readonly generateId?: () => string\n readonly now?: () => Date\n readonly retryDelaysMs?: readonly number[]\n readonly sleep?: (ms: number) => Promise<void>\n readonly recordAccounting?: (input: RecoverAiModelCallInput) => Promise<void>\n}\n\n/** Persist every completed provider call before another billable loop step can start. */\nexport class AiModelCallRecorder {\n private readonly generateId: () => string\n private readonly now: () => Date\n private readonly retryDelaysMs: readonly number[]\n private readonly sleep: (ms: number) => Promise<void>\n private readonly recordAccounting: (input: RecoverAiModelCallInput) => Promise<void>\n private readonly reservations = new Set<string>()\n private admissionError: unknown\n private recordingError: ModelUsageRecordingError | undefined\n\n constructor(\n private readonly input: AiModelCallRecorderInput,\n internals: AiModelCallRecorderInternals = {}\n ) {\n requireAccountingCapabilities(input.storage)\n this.generateId = internals.generateId ?? (() => `ai_usage_${randomUUID()}`)\n this.now = internals.now ?? (() => new Date())\n this.retryDelaysMs = internals.retryDelaysMs ?? STORAGE_RETRY_DELAYS_MS\n this.sleep = internals.sleep ?? sleep\n this.recordAccounting =\n internals.recordAccounting ??\n (async (recovery) => {\n await recordAiModelCallAccounting({ storage: this.input.storage, ...recovery })\n })\n }\n\n /** The execution every call this recorder admits is attributed to. */\n get executionId(): string {\n return this.input.executionId\n }\n\n /** The execution attempt every call this recorder admits is attributed to. */\n get attempt(): number {\n return this.input.attempt\n }\n\n /** Wrap the resolved model so all calls in an execution share admission. */\n wrapModel(model: LanguageModel): LanguageModel {\n return {\n providerId: model.providerId,\n modelId: model.modelId,\n definition: model.definition,\n costEstimator: model.costEstimator,\n ...(model.validateResponseFormat === undefined\n ? {}\n : { validateResponseFormat: model.validateResponseFormat.bind(model) }),\n stream: async (request) => {\n this.assertHealthy()\n const inputTokens = estimateAiModelCallInputTokens({\n prompt: request.messages,\n tools: request.tools,\n responseFormat: request.responseFormat,\n })\n const outputTokenAllowance = aiModelCallOutputTokenAllowance(request.maxOutputTokens)\n await this.admitCall({\n callId: request.callId,\n providerId: model.providerId,\n modelId: model.modelId,\n costEstimator: model.costEstimator,\n inputTokens,\n outputTokenAllowance,\n estimatedTotalTokens: estimatedAiModelCallTotalTokens(inputTokens, outputTokenAllowance),\n })\n try {\n return await model.stream(request)\n } catch (error) {\n await this.markCallUnknown(request.callId)\n throw error\n }\n },\n }\n }\n\n /** Admit one provider attempt, independently of its language or embedding protocol. */\n async admitCall(\n call: Omit<\n AiModelCallAdmissionInput,\n \"projectId\" | \"executionId\" | \"attempt\" | \"requesterGroupIds\"\n >\n ): Promise<void> {\n this.assertHealthy()\n try {\n const decision = await this.input.limits.beforeModelCall({\n ...call,\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n requesterGroupIds: this.input.requesterGroupIds,\n })\n if (decision.reservation === \"active\") this.reservations.add(call.callId)\n } catch (error) {\n // Execution boundaries must retain the original coded admission failure.\n this.admissionError = error\n throw error\n }\n }\n\n /** Keep an unresolved reservation when an attempted call's billable outcome is unknown. */\n private async markCallUnknown(callId: string): Promise<void> {\n if (!this.reservations.has(callId)) return\n await this.input.limits.markModelCallUnknown({\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId,\n })\n }\n\n readonly onModelCallEnd = async (event: ModelCallEndEvent): Promise<void> => {\n // Calls already in flight still need their own accounting after another call fails.\n // Only admission is gated by the execution's sticky failure.\n try {\n const occurredAt = this.now()\n const record: RecordAiModelCallInput = {\n id: this.generateId(),\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId: event.callId,\n requesterGroupIds: this.input.requesterGroupIds,\n providerId: event.providerId,\n ...(event.providerIds === undefined ? {} : { providerIds: event.providerIds }),\n requestedModelId: event.modelId,\n ...(event.modelKind === undefined ? {} : { modelKind: event.modelKind }),\n ...(event.requestedReasoning === undefined\n ? {}\n : { requestedReasoning: event.requestedReasoning }),\n ...(event.responseModelId === undefined ? {} : { responseModelId: event.responseModelId }),\n responseId: event.responseId,\n usage: aiModelCallUsageFromModel(event.usage),\n ...(event.usage.raw === undefined ? {} : { rawUsage: rawUsage(event.usage) }),\n occurredAt,\n }\n const recoveryInput = normalizeModelCallAccounting({\n usage: record,\n cost: event.cost,\n ...(event.estimate === undefined ? {} : { estimate: event.estimate }),\n ...(event.route === undefined ? {} : { route: event.route }),\n ratedAt: new Date(occurredAt),\n ...(this.reservations.has(event.callId) ? { reconcileLimitReservation: true } : {}),\n })\n\n try {\n await retryOperation(\n () => this.recordAccounting(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (storageError) {\n if (isPermanentAiUsageRecoveryError(storageError)) throw storageError\n\n try {\n await retryOperation(\n () => this.input.recoverAiModelCall(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (recoveryError) {\n throw new AggregateError(\n [storageError, recoveryError],\n \"Direct AI accounting and durable recovery both failed.\"\n )\n }\n throw new ModelUsageRecordingError(this.input.executionId, event.callId, true, {\n cause: storageError,\n })\n }\n } catch (error) {\n const recordingError =\n error instanceof ModelUsageRecordingError\n ? error\n : new ModelUsageRecordingError(this.input.executionId, event.callId, false, {\n cause: error,\n })\n this.recordingError ??= recordingError\n throw recordingError\n }\n }\n\n assertHealthy(): void {\n if (this.admissionError !== undefined) throw this.admissionError\n if (this.recordingError) throw this.recordingError\n }\n}\n\nfunction rawUsage(usage: ModelUsage): ReadonlyJsonObject {\n return structuredClone(usage.raw ?? {})\n}\n\nasync function retryOperation<TResult>(\n operation: () => Promise<TResult>,\n retryDelaysMs: readonly number[],\n wait: (ms: number) => Promise<void>,\n shouldRetry: (error: unknown) => boolean\n): Promise<TResult> {\n for (let attempt = 0; ; attempt += 1) {\n try {\n return await operation()\n } catch (error) {\n if (!shouldRetry(error)) throw error\n const delay = retryDelaysMs[attempt]\n if (delay === undefined) throw error\n await wait(delay)\n }\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n",
11
11
  "import type { AiModelCallReservationIdentity } from \"../../storage\"\nimport type { ModelKind } from \"../definitions\"\nimport type { ModelCostEstimator, ModelMoney } from \"../pricing\"\n\n/** Default output ceiling when a call and its resolved model supply no limit. */\nexport const AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE = 4_096\n\nexport type AiModelCallInputTokenEstimate =\n | {\n readonly status: \"estimated\"\n readonly tokens: number\n readonly method: \"utf8BytesDividedByFour\"\n }\n | {\n readonly status: \"unavailable\"\n readonly reason: \"nonTextInput\" | \"unserializableInput\"\n }\n\n/** Provider-neutral snapshot passed to aggregate-budget admission before a provider request. */\nexport interface AiModelCallAdmissionInput {\n readonly projectId: string\n readonly executionId: string\n readonly attempt: number\n readonly requesterGroupIds: readonly string[]\n readonly callId: string\n readonly providerId: string\n readonly modelId: string\n /** Selects the applicable limit meters; transcription and reranking skip token limits. */\n readonly modelKind?: ModelKind\n readonly costEstimator?: ModelCostEstimator\n /** A non-token estimate, computed by the resolved binding before inference. */\n readonly reservationCost?: ModelMoney\n readonly inputTokens: AiModelCallInputTokenEstimate\n readonly outputTokenAllowance: number\n readonly estimatedTotalTokens?: number\n}\n\nexport interface AiModelCallAdmissionDecision {\n /** Active means accounting must reconcile the reservation for this provider attempt. */\n readonly reservation: \"active\" | \"none\"\n}\n\nexport type BeforeAiModelCall = (\n input: AiModelCallAdmissionInput\n) => AiModelCallAdmissionDecision | Promise<AiModelCallAdmissionDecision>\n\nexport type MarkAiModelCallUnknown = (input: AiModelCallReservationIdentity) => void | Promise<void>\n\n/**\n * Estimate the exact, prepared provider request without requiring a provider-specific tokenizer.\n *\n * The heuristic is intentionally explicit so reservations are reproducible. Non-text inputs are\n * reported as unavailable; an enforced token or cost policy can then fail closed instead of\n * pretending that an image, file, or provider-defined payload has no token cost.\n */\nexport function estimateAiModelCallInputTokens(input: {\n readonly prompt: unknown\n readonly tools: unknown\n readonly responseFormat: unknown\n}): AiModelCallInputTokenEstimate {\n if (containsNonTextInput(input.prompt)) {\n return { status: \"unavailable\", reason: \"nonTextInput\" }\n }\n\n let serialized: string | undefined\n try {\n serialized = JSON.stringify(input)\n } catch {\n return { status: \"unavailable\", reason: \"unserializableInput\" }\n }\n if (serialized === undefined) {\n return { status: \"unavailable\", reason: \"unserializableInput\" }\n }\n\n const bytes = new TextEncoder().encode(serialized).byteLength\n return {\n status: \"estimated\",\n tokens: Math.ceil(bytes / 4),\n method: \"utf8BytesDividedByFour\",\n }\n}\n\nexport function aiModelCallOutputTokenAllowance(maxOutputTokens: number | undefined): number {\n if (maxOutputTokens === undefined) return AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE\n if (!Number.isSafeInteger(maxOutputTokens) || maxOutputTokens <= 0) {\n throw new TypeError(\n \"[SixbModels] AI model-call maxOutputTokens must be a positive safe integer.\"\n )\n }\n return maxOutputTokens\n}\n\nexport function estimatedAiModelCallTotalTokens(\n inputTokens: AiModelCallInputTokenEstimate,\n outputTokenAllowance: number\n): number | undefined {\n if (inputTokens.status !== \"estimated\") return undefined\n const total = inputTokens.tokens + outputTokenAllowance\n if (!Number.isSafeInteger(total)) {\n throw new TypeError(\"[SixbModels] AI model-call token estimate exceeds the safe range.\")\n }\n return total\n}\n\nfunction containsNonTextInput(value: unknown, seen = new WeakSet<object>()): boolean {\n if (value === null || typeof value !== \"object\") return false\n if (\n value instanceof URL ||\n value instanceof ArrayBuffer ||\n ArrayBuffer.isView(value) ||\n (typeof Blob !== \"undefined\" && value instanceof Blob)\n ) {\n return true\n }\n if (seen.has(value)) return false\n seen.add(value)\n\n if (!Array.isArray(value)) {\n const type = Reflect.get(value, \"type\")\n if (\n type === \"image\" ||\n type === \"file\" ||\n type === \"reasoning-file\" ||\n type === \"custom\" ||\n type === \"provider-state\"\n ) {\n return true\n }\n }\n\n return Object.values(value).some((entry) => containsNonTextInput(entry, seen))\n}\n",
12
12
  "import { createSixbError } from \"../../errors/internal\"\nimport type { AgentQueueJob, Queue } from \"../../queues\"\nimport { modelCallRecoveryPayload } from \"./model-call-recovery\"\nimport type { RecoverAiModelCallInput } from \"./types\"\n\n/** Stable queue identity: a lost enqueue response can safely retry the same accounting handoff. */\nfunction agentAiUsageRecoveryJobId(recordId: string): string {\n return `agt_usage_job_${recordId}`\n}\n\n/** Transport adapter for the agent worker's existing durable recovery lane. */\nexport async function enqueueAiModelCallRecovery(\n queue: Pick<Queue<AgentQueueJob>, \"enqueue\">,\n input: RecoverAiModelCallInput\n): Promise<void> {\n const payload = modelCallRecoveryPayload(input)\n const record = input.usage\n const jobId = agentAiUsageRecoveryJobId(record.id)\n const [job] = await queue.enqueue({\n projectId: record.projectId,\n jobs: [{ id: jobId, type: \"agent.ai-usage.record.requested\", payload }],\n })\n\n if (job?.id !== jobId || job.type !== \"agent.ai-usage.record.requested\") {\n throw createSixbError(\n \"internal.unexpected\",\n `[SixbModels] Agent queue did not confirm AI usage recovery job '${jobId}'.`,\n { details: { jobId } }\n )\n }\n}\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "723C9B221336858664756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "4BD85BF64D5B7A3564756E2164756E21",
16
16
  "names": []
17
17
  }
@@ -8,6 +8,34 @@ import {
8
8
  compareStrings
9
9
  } from "./chunk-wy0qdqfm.js";
10
10
 
11
+ // src/materialization/identity.ts
12
+ import { createHash } from "crypto";
13
+ var ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2 = Object.freeze([
14
+ "object.created",
15
+ "object.updated",
16
+ "object.deleted",
17
+ "link.created",
18
+ "link.updated",
19
+ "link.deleted",
20
+ "telemetry.appended"
21
+ ]);
22
+ function materializationEventKindOrdinal2(kind) {
23
+ return ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2.indexOf(kind);
24
+ }
25
+ function sha256Canonical2(value) {
26
+ assertJsonValue2(value, "Canonical hash input");
27
+ return createHash("sha256").update(stableJsonStringify2(value)).digest("hex");
28
+ }
29
+ function createRequestHash2(normalizedCallerIntent) {
30
+ return sha256Canonical2(normalizedCallerIntent);
31
+ }
32
+ function createCommitId2(projectId, idempotencyKey) {
33
+ return sha256Canonical2([projectId, idempotencyKey]);
34
+ }
35
+ function createEventId2(projectId, commitId, ordinal) {
36
+ return sha256Canonical2([projectId, commitId, ordinal]);
37
+ }
38
+
11
39
  // src/materialization/refs.ts
12
40
  var textEncoder = new TextEncoder;
13
41
  function assertIdentifier(value, label) {
@@ -110,34 +138,6 @@ function compareLinkRefs2(left, right) {
110
138
  return compareStrings(linkRefSortKey2(left), linkRefSortKey2(right));
111
139
  }
112
140
 
113
- // src/materialization/identity.ts
114
- import { createHash } from "crypto";
115
- var ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2 = Object.freeze([
116
- "object.created",
117
- "object.updated",
118
- "object.deleted",
119
- "link.created",
120
- "link.updated",
121
- "link.deleted",
122
- "telemetry.appended"
123
- ]);
124
- function materializationEventKindOrdinal2(kind) {
125
- return ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2.indexOf(kind);
126
- }
127
- function sha256Canonical2(value) {
128
- assertJsonValue2(value, "Canonical hash input");
129
- return createHash("sha256").update(stableJsonStringify2(value)).digest("hex");
130
- }
131
- function createRequestHash2(normalizedCallerIntent) {
132
- return sha256Canonical2(normalizedCallerIntent);
133
- }
134
- function createCommitId2(projectId, idempotencyKey) {
135
- return sha256Canonical2([projectId, idempotencyKey]);
136
- }
137
- function createEventId2(projectId, commitId, ordinal) {
138
- return sha256Canonical2([projectId, commitId, ordinal]);
139
- }
140
-
141
141
  // src/materialization/event-envelopes.ts
142
142
  function materializationEvent2(draft, sequence, commit, attribution) {
143
143
  const context = {
@@ -256,6 +256,6 @@ function createdPropertyChanges(properties) {
256
256
  return changes;
257
257
  }
258
258
 
259
- export { normalizeObjectRef2, normalizeLinkRef2, objectRefKey2, linkRefKey2, projectionEntityKey2, linkOwnershipKey, telemetryOwnershipKey, telemetrySeriesKey2, telemetryPointKey2, canonicalIdentitySortKey2, utf8JsonByteLength, objectRefSortKey2, linkRefSortKey2, linkScopeKey, linkScopeSortKey2, telemetryPointSortKey2, compareObjectRefs2, compareLinkRefs2, ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2, materializationEventKindOrdinal2, sha256Canonical2, createRequestHash2, createCommitId2, createEventId2, materializationEvent2, eventAttribution2 };
259
+ export { ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2, materializationEventKindOrdinal2, sha256Canonical2, createRequestHash2, createCommitId2, createEventId2, normalizeObjectRef2, normalizeLinkRef2, objectRefKey2, linkRefKey2, projectionEntityKey2, linkOwnershipKey, telemetryOwnershipKey, telemetrySeriesKey2, telemetryPointKey2, canonicalIdentitySortKey2, utf8JsonByteLength, objectRefSortKey2, linkRefSortKey2, linkScopeKey, linkScopeSortKey2, telemetryPointSortKey2, compareObjectRefs2, compareLinkRefs2, materializationEvent2, eventAttribution2 };
260
260
 
261
- //# debugId=9DA3AD8CFC8D3E5864756E2164756E21
261
+ //# debugId=59931338574913A064756E2164756E21
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/materialization/refs.ts", "../src/materialization/identity.ts", "../src/materialization/event-envelopes.ts"],
3
+ "sources": ["../src/materialization/identity.ts", "../src/materialization/refs.ts", "../src/materialization/event-envelopes.ts"],
4
4
  "sourcesContent": [
5
- "import { compareStrings } from \"../json\"\nimport { MaterializationValidationError } from \"./errors\"\nimport type {\n OntologyLinkRef,\n OntologyObjectRef,\n ProjectionEntityRef,\n TelemetrySeriesRef,\n} from \"./model\"\n\nconst textEncoder = new TextEncoder()\n\nfunction assertIdentifier(value: string, label: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new MaterializationValidationError(`${label} must be a nonblank string.`)\n }\n}\n\nexport function normalizeObjectRef(ref: OntologyObjectRef): OntologyObjectRef {\n assertIdentifier(ref.objectTypeId, \"Object type id\")\n assertIdentifier(ref.primaryId, \"Object primary id\")\n return Object.freeze({ objectTypeId: ref.objectTypeId, primaryId: ref.primaryId })\n}\n\nexport function normalizeLinkRef(ref: OntologyLinkRef): OntologyLinkRef {\n assertIdentifier(ref.linkId, \"Link id\")\n return Object.freeze({\n source: normalizeObjectRef(ref.source),\n linkId: ref.linkId,\n target: normalizeObjectRef(ref.target),\n })\n}\n\nexport function objectRefKey(ref: OntologyObjectRef): string {\n return JSON.stringify([ref.objectTypeId, ref.primaryId])\n}\n\nexport function linkRefKey(ref: OntologyLinkRef): string {\n return JSON.stringify([\n ref.source.objectTypeId,\n ref.source.primaryId,\n ref.linkId,\n ref.target.objectTypeId,\n ref.target.primaryId,\n ])\n}\n\nexport function projectionEntityKey(entity: ProjectionEntityRef): string {\n return entity.kind === \"object\"\n ? JSON.stringify([\"object\", entity.ref.objectTypeId, entity.ref.primaryId])\n : JSON.stringify([\n \"link\",\n entity.ref.source.objectTypeId,\n entity.ref.source.primaryId,\n entity.ref.linkId,\n entity.ref.target.objectTypeId,\n entity.ref.target.primaryId,\n ])\n}\n\nexport function linkOwnershipKey(sourceObjectTypeId: string, linkId: string): string {\n return JSON.stringify([sourceObjectTypeId, linkId])\n}\n\nexport function telemetryOwnershipKey(objectTypeId: string, propertyId: string): string {\n return JSON.stringify([objectTypeId, propertyId])\n}\n\nexport function telemetrySeriesKey(series: TelemetrySeriesRef): string {\n return JSON.stringify([series.object.objectTypeId, series.object.primaryId, series.propertyId])\n}\n\nexport function telemetryPointKey(series: TelemetrySeriesRef, at: string): string {\n return JSON.stringify([\n series.object.objectTypeId,\n series.object.primaryId,\n series.propertyId,\n at,\n ])\n}\n\n/**\n * A provider-collation-independent byte key. Providers compare this lowercase hexadecimal value\n * verbatim; all ontology identity structure is supplied by core in the canonical JSON tuple.\n */\nexport function canonicalIdentitySortKey(parts: readonly string[]): string {\n let result = \"\"\n for (const byte of textEncoder.encode(JSON.stringify(parts))) {\n result += byte.toString(16).padStart(2, \"0\")\n }\n return result\n}\n\nexport function utf8JsonByteLength(value: unknown): number {\n return textEncoder.encode(JSON.stringify(value)).byteLength\n}\n\nexport function objectRefSortKey(ref: OntologyObjectRef): string {\n return canonicalIdentitySortKey([ref.objectTypeId, ref.primaryId])\n}\n\nexport function linkRefSortKey(ref: OntologyLinkRef): string {\n return canonicalIdentitySortKey([\n ref.source.objectTypeId,\n ref.source.primaryId,\n ref.linkId,\n ref.target.objectTypeId,\n ref.target.primaryId,\n ])\n}\n\nexport function linkScopeKey(source: OntologyObjectRef, linkId: string): string {\n return JSON.stringify([source.objectTypeId, source.primaryId, linkId])\n}\n\nexport function linkScopeSortKey(source: OntologyObjectRef, linkId: string): string {\n return canonicalIdentitySortKey([source.objectTypeId, source.primaryId, linkId])\n}\n\nexport function telemetryPointSortKey(series: TelemetrySeriesRef, at: string): string {\n return canonicalIdentitySortKey([\n series.object.objectTypeId,\n series.object.primaryId,\n series.propertyId,\n at,\n ])\n}\n\nexport function compareObjectRefs(left: OntologyObjectRef, right: OntologyObjectRef): number {\n return compareStrings(objectRefSortKey(left), objectRefSortKey(right))\n}\n\nexport function compareLinkRefs(left: OntologyLinkRef, right: OntologyLinkRef): number {\n return compareStrings(linkRefSortKey(left), linkRefSortKey(right))\n}\n",
6
5
  "import { createHash } from \"node:crypto\"\nimport { assertJsonValue, stableJsonStringify } from \"../json\"\n\nexport const ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER = Object.freeze([\n \"object.created\",\n \"object.updated\",\n \"object.deleted\",\n \"link.created\",\n \"link.updated\",\n \"link.deleted\",\n \"telemetry.appended\",\n] as const)\n\nexport type OntologyMaterializationEventKind =\n (typeof ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER)[number]\n\nexport function materializationEventKindOrdinal(kind: OntologyMaterializationEventKind): number {\n return ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER.indexOf(kind)\n}\n\nexport function sha256Canonical(value: unknown): string {\n assertJsonValue(value, \"Canonical hash input\")\n return createHash(\"sha256\").update(stableJsonStringify(value)).digest(\"hex\")\n}\n\nexport function createRequestHash(normalizedCallerIntent: unknown): string {\n return sha256Canonical(normalizedCallerIntent)\n}\n\nexport function createCommitId(projectId: string, idempotencyKey: string): string {\n return sha256Canonical([projectId, idempotencyKey])\n}\n\nexport function createEventId(projectId: string, commitId: string, ordinal: number): string {\n return sha256Canonical([projectId, commitId, ordinal])\n}\n",
6
+ "import { compareStrings } from \"../json\"\nimport { MaterializationValidationError } from \"./errors\"\nimport type {\n OntologyLinkRef,\n OntologyObjectRef,\n ProjectionEntityRef,\n TelemetrySeriesRef,\n} from \"./model\"\n\nconst textEncoder = new TextEncoder()\n\nfunction assertIdentifier(value: string, label: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new MaterializationValidationError(`${label} must be a nonblank string.`)\n }\n}\n\nexport function normalizeObjectRef(ref: OntologyObjectRef): OntologyObjectRef {\n assertIdentifier(ref.objectTypeId, \"Object type id\")\n assertIdentifier(ref.primaryId, \"Object primary id\")\n return Object.freeze({ objectTypeId: ref.objectTypeId, primaryId: ref.primaryId })\n}\n\nexport function normalizeLinkRef(ref: OntologyLinkRef): OntologyLinkRef {\n assertIdentifier(ref.linkId, \"Link id\")\n return Object.freeze({\n source: normalizeObjectRef(ref.source),\n linkId: ref.linkId,\n target: normalizeObjectRef(ref.target),\n })\n}\n\nexport function objectRefKey(ref: OntologyObjectRef): string {\n return JSON.stringify([ref.objectTypeId, ref.primaryId])\n}\n\nexport function linkRefKey(ref: OntologyLinkRef): string {\n return JSON.stringify([\n ref.source.objectTypeId,\n ref.source.primaryId,\n ref.linkId,\n ref.target.objectTypeId,\n ref.target.primaryId,\n ])\n}\n\nexport function projectionEntityKey(entity: ProjectionEntityRef): string {\n return entity.kind === \"object\"\n ? JSON.stringify([\"object\", entity.ref.objectTypeId, entity.ref.primaryId])\n : JSON.stringify([\n \"link\",\n entity.ref.source.objectTypeId,\n entity.ref.source.primaryId,\n entity.ref.linkId,\n entity.ref.target.objectTypeId,\n entity.ref.target.primaryId,\n ])\n}\n\nexport function linkOwnershipKey(sourceObjectTypeId: string, linkId: string): string {\n return JSON.stringify([sourceObjectTypeId, linkId])\n}\n\nexport function telemetryOwnershipKey(objectTypeId: string, propertyId: string): string {\n return JSON.stringify([objectTypeId, propertyId])\n}\n\nexport function telemetrySeriesKey(series: TelemetrySeriesRef): string {\n return JSON.stringify([series.object.objectTypeId, series.object.primaryId, series.propertyId])\n}\n\nexport function telemetryPointKey(series: TelemetrySeriesRef, at: string): string {\n return JSON.stringify([\n series.object.objectTypeId,\n series.object.primaryId,\n series.propertyId,\n at,\n ])\n}\n\n/**\n * A provider-collation-independent byte key. Providers compare this lowercase hexadecimal value\n * verbatim; all ontology identity structure is supplied by core in the canonical JSON tuple.\n */\nexport function canonicalIdentitySortKey(parts: readonly string[]): string {\n let result = \"\"\n for (const byte of textEncoder.encode(JSON.stringify(parts))) {\n result += byte.toString(16).padStart(2, \"0\")\n }\n return result\n}\n\nexport function utf8JsonByteLength(value: unknown): number {\n return textEncoder.encode(JSON.stringify(value)).byteLength\n}\n\nexport function objectRefSortKey(ref: OntologyObjectRef): string {\n return canonicalIdentitySortKey([ref.objectTypeId, ref.primaryId])\n}\n\nexport function linkRefSortKey(ref: OntologyLinkRef): string {\n return canonicalIdentitySortKey([\n ref.source.objectTypeId,\n ref.source.primaryId,\n ref.linkId,\n ref.target.objectTypeId,\n ref.target.primaryId,\n ])\n}\n\nexport function linkScopeKey(source: OntologyObjectRef, linkId: string): string {\n return JSON.stringify([source.objectTypeId, source.primaryId, linkId])\n}\n\nexport function linkScopeSortKey(source: OntologyObjectRef, linkId: string): string {\n return canonicalIdentitySortKey([source.objectTypeId, source.primaryId, linkId])\n}\n\nexport function telemetryPointSortKey(series: TelemetrySeriesRef, at: string): string {\n return canonicalIdentitySortKey([\n series.object.objectTypeId,\n series.object.primaryId,\n series.propertyId,\n at,\n ])\n}\n\nexport function compareObjectRefs(left: OntologyObjectRef, right: OntologyObjectRef): number {\n return compareStrings(objectRefSortKey(left), objectRefSortKey(right))\n}\n\nexport function compareLinkRefs(left: OntologyLinkRef, right: OntologyLinkRef): number {\n return compareStrings(linkRefSortKey(left), linkRefSortKey(right))\n}\n",
7
7
  "import { compareStrings, type JsonValue } from \"../json\"\nimport type { ExecutionRecord } from \"../storage/executions/types\"\nimport type {\n EventExecutor,\n OntologyMaterializationEvent,\n OntologyMaterializationEventAttribution,\n OntologyMaterializationEventCommit,\n OntologyMaterializationEventDraft,\n} from \"./events\"\nimport type { OntologyMaterializationPropertyChangeMap } from \"./model\"\n\n/** Where an event sits in its commit: its id and its ordinal. */\nexport interface OntologyMaterializationEventSequence {\n readonly id: string\n readonly commitOrdinal: number\n}\n\n/**\n * The event consumers receive, rebuilt from the draft storage keeps, the commit it belongs to and\n * the execution that commit ran under. It is the exact event core would have built in one piece,\n * so storing drafts changes nothing a consumer can observe.\n */\nexport function materializationEvent(\n draft: OntologyMaterializationEventDraft,\n sequence: OntologyMaterializationEventSequence,\n commit: OntologyMaterializationEventCommit,\n attribution: OntologyMaterializationEventAttribution\n): OntologyMaterializationEvent {\n const context = {\n id: sequence.id,\n schemaVersion: 1 as const,\n projectId: commit.projectId,\n occurredAt: commit.committedAt,\n correlationId: attribution.correlationId,\n origin: structuredClone(commit.origin),\n ...(attribution.requestedBy === undefined\n ? {}\n : { requestedBy: { ...attribution.requestedBy } }),\n executor: structuredClone(attribution.executor),\n commitId: commit.id,\n commitOrdinal: sequence.commitOrdinal,\n }\n switch (draft.type) {\n case \"object.created\":\n return {\n ...context,\n type: draft.type,\n topic: \"objects\",\n partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,\n payload: {\n ...draft.payload,\n propertyChanges: createdPropertyChanges(draft.payload.properties),\n },\n }\n case \"object.updated\":\n return {\n ...context,\n type: draft.type,\n topic: \"objects\",\n partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,\n payload: draft.payload,\n }\n case \"object.deleted\":\n return {\n ...context,\n type: draft.type,\n topic: \"objects\",\n partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,\n payload: draft.payload,\n }\n case \"link.created\":\n return {\n ...context,\n type: draft.type,\n topic: \"links\",\n partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,\n payload: {\n ...draft.payload,\n propertyChanges: createdPropertyChanges(draft.payload.properties ?? {}),\n },\n }\n case \"link.updated\":\n return {\n ...context,\n type: draft.type,\n topic: \"links\",\n partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,\n payload: draft.payload,\n }\n case \"link.deleted\":\n return {\n ...context,\n type: draft.type,\n topic: \"links\",\n partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,\n payload: draft.payload,\n }\n case \"telemetry.appended\":\n return {\n ...context,\n type: draft.type,\n topic: \"telemetry\",\n partitionKey: `${draft.payload.objectTypeId}:${draft.payload.objectId}:${draft.payload.propertyId}`,\n payload: draft.payload,\n }\n }\n}\n\n/**\n * What the events of a commit say about who asked for it and what wrote it, read from the\n * execution it ran under. A primitive's id lives in the execution's authority, the only place the\n * durable record keeps it.\n */\nexport function eventAttribution(\n execution: Pick<\n ExecutionRecord,\n \"id\" | \"correlationId\" | \"requestedBy\" | \"executor\" | \"authorizationRef\"\n >\n): OntologyMaterializationEventAttribution {\n const attribution = {\n correlationId: execution.correlationId,\n executor: eventExecutor(execution),\n }\n if (execution.requestedBy === undefined) return attribution\n const { type, id } = execution.requestedBy\n return { ...attribution, requestedBy: { type, id } }\n}\n\nfunction eventExecutor(\n execution: Pick<ExecutionRecord, \"id\" | \"executor\" | \"authorizationRef\">\n): EventExecutor {\n const { executor, authorizationRef } = execution\n switch (executor.type) {\n case \"request\":\n return { type: \"request\", requestId: executor.requestId }\n case \"agent\":\n return { type: \"agent\", runId: executor.runId }\n case \"kernel\":\n return { type: \"kernel\", operation: structuredClone(executor.operation) }\n case \"primitive\":\n if (\n authorizationRef.type !== \"trustedPrimitive\" ||\n authorizationRef.primitive.kind !== executor.kind ||\n authorizationRef.primitive.runId !== executor.runId\n ) {\n throw new Error(\n `[Sixb] Execution '${execution.id}' runs a primitive without that primitive's authority.`\n )\n }\n return {\n type: \"primitive\",\n kind: executor.kind,\n id: authorizationRef.primitive.id,\n runId: executor.runId,\n }\n }\n}\n\n/** A creation changes every property it sets, from nothing to its value, in key order. */\nfunction createdPropertyChanges(\n properties: Readonly<Record<string, JsonValue>>\n): OntologyMaterializationPropertyChangeMap {\n const changes: Record<string, { readonly operation: \"created\"; readonly after: JsonValue }> = {}\n for (const id of Object.keys(properties).sort(compareStrings)) {\n changes[id] = { operation: \"created\", after: properties[id] as JsonValue }\n }\n return changes\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "9DA3AD8CFC8D3E5864756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "59931338574913A064756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  captureSixbFailure2
4
- } from "./chunk-6fsr7y93.js";
4
+ } from "./chunk-8mx7qw3y.js";
5
5
 
6
6
  // src/error-reporting/normalize.ts
7
7
  function safeString(value) {