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