@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,4 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto"
|
|
2
|
+
import { isJsonObject } from "../../json"
|
|
2
3
|
import type { ConnectorAuthorizationRecord } from "../../storage"
|
|
3
4
|
import { createConnectorCodedError } from "../errors"
|
|
4
5
|
import type { ConnectorAccountCandidate, ConnectorOAuthCredentials } from "../types"
|
|
@@ -26,6 +27,7 @@ export function validateCredentials(
|
|
|
26
27
|
tokenType?: string
|
|
27
28
|
scopes?: string[]
|
|
28
29
|
expiresAt?: Date
|
|
30
|
+
authorizationContext?: ConnectorOAuthCredentials["authorizationContext"]
|
|
29
31
|
} = {
|
|
30
32
|
accessToken: nonblank(
|
|
31
33
|
credentials.accessToken,
|
|
@@ -76,6 +78,16 @@ export function validateCredentials(
|
|
|
76
78
|
normalized.expiresAt = new Date(credentials.expiresAt)
|
|
77
79
|
}
|
|
78
80
|
|
|
81
|
+
if (credentials.authorizationContext !== undefined) {
|
|
82
|
+
if (!isJsonObject(credentials.authorizationContext)) {
|
|
83
|
+
throw createConnectorCodedError(
|
|
84
|
+
"connector.adapter_invalid",
|
|
85
|
+
"OAuth connector adapter returned invalid authorization context; expected a JSON object."
|
|
86
|
+
)
|
|
87
|
+
}
|
|
88
|
+
normalized.authorizationContext = structuredClone(credentials.authorizationContext)
|
|
89
|
+
}
|
|
90
|
+
|
|
79
91
|
return normalized
|
|
80
92
|
}
|
|
81
93
|
|
|
@@ -135,6 +147,9 @@ export function serializeCredentials(credentials: ConnectorOAuthCredentials): st
|
|
|
135
147
|
...(credentials.expiresAt === undefined
|
|
136
148
|
? {}
|
|
137
149
|
: { expiresAt: credentials.expiresAt.toISOString() }),
|
|
150
|
+
...(credentials.authorizationContext === undefined
|
|
151
|
+
? {}
|
|
152
|
+
: { authorizationContext: credentials.authorizationContext }),
|
|
138
153
|
})
|
|
139
154
|
}
|
|
140
155
|
|
|
@@ -160,7 +175,8 @@ export function parseCredentials(serialized: string): ConnectorOAuthCredentials
|
|
|
160
175
|
(value.tokenType !== undefined && typeof value.tokenType !== "string") ||
|
|
161
176
|
(value.scopes !== undefined &&
|
|
162
177
|
(!Array.isArray(value.scopes) || value.scopes.some((scope) => typeof scope !== "string"))) ||
|
|
163
|
-
(value.expiresAt !== undefined && typeof value.expiresAt !== "string")
|
|
178
|
+
(value.expiresAt !== undefined && typeof value.expiresAt !== "string") ||
|
|
179
|
+
(value.authorizationContext !== undefined && !isJsonObject(value.authorizationContext))
|
|
164
180
|
) {
|
|
165
181
|
throw createConnectorCodedError(
|
|
166
182
|
"connector.credentials_unavailable",
|
|
@@ -175,6 +191,9 @@ export function parseCredentials(serialized: string): ConnectorOAuthCredentials
|
|
|
175
191
|
...(value.tokenType === undefined ? {} : { tokenType: value.tokenType }),
|
|
176
192
|
...(value.scopes === undefined ? {} : { scopes: value.scopes as string[] }),
|
|
177
193
|
...(expiresAt === undefined ? {} : { expiresAt }),
|
|
194
|
+
...(value.authorizationContext === undefined
|
|
195
|
+
? {}
|
|
196
|
+
: { authorizationContext: value.authorizationContext }),
|
|
178
197
|
})
|
|
179
198
|
} catch (error) {
|
|
180
199
|
throw createConnectorCodedError(
|
|
@@ -238,21 +257,88 @@ export function normalizedHttpUrl(
|
|
|
238
257
|
|
|
239
258
|
export function assertAuthorizationUrlParameters(
|
|
240
259
|
authorizationUrl: string,
|
|
241
|
-
expected: { readonly state: string; readonly codeChallenge
|
|
260
|
+
expected: { readonly state: string; readonly codeChallenge?: string }
|
|
242
261
|
): void {
|
|
243
262
|
const parameters = new URL(authorizationUrl).searchParams
|
|
244
263
|
if (
|
|
245
264
|
!sameSingleParameter(parameters, "state", expected.state) ||
|
|
246
|
-
|
|
247
|
-
|
|
265
|
+
(expected.codeChallenge === undefined
|
|
266
|
+
? parameters.has("code_challenge") || parameters.has("code_challenge_method")
|
|
267
|
+
: !sameSingleParameter(parameters, "code_challenge", expected.codeChallenge) ||
|
|
268
|
+
!sameSingleParameter(parameters, "code_challenge_method", "S256"))
|
|
248
269
|
) {
|
|
249
270
|
throw createConnectorCodedError(
|
|
250
271
|
"connector.adapter_invalid",
|
|
251
|
-
|
|
272
|
+
expected.codeChallenge === undefined
|
|
273
|
+
? "OAuth connector authorization URL must preserve the framework-provided state and omit disabled PKCE parameters."
|
|
274
|
+
: "OAuth connector authorization URL must preserve the framework-provided state and PKCE S256 parameters."
|
|
252
275
|
)
|
|
253
276
|
}
|
|
254
277
|
}
|
|
255
278
|
|
|
279
|
+
export function connectorPkceEnabled(pkce: "S256" | "disabled" | undefined): boolean {
|
|
280
|
+
if (pkce === undefined || pkce === "S256") return true
|
|
281
|
+
if (pkce === "disabled") return false
|
|
282
|
+
throw createConnectorCodedError(
|
|
283
|
+
"connector.adapter_invalid",
|
|
284
|
+
"OAuth connector PKCE must be S256 or disabled."
|
|
285
|
+
)
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
const reservedCallbackParameters = new Set([
|
|
289
|
+
"state",
|
|
290
|
+
"code",
|
|
291
|
+
"auth_code",
|
|
292
|
+
"error",
|
|
293
|
+
"error_description",
|
|
294
|
+
"error_uri",
|
|
295
|
+
])
|
|
296
|
+
|
|
297
|
+
export function validateCallbackParameterNames(names: readonly string[] = []): void {
|
|
298
|
+
if (
|
|
299
|
+
!Array.isArray(names) ||
|
|
300
|
+
names.some(
|
|
301
|
+
(name) =>
|
|
302
|
+
typeof name !== "string" ||
|
|
303
|
+
!/^[A-Za-z_][A-Za-z0-9_.-]*$/.test(name) ||
|
|
304
|
+
reservedCallbackParameters.has(name)
|
|
305
|
+
) ||
|
|
306
|
+
new Set(names).size !== names.length
|
|
307
|
+
) {
|
|
308
|
+
throw createConnectorCodedError(
|
|
309
|
+
"connector.adapter_invalid",
|
|
310
|
+
"OAuth callback parameter names must be unique, non-reserved parameter names."
|
|
311
|
+
)
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/** Select only declared provider values after the callback's state and browser binding are proved. */
|
|
316
|
+
export function selectCallbackParameters(
|
|
317
|
+
names: readonly string[] = [],
|
|
318
|
+
parameters: Readonly<Record<string, string | readonly string[]>> = {}
|
|
319
|
+
): Readonly<Record<string, string>> {
|
|
320
|
+
validateCallbackParameterNames(names)
|
|
321
|
+
if (!isRecord(parameters)) {
|
|
322
|
+
throw createConnectorCodedError(
|
|
323
|
+
"connector.authorization_invalid",
|
|
324
|
+
"OAuth provider callback parameters must be an object."
|
|
325
|
+
)
|
|
326
|
+
}
|
|
327
|
+
return Object.fromEntries(
|
|
328
|
+
names.flatMap((name) => {
|
|
329
|
+
if (!Object.hasOwn(parameters, name)) return []
|
|
330
|
+
const value = parameters[name]
|
|
331
|
+
if (typeof value !== "string") {
|
|
332
|
+
throw createConnectorCodedError(
|
|
333
|
+
"connector.authorization_invalid",
|
|
334
|
+
"OAuth provider callback parameters must have a single string value."
|
|
335
|
+
)
|
|
336
|
+
}
|
|
337
|
+
return [[name, value]]
|
|
338
|
+
})
|
|
339
|
+
)
|
|
340
|
+
}
|
|
341
|
+
|
|
256
342
|
export function nonblank(
|
|
257
343
|
value: unknown,
|
|
258
344
|
field: string,
|
package/src/connectors/types.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReadonlyJsonObject } from "../json"
|
|
1
2
|
import type { WebhookDefinition } from "../webhooks/types"
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -33,6 +34,12 @@ export interface ConnectorOAuthCredentials {
|
|
|
33
34
|
readonly tokenType?: string
|
|
34
35
|
readonly scopes?: readonly string[]
|
|
35
36
|
readonly expiresAt?: Date
|
|
37
|
+
/**
|
|
38
|
+
* Provider-owned grant context, encrypted with the tokens and never exposed in connection views.
|
|
39
|
+
* Available to account discovery, refresh, and revoke. Refresh preserves it when omitted;
|
|
40
|
+
* returning an object replaces it (use {} to clear it). Code exchange starts fresh on reauthorization.
|
|
41
|
+
*/
|
|
42
|
+
readonly authorizationContext?: ReadonlyJsonObject
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
/** Public, non-secret account information returned for framework-owned selection UI. */
|
|
@@ -75,13 +82,17 @@ export interface OAuthConnectorAuthorizationContext extends ConnectorContext {
|
|
|
75
82
|
|
|
76
83
|
export interface OAuthConnectorAuthorizationUrlInput {
|
|
77
84
|
readonly state: string
|
|
78
|
-
|
|
79
|
-
readonly
|
|
85
|
+
/** Present only when the adapter enables PKCE (S256 by default). */
|
|
86
|
+
readonly codeChallenge?: string
|
|
87
|
+
readonly codeChallengeMethod?: "S256"
|
|
80
88
|
}
|
|
81
89
|
|
|
82
90
|
export interface OAuthConnectorCodeExchangeInput {
|
|
83
91
|
readonly code: string
|
|
84
|
-
|
|
92
|
+
/** Present only when this authorization attempt used PKCE. */
|
|
93
|
+
readonly codeVerifier?: string
|
|
94
|
+
/** Allowlisted callback values. Untrusted until the adapter validates them with the provider. */
|
|
95
|
+
readonly callbackParameters?: Readonly<Record<string, string>>
|
|
85
96
|
}
|
|
86
97
|
|
|
87
98
|
export interface ConnectorConnectionClientContext extends ConnectorContext {
|
|
@@ -109,6 +120,10 @@ export interface ConnectorTokenSource {
|
|
|
109
120
|
*/
|
|
110
121
|
export interface ConnectorOAuth2Authentication {
|
|
111
122
|
readonly type: "oauth2"
|
|
123
|
+
/** Defaults to S256. Disable only for providers whose flow does not support PKCE. */
|
|
124
|
+
readonly pkce?: "S256" | "disabled"
|
|
125
|
+
/** Additional callback parameter names accepted by exchangeCode; framework OAuth fields are reserved. */
|
|
126
|
+
readonly callbackParameters?: readonly string[]
|
|
112
127
|
authorizationUrl(
|
|
113
128
|
context: OAuthConnectorAuthorizationContext,
|
|
114
129
|
input: OAuthConnectorAuthorizationUrlInput
|
|
@@ -131,7 +146,7 @@ export interface ConnectorOAuth2Authentication {
|
|
|
131
146
|
export interface OAuthConnectorAdapter<TType extends string = string, TClient = unknown> {
|
|
132
147
|
readonly type: TType
|
|
133
148
|
readonly authentication: ConnectorOAuth2Authentication
|
|
134
|
-
readonly webhooks?:
|
|
149
|
+
readonly webhooks?: readonly WebhookDefinition<unknown, TClient>[]
|
|
135
150
|
discoverAccounts(
|
|
136
151
|
context: ConnectorContext,
|
|
137
152
|
credentials: ConnectorOAuthCredentials
|
package/src/errors/internal.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { cloneJsonValue, isJsonValue, isPlainRecord, type ReadonlyJsonValue } from "../json"
|
|
2
2
|
import { SIXB_ERROR_CODES, SIXB_ERROR_DEFINITIONS } from "./catalog"
|
|
3
|
+
import { createFailureRedactor } from "./redaction"
|
|
3
4
|
import type { SixbErrorCode, SixbFailure } from "./types"
|
|
4
5
|
|
|
5
6
|
export const SIXB_FAILURE_MAX_MESSAGE_BYTES = 4 * 1024
|
|
@@ -103,7 +104,11 @@ export function captureSixbFailure<const TCodes extends SixbErrorCodeTuple>(
|
|
|
103
104
|
|
|
104
105
|
/** Identifies errors created by Sixb without making their class part of the contract. */
|
|
105
106
|
export function isSixbError(error: unknown): error is SixbCodedError {
|
|
106
|
-
|
|
107
|
+
try {
|
|
108
|
+
return error instanceof SixbError
|
|
109
|
+
} catch {
|
|
110
|
+
return false
|
|
111
|
+
}
|
|
107
112
|
}
|
|
108
113
|
|
|
109
114
|
/**
|
|
@@ -128,9 +133,12 @@ export function toSixbFailure(
|
|
|
128
133
|
throw new Error(`[Sixb] Error code '${error.code}' is not allowed by this failure contract.`)
|
|
129
134
|
}
|
|
130
135
|
const code = error.code
|
|
131
|
-
const
|
|
136
|
+
const redactor = createFailureRedactor()
|
|
137
|
+
const details = error.details === undefined ? undefined : redactor.context(error.details)
|
|
138
|
+
const { detail, truncated } = findFailureDetail(error, code)
|
|
139
|
+
const summary = SIXB_ERROR_DEFINITIONS[code].publicMessage
|
|
132
140
|
const message = truncateUtf8(
|
|
133
|
-
|
|
141
|
+
redactor.text(detail && detail.message !== summary ? `${summary} ${detail.message}` : summary),
|
|
134
142
|
SIXB_FAILURE_MAX_MESSAGE_BYTES
|
|
135
143
|
)
|
|
136
144
|
const failure: SixbFailure = {
|
|
@@ -139,7 +147,9 @@ export function toSixbFailure(
|
|
|
139
147
|
retryable: SIXB_ERROR_DEFINITIONS[code].retryable,
|
|
140
148
|
at: failureTimestamp(options.at),
|
|
141
149
|
...(details === undefined ? {} : { details: cloneJsonValue(details, "Sixb failure details") }),
|
|
142
|
-
...(
|
|
150
|
+
...(detail?.httpStatus === undefined ? {} : { httpStatus: detail.httpStatus }),
|
|
151
|
+
...(redactor.redacted ? { redacted: true } : {}),
|
|
152
|
+
...(message.truncated || truncated || redactor.truncated ? { truncated: true } : {}),
|
|
143
153
|
}
|
|
144
154
|
|
|
145
155
|
if (serializedByteLength(failure) <= SIXB_FAILURE_MAX_SERIALIZED_BYTES) return failure
|
|
@@ -149,10 +159,67 @@ export function toSixbFailure(
|
|
|
149
159
|
message: failure.message,
|
|
150
160
|
retryable: failure.retryable,
|
|
151
161
|
at: failure.at,
|
|
162
|
+
...(failure.httpStatus === undefined ? {} : { httpStatus: failure.httpStatus }),
|
|
163
|
+
...(failure.redacted ? { redacted: true } : {}),
|
|
152
164
|
truncated: true,
|
|
153
165
|
}
|
|
154
166
|
}
|
|
155
167
|
|
|
168
|
+
const NETWORK_MESSAGES: Readonly<Record<string, string>> = {
|
|
169
|
+
ECONNREFUSED: "The remote service refused the connection.",
|
|
170
|
+
ECONNRESET: "The remote service reset the connection.",
|
|
171
|
+
ENOTFOUND: "The remote host could not be resolved.",
|
|
172
|
+
EAI_AGAIN: "DNS resolution temporarily failed.",
|
|
173
|
+
ETIMEDOUT: "The connection timed out.",
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
function isHttpStatus(value: unknown): value is number {
|
|
177
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 100 && value <= 599
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/** Select one explanation along the causal chain; unrelated aggregate errors stay separate. */
|
|
181
|
+
function findFailureDetail(
|
|
182
|
+
error: SixbCodedError,
|
|
183
|
+
boundaryCode: SixbErrorCode
|
|
184
|
+
): { detail?: { message: string; httpStatus?: number }; truncated: boolean } {
|
|
185
|
+
const seen = new Set<object>()
|
|
186
|
+
let current: unknown = error
|
|
187
|
+
while (typeof current === "object" && current !== null && !seen.has(current)) {
|
|
188
|
+
if (seen.size === 8) return { truncated: true }
|
|
189
|
+
seen.add(current)
|
|
190
|
+
if (
|
|
191
|
+
isSixbError(current) &&
|
|
192
|
+
current.code !== boundaryCode &&
|
|
193
|
+
current.code !== "internal.unexpected"
|
|
194
|
+
) {
|
|
195
|
+
return {
|
|
196
|
+
detail: { message: SIXB_ERROR_DEFINITIONS[current.code].publicMessage },
|
|
197
|
+
truncated: false,
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
try {
|
|
201
|
+
// Read only data properties: arbitrary messages and getters remain private.
|
|
202
|
+
const status =
|
|
203
|
+
Object.getOwnPropertyDescriptor(current, "status")?.value ??
|
|
204
|
+
Object.getOwnPropertyDescriptor(current, "statusCode")?.value
|
|
205
|
+
if (isHttpStatus(status)) {
|
|
206
|
+
return {
|
|
207
|
+
detail: { message: `Upstream request returned HTTP ${status}.`, httpStatus: status },
|
|
208
|
+
truncated: false,
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const code = Object.getOwnPropertyDescriptor(current, "code")?.value
|
|
212
|
+
if (typeof code === "string" && Object.hasOwn(NETWORK_MESSAGES, code)) {
|
|
213
|
+
return { detail: { message: NETWORK_MESSAGES[code] }, truncated: false }
|
|
214
|
+
}
|
|
215
|
+
current = Object.getOwnPropertyDescriptor(current, "cause")?.value
|
|
216
|
+
} catch {
|
|
217
|
+
break
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return { truncated: false }
|
|
221
|
+
}
|
|
222
|
+
|
|
156
223
|
/** Serializes a validated failure for durable storage. */
|
|
157
224
|
export function serializeSixbFailure<const TCodes extends SixbErrorCodeTuple>(
|
|
158
225
|
failure: SixbFailure<TCodes[number]>,
|
|
@@ -186,7 +253,7 @@ export function parseSixbFailure(
|
|
|
186
253
|
throw invalidStoredFailure("expected a JSON object")
|
|
187
254
|
}
|
|
188
255
|
|
|
189
|
-
const { code, message, retryable, at, details, truncated } = candidate
|
|
256
|
+
const { code, message, retryable, at, details, httpStatus, redacted, truncated } = candidate
|
|
190
257
|
if (typeof code !== "string" || !SIXB_ERROR_CODE_SET.has(code)) {
|
|
191
258
|
throw invalidStoredFailure("code is not a known Sixb error code")
|
|
192
259
|
}
|
|
@@ -215,15 +282,28 @@ export function parseSixbFailure(
|
|
|
215
282
|
throw invalidStoredFailure("truncated must be true when present")
|
|
216
283
|
}
|
|
217
284
|
|
|
285
|
+
if (redacted !== undefined && redacted !== true) {
|
|
286
|
+
throw invalidStoredFailure("redacted must be true when present")
|
|
287
|
+
}
|
|
288
|
+
if (httpStatus !== undefined && !isHttpStatus(httpStatus)) {
|
|
289
|
+
throw invalidStoredFailure("httpStatus must be an integer HTTP status")
|
|
290
|
+
}
|
|
291
|
+
const redactor = createFailureRedactor()
|
|
292
|
+
const safeMessage = truncateUtf8(redactor.text(message), SIXB_FAILURE_MAX_MESSAGE_BYTES)
|
|
293
|
+
const safeDetails =
|
|
294
|
+
details === undefined ? undefined : redactor.context(details as ReadonlyJsonValue)
|
|
295
|
+
|
|
218
296
|
const failure: SixbFailure = {
|
|
219
297
|
code: code as SixbErrorCode,
|
|
220
|
-
message,
|
|
298
|
+
message: safeMessage.value,
|
|
221
299
|
retryable,
|
|
222
300
|
at,
|
|
223
|
-
...(
|
|
301
|
+
...(safeDetails === undefined
|
|
224
302
|
? {}
|
|
225
|
-
: { details: cloneJsonValue(
|
|
226
|
-
...(
|
|
303
|
+
: { details: cloneJsonValue(safeDetails, "Stored Sixb failure details") }),
|
|
304
|
+
...(httpStatus === undefined ? {} : { httpStatus: httpStatus as number }),
|
|
305
|
+
...(redacted || redactor.redacted ? { redacted: true } : {}),
|
|
306
|
+
...(truncated || redactor.truncated || safeMessage.truncated ? { truncated: true } : {}),
|
|
227
307
|
}
|
|
228
308
|
if (serializedByteLength(failure) > SIXB_FAILURE_MAX_SERIALIZED_BYTES) {
|
|
229
309
|
throw invalidStoredFailure(
|
|
@@ -255,7 +335,7 @@ function invalidStoredFailure(reason: string): Error {
|
|
|
255
335
|
* Extracts a diagnostic message for an internal error or log entry.
|
|
256
336
|
*
|
|
257
337
|
* The result can contain provider data and must not be persisted or returned by an API.
|
|
258
|
-
* `toSixbFailure()`
|
|
338
|
+
* `toSixbFailure()` constructs a message from recognized HTTP, network, or Sixb information instead.
|
|
259
339
|
*/
|
|
260
340
|
export function summarizeErrorMessage(value: unknown, fallback?: string): string {
|
|
261
341
|
const message = readStringProperty(value, "message")
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { ReadonlyJsonValue } from "../json"
|
|
2
|
+
|
|
3
|
+
const REDACTED = "[REDACTED]"
|
|
4
|
+
const MAX_CONTEXT_DEPTH = 12
|
|
5
|
+
const MAX_CONTEXT_ENTRIES = 1024
|
|
6
|
+
const SENSITIVE_KEY =
|
|
7
|
+
/password|passwd|passphrase|secret|token|credential|authorization|cookie|privatekey|apikey|accesskey|connectionstring|databaseurl|clientassertion|signature/i
|
|
8
|
+
const PRIVATE_CONTAINER =
|
|
9
|
+
/^(?:request|response)(?:body|headers)?$|^(?:headers|body|payload|env|environment)$/i
|
|
10
|
+
|
|
11
|
+
function isSensitiveKey(key: string): boolean {
|
|
12
|
+
const normalized = key.replace(/[^a-z0-9]/gi, "")
|
|
13
|
+
return SENSITIVE_KEY.test(normalized) || PRIVATE_CONTAINER.test(normalized)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Runtime credentials are additional protection for context; never a license to copy errors. */
|
|
17
|
+
function environmentSecrets(): string[] {
|
|
18
|
+
return Object.entries(process.env)
|
|
19
|
+
.filter(([key, value]) => isSensitiveKey(key) && value !== undefined && value.length >= 4)
|
|
20
|
+
.map(([, value]) => value as string)
|
|
21
|
+
.sort((a, b) => b.length - a.length)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function createFailureRedactor() {
|
|
25
|
+
const secrets = environmentSecrets()
|
|
26
|
+
let redacted = false
|
|
27
|
+
let truncated = false
|
|
28
|
+
let entries = 0
|
|
29
|
+
|
|
30
|
+
const text = (input: string): string => {
|
|
31
|
+
let value = input
|
|
32
|
+
for (const secret of secrets) {
|
|
33
|
+
value = value
|
|
34
|
+
.split(REDACTED)
|
|
35
|
+
.map((part) => part.split(secret).join(REDACTED))
|
|
36
|
+
.join(REDACTED)
|
|
37
|
+
}
|
|
38
|
+
value = value
|
|
39
|
+
.replace(
|
|
40
|
+
/-----BEGIN [^-]*PRIVATE KEY-----[\s\S]*?(?:-----END [^-]*PRIVATE KEY-----|$)/g,
|
|
41
|
+
REDACTED
|
|
42
|
+
)
|
|
43
|
+
.replace(/\b(?:Bearer|Basic)\s+[A-Za-z0-9+/_.~=-]+/gi, REDACTED)
|
|
44
|
+
.replace(/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g, REDACTED)
|
|
45
|
+
.replace(
|
|
46
|
+
/\b(?:sk[-_](?:live[-_]|test[-_]|proj[-_])?[A-Za-z0-9_-]{12,}|gh[pousr]_[A-Za-z0-9_]{20,}|github_pat_[A-Za-z0-9_]+|AKIA[A-Z0-9]{16})\b/g,
|
|
47
|
+
REDACTED
|
|
48
|
+
)
|
|
49
|
+
// URLs may carry userinfo, signed query parameters, or credentials in the path.
|
|
50
|
+
.replace(/\b[a-z][a-z0-9+.-]*:\/\/[^\s<>"']+/gi, REDACTED)
|
|
51
|
+
.replace(
|
|
52
|
+
/["']?\b(?:password|passwd|passphrase|[a-z_-]*secret|[a-z_-]*token|api[-_]?key|authorization|cookie|credential|signature)["']?\s*[=:]\s*(?:"[^"\r\n]*"|'[^'\r\n]*'|[^\s,;]+)/gi,
|
|
53
|
+
REDACTED
|
|
54
|
+
)
|
|
55
|
+
if (value !== input) redacted = true
|
|
56
|
+
return value
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const context = (value: ReadonlyJsonValue, depth = 0): ReadonlyJsonValue => {
|
|
60
|
+
if (depth > MAX_CONTEXT_DEPTH || entries++ >= MAX_CONTEXT_ENTRIES) {
|
|
61
|
+
truncated = true
|
|
62
|
+
return "[TRUNCATED]"
|
|
63
|
+
}
|
|
64
|
+
if (typeof value === "string") return text(value)
|
|
65
|
+
if (value === null || typeof value !== "object") return value
|
|
66
|
+
if (Array.isArray(value)) {
|
|
67
|
+
const available = Math.max(0, MAX_CONTEXT_ENTRIES - entries)
|
|
68
|
+
if (value.length > available) truncated = true
|
|
69
|
+
return value.slice(0, available).map((entry) => context(entry, depth + 1))
|
|
70
|
+
}
|
|
71
|
+
const result: Record<string, ReadonlyJsonValue> = Object.create(null)
|
|
72
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
73
|
+
if (entries >= MAX_CONTEXT_ENTRIES) {
|
|
74
|
+
truncated = true
|
|
75
|
+
break
|
|
76
|
+
}
|
|
77
|
+
if (isSensitiveKey(key)) {
|
|
78
|
+
redacted = true
|
|
79
|
+
entries++
|
|
80
|
+
result[text(key)] = REDACTED
|
|
81
|
+
} else {
|
|
82
|
+
result[text(key)] = context(entry, depth + 1)
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return result
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
text,
|
|
90
|
+
context,
|
|
91
|
+
get redacted() {
|
|
92
|
+
return redacted
|
|
93
|
+
},
|
|
94
|
+
get truncated() {
|
|
95
|
+
return truncated
|
|
96
|
+
},
|
|
97
|
+
}
|
|
98
|
+
}
|
package/src/errors/types.ts
CHANGED
|
@@ -16,6 +16,10 @@ export interface SixbFailure<TCode extends SixbErrorCode = SixbErrorCode> {
|
|
|
16
16
|
/** ISO-8601 UTC timestamp of the failure occurrence. */
|
|
17
17
|
readonly at: string
|
|
18
18
|
readonly details?: ReadonlyJsonValue
|
|
19
|
+
/** Status returned by the failed upstream request, when one exists. */
|
|
20
|
+
readonly httpStatus?: number
|
|
21
|
+
/** Sensitive context was replaced before this record crossed a storage or API boundary. */
|
|
22
|
+
readonly redacted?: true
|
|
19
23
|
/** Present when optional context exceeded the durable failure size budget and was omitted. */
|
|
20
24
|
readonly truncated?: true
|
|
21
25
|
}
|
package/src/events/execution.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface EventsRuntime {
|
|
|
17
17
|
latestCursor(): Promise<string | undefined>
|
|
18
18
|
subscribe(
|
|
19
19
|
input: EventsSubscribeInput,
|
|
20
|
-
handler: (events: readonly StoredDomainEvent[]) =>
|
|
20
|
+
handler: (events: readonly StoredDomainEvent[]) => unknown
|
|
21
21
|
): Promise<() => void>
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -88,7 +88,7 @@ export function createEventsRuntime(runtime: SixbRuntimeContext): EventsRuntime
|
|
|
88
88
|
}
|
|
89
89
|
return runtime.events.subscribe(input, (events) => {
|
|
90
90
|
const visible = visibleEvents(events)
|
|
91
|
-
if (visible.length > 0) handler(visible)
|
|
91
|
+
if (visible.length > 0) return handler(visible)
|
|
92
92
|
})
|
|
93
93
|
},
|
|
94
94
|
}
|
package/src/events/service.ts
CHANGED
|
@@ -79,7 +79,7 @@ export interface DomainEventLog {
|
|
|
79
79
|
latestCursor(): Promise<string | undefined>
|
|
80
80
|
subscribe(
|
|
81
81
|
input: EventsSubscribeInput,
|
|
82
|
-
handler: (events: readonly StoredDomainEvent[]) =>
|
|
82
|
+
handler: (events: readonly StoredDomainEvent[]) => unknown
|
|
83
83
|
): Promise<() => void>
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -251,7 +251,7 @@ export class DomainEventService implements DomainEventLog, StableEventPublisher
|
|
|
251
251
|
|
|
252
252
|
async subscribe(
|
|
253
253
|
input: EventsSubscribeInput,
|
|
254
|
-
handler: (events: readonly StoredDomainEvent[]) =>
|
|
254
|
+
handler: (events: readonly StoredDomainEvent[]) => unknown
|
|
255
255
|
): Promise<() => void> {
|
|
256
256
|
await this.ensureStream()
|
|
257
257
|
return this.broker.subscribe(
|
|
@@ -269,7 +269,7 @@ export class DomainEventService implements DomainEventLog, StableEventPublisher
|
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
try {
|
|
272
|
-
handler(events)
|
|
272
|
+
return handler(events)
|
|
273
273
|
} catch {
|
|
274
274
|
// Preserve fire-and-forget subscriber semantics.
|
|
275
275
|
}
|
package/src/execution/agent.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AgentExecutionAuthorization, agentServiceAccountId } from "../agents/authority"
|
|
2
2
|
import type { OntologySource } from "../ontology"
|
|
3
3
|
import { isBoundSixb, type Sixb } from "../runtime/sixb"
|
|
4
|
-
import type {
|
|
4
|
+
import type { ExecutionRecord } from "../storage/executions"
|
|
5
5
|
import { ExecutionStorageError } from "../storage/executions"
|
|
6
6
|
|
|
7
7
|
export { ensureExecutionRecord } from "./durable"
|
|
@@ -36,11 +36,12 @@ export function createAgentExecutionRecord(input: {
|
|
|
36
36
|
readonly actorId: string
|
|
37
37
|
readonly runId: string
|
|
38
38
|
readonly principal: Extract<AuthorizablePrincipal, { readonly type: "serviceAccount" }>
|
|
39
|
-
}):
|
|
39
|
+
}): Omit<ExecutionRecord, "createdAt"> {
|
|
40
40
|
assertAgentPrincipal(input.actorId, input.principal)
|
|
41
41
|
return {
|
|
42
42
|
id: input.id,
|
|
43
43
|
projectId: input.parent.projectId,
|
|
44
|
+
requesterGroupIds: [...input.parent.requesterGroupIds],
|
|
44
45
|
...(input.parent.requestedBy === undefined
|
|
45
46
|
? {}
|
|
46
47
|
: { requestedBy: structuredClone(input.parent.requestedBy) }),
|
|
@@ -59,7 +60,7 @@ export function createInheritedAgentExecutionRecord(input: {
|
|
|
59
60
|
readonly id: string
|
|
60
61
|
readonly parent: ExecutionRecord
|
|
61
62
|
readonly runId: string
|
|
62
|
-
}):
|
|
63
|
+
}): Omit<ExecutionRecord, "createdAt"> {
|
|
63
64
|
const authority = input.parent.authorizationRef
|
|
64
65
|
if (
|
|
65
66
|
authority.type !== "disabled" &&
|
|
@@ -78,6 +79,7 @@ export function createInheritedAgentExecutionRecord(input: {
|
|
|
78
79
|
return {
|
|
79
80
|
id: input.id,
|
|
80
81
|
projectId: input.parent.projectId,
|
|
82
|
+
requesterGroupIds: [...input.parent.requesterGroupIds],
|
|
81
83
|
...(input.parent.requestedBy === undefined
|
|
82
84
|
? {}
|
|
83
85
|
: { requestedBy: structuredClone(input.parent.requestedBy) }),
|
package/src/execution/durable.ts
CHANGED
|
@@ -82,6 +82,7 @@ type PrimitiveExecutionOrigin =
|
|
|
82
82
|
>
|
|
83
83
|
readonly correlationId: string
|
|
84
84
|
readonly requestedBy?: CreateExecutionInput["requestedBy"]
|
|
85
|
+
readonly requesterGroupIds?: readonly string[]
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
/** Build an immutable primitive execution from its parent execution or automatic trigger. */
|
|
@@ -94,6 +95,7 @@ export function createPrimitiveExecutionRecord(input: {
|
|
|
94
95
|
input.origin.type === "execution"
|
|
95
96
|
? {
|
|
96
97
|
projectId: input.origin.parent.projectId,
|
|
98
|
+
requesterGroupIds: [...input.origin.parent.requesterGroupIds],
|
|
97
99
|
...(input.origin.parent.requestedBy === undefined
|
|
98
100
|
? {}
|
|
99
101
|
: { requestedBy: structuredClone(input.origin.parent.requestedBy) }),
|
|
@@ -102,6 +104,9 @@ export function createPrimitiveExecutionRecord(input: {
|
|
|
102
104
|
}
|
|
103
105
|
: {
|
|
104
106
|
projectId: input.origin.projectId,
|
|
107
|
+
...(input.origin.requesterGroupIds === undefined
|
|
108
|
+
? {}
|
|
109
|
+
: { requesterGroupIds: [...input.origin.requesterGroupIds] }),
|
|
105
110
|
...(input.origin.requestedBy === undefined
|
|
106
111
|
? {}
|
|
107
112
|
: { requestedBy: structuredClone(input.origin.requestedBy) }),
|
|
@@ -171,7 +176,12 @@ function assertExecutionRecordMatches(
|
|
|
171
176
|
input: CreateExecutionInput
|
|
172
177
|
): void {
|
|
173
178
|
const { createdAt: _createdAt, ...stored } = existing
|
|
174
|
-
if (
|
|
179
|
+
if (
|
|
180
|
+
!isDeepStrictEqual(stored, {
|
|
181
|
+
...input,
|
|
182
|
+
requesterGroupIds: input.requesterGroupIds ?? stored.requesterGroupIds,
|
|
183
|
+
})
|
|
184
|
+
) {
|
|
175
185
|
throw new ExecutionStorageError(
|
|
176
186
|
"duplicate_execution",
|
|
177
187
|
`[Sixb] Execution '${input.id}' already exists with different immutable provenance.`
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bindModelExecutionAttempt, type ModelExecutionAttempt } from "../models/execution/binding"
|
|
1
2
|
import type { OntologySource } from "../ontology"
|
|
2
3
|
import type { OntologyMutationRuntime } from "../runtime/ontology-mutations"
|
|
3
4
|
import { getOntologyMutationRuntime } from "../runtime/ontology-mutations"
|
|
@@ -24,9 +25,12 @@ export function bindDurablePrimitiveExecution(
|
|
|
24
25
|
input: {
|
|
25
26
|
readonly execution: ExecutionRecord
|
|
26
27
|
readonly primitive: TrustedPrimitiveRef
|
|
28
|
+
readonly modelExecution?: ModelExecutionAttempt
|
|
27
29
|
}
|
|
28
30
|
): BoundPrimitiveExecution {
|
|
29
|
-
|
|
31
|
+
const bound = bindPrimitiveScope(host, restoreTrustedPrimitiveExecutionScope(input))
|
|
32
|
+
if (input.modelExecution) bindModelExecutionAttempt(bound.sixb.models, input.modelExecution)
|
|
33
|
+
return bound
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
function bindPrimitiveScope(
|
package/src/execution/request.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto"
|
|
2
2
|
import type { AuthorizationContext } from "../authorization"
|
|
3
|
+
import { bindModelExecutionAttempt } from "../models/execution/binding"
|
|
3
4
|
import type { OntologySource } from "../ontology"
|
|
4
5
|
import { isBoundSixb, type Sixb } from "../runtime/sixb"
|
|
5
6
|
import {
|
|
@@ -32,6 +33,7 @@ export type { AuthorizationContext } from "../authorization"
|
|
|
32
33
|
export type { DatasetsRuntime } from "../datasets/execution"
|
|
33
34
|
export type { EventsRuntime } from "../events/execution"
|
|
34
35
|
export type { LogsRuntime } from "../logging/execution"
|
|
36
|
+
export type { LanguageModelsRuntime, ModelsRuntime } from "../models/generation-types"
|
|
35
37
|
export type {
|
|
36
38
|
ExecutionObjectByIdHandle,
|
|
37
39
|
ExecutionObjectSet,
|
|
@@ -104,6 +106,7 @@ export function bindRequestExecution(
|
|
|
104
106
|
if (!isBoundSixb(sixb)) {
|
|
105
107
|
throw new Error("[Sixb] Request host did not return an execution-bound Sixb SDK.")
|
|
106
108
|
}
|
|
109
|
+
bindModelExecutionAttempt(sixb.models, { attempt: 1, signal: input.request.signal })
|
|
107
110
|
return sixb
|
|
108
111
|
}
|
|
109
112
|
|