@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
@@ -1,15 +1,13 @@
1
1
  // @bun
2
2
  import {
3
- CONNECTOR_CONNECTION_RUN_FAILURE_CODES,
4
- ConnectorConnectionStorageError
5
- } from "../../chunk-5gd7tpv6.js";
3
+ createSixbError2,
4
+ toSixbFailure2,
5
+ parseSixbFailure2
6
+ } from "../../chunk-f4w3yp4f.js";
6
7
  import {
7
- createSixbError,
8
- parseSixbFailure,
9
- toSixbFailure
10
- } from "../../chunk-2xns679x.js";
11
- import"../../chunk-n6jxh8sw.js";
12
- import"../../chunk-y64skrwp.js";
8
+ ConnectorConnectionStorageError2,
9
+ CONNECTOR_CONNECTION_RUN_FAILURE_CODES2
10
+ } from "../../chunk-2c4j899j.js";
13
11
 
14
12
  // src/storage/connector-connections/provider/shared.ts
15
13
  import { timingSafeEqual } from "crypto";
@@ -84,7 +82,7 @@ function failExpiredProcessingRun(record, now) {
84
82
  ...connectionRunBase(record, now),
85
83
  status: "failed",
86
84
  ...record.authorizationId === undefined ? {} : { authorizationId: record.authorizationId },
87
- error: toSixbFailure(createSixbError("internal.unexpected", "[Sixb] Connector callback processing did not complete before its deadline."), { allowedCodes: CONNECTOR_CONNECTION_RUN_FAILURE_CODES, at: now }),
85
+ error: toSixbFailure2(createSixbError2("internal.unexpected", "[Sixb] Connector callback processing did not complete before its deadline."), { allowedCodes: CONNECTOR_CONNECTION_RUN_FAILURE_CODES2, at: now }),
88
86
  finishedAt: new Date(now)
89
87
  };
90
88
  }
@@ -101,7 +99,7 @@ function markAuthorizationRevocationPending(authorization, now) {
101
99
  return authorization;
102
100
  }
103
101
  if (authorization.credentialMutation) {
104
- throw new ConnectorConnectionStorageError("authorization_conflict", "[Sixb] Connector authorization cannot begin revocation while credentials are being mutated.");
102
+ throw new ConnectorConnectionStorageError2("authorization_conflict", "[Sixb] Connector authorization cannot begin revocation while credentials are being mutated.");
105
103
  }
106
104
  return {
107
105
  ...authorization,
@@ -114,10 +112,10 @@ function markAuthorizationRevocationPending(authorization, now) {
114
112
  function assertConnectionCanMove(authorization, removingLastConnection = true) {
115
113
  const mutation = authorization.credentialMutation;
116
114
  if (mutation?.kind === "reauthorization") {
117
- throw new ConnectorConnectionStorageError("authorization_conflict", "[Sixb] Connections cannot change while their connector authorization is being reauthorized.");
115
+ throw new ConnectorConnectionStorageError2("authorization_conflict", "[Sixb] Connections cannot change while their connector authorization is being reauthorized.");
118
116
  }
119
117
  if (removingLastConnection && mutation) {
120
- throw new ConnectorConnectionStorageError("authorization_conflict", "[Sixb] The last connector connection cannot be removed while credentials are being mutated.");
118
+ throw new ConnectorConnectionStorageError2("authorization_conflict", "[Sixb] The last connector connection cannot be removed while credentials are being mutated.");
121
119
  }
122
120
  }
123
121
  function safeEqual(left, right) {
@@ -126,7 +124,7 @@ function safeEqual(left, right) {
126
124
  return leftBytes.length === rightBytes.length && timingSafeEqual(leftBytes, rightBytes);
127
125
  }
128
126
  function invalidRun() {
129
- return new ConnectorConnectionStorageError("run_invalid", "[Sixb] Connector connection run is invalid, expired, or already used.");
127
+ return new ConnectorConnectionStorageError2("run_invalid", "[Sixb] Connector connection run is invalid, expired, or already used.");
130
128
  }
131
129
  function sameIds(left, right) {
132
130
  const leftSorted = [...left].sort();
@@ -134,14 +132,14 @@ function sameIds(left, right) {
134
132
  return leftSorted.length === rightSorted.length && leftSorted.every((value, index) => value === rightSorted[index]);
135
133
  }
136
134
  function invalidAttempt() {
137
- return new ConnectorConnectionStorageError("attempt_invalid", "[Sixb] Connector authorization attempt is invalid, expired, or already used.");
135
+ return new ConnectorConnectionStorageError2("attempt_invalid", "[Sixb] Connector authorization attempt is invalid, expired, or already used.");
138
136
  }
139
137
  function authorizationConflict() {
140
- return new ConnectorConnectionStorageError("authorization_conflict", "[Sixb] Connector connection requires a selectable authorization from the same project and connector.");
138
+ return new ConnectorConnectionStorageError2("authorization_conflict", "[Sixb] Connector connection requires a selectable authorization from the same project and connector.");
141
139
  }
142
140
  function assertPositiveDuration(value, name) {
143
141
  if (!Number.isFinite(value) || value <= 0) {
144
- throw new ConnectorConnectionStorageError("invalid_input", `[Sixb] Connector ${name} must be positive.`);
142
+ throw new ConnectorConnectionStorageError2("invalid_input", `[Sixb] Connector ${name} must be positive.`);
145
143
  }
146
144
  }
147
145
  function canClaimMutation(status, kind) {
@@ -494,7 +492,7 @@ class DurableConnectorAuthorizations extends ConnectorConnectionOperations {
494
492
  }
495
493
  }
496
494
  function authorizationConflict2(message) {
497
- return new ConnectorConnectionStorageError("authorization_conflict", message);
495
+ return new ConnectorConnectionStorageError2("authorization_conflict", message);
498
496
  }
499
497
 
500
498
  // src/storage/connector-connections/provider/connections.ts
@@ -570,7 +568,7 @@ class DurableConnectorConnections extends ConnectorConnectionOperations {
570
568
  return null;
571
569
  const authorization = await persistence.getAuthorization(connection.authorizationId);
572
570
  if (!authorization) {
573
- throw new ConnectorConnectionStorageError("authorization_conflict", "[Sixb] Connector connection references an unavailable authorization.");
571
+ throw new ConnectorConnectionStorageError2("authorization_conflict", "[Sixb] Connector connection references an unavailable authorization.");
574
572
  }
575
573
  if (connection.status === "disconnected") {
576
574
  return {
@@ -615,23 +613,23 @@ class DurableConnectorConnections extends ConnectorConnectionOperations {
615
613
  }
616
614
  const account = authorization.accounts.find((candidate) => candidate.id === input.account.id);
617
615
  if (!account) {
618
- throw new ConnectorConnectionStorageError("authorization_conflict", "[Sixb] Connector connection account is not exposed by its authorization.");
616
+ throw new ConnectorConnectionStorageError2("authorization_conflict", "[Sixb] Connector connection account is not exposed by its authorization.");
619
617
  }
620
618
  const existing = await persistence.getConnectionBySelector(input);
621
619
  const sameAccount = existing?.account.id === account.id;
622
620
  if (existing && !sameAccount && !input.replace) {
623
- throw new ConnectorConnectionStorageError("connection_conflict", `[Sixb] Connector slot '${input.slot}' is already connected to another account; explicit replacement is required.`);
621
+ throw new ConnectorConnectionStorageError2("connection_conflict", `[Sixb] Connector slot '${input.slot}' is already connected to another account; explicit replacement is required.`);
624
622
  }
625
623
  if (!existing && await persistence.getConnectionById(input.id)) {
626
- throw new ConnectorConnectionStorageError("connection_conflict", "[Sixb] Connector connection id already exists.");
624
+ throw new ConnectorConnectionStorageError2("connection_conflict", "[Sixb] Connector connection id already exists.");
627
625
  }
628
626
  let revocationPendingAuthorizationId;
629
627
  if (existing?.status === "connected" && existing.authorizationId !== authorization.id) {
630
628
  const previous = await persistence.getAuthorization(existing.authorizationId);
631
629
  if (!previous) {
632
- throw new ConnectorConnectionStorageError("authorization_conflict", "[Sixb] Existing connector connection references an unavailable authorization.");
630
+ throw new ConnectorConnectionStorageError2("authorization_conflict", "[Sixb] Existing connector connection references an unavailable authorization.");
633
631
  }
634
- const remaining = (await persistence.listConnectionsByAuthorization(previous.id, { connectedOnly: true })).filter((connection2) => connection2.id !== existing.id);
632
+ const remaining = (await persistence.listConnectionsByAuthorization(previous.id, { connectedOnly: true })).filter((connection) => connection.id !== existing.id);
635
633
  assertConnectionCanMove(previous, remaining.length === 0);
636
634
  if (remaining.length === 0) {
637
635
  await persistence.updateAuthorization(markAuthorizationRevocationPending(previous, now));
@@ -674,7 +672,7 @@ class DurableConnectorConnections extends ConnectorConnectionOperations {
674
672
  if (existing) {
675
673
  await persistence.updateConnection(connection);
676
674
  } else if (!await persistence.insertConnection(connection)) {
677
- throw new ConnectorConnectionStorageError("connection_conflict", "[Sixb] Connector connection id already exists.");
675
+ throw new ConnectorConnectionStorageError2("connection_conflict", "[Sixb] Connector connection id already exists.");
678
676
  }
679
677
  return {
680
678
  connection: structuredClone(connection),
@@ -695,7 +693,7 @@ class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {
695
693
  const run = await persistence.getConnectionRun(input.connectionRunId);
696
694
  const existingAttempt = await persistence.getAuthorizationAttemptByConnectionRunId(input.connectionRunId);
697
695
  if (!run || existingAttempt || run.status !== "waiting" || run.waitingFor !== "provider_authorization" || run.slot !== input.slot || run.initiatedByExecutionId !== input.initiatedByExecutionId) {
698
- throw new ConnectorConnectionStorageError("attempt_conflict", "[Sixb] Connector authorization attempt does not match its connection run.");
696
+ throw new ConnectorConnectionStorageError2("attempt_conflict", "[Sixb] Connector authorization attempt does not match its connection run.");
699
697
  }
700
698
  }
701
699
  const now = await persistence.now();
@@ -707,7 +705,7 @@ class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {
707
705
  slot: input.slot,
708
706
  initiatedByExecutionId: input.initiatedByExecutionId,
709
707
  stateHash: input.stateHash,
710
- codeVerifier: structuredClone(input.codeVerifier),
708
+ ...input.codeVerifier === undefined ? {} : { codeVerifier: structuredClone(input.codeVerifier) },
711
709
  redirectUri: input.redirectUri,
712
710
  ...input.connectionRunId === undefined ? {} : { connectionRunId: input.connectionRunId },
713
711
  ...input.returnTo === undefined ? {} : { returnTo: input.returnTo },
@@ -719,24 +717,24 @@ class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {
719
717
  expiresAt: new Date(now.getTime() + input.ttlMs)
720
718
  };
721
719
  if (!await persistence.insertAuthorizationAttempt(record)) {
722
- throw new ConnectorConnectionStorageError("attempt_conflict", "[Sixb] Connector authorization attempt already exists.");
720
+ throw new ConnectorConnectionStorageError2("attempt_conflict", "[Sixb] Connector authorization attempt already exists.");
723
721
  }
724
722
  return structuredClone(record);
725
723
  });
726
724
  }
727
725
  async consumeAuthorizationAttempt(input) {
728
726
  const record = await this.write(input, async (persistence) => {
729
- const record2 = await persistence.getAuthorizationAttempt(input.id);
727
+ const record = await persistence.getAuthorizationAttempt(input.id);
730
728
  const now = await persistence.now();
731
- if (record2 && record2.expiresAt.getTime() <= now.getTime()) {
732
- await persistence.deleteAuthorizationAttempt(record2.id);
729
+ if (record && record.expiresAt.getTime() <= now.getTime()) {
730
+ await persistence.deleteAuthorizationAttempt(record.id);
733
731
  return null;
734
732
  }
735
- if (!record2 || record2.redirectUri !== input.redirectUri || !safeEqual(record2.stateHash, input.stateHash)) {
733
+ if (!record || record.redirectUri !== input.redirectUri || !safeEqual(record.stateHash, input.stateHash)) {
736
734
  return null;
737
735
  }
738
736
  await persistence.deleteAuthorizationAttempt(input.id);
739
- return structuredClone(record2);
737
+ return structuredClone(record);
740
738
  });
741
739
  if (!record)
742
740
  throw invalidAttempt();
@@ -761,7 +759,7 @@ class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {
761
759
  expiresAt: new Date(now.getTime() + input.ttlMs)
762
760
  };
763
761
  if (!await persistence.insertConnectionRun(record)) {
764
- throw new ConnectorConnectionStorageError("run_conflict", "[Sixb] Connector connection run already exists.");
762
+ throw new ConnectorConnectionStorageError2("run_conflict", "[Sixb] Connector connection run already exists.");
765
763
  }
766
764
  return structuredClone(record);
767
765
  });
@@ -790,7 +788,7 @@ class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {
790
788
  expiresAt: new Date(now.getTime() + input.ttlMs)
791
789
  };
792
790
  if (!await persistence.insertConnectionRun(record)) {
793
- throw new ConnectorConnectionStorageError("run_conflict", "[Sixb] Connector connection run already exists.");
791
+ throw new ConnectorConnectionStorageError2("run_conflict", "[Sixb] Connector connection run already exists.");
794
792
  }
795
793
  return structuredClone(record);
796
794
  });
@@ -893,7 +891,7 @@ class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {
893
891
  ...base,
894
892
  status: "failed",
895
893
  ...authorizationId === undefined ? {} : { authorizationId },
896
- error: parseSixbFailure(input.error, CONNECTOR_CONNECTION_RUN_FAILURE_CODES),
894
+ error: parseSixbFailure2(input.error, CONNECTOR_CONNECTION_RUN_FAILURE_CODES2),
897
895
  finishedAt: now
898
896
  } : {
899
897
  ...base,
@@ -1022,4 +1020,4 @@ export {
1022
1020
  DurableConnectorConnectionStorage
1023
1021
  };
1024
1022
 
1025
- //# debugId=5D13E1A973240FE264756E2164756E21
1023
+ //# debugId=20536B53DD385A8C64756E2164756E21
@@ -5,10 +5,10 @@
5
5
  "import { timingSafeEqual } from \"node:crypto\"\nimport { createSixbError, toSixbFailure } from \"../../../errors/internal\"\nimport { ConnectorConnectionStorageError } from \"../errors\"\nimport type {\n ClaimConnectorCredentialMutationInput,\n ConnectorAuthorizationAttemptRecord,\n ConnectorAuthorizationRecord,\n ConnectorConnectionRecord,\n ConnectorConnectionRunProcessingRecord,\n ConnectorConnectionRunRecord,\n ConnectorCredentialMutationFence,\n GetConnectorConnectionInput,\n} from \"../types\"\nimport { CONNECTOR_CONNECTION_RUN_FAILURE_CODES } from \"../types\"\n\nexport interface ConnectorConnectionPersistenceScope {\n readonly projectId: string\n /** Omitted only while resolving a callback whose public proof intentionally carries no id. */\n readonly connectorId?: string\n}\n\n/** Database-specific record access used by the shared connector lifecycle state machine. */\nexport interface ConnectorConnectionPersistence {\n now(): Promise<Date>\n\n insertAuthorizationAttempt(record: ConnectorAuthorizationAttemptRecord): Promise<boolean>\n getAuthorizationAttempt(id: string): Promise<ConnectorAuthorizationAttemptRecord | null>\n getAuthorizationAttemptByConnectionRunId(\n connectionRunId: string\n ): Promise<ConnectorAuthorizationAttemptRecord | null>\n deleteAuthorizationAttempt(id: string): Promise<boolean>\n\n insertConnectionRun(record: ConnectorConnectionRunRecord): Promise<boolean>\n getConnectionRun(id: string): Promise<ConnectorConnectionRunRecord | null>\n updateConnectionRun(record: ConnectorConnectionRunRecord): Promise<void>\n\n insertAuthorization(record: ConnectorAuthorizationRecord): Promise<boolean>\n getAuthorization(id: string): Promise<ConnectorAuthorizationRecord | null>\n updateAuthorization(record: ConnectorAuthorizationRecord): Promise<void>\n\n insertConnection(record: ConnectorConnectionRecord): Promise<boolean>\n getConnectionById(id: string): Promise<ConnectorConnectionRecord | null>\n getConnectionBySelector(\n input: Pick<GetConnectorConnectionInput, \"owner\" | \"slot\">\n ): Promise<ConnectorConnectionRecord | null>\n listConnections(): Promise<readonly ConnectorConnectionRecord[]>\n listConnectionsByAuthorization(\n authorizationId: string,\n options?: { readonly connectedOnly?: boolean }\n ): Promise<readonly ConnectorConnectionRecord[]>\n updateConnection(record: ConnectorConnectionRecord): Promise<void>\n}\n\n/** Transaction and lock boundary supplied by a concrete durable storage provider. */\nexport interface ConnectorConnectionPersistenceBackend {\n read<T>(\n scope: ConnectorConnectionPersistenceScope,\n run: (persistence: ConnectorConnectionPersistence) => Promise<T>\n ): Promise<T>\n transaction<T>(\n scope: ConnectorConnectionPersistenceScope,\n run: (persistence: ConnectorConnectionPersistence) => Promise<T>\n ): Promise<T>\n}\n\nexport abstract class ConnectorConnectionOperations {\n constructor(private readonly backend: ConnectorConnectionPersistenceBackend) {}\n\n protected read<T>(\n scope: ConnectorConnectionPersistenceScope,\n run: (persistence: ConnectorConnectionPersistence) => Promise<T>\n ): Promise<T> {\n return this.backend.read(scope, run)\n }\n\n protected write<T>(\n scope: ConnectorConnectionPersistenceScope,\n run: (persistence: ConnectorConnectionPersistence) => Promise<T>\n ): Promise<T> {\n return this.backend.transaction(scope, run)\n }\n}\n\nexport async function currentConnectionRun(\n persistence: ConnectorConnectionPersistence,\n runId: string\n): Promise<ConnectorConnectionRunRecord | null> {\n const run = await persistence.getConnectionRun(runId)\n if (!run || (run.status !== \"waiting\" && run.status !== \"running\")) return run\n\n const now = await persistence.now()\n if (run.expiresAt.getTime() > now.getTime()) return run\n\n if (run.status === \"waiting\" && run.waitingFor === \"provider_authorization\") {\n const attempt = await persistence.getAuthorizationAttemptByConnectionRunId(run.id)\n if (attempt) await persistence.deleteAuthorizationAttempt(attempt.id)\n }\n if (run.status === \"waiting\") {\n if (run.kind === \"connect\" && run.waitingFor === \"account_selection\") {\n await markPendingAuthorizationForCleanup(persistence, run.authorizationId, now)\n }\n const expired = expireConnectionRun(run, now)\n await persistence.updateConnectionRun(expired)\n return expired\n }\n\n if (run.kind === \"connect\" && run.authorizationId) {\n await markPendingAuthorizationForCleanup(persistence, run.authorizationId, now)\n }\n const failed = failExpiredProcessingRun(run, now)\n await persistence.updateConnectionRun(failed)\n return failed\n}\n\nexport async function markPendingAuthorizationForCleanup(\n persistence: ConnectorConnectionPersistence,\n authorizationId: string,\n now: Date\n): Promise<void> {\n const authorization = await persistence.getAuthorization(authorizationId)\n if (!authorization || authorization.status !== \"pending_selection\") return\n await persistence.updateAuthorization(markAuthorizationRevocationPending(authorization, now))\n}\n\nexport function connectionRunBase(record: ConnectorConnectionRunRecord, updatedAt: Date) {\n return {\n id: record.id,\n projectId: record.projectId,\n connectorId: record.connectorId,\n kind: record.kind,\n owner: structuredClone(record.owner),\n slot: record.slot,\n initiatedByExecutionId: record.initiatedByExecutionId,\n createdAt: new Date(record.createdAt),\n updatedAt: new Date(updatedAt),\n }\n}\n\nfunction expireConnectionRun(\n record: Extract<ConnectorConnectionRunRecord, { readonly status: \"waiting\" }>,\n now: Date\n) {\n return {\n ...connectionRunBase(record, now),\n status: \"expired\" as const,\n ...(record.waitingFor === \"account_selection\"\n ? { authorizationId: record.authorizationId }\n : {}),\n finishedAt: new Date(now),\n }\n}\n\nfunction failExpiredProcessingRun(record: ConnectorConnectionRunProcessingRecord, now: Date) {\n return {\n ...connectionRunBase(record, now),\n status: \"failed\" as const,\n ...(record.authorizationId === undefined ? {} : { authorizationId: record.authorizationId }),\n error: toSixbFailure(\n createSixbError(\n \"internal.unexpected\",\n \"[Sixb] Connector callback processing did not complete before its deadline.\"\n ),\n { allowedCodes: CONNECTOR_CONNECTION_RUN_FAILURE_CODES, at: now }\n ),\n finishedAt: new Date(now),\n }\n}\n\nexport function disconnectConnectionRecord(\n connection: ConnectorConnectionRecord,\n now: Date\n): ConnectorConnectionRecord {\n return {\n ...connection,\n status: \"disconnected\",\n disconnectedAt: new Date(now),\n updatedAt: new Date(now),\n }\n}\n\nexport function markAuthorizationRevocationPending(\n authorization: ConnectorAuthorizationRecord,\n now: Date\n): ConnectorAuthorizationRecord {\n if (authorization.status === \"revocation_pending\" || authorization.status === \"revoked\") {\n return authorization\n }\n if (authorization.credentialMutation) {\n throw new ConnectorConnectionStorageError(\n \"authorization_conflict\",\n \"[Sixb] Connector authorization cannot begin revocation while credentials are being mutated.\"\n )\n }\n return {\n ...authorization,\n status: \"revocation_pending\",\n selectionExpiresAt: undefined,\n revision: authorization.revision + 1,\n updatedAt: new Date(now),\n }\n}\n\nexport function assertConnectionCanMove(\n authorization: ConnectorAuthorizationRecord,\n removingLastConnection = true\n): void {\n const mutation = authorization.credentialMutation\n if (mutation?.kind === \"reauthorization\") {\n throw new ConnectorConnectionStorageError(\n \"authorization_conflict\",\n \"[Sixb] Connections cannot change while their connector authorization is being reauthorized.\"\n )\n }\n if (removingLastConnection && mutation) {\n throw new ConnectorConnectionStorageError(\n \"authorization_conflict\",\n \"[Sixb] The last connector connection cannot be removed while credentials are being mutated.\"\n )\n }\n}\n\nexport function safeEqual(left: string, right: string): boolean {\n const leftBytes = Buffer.from(left)\n const rightBytes = Buffer.from(right)\n return leftBytes.length === rightBytes.length && timingSafeEqual(leftBytes, rightBytes)\n}\n\nexport function invalidRun(): ConnectorConnectionStorageError {\n return new ConnectorConnectionStorageError(\n \"run_invalid\",\n \"[Sixb] Connector connection run is invalid, expired, or already used.\"\n )\n}\n\nexport function sameIds(left: readonly string[], right: readonly string[]): boolean {\n const leftSorted = [...left].sort()\n const rightSorted = [...right].sort()\n return (\n leftSorted.length === rightSorted.length &&\n leftSorted.every((value, index) => value === rightSorted[index])\n )\n}\n\nexport function invalidAttempt(): ConnectorConnectionStorageError {\n return new ConnectorConnectionStorageError(\n \"attempt_invalid\",\n \"[Sixb] Connector authorization attempt is invalid, expired, or already used.\"\n )\n}\n\nexport function authorizationConflict(): ConnectorConnectionStorageError {\n return new ConnectorConnectionStorageError(\n \"authorization_conflict\",\n \"[Sixb] Connector connection requires a selectable authorization from the same project and connector.\"\n )\n}\n\nexport function assertPositiveDuration(value: number, name: string): void {\n if (!Number.isFinite(value) || value <= 0) {\n throw new ConnectorConnectionStorageError(\n \"invalid_input\",\n `[Sixb] Connector ${name} must be positive.`\n )\n }\n}\n\nexport function canClaimMutation(\n status: ConnectorAuthorizationRecord[\"status\"],\n kind: ClaimConnectorCredentialMutationInput[\"mutation\"][\"kind\"]\n): boolean {\n if (kind === \"refresh\") return status === \"active\"\n if (kind === \"reauthorization\") {\n return status === \"active\" || status === \"needs_reauthorization\"\n }\n return status !== \"revoked\"\n}\n\nexport function isSelectable(status: ConnectorAuthorizationRecord[\"status\"]): boolean {\n return status === \"pending_selection\" || status === \"active\"\n}\n\nexport function leaseExpiry(now: Date, durationMs: number, deadlineAt: Date): Date {\n return new Date(Math.min(now.getTime() + durationMs, deadlineAt.getTime()))\n}\n\nexport function mutationExpired(record: ConnectorAuthorizationRecord, now: Date): boolean {\n return (\n record.credentialMutation!.expiresAt.getTime() <= now.getTime() ||\n record.credentialMutation!.deadlineAt.getTime() <= now.getTime()\n )\n}\n\nexport function matchesMutation(\n record: ConnectorAuthorizationRecord | null,\n input: ConnectorCredentialMutationFence,\n holderId?: string\n): record is ConnectorAuthorizationRecord & {\n readonly credentialMutation: NonNullable<ConnectorAuthorizationRecord[\"credentialMutation\"]>\n} {\n return (\n record !== null &&\n record.revision === input.expectedRevision &&\n record.credentialMutation?.id === input.mutationId &&\n (holderId === undefined || record.credentialMutation.holderId === holderId)\n )\n}\n\nexport function stagedCredentials(\n record: ConnectorAuthorizationRecord | null,\n input: ConnectorCredentialMutationFence,\n kind: \"refresh\" | \"reauthorization\"\n) {\n if (\n !matchesMutation(record, input) ||\n record.credentialMutation.kind !== kind ||\n record.credentialMutation.phase !== \"result_staged\"\n ) {\n return null\n }\n return record.credentialMutation.stagedCredentials ?? null\n}\n\nexport function applyStagedCredentials(\n record: ConnectorAuthorizationRecord,\n staged: NonNullable<ReturnType<typeof stagedCredentials>>,\n now: Date,\n input: { readonly accounts: readonly ConnectorAuthorizationRecord[\"accounts\"][number][] }\n): ConnectorAuthorizationRecord {\n return {\n ...record,\n credentials: structuredClone(staged.credentials),\n credentialExpiresAt:\n staged.credentialExpiresAt === undefined ? undefined : new Date(staged.credentialExpiresAt),\n scopes: [...staged.scopes],\n accounts: structuredClone(input.accounts),\n status: \"active\",\n selectionExpiresAt: undefined,\n revision: record.revision + 1,\n credentialMutation: undefined,\n updatedAt: now,\n }\n}\n",
6
6
  "import { ConnectorConnectionStorageError } from \"../errors\"\nimport type {\n ClaimConnectorCredentialMutationInput,\n ClaimConnectorCredentialMutationResult,\n ConnectorAuthorizationKey,\n ConnectorAuthorizationRecord,\n ConnectorConnectionKey,\n ConnectorConnectionRecord,\n ConnectorCredentialMutationFence,\n CreateConnectorAuthorizationInput,\n FinalizeConnectorReauthorizationInput,\n InitializeConnectorAuthorizationAccountsInput,\n MarkConnectorAuthorizationNeedsReauthorizationInput,\n MarkConnectorCredentialMutationExecutingInput,\n RecoverExpiredConnectorCredentialMutationInput,\n ReleaseConnectorCredentialMutationInput,\n RenewConnectorCredentialMutationInput,\n StageConnectorCredentialMutationCredentialsInput,\n StageConnectorCredentialMutationRevocationInput,\n} from \"../types\"\nimport {\n applyStagedCredentials,\n assertPositiveDuration,\n ConnectorConnectionOperations,\n canClaimMutation,\n disconnectConnectionRecord,\n leaseExpiry,\n matchesMutation,\n mutationExpired,\n sameIds,\n stagedCredentials,\n} from \"./shared\"\n\nexport class DurableConnectorAuthorizations extends ConnectorConnectionOperations {\n createAuthorization(\n input: CreateConnectorAuthorizationInput\n ): Promise<ConnectorAuthorizationRecord> {\n assertPositiveDuration(input.selectionTtlMs, \"account selection TTL\")\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record: ConnectorAuthorizationRecord = {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n authorizedBy: structuredClone(input.authorizedBy),\n credentials: structuredClone(input.credentials),\n ...(input.credentialExpiresAt === undefined\n ? {}\n : { credentialExpiresAt: new Date(input.credentialExpiresAt) }),\n scopes: [...input.scopes],\n accounts: structuredClone(input.accounts),\n status: \"pending_selection\",\n selectionExpiresAt: new Date(now.getTime() + input.selectionTtlMs),\n revision: 0,\n createdAt: now,\n updatedAt: now,\n }\n if (!(await persistence.insertAuthorization(record))) {\n throw authorizationConflict(\"[Sixb] Connector authorization already exists.\")\n }\n return structuredClone(record)\n })\n }\n\n initializeAuthorizationAccounts(\n input: InitializeConnectorAuthorizationAccountsInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !record ||\n record.revision !== input.expectedRevision ||\n record.status !== \"pending_selection\" ||\n record.credentialMutation\n ) {\n return null\n }\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n accounts: structuredClone(input.accounts),\n revision: record.revision + 1,\n updatedAt: await persistence.now(),\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n getAuthorization(input: ConnectorAuthorizationKey): Promise<ConnectorAuthorizationRecord | null> {\n return this.read(input, async (persistence) => {\n const authorization = await persistence.getAuthorization(input.authorizationId)\n return authorization ? structuredClone(authorization) : null\n })\n }\n\n getAuthorizationByConnectionId(\n input: ConnectorConnectionKey\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.read(input, async (persistence) => {\n const connection = await persistence.getConnectionById(input.connectionId)\n if (!connection) return null\n const authorization = await persistence.getAuthorization(connection.authorizationId)\n return authorization ? structuredClone(authorization) : null\n })\n }\n\n claimCredentialMutation(\n input: ClaimConnectorCredentialMutationInput\n ): Promise<ClaimConnectorCredentialMutationResult | null> {\n assertPositiveDuration(input.leaseDurationMs, \"credential mutation lease duration\")\n assertPositiveDuration(input.operationTimeoutMs, \"credential mutation timeout\")\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !record ||\n record.revision !== input.expectedRevision ||\n !canClaimMutation(record.status, input.mutation.kind)\n ) {\n return null\n }\n\n if (record.credentialMutation) {\n const canReplacePrepared =\n record.credentialMutation.phase === \"prepared\" &&\n record.credentialMutation.expiresAt.getTime() <= now.getTime()\n if (!canReplacePrepared) return null\n }\n\n const attached = await persistence.listConnectionsByAuthorization(record.id, {\n connectedOnly: true,\n })\n if (\n input.mutation.kind === \"reauthorization\" &&\n !sameIds(\n attached.map((connection) => connection.id),\n input.expectedConnectionIds ?? []\n )\n ) {\n return null\n }\n\n const deadlineAt = new Date(now.getTime() + input.operationTimeoutMs)\n const mutation = {\n ...structuredClone(input.mutation),\n phase: \"prepared\" as const,\n expiresAt: leaseExpiry(now, input.leaseDurationMs, deadlineAt),\n deadlineAt,\n ...(input.mutation.kind === \"reauthorization\"\n ? { expectedConnectionIds: [...(input.expectedConnectionIds ?? [])] }\n : {}),\n }\n const startsRevocation =\n input.mutation.kind === \"revocation\" && record.status !== \"revocation_pending\"\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n status: input.mutation.kind === \"revocation\" ? \"revocation_pending\" : record.status,\n selectionExpiresAt:\n input.mutation.kind === \"revocation\" ? undefined : record.selectionExpiresAt,\n revision: startsRevocation ? record.revision + 1 : record.revision,\n credentialMutation: mutation,\n updatedAt: now,\n }\n await persistence.updateAuthorization(updated)\n\n const disconnected: ConnectorConnectionRecord[] = []\n if (input.mutation.kind === \"revocation\") {\n for (const connection of attached) {\n const updatedConnection = disconnectConnectionRecord(connection, now)\n await persistence.updateConnection(updatedConnection)\n disconnected.push(structuredClone(updatedConnection))\n }\n }\n return { authorization: structuredClone(updated), disconnected }\n })\n }\n\n markCredentialMutationExecuting(\n input: MarkConnectorCredentialMutationExecutingInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !matchesMutation(record, input, input.holderId) ||\n record.credentialMutation.phase !== \"prepared\" ||\n mutationExpired(record, now)\n ) {\n return null\n }\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n credentialMutation: { ...record.credentialMutation, phase: \"executing\" },\n updatedAt: now,\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n renewCredentialMutation(\n input: RenewConnectorCredentialMutationInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n assertPositiveDuration(input.leaseDurationMs, \"credential mutation lease duration\")\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !matchesMutation(record, input, input.holderId) ||\n record.credentialMutation.phase === \"result_staged\" ||\n mutationExpired(record, now)\n ) {\n return null\n }\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n credentialMutation: {\n ...record.credentialMutation,\n expiresAt: leaseExpiry(now, input.leaseDurationMs, record.credentialMutation.deadlineAt),\n },\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n stageCredentialMutationCredentials(\n input: StageConnectorCredentialMutationCredentialsInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !matchesMutation(record, input, input.holderId) ||\n record.credentialMutation.phase !== \"executing\" ||\n mutationExpired(record, now) ||\n record.credentialMutation.kind === \"revocation\"\n ) {\n return null\n }\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n credentialMutation: {\n ...record.credentialMutation,\n phase: \"result_staged\",\n stagedCredentials: {\n credentials: structuredClone(input.credentials),\n ...(input.credentialExpiresAt === undefined\n ? {}\n : { credentialExpiresAt: new Date(input.credentialExpiresAt) }),\n scopes: [...input.scopes],\n },\n },\n updatedAt: now,\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n stageCredentialMutationRevocation(\n input: StageConnectorCredentialMutationRevocationInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !matchesMutation(record, input, input.holderId) ||\n record.credentialMutation.phase !== \"executing\" ||\n record.credentialMutation.kind !== \"revocation\" ||\n mutationExpired(record, now)\n ) {\n return null\n }\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n credentialMutation: { ...record.credentialMutation, phase: \"result_staged\" },\n updatedAt: now,\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n releaseCredentialMutation(input: ReleaseConnectorCredentialMutationInput): Promise<boolean> {\n return this.write(input, async (persistence) => {\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !matchesMutation(record, input, input.holderId) ||\n record.credentialMutation.phase === \"result_staged\"\n ) {\n return false\n }\n await persistence.updateAuthorization({\n ...record,\n credentialMutation: undefined,\n updatedAt: await persistence.now(),\n })\n return true\n })\n }\n\n recoverExpiredCredentialMutation(\n input: RecoverExpiredConnectorCredentialMutationInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const record = await persistence.getAuthorization(input.authorizationId)\n if (!record?.credentialMutation) return null\n if (record.credentialMutation.phase === \"result_staged\") return structuredClone(record)\n\n const now = await persistence.now()\n if (!mutationExpired(record, now)) return null\n const ambiguous = record.credentialMutation.phase === \"executing\"\n const failClosed = ambiguous && record.credentialMutation.kind !== \"revocation\"\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n status: failClosed ? \"needs_reauthorization\" : record.status,\n selectionExpiresAt: failClosed ? undefined : record.selectionExpiresAt,\n revision: failClosed ? record.revision + 1 : record.revision,\n credentialMutation: undefined,\n updatedAt: now,\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n markNeedsReauthorization(\n input: MarkConnectorAuthorizationNeedsReauthorizationInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const record = await persistence.getAuthorization(input.authorizationId)\n if (!matchesMutation(record, input)) return null\n const staged = record.credentialMutation.stagedCredentials\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n ...(staged\n ? {\n credentials: structuredClone(staged.credentials),\n credentialExpiresAt:\n staged.credentialExpiresAt === undefined\n ? undefined\n : new Date(staged.credentialExpiresAt),\n scopes: [...staged.scopes],\n }\n : {}),\n status: \"needs_reauthorization\",\n selectionExpiresAt: undefined,\n revision: record.revision + 1,\n credentialMutation: undefined,\n updatedAt: await persistence.now(),\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n finalizeRefresh(\n input: ConnectorCredentialMutationFence\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const record = await persistence.getAuthorization(input.authorizationId)\n const staged = stagedCredentials(record, input, \"refresh\")\n if (!record || !staged) return null\n const updated = applyStagedCredentials(record, staged, await persistence.now(), {\n accounts: record.accounts,\n })\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n\n finalizeReauthorization(\n input: FinalizeConnectorReauthorizationInput\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const record = await persistence.getAuthorization(input.authorizationId)\n const staged = stagedCredentials(record, input, \"reauthorization\")\n if (!record || !staged || !record.credentialMutation) return null\n const attached = await persistence.listConnectionsByAuthorization(record.id, {\n connectedOnly: true,\n })\n if (\n !sameIds(\n attached.map((connection) => connection.id),\n record.credentialMutation.expectedConnectionIds ?? []\n )\n ) {\n throw authorizationConflict(\n \"[Sixb] Connections attached to the connector authorization changed during reauthorization.\"\n )\n }\n const accountsById = new Map(input.accounts.map((account) => [account.id, account]))\n if (attached.some((connection) => !accountsById.has(connection.account.id))) {\n throw authorizationConflict(\n \"[Sixb] Reauthorized connector grant no longer exposes every attached account.\"\n )\n }\n\n const now = await persistence.now()\n const updated = applyStagedCredentials(record, staged, now, { accounts: input.accounts })\n await persistence.updateAuthorization(updated)\n for (const connection of attached) {\n await persistence.updateConnection({\n ...connection,\n account: structuredClone(accountsById.get(connection.account.id)!),\n updatedAt: now,\n })\n }\n return structuredClone(updated)\n })\n }\n\n finalizeRevocation(\n input: ConnectorCredentialMutationFence\n ): Promise<ConnectorAuthorizationRecord | null> {\n return this.write(input, async (persistence) => {\n const record = await persistence.getAuthorization(input.authorizationId)\n if (\n !matchesMutation(record, input) ||\n record.credentialMutation.kind !== \"revocation\" ||\n record.credentialMutation.phase !== \"result_staged\"\n ) {\n return null\n }\n const updated: ConnectorAuthorizationRecord = {\n ...record,\n status: \"revoked\",\n credentials: undefined,\n credentialExpiresAt: undefined,\n scopes: [],\n accounts: [],\n selectionExpiresAt: undefined,\n revision: record.revision + 1,\n credentialMutation: undefined,\n updatedAt: await persistence.now(),\n }\n await persistence.updateAuthorization(updated)\n return structuredClone(updated)\n })\n }\n}\n\nfunction authorizationConflict(message: string) {\n return new ConnectorConnectionStorageError(\"authorization_conflict\", message)\n}\n",
7
7
  "import { ConnectorConnectionStorageError } from \"../errors\"\nimport type {\n ConnectorConnectionKey,\n ConnectorConnectionRecord,\n ConnectorConnectionRunSucceededRecord,\n DisconnectConnectorConnectionResult,\n GetConnectorConnectionInput,\n ListConnectorConnectionsInput,\n PutConnectorConnectionFromRunInput,\n PutConnectorConnectionFromRunResult,\n PutConnectorConnectionInput,\n PutConnectorConnectionResult,\n} from \"../types\"\nimport {\n assertConnectionCanMove,\n authorizationConflict,\n ConnectorConnectionOperations,\n type ConnectorConnectionPersistence,\n connectionRunBase,\n currentConnectionRun,\n disconnectConnectionRecord,\n invalidRun,\n isSelectable,\n markAuthorizationRevocationPending,\n} from \"./shared\"\n\nexport class DurableConnectorConnections extends ConnectorConnectionOperations {\n async putConnection(input: PutConnectorConnectionInput): Promise<PutConnectorConnectionResult> {\n const outcome = await this.write(input, async (persistence) =>\n this.putConnectionNow(persistence, input, await persistence.now())\n )\n if (\"error\" in outcome) throw outcome.error\n return outcome\n }\n\n async putConnectionFromRun(\n input: PutConnectorConnectionFromRunInput\n ): Promise<PutConnectorConnectionFromRunResult> {\n const outcome = await this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n if (!run || run.status !== \"waiting\" || run.waitingFor !== \"account_selection\") {\n return { error: invalidRun() }\n }\n const now = await persistence.now()\n const result = await this.putConnectionNow(\n persistence,\n {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n owner: run.owner,\n slot: run.slot,\n authorizationId: run.authorizationId,\n account: input.account,\n replace: input.replace,\n },\n now\n )\n if (\"error\" in result) return result\n const succeeded: ConnectorConnectionRunSucceededRecord = {\n ...connectionRunBase(run, now),\n status: \"succeeded\",\n authorizationId: run.authorizationId,\n ...(result.revocationPendingAuthorizationId === undefined\n ? {}\n : { cleanupAuthorizationId: result.revocationPendingAuthorizationId }),\n connections: [structuredClone(result.connection)],\n finishedAt: now,\n }\n await persistence.updateConnectionRun(succeeded)\n return { ...result, run: structuredClone(succeeded) }\n })\n if (\"error\" in outcome) throw outcome.error\n return outcome\n }\n\n getConnection(input: GetConnectorConnectionInput): Promise<ConnectorConnectionRecord | null> {\n return this.read(input, async (persistence) => {\n const connection = await persistence.getConnectionBySelector(input)\n return connection?.status === \"connected\" ? structuredClone(connection) : null\n })\n }\n\n getConnectionById(input: ConnectorConnectionKey): Promise<ConnectorConnectionRecord | null> {\n return this.read(input, async (persistence) => {\n const connection = await persistence.getConnectionById(input.connectionId)\n return connection ? structuredClone(connection) : null\n })\n }\n\n listConnections(\n input: ListConnectorConnectionsInput\n ): Promise<readonly ConnectorConnectionRecord[]> {\n return this.read(input, async (persistence) =>\n structuredClone(await persistence.listConnections())\n )\n }\n\n listConnectionsByAuthorization(input: {\n readonly projectId: string\n readonly connectorId: string\n readonly authorizationId: string\n }): Promise<readonly ConnectorConnectionRecord[]> {\n return this.read(input, async (persistence) => {\n if (!(await persistence.getAuthorization(input.authorizationId))) return []\n return structuredClone(\n await persistence.listConnectionsByAuthorization(input.authorizationId, {\n connectedOnly: true,\n })\n )\n })\n }\n\n disconnectConnection(\n input: ConnectorConnectionKey\n ): Promise<DisconnectConnectorConnectionResult | null> {\n return this.write(input, async (persistence) => {\n const connection = await persistence.getConnectionById(input.connectionId)\n if (!connection) return null\n const authorization = await persistence.getAuthorization(connection.authorizationId)\n if (!authorization) {\n throw new ConnectorConnectionStorageError(\n \"authorization_conflict\",\n \"[Sixb] Connector connection references an unavailable authorization.\"\n )\n }\n if (connection.status === \"disconnected\") {\n return {\n connection: structuredClone(connection),\n authorization: structuredClone(authorization),\n ...(authorization.status === \"revocation_pending\"\n ? { revocationPendingAuthorizationId: authorization.id }\n : {}),\n }\n }\n\n const now = await persistence.now()\n const remaining = (\n await persistence.listConnectionsByAuthorization(authorization.id, {\n connectedOnly: true,\n })\n ).filter((candidate) => candidate.id !== connection.id)\n assertConnectionCanMove(authorization, remaining.length === 0)\n const disconnected = disconnectConnectionRecord(connection, now)\n await persistence.updateConnection(disconnected)\n const updatedAuthorization =\n remaining.length === 0\n ? markAuthorizationRevocationPending(authorization, now)\n : authorization\n if (updatedAuthorization !== authorization) {\n await persistence.updateAuthorization(updatedAuthorization)\n }\n return {\n connection: structuredClone(disconnected),\n authorization: structuredClone(updatedAuthorization),\n ...(updatedAuthorization.status === \"revocation_pending\" && remaining.length === 0\n ? { revocationPendingAuthorizationId: updatedAuthorization.id }\n : {}),\n }\n })\n }\n\n private async putConnectionNow(\n persistence: ConnectorConnectionPersistence,\n input: PutConnectorConnectionInput,\n now: Date\n ): Promise<PutConnectorConnectionResult | CommittedConnectorConnectionError> {\n let authorization = await persistence.getAuthorization(input.authorizationId)\n if (\n !authorization ||\n !isSelectable(authorization.status) ||\n authorization.credentialMutation?.kind === \"reauthorization\"\n ) {\n throw authorizationConflict()\n }\n if (\n authorization.status === \"pending_selection\" &&\n authorization.selectionExpiresAt!.getTime() <= now.getTime()\n ) {\n authorization = {\n ...authorization,\n status: \"revocation_pending\",\n selectionExpiresAt: undefined,\n revision: authorization.revision + 1,\n updatedAt: now,\n }\n await persistence.updateAuthorization(authorization)\n return { error: authorizationConflict() }\n }\n const account = authorization.accounts.find((candidate) => candidate.id === input.account.id)\n if (!account) {\n throw new ConnectorConnectionStorageError(\n \"authorization_conflict\",\n \"[Sixb] Connector connection account is not exposed by its authorization.\"\n )\n }\n const existing = await persistence.getConnectionBySelector(input)\n const sameAccount = existing?.account.id === account.id\n if (existing && !sameAccount && !input.replace) {\n throw new ConnectorConnectionStorageError(\n \"connection_conflict\",\n `[Sixb] Connector slot '${input.slot}' is already connected to another account; explicit replacement is required.`\n )\n }\n if (!existing && (await persistence.getConnectionById(input.id))) {\n throw new ConnectorConnectionStorageError(\n \"connection_conflict\",\n \"[Sixb] Connector connection id already exists.\"\n )\n }\n\n let revocationPendingAuthorizationId: string | undefined\n if (existing?.status === \"connected\" && existing.authorizationId !== authorization.id) {\n const previous = await persistence.getAuthorization(existing.authorizationId)\n if (!previous) {\n throw new ConnectorConnectionStorageError(\n \"authorization_conflict\",\n \"[Sixb] Existing connector connection references an unavailable authorization.\"\n )\n }\n const remaining = (\n await persistence.listConnectionsByAuthorization(previous.id, { connectedOnly: true })\n ).filter((connection) => connection.id !== existing.id)\n assertConnectionCanMove(previous, remaining.length === 0)\n if (remaining.length === 0) {\n await persistence.updateAuthorization(markAuthorizationRevocationPending(previous, now))\n revocationPendingAuthorizationId = previous.id\n }\n } else if (existing?.status === \"connected\") {\n const previous = await persistence.getAuthorization(existing.authorizationId)\n if (previous) assertConnectionCanMove(previous, false)\n }\n\n const updatedAuthorization =\n authorization.status === \"pending_selection\"\n ? {\n ...authorization,\n status: \"active\" as const,\n selectionExpiresAt: undefined,\n revision: authorization.revision + 1,\n updatedAt: now,\n }\n : authorization\n const connection: ConnectorConnectionRecord = existing\n ? {\n ...existing,\n authorizationId: input.authorizationId,\n account: structuredClone(account),\n status: \"connected\",\n disconnectedAt: undefined,\n updatedAt: now,\n }\n : {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n owner: structuredClone(input.owner),\n slot: input.slot,\n authorizationId: input.authorizationId,\n account: structuredClone(account),\n status: \"connected\",\n createdAt: now,\n updatedAt: now,\n }\n\n if (updatedAuthorization !== authorization) {\n await persistence.updateAuthorization(updatedAuthorization)\n }\n if (existing) {\n await persistence.updateConnection(connection)\n } else if (!(await persistence.insertConnection(connection))) {\n throw new ConnectorConnectionStorageError(\n \"connection_conflict\",\n \"[Sixb] Connector connection id already exists.\"\n )\n }\n return {\n connection: structuredClone(connection),\n authorization: structuredClone(updatedAuthorization),\n ...(revocationPendingAuthorizationId === undefined\n ? {}\n : { revocationPendingAuthorizationId }),\n created: existing === null,\n replaced: existing !== null && !sameAccount,\n }\n }\n}\n\ninterface CommittedConnectorConnectionError {\n readonly error: ConnectorConnectionStorageError\n}\n",
8
- "import { parseSixbFailure } from \"../../../errors/internal\"\nimport { ConnectorConnectionStorageError } from \"../errors\"\nimport type {\n AttachConnectorConnectionRunAuthorizationInput,\n ClaimConnectorConnectionRunCallbackInput,\n ClaimConnectorConnectionRunCallbackResult,\n ConnectorAuthorizationAttemptRecord,\n ConnectorConnectionRunAwaitingProviderRecord,\n ConnectorConnectionRunAwaitingSelectionRecord,\n ConnectorConnectionRunProcessingRecord,\n ConnectorConnectionRunRecord,\n ConnectorConnectionStorage,\n CreateConnectorAuthorizationAttemptInput,\n CreateConnectorConnectionRunInput,\n CreateConnectorConnectionSelectionRunInput,\n FinishConnectorConnectionRunInput,\n GetConnectorConnectionRunInput,\n WaitForConnectorConnectionRunSelectionInput,\n} from \"../types\"\nimport { CONNECTOR_CONNECTION_RUN_FAILURE_CODES } from \"../types\"\nimport {\n assertPositiveDuration,\n authorizationConflict,\n ConnectorConnectionOperations,\n connectionRunBase,\n currentConnectionRun,\n invalidAttempt,\n markPendingAuthorizationForCleanup,\n safeEqual,\n} from \"./shared\"\n\nexport class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {\n createAuthorizationAttempt(\n input: CreateConnectorAuthorizationAttemptInput\n ): Promise<ConnectorAuthorizationAttemptRecord> {\n assertPositiveDuration(input.ttlMs, \"authorization attempt TTL\")\n return this.write(input, async (persistence) => {\n if (input.connectionRunId !== undefined) {\n const run = await persistence.getConnectionRun(input.connectionRunId)\n const existingAttempt = await persistence.getAuthorizationAttemptByConnectionRunId(\n input.connectionRunId\n )\n if (\n !run ||\n existingAttempt ||\n run.status !== \"waiting\" ||\n run.waitingFor !== \"provider_authorization\" ||\n run.slot !== input.slot ||\n run.initiatedByExecutionId !== input.initiatedByExecutionId\n ) {\n throw new ConnectorConnectionStorageError(\n \"attempt_conflict\",\n \"[Sixb] Connector authorization attempt does not match its connection run.\"\n )\n }\n }\n const now = await persistence.now()\n const record: ConnectorAuthorizationAttemptRecord = {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n owner: structuredClone(input.owner),\n slot: input.slot,\n initiatedByExecutionId: input.initiatedByExecutionId,\n stateHash: input.stateHash,\n codeVerifier: structuredClone(input.codeVerifier),\n redirectUri: input.redirectUri,\n ...(input.connectionRunId === undefined ? {} : { connectionRunId: input.connectionRunId }),\n ...(input.returnTo === undefined ? {} : { returnTo: input.returnTo }),\n ...(input.callbackBindingHash === undefined\n ? {}\n : { callbackBindingHash: input.callbackBindingHash }),\n ...(input.reauthorizationId === undefined\n ? {}\n : { reauthorizationId: input.reauthorizationId }),\n ...(input.reauthorizationRevision === undefined\n ? {}\n : { reauthorizationRevision: input.reauthorizationRevision }),\n ...(input.reauthorizationConnectionIds === undefined\n ? {}\n : { reauthorizationConnectionIds: [...input.reauthorizationConnectionIds] }),\n createdAt: now,\n expiresAt: new Date(now.getTime() + input.ttlMs),\n }\n if (!(await persistence.insertAuthorizationAttempt(record))) {\n throw new ConnectorConnectionStorageError(\n \"attempt_conflict\",\n \"[Sixb] Connector authorization attempt already exists.\"\n )\n }\n return structuredClone(record)\n })\n }\n\n async consumeAuthorizationAttempt(\n input: Parameters<ConnectorConnectionStorage[\"consumeAuthorizationAttempt\"]>[0]\n ): Promise<ConnectorAuthorizationAttemptRecord> {\n const record = await this.write(input, async (persistence) => {\n const record = await persistence.getAuthorizationAttempt(input.id)\n const now = await persistence.now()\n if (record && record.expiresAt.getTime() <= now.getTime()) {\n await persistence.deleteAuthorizationAttempt(record.id)\n return null\n }\n if (\n !record ||\n record.redirectUri !== input.redirectUri ||\n !safeEqual(record.stateHash, input.stateHash)\n ) {\n return null\n }\n\n await persistence.deleteAuthorizationAttempt(input.id)\n return structuredClone(record)\n })\n if (!record) throw invalidAttempt()\n return record\n }\n\n createConnectionRun(\n input: CreateConnectorConnectionRunInput\n ): Promise<ConnectorConnectionRunRecord> {\n assertPositiveDuration(input.ttlMs, \"connection run TTL\")\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record: ConnectorConnectionRunAwaitingProviderRecord = {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n kind: input.kind,\n owner: structuredClone(input.owner),\n slot: input.slot,\n initiatedByExecutionId: input.initiatedByExecutionId,\n status: \"waiting\",\n waitingFor: \"provider_authorization\",\n createdAt: now,\n updatedAt: now,\n expiresAt: new Date(now.getTime() + input.ttlMs),\n }\n if (!(await persistence.insertConnectionRun(record))) {\n throw new ConnectorConnectionStorageError(\n \"run_conflict\",\n \"[Sixb] Connector connection run already exists.\"\n )\n }\n return structuredClone(record)\n })\n }\n\n createConnectionSelectionRun(\n input: CreateConnectorConnectionSelectionRunInput\n ): Promise<ConnectorConnectionRunAwaitingSelectionRecord> {\n assertPositiveDuration(input.ttlMs, \"connection run TTL\")\n return this.write(input, async (persistence) => {\n const authorization = await persistence.getAuthorization(input.authorizationId)\n if (!authorization || authorization.status !== \"active\" || authorization.credentialMutation) {\n throw authorizationConflict()\n }\n const now = await persistence.now()\n const record: ConnectorConnectionRunAwaitingSelectionRecord = {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n kind: \"connect\",\n owner: structuredClone(input.owner),\n slot: input.slot,\n initiatedByExecutionId: input.initiatedByExecutionId,\n status: \"waiting\",\n waitingFor: \"account_selection\",\n authorizationId: input.authorizationId,\n createdAt: now,\n updatedAt: now,\n expiresAt: new Date(now.getTime() + input.ttlMs),\n }\n if (!(await persistence.insertConnectionRun(record))) {\n throw new ConnectorConnectionStorageError(\n \"run_conflict\",\n \"[Sixb] Connector connection run already exists.\"\n )\n }\n return structuredClone(record)\n })\n }\n\n async claimConnectionRunCallback(\n input: ClaimConnectorConnectionRunCallbackInput\n ): Promise<ClaimConnectorConnectionRunCallbackResult | null> {\n assertPositiveDuration(input.processingTtlMs, \"connection run processing TTL\")\n // Resolve the opaque attempt before entering the connector-scoped critical section. The\n // transaction re-reads every proof, but now all writers acquire the connector lock before row\n // locks instead of letting callback and expiry paths lock attempt/run rows in opposite orders.\n const candidate = await this.read({ projectId: input.projectId }, (persistence) =>\n persistence.getAuthorizationAttempt(input.attemptId)\n )\n if (!candidate) return null\n\n return this.write(\n { projectId: input.projectId, connectorId: candidate.connectorId },\n async (persistence) => {\n const attempt = await persistence.getAuthorizationAttempt(input.attemptId)\n if (\n !attempt ||\n attempt.connectionRunId === undefined ||\n attempt.returnTo === undefined ||\n attempt.callbackBindingHash === undefined ||\n attempt.redirectUri !== input.redirectUri ||\n !safeEqual(attempt.stateHash, input.stateHash) ||\n !safeEqual(attempt.callbackBindingHash, input.callbackBindingHash)\n ) {\n return null\n }\n\n const run = await persistence.getConnectionRun(attempt.connectionRunId)\n if (\n !run ||\n run.status !== \"waiting\" ||\n run.waitingFor !== \"provider_authorization\" ||\n run.slot !== attempt.slot ||\n run.initiatedByExecutionId !== attempt.initiatedByExecutionId\n ) {\n return null\n }\n\n const now = await persistence.now()\n await persistence.deleteAuthorizationAttempt(attempt.id)\n if (\n attempt.expiresAt.getTime() <= now.getTime() ||\n run.expiresAt.getTime() <= now.getTime()\n ) {\n const expired: Extract<ConnectorConnectionRunRecord, { status: \"expired\" }> = {\n ...connectionRunBase(run, now),\n status: \"expired\",\n finishedAt: now,\n }\n await persistence.updateConnectionRun(expired)\n return { type: \"expired\", run: structuredClone(expired), returnTo: attempt.returnTo }\n }\n\n const processing: ConnectorConnectionRunProcessingRecord = {\n ...connectionRunBase(run, now),\n status: \"running\",\n processingId: input.processingId,\n callbackStartedAt: now,\n expiresAt: new Date(now.getTime() + input.processingTtlMs),\n ...(attempt.reauthorizationId === undefined\n ? {}\n : { authorizationId: attempt.reauthorizationId }),\n }\n await persistence.updateConnectionRun(processing)\n return {\n type: \"claimed\",\n run: structuredClone(processing),\n attempt: structuredClone(attempt),\n returnTo: attempt.returnTo,\n }\n }\n )\n }\n\n attachConnectionRunAuthorization(\n input: AttachConnectorConnectionRunAuthorizationInput\n ): Promise<ConnectorConnectionRunProcessingRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n const authorization = await persistence.getAuthorization(input.authorizationId)\n if (\n !run ||\n run.status !== \"running\" ||\n run.processingId !== input.processingId ||\n (run.authorizationId !== undefined && run.authorizationId !== input.authorizationId) ||\n !authorization ||\n authorization.status !== \"pending_selection\"\n ) {\n return null\n }\n const updated: ConnectorConnectionRunProcessingRecord = {\n ...run,\n authorizationId: input.authorizationId,\n updatedAt: await persistence.now(),\n }\n await persistence.updateConnectionRun(updated)\n return structuredClone(updated)\n })\n }\n\n waitForConnectionRunSelection(\n input: WaitForConnectorConnectionRunSelectionInput\n ): Promise<ConnectorConnectionRunAwaitingSelectionRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n if (\n !run ||\n run.status !== \"running\" ||\n run.kind !== \"connect\" ||\n run.processingId !== input.processingId ||\n run.authorizationId !== input.authorizationId\n ) {\n return null\n }\n const now = await persistence.now()\n const waiting: ConnectorConnectionRunAwaitingSelectionRecord = {\n ...connectionRunBase(run, now),\n status: \"waiting\",\n waitingFor: \"account_selection\",\n authorizationId: input.authorizationId,\n expiresAt: new Date(input.expiresAt),\n }\n await persistence.updateConnectionRun(waiting)\n return structuredClone(waiting)\n })\n }\n\n finishConnectionRun(\n input: FinishConnectorConnectionRunInput\n ): Promise<ConnectorConnectionRunRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n if (!run || run.status !== \"running\" || input.processingId !== run.processingId) return null\n const now = await persistence.now()\n const authorizationId =\n input.status === \"succeeded\"\n ? input.authorizationId\n : input.status === \"failed\"\n ? (input.authorizationId ?? run.authorizationId)\n : run.authorizationId\n if (input.status !== \"succeeded\" && run.kind === \"connect\" && authorizationId) {\n await markPendingAuthorizationForCleanup(persistence, authorizationId, now)\n }\n const base = connectionRunBase(run, now)\n const finished: ConnectorConnectionRunRecord =\n input.status === \"succeeded\"\n ? {\n ...base,\n status: \"succeeded\",\n authorizationId: input.authorizationId,\n ...(input.cleanupAuthorizationId === undefined\n ? {}\n : { cleanupAuthorizationId: input.cleanupAuthorizationId }),\n connections: structuredClone(input.connections),\n finishedAt: now,\n }\n : input.status === \"failed\"\n ? {\n ...base,\n status: \"failed\",\n ...(authorizationId === undefined ? {} : { authorizationId }),\n error: parseSixbFailure(input.error, CONNECTOR_CONNECTION_RUN_FAILURE_CODES),\n finishedAt: now,\n }\n : {\n ...base,\n status: \"cancelled\",\n ...(authorizationId === undefined ? {} : { authorizationId }),\n finishedAt: now,\n }\n await persistence.updateConnectionRun(finished)\n return structuredClone(finished)\n })\n }\n\n getConnectionRun(\n input: GetConnectorConnectionRunInput\n ): Promise<ConnectorConnectionRunRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n return run ? structuredClone(run) : null\n })\n }\n}\n",
8
+ "import { parseSixbFailure } from \"../../../errors/internal\"\nimport { ConnectorConnectionStorageError } from \"../errors\"\nimport type {\n AttachConnectorConnectionRunAuthorizationInput,\n ClaimConnectorConnectionRunCallbackInput,\n ClaimConnectorConnectionRunCallbackResult,\n ConnectorAuthorizationAttemptRecord,\n ConnectorConnectionRunAwaitingProviderRecord,\n ConnectorConnectionRunAwaitingSelectionRecord,\n ConnectorConnectionRunProcessingRecord,\n ConnectorConnectionRunRecord,\n ConnectorConnectionStorage,\n CreateConnectorAuthorizationAttemptInput,\n CreateConnectorConnectionRunInput,\n CreateConnectorConnectionSelectionRunInput,\n FinishConnectorConnectionRunInput,\n GetConnectorConnectionRunInput,\n WaitForConnectorConnectionRunSelectionInput,\n} from \"../types\"\nimport { CONNECTOR_CONNECTION_RUN_FAILURE_CODES } from \"../types\"\nimport {\n assertPositiveDuration,\n authorizationConflict,\n ConnectorConnectionOperations,\n connectionRunBase,\n currentConnectionRun,\n invalidAttempt,\n markPendingAuthorizationForCleanup,\n safeEqual,\n} from \"./shared\"\n\nexport class DurableConnectorConnectionRuns extends ConnectorConnectionOperations {\n createAuthorizationAttempt(\n input: CreateConnectorAuthorizationAttemptInput\n ): Promise<ConnectorAuthorizationAttemptRecord> {\n assertPositiveDuration(input.ttlMs, \"authorization attempt TTL\")\n return this.write(input, async (persistence) => {\n if (input.connectionRunId !== undefined) {\n const run = await persistence.getConnectionRun(input.connectionRunId)\n const existingAttempt = await persistence.getAuthorizationAttemptByConnectionRunId(\n input.connectionRunId\n )\n if (\n !run ||\n existingAttempt ||\n run.status !== \"waiting\" ||\n run.waitingFor !== \"provider_authorization\" ||\n run.slot !== input.slot ||\n run.initiatedByExecutionId !== input.initiatedByExecutionId\n ) {\n throw new ConnectorConnectionStorageError(\n \"attempt_conflict\",\n \"[Sixb] Connector authorization attempt does not match its connection run.\"\n )\n }\n }\n const now = await persistence.now()\n const record: ConnectorAuthorizationAttemptRecord = {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n owner: structuredClone(input.owner),\n slot: input.slot,\n initiatedByExecutionId: input.initiatedByExecutionId,\n stateHash: input.stateHash,\n ...(input.codeVerifier === undefined\n ? {}\n : { codeVerifier: structuredClone(input.codeVerifier) }),\n redirectUri: input.redirectUri,\n ...(input.connectionRunId === undefined ? {} : { connectionRunId: input.connectionRunId }),\n ...(input.returnTo === undefined ? {} : { returnTo: input.returnTo }),\n ...(input.callbackBindingHash === undefined\n ? {}\n : { callbackBindingHash: input.callbackBindingHash }),\n ...(input.reauthorizationId === undefined\n ? {}\n : { reauthorizationId: input.reauthorizationId }),\n ...(input.reauthorizationRevision === undefined\n ? {}\n : { reauthorizationRevision: input.reauthorizationRevision }),\n ...(input.reauthorizationConnectionIds === undefined\n ? {}\n : { reauthorizationConnectionIds: [...input.reauthorizationConnectionIds] }),\n createdAt: now,\n expiresAt: new Date(now.getTime() + input.ttlMs),\n }\n if (!(await persistence.insertAuthorizationAttempt(record))) {\n throw new ConnectorConnectionStorageError(\n \"attempt_conflict\",\n \"[Sixb] Connector authorization attempt already exists.\"\n )\n }\n return structuredClone(record)\n })\n }\n\n async consumeAuthorizationAttempt(\n input: Parameters<ConnectorConnectionStorage[\"consumeAuthorizationAttempt\"]>[0]\n ): Promise<ConnectorAuthorizationAttemptRecord> {\n const record = await this.write(input, async (persistence) => {\n const record = await persistence.getAuthorizationAttempt(input.id)\n const now = await persistence.now()\n if (record && record.expiresAt.getTime() <= now.getTime()) {\n await persistence.deleteAuthorizationAttempt(record.id)\n return null\n }\n if (\n !record ||\n record.redirectUri !== input.redirectUri ||\n !safeEqual(record.stateHash, input.stateHash)\n ) {\n return null\n }\n\n await persistence.deleteAuthorizationAttempt(input.id)\n return structuredClone(record)\n })\n if (!record) throw invalidAttempt()\n return record\n }\n\n createConnectionRun(\n input: CreateConnectorConnectionRunInput\n ): Promise<ConnectorConnectionRunRecord> {\n assertPositiveDuration(input.ttlMs, \"connection run TTL\")\n return this.write(input, async (persistence) => {\n const now = await persistence.now()\n const record: ConnectorConnectionRunAwaitingProviderRecord = {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n kind: input.kind,\n owner: structuredClone(input.owner),\n slot: input.slot,\n initiatedByExecutionId: input.initiatedByExecutionId,\n status: \"waiting\",\n waitingFor: \"provider_authorization\",\n createdAt: now,\n updatedAt: now,\n expiresAt: new Date(now.getTime() + input.ttlMs),\n }\n if (!(await persistence.insertConnectionRun(record))) {\n throw new ConnectorConnectionStorageError(\n \"run_conflict\",\n \"[Sixb] Connector connection run already exists.\"\n )\n }\n return structuredClone(record)\n })\n }\n\n createConnectionSelectionRun(\n input: CreateConnectorConnectionSelectionRunInput\n ): Promise<ConnectorConnectionRunAwaitingSelectionRecord> {\n assertPositiveDuration(input.ttlMs, \"connection run TTL\")\n return this.write(input, async (persistence) => {\n const authorization = await persistence.getAuthorization(input.authorizationId)\n if (!authorization || authorization.status !== \"active\" || authorization.credentialMutation) {\n throw authorizationConflict()\n }\n const now = await persistence.now()\n const record: ConnectorConnectionRunAwaitingSelectionRecord = {\n id: input.id,\n projectId: input.projectId,\n connectorId: input.connectorId,\n kind: \"connect\",\n owner: structuredClone(input.owner),\n slot: input.slot,\n initiatedByExecutionId: input.initiatedByExecutionId,\n status: \"waiting\",\n waitingFor: \"account_selection\",\n authorizationId: input.authorizationId,\n createdAt: now,\n updatedAt: now,\n expiresAt: new Date(now.getTime() + input.ttlMs),\n }\n if (!(await persistence.insertConnectionRun(record))) {\n throw new ConnectorConnectionStorageError(\n \"run_conflict\",\n \"[Sixb] Connector connection run already exists.\"\n )\n }\n return structuredClone(record)\n })\n }\n\n async claimConnectionRunCallback(\n input: ClaimConnectorConnectionRunCallbackInput\n ): Promise<ClaimConnectorConnectionRunCallbackResult | null> {\n assertPositiveDuration(input.processingTtlMs, \"connection run processing TTL\")\n // Resolve the opaque attempt before entering the connector-scoped critical section. The\n // transaction re-reads every proof, but now all writers acquire the connector lock before row\n // locks instead of letting callback and expiry paths lock attempt/run rows in opposite orders.\n const candidate = await this.read({ projectId: input.projectId }, (persistence) =>\n persistence.getAuthorizationAttempt(input.attemptId)\n )\n if (!candidate) return null\n\n return this.write(\n { projectId: input.projectId, connectorId: candidate.connectorId },\n async (persistence) => {\n const attempt = await persistence.getAuthorizationAttempt(input.attemptId)\n if (\n !attempt ||\n attempt.connectionRunId === undefined ||\n attempt.returnTo === undefined ||\n attempt.callbackBindingHash === undefined ||\n attempt.redirectUri !== input.redirectUri ||\n !safeEqual(attempt.stateHash, input.stateHash) ||\n !safeEqual(attempt.callbackBindingHash, input.callbackBindingHash)\n ) {\n return null\n }\n\n const run = await persistence.getConnectionRun(attempt.connectionRunId)\n if (\n !run ||\n run.status !== \"waiting\" ||\n run.waitingFor !== \"provider_authorization\" ||\n run.slot !== attempt.slot ||\n run.initiatedByExecutionId !== attempt.initiatedByExecutionId\n ) {\n return null\n }\n\n const now = await persistence.now()\n await persistence.deleteAuthorizationAttempt(attempt.id)\n if (\n attempt.expiresAt.getTime() <= now.getTime() ||\n run.expiresAt.getTime() <= now.getTime()\n ) {\n const expired: Extract<ConnectorConnectionRunRecord, { status: \"expired\" }> = {\n ...connectionRunBase(run, now),\n status: \"expired\",\n finishedAt: now,\n }\n await persistence.updateConnectionRun(expired)\n return { type: \"expired\", run: structuredClone(expired), returnTo: attempt.returnTo }\n }\n\n const processing: ConnectorConnectionRunProcessingRecord = {\n ...connectionRunBase(run, now),\n status: \"running\",\n processingId: input.processingId,\n callbackStartedAt: now,\n expiresAt: new Date(now.getTime() + input.processingTtlMs),\n ...(attempt.reauthorizationId === undefined\n ? {}\n : { authorizationId: attempt.reauthorizationId }),\n }\n await persistence.updateConnectionRun(processing)\n return {\n type: \"claimed\",\n run: structuredClone(processing),\n attempt: structuredClone(attempt),\n returnTo: attempt.returnTo,\n }\n }\n )\n }\n\n attachConnectionRunAuthorization(\n input: AttachConnectorConnectionRunAuthorizationInput\n ): Promise<ConnectorConnectionRunProcessingRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n const authorization = await persistence.getAuthorization(input.authorizationId)\n if (\n !run ||\n run.status !== \"running\" ||\n run.processingId !== input.processingId ||\n (run.authorizationId !== undefined && run.authorizationId !== input.authorizationId) ||\n !authorization ||\n authorization.status !== \"pending_selection\"\n ) {\n return null\n }\n const updated: ConnectorConnectionRunProcessingRecord = {\n ...run,\n authorizationId: input.authorizationId,\n updatedAt: await persistence.now(),\n }\n await persistence.updateConnectionRun(updated)\n return structuredClone(updated)\n })\n }\n\n waitForConnectionRunSelection(\n input: WaitForConnectorConnectionRunSelectionInput\n ): Promise<ConnectorConnectionRunAwaitingSelectionRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n if (\n !run ||\n run.status !== \"running\" ||\n run.kind !== \"connect\" ||\n run.processingId !== input.processingId ||\n run.authorizationId !== input.authorizationId\n ) {\n return null\n }\n const now = await persistence.now()\n const waiting: ConnectorConnectionRunAwaitingSelectionRecord = {\n ...connectionRunBase(run, now),\n status: \"waiting\",\n waitingFor: \"account_selection\",\n authorizationId: input.authorizationId,\n expiresAt: new Date(input.expiresAt),\n }\n await persistence.updateConnectionRun(waiting)\n return structuredClone(waiting)\n })\n }\n\n finishConnectionRun(\n input: FinishConnectorConnectionRunInput\n ): Promise<ConnectorConnectionRunRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n if (!run || run.status !== \"running\" || input.processingId !== run.processingId) return null\n const now = await persistence.now()\n const authorizationId =\n input.status === \"succeeded\"\n ? input.authorizationId\n : input.status === \"failed\"\n ? (input.authorizationId ?? run.authorizationId)\n : run.authorizationId\n if (input.status !== \"succeeded\" && run.kind === \"connect\" && authorizationId) {\n await markPendingAuthorizationForCleanup(persistence, authorizationId, now)\n }\n const base = connectionRunBase(run, now)\n const finished: ConnectorConnectionRunRecord =\n input.status === \"succeeded\"\n ? {\n ...base,\n status: \"succeeded\",\n authorizationId: input.authorizationId,\n ...(input.cleanupAuthorizationId === undefined\n ? {}\n : { cleanupAuthorizationId: input.cleanupAuthorizationId }),\n connections: structuredClone(input.connections),\n finishedAt: now,\n }\n : input.status === \"failed\"\n ? {\n ...base,\n status: \"failed\",\n ...(authorizationId === undefined ? {} : { authorizationId }),\n error: parseSixbFailure(input.error, CONNECTOR_CONNECTION_RUN_FAILURE_CODES),\n finishedAt: now,\n }\n : {\n ...base,\n status: \"cancelled\",\n ...(authorizationId === undefined ? {} : { authorizationId }),\n finishedAt: now,\n }\n await persistence.updateConnectionRun(finished)\n return structuredClone(finished)\n })\n }\n\n getConnectionRun(\n input: GetConnectorConnectionRunInput\n ): Promise<ConnectorConnectionRunRecord | null> {\n return this.write(input, async (persistence) => {\n const run = await currentConnectionRun(persistence, input.runId)\n return run ? structuredClone(run) : null\n })\n }\n}\n",
9
9
  "import { DurableConnectorAuthorizations } from \"./provider/authorizations\"\nimport { DurableConnectorConnections } from \"./provider/connections\"\nimport { DurableConnectorConnectionRuns } from \"./provider/runs\"\nimport type { ConnectorConnectionPersistenceBackend } from \"./provider/shared\"\nimport type { ConnectorConnectionStorage } from \"./types\"\n\nexport type {\n ConnectorConnectionPersistence,\n ConnectorConnectionPersistenceBackend,\n ConnectorConnectionPersistenceScope,\n} from \"./provider/shared\"\n\n/**\n * Shared durable implementation of the Connector connection lifecycle.\n *\n * Concrete providers own SQL, transactions, database time and per-connector serialization. The\n * focused services below own protocol runs, authorization mutations and stable connections so\n * SQLite and PostgreSQL cannot drift semantically.\n */\nexport class DurableConnectorConnectionStorage implements ConnectorConnectionStorage {\n readonly durability = \"durable\" as const\n private readonly runs: DurableConnectorConnectionRuns\n private readonly authorizations: DurableConnectorAuthorizations\n private readonly connections: DurableConnectorConnections\n\n constructor(backend: ConnectorConnectionPersistenceBackend) {\n this.runs = new DurableConnectorConnectionRuns(backend)\n this.authorizations = new DurableConnectorAuthorizations(backend)\n this.connections = new DurableConnectorConnections(backend)\n }\n\n async createAuthorizationAttempt(\n ...args: Parameters<ConnectorConnectionStorage[\"createAuthorizationAttempt\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"createAuthorizationAttempt\"]>>> {\n return this.runs.createAuthorizationAttempt(...args)\n }\n\n async consumeAuthorizationAttempt(\n ...args: Parameters<ConnectorConnectionStorage[\"consumeAuthorizationAttempt\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"consumeAuthorizationAttempt\"]>>> {\n return this.runs.consumeAuthorizationAttempt(...args)\n }\n\n async createConnectionRun(\n ...args: Parameters<ConnectorConnectionStorage[\"createConnectionRun\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"createConnectionRun\"]>>> {\n return this.runs.createConnectionRun(...args)\n }\n\n async createConnectionSelectionRun(\n ...args: Parameters<ConnectorConnectionStorage[\"createConnectionSelectionRun\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"createConnectionSelectionRun\"]>>> {\n return this.runs.createConnectionSelectionRun(...args)\n }\n\n async claimConnectionRunCallback(\n ...args: Parameters<ConnectorConnectionStorage[\"claimConnectionRunCallback\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"claimConnectionRunCallback\"]>>> {\n return this.runs.claimConnectionRunCallback(...args)\n }\n\n async attachConnectionRunAuthorization(\n ...args: Parameters<ConnectorConnectionStorage[\"attachConnectionRunAuthorization\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"attachConnectionRunAuthorization\"]>>> {\n return this.runs.attachConnectionRunAuthorization(...args)\n }\n\n async waitForConnectionRunSelection(\n ...args: Parameters<ConnectorConnectionStorage[\"waitForConnectionRunSelection\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"waitForConnectionRunSelection\"]>>> {\n return this.runs.waitForConnectionRunSelection(...args)\n }\n\n async finishConnectionRun(\n ...args: Parameters<ConnectorConnectionStorage[\"finishConnectionRun\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"finishConnectionRun\"]>>> {\n return this.runs.finishConnectionRun(...args)\n }\n\n async getConnectionRun(\n ...args: Parameters<ConnectorConnectionStorage[\"getConnectionRun\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"getConnectionRun\"]>>> {\n return this.runs.getConnectionRun(...args)\n }\n\n async createAuthorization(\n ...args: Parameters<ConnectorConnectionStorage[\"createAuthorization\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"createAuthorization\"]>>> {\n return this.authorizations.createAuthorization(...args)\n }\n\n async initializeAuthorizationAccounts(\n ...args: Parameters<ConnectorConnectionStorage[\"initializeAuthorizationAccounts\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"initializeAuthorizationAccounts\"]>>> {\n return this.authorizations.initializeAuthorizationAccounts(...args)\n }\n\n async getAuthorization(\n ...args: Parameters<ConnectorConnectionStorage[\"getAuthorization\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"getAuthorization\"]>>> {\n return this.authorizations.getAuthorization(...args)\n }\n\n async getAuthorizationByConnectionId(\n ...args: Parameters<ConnectorConnectionStorage[\"getAuthorizationByConnectionId\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"getAuthorizationByConnectionId\"]>>> {\n return this.authorizations.getAuthorizationByConnectionId(...args)\n }\n\n async claimCredentialMutation(\n ...args: Parameters<ConnectorConnectionStorage[\"claimCredentialMutation\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"claimCredentialMutation\"]>>> {\n return this.authorizations.claimCredentialMutation(...args)\n }\n\n async markCredentialMutationExecuting(\n ...args: Parameters<ConnectorConnectionStorage[\"markCredentialMutationExecuting\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"markCredentialMutationExecuting\"]>>> {\n return this.authorizations.markCredentialMutationExecuting(...args)\n }\n\n async renewCredentialMutation(\n ...args: Parameters<ConnectorConnectionStorage[\"renewCredentialMutation\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"renewCredentialMutation\"]>>> {\n return this.authorizations.renewCredentialMutation(...args)\n }\n\n async stageCredentialMutationCredentials(\n ...args: Parameters<ConnectorConnectionStorage[\"stageCredentialMutationCredentials\"]>\n ): Promise<\n Awaited<ReturnType<ConnectorConnectionStorage[\"stageCredentialMutationCredentials\"]>>\n > {\n return this.authorizations.stageCredentialMutationCredentials(...args)\n }\n\n async stageCredentialMutationRevocation(\n ...args: Parameters<ConnectorConnectionStorage[\"stageCredentialMutationRevocation\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"stageCredentialMutationRevocation\"]>>> {\n return this.authorizations.stageCredentialMutationRevocation(...args)\n }\n\n async releaseCredentialMutation(\n ...args: Parameters<ConnectorConnectionStorage[\"releaseCredentialMutation\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"releaseCredentialMutation\"]>>> {\n return this.authorizations.releaseCredentialMutation(...args)\n }\n\n async recoverExpiredCredentialMutation(\n ...args: Parameters<ConnectorConnectionStorage[\"recoverExpiredCredentialMutation\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"recoverExpiredCredentialMutation\"]>>> {\n return this.authorizations.recoverExpiredCredentialMutation(...args)\n }\n\n async markNeedsReauthorization(\n ...args: Parameters<ConnectorConnectionStorage[\"markNeedsReauthorization\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"markNeedsReauthorization\"]>>> {\n return this.authorizations.markNeedsReauthorization(...args)\n }\n\n async finalizeRefresh(\n ...args: Parameters<ConnectorConnectionStorage[\"finalizeRefresh\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"finalizeRefresh\"]>>> {\n return this.authorizations.finalizeRefresh(...args)\n }\n\n async finalizeReauthorization(\n ...args: Parameters<ConnectorConnectionStorage[\"finalizeReauthorization\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"finalizeReauthorization\"]>>> {\n return this.authorizations.finalizeReauthorization(...args)\n }\n\n async finalizeRevocation(\n ...args: Parameters<ConnectorConnectionStorage[\"finalizeRevocation\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"finalizeRevocation\"]>>> {\n return this.authorizations.finalizeRevocation(...args)\n }\n\n async putConnection(\n ...args: Parameters<ConnectorConnectionStorage[\"putConnection\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"putConnection\"]>>> {\n return this.connections.putConnection(...args)\n }\n\n async putConnectionFromRun(\n ...args: Parameters<ConnectorConnectionStorage[\"putConnectionFromRun\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"putConnectionFromRun\"]>>> {\n return this.connections.putConnectionFromRun(...args)\n }\n\n async getConnection(\n ...args: Parameters<ConnectorConnectionStorage[\"getConnection\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"getConnection\"]>>> {\n return this.connections.getConnection(...args)\n }\n\n async getConnectionById(\n ...args: Parameters<ConnectorConnectionStorage[\"getConnectionById\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"getConnectionById\"]>>> {\n return this.connections.getConnectionById(...args)\n }\n\n async listConnections(\n ...args: Parameters<ConnectorConnectionStorage[\"listConnections\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"listConnections\"]>>> {\n return this.connections.listConnections(...args)\n }\n\n async listConnectionsByAuthorization(\n ...args: Parameters<ConnectorConnectionStorage[\"listConnectionsByAuthorization\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"listConnectionsByAuthorization\"]>>> {\n return this.connections.listConnectionsByAuthorization(...args)\n }\n\n async disconnectConnection(\n ...args: Parameters<ConnectorConnectionStorage[\"disconnectConnection\"]>\n ): Promise<Awaited<ReturnType<ConnectorConnectionStorage[\"disconnectConnection\"]>>> {\n return this.connections.disconnectConnection(...args)\n }\n}\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "5D13E1A973240FE264756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "20536B53DD385A8C64756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -149,7 +149,8 @@ export interface ConnectorAuthorizationAttemptRecord extends ConnectorConnection
149
149
  /** Durable execution that initiated and authorizes completion of this OAuth attempt. */
150
150
  readonly initiatedByExecutionId: string;
151
151
  readonly stateHash: string;
152
- readonly codeVerifier: SealedConnectorCredential;
152
+ /** Absent when the authorization attempt explicitly disabled PKCE. */
153
+ readonly codeVerifier?: SealedConnectorCredential;
153
154
  readonly redirectUri: string;
154
155
  /** Present only for attempts created by the headless connection-run API. */
155
156
  readonly connectionRunId?: string;
@@ -169,7 +170,7 @@ export interface CreateConnectorAuthorizationAttemptInput extends ConnectorConne
169
170
  readonly connectorId: string;
170
171
  readonly initiatedByExecutionId: string;
171
172
  readonly stateHash: string;
172
- readonly codeVerifier: SealedConnectorCredential;
173
+ readonly codeVerifier?: SealedConnectorCredential;
173
174
  readonly redirectUri: string;
174
175
  readonly connectionRunId?: string;
175
176
  readonly returnTo?: string;