@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.
- package/dist/actions/index.js +77 -89
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +2 -0
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validation.d.ts +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +33 -37
- package/dist/actions/worker.js.map +2 -2
- package/dist/agents/adapters.d.ts +3 -3
- package/dist/agents/{context.d.ts → context/entries.d.ts} +3 -3
- package/dist/agents/context/entries.d.ts.map +1 -0
- package/dist/agents/context/index.d.ts +4 -0
- package/dist/agents/context/index.d.ts.map +1 -0
- package/dist/agents/context/index.js +19 -0
- package/dist/agents/{streams.js.map → context/index.js.map} +1 -1
- package/dist/agents/context-model.d.ts +1 -1
- package/dist/agents/context-model.d.ts.map +1 -1
- package/dist/agents/context-resolution.d.ts +1 -1
- package/dist/agents/context-resolution.d.ts.map +1 -1
- package/dist/agents/index.d.ts +4 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +193 -204
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +1 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +2 -0
- package/dist/agents/model-loop.d.ts.map +1 -1
- package/dist/agents/request.d.ts +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/streams/index.d.ts +4 -0
- package/dist/agents/streams/index.d.ts.map +1 -0
- package/dist/agents/streams/index.js +20 -0
- package/dist/{chunk-y64skrwp.js.map → agents/streams/index.js.map} +1 -1
- package/dist/agents/streams/internal.d.ts +3 -0
- package/dist/agents/streams/internal.d.ts.map +1 -0
- package/dist/agents/streams/internal.js +40 -0
- package/dist/agents/{context.js.map → streams/internal.js.map} +1 -1
- package/dist/agents/{streams.d.ts → streams/protocol.d.ts} +5 -5
- package/dist/agents/streams/protocol.d.ts.map +1 -0
- package/dist/agents/types.d.ts +1 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/auth/index.d.ts +0 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +96 -108
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/strategy.js +8 -9
- package/dist/auth/strategy.js.map +1 -1
- package/dist/authorization/index.js +51 -56
- package/dist/authorization/index.js.map +1 -1
- package/dist/blob-storage/browser.js +15 -17
- package/dist/blob-storage/browser.js.map +1 -1
- package/dist/blob-storage/index.js +36 -38
- package/dist/blob-storage/index.js.map +1 -1
- package/dist/bootstrap/discovery.d.ts +14 -1
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -2
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +80 -88
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/broker/in-memory.d.ts +8 -2
- package/dist/broker/in-memory.d.ts.map +1 -1
- package/dist/broker/index.d.ts +4 -2
- package/dist/broker/index.d.ts.map +1 -1
- package/dist/broker/index.js +12 -10
- package/dist/broker/index.js.map +1 -1
- package/dist/broker/retention.d.ts +4 -0
- package/dist/broker/retention.d.ts.map +1 -0
- package/dist/broker/subscriber.d.ts +10 -0
- package/dist/broker/subscriber.d.ts.map +1 -0
- package/dist/broker/types.d.ts +14 -1
- package/dist/broker/types.d.ts.map +1 -1
- package/dist/chunk-0y39rgsb.js +43 -0
- package/dist/{chunk-c15dr03f.js.map → chunk-0y39rgsb.js.map} +2 -2
- package/dist/{chunk-k522z7v6.js → chunk-17kfctj6.js} +16 -11
- package/dist/chunk-17kfctj6.js.map +10 -0
- package/dist/{chunk-ajnan18g.js → chunk-1824gssz.js} +74 -106
- package/dist/chunk-1824gssz.js.map +12 -0
- package/dist/chunk-28ja2cjs.js +602 -0
- package/dist/chunk-28ja2cjs.js.map +18 -0
- package/dist/{chunk-5gd7tpv6.js → chunk-2c4j899j.js} +4 -4
- package/dist/chunk-2c4j899j.js.map +11 -0
- package/dist/{chunk-rv2hkwwa.js → chunk-358caqf5.js} +157 -180
- package/dist/chunk-358caqf5.js.map +12 -0
- package/dist/{chunk-fvt9rjsa.js → chunk-38zv5rkr.js} +4 -4
- package/dist/{chunk-fvt9rjsa.js.map → chunk-38zv5rkr.js.map} +1 -1
- package/dist/{chunk-w3e09qqk.js → chunk-39tqv9hz.js} +24 -24
- package/dist/{chunk-w3e09qqk.js.map → chunk-39tqv9hz.js.map} +2 -2
- package/dist/{chunk-04b07a9q.js → chunk-3bh94gbw.js} +13 -13
- package/dist/{chunk-04b07a9q.js.map → chunk-3bh94gbw.js.map} +2 -2
- package/dist/{chunk-s5y30bc9.js → chunk-3qms4nax.js} +52 -50
- package/dist/{chunk-s5y30bc9.js.map → chunk-3qms4nax.js.map} +5 -5
- package/dist/{chunk-nf4r78r4.js → chunk-5a4a52tq.js} +4 -4
- package/dist/{chunk-nf4r78r4.js.map → chunk-5a4a52tq.js.map} +2 -2
- package/dist/{chunk-wtf06et8.js → chunk-5c7ga8zz.js} +54 -177
- package/dist/chunk-5c7ga8zz.js.map +12 -0
- package/dist/{chunk-rte5sm3z.js → chunk-5hz0fnca.js} +23 -23
- package/dist/{chunk-rte5sm3z.js.map → chunk-5hz0fnca.js.map} +2 -2
- package/dist/{chunk-xajtptbw.js → chunk-5p1v802y.js} +1401 -445
- package/dist/chunk-5p1v802y.js.map +44 -0
- package/dist/chunk-653vwrzr.js +39 -0
- package/dist/chunk-653vwrzr.js.map +10 -0
- package/dist/{chunk-qw9gvjv5.js → chunk-72w2pxk7.js} +13 -13
- package/dist/{chunk-qw9gvjv5.js.map → chunk-72w2pxk7.js.map} +2 -2
- package/dist/chunk-7apz6hg4.js +50 -0
- package/dist/{chunk-jq43kdvk.js.map → chunk-7apz6hg4.js.map} +2 -2
- package/dist/chunk-7bs40fe1.js +218 -0
- package/dist/{chunk-p1rzczbt.js.map → chunk-7bs40fe1.js.map} +3 -3
- package/dist/chunk-7zgecwy1.js +113 -0
- package/dist/chunk-7zgecwy1.js.map +10 -0
- package/dist/{chunk-xhy826cz.js → chunk-85cd7e8c.js} +8 -7
- package/dist/chunk-85cd7e8c.js.map +10 -0
- package/dist/{chunk-pc7ys28c.js → chunk-860dwwy0.js} +29 -29
- package/dist/{chunk-pc7ys28c.js.map → chunk-860dwwy0.js.map} +2 -2
- package/dist/chunk-8vj0rjgs.js +165 -0
- package/dist/chunk-8vj0rjgs.js.map +15 -0
- package/dist/{chunk-7y0f6rf1.js → chunk-92vk7gta.js} +58 -58
- package/dist/chunk-92vk7gta.js.map +10 -0
- package/dist/{chunk-rafagrwr.js → chunk-93csa55g.js} +45 -17
- package/dist/chunk-93csa55g.js.map +11 -0
- package/dist/{chunk-aa2pen2v.js → chunk-976rxdpx.js} +188 -175
- package/dist/{chunk-aa2pen2v.js.map → chunk-976rxdpx.js.map} +2 -2
- package/dist/{chunk-d8qkxt2v.js → chunk-98cw09sw.js} +7 -7
- package/dist/chunk-98cw09sw.js.map +10 -0
- package/dist/{chunk-n4khvw9n.js → chunk-9qsh3p5y.js} +17 -17
- package/dist/{chunk-n4khvw9n.js.map → chunk-9qsh3p5y.js.map} +2 -2
- package/dist/{chunk-4a849fr1.js → chunk-9tc8dxmn.js} +1 -1
- package/dist/{chunk-9nbmsvn5.js → chunk-9vx5e9g1.js} +9 -9
- package/dist/{chunk-9nbmsvn5.js.map → chunk-9vx5e9g1.js.map} +2 -2
- package/dist/{chunk-8m5ejdpn.js → chunk-9x8dybsb.js} +5 -5
- package/dist/chunk-9x8dybsb.js.map +10 -0
- package/dist/chunk-aa6z4a19.js +358 -0
- package/dist/chunk-aa6z4a19.js.map +12 -0
- package/dist/{chunk-3xep5cjx.js → chunk-agbbygvh.js} +104 -86
- package/dist/chunk-agbbygvh.js.map +15 -0
- package/dist/{chunk-2dw777qw.js → chunk-ap0g1g74.js} +37 -82
- package/dist/{chunk-2dw777qw.js.map → chunk-ap0g1g74.js.map} +3 -4
- package/dist/{chunk-v4en4jc2.js → chunk-awbhdqyc.js} +7 -7
- package/dist/{chunk-v4en4jc2.js.map → chunk-awbhdqyc.js.map} +2 -2
- package/dist/{chunk-w9tg6yyb.js → chunk-b0ec55a1.js} +54 -37
- package/dist/chunk-b0ec55a1.js.map +12 -0
- package/dist/{chunk-ka3a2ft3.js → chunk-b19g04jk.js} +12 -12
- package/dist/{chunk-ka3a2ft3.js.map → chunk-b19g04jk.js.map} +2 -2
- package/dist/{chunk-gbejpkex.js → chunk-bn138h9w.js} +27 -28
- package/dist/{chunk-gbejpkex.js.map → chunk-bn138h9w.js.map} +3 -3
- package/dist/{chunk-nx7k8tpr.js → chunk-br3k6qbf.js} +23 -23
- package/dist/{chunk-nx7k8tpr.js.map → chunk-br3k6qbf.js.map} +2 -2
- package/dist/{chunk-dbc80ad7.js → chunk-c5rkjrgp.js} +28 -28
- package/dist/{chunk-dbc80ad7.js.map → chunk-c5rkjrgp.js.map} +2 -2
- package/dist/{chunk-dktq02ne.js → chunk-cqr3acm1.js} +4 -4
- package/dist/{chunk-dktq02ne.js.map → chunk-cqr3acm1.js.map} +2 -2
- package/dist/chunk-d62kjtbg.js +7 -0
- package/dist/{chunk-zcnhxkvd.js.map → chunk-d62kjtbg.js.map} +2 -2
- package/dist/{chunk-74drx9gd.js → chunk-dfm066qg.js} +10 -10
- package/dist/{chunk-74drx9gd.js.map → chunk-dfm066qg.js.map} +2 -2
- package/dist/{chunk-5e3pq99w.js → chunk-dmn70ztd.js} +30 -30
- package/dist/chunk-dmn70ztd.js.map +11 -0
- package/dist/{chunk-p1x242ad.js → chunk-dz5h08xv.js} +175 -175
- package/dist/{chunk-p1x242ad.js.map → chunk-dz5h08xv.js.map} +2 -2
- package/dist/{chunk-p2vqaxkc.js → chunk-e0d1rzef.js} +27 -22
- package/dist/{chunk-p2vqaxkc.js.map → chunk-e0d1rzef.js.map} +3 -3
- package/dist/{chunk-5sz8ta9r.js → chunk-e1c18xjx.js} +52 -52
- package/dist/{chunk-5sz8ta9r.js.map → chunk-e1c18xjx.js.map} +2 -2
- package/dist/{chunk-19jp6g9d.js → chunk-f0rwz2vh.js} +54 -33
- package/dist/chunk-f0rwz2vh.js.map +11 -0
- package/dist/{chunk-2xns679x.js → chunk-f4w3yp4f.js} +171 -36
- package/dist/chunk-f4w3yp4f.js.map +12 -0
- package/dist/{chunk-979ww6b3.js → chunk-fb3feg1e.js} +29 -29
- package/dist/{chunk-979ww6b3.js.map → chunk-fb3feg1e.js.map} +2 -2
- package/dist/{chunk-f26bck4t.js → chunk-ftv470j8.js} +393 -355
- package/dist/{chunk-f26bck4t.js.map → chunk-ftv470j8.js.map} +7 -7
- package/dist/{chunk-4sm0aznx.js → chunk-g00bfdq6.js} +254 -256
- package/dist/{chunk-4sm0aznx.js.map → chunk-g00bfdq6.js.map} +3 -3
- package/dist/{chunk-p03r0h5s.js → chunk-g53f0e4j.js} +76 -202
- package/dist/chunk-g53f0e4j.js.map +15 -0
- package/dist/chunk-g6cke204.js +124 -0
- package/dist/chunk-g6cke204.js.map +10 -0
- package/dist/{chunk-q0k9nc5a.js → chunk-g7knyczr.js} +98 -98
- package/dist/{chunk-q0k9nc5a.js.map → chunk-g7knyczr.js.map} +2 -2
- package/dist/{chunk-51fjndv0.js → chunk-gfdh9kqa.js} +4 -4
- package/dist/{chunk-51fjndv0.js.map → chunk-gfdh9kqa.js.map} +2 -2
- package/dist/{chunk-8tsf6dmc.js → chunk-gqh45d2n.js} +244 -205
- package/dist/chunk-gqh45d2n.js.map +15 -0
- package/dist/chunk-h3v76ams.js +32 -0
- package/dist/{chunk-08m3b6w8.js.map → chunk-h3v76ams.js.map} +2 -2
- package/dist/{chunk-jecn6t54.js → chunk-jgwb25gc.js} +74 -74
- package/dist/{chunk-jecn6t54.js.map → chunk-jgwb25gc.js.map} +2 -2
- package/dist/{chunk-wdage1eb.js → chunk-jmfet9r4.js} +6 -6
- package/dist/{chunk-wdage1eb.js.map → chunk-jmfet9r4.js.map} +2 -2
- package/dist/{chunk-k34z5rvh.js → chunk-kfee1h52.js} +132 -48
- package/dist/chunk-kfee1h52.js.map +13 -0
- package/dist/{chunk-2ab72m2h.js → chunk-m2ca93my.js} +3 -3
- package/dist/{chunk-2ab72m2h.js.map → chunk-m2ca93my.js.map} +2 -2
- package/dist/{chunk-4jjp5k14.js → chunk-mmagke4x.js} +6 -6
- package/dist/{chunk-4jjp5k14.js.map → chunk-mmagke4x.js.map} +2 -2
- package/dist/{chunk-359jm1jw.js → chunk-mrp7k0pw.js} +20 -20
- package/dist/{chunk-359jm1jw.js.map → chunk-mrp7k0pw.js.map} +2 -2
- package/dist/{chunk-h0k55pc7.js → chunk-ms2tmn1k.js} +139 -139
- package/dist/{chunk-h0k55pc7.js.map → chunk-ms2tmn1k.js.map} +2 -2
- package/dist/{chunk-h5vqbfmd.js → chunk-nmbxcaqx.js} +117 -117
- package/dist/{chunk-h5vqbfmd.js.map → chunk-nmbxcaqx.js.map} +3 -3
- package/dist/{chunk-n2w475r0.js → chunk-nt99sxd6.js} +82 -82
- package/dist/{chunk-n2w475r0.js.map → chunk-nt99sxd6.js.map} +3 -3
- package/dist/{chunk-v1xppd0y.js → chunk-p5vcsw9c.js} +60 -60
- package/dist/{chunk-v1xppd0y.js.map → chunk-p5vcsw9c.js.map} +2 -2
- package/dist/{chunk-sbzzr4kx.js → chunk-p6a4npdx.js} +1260 -1289
- package/dist/chunk-p6a4npdx.js.map +58 -0
- package/dist/{chunk-trxxmgnf.js → chunk-pqajwytd.js} +10 -10
- package/dist/{chunk-trxxmgnf.js.map → chunk-pqajwytd.js.map} +3 -3
- package/dist/{chunk-nn0tekr1.js → chunk-pr2h4bv4.js} +33 -33
- package/dist/{chunk-nn0tekr1.js.map → chunk-pr2h4bv4.js.map} +2 -2
- package/dist/{chunk-xwnf87e1.js → chunk-q5gz3g2j.js} +64 -64
- package/dist/{chunk-xwnf87e1.js.map → chunk-q5gz3g2j.js.map} +2 -2
- package/dist/{chunk-5ntny1qx.js → chunk-qf954wje.js} +6 -6
- package/dist/{chunk-5ntny1qx.js.map → chunk-qf954wje.js.map} +2 -2
- package/dist/chunk-qma80ych.js +30 -0
- package/dist/chunk-qma80ych.js.map +11 -0
- package/dist/{chunk-mth82m8t.js → chunk-qyeptdyv.js} +171 -77
- package/dist/chunk-qyeptdyv.js.map +15 -0
- package/dist/{chunk-b49dgvsj.js → chunk-r2y23egw.js} +3 -3
- package/dist/{chunk-b49dgvsj.js.map → chunk-r2y23egw.js.map} +2 -2
- package/dist/{chunk-mwsxn98e.js → chunk-r7fj830t.js} +253 -200
- package/dist/chunk-r7fj830t.js.map +36 -0
- package/dist/{chunk-4rh2m6zg.js → chunk-rb1xx120.js} +13 -13
- package/dist/{chunk-4rh2m6zg.js.map → chunk-rb1xx120.js.map} +2 -2
- package/dist/{chunk-gzasd5b6.js → chunk-rtk71jzp.js} +22 -22
- package/dist/{chunk-gzasd5b6.js.map → chunk-rtk71jzp.js.map} +2 -2
- package/dist/chunk-s3csryxe.js +152 -0
- package/dist/chunk-s3csryxe.js.map +11 -0
- package/dist/chunk-s670k14v.js +60 -0
- package/dist/{chunk-407j3msh.js.map → chunk-s670k14v.js.map} +2 -2
- package/dist/chunk-skz0hst3.js +788 -0
- package/dist/chunk-skz0hst3.js.map +19 -0
- package/dist/{chunk-3z1qec12.js → chunk-t1f4f1ve.js} +107 -64
- package/dist/{chunk-3z1qec12.js.map → chunk-t1f4f1ve.js.map} +3 -3
- package/dist/chunk-v2vcg0w6.js +151 -0
- package/dist/chunk-v2vcg0w6.js.map +11 -0
- package/dist/{chunk-r8jrnexe.js → chunk-v4jbb3rs.js} +4 -4
- package/dist/{chunk-r8jrnexe.js.map → chunk-v4jbb3rs.js.map} +2 -2
- package/dist/{chunk-w1tvjszy.js → chunk-vsj3mdfj.js} +8 -8
- package/dist/{chunk-w1tvjszy.js.map → chunk-vsj3mdfj.js.map} +2 -2
- package/dist/{chunk-9dzba0f2.js → chunk-wjasrj67.js} +8 -8
- package/dist/{chunk-9dzba0f2.js.map → chunk-wjasrj67.js.map} +2 -2
- package/dist/{chunk-1evzqhks.js → chunk-wr8qp979.js} +6 -6
- package/dist/{chunk-1evzqhks.js.map → chunk-wr8qp979.js.map} +2 -2
- package/dist/{chunk-n6jxh8sw.js → chunk-wy0qdqfm.js} +18 -18
- package/dist/{chunk-n6jxh8sw.js.map → chunk-wy0qdqfm.js.map} +2 -2
- package/dist/{chunk-z4ccwbkz.js → chunk-x9v4cx1d.js} +1 -1
- package/dist/{chunk-ry24jbr1.js → chunk-yv79ncbv.js} +10 -10
- package/dist/{chunk-ry24jbr1.js.map → chunk-yv79ncbv.js.map} +2 -2
- package/dist/{chunk-yp8ee62z.js → chunk-z30bv4ga.js} +35 -35
- package/dist/{chunk-yp8ee62z.js.map → chunk-z30bv4ga.js.map} +2 -2
- package/dist/{chunk-8ydjhh27.js → chunk-z3y411fq.js} +11 -7
- package/dist/{chunk-8ydjhh27.js.map → chunk-z3y411fq.js.map} +3 -3
- package/dist/{chunk-9t8f5xfx.js → chunk-z5rnrmz1.js} +10 -10
- package/dist/{chunk-9t8f5xfx.js.map → chunk-z5rnrmz1.js.map} +2 -2
- package/dist/{chunk-96swp2wd.js → chunk-z667z3sg.js} +3 -3
- package/dist/{chunk-96swp2wd.js.map → chunk-z667z3sg.js.map} +2 -2
- package/dist/{chunk-4yqmp43v.js → chunk-z8fx5cgb.js} +12 -12
- package/dist/{chunk-4yqmp43v.js.map → chunk-z8fx5cgb.js.map} +2 -2
- package/dist/{chunk-yt8wphsx.js → chunk-zvx7h87b.js} +3 -3
- package/dist/{chunk-yt8wphsx.js.map → chunk-zvx7h87b.js.map} +2 -2
- package/dist/connectors/connections/authorizations.d.ts.map +1 -1
- package/dist/connectors/connections/contracts.d.ts +3 -0
- package/dist/connectors/connections/contracts.d.ts.map +1 -1
- package/dist/connectors/connections/internal.js +9 -10
- package/dist/connectors/connections/internal.js.map +1 -1
- package/dist/connectors/connections/request.d.ts +3 -1
- package/dist/connectors/connections/request.d.ts.map +1 -1
- package/dist/connectors/connections/runs.d.ts.map +1 -1
- package/dist/connectors/connections/tokens.d.ts.map +1 -1
- package/dist/connectors/connections/validation.d.ts +5 -1
- package/dist/connectors/connections/validation.d.ts.map +1 -1
- package/dist/connectors/types.d.ts +19 -4
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/datasets/write.js +8 -12
- package/dist/datasets/write.js.map +1 -1
- package/dist/edits/index.js +7 -8
- package/dist/edits/index.js.map +1 -1
- package/dist/error-reporting/internal.js +22 -24
- package/dist/error-reporting/internal.js.map +1 -1
- package/dist/errors/internal.d.ts +1 -1
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +22 -24
- package/dist/errors/internal.js.map +1 -1
- package/dist/errors/redaction.d.ts +8 -0
- package/dist/errors/redaction.d.ts.map +1 -0
- package/dist/errors/types.d.ts +4 -0
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/events/execution.d.ts +1 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.js +60 -63
- package/dist/events/index.js.map +1 -1
- package/dist/events/scope.js +4 -5
- package/dist/events/scope.js.map +1 -1
- package/dist/events/selectors/index.js +9 -10
- package/dist/events/selectors/index.js.map +1 -1
- package/dist/events/service.d.ts +2 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +3 -3
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +71 -82
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/durable.d.ts +1 -0
- package/dist/execution/durable.d.ts.map +1 -1
- package/dist/execution/primitive.d.ts +2 -0
- package/dist/execution/primitive.d.ts.map +1 -1
- package/dist/execution/primitive.js +64 -71
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +1 -0
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +66 -75
- package/dist/execution/request.js.map +3 -3
- package/dist/http/index.js +10 -11
- package/dist/http/index.js.map +1 -1
- package/dist/index.d.ts +17 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +457 -477
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/changes.d.ts +5 -0
- package/dist/lake-storage/changes.d.ts.map +1 -0
- package/dist/lake-storage/in-memory.d.ts +2 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +2 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +40 -42
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/types.d.ts +36 -0
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/logging/index.d.ts +3 -4
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/index.js +18 -40
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/internal.d.ts +5 -0
- package/dist/logging/internal.d.ts.map +1 -0
- package/dist/logging/internal.js +43 -0
- package/dist/logging/internal.js.map +9 -0
- package/dist/materialization/index.d.ts +1 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +46 -49
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/model.d.ts +12 -1
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.d.ts +1 -1
- package/dist/materializer/index.d.ts.map +1 -1
- package/dist/materializer/index.js +137 -145
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/materializer.d.ts +5 -1
- package/dist/materializer/materializer.d.ts.map +1 -1
- package/dist/materializer/projections/entry-validator.d.ts +2 -1
- package/dist/materializer/projections/entry-validator.d.ts.map +1 -1
- package/dist/materializer/projections/replace.d.ts.map +1 -1
- package/dist/materializer/projections/source-materialization.d.ts +4 -3
- package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
- package/dist/materializer/shared/normalize.d.ts +2 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/errors.d.ts +4 -0
- package/dist/models/errors.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +9 -0
- package/dist/models/execution/binding.d.ts.map +1 -0
- package/dist/models/execution/errors.d.ts +9 -0
- package/dist/models/execution/errors.d.ts.map +1 -0
- package/dist/models/execution/index.d.ts +11 -0
- package/dist/models/execution/index.d.ts.map +1 -0
- package/dist/models/execution/index.js +55 -0
- package/dist/models/execution/index.js.map +9 -0
- package/dist/models/execution/model-call-accounting.d.ts +17 -0
- package/dist/models/execution/model-call-accounting.d.ts.map +1 -0
- package/dist/models/execution/model-call-admission.d.ts +47 -0
- package/dist/models/execution/model-call-admission.d.ts.map +1 -0
- package/dist/models/execution/model-call-limits.d.ts +15 -0
- package/dist/models/execution/model-call-limits.d.ts.map +1 -0
- package/dist/models/execution/model-call-recorder.d.ts +40 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -0
- package/dist/models/execution/model-call-recovery.d.ts +12 -0
- package/dist/models/execution/model-call-recovery.d.ts.map +1 -0
- package/dist/models/execution/recovery-queue.d.ts +5 -0
- package/dist/models/execution/recovery-queue.d.ts.map +1 -0
- package/dist/models/execution/types.d.ts +44 -0
- package/dist/models/execution/types.d.ts.map +1 -0
- package/dist/models/execution/usage.d.ts +5 -0
- package/dist/models/execution/usage.d.ts.map +1 -0
- package/dist/models/execution.d.ts +6 -0
- package/dist/models/execution.d.ts.map +1 -0
- package/dist/models/generation-types.d.ts +40 -0
- package/dist/models/generation-types.d.ts.map +1 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +42 -43
- package/dist/models/index.js.map +1 -1
- package/dist/models/language-model.d.ts +3 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/models/output.d.ts +5 -0
- package/dist/models/output.d.ts.map +1 -0
- package/dist/models/resolve.d.ts +4 -0
- package/dist/models/resolve.d.ts.map +1 -0
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +75 -87
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/index.js +67 -76
- package/dist/objects/query/index.js.map +1 -1
- package/dist/ontology/index.d.ts +1 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +62 -113
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.d.ts +7 -0
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +65 -116
- package/dist/ontology/internal.js.map +3 -4
- package/dist/pipelines/index.js +57 -66
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/run-dispatch.d.ts.map +1 -1
- package/dist/projections/internal.js +56 -67
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/query.d.ts +0 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +11 -15
- package/dist/query.js.map +1 -1
- package/dist/queues/in-memory.d.ts +7 -3
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +2 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +6 -7
- package/dist/queues/index.js.map +1 -1
- package/dist/queues/indexed-heap.d.ts +15 -0
- package/dist/queues/indexed-heap.d.ts.map +1 -0
- package/dist/queues/types.d.ts +3 -20
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/rules/internal.js +4 -5
- package/dist/rules/internal.js.map +1 -1
- package/dist/runtime/create.d.ts +2 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +2 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.js +13 -14
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/ontology-mutations.d.ts +3 -1
- package/dist/runtime/ontology-mutations.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +2 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/sandboxes/errors.d.ts +4 -0
- package/dist/sandboxes/errors.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +2 -2
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +14 -13
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +35 -7
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/scheduler/index.js +9 -10
- package/dist/scheduler/index.js.map +1 -1
- package/dist/schedules/index.js +31 -33
- package/dist/schedules/index.js.map +1 -1
- package/dist/shares/internal.js +46 -54
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +7 -9
- package/dist/storage/action-runs/failure.js.map +1 -1
- package/dist/storage/action-runs/provider.js +4 -8
- package/dist/storage/action-runs/provider.js.map +1 -1
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +26 -30
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +0 -3
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/attribution.d.ts +4 -0
- package/dist/storage/ai-cost/attribution.d.ts.map +1 -0
- package/dist/storage/ai-cost/groups.d.ts +3 -0
- package/dist/storage/ai-cost/groups.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.d.ts +1 -0
- package/dist/storage/ai-cost/provider.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +30 -143
- package/dist/storage/ai-cost/provider.js.map +3 -4
- package/dist/storage/ai-cost/types.d.ts +15 -0
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +14 -16
- package/dist/storage/ai-limits/enforcement.js.map +1 -1
- package/dist/storage/ai-limits/provider.js +56 -57
- package/dist/storage/ai-limits/provider.js.map +1 -1
- package/dist/storage/auth/in-memory.d.ts +1 -1
- package/dist/storage/auth/in-memory.d.ts.map +1 -1
- package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +35 -37
- package/dist/storage/connector-connections/provider.js.map +3 -3
- package/dist/storage/connector-connections/types.d.ts +3 -2
- package/dist/storage/connector-connections/types.d.ts.map +1 -1
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +2 -1
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +14 -11
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/types.d.ts +6 -2
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts +2 -0
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +7 -8
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +221 -256
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +10 -0
- package/dist/storage/internal.d.ts.map +1 -0
- package/dist/storage/internal.js +47 -0
- package/dist/storage/internal.js.map +9 -0
- package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/shared-state.d.ts +15 -2
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts +6 -0
- package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/index.d.ts +1 -1
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +16 -0
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +107 -109
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/sources.d.ts +13 -4
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +18 -19
- package/dist/storage/operation-scope.js.map +1 -1
- package/dist/storage/pipeline-runs/provider.js +4 -6
- package/dist/storage/pipeline-runs/provider.js.map +1 -1
- package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
- package/dist/storage/projection-runs/provider.js +66 -70
- package/dist/storage/projection-runs/provider.js.map +1 -1
- package/dist/storage/projection-runs/types.d.ts +2 -0
- package/dist/storage/projection-runs/types.d.ts.map +1 -1
- package/dist/storage/share-grants/provider.js +17 -19
- package/dist/storage/share-grants/provider.js.map +1 -1
- package/dist/storage/share-sessions/provider.js +14 -15
- package/dist/storage/share-sessions/provider.js.map +1 -1
- package/dist/storage/sync-runs/provider.js +4 -6
- package/dist/storage/sync-runs/provider.js.map +1 -1
- package/dist/storage/webhook-runs/provider.js +4 -6
- package/dist/storage/webhook-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +13 -21
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +0 -3
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/index.js +56 -65
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/run-dispatch.d.ts.map +1 -1
- package/dist/testing/action-execution.d.ts +4 -1
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/agent-execution.d.ts +1 -0
- package/dist/testing/agent-execution.d.ts.map +1 -1
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -1
- package/dist/testing/broker-contract.d.ts.map +1 -1
- package/dist/testing/connector-connection-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution.d.ts +1 -0
- package/dist/testing/execution.d.ts.map +1 -1
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2282 -1662
- package/dist/testing/index.js.map +16 -15
- package/dist/testing/lake-changes-contract.d.ts +6 -0
- package/dist/testing/lake-changes-contract.d.ts.map +1 -0
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/workflow-execution.d.ts +1 -0
- package/dist/testing/workflow-execution.d.ts.map +1 -1
- package/dist/webhooks/connections.d.ts +6 -0
- package/dist/webhooks/connections.d.ts.map +1 -0
- package/dist/webhooks/index.d.ts +1 -1
- package/dist/webhooks/index.d.ts.map +1 -1
- package/dist/webhooks/internal.d.ts +2 -0
- package/dist/webhooks/internal.d.ts.map +1 -1
- package/dist/webhooks/internal.js +98 -61
- package/dist/webhooks/internal.js.map +4 -3
- package/dist/webhooks/registry.d.ts +1 -1
- package/dist/webhooks/registry.d.ts.map +1 -1
- package/dist/webhooks/types.d.ts +15 -4
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/workers/index.js +11 -13
- package/dist/workers/index.js.map +2 -2
- package/dist/workflows/failure.d.ts +2 -0
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.js +136 -147
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/run-dispatch.d.ts +3 -2
- package/dist/workflows/run-dispatch.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +2 -0
- package/dist/workflows/types.d.ts.map +1 -1
- package/package.json +48 -30
- package/src/actions/run-dispatch.ts +2 -6
- package/src/actions/types/context.ts +2 -0
- package/src/actions/validation.ts +2 -1
- package/src/agents/adapters.ts +4 -9
- package/src/agents/{context.ts → context/entries.ts} +4 -4
- package/src/agents/context/index.ts +15 -0
- package/src/agents/context-model.ts +1 -1
- package/src/agents/context-resolution.ts +1 -1
- package/src/agents/index.ts +4 -4
- package/src/agents/message.ts +1 -1
- package/src/agents/model-loop.ts +8 -0
- package/src/agents/request.ts +11 -26
- package/src/agents/streams/index.ts +18 -0
- package/src/agents/streams/internal.ts +19 -0
- package/src/agents/{streams.ts → streams/protocol.ts} +5 -5
- package/src/agents/types.ts +1 -1
- package/src/agents/validation.ts +3 -7
- package/src/auth/index.ts +0 -1
- package/src/bootstrap/discovery.ts +81 -24
- package/src/bootstrap/index.ts +8 -1
- package/src/broker/in-memory.ts +104 -39
- package/src/broker/index.ts +4 -1
- package/src/broker/retention.ts +28 -0
- package/src/broker/subscriber.ts +21 -0
- package/src/broker/types.ts +15 -1
- package/src/connectors/builders.ts +0 -6
- package/src/connectors/connections/authorizations.ts +11 -5
- package/src/connectors/connections/contracts.ts +3 -0
- package/src/connectors/connections/request.ts +56 -22
- package/src/connectors/connections/runs.ts +1 -0
- package/src/connectors/connections/tokens.ts +4 -0
- package/src/connectors/connections/validation.ts +91 -5
- package/src/connectors/types.ts +19 -4
- package/src/errors/internal.ts +90 -10
- package/src/errors/redaction.ts +98 -0
- package/src/errors/types.ts +4 -0
- package/src/events/execution.ts +2 -2
- package/src/events/service.ts +3 -3
- package/src/execution/agent.ts +5 -3
- package/src/execution/durable.ts +11 -1
- package/src/execution/primitive.ts +5 -1
- package/src/execution/request.ts +3 -0
- package/src/index.ts +30 -20
- package/src/lake-storage/changes.ts +43 -0
- package/src/lake-storage/in-memory.ts +73 -0
- package/src/lake-storage/index.ts +4 -0
- package/src/lake-storage/types.ts +40 -0
- package/src/logging/index.ts +2 -33
- package/src/logging/internal.ts +43 -0
- package/src/logging/service.ts +1 -1
- package/src/materialization/index.ts +2 -0
- package/src/materialization/model.ts +14 -1
- package/src/materializer/index.ts +2 -0
- package/src/materializer/materializer.ts +10 -0
- package/src/materializer/projections/entry-validator.ts +19 -1
- package/src/materializer/projections/replace.ts +36 -1
- package/src/materializer/projections/source-materialization.ts +26 -6
- package/src/materializer/shared/normalize.ts +1 -1
- package/src/models/errors.ts +12 -0
- package/src/models/execution/binding.ts +29 -0
- package/src/models/execution/errors.ts +18 -0
- package/src/models/execution/index.ts +26 -0
- package/src/models/execution/model-call-accounting.ts +211 -0
- package/src/models/execution/model-call-admission.ts +127 -0
- package/src/models/execution/model-call-limits.ts +135 -0
- package/src/models/execution/model-call-recorder.ts +235 -0
- package/src/models/execution/model-call-recovery.ts +125 -0
- package/src/models/execution/recovery-queue.ts +31 -0
- package/src/models/execution/types.ts +58 -0
- package/src/models/execution/usage.ts +23 -0
- package/src/models/execution.ts +207 -0
- package/src/models/generation-types.ts +50 -0
- package/src/models/index.ts +8 -0
- package/src/models/language-model.ts +3 -0
- package/src/models/output.ts +45 -0
- package/src/models/resolve.ts +27 -0
- package/src/objects/execution.ts +1 -1
- package/src/ontology/index.ts +1 -2
- package/src/ontology/internal.ts +35 -0
- package/src/pipelines/run-dispatch.ts +21 -1
- package/src/projections/run-dispatch.ts +31 -68
- package/src/query.ts +0 -1
- package/src/queues/in-memory.ts +105 -62
- package/src/queues/index.ts +4 -2
- package/src/queues/indexed-heap.ts +74 -0
- package/src/queues/types.ts +6 -25
- package/src/runtime/create.ts +2 -1
- package/src/runtime/host.ts +2 -15
- package/src/runtime/ontology-mutations.ts +4 -0
- package/src/runtime/sixb.ts +4 -0
- package/src/sandboxes/errors.ts +5 -0
- package/src/sandboxes/index.ts +3 -0
- package/src/sandboxes/sandbox.ts +35 -7
- package/src/storage/agents/in-memory.ts +0 -3
- package/src/storage/agents/types.ts +0 -3
- package/src/storage/ai-cost/analytics.ts +1 -1
- package/src/storage/ai-cost/attribution.ts +15 -0
- package/src/storage/ai-cost/groups.ts +5 -1
- package/src/storage/ai-cost/provider.ts +1 -0
- package/src/storage/ai-cost/types.ts +7 -0
- package/src/storage/auth/in-memory.ts +1 -1
- package/src/storage/connector-connections/in-memory.ts +3 -1
- package/src/storage/connector-connections/provider/runs.ts +3 -1
- package/src/storage/connector-connections/types.ts +3 -2
- package/src/storage/executions/in-memory.ts +4 -9
- package/src/storage/executions/provider.ts +4 -0
- package/src/storage/executions/types.ts +6 -2
- package/src/storage/executions/validation.ts +32 -0
- package/src/storage/in-memory/index.ts +16 -1
- package/src/storage/index.ts +4 -29
- package/src/storage/internal.ts +20 -0
- package/src/storage/ontology/in-memory/materializations-state.ts +5 -18
- package/src/storage/ontology/in-memory/materializations.ts +73 -92
- package/src/storage/ontology/in-memory/shared-state.ts +26 -1
- package/src/storage/ontology/in-memory/source-roots.ts +123 -0
- package/src/storage/ontology/in-memory/sources.ts +78 -23
- package/src/storage/ontology/index.ts +1 -0
- package/src/storage/ontology/provider.ts +70 -0
- package/src/storage/ontology/sources.ts +14 -3
- package/src/storage/projection-runs/lifecycle.ts +5 -2
- package/src/storage/projection-runs/types.ts +4 -3
- package/src/storage/workflow-runs/in-memory.ts +0 -2
- package/src/storage/workflow-runs/types.ts +0 -3
- package/src/syncs/run-dispatch.ts +19 -1
- package/src/testing/action-execution.ts +9 -2
- package/src/testing/agent-execution.ts +3 -0
- package/src/testing/agent-storage-contract.ts +0 -5
- package/src/testing/ai-model-call-groups-contract.ts +74 -2
- package/src/testing/broker-contract.ts +95 -0
- package/src/testing/connector-connection-storage-contract.ts +18 -1
- package/src/testing/execution-storage-contract.ts +59 -1
- package/src/testing/execution.ts +6 -0
- package/src/testing/index.ts +1 -0
- package/src/testing/lake-changes-contract.ts +240 -0
- package/src/testing/materializer-storage-contract.ts +172 -1
- package/src/testing/ontology-storage-contract.ts +7 -0
- package/src/testing/projection-run-storage-contract.ts +34 -0
- package/src/testing/workflow-execution.ts +4 -0
- package/src/webhooks/connections.ts +56 -0
- package/src/webhooks/index.ts +2 -0
- package/src/webhooks/internal.ts +2 -0
- package/src/webhooks/registry.ts +3 -4
- package/src/webhooks/types.ts +17 -4
- package/src/workflows/failure.ts +62 -1
- package/src/workflows/request.ts +0 -9
- package/src/workflows/run-dispatch.ts +42 -32
- package/src/workflows/types.ts +2 -0
- package/src/workflows/validation.ts +1 -1
- package/dist/agents/context.d.ts.map +0 -1
- package/dist/agents/context.js +0 -23
- package/dist/agents/streams.d.ts.map +0 -1
- package/dist/agents/streams.js +0 -55
- package/dist/chunk-08m3b6w8.js +0 -32
- package/dist/chunk-19jp6g9d.js.map +0 -11
- package/dist/chunk-2xns679x.js.map +0 -11
- package/dist/chunk-3xep5cjx.js.map +0 -15
- package/dist/chunk-407j3msh.js +0 -60
- package/dist/chunk-4qfkag59.js +0 -1568
- package/dist/chunk-4qfkag59.js.map +0 -20
- package/dist/chunk-5e3pq99w.js.map +0 -11
- package/dist/chunk-5gd7tpv6.js.map +0 -11
- package/dist/chunk-7y0f6rf1.js.map +0 -10
- package/dist/chunk-8m5ejdpn.js.map +0 -10
- package/dist/chunk-8tsf6dmc.js.map +0 -15
- package/dist/chunk-ajnan18g.js.map +0 -12
- package/dist/chunk-c15dr03f.js +0 -43
- package/dist/chunk-d8qkxt2v.js.map +0 -10
- package/dist/chunk-jq43kdvk.js +0 -50
- package/dist/chunk-k34z5rvh.js.map +0 -11
- package/dist/chunk-k522z7v6.js.map +0 -10
- package/dist/chunk-mth82m8t.js.map +0 -14
- package/dist/chunk-mwsxn98e.js.map +0 -36
- package/dist/chunk-p03r0h5s.js.map +0 -16
- package/dist/chunk-p1rzczbt.js +0 -218
- package/dist/chunk-rafagrwr.js.map +0 -11
- package/dist/chunk-rv2hkwwa.js.map +0 -14
- package/dist/chunk-sbzzr4kx.js.map +0 -63
- package/dist/chunk-tpnd31c1.js +0 -242
- package/dist/chunk-tpnd31c1.js.map +0 -11
- package/dist/chunk-w9tg6yyb.js.map +0 -12
- package/dist/chunk-wtf06et8.js.map +0 -14
- package/dist/chunk-xajtptbw.js.map +0 -40
- package/dist/chunk-xhy826cz.js.map +0 -10
- package/dist/chunk-y64skrwp.js +0 -19
- package/dist/chunk-zcnhxkvd.js +0 -7
- package/dist/logging/types.js +0 -27
- package/dist/logging/types.js.map +0 -9
- /package/dist/{chunk-zqqz8052.js → chunk-7n30ybym.js} +0 -0
- /package/dist/{chunk-zqqz8052.js.map → chunk-7n30ybym.js.map} +0 -0
- /package/dist/{chunk-4a849fr1.js.map → chunk-9tc8dxmn.js.map} +0 -0
- /package/dist/{chunk-j1sbhm7p.js → chunk-ey1nk510.js} +0 -0
- /package/dist/{chunk-j1sbhm7p.js.map → chunk-ey1nk510.js.map} +0 -0
- /package/dist/{chunk-z4ccwbkz.js.map → chunk-x9v4cx1d.js.map} +0 -0
|
@@ -1,122 +1,126 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
} from "./chunk-
|
|
3
|
+
OntologyRegistry2
|
|
4
|
+
} from "./chunk-ap0g1g74.js";
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
ProjectionRegistry2,
|
|
7
|
+
createOntologyMaterializer2
|
|
8
|
+
} from "./chunk-ftv470j8.js";
|
|
8
9
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
captureSixbFailure2,
|
|
11
|
+
isSixbError2
|
|
12
|
+
} from "./chunk-f4w3yp4f.js";
|
|
11
13
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
captureExecutionScope,
|
|
15
|
+
resolveExecutionScopeAuthorization,
|
|
16
|
+
AuthorizationError2
|
|
17
|
+
} from "./chunk-dz5h08xv.js";
|
|
15
18
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
validateSharesAtStartup
|
|
20
|
-
} from "./chunk-3xep5cjx.js";
|
|
19
|
+
SecurityRegistry,
|
|
20
|
+
AuthRuntime2
|
|
21
|
+
} from "./chunk-g00bfdq6.js";
|
|
21
22
|
import {
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
AuthRuntimeError2,
|
|
24
|
+
isMagicLinkAuthStrategy2,
|
|
25
|
+
isOidcAuthStrategy2
|
|
26
|
+
} from "./chunk-q5gz3g2j.js";
|
|
24
27
|
import {
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
RuntimeError2,
|
|
29
|
+
createModelCatalog2
|
|
30
|
+
} from "./chunk-e0d1rzef.js";
|
|
27
31
|
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
validateWorkflowsAtStartup
|
|
32
|
-
} from "./chunk-xajtptbw.js";
|
|
32
|
+
isMigrationCapableStorage2,
|
|
33
|
+
checkStorageSchema2
|
|
34
|
+
} from "./chunk-p6a4npdx.js";
|
|
33
35
|
import {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
SyncValidationError,
|
|
37
|
-
createAmbiguousProviderOperationError,
|
|
38
|
-
createConnectorCodedError,
|
|
39
|
-
isConnectorStorageError,
|
|
40
|
-
oauthErrorKind,
|
|
41
|
-
providerBoundaryError,
|
|
42
|
-
providerFailureCode,
|
|
43
|
-
recoverConnectorFailure,
|
|
44
|
-
storageBoundaryError
|
|
45
|
-
} from "./chunk-wtf06et8.js";
|
|
36
|
+
createAuthorizedObjectReader
|
|
37
|
+
} from "./chunk-nmbxcaqx.js";
|
|
46
38
|
import {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
} from "./chunk-
|
|
39
|
+
attachSixbErrorReporter2,
|
|
40
|
+
shareSixbErrorReporter2
|
|
41
|
+
} from "./chunk-7apz6hg4.js";
|
|
50
42
|
import {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
} from "./chunk-8m5ejdpn.js";
|
|
43
|
+
ActionRegistry2
|
|
44
|
+
} from "./chunk-p5vcsw9c.js";
|
|
54
45
|
import {
|
|
55
|
-
|
|
56
|
-
} from "./chunk-
|
|
46
|
+
assertDatasetDefinition2
|
|
47
|
+
} from "./chunk-860dwwy0.js";
|
|
57
48
|
import {
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
OntologyOutboxDispatcher2,
|
|
50
|
+
createDomainEventService2
|
|
51
|
+
} from "./chunk-nt99sxd6.js";
|
|
60
52
|
import {
|
|
61
|
-
|
|
62
|
-
} from "./chunk-
|
|
53
|
+
validateSchedulesAtStartup2
|
|
54
|
+
} from "./chunk-e1c18xjx.js";
|
|
63
55
|
import {
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
ConnectorError2,
|
|
57
|
+
ConnectorNotFoundError2,
|
|
58
|
+
createConnectorCodedError,
|
|
59
|
+
createAmbiguousProviderOperationError,
|
|
60
|
+
oauthErrorKind,
|
|
61
|
+
providerFailureCode,
|
|
62
|
+
providerBoundaryError,
|
|
63
|
+
isConnectorStorageError,
|
|
64
|
+
storageBoundaryError,
|
|
65
|
+
recoverConnectorFailure
|
|
66
|
+
} from "./chunk-v2vcg0w6.js";
|
|
66
67
|
import {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
} from "./chunk-f26bck4t.js";
|
|
68
|
+
toolsFromProjectConfig
|
|
69
|
+
} from "./chunk-skz0hst3.js";
|
|
70
70
|
import {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
assertNoAgentDefinitions,
|
|
72
|
+
validateWorkflowsAtStartup2,
|
|
73
|
+
validateWorkflowAgentStepGroupReferences2,
|
|
74
|
+
createBoundSixb
|
|
75
|
+
} from "./chunk-5p1v802y.js";
|
|
73
76
|
import {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
} from "./chunk-sbzzr4kx.js";
|
|
77
|
+
registerConnectorConnectionCallbackProcess
|
|
78
|
+
} from "./chunk-5a4a52tq.js";
|
|
77
79
|
import {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
registerOntologyMutationRuntime2,
|
|
81
|
+
createOntologyMutationRuntime2
|
|
82
|
+
} from "./chunk-85cd7e8c.js";
|
|
81
83
|
import {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
} from "./chunk-p2vqaxkc.js";
|
|
84
|
+
SchedulerRuntime2
|
|
85
|
+
} from "./chunk-z5rnrmz1.js";
|
|
85
86
|
import {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
validateRulesAtStartup,
|
|
88
|
+
validateSharesAtStartup,
|
|
89
|
+
discoverOntologySources2,
|
|
90
|
+
discoverProjectDefinitions2
|
|
91
|
+
} from "./chunk-agbbygvh.js";
|
|
89
92
|
import {
|
|
90
|
-
|
|
91
|
-
} from "./chunk-
|
|
93
|
+
LoggingService2
|
|
94
|
+
} from "./chunk-3qms4nax.js";
|
|
92
95
|
import {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} from "./chunk-4sm0aznx.js";
|
|
96
|
+
registerProjectionRegistry2
|
|
97
|
+
} from "./chunk-1824gssz.js";
|
|
96
98
|
import {
|
|
97
|
-
|
|
98
|
-
} from "./chunk-
|
|
99
|
+
SyncValidationError2
|
|
100
|
+
} from "./chunk-5c7ga8zz.js";
|
|
99
101
|
import {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
isOidcAuthStrategy
|
|
103
|
-
} from "./chunk-xwnf87e1.js";
|
|
102
|
+
isOAuthConnectorDefinition2
|
|
103
|
+
} from "./chunk-9x8dybsb.js";
|
|
104
104
|
import {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
ensureExecutionRecord2
|
|
106
|
+
} from "./chunk-17kfctj6.js";
|
|
107
|
+
import {
|
|
108
|
+
ConnectorConnectionStorageError2,
|
|
109
|
+
CONNECTOR_CONNECTION_RUN_FAILURE_CODES2
|
|
110
|
+
} from "./chunk-2c4j899j.js";
|
|
109
111
|
import {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
reportEventDeliveryFailure3
|
|
113
|
+
} from "./chunk-72w2pxk7.js";
|
|
114
|
+
import {
|
|
115
|
+
isJsonObject2
|
|
116
|
+
} from "./chunk-wy0qdqfm.js";
|
|
113
117
|
// src/webhooks/errors.ts
|
|
114
|
-
class
|
|
118
|
+
class WebhookValidationError2 extends Error {
|
|
115
119
|
name = "WebhookValidationError";
|
|
116
120
|
}
|
|
117
121
|
|
|
118
122
|
// src/webhooks/builders.ts
|
|
119
|
-
function
|
|
123
|
+
function defineWebhook2(id) {
|
|
120
124
|
assertNonEmpty(id, "Webhook id");
|
|
121
125
|
return new WebhookMethodBuilder(id);
|
|
122
126
|
}
|
|
@@ -140,7 +144,7 @@ class WebhookBodyBuilder {
|
|
|
140
144
|
}
|
|
141
145
|
json(schema) {
|
|
142
146
|
if (schema !== undefined && typeof schema.parse !== "function") {
|
|
143
|
-
throw new
|
|
147
|
+
throw new WebhookValidationError2("[Sixb] Webhook JSON schema must provide parse(value).");
|
|
144
148
|
}
|
|
145
149
|
return new WebhookBuilder({
|
|
146
150
|
id: this.id,
|
|
@@ -192,7 +196,7 @@ class WebhookBuilder {
|
|
|
192
196
|
}
|
|
193
197
|
verify(verify) {
|
|
194
198
|
if (typeof verify !== "function") {
|
|
195
|
-
throw new
|
|
199
|
+
throw new WebhookValidationError2("[Sixb] Webhook verify must be a function.");
|
|
196
200
|
}
|
|
197
201
|
return new WebhookBuilder({
|
|
198
202
|
...this.draft,
|
|
@@ -201,7 +205,7 @@ class WebhookBuilder {
|
|
|
201
205
|
}
|
|
202
206
|
idempotencyKey(resolver) {
|
|
203
207
|
if (typeof resolver !== "function") {
|
|
204
|
-
throw new
|
|
208
|
+
throw new WebhookValidationError2("[Sixb] Webhook idempotencyKey must be a function.");
|
|
205
209
|
}
|
|
206
210
|
return new WebhookBuilder({
|
|
207
211
|
...this.draft,
|
|
@@ -210,7 +214,7 @@ class WebhookBuilder {
|
|
|
210
214
|
}
|
|
211
215
|
handle(handle) {
|
|
212
216
|
if (typeof handle !== "function") {
|
|
213
|
-
throw new
|
|
217
|
+
throw new WebhookValidationError2("[Sixb] Webhook handle must be a function.");
|
|
214
218
|
}
|
|
215
219
|
return {
|
|
216
220
|
kind: "webhook",
|
|
@@ -225,11 +229,11 @@ class WebhookBuilder {
|
|
|
225
229
|
}
|
|
226
230
|
function assertNonEmpty(value, field) {
|
|
227
231
|
if (!value.trim()) {
|
|
228
|
-
throw new
|
|
232
|
+
throw new WebhookValidationError2(`[Sixb] ${field} must not be empty.`);
|
|
229
233
|
}
|
|
230
234
|
}
|
|
231
235
|
// src/webhooks/connector.ts
|
|
232
|
-
function
|
|
236
|
+
function webhookConnector2(options) {
|
|
233
237
|
return {
|
|
234
238
|
type: "webhook",
|
|
235
239
|
webhooks: options.webhooks,
|
|
@@ -245,23 +249,21 @@ class WebhookRegistry {
|
|
|
245
249
|
constructor(options) {
|
|
246
250
|
const registered = [];
|
|
247
251
|
for (const connector of options.connectors) {
|
|
248
|
-
if (!isStaticConnectorDefinition(connector))
|
|
249
|
-
continue;
|
|
250
252
|
const webhooks = connector.adapter.webhooks ?? [];
|
|
251
253
|
if (!Array.isArray(webhooks)) {
|
|
252
|
-
throw new
|
|
254
|
+
throw new WebhookValidationError2(`[Sixb] Connector '${connector.id}' webhooks must be an array when provided.`);
|
|
253
255
|
}
|
|
254
256
|
const ids = new Set;
|
|
255
257
|
for (const webhook of webhooks) {
|
|
256
258
|
assertValidWebhook(connector.id, webhook);
|
|
257
259
|
if (ids.has(webhook.id)) {
|
|
258
|
-
throw new
|
|
260
|
+
throw new WebhookValidationError2(`[Sixb] Duplicate webhook id '${webhook.id}' for connector '${connector.id}'.`);
|
|
259
261
|
}
|
|
260
262
|
ids.add(webhook.id);
|
|
261
263
|
const route = webhookRoute(connector.id, webhook.id);
|
|
262
264
|
const duplicate = this.byRoute.get(route);
|
|
263
265
|
if (duplicate) {
|
|
264
|
-
throw new
|
|
266
|
+
throw new WebhookValidationError2(`[Sixb] Duplicate webhook route '${route}' for connectors '${duplicate.connector.id}' and '${connector.id}'.`);
|
|
265
267
|
}
|
|
266
268
|
const registeredWebhook = {
|
|
267
269
|
connector,
|
|
@@ -289,52 +291,52 @@ function webhookRoute(connectorId, webhookId) {
|
|
|
289
291
|
}
|
|
290
292
|
function assertValidWebhook(connectorId, webhook) {
|
|
291
293
|
if (!isRecord(webhook)) {
|
|
292
|
-
throw new
|
|
294
|
+
throw new WebhookValidationError2(`[Sixb] Connector '${connectorId}' has an invalid webhook.`);
|
|
293
295
|
}
|
|
294
296
|
if (webhook.kind !== "webhook") {
|
|
295
|
-
throw new
|
|
297
|
+
throw new WebhookValidationError2(`[Sixb] Connector '${connectorId}' webhook must be created with defineWebhook(...).`);
|
|
296
298
|
}
|
|
297
299
|
if (typeof webhook.id !== "string" || !webhook.id.trim()) {
|
|
298
|
-
throw new
|
|
300
|
+
throw new WebhookValidationError2(`[Sixb] Connector '${connectorId}' webhook id must not be empty.`);
|
|
299
301
|
}
|
|
300
302
|
if (webhook.method !== "POST") {
|
|
301
|
-
throw new
|
|
303
|
+
throw new WebhookValidationError2(`[Sixb] Webhook '${connectorId}/${webhook.id}' must use method POST.`);
|
|
302
304
|
}
|
|
303
305
|
if (!isRecord(webhook.body)) {
|
|
304
|
-
throw new
|
|
306
|
+
throw new WebhookValidationError2(`[Sixb] Webhook '${connectorId}/${webhook.id}' body is required.`);
|
|
305
307
|
}
|
|
306
308
|
if (webhook.body.format !== "json" && webhook.body.format !== "text" && webhook.body.format !== "raw") {
|
|
307
|
-
throw new
|
|
309
|
+
throw new WebhookValidationError2(`[Sixb] Webhook '${connectorId}/${webhook.id}' body format must be json, text, or raw.`);
|
|
308
310
|
}
|
|
309
311
|
if (typeof webhook.body.parse !== "function") {
|
|
310
|
-
throw new
|
|
312
|
+
throw new WebhookValidationError2(`[Sixb] Webhook '${connectorId}/${webhook.id}' body parser must provide parse(value).`);
|
|
311
313
|
}
|
|
312
314
|
if (webhook.verify !== undefined && typeof webhook.verify !== "function") {
|
|
313
|
-
throw new
|
|
315
|
+
throw new WebhookValidationError2(`[Sixb] Webhook '${connectorId}/${webhook.id}' verify must be a function.`);
|
|
314
316
|
}
|
|
315
317
|
if (webhook.idempotencyKey !== undefined && typeof webhook.idempotencyKey !== "function") {
|
|
316
|
-
throw new
|
|
318
|
+
throw new WebhookValidationError2(`[Sixb] Webhook '${connectorId}/${webhook.id}' idempotencyKey must be a function.`);
|
|
317
319
|
}
|
|
318
320
|
if (typeof webhook.handle !== "function") {
|
|
319
|
-
throw new
|
|
321
|
+
throw new WebhookValidationError2(`[Sixb] Webhook '${connectorId}/${webhook.id}' handle must be a function.`);
|
|
320
322
|
}
|
|
321
323
|
}
|
|
322
324
|
function isRecord(value) {
|
|
323
325
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
324
326
|
}
|
|
325
327
|
// src/webhooks/unverified.ts
|
|
326
|
-
class
|
|
328
|
+
class UnverifiedWebhookError2 extends Error {
|
|
327
329
|
name = "UnverifiedWebhookError";
|
|
328
330
|
}
|
|
329
|
-
function
|
|
331
|
+
function resolveWebhookVerification2(subject, options) {
|
|
330
332
|
if (options.credential)
|
|
331
333
|
return { credential: options.credential };
|
|
332
334
|
if (!options.allowUnverified) {
|
|
333
|
-
throw new
|
|
335
|
+
throw new UnverifiedWebhookError2(`[${subject.connector}] This webhook has no credential, so ${subject.verifies} cannot be ` + `checked and the route would accept unverified requests from anyone who can reach it. ` + `Set ${subject.credentialOption}, or pass ${subject.allowOption} to accept that.`);
|
|
334
336
|
}
|
|
335
337
|
return { allowUnverified: true };
|
|
336
338
|
}
|
|
337
|
-
function
|
|
339
|
+
function warnUnverifiedWebhook2(subject, verification) {
|
|
338
340
|
if (verification.credential)
|
|
339
341
|
return;
|
|
340
342
|
console.warn(`[${subject.connector}] ${subject.allowOption}, so ${subject.verifies} is not checked ` + `and this route accepts unverified requests from anyone who can reach it. ` + `Set ${subject.credentialOption} before exposing it.`);
|
|
@@ -467,6 +469,12 @@ function validateCredentials(credentials) {
|
|
|
467
469
|
}
|
|
468
470
|
normalized.expiresAt = new Date(credentials.expiresAt);
|
|
469
471
|
}
|
|
472
|
+
if (credentials.authorizationContext !== undefined) {
|
|
473
|
+
if (!isJsonObject2(credentials.authorizationContext)) {
|
|
474
|
+
throw createConnectorCodedError("connector.adapter_invalid", "OAuth connector adapter returned invalid authorization context; expected a JSON object.");
|
|
475
|
+
}
|
|
476
|
+
normalized.authorizationContext = structuredClone(credentials.authorizationContext);
|
|
477
|
+
}
|
|
470
478
|
return normalized;
|
|
471
479
|
}
|
|
472
480
|
function validateAccounts(accounts) {
|
|
@@ -500,7 +508,8 @@ function serializeCredentials(credentials) {
|
|
|
500
508
|
...credentials.refreshToken === undefined ? {} : { refreshToken: credentials.refreshToken },
|
|
501
509
|
...credentials.tokenType === undefined ? {} : { tokenType: credentials.tokenType },
|
|
502
510
|
...credentials.scopes === undefined ? {} : { scopes: credentials.scopes },
|
|
503
|
-
...credentials.expiresAt === undefined ? {} : { expiresAt: credentials.expiresAt.toISOString() }
|
|
511
|
+
...credentials.expiresAt === undefined ? {} : { expiresAt: credentials.expiresAt.toISOString() },
|
|
512
|
+
...credentials.authorizationContext === undefined ? {} : { authorizationContext: credentials.authorizationContext }
|
|
504
513
|
});
|
|
505
514
|
}
|
|
506
515
|
function parseCredentials(serialized) {
|
|
@@ -513,7 +522,7 @@ function parseCredentials(serialized) {
|
|
|
513
522
|
if (!isRecord2(value) || value.version !== 1 || typeof value.accessToken !== "string") {
|
|
514
523
|
throw createConnectorCodedError("connector.credentials_unavailable", "Stored connector credentials are invalid.");
|
|
515
524
|
}
|
|
516
|
-
if (value.refreshToken !== undefined && typeof value.refreshToken !== "string" || value.tokenType !== undefined && typeof value.tokenType !== "string" || value.scopes !== undefined && (!Array.isArray(value.scopes) || value.scopes.some((scope) => typeof scope !== "string")) || value.expiresAt !== undefined && typeof value.expiresAt !== "string") {
|
|
525
|
+
if (value.refreshToken !== undefined && typeof value.refreshToken !== "string" || value.tokenType !== undefined && typeof value.tokenType !== "string" || value.scopes !== undefined && (!Array.isArray(value.scopes) || value.scopes.some((scope) => typeof scope !== "string")) || value.expiresAt !== undefined && typeof value.expiresAt !== "string" || value.authorizationContext !== undefined && !isJsonObject2(value.authorizationContext)) {
|
|
517
526
|
throw createConnectorCodedError("connector.credentials_unavailable", "Stored connector credentials are invalid.");
|
|
518
527
|
}
|
|
519
528
|
const expiresAt = value.expiresAt === undefined ? undefined : new Date(value.expiresAt);
|
|
@@ -523,7 +532,8 @@ function parseCredentials(serialized) {
|
|
|
523
532
|
...value.refreshToken === undefined ? {} : { refreshToken: value.refreshToken },
|
|
524
533
|
...value.tokenType === undefined ? {} : { tokenType: value.tokenType },
|
|
525
534
|
...value.scopes === undefined ? {} : { scopes: value.scopes },
|
|
526
|
-
...expiresAt === undefined ? {} : { expiresAt }
|
|
535
|
+
...expiresAt === undefined ? {} : { expiresAt },
|
|
536
|
+
...value.authorizationContext === undefined ? {} : { authorizationContext: value.authorizationContext }
|
|
527
537
|
});
|
|
528
538
|
} catch (error) {
|
|
529
539
|
throw createConnectorCodedError("connector.credentials_unavailable", "Stored connector credentials are invalid.", { cause: error });
|
|
@@ -567,9 +577,44 @@ function normalizedHttpUrl(value, field, code = "connector.configuration_invalid
|
|
|
567
577
|
}
|
|
568
578
|
function assertAuthorizationUrlParameters(authorizationUrl, expected) {
|
|
569
579
|
const parameters = new URL(authorizationUrl).searchParams;
|
|
570
|
-
if (!sameSingleParameter(parameters, "state", expected.state) || !sameSingleParameter(parameters, "code_challenge", expected.codeChallenge) || !sameSingleParameter(parameters, "code_challenge_method", "S256")) {
|
|
571
|
-
throw createConnectorCodedError("connector.adapter_invalid", "OAuth connector authorization URL must preserve the framework-provided state and PKCE S256 parameters.");
|
|
572
|
-
}
|
|
580
|
+
if (!sameSingleParameter(parameters, "state", expected.state) || (expected.codeChallenge === undefined ? parameters.has("code_challenge") || parameters.has("code_challenge_method") : !sameSingleParameter(parameters, "code_challenge", expected.codeChallenge) || !sameSingleParameter(parameters, "code_challenge_method", "S256"))) {
|
|
581
|
+
throw createConnectorCodedError("connector.adapter_invalid", expected.codeChallenge === undefined ? "OAuth connector authorization URL must preserve the framework-provided state and omit disabled PKCE parameters." : "OAuth connector authorization URL must preserve the framework-provided state and PKCE S256 parameters.");
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
function connectorPkceEnabled(pkce) {
|
|
585
|
+
if (pkce === undefined || pkce === "S256")
|
|
586
|
+
return true;
|
|
587
|
+
if (pkce === "disabled")
|
|
588
|
+
return false;
|
|
589
|
+
throw createConnectorCodedError("connector.adapter_invalid", "OAuth connector PKCE must be S256 or disabled.");
|
|
590
|
+
}
|
|
591
|
+
var reservedCallbackParameters = new Set([
|
|
592
|
+
"state",
|
|
593
|
+
"code",
|
|
594
|
+
"auth_code",
|
|
595
|
+
"error",
|
|
596
|
+
"error_description",
|
|
597
|
+
"error_uri"
|
|
598
|
+
]);
|
|
599
|
+
function validateCallbackParameterNames(names = []) {
|
|
600
|
+
if (!Array.isArray(names) || names.some((name) => typeof name !== "string" || !/^[A-Za-z_][A-Za-z0-9_.-]*$/.test(name) || reservedCallbackParameters.has(name)) || new Set(names).size !== names.length) {
|
|
601
|
+
throw createConnectorCodedError("connector.adapter_invalid", "OAuth callback parameter names must be unique, non-reserved parameter names.");
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
function selectCallbackParameters(names = [], parameters = {}) {
|
|
605
|
+
validateCallbackParameterNames(names);
|
|
606
|
+
if (!isRecord2(parameters)) {
|
|
607
|
+
throw createConnectorCodedError("connector.authorization_invalid", "OAuth provider callback parameters must be an object.");
|
|
608
|
+
}
|
|
609
|
+
return Object.fromEntries(names.flatMap((name) => {
|
|
610
|
+
if (!Object.hasOwn(parameters, name))
|
|
611
|
+
return [];
|
|
612
|
+
const value = parameters[name];
|
|
613
|
+
if (typeof value !== "string") {
|
|
614
|
+
throw createConnectorCodedError("connector.authorization_invalid", "OAuth provider callback parameters must have a single string value.");
|
|
615
|
+
}
|
|
616
|
+
return [[name, value]];
|
|
617
|
+
}));
|
|
573
618
|
}
|
|
574
619
|
function nonblank(value, field, code = "connector.configuration_invalid") {
|
|
575
620
|
if (typeof value !== "string" || !value.trim()) {
|
|
@@ -1069,7 +1114,8 @@ class ConnectorTokenAccess {
|
|
|
1069
1114
|
...refreshed,
|
|
1070
1115
|
...refreshed.refreshToken === undefined ? { refreshToken: current.refreshToken } : {},
|
|
1071
1116
|
...refreshed.tokenType === undefined && current.tokenType !== undefined ? { tokenType: current.tokenType } : {},
|
|
1072
|
-
scopes: refreshed.scopes ?? current.scopes ?? authorization.scopes
|
|
1117
|
+
scopes: refreshed.scopes ?? current.scopes ?? authorization.scopes,
|
|
1118
|
+
...refreshed.authorizationContext === undefined && current.authorizationContext !== undefined ? { authorizationContext: current.authorizationContext } : {}
|
|
1073
1119
|
};
|
|
1074
1120
|
const envelope = await this.credentials.seal(definition.id, authorization.id, normalized);
|
|
1075
1121
|
return this.mutations.stageCredentialMutationCredentials(executing, signal, {
|
|
@@ -1200,7 +1246,7 @@ class DefaultConnectorAuthorizationLifecycle {
|
|
|
1200
1246
|
async completeNewAuthorization(input) {
|
|
1201
1247
|
this.assertRegistered(input.definition);
|
|
1202
1248
|
const authorizationId = `cau_${randomUUID2()}`;
|
|
1203
|
-
const credentials = await this.exchangeAuthorizationCode(input.definition, input.code, input.codeVerifier, input.redirectUri);
|
|
1249
|
+
const credentials = await this.exchangeAuthorizationCode(input.definition, input.code, input.codeVerifier, input.redirectUri, input.callbackParameters);
|
|
1204
1250
|
const credentialsEnvelope = await this.credentials.seal(input.definition.id, authorizationId, credentials);
|
|
1205
1251
|
let pending;
|
|
1206
1252
|
try {
|
|
@@ -1333,7 +1379,7 @@ class DefaultConnectorAuthorizationLifecycle {
|
|
|
1333
1379
|
try {
|
|
1334
1380
|
await this.revokeAuthorization({ definition, authorizationId, principal });
|
|
1335
1381
|
} catch (cleanupError) {
|
|
1336
|
-
if (
|
|
1382
|
+
if (isSixbError2(cleanupError) && cleanupError.code === "connector.revocation_pending")
|
|
1337
1383
|
return;
|
|
1338
1384
|
throw createConnectorCodedError("internal.unexpected", "Unused connector credentials could not be scheduled for revocation.", {
|
|
1339
1385
|
cause: new AggregateError([primaryError, cleanupError], "Connector authorization failed and cleanup could not be secured.")
|
|
@@ -1358,7 +1404,11 @@ class DefaultConnectorAuthorizationLifecycle {
|
|
|
1358
1404
|
const { claim } = claimOutcome;
|
|
1359
1405
|
try {
|
|
1360
1406
|
await this.mutations.executeCredentialMutation(claim.authorization, async (executing, signal) => {
|
|
1361
|
-
const credentials = validateCredentials(await input.definition.adapter.authentication.exchangeCode(this.authorizationAdapterContext(input.definition.id, input.redirectUri, signal), {
|
|
1407
|
+
const credentials = validateCredentials(await input.definition.adapter.authentication.exchangeCode(this.authorizationAdapterContext(input.definition.id, input.redirectUri, signal), {
|
|
1408
|
+
code: input.code,
|
|
1409
|
+
...input.codeVerifier === undefined ? {} : { codeVerifier: input.codeVerifier },
|
|
1410
|
+
callbackParameters: input.callbackParameters
|
|
1411
|
+
}));
|
|
1362
1412
|
assertCredentialMutationOperationActive(signal);
|
|
1363
1413
|
const envelope = await this.credentials.seal(input.definition.id, input.authorizationId, credentials);
|
|
1364
1414
|
return this.mutations.stageCredentialMutationCredentials(executing, signal, {
|
|
@@ -1382,9 +1432,9 @@ class DefaultConnectorAuthorizationLifecycle {
|
|
|
1382
1432
|
const staged = await this.requireAuthorization(input.definition.id, input.authorizationId);
|
|
1383
1433
|
return this.mutations.finalizeStagedMutation(staged);
|
|
1384
1434
|
}
|
|
1385
|
-
async exchangeAuthorizationCode(definition, code, codeVerifier, redirectUri) {
|
|
1435
|
+
async exchangeAuthorizationCode(definition, code, codeVerifier, redirectUri, callbackParameters) {
|
|
1386
1436
|
try {
|
|
1387
|
-
return validateCredentials(await this.mutations.withBoundedProviderSignal((signal) => definition.adapter.authentication.exchangeCode(this.authorizationAdapterContext(definition.id, redirectUri, signal), { code, codeVerifier })));
|
|
1437
|
+
return validateCredentials(await this.mutations.withBoundedProviderSignal((signal) => definition.adapter.authentication.exchangeCode(this.authorizationAdapterContext(definition.id, redirectUri, signal), { code, ...codeVerifier === undefined ? {} : { codeVerifier }, callbackParameters })));
|
|
1388
1438
|
} catch (error) {
|
|
1389
1439
|
throw providerBoundaryError(error, "connector.provider_failed", "Connector authorization code exchange failed.");
|
|
1390
1440
|
}
|
|
@@ -1413,7 +1463,7 @@ class DefaultConnectorAuthorizationLifecycle {
|
|
|
1413
1463
|
}
|
|
1414
1464
|
function assertConnectorAuthorizationActor(authorization, principal) {
|
|
1415
1465
|
if (authorization.authorizedBy.type !== principal.type || authorization.authorizedBy.id !== principal.id) {
|
|
1416
|
-
throw new
|
|
1466
|
+
throw new AuthorizationError2(`authorization:connector:${authorization.connectorId}`, "[Sixb] This connector authorization can only be changed by its authorizing principal.");
|
|
1417
1467
|
}
|
|
1418
1468
|
}
|
|
1419
1469
|
function assertReauthorizationRevision(authorization, expectedRevision) {
|
|
@@ -1427,18 +1477,18 @@ function requireConnectorConnectionCommandActor(execution, projectId) {
|
|
|
1427
1477
|
const actor = connectorConnectionActorFromExecution(execution, projectId);
|
|
1428
1478
|
if (actor)
|
|
1429
1479
|
return actor;
|
|
1430
|
-
throw new
|
|
1480
|
+
throw new AuthorizationError2("manage:connector", "[Sixb] Connector connection commands require an authenticated request execution.");
|
|
1431
1481
|
}
|
|
1432
1482
|
function assertConnectorAuthorizationAttemptInitiator(execution, current) {
|
|
1433
1483
|
const initiating = execution ? connectorConnectionActorFromExecution(execution, execution.projectId) : null;
|
|
1434
1484
|
if (!initiating || !sameConnectorConnectionCommandActor(initiating, current)) {
|
|
1435
|
-
throw new
|
|
1485
|
+
throw new ConnectorConnectionStorageError2("attempt_invalid", "[Sixb] Connector authorization attempt is invalid, expired, or already used.");
|
|
1436
1486
|
}
|
|
1437
1487
|
}
|
|
1438
1488
|
function assertConnectorConnectionRunInitiator(execution, current, connectorId) {
|
|
1439
1489
|
const initiating = execution ? connectorConnectionActorFromExecution(execution, execution.projectId) : null;
|
|
1440
1490
|
if (!initiating || !sameConnectorConnectionCommandActor(initiating, current)) {
|
|
1441
|
-
throw new
|
|
1491
|
+
throw new AuthorizationError2(`connection-run:connector:${connectorId}`, "[Sixb] This connector connection run can only be accessed by its initiating actor.");
|
|
1442
1492
|
}
|
|
1443
1493
|
}
|
|
1444
1494
|
function connectorConnectionActorFromExecution(execution, projectId) {
|
|
@@ -1503,7 +1553,7 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1503
1553
|
const prepared = await this.prepareAuthorizationRequest(command, connectorId, input);
|
|
1504
1554
|
try {
|
|
1505
1555
|
await this.storage.transaction(async (tx) => {
|
|
1506
|
-
await
|
|
1556
|
+
await ensureExecutionRecord2(tx.executions, command.execution);
|
|
1507
1557
|
await requireConnectorConnectionStorage(tx).createAuthorizationAttempt(prepared.attempt);
|
|
1508
1558
|
}, { isolation: "serializable" });
|
|
1509
1559
|
} catch (error) {
|
|
@@ -1518,12 +1568,13 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1518
1568
|
const definition = this.resolveDefinition(nonblank(connectorId, "connector id"));
|
|
1519
1569
|
const actor = requireConnectorConnectionCommandActor(command.execution, this.projectId);
|
|
1520
1570
|
assertConnectorConnectionSelector(input);
|
|
1571
|
+
validateCallbackParameterNames(definition.adapter.authentication.callbackParameters);
|
|
1521
1572
|
const redirectUri = normalizedHttpUrl(input.redirectUri, "OAuth callback URL");
|
|
1522
1573
|
const reauthorization = await this.prepareReauthorization(definition, actor, input.reauthorizationId);
|
|
1523
1574
|
const attemptId = `cat_${randomUUID3()}`;
|
|
1524
1575
|
const state = `${attemptId}.${randomBytes2(32).toString("base64url")}`;
|
|
1525
|
-
const codeVerifier = randomBytes2(32).toString("base64url");
|
|
1526
|
-
const codeChallenge = createHash2("sha256").update(codeVerifier).digest("base64url");
|
|
1576
|
+
const codeVerifier = connectorPkceEnabled(definition.adapter.authentication.pkce) ? randomBytes2(32).toString("base64url") : undefined;
|
|
1577
|
+
const codeChallenge = codeVerifier === undefined ? undefined : createHash2("sha256").update(codeVerifier).digest("base64url");
|
|
1527
1578
|
let authorizationUrlInput;
|
|
1528
1579
|
try {
|
|
1529
1580
|
authorizationUrlInput = await runBoundedConnectorProviderOperation({
|
|
@@ -1534,13 +1585,16 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1534
1585
|
connectorId: definition.id,
|
|
1535
1586
|
redirectUri,
|
|
1536
1587
|
signal
|
|
1537
|
-
}, {
|
|
1588
|
+
}, {
|
|
1589
|
+
state,
|
|
1590
|
+
...codeChallenge === undefined ? {} : { codeChallenge, codeChallengeMethod: "S256" }
|
|
1591
|
+
}), () => createConnectorCodedError("connector.provider_unavailable", "Connector authorization URL generation did not complete."));
|
|
1538
1592
|
} catch (error) {
|
|
1539
1593
|
throw providerBoundaryError(error, providerFailureCode(error), "Connector authorization could not be started.");
|
|
1540
1594
|
}
|
|
1541
1595
|
const authorizationUrl = normalizedHttpUrl(authorizationUrlInput, "provider authorization URL", "connector.adapter_invalid");
|
|
1542
1596
|
assertAuthorizationUrlParameters(authorizationUrl, { state, codeChallenge });
|
|
1543
|
-
const codeVerifierEnvelope = await this.credentialProtector.seal(textEncoder2.encode(codeVerifier), {
|
|
1597
|
+
const codeVerifierEnvelope = codeVerifier === undefined ? undefined : await this.credentialProtector.seal(textEncoder2.encode(codeVerifier), {
|
|
1544
1598
|
projectId: this.projectId,
|
|
1545
1599
|
connectorId: definition.id,
|
|
1546
1600
|
recordId: attemptId,
|
|
@@ -1559,7 +1613,7 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1559
1613
|
slot: input.slot,
|
|
1560
1614
|
initiatedByExecutionId: command.execution.id,
|
|
1561
1615
|
stateHash: hashSecret(state),
|
|
1562
|
-
codeVerifier: codeVerifierEnvelope,
|
|
1616
|
+
...codeVerifierEnvelope === undefined ? {} : { codeVerifier: codeVerifierEnvelope },
|
|
1563
1617
|
redirectUri,
|
|
1564
1618
|
...reauthorization === undefined ? {} : {
|
|
1565
1619
|
reauthorizationId: reauthorization.authorization.id,
|
|
@@ -1583,7 +1637,8 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1583
1637
|
attempt,
|
|
1584
1638
|
principal: actor.principal,
|
|
1585
1639
|
code,
|
|
1586
|
-
redirectUri
|
|
1640
|
+
redirectUri,
|
|
1641
|
+
callbackParameters: input.callbackParameters
|
|
1587
1642
|
});
|
|
1588
1643
|
return {
|
|
1589
1644
|
authorizationId: completed.id,
|
|
@@ -1593,7 +1648,11 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1593
1648
|
};
|
|
1594
1649
|
}
|
|
1595
1650
|
async completeAuthorizationAttempt(input) {
|
|
1596
|
-
const
|
|
1651
|
+
const enabled = connectorPkceEnabled(input.definition.adapter.authentication.pkce);
|
|
1652
|
+
if (enabled !== (input.attempt.codeVerifier !== undefined)) {
|
|
1653
|
+
throw createConnectorCodedError("connector.authorization_invalid", "OAuth connector PKCE configuration changed; restart authorization.");
|
|
1654
|
+
}
|
|
1655
|
+
const verifierBytes = input.attempt.codeVerifier === undefined ? undefined : await this.credentialProtector.open(input.attempt.codeVerifier, {
|
|
1597
1656
|
projectId: this.projectId,
|
|
1598
1657
|
connectorId: input.definition.id,
|
|
1599
1658
|
recordId: input.attempt.id,
|
|
@@ -1601,7 +1660,8 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1601
1660
|
});
|
|
1602
1661
|
return this.completeGrant({
|
|
1603
1662
|
...input,
|
|
1604
|
-
|
|
1663
|
+
callbackParameters: selectCallbackParameters(input.definition.adapter.authentication.callbackParameters, input.callbackParameters),
|
|
1664
|
+
...verifierBytes === undefined ? {} : { codeVerifier: textDecoder2.decode(verifierBytes) }
|
|
1605
1665
|
});
|
|
1606
1666
|
}
|
|
1607
1667
|
async prepareReauthorization(definition, actor, reauthorizationId) {
|
|
@@ -1664,6 +1724,7 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1664
1724
|
principal: input.principal,
|
|
1665
1725
|
code: input.code,
|
|
1666
1726
|
codeVerifier: input.codeVerifier,
|
|
1727
|
+
callbackParameters: input.callbackParameters,
|
|
1667
1728
|
redirectUri: input.redirectUri,
|
|
1668
1729
|
...input.onAuthorizationPersisted === undefined ? {} : { onAuthorizationPersisted: input.onAuthorizationPersisted }
|
|
1669
1730
|
});
|
|
@@ -1680,6 +1741,7 @@ class ConnectorAuthorizationRequestHandler {
|
|
|
1680
1741
|
principal: input.principal,
|
|
1681
1742
|
code: input.code,
|
|
1682
1743
|
codeVerifier: input.codeVerifier,
|
|
1744
|
+
callbackParameters: input.callbackParameters,
|
|
1683
1745
|
redirectUri: input.redirectUri
|
|
1684
1746
|
});
|
|
1685
1747
|
}
|
|
@@ -1722,7 +1784,7 @@ class ConnectorConnectionRunService {
|
|
|
1722
1784
|
let run;
|
|
1723
1785
|
try {
|
|
1724
1786
|
run = await this.storage.transaction(async (tx) => {
|
|
1725
|
-
await
|
|
1787
|
+
await ensureExecutionRecord2(tx.executions, command.execution);
|
|
1726
1788
|
return requireConnectorConnectionStorage2(tx).createConnectionSelectionRun({
|
|
1727
1789
|
id: runId,
|
|
1728
1790
|
projectId: this.projectId,
|
|
@@ -1748,7 +1810,7 @@ class ConnectorConnectionRunService {
|
|
|
1748
1810
|
let expiresAt;
|
|
1749
1811
|
try {
|
|
1750
1812
|
expiresAt = await this.storage.transaction(async (tx) => {
|
|
1751
|
-
await
|
|
1813
|
+
await ensureExecutionRecord2(tx.executions, command.execution);
|
|
1752
1814
|
const connections = requireConnectorConnectionStorage2(tx);
|
|
1753
1815
|
await connections.createConnectionRun({
|
|
1754
1816
|
id: runId,
|
|
@@ -1808,6 +1870,7 @@ class ConnectorConnectionRunService {
|
|
|
1808
1870
|
attempt,
|
|
1809
1871
|
principal,
|
|
1810
1872
|
code: nonblank(input.code, "OAuth authorization code", "connector.authorization_invalid"),
|
|
1873
|
+
callbackParameters: input.callbackParameters,
|
|
1811
1874
|
redirectUri,
|
|
1812
1875
|
onAuthorizationPersisted: async (persisted) => {
|
|
1813
1876
|
authorizationId = persisted.id;
|
|
@@ -1977,8 +2040,8 @@ class ConnectorConnectionRunService {
|
|
|
1977
2040
|
processingId: run.processingId,
|
|
1978
2041
|
status: "failed",
|
|
1979
2042
|
...authorizationId === undefined ? {} : { authorizationId },
|
|
1980
|
-
error:
|
|
1981
|
-
allowedCodes:
|
|
2043
|
+
error: captureSixbFailure2(error, {
|
|
2044
|
+
allowedCodes: CONNECTOR_CONNECTION_RUN_FAILURE_CODES2,
|
|
1982
2045
|
defaultCode: "internal.unexpected",
|
|
1983
2046
|
at: this.now()
|
|
1984
2047
|
})
|
|
@@ -2090,7 +2153,7 @@ class ConnectorConnectionRunService {
|
|
|
2090
2153
|
await this.authorizations.continuePendingRevocation(this.resolveDefinition(connectorId), authorizationId);
|
|
2091
2154
|
return true;
|
|
2092
2155
|
} catch (error) {
|
|
2093
|
-
if (
|
|
2156
|
+
if (isSixbError2(error) && error.code === "connector.revocation_pending")
|
|
2094
2157
|
return false;
|
|
2095
2158
|
throw error;
|
|
2096
2159
|
}
|
|
@@ -2445,7 +2508,7 @@ class ConnectorConnectionService {
|
|
|
2445
2508
|
if (!definition) {
|
|
2446
2509
|
throw createConnectorCodedError("connector.not_found", `Unknown connector '${connectorId}'.`);
|
|
2447
2510
|
}
|
|
2448
|
-
if (!
|
|
2511
|
+
if (!isOAuthConnectorDefinition2(definition)) {
|
|
2449
2512
|
throw createConnectorCodedError("connector.configuration_invalid", `Connector '${connectorId}' does not use OAuth authentication.`);
|
|
2450
2513
|
}
|
|
2451
2514
|
return definition;
|
|
@@ -2460,7 +2523,7 @@ class ConnectorConnectionService {
|
|
|
2460
2523
|
try {
|
|
2461
2524
|
await this.authorizations.continuePendingRevocation(definition, authorizationId);
|
|
2462
2525
|
} catch (error) {
|
|
2463
|
-
if (
|
|
2526
|
+
if (isSixbError2(error) && error.code === "connector.revocation_pending")
|
|
2464
2527
|
return;
|
|
2465
2528
|
throw error;
|
|
2466
2529
|
}
|
|
@@ -2502,7 +2565,7 @@ class ConnectorService {
|
|
|
2502
2565
|
constructor(projectId, definitions, options = {}) {
|
|
2503
2566
|
this.projectId = projectId;
|
|
2504
2567
|
this.definitionsById = new Map(definitions.map((definition) => [definition.id, definition]));
|
|
2505
|
-
if (definitions.some(
|
|
2568
|
+
if (definitions.some(isOAuthConnectorDefinition2)) {
|
|
2506
2569
|
this.connections = new ConnectorConnectionService(projectId, definitions, options);
|
|
2507
2570
|
}
|
|
2508
2571
|
}
|
|
@@ -2551,9 +2614,9 @@ class ConnectorService {
|
|
|
2551
2614
|
assertRegistered(definition) {
|
|
2552
2615
|
const registeredDefinition = this.definitionsById.get(definition.id);
|
|
2553
2616
|
if (!registeredDefinition)
|
|
2554
|
-
throw new
|
|
2617
|
+
throw new ConnectorNotFoundError2(definition.id);
|
|
2555
2618
|
if (registeredDefinition !== definition) {
|
|
2556
|
-
throw new
|
|
2619
|
+
throw new ConnectorError2(`Connector '${definition.id}' is not the registered definition instance.`);
|
|
2557
2620
|
}
|
|
2558
2621
|
}
|
|
2559
2622
|
requireConnections() {
|
|
@@ -2826,7 +2889,7 @@ function validateKeyedDatasetWriterTopology(input) {
|
|
|
2826
2889
|
for (const sync of input.syncs) {
|
|
2827
2890
|
const dataset = input.datasetsById.get(sync.target.dataset.id);
|
|
2828
2891
|
if (sync.config.mode === "merge" && dataset?.primaryKey === undefined) {
|
|
2829
|
-
throw new
|
|
2892
|
+
throw new SyncValidationError2(`[Sixb] Merge sync '${sync.id}' targets dataset '${sync.target.dataset.id}', which must define a primaryKey.`);
|
|
2830
2893
|
}
|
|
2831
2894
|
}
|
|
2832
2895
|
const firstWriterByDataset = new Map;
|
|
@@ -2839,7 +2902,7 @@ function validateKeyedDatasetWriterTopology(input) {
|
|
|
2839
2902
|
firstWriterByDataset.set(writer.datasetId, writer);
|
|
2840
2903
|
continue;
|
|
2841
2904
|
}
|
|
2842
|
-
throw new
|
|
2905
|
+
throw new SyncValidationError2(`[Sixb] Keyed dataset '${writer.datasetId}' has multiple registered writers: ${first.label} and ${writer.label}. V1 allows one writer per keyed dataset.`);
|
|
2843
2906
|
}
|
|
2844
2907
|
}
|
|
2845
2908
|
function validateMergeSyncProjectionSafety(input) {
|
|
@@ -2848,7 +2911,7 @@ function validateMergeSyncProjectionSafety(input) {
|
|
|
2848
2911
|
const sync = mergeSyncByDataset.get(projection.datasetId);
|
|
2849
2912
|
if (!sync)
|
|
2850
2913
|
continue;
|
|
2851
|
-
throw new
|
|
2914
|
+
throw new SyncValidationError2(`[Sixb] Telemetry projection '${projection.id}' cannot read merge-written dataset '${projection.datasetId}' from sync '${sync.id}'. V1 merge syncs support object and link replacement projections only.`);
|
|
2852
2915
|
}
|
|
2853
2916
|
}
|
|
2854
2917
|
function* datasetWriters(syncs, pipelines) {
|
|
@@ -2876,20 +2939,20 @@ function createDefinitionCatalog(definitionsById) {
|
|
|
2876
2939
|
// src/runtime/resolve-definitions.ts
|
|
2877
2940
|
function resolveDefinitions(options) {
|
|
2878
2941
|
assertNoAgentDefinitions(options);
|
|
2879
|
-
const ontology = new
|
|
2880
|
-
const actionRegistry = new
|
|
2942
|
+
const ontology = new OntologyRegistry2({ sources: options.ontology });
|
|
2943
|
+
const actionRegistry = new ActionRegistry2({ actions: options.actions ?? [], ontology });
|
|
2881
2944
|
const registeredActionIds = new Set(actionRegistry.list().map((action) => action.id));
|
|
2882
2945
|
const sharesById = validateSharesAtStartup({
|
|
2883
2946
|
shares: options.shares ?? [],
|
|
2884
2947
|
ontology,
|
|
2885
2948
|
actions: actionRegistry
|
|
2886
2949
|
});
|
|
2887
|
-
const models = options.models === undefined ? undefined :
|
|
2950
|
+
const models = options.models === undefined ? undefined : createModelCatalog2(options.models);
|
|
2888
2951
|
const tools = createAgentToolCatalog(options.tools);
|
|
2889
2952
|
const connectorsById = indexUniqueDefinitions("connector", options.connectors ?? []);
|
|
2890
2953
|
const datasetsById = new Map;
|
|
2891
2954
|
for (const dataset of options.datasets ?? []) {
|
|
2892
|
-
|
|
2955
|
+
assertDatasetDefinition2(dataset, (message) => new RuntimeError2(message));
|
|
2893
2956
|
assertUniqueDefinitionId("dataset", dataset.id, datasetsById);
|
|
2894
2957
|
datasetsById.set(dataset.id, dataset);
|
|
2895
2958
|
}
|
|
@@ -2898,7 +2961,7 @@ function resolveDefinitions(options) {
|
|
|
2898
2961
|
for (const sync of options.syncs ?? []) {
|
|
2899
2962
|
assertUniqueDefinitionId("sync", sync.id, syncsById);
|
|
2900
2963
|
if (!datasetsById.has(sync.target.dataset.id)) {
|
|
2901
|
-
throw new
|
|
2964
|
+
throw new RuntimeError2(`Sync '${sync.id}' targets unknown dataset '${sync.target.dataset.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`);
|
|
2902
2965
|
}
|
|
2903
2966
|
syncsById.set(sync.id, sync);
|
|
2904
2967
|
}
|
|
@@ -2915,7 +2978,7 @@ function resolveDefinitions(options) {
|
|
|
2915
2978
|
const rules = options.rules ?? [];
|
|
2916
2979
|
validateRulesAtStartup(rules, ontology);
|
|
2917
2980
|
const rulesById = indexUniqueDefinitions("rule", rules);
|
|
2918
|
-
|
|
2981
|
+
validateSchedulesAtStartup2(schedules, ontology, {
|
|
2919
2982
|
registeredRuleIds: new Set(rulesById.keys()),
|
|
2920
2983
|
registeredActionIds,
|
|
2921
2984
|
registeredDatasetIds: new Set(datasetsById.keys()),
|
|
@@ -2928,7 +2991,7 @@ function resolveDefinitions(options) {
|
|
|
2928
2991
|
for (const pipeline of pipelines) {
|
|
2929
2992
|
validateScheduleReferences("Pipeline", pipeline.id, pipeline.triggers, schedulesById);
|
|
2930
2993
|
}
|
|
2931
|
-
const workflows =
|
|
2994
|
+
const workflows = validateWorkflowsAtStartup2({
|
|
2932
2995
|
workflows: options.workflows ?? [],
|
|
2933
2996
|
registeredSchedules: schedulesById,
|
|
2934
2997
|
registeredActionIds,
|
|
@@ -2951,8 +3014,8 @@ function resolveDefinitions(options) {
|
|
|
2951
3014
|
shareIds: new Set(sharesById.keys()),
|
|
2952
3015
|
getSubTypes: (objectTypeId) => ontology.listSubTypes(objectTypeId)
|
|
2953
3016
|
});
|
|
2954
|
-
|
|
2955
|
-
const projectionRegistry = new
|
|
3017
|
+
validateWorkflowAgentStepGroupReferences2(workflows, security);
|
|
3018
|
+
const projectionRegistry = new ProjectionRegistry2({
|
|
2956
3019
|
projections: options.projections ?? [],
|
|
2957
3020
|
ontology,
|
|
2958
3021
|
datasetsById
|
|
@@ -2988,34 +3051,34 @@ function indexUniqueDefinitions(kind, definitions) {
|
|
|
2988
3051
|
}
|
|
2989
3052
|
function assertUniqueDefinitionId(kind, id, definitionsById) {
|
|
2990
3053
|
if (definitionsById.has(id)) {
|
|
2991
|
-
throw new
|
|
3054
|
+
throw new RuntimeError2(`Duplicate ${kind} id: ${id}`);
|
|
2992
3055
|
}
|
|
2993
3056
|
}
|
|
2994
3057
|
function validatePipelineDatasets(pipeline, datasetsById) {
|
|
2995
3058
|
if (pipeline.graph.nodes.length === 0) {
|
|
2996
|
-
throw new
|
|
3059
|
+
throw new RuntimeError2(`Pipeline '${pipeline.id}' must contain at least one step.`);
|
|
2997
3060
|
}
|
|
2998
3061
|
const stepIds = new Set;
|
|
2999
3062
|
for (const node of pipeline.graph.nodes) {
|
|
3000
3063
|
const { step } = node;
|
|
3001
3064
|
if (stepIds.has(step.id)) {
|
|
3002
|
-
throw new
|
|
3065
|
+
throw new RuntimeError2(`Pipeline '${pipeline.id}' contains duplicate step id '${step.id}'.`);
|
|
3003
3066
|
}
|
|
3004
3067
|
stepIds.add(step.id);
|
|
3005
3068
|
for (const [inputName, dataset] of Object.entries(step.inputs)) {
|
|
3006
3069
|
if (!datasetsById.has(dataset.id)) {
|
|
3007
|
-
throw new
|
|
3070
|
+
throw new RuntimeError2(`Pipeline '${pipeline.id}' step '${step.id}' input '${inputName}' references unknown dataset '${dataset.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`);
|
|
3008
3071
|
}
|
|
3009
3072
|
}
|
|
3010
3073
|
if (!datasetsById.has(step.output.id)) {
|
|
3011
|
-
throw new
|
|
3074
|
+
throw new RuntimeError2(`Pipeline '${pipeline.id}' step '${step.id}' outputs unknown dataset '${step.output.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`);
|
|
3012
3075
|
}
|
|
3013
3076
|
}
|
|
3014
3077
|
}
|
|
3015
3078
|
function validateScheduleReferences(consumerKind, consumerId, references, schedulesById) {
|
|
3016
3079
|
for (const reference of references) {
|
|
3017
3080
|
if (!schedulesById.has(reference.scheduleId)) {
|
|
3018
|
-
throw new
|
|
3081
|
+
throw new RuntimeError2(`${consumerKind} '${consumerId}' references unknown schedule '${reference.scheduleId}'. Add it to 'schedules' in createSixb() or export it from 'schedules/'.`);
|
|
3019
3082
|
}
|
|
3020
3083
|
}
|
|
3021
3084
|
}
|
|
@@ -3032,7 +3095,7 @@ class StorageReadiness {
|
|
|
3032
3095
|
this.storage = storage;
|
|
3033
3096
|
this.schemaRetryDelayMs = positiveInteger2(options.schemaRetryDelayMs ?? DEFAULT_SCHEMA_RETRY_DELAY_MS, "schemaRetryDelayMs");
|
|
3034
3097
|
this.now = options.now ?? (() => new Date);
|
|
3035
|
-
this.schema =
|
|
3098
|
+
this.schema = isMigrationCapableStorage2(storage) ? { status: "unchecked" } : { status: "valid" };
|
|
3036
3099
|
}
|
|
3037
3100
|
startSchemaValidation() {
|
|
3038
3101
|
if (this.schema.status === "checking" || this.schema.status === "valid")
|
|
@@ -3063,7 +3126,7 @@ class StorageReadiness {
|
|
|
3063
3126
|
};
|
|
3064
3127
|
}
|
|
3065
3128
|
async validateSchema() {
|
|
3066
|
-
const result = await
|
|
3129
|
+
const result = await checkStorageSchema2(this.storage);
|
|
3067
3130
|
this.schema = result.ok ? { status: "valid" } : this.invalidSchema(result.reason ?? "Storage schema is not usable.");
|
|
3068
3131
|
}
|
|
3069
3132
|
invalidSchema(reason) {
|
|
@@ -3082,7 +3145,7 @@ function positiveInteger2(value, name) {
|
|
|
3082
3145
|
}
|
|
3083
3146
|
|
|
3084
3147
|
// src/runtime/host.ts
|
|
3085
|
-
class
|
|
3148
|
+
class SixbHost2 {
|
|
3086
3149
|
projectId;
|
|
3087
3150
|
webhookRegistry;
|
|
3088
3151
|
hostContext;
|
|
@@ -3105,16 +3168,16 @@ class SixbHost {
|
|
|
3105
3168
|
scheduler;
|
|
3106
3169
|
auth;
|
|
3107
3170
|
constructor(options) {
|
|
3108
|
-
const errorReporter =
|
|
3171
|
+
const errorReporter = attachSixbErrorReporter2(this, options.onError);
|
|
3109
3172
|
this.projectId = options.id ?? "default";
|
|
3110
3173
|
this.broker = options.broker;
|
|
3111
|
-
this.eventService =
|
|
3174
|
+
this.eventService = createDomainEventService2({
|
|
3112
3175
|
projectId: this.projectId,
|
|
3113
3176
|
broker: this.broker,
|
|
3114
3177
|
errorReporter
|
|
3115
3178
|
});
|
|
3116
3179
|
this.events = this.eventService;
|
|
3117
|
-
this.logging = new
|
|
3180
|
+
this.logging = new LoggingService2({
|
|
3118
3181
|
projectId: this.projectId,
|
|
3119
3182
|
broker: this.broker,
|
|
3120
3183
|
logger: options.logger,
|
|
@@ -3129,8 +3192,8 @@ class SixbHost {
|
|
|
3129
3192
|
this.projectRoot = resolve(options.projectRoot ?? process.cwd());
|
|
3130
3193
|
const definitions = resolveDefinitions(options);
|
|
3131
3194
|
this.definitions = definitions;
|
|
3132
|
-
|
|
3133
|
-
this.auth = new
|
|
3195
|
+
registerProjectionRegistry2(this, definitions.projections);
|
|
3196
|
+
this.auth = new AuthRuntime2({
|
|
3134
3197
|
projectId: this.projectId,
|
|
3135
3198
|
storage: this.storage,
|
|
3136
3199
|
security: definitions.security,
|
|
@@ -3138,8 +3201,7 @@ class SixbHost {
|
|
|
3138
3201
|
});
|
|
3139
3202
|
validateAuthStrategySecurityReferences(this.auth.getStrategy(), definitions.security);
|
|
3140
3203
|
const connectors = definitions.connectors.list();
|
|
3141
|
-
|
|
3142
|
-
const hasOAuthConnectors = connectors.some(isOAuthConnectorDefinition);
|
|
3204
|
+
const hasOAuthConnectors = connectors.some(isOAuthConnectorDefinition2);
|
|
3143
3205
|
const credentialProtector = hasOAuthConnectors && options.connectorConnections?.encryptionKey !== undefined ? createConnectorCredentialProtectorFromKey(options.connectorConnections.encryptionKey) : undefined;
|
|
3144
3206
|
this.connectorService = new ConnectorService(this.projectId, connectors, {
|
|
3145
3207
|
storage: this.storage,
|
|
@@ -3150,17 +3212,17 @@ class SixbHost {
|
|
|
3150
3212
|
}
|
|
3151
3213
|
assertWebhookRunStorage(connectors, this.storage);
|
|
3152
3214
|
this.webhookRegistry = new WebhookRegistry({ connectors });
|
|
3153
|
-
this.materializer =
|
|
3215
|
+
this.materializer = createOntologyMaterializer2({
|
|
3154
3216
|
projectId: this.projectId,
|
|
3155
3217
|
ontology: definitions.ontology,
|
|
3156
3218
|
projections: definitions.projections,
|
|
3157
3219
|
storage: this.storage
|
|
3158
3220
|
});
|
|
3159
|
-
this.committedFacts = new
|
|
3221
|
+
this.committedFacts = new OntologyOutboxDispatcher2({
|
|
3160
3222
|
projectId: this.projectId,
|
|
3161
3223
|
storage: this.storage,
|
|
3162
3224
|
events: this.eventService,
|
|
3163
|
-
onDeliveryFailure: (error, failure) =>
|
|
3225
|
+
onDeliveryFailure: (error, failure) => reportEventDeliveryFailure3(errorReporter, error, {
|
|
3164
3226
|
projectId: this.projectId,
|
|
3165
3227
|
...failure
|
|
3166
3228
|
})
|
|
@@ -3180,9 +3242,9 @@ class SixbHost {
|
|
|
3180
3242
|
storage: this.storage,
|
|
3181
3243
|
queues: this.queues
|
|
3182
3244
|
};
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
this.scheduler = new
|
|
3245
|
+
registerProjectionRegistry2(this.hostContext, definitions.projections);
|
|
3246
|
+
shareSixbErrorReporter2(this, this.hostContext);
|
|
3247
|
+
this.scheduler = new SchedulerRuntime2({
|
|
3186
3248
|
schedules: definitions.schedules.list(),
|
|
3187
3249
|
events: this.eventService
|
|
3188
3250
|
});
|
|
@@ -3204,7 +3266,7 @@ class SixbHost {
|
|
|
3204
3266
|
objectReader,
|
|
3205
3267
|
...authorization.type === "principal" ? { authorization: authorization.context } : {}
|
|
3206
3268
|
};
|
|
3207
|
-
|
|
3269
|
+
registerOntologyMutationRuntime2(runtime, createOntologyMutationRuntime2({
|
|
3208
3270
|
materializer: this.materializer.withScope(capturedScope),
|
|
3209
3271
|
notifyCommittedFacts: () => this.committedFacts.notify()
|
|
3210
3272
|
}));
|
|
@@ -3255,12 +3317,12 @@ class SixbHost {
|
|
|
3255
3317
|
}
|
|
3256
3318
|
}
|
|
3257
3319
|
function validateAuthStrategySecurityReferences(strategy, security) {
|
|
3258
|
-
if (!
|
|
3320
|
+
if (!isMagicLinkAuthStrategy2(strategy) && !isOidcAuthStrategy2(strategy)) {
|
|
3259
3321
|
return;
|
|
3260
3322
|
}
|
|
3261
3323
|
for (const groupId of strategy.bootstrapGroupIds ?? []) {
|
|
3262
3324
|
if (!security.getGroupById(groupId)) {
|
|
3263
|
-
throw new
|
|
3325
|
+
throw new AuthRuntimeError2("invalid_auth_config", `[Sixb] Auth bootstrapGroups references unknown group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`);
|
|
3264
3326
|
}
|
|
3265
3327
|
}
|
|
3266
3328
|
}
|
|
@@ -3271,31 +3333,22 @@ function assertWebhookRunStorage(connectors, storage) {
|
|
|
3271
3333
|
for (const connector of connectors) {
|
|
3272
3334
|
const webhooks = connector.adapter.webhooks;
|
|
3273
3335
|
if (Array.isArray(webhooks) && webhooks.length > 0) {
|
|
3274
|
-
throw new
|
|
3275
|
-
}
|
|
3276
|
-
}
|
|
3277
|
-
}
|
|
3278
|
-
function assertConnectorConnectionSurfaces(connectors) {
|
|
3279
|
-
for (const connector of connectors) {
|
|
3280
|
-
if (!isOAuthConnectorDefinition(connector))
|
|
3281
|
-
continue;
|
|
3282
|
-
if (connector.adapter.webhooks !== undefined) {
|
|
3283
|
-
throw createConnectorCodedError("connector.configuration_invalid", `OAuth connector '${connector.id}' cannot register webhooks until connection routing is defined.`);
|
|
3336
|
+
throw new WebhookValidationError2("[Sixb] Webhooks require storage.webhookRuns to be configured.");
|
|
3284
3337
|
}
|
|
3285
3338
|
}
|
|
3286
3339
|
}
|
|
3287
3340
|
|
|
3288
3341
|
// src/runtime/create.ts
|
|
3289
|
-
async function
|
|
3342
|
+
async function createSixb2(options) {
|
|
3290
3343
|
assertNoAgentDefinitions(options);
|
|
3291
3344
|
const projectRoot = resolve2(options.projectRoot ?? process.cwd());
|
|
3292
|
-
const discoveredOntology = await
|
|
3345
|
+
const discoveredOntology = await discoverOntologySources2(projectRoot);
|
|
3293
3346
|
const allSources = [...options.ontologies ?? [], ...discoveredOntology];
|
|
3294
3347
|
if (allSources.length === 0) {
|
|
3295
|
-
throw new
|
|
3348
|
+
throw new RuntimeError2("No ontology found. Create an 'ontology/' folder or pass 'ontologies' to createSixb().");
|
|
3296
3349
|
}
|
|
3297
|
-
const definitions = await
|
|
3298
|
-
return new
|
|
3350
|
+
const definitions = await discoverProjectDefinitions2(projectRoot);
|
|
3351
|
+
return new SixbHost2({
|
|
3299
3352
|
id: options.id,
|
|
3300
3353
|
ontology: allSources,
|
|
3301
3354
|
broker: options.broker,
|
|
@@ -3328,6 +3381,6 @@ async function createSixb(options) {
|
|
|
3328
3381
|
auth: options.auth
|
|
3329
3382
|
});
|
|
3330
3383
|
}
|
|
3331
|
-
export {
|
|
3384
|
+
export { WebhookValidationError2, defineWebhook2, webhookConnector2, UnverifiedWebhookError2, resolveWebhookVerification2, warnUnverifiedWebhook2, SixbHost2, createSixb2 };
|
|
3332
3385
|
|
|
3333
|
-
//# debugId=
|
|
3386
|
+
//# debugId=4CB6C5C3405BADC164756E2164756E21
|