@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
@@ -164,6 +164,7 @@ function isJsonValue(value: unknown): value is import("../../json").JsonValue {
164
164
  }
165
165
 
166
166
  export interface ProviderReplacementSessionState {
167
+ readonly incremental?: boolean
167
168
  readonly sourceId: string
168
169
  readonly candidateMaterializationId: string
169
170
  readonly previousMaterializationId: string | null
@@ -654,6 +655,66 @@ export function sourceStageRow(row: StageSourceAssertion): SourceStageRow {
654
655
  }
655
656
  }
656
657
 
658
+ export interface SourceStageRoot {
659
+ readonly root: StageSourceAssertion["root"]
660
+ readonly rootKey: string
661
+ readonly sortKey: string
662
+ readonly stagingOrdinal: number
663
+ readonly deleted: boolean
664
+ }
665
+
666
+ /** Shared root identity rules, including deletions that deliberately have no assertion rows. */
667
+ export function sourceStageRoots(
668
+ projectionKind: OntologySourceRecord["projectionKind"],
669
+ input: {
670
+ readonly rows: readonly StageSourceAssertion[]
671
+ readonly deletions?: readonly {
672
+ readonly root: StageSourceAssertion["root"]
673
+ readonly stagingOrdinal: number
674
+ }[]
675
+ }
676
+ ): readonly SourceStageRoot[] {
677
+ for (const row of input.rows) assertSourceStagedRow(projectionKind, row)
678
+ const roots = new Map<string, SourceStageRoot>()
679
+ const ordinals = new Map<number, string>()
680
+ for (const [items, deleted] of [
681
+ [input.rows, false],
682
+ [input.deletions ?? [], true],
683
+ ] as const) {
684
+ for (const row of items) {
685
+ assertSourceEntity(row.root, "Source root")
686
+ if (
687
+ row.root.kind !== projectionKind ||
688
+ !Number.isSafeInteger(row.stagingOrdinal) ||
689
+ row.stagingOrdinal < 0
690
+ ) {
691
+ throw new MaterializationValidationError("Source root kind or staging ordinal is invalid.")
692
+ }
693
+ const key = projectionEntityKey(row.root)
694
+ const previous = roots.get(key)
695
+ const otherRoot = ordinals.get(row.stagingOrdinal)
696
+ if (
697
+ (previous &&
698
+ (previous.deleted !== deleted || previous.stagingOrdinal !== row.stagingOrdinal)) ||
699
+ (otherRoot !== undefined && otherRoot !== key)
700
+ ) {
701
+ throw new MaterializationValidationError(
702
+ `Source materialization repeats root or stream ordinal ${row.stagingOrdinal} with different content.`
703
+ )
704
+ }
705
+ roots.set(key, {
706
+ root: row.root,
707
+ rootKey: key,
708
+ sortKey: utf8SortKey(key),
709
+ stagingOrdinal: row.stagingOrdinal,
710
+ deleted,
711
+ })
712
+ ordinals.set(row.stagingOrdinal, key)
713
+ }
714
+ }
715
+ return [...roots.values()]
716
+ }
717
+
657
718
  export function reconcileSourceStageRows(
658
719
  rows: readonly SourceStageRow[],
659
720
  existingRows: readonly SourceStageRow[]
@@ -732,6 +793,13 @@ export function assertSourceBeginInput(input: BeginSourceMaterializationInput):
732
793
  assertNonblank(input.datasetVersion.versionId, "Source dataset version id")
733
794
  assertTimestamp(input.datasetVersion.createdAt, "Source dataset version createdAt", true)
734
795
  assertTimestamp(input.createdAt, "Source createdAt", true)
796
+ if (input.base) {
797
+ assertNonblank(input.base.materializationId, "Source base materialization id")
798
+ assertNonblank(input.base.lastCommitId, "Source base commit id")
799
+ if (input.base.materializationId === input.materializationId) {
800
+ throw new MaterializationValidationError("A source candidate cannot be its own base.")
801
+ }
802
+ }
735
803
  }
736
804
 
737
805
  export function assertSourceWriteIdentity(input: {
@@ -863,6 +931,8 @@ export function isExactStagingManifest(
863
931
  row.datasetVersion.createdAt === input.datasetVersion.createdAt &&
864
932
  row.projectionRevision === input.projectionRevision &&
865
933
  row.ownershipHash === input.ownershipHash &&
934
+ row.base?.materializationId === input.base?.materializationId &&
935
+ row.base?.lastCommitId === input.base?.lastCommitId &&
866
936
  row.ontologyRevision === input.ontologyRevision
867
937
  )
868
938
  }
@@ -3,6 +3,7 @@ import type {
3
3
  ProjectionEntityRef,
4
4
  ProjectionExecution,
5
5
  ProjectionSourceAssertion,
6
+ ProjectionSourceBase,
6
7
  ProjectionSourceRef,
7
8
  } from "../../materialization/model"
8
9
 
@@ -32,7 +33,8 @@ export interface OntologySourceRecord {
32
33
  readonly projectionRevision: string
33
34
  readonly ownershipHash: string
34
35
  readonly ontologyRevision: string
35
- /** Null until staging is sealed by markReady; zero explicitly represents an empty output. */
36
+ readonly base?: ProjectionSourceBase
37
+ /** Staged roots, including explicit deletions for a delta; null until sealed by markReady. */
36
38
  readonly rootCount: number | null
37
39
  /** Null until staging is sealed by markReady; zero explicitly represents an empty output. */
38
40
  readonly assertionCount: number | null
@@ -78,6 +80,7 @@ export interface BeginSourceMaterializationInput {
78
80
  readonly projectionRevision: string
79
81
  readonly ownershipHash: string
80
82
  readonly ontologyRevision: string
83
+ readonly base?: ProjectionSourceBase
81
84
  readonly createdAt: string
82
85
  }
83
86
 
@@ -94,6 +97,13 @@ export interface StageSourceRowsInput {
94
97
  readonly materializationId: string
95
98
  readonly execution: ProjectionExecution
96
99
  readonly rows: readonly StageSourceAssertion[]
100
+ /** Explicit root removals, allowed only for a candidate with a pinned base. */
101
+ readonly deletions?: readonly StageSourceRoot[]
102
+ }
103
+
104
+ export interface StageSourceRoot {
105
+ readonly root: ProjectionEntityRef
106
+ readonly stagingOrdinal: number
97
107
  }
98
108
 
99
109
  export interface StageSourceRowsResult {
@@ -139,13 +149,14 @@ export type AbandonSourceMaterializationInput =
139
149
 
140
150
  export interface CleanupTerminalSourceMaterializationsInput {
141
151
  readonly projectId: string
142
- /** Exclusive cutoff applied only to superseded/abandoned terminalAt. */
152
+ /** Exclusive cutoff for retired roots in terminal manifests, and for empty terminal manifests. */
143
153
  readonly terminalBefore: string
144
- /** Maximum total child-row plus manifest deletions performed by one call. */
154
+ /** Maximum total assertion, root-reference, and manifest deletions performed by one call. */
145
155
  readonly limit: number
146
156
  }
147
157
 
148
158
  export interface CleanupTerminalSourceMaterializationsResult {
159
+ /** Assertion rows and root references deleted. */
149
160
  readonly rowsDeleted: number
150
161
  readonly materializationsDeleted: number
151
162
  }
@@ -287,7 +287,7 @@ export function mergeProjectionRunProgress(
287
287
  const value = patch[key]
288
288
  if (value === undefined) continue
289
289
  assertProjectionRunCounter(value, key)
290
- if (value < current[key]) {
290
+ if (value < (current[key] ?? 0)) {
291
291
  throw new ProjectionRunError(`[Sixb] Projection run ${key} must not decrease.`)
292
292
  }
293
293
  progress[key] = value
@@ -706,7 +706,10 @@ function projectionTargetsEqual(left: ProjectionTarget, right: ProjectionTarget)
706
706
 
707
707
  function assertProjectionRunProgress(progress: ProjectionRunProgress): void {
708
708
  for (const key of PROJECTION_RUN_PROGRESS_KEYS) {
709
- assertProjectionRunCounter(progress[key], key)
709
+ assertProjectionRunCounter(
710
+ key === "sourceChangesRead" ? (progress[key] ?? 0) : progress[key],
711
+ key
712
+ )
710
713
  }
711
714
  if (progress.sourceRowsSkipped > progress.sourceRowsRead) {
712
715
  throw new ProjectionRunError(
@@ -23,11 +23,14 @@ export interface ProjectionRunProgress {
23
23
  readonly sourceRowsRead: number
24
24
  /** Physical rows intentionally skipped because a required mapped value was blank. */
25
25
  readonly sourceRowsSkipped: number
26
+ /** Maximum complete change records consumed by one incremental attempt; not a recovery cursor. */
27
+ readonly sourceChangesRead?: number
26
28
  }
27
29
 
28
30
  const progressKeyFlags: Record<keyof ProjectionRunProgress, true> = {
29
31
  sourceRowsRead: true,
30
32
  sourceRowsSkipped: true,
33
+ sourceChangesRead: true,
31
34
  }
32
35
 
33
36
  export const PROJECTION_RUN_PROGRESS_KEYS = Object.keys(
@@ -35,9 +38,7 @@ export const PROJECTION_RUN_PROGRESS_KEYS = Object.keys(
35
38
  ) as readonly (keyof ProjectionRunProgress)[]
36
39
 
37
40
  export function zeroProjectionRunProgress(): ProjectionRunProgress {
38
- const progress = {} as Record<keyof ProjectionRunProgress, number>
39
- for (const key of PROJECTION_RUN_PROGRESS_KEYS) progress[key] = 0
40
- return progress
41
+ return { sourceRowsRead: 0, sourceRowsSkipped: 0 }
41
42
  }
42
43
 
43
44
  export interface ProjectionTelemetryCheckpoint {
@@ -1,4 +1,3 @@
1
- import { normalizeRequesterGroupIds } from "../../auth/attribution"
2
1
  import { parseSixbFailure } from "../../errors/internal"
3
2
  import type { SixbFailure } from "../../errors/types"
4
3
  import type { AgentRunFailureCode } from "../agents"
@@ -143,7 +142,6 @@ export class InMemoryWorkflowRunStorage implements WorkflowRunStorage {
143
142
  queuedAt,
144
143
  startedAt: queuedAt,
145
144
  attempt: 0,
146
- requesterGroupIds: normalizeRequesterGroupIds(input.requesterGroupIds),
147
145
  }
148
146
 
149
147
  this.runs.set(key, cloneRecord(record))
@@ -144,8 +144,6 @@ export interface WorkflowRunRecord {
144
144
  readonly startedAt: Date
145
145
  readonly finishedAt?: Date
146
146
  readonly error?: SixbFailure<WorkflowRunFailureCode>
147
- /** Durable group memberships snapshotted when the workflow run was admitted. */
148
- readonly requesterGroupIds: readonly string[]
149
147
  readonly attempt: number
150
148
  readonly execution?: WorkflowRunExecution
151
149
  }
@@ -181,7 +179,6 @@ export interface QueueWorkflowRunInput {
181
179
  readonly workflowId: string
182
180
  readonly input: WorkflowIOSnapshot
183
181
  readonly queuedAt?: Date
184
- readonly requesterGroupIds: readonly string[]
185
182
  }
186
183
 
187
184
  export interface ReclaimWorkflowRunInput {
@@ -93,7 +93,10 @@ export class SyncRunDispatcher implements SyncRunDispatchPort {
93
93
  /** Persist a Sync execution and queued run before publishing its queue job. */
94
94
  export async function dispatchSyncRun(input: DispatchSyncRunInput): Promise<SyncRunRequestResult> {
95
95
  const runId = createSyncRunId(input.runId)
96
- const persisted = await persistSyncRun(input, runId)
96
+ let persisted = await persistSyncRun(input, runId)
97
+ if (!persisted.publish && input.validateExistingRun && persisted.run.status === "queued") {
98
+ persisted = await reuseSyncRun(input, persisted.run)
99
+ }
97
100
  if (!persisted.publish) return existingSyncRunResult(persisted.run)
98
101
  return publishSyncRun(input, persisted)
99
102
  }
@@ -151,6 +154,15 @@ async function reuseSyncRun(
151
154
  ): Promise<PersistedSyncRun> {
152
155
  assertExistingRunMatchesRequest(existing, input)
153
156
  await input.validateExistingRun?.(existing, input.storage)
157
+ if (input.validateExistingRun && existing.status === "queued") {
158
+ const execution = await input.storage.executions.getById({
159
+ projectId: input.projectId,
160
+ id: existing.executionId,
161
+ })
162
+ if (!execution)
163
+ throw new SyncRunError(`[Sixb] Execution '${existing.executionId}' was not found.`)
164
+ return { publish: true, run: existing, execution, queuedAt: existing.queuedAt, created: false }
165
+ }
154
166
  if (
155
167
  existing.status !== "failed" ||
156
168
  existing.error?.code !== "queue.enqueue_failed" ||
@@ -200,6 +212,9 @@ async function publishSyncRun(
200
212
  },
201
213
  ],
202
214
  })
215
+ if (!job || job.id !== persisted.run.id) {
216
+ throw new SyncRunError(`[Sixb] Queue did not acknowledge Sync run '${persisted.run.id}'.`)
217
+ }
203
218
  return {
204
219
  syncId: persisted.run.syncId,
205
220
  runId: persisted.run.id,
@@ -208,6 +223,9 @@ async function publishSyncRun(
208
223
  created: persisted.created,
209
224
  }
210
225
  } catch (error) {
226
+ // Automatic consumers retain the batch and retry. Keep uncertain delivery queued:
227
+ // a lost reply does not prove that the queue rejected the job.
228
+ if (input.validateExistingRun) throw error
211
229
  const failedAt = new Date()
212
230
  const failure = toEnqueueFailure(error, persisted.run, failedAt)
213
231
  const failed = await requireSyncRunStorage(input.storage).finish({
@@ -10,6 +10,7 @@ export async function createTestActionExecution(
10
10
  readonly actionId: string
11
11
  readonly runId: string
12
12
  readonly executionId?: string
13
+ readonly requesterGroupIds?: readonly string[]
13
14
  }
14
15
  ): Promise<string> {
15
16
  const parentExecutionId = `test_request_execution:${input.runId}`
@@ -27,6 +28,7 @@ export async function createTestActionExecution(
27
28
  if (!parent) {
28
29
  await executions.create({
29
30
  id: parentExecutionId,
31
+ requesterGroupIds: input.requesterGroupIds ?? [],
30
32
  projectId: input.projectId,
31
33
  executor: { type: "request", requestId: `test_request:${input.runId}` },
32
34
  source: { type: "http", requestId: `test_request:${input.runId}` },
@@ -36,6 +38,7 @@ export async function createTestActionExecution(
36
38
  }
37
39
  await executions.create({
38
40
  id: executionId,
41
+ requesterGroupIds: input.requesterGroupIds ?? [],
39
42
  projectId: input.projectId,
40
43
  executor: { type: "primitive", kind: primitive.kind, runId: primitive.runId },
41
44
  source: { type: "execution", executionId: parentExecutionId },
@@ -49,13 +52,17 @@ export async function createTestActionExecution(
49
52
  /** Queue an Action run with the valid durable execution fixture required by every provider. */
50
53
  export async function queueTestActionRun(
51
54
  storage: Pick<Storage, "actionRuns" | "executions">,
52
- input: Omit<QueueActionRunInput, "executionId">
55
+ input: Omit<QueueActionRunInput, "executionId"> & {
56
+ readonly requesterGroupIds?: readonly string[]
57
+ }
53
58
  ): Promise<ActionRunRecord> {
54
59
  if (!storage.actionRuns) throw new Error("Action run storage is not configured for this test.")
55
60
  const executionId = await createTestActionExecution(storage.executions, {
56
61
  projectId: input.projectId,
57
62
  actionId: input.actionId,
58
63
  runId: input.id,
64
+ requesterGroupIds: input.requesterGroupIds,
59
65
  })
60
- return storage.actionRuns.queue({ ...input, executionId })
66
+ const { requesterGroupIds: _groups, ...run } = input
67
+ return storage.actionRuns.queue({ ...run, executionId })
61
68
  }
@@ -13,6 +13,7 @@ export async function createTestAgentExecution(
13
13
  readonly runId: string
14
14
  readonly executionId?: string
15
15
  readonly sourceExecutionId?: string
16
+ readonly requesterGroupIds?: readonly string[]
16
17
  /** Conversational runs inherit authority; workflow fixtures use managed authority. */
17
18
  readonly authority?: "managed" | "inherited"
18
19
  }
@@ -65,6 +66,7 @@ export async function createTestAgentExecution(
65
66
  if (!parent) {
66
67
  parent = await storage.executions.create({
67
68
  id: sourceExecutionId,
69
+ requesterGroupIds: input.requesterGroupIds ?? [],
68
70
  projectId: input.projectId,
69
71
  executor: { type: "request", requestId: `test_request:${input.runId}` },
70
72
  source: { type: "http", requestId: `test_request:${input.runId}` },
@@ -74,6 +76,7 @@ export async function createTestAgentExecution(
74
76
  }
75
77
  await storage.executions.create({
76
78
  id: executionId,
79
+ requesterGroupIds: parent.requesterGroupIds,
77
80
  projectId: input.projectId,
78
81
  executor: { type: "agent", runId: input.runId },
79
82
  source: { type: "execution", executionId: sourceExecutionId },
@@ -93,7 +93,6 @@ function runInput(overrides: Partial<TestRunInput> = {}): TestRunInput {
93
93
  triggerMessageId: "msg_user_1",
94
94
  spec: { model: { provider: "test", modelId: "large" } },
95
95
  executionId: "test_agent_execution:run_1",
96
- requesterGroupIds: ["support", "engineering", "support"],
97
96
  execution: execution("exec_1"),
98
97
  createdAt: at("2026-06-23T10:00:10.000Z"),
99
98
  ...overrides,
@@ -491,7 +490,6 @@ export function runAgentStorageContractSuite<TStorage extends AgentStorageContra
491
490
  spawnKey: "research-orders",
492
491
  status: "queued",
493
492
  attempt: 0,
494
- requesterGroupIds: ["engineering", "support"],
495
493
  spec: input.spec,
496
494
  })
497
495
  expect(child).not.toHaveProperty("threadId")
@@ -655,7 +653,6 @@ export function runAgentStorageContractSuite<TStorage extends AgentStorageContra
655
653
  const run = await createAndStartRun(storage, fixture, runInput({ id: "run_1" }))
656
654
  expect(run).toMatchObject({ status: "running", attempt: 1, threadId: "thr_1" })
657
655
  expect(run.executionId).toBe("test_agent_execution:run_1")
658
- expect(run.requesterGroupIds).toEqual(["engineering", "support"])
659
656
  expect(run.execution?.token).toBe("exec_1")
660
657
  await expect(storage.threads.getById({ projectId, id: "thr_1" })).resolves.toMatchObject({
661
658
  activeRunId: "run_1",
@@ -791,10 +788,8 @@ export function runAgentStorageContractSuite<TStorage extends AgentStorageContra
791
788
  mutableExecution.token = "mutated"
792
789
  mutableExecution.queueLeaseExpiresAt.setTime(0)
793
790
  }
794
- ;(run.requesterGroupIds as string[]).push("mutated")
795
791
  const reread = await storage.runs.getById({ projectId, id: "run_1" })
796
792
  expect(reread?.execution?.token).toBe("exec_1")
797
- expect(reread?.requesterGroupIds).toEqual(["engineering", "support"])
798
793
  })
799
794
  })
800
795
 
@@ -22,6 +22,80 @@ export function runAiModelCallGroupsContractSuite<T extends AiModelCallGroupsCon
22
22
  options: AiStorageContractSuiteOptions<T>
23
23
  ): void {
24
24
  describe(name, () => {
25
+ test("attributes direct calls and retries to requests, actions, and workflows", async () => {
26
+ // Removal proof: return undefined from directModelCallAttribution and run this suite.
27
+ const storage = await options.createStorage()
28
+ try {
29
+ await options.setup?.(storage)
30
+ const expected = [
31
+ { kind: "request", requestId: "request" },
32
+ { kind: "action", actionId: "summarize", actionRunId: "action" },
33
+ { kind: "workflow", workflowId: "summarize", workflowRunId: "workflow" },
34
+ ] as const
35
+ for (const attribution of expected) {
36
+ const kind = attribution.kind
37
+ const primitive = {
38
+ kind: kind === "action" ? ("action" as const) : ("workflow" as const),
39
+ id: "summarize",
40
+ runId: kind,
41
+ }
42
+ const execution = await storage.executions.create({
43
+ projectId,
44
+ id: kind,
45
+ executor:
46
+ kind === "request"
47
+ ? { type: "request", requestId: kind }
48
+ : { type: "primitive", kind, runId: kind },
49
+ source:
50
+ kind === "request"
51
+ ? { type: "http", requestId: kind }
52
+ : { type: "event", eventId: kind },
53
+ correlationId: kind,
54
+ authorizationRef:
55
+ kind === "request" ? { type: "disabled" } : { type: "trustedPrimitive", primitive },
56
+ })
57
+ for (const attempt of [1, 2]) {
58
+ await storage.aiUsage.recordModelCall({
59
+ projectId,
60
+ id: `${kind}:${attempt}`,
61
+ executionId: execution.id,
62
+ attempt,
63
+ callId: `${kind}:${attempt}`,
64
+ requesterGroupIds: execution.requesterGroupIds,
65
+ providerId: "test",
66
+ requestedModelId: "small",
67
+ responseId: `${kind}:${attempt}`,
68
+ usage: { inputTokens: 2, outputTokens: 3 },
69
+ occurredAt: new Date("2026-09-01T12:00:00Z"),
70
+ })
71
+ }
72
+ const calls = await storage.aiCosts.listModelCalls({
73
+ ...range,
74
+ executionId: execution.id,
75
+ })
76
+ expect(calls.total).toBe(2)
77
+ expect(calls.items.map((call) => call.attribution)).toEqual([attribution, attribution])
78
+ }
79
+ const groups = await storage.aiCosts.listModelCallGroups(range)
80
+ expect(groups.total).toBe(3)
81
+ for (const attribution of expected) {
82
+ const group = groups.items.find((item) => item.executionId === attribution.kind)
83
+ expect(group).toMatchObject({
84
+ attribution,
85
+ modelCallCount: 2,
86
+ totalTokens: 10,
87
+ executions: [{ attribution, modelCallCount: 2 }],
88
+ })
89
+ }
90
+ const overview = await storage.aiCosts.queryProjectOverview({ ...range, bucket: "day" })
91
+ expect(overview.totals.modelCallCount).toBe(6)
92
+ expect(overview.agents).toEqual([])
93
+ expect(overview.workflows).toMatchObject([{ workflowId: "summarize", modelCallCount: 2 }])
94
+ } finally {
95
+ await options.cleanup?.(storage)
96
+ }
97
+ })
98
+
25
99
  test("attributes workflow usage to step references and keeps same-named steps separate", async () => {
26
100
  const storage = await options.createStorage()
27
101
  try {
@@ -195,7 +269,6 @@ async function seedWorkflowCall(
195
269
  workflowId,
196
270
  executionId: sourceExecutionId,
197
271
  input: {},
198
- requesterGroupIds: [],
199
272
  })
200
273
  await storage.workflowRuns.start({ projectId, id: runId })
201
274
  const nodeRunId = `${runId}:node:0`
@@ -275,7 +348,6 @@ async function seed(storage: AiModelCallGroupsContractStorage) {
275
348
  threadId: "thread",
276
349
  triggerMessageId: `message_${runId}`,
277
350
  spec: { model: { provider: "parent-provider", modelId: "large" } },
278
- requesterGroupIds: [],
279
351
  })
280
352
  await storage.agents.runs.start({
281
353
  id: runId,
@@ -446,6 +446,101 @@ export function runBrokerContractSuite<TBroker extends Broker>(
446
446
  })
447
447
 
448
448
  describe("subscribe", () => {
449
+ // Removing awaited provider delivery makes the second callback enter before release.
450
+ test("awaits async handlers without blocking publishers or other subscribers", async () => {
451
+ await withBroker(async (broker) => {
452
+ await broker.ensureStream({ projectId: "project-a", stream: eventsStream })
453
+ let release!: () => void
454
+ const blocked = new Promise<void>((resolve) => {
455
+ release = resolve
456
+ })
457
+ const received: string[] = []
458
+ const observer: string[] = []
459
+ const unsubscribe = await broker.subscribe(
460
+ { projectId: "project-a", streamId: eventsStream.id },
461
+ async (records) => {
462
+ received.push(...records.map((record) => String(record.payload)))
463
+ await blocked
464
+ }
465
+ )
466
+ const observe = await broker.subscribe(
467
+ { projectId: "project-a", streamId: eventsStream.id },
468
+ (records) => {
469
+ observer.push(...records.map((record) => String(record.payload)))
470
+ }
471
+ )
472
+ const wait = (predicate: () => boolean) =>
473
+ waitUntil(predicate, {
474
+ timeoutMs: subscriptionDeliveryTimeoutMs,
475
+ intervalMs: subscriptionPollIntervalMs,
476
+ message: "Async broker subscription did not progress",
477
+ })
478
+ try {
479
+ if (subscriptionSetupMs > 0) await Bun.sleep(subscriptionSetupMs)
480
+ await broker.append({
481
+ projectId: "project-a",
482
+ streamId: eventsStream.id,
483
+ records: [{ payload: "one" }],
484
+ })
485
+ await wait(() => received.length === 1)
486
+ await broker.append({
487
+ projectId: "project-a",
488
+ streamId: eventsStream.id,
489
+ records: [{ payload: "two" }],
490
+ })
491
+ await wait(() => observer.length === 2)
492
+ await Bun.sleep(30)
493
+ expect(received).toEqual(["one"])
494
+ release()
495
+ await wait(() => received.length === 2)
496
+ expect(received).toEqual(["one", "two"])
497
+ } finally {
498
+ release()
499
+ unsubscribe()
500
+ observe()
501
+ }
502
+ })
503
+ })
504
+
505
+ test("isolates rejected async handlers and permits appending from a handler", async () => {
506
+ await withBroker(async (broker) => {
507
+ await broker.ensureStream({ projectId: "project-a", stream: eventsStream })
508
+ const received: string[] = []
509
+ const unsubscribe = await broker.subscribe(
510
+ { projectId: "project-a", streamId: eventsStream.id },
511
+ async (records) => {
512
+ for (const record of records) {
513
+ received.push(String(record.payload))
514
+ if (record.payload === "one") {
515
+ await broker.append({
516
+ projectId: "project-a",
517
+ streamId: eventsStream.id,
518
+ records: [{ payload: "two" }],
519
+ })
520
+ throw new Error("observer failure")
521
+ }
522
+ }
523
+ }
524
+ )
525
+ try {
526
+ if (subscriptionSetupMs > 0) await Bun.sleep(subscriptionSetupMs)
527
+ await broker.append({
528
+ projectId: "project-a",
529
+ streamId: eventsStream.id,
530
+ records: [{ payload: "one" }],
531
+ })
532
+ await waitUntil(() => received.length === 2, {
533
+ timeoutMs: subscriptionDeliveryTimeoutMs,
534
+ intervalMs: subscriptionPollIntervalMs,
535
+ message: "Rejected async observer blocked later delivery",
536
+ })
537
+ expect(received).toEqual(["one", "two"])
538
+ } finally {
539
+ unsubscribe()
540
+ }
541
+ })
542
+ })
543
+
449
544
  test("requires streams to be ensured before subscribing", async () => {
450
545
  await withBroker(async (broker) => {
451
546
  await expect(
@@ -90,6 +90,22 @@ export function runConnectorConnectionStorageContractSuite<
90
90
  })
91
91
  })
92
92
 
93
+ test("persists explicitly non-PKCE attempts without a verifier", async () => {
94
+ // Removal proof: restore required code_verifier storage or omit migration 038; SQL providers fail.
95
+ await withStorage(async (storage) => {
96
+ const { codeVerifier: _verifier, ...input } = authorizationAttempt()
97
+ const created = await storage.createAuthorizationAttempt(input)
98
+ expect(created).not.toHaveProperty("codeVerifier")
99
+ const consumed = await storage.consumeAuthorizationAttempt(
100
+ authorizationAttemptConsumption()
101
+ )
102
+ expect(consumed).not.toHaveProperty("codeVerifier")
103
+ await expect(
104
+ storage.consumeAuthorizationAttempt(authorizationAttemptConsumption())
105
+ ).rejects.toThrow("invalid, expired, or already used")
106
+ })
107
+ })
108
+
93
109
  test("expires authorization attempts from the authoritative storage clock", async () => {
94
110
  await withStorage(async (storage, root) => {
95
111
  const ttlMs = 60_000
@@ -110,12 +126,13 @@ export function runConnectorConnectionStorageContractSuite<
110
126
  test("returns detached authorization attempt records", async () => {
111
127
  await withStorage(async (storage) => {
112
128
  const created = await storage.createAuthorizationAttempt(authorizationAttempt())
129
+ if (!created.codeVerifier) throw new Error("Expected a stored PKCE verifier.")
113
130
  Object.assign(created.codeVerifier, { ciphertext: "mutated" })
114
131
 
115
132
  const consumed = await storage.consumeAuthorizationAttempt(
116
133
  authorizationAttemptConsumption()
117
134
  )
118
- expect(consumed.codeVerifier.ciphertext).toBe(credentials.ciphertext)
135
+ expect(consumed.codeVerifier?.ciphertext).toBe(credentials.ciphertext)
119
136
  })
120
137
  })
121
138