@sixb/core 0.1.8 → 0.1.10

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 (785) hide show
  1. package/dist/actions/index.js +77 -89
  2. package/dist/actions/index.js.map +1 -1
  3. package/dist/actions/run-dispatch.d.ts.map +1 -1
  4. package/dist/actions/types/context.d.ts +2 -0
  5. package/dist/actions/types/context.d.ts.map +1 -1
  6. package/dist/actions/validation.d.ts +1 -1
  7. package/dist/actions/validation.d.ts.map +1 -1
  8. package/dist/actions/worker.js +33 -37
  9. package/dist/actions/worker.js.map +2 -2
  10. package/dist/agents/adapters.d.ts +3 -3
  11. package/dist/agents/{context.d.ts → context/entries.d.ts} +3 -3
  12. package/dist/agents/context/entries.d.ts.map +1 -0
  13. package/dist/agents/context/index.d.ts +4 -0
  14. package/dist/agents/context/index.d.ts.map +1 -0
  15. package/dist/agents/context/index.js +19 -0
  16. package/dist/agents/{streams.js.map → context/index.js.map} +1 -1
  17. package/dist/agents/context-model.d.ts +1 -1
  18. package/dist/agents/context-model.d.ts.map +1 -1
  19. package/dist/agents/context-resolution.d.ts +1 -1
  20. package/dist/agents/context-resolution.d.ts.map +1 -1
  21. package/dist/agents/index.d.ts +4 -4
  22. package/dist/agents/index.d.ts.map +1 -1
  23. package/dist/agents/index.js +193 -204
  24. package/dist/agents/index.js.map +1 -1
  25. package/dist/agents/message.d.ts +1 -1
  26. package/dist/agents/message.d.ts.map +1 -1
  27. package/dist/agents/model-loop.d.ts +2 -0
  28. package/dist/agents/model-loop.d.ts.map +1 -1
  29. package/dist/agents/request.d.ts +1 -1
  30. package/dist/agents/request.d.ts.map +1 -1
  31. package/dist/agents/streams/index.d.ts +4 -0
  32. package/dist/agents/streams/index.d.ts.map +1 -0
  33. package/dist/agents/streams/index.js +20 -0
  34. package/dist/{chunk-y64skrwp.js.map → agents/streams/index.js.map} +1 -1
  35. package/dist/agents/streams/internal.d.ts +3 -0
  36. package/dist/agents/streams/internal.d.ts.map +1 -0
  37. package/dist/agents/streams/internal.js +40 -0
  38. package/dist/agents/{context.js.map → streams/internal.js.map} +1 -1
  39. package/dist/agents/{streams.d.ts → streams/protocol.d.ts} +5 -5
  40. package/dist/agents/streams/protocol.d.ts.map +1 -0
  41. package/dist/agents/types.d.ts +1 -1
  42. package/dist/agents/types.d.ts.map +1 -1
  43. package/dist/agents/validation.d.ts.map +1 -1
  44. package/dist/auth/index.d.ts +0 -1
  45. package/dist/auth/index.d.ts.map +1 -1
  46. package/dist/auth/index.js +96 -108
  47. package/dist/auth/index.js.map +1 -1
  48. package/dist/auth/strategy.js +8 -9
  49. package/dist/auth/strategy.js.map +1 -1
  50. package/dist/authorization/index.js +51 -56
  51. package/dist/authorization/index.js.map +1 -1
  52. package/dist/blob-storage/browser.js +15 -17
  53. package/dist/blob-storage/browser.js.map +1 -1
  54. package/dist/blob-storage/index.js +36 -38
  55. package/dist/blob-storage/index.js.map +1 -1
  56. package/dist/bootstrap/discovery.d.ts +14 -1
  57. package/dist/bootstrap/discovery.d.ts.map +1 -1
  58. package/dist/bootstrap/index.d.ts +2 -2
  59. package/dist/bootstrap/index.d.ts.map +1 -1
  60. package/dist/bootstrap/index.js +80 -88
  61. package/dist/bootstrap/index.js.map +1 -1
  62. package/dist/broker/in-memory.d.ts +8 -2
  63. package/dist/broker/in-memory.d.ts.map +1 -1
  64. package/dist/broker/index.d.ts +4 -2
  65. package/dist/broker/index.d.ts.map +1 -1
  66. package/dist/broker/index.js +12 -10
  67. package/dist/broker/index.js.map +1 -1
  68. package/dist/broker/retention.d.ts +4 -0
  69. package/dist/broker/retention.d.ts.map +1 -0
  70. package/dist/broker/subscriber.d.ts +10 -0
  71. package/dist/broker/subscriber.d.ts.map +1 -0
  72. package/dist/broker/types.d.ts +14 -1
  73. package/dist/broker/types.d.ts.map +1 -1
  74. package/dist/chunk-0y39rgsb.js +43 -0
  75. package/dist/{chunk-c15dr03f.js.map → chunk-0y39rgsb.js.map} +2 -2
  76. package/dist/{chunk-k522z7v6.js → chunk-17kfctj6.js} +16 -11
  77. package/dist/chunk-17kfctj6.js.map +10 -0
  78. package/dist/{chunk-ajnan18g.js → chunk-1824gssz.js} +74 -106
  79. package/dist/chunk-1824gssz.js.map +12 -0
  80. package/dist/chunk-28ja2cjs.js +602 -0
  81. package/dist/chunk-28ja2cjs.js.map +18 -0
  82. package/dist/{chunk-5gd7tpv6.js → chunk-2c4j899j.js} +4 -4
  83. package/dist/chunk-2c4j899j.js.map +11 -0
  84. package/dist/{chunk-rv2hkwwa.js → chunk-358caqf5.js} +157 -180
  85. package/dist/chunk-358caqf5.js.map +12 -0
  86. package/dist/{chunk-fvt9rjsa.js → chunk-38zv5rkr.js} +4 -4
  87. package/dist/{chunk-fvt9rjsa.js.map → chunk-38zv5rkr.js.map} +1 -1
  88. package/dist/{chunk-w3e09qqk.js → chunk-39tqv9hz.js} +24 -24
  89. package/dist/{chunk-w3e09qqk.js.map → chunk-39tqv9hz.js.map} +2 -2
  90. package/dist/{chunk-04b07a9q.js → chunk-3bh94gbw.js} +13 -13
  91. package/dist/{chunk-04b07a9q.js.map → chunk-3bh94gbw.js.map} +2 -2
  92. package/dist/{chunk-s5y30bc9.js → chunk-3qms4nax.js} +52 -50
  93. package/dist/{chunk-s5y30bc9.js.map → chunk-3qms4nax.js.map} +5 -5
  94. package/dist/{chunk-nf4r78r4.js → chunk-5a4a52tq.js} +4 -4
  95. package/dist/{chunk-nf4r78r4.js.map → chunk-5a4a52tq.js.map} +2 -2
  96. package/dist/{chunk-wtf06et8.js → chunk-5c7ga8zz.js} +54 -177
  97. package/dist/chunk-5c7ga8zz.js.map +12 -0
  98. package/dist/{chunk-rte5sm3z.js → chunk-5hz0fnca.js} +23 -23
  99. package/dist/{chunk-rte5sm3z.js.map → chunk-5hz0fnca.js.map} +2 -2
  100. package/dist/{chunk-xajtptbw.js → chunk-5p1v802y.js} +1401 -445
  101. package/dist/chunk-5p1v802y.js.map +44 -0
  102. package/dist/chunk-653vwrzr.js +39 -0
  103. package/dist/chunk-653vwrzr.js.map +10 -0
  104. package/dist/{chunk-qw9gvjv5.js → chunk-72w2pxk7.js} +13 -13
  105. package/dist/{chunk-qw9gvjv5.js.map → chunk-72w2pxk7.js.map} +2 -2
  106. package/dist/chunk-7apz6hg4.js +50 -0
  107. package/dist/{chunk-jq43kdvk.js.map → chunk-7apz6hg4.js.map} +2 -2
  108. package/dist/chunk-7bs40fe1.js +218 -0
  109. package/dist/{chunk-p1rzczbt.js.map → chunk-7bs40fe1.js.map} +3 -3
  110. package/dist/chunk-7zgecwy1.js +113 -0
  111. package/dist/chunk-7zgecwy1.js.map +10 -0
  112. package/dist/{chunk-xhy826cz.js → chunk-85cd7e8c.js} +8 -7
  113. package/dist/chunk-85cd7e8c.js.map +10 -0
  114. package/dist/{chunk-pc7ys28c.js → chunk-860dwwy0.js} +29 -29
  115. package/dist/{chunk-pc7ys28c.js.map → chunk-860dwwy0.js.map} +2 -2
  116. package/dist/chunk-8vj0rjgs.js +165 -0
  117. package/dist/chunk-8vj0rjgs.js.map +15 -0
  118. package/dist/{chunk-7y0f6rf1.js → chunk-92vk7gta.js} +58 -58
  119. package/dist/chunk-92vk7gta.js.map +10 -0
  120. package/dist/{chunk-rafagrwr.js → chunk-93csa55g.js} +45 -17
  121. package/dist/chunk-93csa55g.js.map +11 -0
  122. package/dist/{chunk-aa2pen2v.js → chunk-976rxdpx.js} +188 -175
  123. package/dist/{chunk-aa2pen2v.js.map → chunk-976rxdpx.js.map} +2 -2
  124. package/dist/{chunk-d8qkxt2v.js → chunk-98cw09sw.js} +7 -7
  125. package/dist/chunk-98cw09sw.js.map +10 -0
  126. package/dist/{chunk-n4khvw9n.js → chunk-9qsh3p5y.js} +17 -17
  127. package/dist/{chunk-n4khvw9n.js.map → chunk-9qsh3p5y.js.map} +2 -2
  128. package/dist/{chunk-4a849fr1.js → chunk-9tc8dxmn.js} +1 -1
  129. package/dist/{chunk-9nbmsvn5.js → chunk-9vx5e9g1.js} +9 -9
  130. package/dist/{chunk-9nbmsvn5.js.map → chunk-9vx5e9g1.js.map} +2 -2
  131. package/dist/{chunk-8m5ejdpn.js → chunk-9x8dybsb.js} +5 -5
  132. package/dist/chunk-9x8dybsb.js.map +10 -0
  133. package/dist/chunk-aa6z4a19.js +358 -0
  134. package/dist/chunk-aa6z4a19.js.map +12 -0
  135. package/dist/{chunk-3xep5cjx.js → chunk-agbbygvh.js} +104 -86
  136. package/dist/chunk-agbbygvh.js.map +15 -0
  137. package/dist/{chunk-2dw777qw.js → chunk-ap0g1g74.js} +37 -82
  138. package/dist/{chunk-2dw777qw.js.map → chunk-ap0g1g74.js.map} +3 -4
  139. package/dist/{chunk-v4en4jc2.js → chunk-awbhdqyc.js} +7 -7
  140. package/dist/{chunk-v4en4jc2.js.map → chunk-awbhdqyc.js.map} +2 -2
  141. package/dist/{chunk-w9tg6yyb.js → chunk-b0ec55a1.js} +54 -37
  142. package/dist/chunk-b0ec55a1.js.map +12 -0
  143. package/dist/{chunk-ka3a2ft3.js → chunk-b19g04jk.js} +12 -12
  144. package/dist/{chunk-ka3a2ft3.js.map → chunk-b19g04jk.js.map} +2 -2
  145. package/dist/{chunk-gbejpkex.js → chunk-bn138h9w.js} +27 -28
  146. package/dist/{chunk-gbejpkex.js.map → chunk-bn138h9w.js.map} +3 -3
  147. package/dist/{chunk-nx7k8tpr.js → chunk-br3k6qbf.js} +23 -23
  148. package/dist/{chunk-nx7k8tpr.js.map → chunk-br3k6qbf.js.map} +2 -2
  149. package/dist/{chunk-dbc80ad7.js → chunk-c5rkjrgp.js} +28 -28
  150. package/dist/{chunk-dbc80ad7.js.map → chunk-c5rkjrgp.js.map} +2 -2
  151. package/dist/{chunk-dktq02ne.js → chunk-cqr3acm1.js} +4 -4
  152. package/dist/{chunk-dktq02ne.js.map → chunk-cqr3acm1.js.map} +2 -2
  153. package/dist/chunk-d62kjtbg.js +7 -0
  154. package/dist/{chunk-zcnhxkvd.js.map → chunk-d62kjtbg.js.map} +2 -2
  155. package/dist/{chunk-74drx9gd.js → chunk-dfm066qg.js} +10 -10
  156. package/dist/{chunk-74drx9gd.js.map → chunk-dfm066qg.js.map} +2 -2
  157. package/dist/{chunk-5e3pq99w.js → chunk-dmn70ztd.js} +30 -30
  158. package/dist/chunk-dmn70ztd.js.map +11 -0
  159. package/dist/{chunk-p1x242ad.js → chunk-dz5h08xv.js} +175 -175
  160. package/dist/{chunk-p1x242ad.js.map → chunk-dz5h08xv.js.map} +2 -2
  161. package/dist/{chunk-p2vqaxkc.js → chunk-e0d1rzef.js} +27 -22
  162. package/dist/{chunk-p2vqaxkc.js.map → chunk-e0d1rzef.js.map} +3 -3
  163. package/dist/{chunk-5sz8ta9r.js → chunk-e1c18xjx.js} +52 -52
  164. package/dist/{chunk-5sz8ta9r.js.map → chunk-e1c18xjx.js.map} +2 -2
  165. package/dist/{chunk-19jp6g9d.js → chunk-f0rwz2vh.js} +54 -33
  166. package/dist/chunk-f0rwz2vh.js.map +11 -0
  167. package/dist/{chunk-2xns679x.js → chunk-f4w3yp4f.js} +171 -36
  168. package/dist/chunk-f4w3yp4f.js.map +12 -0
  169. package/dist/{chunk-979ww6b3.js → chunk-fb3feg1e.js} +29 -29
  170. package/dist/{chunk-979ww6b3.js.map → chunk-fb3feg1e.js.map} +2 -2
  171. package/dist/{chunk-f26bck4t.js → chunk-ftv470j8.js} +393 -355
  172. package/dist/{chunk-f26bck4t.js.map → chunk-ftv470j8.js.map} +7 -7
  173. package/dist/{chunk-4sm0aznx.js → chunk-g00bfdq6.js} +254 -256
  174. package/dist/{chunk-4sm0aznx.js.map → chunk-g00bfdq6.js.map} +3 -3
  175. package/dist/{chunk-p03r0h5s.js → chunk-g53f0e4j.js} +76 -202
  176. package/dist/chunk-g53f0e4j.js.map +15 -0
  177. package/dist/chunk-g6cke204.js +124 -0
  178. package/dist/chunk-g6cke204.js.map +10 -0
  179. package/dist/{chunk-q0k9nc5a.js → chunk-g7knyczr.js} +98 -98
  180. package/dist/{chunk-q0k9nc5a.js.map → chunk-g7knyczr.js.map} +2 -2
  181. package/dist/{chunk-51fjndv0.js → chunk-gfdh9kqa.js} +4 -4
  182. package/dist/{chunk-51fjndv0.js.map → chunk-gfdh9kqa.js.map} +2 -2
  183. package/dist/{chunk-8tsf6dmc.js → chunk-gqh45d2n.js} +244 -205
  184. package/dist/chunk-gqh45d2n.js.map +15 -0
  185. package/dist/chunk-h3v76ams.js +32 -0
  186. package/dist/{chunk-08m3b6w8.js.map → chunk-h3v76ams.js.map} +2 -2
  187. package/dist/{chunk-jecn6t54.js → chunk-jgwb25gc.js} +74 -74
  188. package/dist/{chunk-jecn6t54.js.map → chunk-jgwb25gc.js.map} +2 -2
  189. package/dist/{chunk-wdage1eb.js → chunk-jmfet9r4.js} +6 -6
  190. package/dist/{chunk-wdage1eb.js.map → chunk-jmfet9r4.js.map} +2 -2
  191. package/dist/{chunk-k34z5rvh.js → chunk-kfee1h52.js} +132 -48
  192. package/dist/chunk-kfee1h52.js.map +13 -0
  193. package/dist/{chunk-2ab72m2h.js → chunk-m2ca93my.js} +3 -3
  194. package/dist/{chunk-2ab72m2h.js.map → chunk-m2ca93my.js.map} +2 -2
  195. package/dist/{chunk-4jjp5k14.js → chunk-mmagke4x.js} +6 -6
  196. package/dist/{chunk-4jjp5k14.js.map → chunk-mmagke4x.js.map} +2 -2
  197. package/dist/{chunk-359jm1jw.js → chunk-mrp7k0pw.js} +20 -20
  198. package/dist/{chunk-359jm1jw.js.map → chunk-mrp7k0pw.js.map} +2 -2
  199. package/dist/{chunk-h0k55pc7.js → chunk-ms2tmn1k.js} +139 -139
  200. package/dist/{chunk-h0k55pc7.js.map → chunk-ms2tmn1k.js.map} +2 -2
  201. package/dist/{chunk-h5vqbfmd.js → chunk-nmbxcaqx.js} +117 -117
  202. package/dist/{chunk-h5vqbfmd.js.map → chunk-nmbxcaqx.js.map} +3 -3
  203. package/dist/{chunk-n2w475r0.js → chunk-nt99sxd6.js} +82 -82
  204. package/dist/{chunk-n2w475r0.js.map → chunk-nt99sxd6.js.map} +3 -3
  205. package/dist/{chunk-v1xppd0y.js → chunk-p5vcsw9c.js} +60 -60
  206. package/dist/{chunk-v1xppd0y.js.map → chunk-p5vcsw9c.js.map} +2 -2
  207. package/dist/{chunk-sbzzr4kx.js → chunk-p6a4npdx.js} +1260 -1289
  208. package/dist/chunk-p6a4npdx.js.map +58 -0
  209. package/dist/{chunk-trxxmgnf.js → chunk-pqajwytd.js} +10 -10
  210. package/dist/{chunk-trxxmgnf.js.map → chunk-pqajwytd.js.map} +3 -3
  211. package/dist/{chunk-nn0tekr1.js → chunk-pr2h4bv4.js} +33 -33
  212. package/dist/{chunk-nn0tekr1.js.map → chunk-pr2h4bv4.js.map} +2 -2
  213. package/dist/{chunk-xwnf87e1.js → chunk-q5gz3g2j.js} +64 -64
  214. package/dist/{chunk-xwnf87e1.js.map → chunk-q5gz3g2j.js.map} +2 -2
  215. package/dist/{chunk-5ntny1qx.js → chunk-qf954wje.js} +6 -6
  216. package/dist/{chunk-5ntny1qx.js.map → chunk-qf954wje.js.map} +2 -2
  217. package/dist/chunk-qma80ych.js +30 -0
  218. package/dist/chunk-qma80ych.js.map +11 -0
  219. package/dist/{chunk-mth82m8t.js → chunk-qyeptdyv.js} +171 -77
  220. package/dist/chunk-qyeptdyv.js.map +15 -0
  221. package/dist/{chunk-b49dgvsj.js → chunk-r2y23egw.js} +3 -3
  222. package/dist/{chunk-b49dgvsj.js.map → chunk-r2y23egw.js.map} +2 -2
  223. package/dist/{chunk-mwsxn98e.js → chunk-r7fj830t.js} +253 -200
  224. package/dist/chunk-r7fj830t.js.map +36 -0
  225. package/dist/{chunk-4rh2m6zg.js → chunk-rb1xx120.js} +13 -13
  226. package/dist/{chunk-4rh2m6zg.js.map → chunk-rb1xx120.js.map} +2 -2
  227. package/dist/{chunk-gzasd5b6.js → chunk-rtk71jzp.js} +22 -22
  228. package/dist/{chunk-gzasd5b6.js.map → chunk-rtk71jzp.js.map} +2 -2
  229. package/dist/chunk-s3csryxe.js +152 -0
  230. package/dist/chunk-s3csryxe.js.map +11 -0
  231. package/dist/chunk-s670k14v.js +60 -0
  232. package/dist/{chunk-407j3msh.js.map → chunk-s670k14v.js.map} +2 -2
  233. package/dist/chunk-skz0hst3.js +788 -0
  234. package/dist/chunk-skz0hst3.js.map +19 -0
  235. package/dist/{chunk-3z1qec12.js → chunk-t1f4f1ve.js} +107 -64
  236. package/dist/{chunk-3z1qec12.js.map → chunk-t1f4f1ve.js.map} +3 -3
  237. package/dist/chunk-v2vcg0w6.js +151 -0
  238. package/dist/chunk-v2vcg0w6.js.map +11 -0
  239. package/dist/{chunk-r8jrnexe.js → chunk-v4jbb3rs.js} +4 -4
  240. package/dist/{chunk-r8jrnexe.js.map → chunk-v4jbb3rs.js.map} +2 -2
  241. package/dist/{chunk-w1tvjszy.js → chunk-vsj3mdfj.js} +8 -8
  242. package/dist/{chunk-w1tvjszy.js.map → chunk-vsj3mdfj.js.map} +2 -2
  243. package/dist/{chunk-9dzba0f2.js → chunk-wjasrj67.js} +8 -8
  244. package/dist/{chunk-9dzba0f2.js.map → chunk-wjasrj67.js.map} +2 -2
  245. package/dist/{chunk-1evzqhks.js → chunk-wr8qp979.js} +6 -6
  246. package/dist/{chunk-1evzqhks.js.map → chunk-wr8qp979.js.map} +2 -2
  247. package/dist/{chunk-n6jxh8sw.js → chunk-wy0qdqfm.js} +18 -18
  248. package/dist/{chunk-n6jxh8sw.js.map → chunk-wy0qdqfm.js.map} +2 -2
  249. package/dist/{chunk-z4ccwbkz.js → chunk-x9v4cx1d.js} +1 -1
  250. package/dist/{chunk-ry24jbr1.js → chunk-yv79ncbv.js} +10 -10
  251. package/dist/{chunk-ry24jbr1.js.map → chunk-yv79ncbv.js.map} +2 -2
  252. package/dist/{chunk-yp8ee62z.js → chunk-z30bv4ga.js} +35 -35
  253. package/dist/{chunk-yp8ee62z.js.map → chunk-z30bv4ga.js.map} +2 -2
  254. package/dist/{chunk-8ydjhh27.js → chunk-z3y411fq.js} +11 -7
  255. package/dist/{chunk-8ydjhh27.js.map → chunk-z3y411fq.js.map} +3 -3
  256. package/dist/{chunk-9t8f5xfx.js → chunk-z5rnrmz1.js} +10 -10
  257. package/dist/{chunk-9t8f5xfx.js.map → chunk-z5rnrmz1.js.map} +2 -2
  258. package/dist/{chunk-96swp2wd.js → chunk-z667z3sg.js} +3 -3
  259. package/dist/{chunk-96swp2wd.js.map → chunk-z667z3sg.js.map} +2 -2
  260. package/dist/{chunk-4yqmp43v.js → chunk-z8fx5cgb.js} +12 -12
  261. package/dist/{chunk-4yqmp43v.js.map → chunk-z8fx5cgb.js.map} +2 -2
  262. package/dist/{chunk-yt8wphsx.js → chunk-zvx7h87b.js} +3 -3
  263. package/dist/{chunk-yt8wphsx.js.map → chunk-zvx7h87b.js.map} +2 -2
  264. package/dist/connectors/connections/authorizations.d.ts.map +1 -1
  265. package/dist/connectors/connections/contracts.d.ts +3 -0
  266. package/dist/connectors/connections/contracts.d.ts.map +1 -1
  267. package/dist/connectors/connections/internal.js +9 -10
  268. package/dist/connectors/connections/internal.js.map +1 -1
  269. package/dist/connectors/connections/request.d.ts +3 -1
  270. package/dist/connectors/connections/request.d.ts.map +1 -1
  271. package/dist/connectors/connections/runs.d.ts.map +1 -1
  272. package/dist/connectors/connections/tokens.d.ts.map +1 -1
  273. package/dist/connectors/connections/validation.d.ts +5 -1
  274. package/dist/connectors/connections/validation.d.ts.map +1 -1
  275. package/dist/connectors/types.d.ts +19 -4
  276. package/dist/connectors/types.d.ts.map +1 -1
  277. package/dist/datasets/write.js +8 -12
  278. package/dist/datasets/write.js.map +1 -1
  279. package/dist/edits/index.js +7 -8
  280. package/dist/edits/index.js.map +1 -1
  281. package/dist/error-reporting/internal.js +22 -24
  282. package/dist/error-reporting/internal.js.map +1 -1
  283. package/dist/errors/internal.d.ts +1 -1
  284. package/dist/errors/internal.d.ts.map +1 -1
  285. package/dist/errors/internal.js +22 -24
  286. package/dist/errors/internal.js.map +1 -1
  287. package/dist/errors/redaction.d.ts +8 -0
  288. package/dist/errors/redaction.d.ts.map +1 -0
  289. package/dist/errors/types.d.ts +4 -0
  290. package/dist/errors/types.d.ts.map +1 -1
  291. package/dist/events/execution.d.ts +1 -1
  292. package/dist/events/execution.d.ts.map +1 -1
  293. package/dist/events/index.js +60 -63
  294. package/dist/events/index.js.map +1 -1
  295. package/dist/events/scope.js +4 -5
  296. package/dist/events/scope.js.map +1 -1
  297. package/dist/events/selectors/index.js +9 -10
  298. package/dist/events/selectors/index.js.map +1 -1
  299. package/dist/events/service.d.ts +2 -2
  300. package/dist/events/service.d.ts.map +1 -1
  301. package/dist/execution/agent.d.ts +3 -3
  302. package/dist/execution/agent.d.ts.map +1 -1
  303. package/dist/execution/agent.js +71 -82
  304. package/dist/execution/agent.js.map +1 -1
  305. package/dist/execution/durable.d.ts +1 -0
  306. package/dist/execution/durable.d.ts.map +1 -1
  307. package/dist/execution/primitive.d.ts +2 -0
  308. package/dist/execution/primitive.d.ts.map +1 -1
  309. package/dist/execution/primitive.js +64 -71
  310. package/dist/execution/primitive.js.map +3 -3
  311. package/dist/execution/request.d.ts +1 -0
  312. package/dist/execution/request.d.ts.map +1 -1
  313. package/dist/execution/request.js +66 -75
  314. package/dist/execution/request.js.map +3 -3
  315. package/dist/http/index.js +10 -11
  316. package/dist/http/index.js.map +1 -1
  317. package/dist/index.d.ts +17 -13
  318. package/dist/index.d.ts.map +1 -1
  319. package/dist/index.js +457 -477
  320. package/dist/index.js.map +1 -1
  321. package/dist/lake-storage/changes.d.ts +5 -0
  322. package/dist/lake-storage/changes.d.ts.map +1 -0
  323. package/dist/lake-storage/in-memory.d.ts +2 -1
  324. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  325. package/dist/lake-storage/index.d.ts +2 -1
  326. package/dist/lake-storage/index.d.ts.map +1 -1
  327. package/dist/lake-storage/index.js +40 -42
  328. package/dist/lake-storage/index.js.map +1 -1
  329. package/dist/lake-storage/types.d.ts +36 -0
  330. package/dist/lake-storage/types.d.ts.map +1 -1
  331. package/dist/logging/index.d.ts +3 -4
  332. package/dist/logging/index.d.ts.map +1 -1
  333. package/dist/logging/index.js +18 -40
  334. package/dist/logging/index.js.map +1 -1
  335. package/dist/logging/internal.d.ts +5 -0
  336. package/dist/logging/internal.d.ts.map +1 -0
  337. package/dist/logging/internal.js +43 -0
  338. package/dist/logging/internal.js.map +9 -0
  339. package/dist/materialization/index.d.ts +1 -1
  340. package/dist/materialization/index.d.ts.map +1 -1
  341. package/dist/materialization/index.js +46 -49
  342. package/dist/materialization/index.js.map +1 -1
  343. package/dist/materialization/model.d.ts +12 -1
  344. package/dist/materialization/model.d.ts.map +1 -1
  345. package/dist/materializer/index.d.ts +1 -1
  346. package/dist/materializer/index.d.ts.map +1 -1
  347. package/dist/materializer/index.js +137 -145
  348. package/dist/materializer/index.js.map +1 -1
  349. package/dist/materializer/materializer.d.ts +5 -1
  350. package/dist/materializer/materializer.d.ts.map +1 -1
  351. package/dist/materializer/projections/entry-validator.d.ts +2 -1
  352. package/dist/materializer/projections/entry-validator.d.ts.map +1 -1
  353. package/dist/materializer/projections/replace.d.ts.map +1 -1
  354. package/dist/materializer/projections/source-materialization.d.ts +4 -3
  355. package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
  356. package/dist/materializer/shared/normalize.d.ts +2 -1
  357. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  358. package/dist/models/errors.d.ts +4 -0
  359. package/dist/models/errors.d.ts.map +1 -1
  360. package/dist/models/execution/binding.d.ts +9 -0
  361. package/dist/models/execution/binding.d.ts.map +1 -0
  362. package/dist/models/execution/errors.d.ts +9 -0
  363. package/dist/models/execution/errors.d.ts.map +1 -0
  364. package/dist/models/execution/index.d.ts +11 -0
  365. package/dist/models/execution/index.d.ts.map +1 -0
  366. package/dist/models/execution/index.js +55 -0
  367. package/dist/models/execution/index.js.map +9 -0
  368. package/dist/models/execution/model-call-accounting.d.ts +17 -0
  369. package/dist/models/execution/model-call-accounting.d.ts.map +1 -0
  370. package/dist/models/execution/model-call-admission.d.ts +47 -0
  371. package/dist/models/execution/model-call-admission.d.ts.map +1 -0
  372. package/dist/models/execution/model-call-limits.d.ts +15 -0
  373. package/dist/models/execution/model-call-limits.d.ts.map +1 -0
  374. package/dist/models/execution/model-call-recorder.d.ts +40 -0
  375. package/dist/models/execution/model-call-recorder.d.ts.map +1 -0
  376. package/dist/models/execution/model-call-recovery.d.ts +12 -0
  377. package/dist/models/execution/model-call-recovery.d.ts.map +1 -0
  378. package/dist/models/execution/recovery-queue.d.ts +5 -0
  379. package/dist/models/execution/recovery-queue.d.ts.map +1 -0
  380. package/dist/models/execution/types.d.ts +44 -0
  381. package/dist/models/execution/types.d.ts.map +1 -0
  382. package/dist/models/execution/usage.d.ts +5 -0
  383. package/dist/models/execution/usage.d.ts.map +1 -0
  384. package/dist/models/execution.d.ts +6 -0
  385. package/dist/models/execution.d.ts.map +1 -0
  386. package/dist/models/generation-types.d.ts +40 -0
  387. package/dist/models/generation-types.d.ts.map +1 -0
  388. package/dist/models/index.d.ts +1 -0
  389. package/dist/models/index.d.ts.map +1 -1
  390. package/dist/models/index.js +42 -43
  391. package/dist/models/index.js.map +1 -1
  392. package/dist/models/language-model.d.ts +3 -0
  393. package/dist/models/language-model.d.ts.map +1 -1
  394. package/dist/models/output.d.ts +5 -0
  395. package/dist/models/output.d.ts.map +1 -0
  396. package/dist/models/resolve.d.ts +4 -0
  397. package/dist/models/resolve.d.ts.map +1 -0
  398. package/dist/objects/execution.d.ts.map +1 -1
  399. package/dist/objects/index.js +75 -87
  400. package/dist/objects/index.js.map +1 -1
  401. package/dist/objects/query/index.js +67 -76
  402. package/dist/objects/query/index.js.map +1 -1
  403. package/dist/ontology/index.d.ts +1 -2
  404. package/dist/ontology/index.d.ts.map +1 -1
  405. package/dist/ontology/index.js +62 -113
  406. package/dist/ontology/index.js.map +1 -1
  407. package/dist/ontology/internal.d.ts +7 -0
  408. package/dist/ontology/internal.d.ts.map +1 -1
  409. package/dist/ontology/internal.js +65 -116
  410. package/dist/ontology/internal.js.map +3 -4
  411. package/dist/pipelines/index.js +57 -66
  412. package/dist/pipelines/index.js.map +1 -1
  413. package/dist/pipelines/run-dispatch.d.ts.map +1 -1
  414. package/dist/projections/internal.js +56 -67
  415. package/dist/projections/internal.js.map +1 -1
  416. package/dist/projections/run-dispatch.d.ts.map +1 -1
  417. package/dist/query.d.ts +0 -1
  418. package/dist/query.d.ts.map +1 -1
  419. package/dist/query.js +11 -15
  420. package/dist/query.js.map +1 -1
  421. package/dist/queues/in-memory.d.ts +7 -3
  422. package/dist/queues/in-memory.d.ts.map +1 -1
  423. package/dist/queues/index.d.ts +2 -1
  424. package/dist/queues/index.d.ts.map +1 -1
  425. package/dist/queues/index.js +6 -7
  426. package/dist/queues/index.js.map +1 -1
  427. package/dist/queues/indexed-heap.d.ts +15 -0
  428. package/dist/queues/indexed-heap.d.ts.map +1 -0
  429. package/dist/queues/types.d.ts +3 -20
  430. package/dist/queues/types.d.ts.map +1 -1
  431. package/dist/rules/internal.js +4 -5
  432. package/dist/rules/internal.js.map +1 -1
  433. package/dist/runtime/create.d.ts +2 -1
  434. package/dist/runtime/create.d.ts.map +1 -1
  435. package/dist/runtime/host.d.ts +2 -1
  436. package/dist/runtime/host.d.ts.map +1 -1
  437. package/dist/runtime/internal.js +13 -14
  438. package/dist/runtime/internal.js.map +1 -1
  439. package/dist/runtime/ontology-mutations.d.ts +3 -1
  440. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  441. package/dist/runtime/sixb.d.ts +2 -0
  442. package/dist/runtime/sixb.d.ts.map +1 -1
  443. package/dist/sandboxes/errors.d.ts +4 -0
  444. package/dist/sandboxes/errors.d.ts.map +1 -1
  445. package/dist/sandboxes/index.d.ts +2 -2
  446. package/dist/sandboxes/index.d.ts.map +1 -1
  447. package/dist/sandboxes/index.js +14 -13
  448. package/dist/sandboxes/index.js.map +1 -1
  449. package/dist/sandboxes/sandbox.d.ts +35 -7
  450. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  451. package/dist/scheduler/index.js +9 -10
  452. package/dist/scheduler/index.js.map +1 -1
  453. package/dist/schedules/index.js +31 -33
  454. package/dist/schedules/index.js.map +1 -1
  455. package/dist/shares/internal.js +46 -54
  456. package/dist/shares/internal.js.map +2 -2
  457. package/dist/storage/action-runs/failure.js +7 -9
  458. package/dist/storage/action-runs/failure.js.map +1 -1
  459. package/dist/storage/action-runs/provider.js +4 -8
  460. package/dist/storage/action-runs/provider.js.map +1 -1
  461. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  462. package/dist/storage/agents/provider.js +26 -30
  463. package/dist/storage/agents/provider.js.map +1 -1
  464. package/dist/storage/agents/types.d.ts +0 -3
  465. package/dist/storage/agents/types.d.ts.map +1 -1
  466. package/dist/storage/ai-cost/attribution.d.ts +4 -0
  467. package/dist/storage/ai-cost/attribution.d.ts.map +1 -0
  468. package/dist/storage/ai-cost/groups.d.ts +3 -0
  469. package/dist/storage/ai-cost/groups.d.ts.map +1 -1
  470. package/dist/storage/ai-cost/provider.d.ts +1 -0
  471. package/dist/storage/ai-cost/provider.d.ts.map +1 -1
  472. package/dist/storage/ai-cost/provider.js +30 -143
  473. package/dist/storage/ai-cost/provider.js.map +3 -4
  474. package/dist/storage/ai-cost/types.d.ts +15 -0
  475. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  476. package/dist/storage/ai-limits/enforcement.js +14 -16
  477. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  478. package/dist/storage/ai-limits/provider.js +56 -57
  479. package/dist/storage/ai-limits/provider.js.map +1 -1
  480. package/dist/storage/auth/in-memory.d.ts +1 -1
  481. package/dist/storage/auth/in-memory.d.ts.map +1 -1
  482. package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
  483. package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
  484. package/dist/storage/connector-connections/provider.js +35 -37
  485. package/dist/storage/connector-connections/provider.js.map +3 -3
  486. package/dist/storage/connector-connections/types.d.ts +3 -2
  487. package/dist/storage/connector-connections/types.d.ts.map +1 -1
  488. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  489. package/dist/storage/executions/provider.d.ts +2 -1
  490. package/dist/storage/executions/provider.d.ts.map +1 -1
  491. package/dist/storage/executions/provider.js +14 -11
  492. package/dist/storage/executions/provider.js.map +3 -3
  493. package/dist/storage/executions/types.d.ts +6 -2
  494. package/dist/storage/executions/types.d.ts.map +1 -1
  495. package/dist/storage/executions/validation.d.ts +2 -0
  496. package/dist/storage/executions/validation.d.ts.map +1 -1
  497. package/dist/storage/in-memory/index.d.ts.map +1 -1
  498. package/dist/storage/index.d.ts +7 -8
  499. package/dist/storage/index.d.ts.map +1 -1
  500. package/dist/storage/index.js +221 -256
  501. package/dist/storage/index.js.map +1 -1
  502. package/dist/storage/internal.d.ts +10 -0
  503. package/dist/storage/internal.d.ts.map +1 -0
  504. package/dist/storage/internal.js +47 -0
  505. package/dist/storage/internal.js.map +9 -0
  506. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  507. package/dist/storage/ontology/in-memory/materializations.d.ts +1 -1
  508. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  509. package/dist/storage/ontology/in-memory/shared-state.d.ts +15 -2
  510. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  511. package/dist/storage/ontology/in-memory/source-roots.d.ts +6 -0
  512. package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -0
  513. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  514. package/dist/storage/ontology/index.d.ts +1 -1
  515. package/dist/storage/ontology/index.d.ts.map +1 -1
  516. package/dist/storage/ontology/provider.d.ts +16 -0
  517. package/dist/storage/ontology/provider.d.ts.map +1 -1
  518. package/dist/storage/ontology/provider.js +107 -109
  519. package/dist/storage/ontology/provider.js.map +1 -1
  520. package/dist/storage/ontology/sources.d.ts +13 -4
  521. package/dist/storage/ontology/sources.d.ts.map +1 -1
  522. package/dist/storage/operation-scope.js +18 -19
  523. package/dist/storage/operation-scope.js.map +1 -1
  524. package/dist/storage/pipeline-runs/provider.js +4 -6
  525. package/dist/storage/pipeline-runs/provider.js.map +1 -1
  526. package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
  527. package/dist/storage/projection-runs/provider.js +66 -70
  528. package/dist/storage/projection-runs/provider.js.map +1 -1
  529. package/dist/storage/projection-runs/types.d.ts +2 -0
  530. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  531. package/dist/storage/share-grants/provider.js +17 -19
  532. package/dist/storage/share-grants/provider.js.map +1 -1
  533. package/dist/storage/share-sessions/provider.js +14 -15
  534. package/dist/storage/share-sessions/provider.js.map +1 -1
  535. package/dist/storage/sync-runs/provider.js +4 -6
  536. package/dist/storage/sync-runs/provider.js.map +1 -1
  537. package/dist/storage/webhook-runs/provider.js +4 -6
  538. package/dist/storage/webhook-runs/provider.js.map +1 -1
  539. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  540. package/dist/storage/workflow-runs/provider.js +13 -21
  541. package/dist/storage/workflow-runs/provider.js.map +1 -1
  542. package/dist/storage/workflow-runs/types.d.ts +0 -3
  543. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  544. package/dist/syncs/index.js +56 -65
  545. package/dist/syncs/index.js.map +1 -1
  546. package/dist/syncs/run-dispatch.d.ts.map +1 -1
  547. package/dist/testing/action-execution.d.ts +4 -1
  548. package/dist/testing/action-execution.d.ts.map +1 -1
  549. package/dist/testing/agent-execution.d.ts +1 -0
  550. package/dist/testing/agent-execution.d.ts.map +1 -1
  551. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  552. package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -1
  553. package/dist/testing/broker-contract.d.ts.map +1 -1
  554. package/dist/testing/connector-connection-storage-contract.d.ts.map +1 -1
  555. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  556. package/dist/testing/execution.d.ts +1 -0
  557. package/dist/testing/execution.d.ts.map +1 -1
  558. package/dist/testing/index.d.ts +1 -0
  559. package/dist/testing/index.d.ts.map +1 -1
  560. package/dist/testing/index.js +2282 -1662
  561. package/dist/testing/index.js.map +16 -15
  562. package/dist/testing/lake-changes-contract.d.ts +6 -0
  563. package/dist/testing/lake-changes-contract.d.ts.map +1 -0
  564. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  565. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  566. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  567. package/dist/testing/workflow-execution.d.ts +1 -0
  568. package/dist/testing/workflow-execution.d.ts.map +1 -1
  569. package/dist/webhooks/connections.d.ts +6 -0
  570. package/dist/webhooks/connections.d.ts.map +1 -0
  571. package/dist/webhooks/index.d.ts +1 -1
  572. package/dist/webhooks/index.d.ts.map +1 -1
  573. package/dist/webhooks/internal.d.ts +2 -0
  574. package/dist/webhooks/internal.d.ts.map +1 -1
  575. package/dist/webhooks/internal.js +98 -61
  576. package/dist/webhooks/internal.js.map +4 -3
  577. package/dist/webhooks/registry.d.ts +1 -1
  578. package/dist/webhooks/registry.d.ts.map +1 -1
  579. package/dist/webhooks/types.d.ts +15 -4
  580. package/dist/webhooks/types.d.ts.map +1 -1
  581. package/dist/workers/index.js +11 -13
  582. package/dist/workers/index.js.map +2 -2
  583. package/dist/workflows/failure.d.ts +2 -0
  584. package/dist/workflows/failure.d.ts.map +1 -1
  585. package/dist/workflows/index.js +136 -147
  586. package/dist/workflows/index.js.map +1 -1
  587. package/dist/workflows/request.d.ts.map +1 -1
  588. package/dist/workflows/run-dispatch.d.ts +3 -2
  589. package/dist/workflows/run-dispatch.d.ts.map +1 -1
  590. package/dist/workflows/types.d.ts +2 -0
  591. package/dist/workflows/types.d.ts.map +1 -1
  592. package/package.json +48 -30
  593. package/src/actions/run-dispatch.ts +2 -6
  594. package/src/actions/types/context.ts +2 -0
  595. package/src/actions/validation.ts +2 -1
  596. package/src/agents/adapters.ts +4 -9
  597. package/src/agents/{context.ts → context/entries.ts} +4 -4
  598. package/src/agents/context/index.ts +15 -0
  599. package/src/agents/context-model.ts +1 -1
  600. package/src/agents/context-resolution.ts +1 -1
  601. package/src/agents/index.ts +4 -4
  602. package/src/agents/message.ts +1 -1
  603. package/src/agents/model-loop.ts +8 -0
  604. package/src/agents/request.ts +11 -26
  605. package/src/agents/streams/index.ts +18 -0
  606. package/src/agents/streams/internal.ts +19 -0
  607. package/src/agents/{streams.ts → streams/protocol.ts} +5 -5
  608. package/src/agents/types.ts +1 -1
  609. package/src/agents/validation.ts +3 -7
  610. package/src/auth/index.ts +0 -1
  611. package/src/bootstrap/discovery.ts +81 -24
  612. package/src/bootstrap/index.ts +8 -1
  613. package/src/broker/in-memory.ts +104 -39
  614. package/src/broker/index.ts +4 -1
  615. package/src/broker/retention.ts +28 -0
  616. package/src/broker/subscriber.ts +21 -0
  617. package/src/broker/types.ts +15 -1
  618. package/src/connectors/builders.ts +0 -6
  619. package/src/connectors/connections/authorizations.ts +11 -5
  620. package/src/connectors/connections/contracts.ts +3 -0
  621. package/src/connectors/connections/request.ts +56 -22
  622. package/src/connectors/connections/runs.ts +1 -0
  623. package/src/connectors/connections/tokens.ts +4 -0
  624. package/src/connectors/connections/validation.ts +91 -5
  625. package/src/connectors/types.ts +19 -4
  626. package/src/errors/internal.ts +90 -10
  627. package/src/errors/redaction.ts +98 -0
  628. package/src/errors/types.ts +4 -0
  629. package/src/events/execution.ts +2 -2
  630. package/src/events/service.ts +3 -3
  631. package/src/execution/agent.ts +5 -3
  632. package/src/execution/durable.ts +11 -1
  633. package/src/execution/primitive.ts +5 -1
  634. package/src/execution/request.ts +3 -0
  635. package/src/index.ts +30 -20
  636. package/src/lake-storage/changes.ts +43 -0
  637. package/src/lake-storage/in-memory.ts +73 -0
  638. package/src/lake-storage/index.ts +4 -0
  639. package/src/lake-storage/types.ts +40 -0
  640. package/src/logging/index.ts +2 -33
  641. package/src/logging/internal.ts +43 -0
  642. package/src/logging/service.ts +1 -1
  643. package/src/materialization/index.ts +2 -0
  644. package/src/materialization/model.ts +14 -1
  645. package/src/materializer/index.ts +2 -0
  646. package/src/materializer/materializer.ts +10 -0
  647. package/src/materializer/projections/entry-validator.ts +19 -1
  648. package/src/materializer/projections/replace.ts +36 -1
  649. package/src/materializer/projections/source-materialization.ts +26 -6
  650. package/src/materializer/shared/normalize.ts +1 -1
  651. package/src/models/errors.ts +12 -0
  652. package/src/models/execution/binding.ts +29 -0
  653. package/src/models/execution/errors.ts +18 -0
  654. package/src/models/execution/index.ts +26 -0
  655. package/src/models/execution/model-call-accounting.ts +211 -0
  656. package/src/models/execution/model-call-admission.ts +127 -0
  657. package/src/models/execution/model-call-limits.ts +135 -0
  658. package/src/models/execution/model-call-recorder.ts +235 -0
  659. package/src/models/execution/model-call-recovery.ts +125 -0
  660. package/src/models/execution/recovery-queue.ts +31 -0
  661. package/src/models/execution/types.ts +58 -0
  662. package/src/models/execution/usage.ts +23 -0
  663. package/src/models/execution.ts +207 -0
  664. package/src/models/generation-types.ts +50 -0
  665. package/src/models/index.ts +8 -0
  666. package/src/models/language-model.ts +3 -0
  667. package/src/models/output.ts +45 -0
  668. package/src/models/resolve.ts +27 -0
  669. package/src/objects/execution.ts +1 -1
  670. package/src/ontology/index.ts +1 -2
  671. package/src/ontology/internal.ts +35 -0
  672. package/src/pipelines/run-dispatch.ts +21 -1
  673. package/src/projections/run-dispatch.ts +31 -68
  674. package/src/query.ts +0 -1
  675. package/src/queues/in-memory.ts +105 -62
  676. package/src/queues/index.ts +4 -2
  677. package/src/queues/indexed-heap.ts +74 -0
  678. package/src/queues/types.ts +6 -25
  679. package/src/runtime/create.ts +2 -1
  680. package/src/runtime/host.ts +2 -15
  681. package/src/runtime/ontology-mutations.ts +4 -0
  682. package/src/runtime/sixb.ts +4 -0
  683. package/src/sandboxes/errors.ts +5 -0
  684. package/src/sandboxes/index.ts +3 -0
  685. package/src/sandboxes/sandbox.ts +35 -7
  686. package/src/storage/agents/in-memory.ts +0 -3
  687. package/src/storage/agents/types.ts +0 -3
  688. package/src/storage/ai-cost/analytics.ts +1 -1
  689. package/src/storage/ai-cost/attribution.ts +15 -0
  690. package/src/storage/ai-cost/groups.ts +5 -1
  691. package/src/storage/ai-cost/provider.ts +1 -0
  692. package/src/storage/ai-cost/types.ts +7 -0
  693. package/src/storage/auth/in-memory.ts +1 -1
  694. package/src/storage/connector-connections/in-memory.ts +3 -1
  695. package/src/storage/connector-connections/provider/runs.ts +3 -1
  696. package/src/storage/connector-connections/types.ts +3 -2
  697. package/src/storage/executions/in-memory.ts +4 -9
  698. package/src/storage/executions/provider.ts +4 -0
  699. package/src/storage/executions/types.ts +6 -2
  700. package/src/storage/executions/validation.ts +32 -0
  701. package/src/storage/in-memory/index.ts +16 -1
  702. package/src/storage/index.ts +4 -29
  703. package/src/storage/internal.ts +20 -0
  704. package/src/storage/ontology/in-memory/materializations-state.ts +5 -18
  705. package/src/storage/ontology/in-memory/materializations.ts +73 -92
  706. package/src/storage/ontology/in-memory/shared-state.ts +26 -1
  707. package/src/storage/ontology/in-memory/source-roots.ts +123 -0
  708. package/src/storage/ontology/in-memory/sources.ts +78 -23
  709. package/src/storage/ontology/index.ts +1 -0
  710. package/src/storage/ontology/provider.ts +70 -0
  711. package/src/storage/ontology/sources.ts +14 -3
  712. package/src/storage/projection-runs/lifecycle.ts +5 -2
  713. package/src/storage/projection-runs/types.ts +4 -3
  714. package/src/storage/workflow-runs/in-memory.ts +0 -2
  715. package/src/storage/workflow-runs/types.ts +0 -3
  716. package/src/syncs/run-dispatch.ts +19 -1
  717. package/src/testing/action-execution.ts +9 -2
  718. package/src/testing/agent-execution.ts +3 -0
  719. package/src/testing/agent-storage-contract.ts +0 -5
  720. package/src/testing/ai-model-call-groups-contract.ts +74 -2
  721. package/src/testing/broker-contract.ts +95 -0
  722. package/src/testing/connector-connection-storage-contract.ts +18 -1
  723. package/src/testing/execution-storage-contract.ts +59 -1
  724. package/src/testing/execution.ts +6 -0
  725. package/src/testing/index.ts +1 -0
  726. package/src/testing/lake-changes-contract.ts +240 -0
  727. package/src/testing/materializer-storage-contract.ts +172 -1
  728. package/src/testing/ontology-storage-contract.ts +7 -0
  729. package/src/testing/projection-run-storage-contract.ts +34 -0
  730. package/src/testing/workflow-execution.ts +4 -0
  731. package/src/webhooks/connections.ts +56 -0
  732. package/src/webhooks/index.ts +2 -0
  733. package/src/webhooks/internal.ts +2 -0
  734. package/src/webhooks/registry.ts +3 -4
  735. package/src/webhooks/types.ts +17 -4
  736. package/src/workflows/failure.ts +62 -1
  737. package/src/workflows/request.ts +0 -9
  738. package/src/workflows/run-dispatch.ts +42 -32
  739. package/src/workflows/types.ts +2 -0
  740. package/src/workflows/validation.ts +1 -1
  741. package/dist/agents/context.d.ts.map +0 -1
  742. package/dist/agents/context.js +0 -23
  743. package/dist/agents/streams.d.ts.map +0 -1
  744. package/dist/agents/streams.js +0 -55
  745. package/dist/chunk-08m3b6w8.js +0 -32
  746. package/dist/chunk-19jp6g9d.js.map +0 -11
  747. package/dist/chunk-2xns679x.js.map +0 -11
  748. package/dist/chunk-3xep5cjx.js.map +0 -15
  749. package/dist/chunk-407j3msh.js +0 -60
  750. package/dist/chunk-4qfkag59.js +0 -1568
  751. package/dist/chunk-4qfkag59.js.map +0 -20
  752. package/dist/chunk-5e3pq99w.js.map +0 -11
  753. package/dist/chunk-5gd7tpv6.js.map +0 -11
  754. package/dist/chunk-7y0f6rf1.js.map +0 -10
  755. package/dist/chunk-8m5ejdpn.js.map +0 -10
  756. package/dist/chunk-8tsf6dmc.js.map +0 -15
  757. package/dist/chunk-ajnan18g.js.map +0 -12
  758. package/dist/chunk-c15dr03f.js +0 -43
  759. package/dist/chunk-d8qkxt2v.js.map +0 -10
  760. package/dist/chunk-jq43kdvk.js +0 -50
  761. package/dist/chunk-k34z5rvh.js.map +0 -11
  762. package/dist/chunk-k522z7v6.js.map +0 -10
  763. package/dist/chunk-mth82m8t.js.map +0 -14
  764. package/dist/chunk-mwsxn98e.js.map +0 -36
  765. package/dist/chunk-p03r0h5s.js.map +0 -16
  766. package/dist/chunk-p1rzczbt.js +0 -218
  767. package/dist/chunk-rafagrwr.js.map +0 -11
  768. package/dist/chunk-rv2hkwwa.js.map +0 -14
  769. package/dist/chunk-sbzzr4kx.js.map +0 -63
  770. package/dist/chunk-tpnd31c1.js +0 -242
  771. package/dist/chunk-tpnd31c1.js.map +0 -11
  772. package/dist/chunk-w9tg6yyb.js.map +0 -12
  773. package/dist/chunk-wtf06et8.js.map +0 -14
  774. package/dist/chunk-xajtptbw.js.map +0 -40
  775. package/dist/chunk-xhy826cz.js.map +0 -10
  776. package/dist/chunk-y64skrwp.js +0 -19
  777. package/dist/chunk-zcnhxkvd.js +0 -7
  778. package/dist/logging/types.js +0 -27
  779. package/dist/logging/types.js.map +0 -9
  780. /package/dist/{chunk-zqqz8052.js → chunk-7n30ybym.js} +0 -0
  781. /package/dist/{chunk-zqqz8052.js.map → chunk-7n30ybym.js.map} +0 -0
  782. /package/dist/{chunk-4a849fr1.js.map → chunk-9tc8dxmn.js.map} +0 -0
  783. /package/dist/{chunk-j1sbhm7p.js → chunk-ey1nk510.js} +0 -0
  784. /package/dist/{chunk-j1sbhm7p.js.map → chunk-ey1nk510.js.map} +0 -0
  785. /package/dist/{chunk-z4ccwbkz.js.map → chunk-x9v4cx1d.js.map} +0 -0
@@ -86,7 +86,6 @@ import {
86
86
  publicLinkSlotOverride,
87
87
  publicObjectOverride,
88
88
  storedPoint,
89
- storedSource,
90
89
  storedSourceLink,
91
90
  storedSourceObject,
92
91
  uniqueBy,
@@ -117,6 +116,7 @@ import {
117
116
  projectEntityKey,
118
117
  sourceMaterializationKey,
119
118
  } from "./shared-state"
119
+ import { activateSourceRoots, previousSourceRows } from "./source-roots"
120
120
 
121
121
  export interface SessionState {
122
122
  readonly providerToken: object
@@ -160,7 +160,7 @@ export interface ReplacementLinkWork {
160
160
  export interface ReplacementSessionState {
161
161
  readonly sourceId: string
162
162
  readonly candidateMaterializationId: string
163
- readonly previous: InMemorySourceMaterialization | undefined
163
+ readonly owned: Set<string>
164
164
  readonly candidate: InMemorySourceMaterialization
165
165
  readonly objects: Map<string, ReplacementObjectWork>
166
166
  readonly links: Map<string, ReplacementLinkWork>
@@ -432,8 +432,7 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
432
432
  for (const entry of selected) {
433
433
  const key = projectionEntityKey({ kind: "link", ref: entry.ref })
434
434
  const base = await this.linkState(session, entry.ref)
435
- const ownedByReplacement =
436
- replacement.previous?.rowsByEntity.has(key) || replacement.candidate.rowsByEntity.has(key)
435
+ const ownedByReplacement = replacement.owned.has(key)
437
436
  links.push({
438
437
  ref: base.ref,
439
438
  candidateSource: ownedByReplacement
@@ -788,6 +787,7 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
788
787
  }
789
788
  )
790
789
  }
790
+ activateSourceRoots(this.state, candidate, activation)
791
791
  this.state.sourceMaterializations.set(candidateKey, {
792
792
  ...candidate,
793
793
  status: "active",
@@ -872,7 +872,7 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
872
872
  const replacement: ReplacementSessionState = {
873
873
  sourceId,
874
874
  candidateMaterializationId: input.candidateMaterializationId,
875
- previous,
875
+ owned: new Set(),
876
876
  candidate,
877
877
  objects: new Map(),
878
878
  links: new Map(),
@@ -886,9 +886,12 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
886
886
  linkStreamCompleted: false,
887
887
  linksExpanded: false,
888
888
  }
889
- for (const materialization of [previous, candidate]) {
890
- if (!materialization) continue
891
- for (const row of materialization.rowsByEntity.values()) {
889
+ for (const rows of [
890
+ previousSourceRows(this.state, candidate),
891
+ candidate.rowsByEntity.values(),
892
+ ]) {
893
+ for (const row of rows) {
894
+ replacement.owned.add(projectionEntityKey(row.assertion))
892
895
  if (row.assertion.kind === "object") {
893
896
  const ref = row.assertion.ref
894
897
  replacement.objects.set(objectRefKey(ref), { ref, sortKey: objectRefSortKey(ref) })
@@ -915,54 +918,54 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
915
918
  incident.has(objectRefKey(ref.source)) || incident.has(objectRefKey(ref.target))
916
919
 
917
920
  const adapter = getInMemoryObjectMaterializerAdapter(this.objects)
918
- adapter.visitExactLinks(projectId, (row) => {
919
- const ref = linkRef(row)
920
- if (touchesIncident(ref)) addReplacementLink(replacement, ref, true)
921
- })
922
- for (const override of this.state.linkOverrides.values()) {
923
- if (override.projectId !== projectId) continue
924
- if (touchesIncident(override.ref)) addReplacementLink(replacement, override.ref, true)
925
- }
926
- for (const override of this.state.linkSlotOverrides.values()) {
927
- if (override.projectId !== projectId) continue
928
- const ref = {
929
- source: override.ref.source,
930
- linkId: override.ref.linkId,
931
- target: override.value.target,
921
+ if (incident.size > 0) {
922
+ adapter.visitExactLinks(projectId, (row) => {
923
+ const ref = linkRef(row)
924
+ if (touchesIncident(ref)) addReplacementLink(replacement, ref, true)
925
+ })
926
+ for (const override of this.state.linkOverrides.values()) {
927
+ if (override.projectId !== projectId) continue
928
+ if (touchesIncident(override.ref)) addReplacementLink(replacement, override.ref, true)
932
929
  }
933
- if (touchesIncident(ref)) addReplacementLink(replacement, ref, true)
934
- }
935
- for (const active of this.state.sourceMaterializations.values()) {
936
- if (active.projectId !== projectId || active.status !== "active") continue
937
- for (const row of active.rowsByEntity.values()) {
938
- if (row.assertion.kind === "link" && touchesIncident(row.assertion.ref)) {
939
- addReplacementLink(replacement, row.assertion.ref, true)
930
+ for (const override of this.state.linkSlotOverrides.values()) {
931
+ if (override.projectId !== projectId) continue
932
+ const ref = {
933
+ source: override.ref.source,
934
+ linkId: override.ref.linkId,
935
+ target: override.value.target,
940
936
  }
937
+ if (touchesIncident(ref)) addReplacementLink(replacement, ref, true)
941
938
  }
942
- }
943
-
944
- adapter.visitExactLinks(projectId, (row) => {
945
- const ref = linkRef(row)
946
- if (replacement.affectedScopes.has(linkScopeSortKey(ref.source, ref.linkId))) {
947
- addReplacementLink(replacement, ref, false)
948
- }
949
- })
950
- for (const override of this.state.linkSlotOverrides.values()) {
951
- if (
952
- override.projectId === projectId &&
953
- replacement.affectedScopes.has(linkScopeSortKey(override.ref.source, override.ref.linkId))
954
- ) {
955
- addReplacementLink(
956
- replacement,
957
- {
958
- source: override.ref.source,
959
- linkId: override.ref.linkId,
960
- target: override.value.target,
961
- },
962
- false
963
- )
939
+ for (const [scopeKey, rows] of this.state.activeSourceLinkScopes) {
940
+ if (JSON.parse(scopeKey)[0] !== projectId) continue
941
+ for (const row of rows.values()) {
942
+ if (row.assertion.kind === "link" && touchesIncident(row.assertion.ref)) {
943
+ addReplacementLink(replacement, row.assertion.ref, true)
944
+ }
945
+ }
964
946
  }
965
947
  }
948
+ const scopes = new Map<string, { source: OntologyObjectRef; linkId: string }>()
949
+ for (const { ref } of replacement.links.values()) {
950
+ const key = linkScopeSortKey(ref.source, ref.linkId)
951
+ if (replacement.affectedScopes.has(key)) scopes.set(key, ref)
952
+ }
953
+ for (const scope of scopes.values()) {
954
+ adapter.visitExactScopeLinks(
955
+ projectId,
956
+ scope.source.objectTypeId,
957
+ scope.source.primaryId,
958
+ scope.linkId,
959
+ (row) => {
960
+ addReplacementLink(replacement, linkRef(row), false)
961
+ }
962
+ )
963
+ const override = this.state.linkSlotOverrides.get(
964
+ projectEntityKey(projectId, linkScopeKey(scope.source, scope.linkId))
965
+ )
966
+ if (override)
967
+ addReplacementLink(replacement, { ...scope, target: override.value.target }, false)
968
+ }
966
969
  replacement.linksExpanded = true
967
970
  replacement.orderedLinks = null
968
971
  }
@@ -1206,31 +1209,15 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
1206
1209
  source: OntologyObjectRef,
1207
1210
  linkId: string
1208
1211
  ): StoredSourceLinkAssertion | null {
1209
- let found: StoredSourceLinkAssertion | null = null
1210
- for (const active of this.state.sourceMaterializations.values()) {
1211
- if (active.projectId !== projectId || active.status !== "active") continue
1212
- for (const row of active.rowsByEntity.values()) {
1213
- if (
1214
- row.assertion.kind !== "link" ||
1215
- objectRefKey(row.assertion.ref.source) !== objectRefKey(source) ||
1216
- row.assertion.ref.linkId !== linkId
1217
- ) {
1218
- continue
1219
- }
1220
- if (found) {
1221
- throw new MaterializationConflictError(
1222
- "source-materialization",
1223
- `Multiple active source links assert cardinality-one scope '${source.objectTypeId}.${linkId}'.`
1224
- )
1225
- }
1226
- found = storedSource(
1227
- active.source.projectionId,
1228
- active.materializationId,
1229
- row
1230
- ) as StoredSourceLinkAssertion
1231
- }
1232
- }
1233
- return structuredClone(found)
1212
+ const rows = this.state.activeSourceLinkScopes.get(
1213
+ projectEntityKey(projectId, linkScopeSortKey(source, linkId))
1214
+ )
1215
+ if (rows && rows.size > 1)
1216
+ throw new MaterializationConflictError(
1217
+ "source-materialization",
1218
+ `Multiple active source links assert cardinality-one scope '${source.objectTypeId}.${linkId}'.`
1219
+ )
1220
+ return structuredClone(rows?.values().next().value ?? null)
1234
1221
  }
1235
1222
 
1236
1223
  private findActiveObjectSource(
@@ -1250,19 +1237,13 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
1250
1237
  }
1251
1238
 
1252
1239
  private findActiveSource(projectId: string, entityKey: string): StoredSourceAssertion | null {
1253
- let found: StoredSourceAssertion | null = null
1254
- for (const active of this.state.sourceMaterializations.values()) {
1255
- if (active.projectId !== projectId || active.status !== "active") continue
1256
- const row = active.rowsByEntity.get(entityKey)
1257
- if (!row) continue
1258
- if (found)
1259
- throw new MaterializationConflictError(
1260
- "source-materialization",
1261
- `Multiple active sources assert ${entityKey}.`
1262
- )
1263
- found = storedSource(active.source.projectionId, active.materializationId, row)
1264
- }
1265
- return structuredClone(found)
1240
+ const rows = this.state.activeSourceRows.get(projectEntityKey(projectId, entityKey))
1241
+ if (rows && rows.size > 1)
1242
+ throw new MaterializationConflictError(
1243
+ "source-materialization",
1244
+ `Multiple active sources assert ${entityKey}.`
1245
+ )
1246
+ return structuredClone(rows?.values().next().value ?? null)
1266
1247
  }
1267
1248
 
1268
1249
  private incidentLinkRefs(
@@ -1307,9 +1288,9 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
1307
1288
  target: override.value.target,
1308
1289
  })
1309
1290
  }
1310
- for (const active of this.state.sourceMaterializations.values()) {
1311
- if (active.projectId !== projectId || active.status !== "active") continue
1312
- for (const row of active.rowsByEntity.values()) {
1291
+ for (const [scopeKey, rows] of this.state.activeSourceLinkScopes) {
1292
+ if (JSON.parse(scopeKey)[0] !== projectId) continue
1293
+ for (const row of rows.values()) {
1313
1294
  if (row.assertion.kind === "link") consider(row.assertion.ref)
1314
1295
  }
1315
1296
  }
@@ -2,6 +2,7 @@ import { MaterializationValidationError } from "../../../materialization/errors"
2
2
  import type {
3
3
  LinkSlotOverride,
4
4
  OntologyMaterializationOrigin,
5
+ ProjectionEntityRef,
5
6
  } from "../../../materialization/model"
6
7
  import type { OntologyCommitOriginSelector, OntologyCommitRecord } from "../commits"
7
8
  import type {
@@ -11,9 +12,24 @@ import type {
11
12
  StoredObjectOverride,
12
13
  } from "../materializations"
13
14
  import type { OntologyOutboxRecord } from "../outbox"
14
- import type { OntologySourceRecord, StageSourceAssertion } from "../sources"
15
+ import type {
16
+ OntologySourceRecord,
17
+ StageSourceAssertion,
18
+ StoredSourceAssertion,
19
+ StoredSourceLinkAssertion,
20
+ } from "../sources"
21
+
22
+ export interface InMemorySourceRoot {
23
+ readonly root: ProjectionEntityRef
24
+ readonly stagingOrdinal: number
25
+ readonly deleted: boolean
26
+ readonly entityKeys: Set<string>
27
+ active: boolean
28
+ retiredAt: string | null
29
+ }
15
30
 
16
31
  export interface InMemorySourceMaterialization extends OntologySourceRecord {
32
+ readonly roots: Map<string, InMemorySourceRoot>
17
33
  readonly rowsByEntity: Map<string, StageSourceAssertion>
18
34
  readonly rootOrdinals: Map<string, number>
19
35
  readonly ordinalRoots: Map<number, string>
@@ -37,6 +53,10 @@ export interface InMemoryOntologyState {
37
53
  readonly commitIdByIdempotency: Map<string, string>
38
54
  readonly commitIdByOrigin: Map<string, string>
39
55
  readonly sourceMaterializations: Map<string, InMemorySourceMaterialization>
56
+ readonly activeSourceHeads: Map<string, string>
57
+ readonly activeSourceRoots: Map<string, Map<string, string>>
58
+ readonly activeSourceRows: Map<string, Map<string, StoredSourceAssertion>>
59
+ readonly activeSourceLinkScopes: Map<string, Map<string, StoredSourceLinkAssertion>>
40
60
  readonly objectOverrides: Map<string, InMemoryStoredObjectOverride>
41
61
  readonly linkOverrides: Map<string, InMemoryStoredLinkOverride>
42
62
  readonly linkSlotOverrides: Map<string, InMemoryStoredLinkSlotOverride>
@@ -57,6 +77,10 @@ export function createInMemoryOntologyState(): InMemoryOntologyState {
57
77
  commitIdByIdempotency: new Map(),
58
78
  commitIdByOrigin: new Map(),
59
79
  sourceMaterializations: new Map(),
80
+ activeSourceHeads: new Map(),
81
+ activeSourceRoots: new Map(),
82
+ activeSourceRows: new Map(),
83
+ activeSourceLinkScopes: new Map(),
60
84
  objectOverrides: new Map(),
61
85
  linkOverrides: new Map(),
62
86
  linkSlotOverrides: new Map(),
@@ -83,6 +107,7 @@ export function sourceMaterializationRecord(
83
107
  rowsByEntity: _rows,
84
108
  rootOrdinals: _roots,
85
109
  ordinalRoots: _ordinals,
110
+ roots: _sourceRoots,
86
111
  ...record
87
112
  } = materialization
88
113
  return structuredClone(record)
@@ -0,0 +1,123 @@
1
+ import { MaterializationConflictError } from "../../../materialization/errors"
2
+ import { linkScopeSortKey, projectionEntityKey } from "../../../materialization/refs"
3
+ import type { SourceActivationWrite } from "../materializations"
4
+ import type { StoredSourceAssertion, StoredSourceLinkAssertion } from "../sources"
5
+ import { storedSource } from "./materializations-state"
6
+ import {
7
+ type InMemoryOntologyState,
8
+ type InMemorySourceMaterialization,
9
+ projectEntityKey,
10
+ sourceMaterializationKey,
11
+ } from "./shared-state"
12
+
13
+ export function* previousSourceRows(
14
+ state: InMemoryOntologyState,
15
+ candidate: InMemorySourceMaterialization
16
+ ): Iterable<StoredSourceAssertion> {
17
+ const sourceKey = projectEntityKey(candidate.projectId, candidate.source.projectionId)
18
+ const active = state.activeSourceRoots.get(sourceKey)
19
+ if (!active) return
20
+ for (const rootKey of candidate.base ? candidate.roots.keys() : active.keys()) {
21
+ const materializationId = active.get(rootKey)
22
+ if (!materializationId) continue
23
+ const materialization = state.sourceMaterializations.get(
24
+ sourceMaterializationKey(
25
+ candidate.projectId,
26
+ candidate.source.projectionId,
27
+ materializationId
28
+ )
29
+ )!
30
+ for (const entityKey of materialization.roots.get(rootKey)!.entityKeys) {
31
+ yield storedSource(
32
+ candidate.source.projectionId,
33
+ materializationId,
34
+ materialization.rowsByEntity.get(entityKey)!
35
+ )
36
+ }
37
+ }
38
+ }
39
+
40
+ export function activateSourceRoots(
41
+ state: InMemoryOntologyState,
42
+ candidate: InMemorySourceMaterialization,
43
+ activation: SourceActivationWrite
44
+ ): void {
45
+ if (
46
+ candidate.base &&
47
+ (candidate.base.materializationId !== activation.expected.activeMaterializationId ||
48
+ candidate.base.lastCommitId !== activation.expected.lastCommitId)
49
+ ) {
50
+ throw new MaterializationConflictError(
51
+ "projection-fence",
52
+ "Source delta base changed before activation."
53
+ )
54
+ }
55
+ const sourceKey = projectEntityKey(candidate.projectId, candidate.source.projectionId)
56
+ const active = state.activeSourceRoots.get(sourceKey) ?? new Map<string, string>()
57
+ for (const key of candidate.base ? candidate.roots.keys() : [...active.keys()]) {
58
+ const materializationId = active.get(key)
59
+ if (!materializationId) continue
60
+ const old = state.sourceMaterializations.get(
61
+ sourceMaterializationKey(
62
+ candidate.projectId,
63
+ candidate.source.projectionId,
64
+ materializationId
65
+ )
66
+ )!
67
+ const root = old.roots.get(key)!
68
+ root.active = false
69
+ root.retiredAt = activation.updatedAt
70
+ active.delete(key)
71
+ for (const entityKey of root.entityKeys) {
72
+ const row = old.rowsByEntity.get(entityKey)!
73
+ const indexKey = projectEntityKey(candidate.projectId, entityKey)
74
+ const sources = state.activeSourceRows.get(indexKey)!
75
+ sources.delete(candidate.source.projectionId)
76
+ if (sources.size === 0) state.activeSourceRows.delete(indexKey)
77
+ if (row.assertion.kind === "link") {
78
+ const scopeKey = projectEntityKey(
79
+ candidate.projectId,
80
+ linkScopeSortKey(row.assertion.ref.source, row.assertion.ref.linkId)
81
+ )
82
+ const scope = state.activeSourceLinkScopes.get(scopeKey)!
83
+ scope.delete(JSON.stringify([candidate.source.projectionId, entityKey]))
84
+ if (scope.size === 0) state.activeSourceLinkScopes.delete(scopeKey)
85
+ }
86
+ }
87
+ }
88
+ for (const [rootKey, root] of candidate.roots) {
89
+ root.active = !root.deleted
90
+ root.retiredAt = root.deleted ? activation.updatedAt : null
91
+ if (root.deleted) continue
92
+ active.set(rootKey, candidate.materializationId)
93
+ for (const entityKey of root.entityKeys) {
94
+ // These are internal immutable assertions. Share their payload between indexes;
95
+ // read methods clone returned values and transaction snapshots preserve aliases.
96
+ const row = {
97
+ source: candidate.source,
98
+ materializationId: candidate.materializationId,
99
+ ...candidate.rowsByEntity.get(entityKey)!,
100
+ } as StoredSourceAssertion
101
+ const indexKey = projectEntityKey(candidate.projectId, projectionEntityKey(row.assertion))
102
+ const sources =
103
+ state.activeSourceRows.get(indexKey) ?? new Map<string, StoredSourceAssertion>()
104
+ sources.set(candidate.source.projectionId, row)
105
+ state.activeSourceRows.set(indexKey, sources)
106
+ if (row.assertion.kind === "link") {
107
+ const scopeKey = projectEntityKey(
108
+ candidate.projectId,
109
+ linkScopeSortKey(row.assertion.ref.source, row.assertion.ref.linkId)
110
+ )
111
+ const scope =
112
+ state.activeSourceLinkScopes.get(scopeKey) ?? new Map<string, StoredSourceLinkAssertion>()
113
+ scope.set(
114
+ JSON.stringify([candidate.source.projectionId, entityKey]),
115
+ row as StoredSourceLinkAssertion
116
+ )
117
+ state.activeSourceLinkScopes.set(scopeKey, scope)
118
+ }
119
+ }
120
+ }
121
+ state.activeSourceRoots.set(sourceKey, active)
122
+ state.activeSourceHeads.set(sourceKey, candidate.materializationId)
123
+ }
@@ -13,6 +13,7 @@ import {
13
13
  isExactStagingManifest,
14
14
  sourceConflict,
15
15
  sourceMaterializationIdentity,
16
+ sourceStageRoots,
16
17
  } from "../provider"
17
18
  import type {
18
19
  AbandonSourceMaterializationCandidateInput,
@@ -32,6 +33,7 @@ import type {
32
33
  SummarizeTerminalSourceMaterializationsInput,
33
34
  TerminalSourceMaterializationSummary,
34
35
  } from "../sources"
36
+ import { findActiveSourceMaterialization } from "./materializations-state"
35
37
  import {
36
38
  assertNonblank,
37
39
  type InMemoryOntologyState,
@@ -93,6 +95,7 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
93
95
  projectionRevision: input.projectionRevision,
94
96
  ownershipHash: input.ownershipHash,
95
97
  ontologyRevision: input.ontologyRevision,
98
+ ...(input.base ? { base: structuredClone(input.base) } : {}),
96
99
  rootCount: null,
97
100
  assertionCount: null,
98
101
  createdAt: input.createdAt,
@@ -102,6 +105,7 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
102
105
  lastCommitId: null,
103
106
  updatedAt: input.createdAt,
104
107
  rowsByEntity: new Map(),
108
+ roots: new Map(),
105
109
  rootOrdinals: new Map(),
106
110
  ordinalRoots: new Map(),
107
111
  }
@@ -121,7 +125,7 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
121
125
  `Source materialization '${input.materializationId}' is '${materialization.status}' and cannot accept rows.`
122
126
  )
123
127
  }
124
- return stageRowsAtomically(materialization, input.rows)
128
+ return stageRowsAtomically(materialization, input)
125
129
  })
126
130
  }
127
131
 
@@ -178,18 +182,12 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
178
182
  async getActive(input: GetActiveOntologySourceInput): Promise<OntologySourceRecord | null> {
179
183
  return this.runRootOperation(() => {
180
184
  assertProjectAndSource(input)
181
- const active = [...this.state.sourceMaterializations.values()].filter(
182
- (materialization) =>
183
- materialization.projectId === input.projectId &&
184
- materialization.source.projectionId === input.source.projectionId &&
185
- materialization.status === "active"
185
+ const active = findActiveSourceMaterialization(
186
+ this.state,
187
+ input.projectId,
188
+ input.source.projectionId
186
189
  )
187
- if (active.length > 1) {
188
- throw sourceConflict(
189
- `Source '${input.source.projectionId}' has more than one active materialization.`
190
- )
191
- }
192
- return active[0] ? sourceMaterializationRecord(active[0]) : null
190
+ return active ? sourceMaterializationRecord(active) : null
193
191
  })
194
192
  }
195
193
 
@@ -230,6 +228,14 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
230
228
  ) {
231
229
  continue
232
230
  }
231
+ if (
232
+ materialization.roots.size > 0 &&
233
+ ![...materialization.roots.values()].some(
234
+ (root) =>
235
+ !root.active && root.retiredAt !== null && root.retiredAt < input.terminalBefore
236
+ )
237
+ )
238
+ continue
233
239
  insertBounded(candidates, entry, input.limit, compareTerminalMaterializations)
234
240
  }
235
241
 
@@ -240,18 +246,28 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
240
246
  if (remaining === 0) break
241
247
  const current = this.state.sourceMaterializations.get(key)
242
248
  if (current !== candidate) continue
243
- // Terminal manifests never participate in reads or activation again. Release their
244
- // ingestion-only indexes immediately instead of retaining O(root count) memory until the
245
- // last child row is removed by a later bounded cleanup pass.
246
249
  current.rootOrdinals.clear()
247
250
  current.ordinalRoots.clear()
248
- for (const entityKey of current.rowsByEntity.keys()) {
251
+ for (const [rootKey, root] of current.roots) {
249
252
  if (remaining === 0) break
250
- current.rowsByEntity.delete(entityKey)
251
- rowsDeleted += 1
252
- remaining -= 1
253
+ if (root.active || root.retiredAt === null || root.retiredAt >= input.terminalBefore)
254
+ continue
255
+ for (const entityKey of root.entityKeys) {
256
+ if (remaining === 0) break
257
+ current.rowsByEntity.delete(entityKey)
258
+ root.entityKeys.delete(entityKey)
259
+ rowsDeleted += 1
260
+ remaining -= 1
261
+ }
262
+ if (root.entityKeys.size === 0 && remaining > 0) {
263
+ current.roots.delete(rootKey)
264
+ current.rootOrdinals.delete(rootKey)
265
+ current.ordinalRoots.delete(root.stagingOrdinal)
266
+ rowsDeleted += 1
267
+ remaining -= 1
268
+ }
253
269
  }
254
- if (current.rowsByEntity.size === 0 && remaining > 0) {
270
+ if (current.roots.size === 0 && current.rowsByEntity.size === 0 && remaining > 0) {
255
271
  this.state.sourceMaterializations.delete(key)
256
272
  materializationsDeleted += 1
257
273
  remaining -= 1
@@ -372,6 +388,7 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
372
388
  if (materialization.readyAt !== null) {
373
389
  assertNotBefore(abandonedAt, materialization.readyAt, "Source abandonedAt", "readyAt")
374
390
  }
391
+ for (const root of materialization.roots.values()) root.retiredAt = abandonedAt
375
392
  const abandoned: InMemorySourceMaterialization = {
376
393
  ...materialization,
377
394
  status: "abandoned",
@@ -407,14 +424,33 @@ export class InMemoryOntologySourceStorage implements OntologySourceStorage {
407
424
 
408
425
  function stageRowsAtomically(
409
426
  materialization: InMemorySourceMaterialization,
410
- rows: StageSourceRowsInput["rows"]
427
+ input: StageSourceRowsInput
411
428
  ): StageSourceRowsResult {
412
429
  let inserted = 0
413
430
  let unchanged = 0
414
431
  const newRows = new Map<string, StageSourceRowsInput["rows"][number]>()
415
432
  const newRootOrdinals = new Map<string, number>()
416
433
  const newOrdinalRoots = new Map<number, string>()
417
- for (const row of rows) {
434
+ const roots = sourceStageRoots(materialization.projectionKind, input)
435
+ if (!materialization.base && roots.some((root) => root.deleted)) {
436
+ throw new MaterializationValidationError("Root deletions require a source delta base.")
437
+ }
438
+ for (const root of roots) {
439
+ const previous = materialization.roots.get(root.rootKey)
440
+ const otherRoot = materialization.ordinalRoots.get(root.stagingOrdinal)
441
+ if (
442
+ (previous &&
443
+ (previous.deleted !== root.deleted || previous.stagingOrdinal !== root.stagingOrdinal)) ||
444
+ (otherRoot !== undefined && otherRoot !== root.rootKey)
445
+ ) {
446
+ throw new MaterializationValidationError(
447
+ "Source materialization repeats root or stream ordinal with different content."
448
+ )
449
+ }
450
+ newRootOrdinals.set(root.rootKey, root.stagingOrdinal)
451
+ newOrdinalRoots.set(root.stagingOrdinal, root.rootKey)
452
+ }
453
+ for (const row of input.rows) {
418
454
  assertSourceStagedRow(materialization.projectionKind, row)
419
455
 
420
456
  const rootKey = projectionEntityKey(row.root)
@@ -458,7 +494,21 @@ function stageRowsAtomically(
458
494
  for (const [ordinal, rootKey] of newOrdinalRoots) {
459
495
  materialization.ordinalRoots.set(ordinal, rootKey)
460
496
  }
461
- for (const [entityKey, row] of newRows) materialization.rowsByEntity.set(entityKey, row)
497
+ for (const root of roots) {
498
+ if (!materialization.roots.has(root.rootKey))
499
+ materialization.roots.set(root.rootKey, {
500
+ root: structuredClone(root.root),
501
+ stagingOrdinal: root.stagingOrdinal,
502
+ deleted: root.deleted,
503
+ entityKeys: new Set(),
504
+ active: false,
505
+ retiredAt: null,
506
+ })
507
+ }
508
+ for (const [entityKey, row] of newRows) {
509
+ materialization.rowsByEntity.set(entityKey, row)
510
+ materialization.roots.get(projectionEntityKey(row.root))!.entityKeys.add(entityKey)
511
+ }
462
512
  return { inserted, unchanged }
463
513
  }
464
514
 
@@ -497,6 +547,11 @@ function assertReadyTopology(materialization: InMemorySourceMaterialization): vo
497
547
 
498
548
  for (const rootKey of materialization.rootOrdinals.keys()) {
499
549
  const rows = rowsByRoot.get(rootKey) ?? []
550
+ if (materialization.roots.get(rootKey)?.deleted) {
551
+ if (rows.length > 0)
552
+ throw new MaterializationValidationError("Deleted source roots cannot contain assertions.")
553
+ continue
554
+ }
500
555
  const first = rows[0]
501
556
  if (!first) {
502
557
  throw new MaterializationValidationError(`Source root ${rootKey} has no staged assertions.`)
@@ -109,6 +109,7 @@ export type {
109
109
  OntologySourceStorage,
110
110
  ReclaimSourceMaterializationInput,
111
111
  StageSourceAssertion,
112
+ StageSourceRoot,
112
113
  StageSourceRowsInput,
113
114
  StageSourceRowsResult,
114
115
  StoredSourceAssertion,