@sixb/core 0.1.7 → 0.1.9
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/delegated-admission.d.ts +24 -0
- package/dist/actions/delegated-admission.d.ts.map +1 -0
- package/dist/actions/descriptor.d.ts +29 -0
- package/dist/actions/descriptor.d.ts.map +1 -0
- package/dist/actions/execution.d.ts +5 -5
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.js +78 -84
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +20 -0
- package/dist/actions/run-authorization.d.ts.map +1 -0
- package/dist/actions/run-dispatch.d.ts +3 -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 +8 -125
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +1 -1
- package/dist/agents/authority.d.ts.map +1 -1
- 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/errors.d.ts +0 -9
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/identity.d.ts +3 -0
- package/dist/agents/identity.d.ts.map +1 -0
- package/dist/agents/index.d.ts +7 -7
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +193 -205
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +5 -6
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +4 -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/tool-definition.d.ts +0 -1
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/types.d.ts +1 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +0 -4
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/ai-usage/execution.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 -105
- 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/decision.d.ts +10 -2
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +2 -1
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +51 -53
- 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 +20 -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 +79 -81
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/broker/index.js +8 -10
- package/dist/broker/index.js.map +1 -1
- package/dist/{chunk-k34z5rvh.js → chunk-0rdrecsb.js} +18 -18
- package/dist/{chunk-k34z5rvh.js.map → chunk-0rdrecsb.js.map} +2 -2
- package/dist/{chunk-3fqt22c4.js → chunk-0w35wavj.js} +360 -168
- package/dist/chunk-0w35wavj.js.map +14 -0
- package/dist/chunk-0y39rgsb.js +43 -0
- package/dist/{chunk-c15dr03f.js.map → chunk-0y39rgsb.js.map} +2 -2
- package/dist/{chunk-hdz94br2.js → chunk-17kfctj6.js} +23 -13
- package/dist/chunk-17kfctj6.js.map +10 -0
- package/dist/{chunk-e4rvtvpw.js → chunk-1enhpacz.js} +418 -233
- package/dist/chunk-1enhpacz.js.map +34 -0
- package/dist/{chunk-5gd7tpv6.js → chunk-2c4j899j.js} +4 -4
- package/dist/{chunk-5gd7tpv6.js.map → chunk-2c4j899j.js.map} +2 -2
- package/dist/{chunk-7ds9620f.js → chunk-38zv5rkr.js} +24 -8
- package/dist/chunk-38zv5rkr.js.map +10 -0
- 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-8m5ejdpn.js → chunk-3f7veca0.js} +4 -4
- package/dist/{chunk-8m5ejdpn.js.map → chunk-3f7veca0.js.map} +2 -2
- package/dist/chunk-3frsnm7x.js +32 -0
- package/dist/chunk-3frsnm7x.js.map +11 -0
- package/dist/{chunk-n2w475r0.js → chunk-3tgwrcyh.js} +81 -81
- package/dist/{chunk-n2w475r0.js.map → chunk-3tgwrcyh.js.map} +2 -2
- package/dist/{chunk-qv38twt8.js → chunk-52hbv0ak.js} +192 -171
- package/dist/{chunk-qv38twt8.js.map → chunk-52hbv0ak.js.map} +6 -6
- 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-rte5sm3z.js → chunk-5hz0fnca.js} +23 -23
- package/dist/{chunk-rte5sm3z.js.map → chunk-5hz0fnca.js.map} +2 -2
- 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-08twe8m6.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-tn7xcs2n.js → chunk-860dwwy0.js} +93 -30
- package/dist/chunk-860dwwy0.js.map +14 -0
- 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-gbrpsx4m.js → chunk-93csa55g.js} +72 -16
- package/dist/chunk-93csa55g.js.map +11 -0
- package/dist/{chunk-d8qkxt2v.js → chunk-98cw09sw.js} +7 -7
- package/dist/chunk-98cw09sw.js.map +10 -0
- package/dist/chunk-9qsh3p5y.js +111 -0
- package/dist/chunk-9qsh3p5y.js.map +11 -0
- package/dist/{chunk-4a849fr1.js → chunk-9tc8dxmn.js} +1 -1
- package/dist/{chunk-z2sery1b.js → chunk-9vx5e9g1.js} +68 -28
- package/dist/chunk-9vx5e9g1.js.map +11 -0
- package/dist/{chunk-9aehf39w.js → chunk-an5tt9y0.js} +353 -353
- package/dist/{chunk-9aehf39w.js.map → chunk-an5tt9y0.js.map} +2 -2
- package/dist/{chunk-x0qhkqje.js → chunk-ap0g1g74.js} +37 -37
- package/dist/{chunk-x0qhkqje.js.map → chunk-ap0g1g74.js.map} +2 -2
- package/dist/chunk-awbhdqyc.js +252 -0
- package/dist/chunk-awbhdqyc.js.map +10 -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-br3k6qbf.js +436 -0
- package/dist/chunk-br3k6qbf.js.map +12 -0
- 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-atmkaf60.js → chunk-dmn70ztd.js} +30 -34
- package/dist/chunk-dmn70ztd.js.map +11 -0
- package/dist/chunk-dz5h08xv.js +1887 -0
- package/dist/chunk-dz5h08xv.js.map +25 -0
- 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-ha58tjtt.js → chunk-emyyk7dx.js} +59 -55
- package/dist/{chunk-ha58tjtt.js.map → chunk-emyyk7dx.js.map} +3 -3
- package/dist/{chunk-3kv70xwp.js → chunk-ey1nk510.js} +18 -2
- package/dist/chunk-ey1nk510.js.map +10 -0
- package/dist/chunk-f0rwz2vh.js +152 -0
- 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-rre42skh.js → chunk-g00bfdq6.js} +729 -296
- package/dist/{chunk-rre42skh.js.map → chunk-g00bfdq6.js.map} +11 -7
- 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-51fjndv0.js → chunk-gfdh9kqa.js} +4 -4
- package/dist/{chunk-51fjndv0.js.map → chunk-gfdh9kqa.js.map} +2 -2
- package/dist/chunk-h1gfhhbh.js +602 -0
- package/dist/chunk-h1gfhhbh.js.map +18 -0
- package/dist/chunk-h3v76ams.js +32 -0
- package/dist/{chunk-08m3b6w8.js.map → chunk-h3v76ams.js.map} +2 -2
- package/dist/chunk-hpr1r6av.js +4006 -0
- package/dist/chunk-hpr1r6av.js.map +44 -0
- 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-rp1mvzb4.js → chunk-jjy0fhrn.js} +40 -35
- package/dist/{chunk-rp1mvzb4.js.map → chunk-jjy0fhrn.js.map} +3 -3
- package/dist/{chunk-4nxeacx7.js → chunk-jmfet9r4.js} +6 -6
- package/dist/{chunk-4nxeacx7.js.map → chunk-jmfet9r4.js.map} +2 -2
- package/dist/{chunk-64sr682n.js → chunk-k3cqkkn2.js} +61 -55
- package/dist/chunk-k3cqkkn2.js.map +12 -0
- package/dist/{chunk-s5y30bc9.js → chunk-kxwa347f.js} +51 -49
- package/dist/{chunk-s5y30bc9.js.map → chunk-kxwa347f.js.map} +4 -4
- 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-qjycjdj6.js → chunk-m3z3x9v0.js} +106 -65
- package/dist/{chunk-qjycjdj6.js.map → chunk-m3z3x9v0.js.map} +3 -3
- package/dist/{chunk-6ed5bwnd.js → chunk-mjbk2djy.js} +2092 -1714
- package/dist/chunk-mjbk2djy.js.map +57 -0
- package/dist/{chunk-5jcdmjam.js → chunk-mmagke4x.js} +6 -6
- package/dist/{chunk-5jcdmjam.js.map → chunk-mmagke4x.js.map} +2 -2
- package/dist/chunk-mrp7k0pw.js +147 -0
- package/dist/chunk-mrp7k0pw.js.map +10 -0
- package/dist/{chunk-d63tybny.js → chunk-ms2tmn1k.js} +139 -139
- package/dist/{chunk-d63tybny.js.map → chunk-ms2tmn1k.js.map} +2 -2
- package/dist/{chunk-xdpwpkha.js → chunk-ppytyr6w.js} +156 -179
- package/dist/{chunk-xdpwpkha.js.map → chunk-ppytyr6w.js.map} +3 -5
- 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-qjzp9xyb.js → chunk-pr2h4bv4.js} +33 -35
- package/dist/chunk-pr2h4bv4.js.map +12 -0
- 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-agsvg9ar.js → chunk-qf954wje.js} +6 -6
- package/dist/{chunk-agsvg9ar.js.map → chunk-qf954wje.js.map} +2 -2
- package/dist/{chunk-wjgm6jjt.js → chunk-qhcpj9wc.js} +166 -132
- package/dist/chunk-qhcpj9wc.js.map +14 -0
- package/dist/{chunk-tpnd31c1.js → chunk-r29fxdhn.js} +12 -12
- package/dist/{chunk-tpnd31c1.js.map → chunk-r29fxdhn.js.map} +2 -2
- 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-2b5qtban.js → chunk-r4tfx1sf.js} +142 -89
- package/dist/chunk-r4tfx1sf.js.map +15 -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-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-v4jbb3rs.js +403 -0
- package/dist/chunk-v4jbb3rs.js.map +10 -0
- package/dist/{chunk-d2ndstdf.js → chunk-vf691g1r.js} +61 -59
- package/dist/{chunk-d2ndstdf.js.map → chunk-vf691g1r.js.map} +2 -2
- package/dist/{chunk-1kamz6j0.js → chunk-vsj3mdfj.js} +8 -8
- package/dist/{chunk-1kamz6j0.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-8tsf6dmc.js → chunk-x57ycxq0.js} +204 -204
- package/dist/{chunk-8tsf6dmc.js.map → chunk-x57ycxq0.js.map} +2 -2
- package/dist/chunk-x9v4cx1d.js +139 -0
- package/dist/chunk-x9v4cx1d.js.map +10 -0
- package/dist/{chunk-kt81c11h.js → chunk-xfbydgzy.js} +27 -27
- package/dist/{chunk-kt81c11h.js.map → chunk-xfbydgzy.js.map} +2 -2
- package/dist/{chunk-vjjv9mrb.js → chunk-xyr8kppc.js} +22 -22
- package/dist/{chunk-vjjv9mrb.js.map → chunk-xyr8kppc.js.map} +3 -3
- package/dist/chunk-ypbtykv6.js +1537 -0
- package/dist/chunk-ypbtykv6.js.map +19 -0
- 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-xc7hq65b.js → chunk-z30bv4ga.js} +80 -33
- package/dist/chunk-z30bv4ga.js.map +11 -0
- 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-z8fx5cgb.js +159 -0
- package/dist/chunk-z8fx5cgb.js.map +11 -0
- package/dist/{chunk-xhy826cz.js → chunk-zcnq6105.js} +7 -7
- package/dist/{chunk-xhy826cz.js.map → chunk-zcnq6105.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/internal.js +9 -10
- package/dist/connectors/connections/internal.js.map +1 -1
- package/dist/datasets/builders.d.ts +11 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/changes.d.ts +14 -4
- package/dist/datasets/changes.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +15 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -0
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/sequence.d.ts +7 -0
- package/dist/datasets/sequence.d.ts.map +1 -0
- package/dist/datasets/types.d.ts +1 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +37 -0
- package/dist/datasets/write.d.ts.map +1 -0
- package/dist/datasets/write.js +13 -0
- package/dist/datasets/write.js.map +9 -0
- 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.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/types/datasets.d.ts +2 -6
- package/dist/events/types/datasets.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 +70 -75
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts +58 -20
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +69 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -0
- package/dist/execution/durable.d.ts +1 -0
- package/dist/execution/durable.d.ts.map +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.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 +63 -64
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +12 -0
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +97 -71
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/scopes.d.ts +16 -0
- package/dist/execution/scopes.d.ts.map +1 -1
- package/dist/execution/types.d.ts +9 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/http/api-routes.d.ts +2 -0
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +10 -11
- package/dist/http/index.js.map +1 -1
- package/dist/index.d.ts +21 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +455 -463
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/definition-updates.d.ts.map +1 -1
- package/dist/lake-storage/errors.d.ts +5 -1
- package/dist/lake-storage/errors.d.ts.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +40 -27
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/merge-validation.d.ts.map +1 -1
- package/dist/lake-storage/merge.d.ts +13 -2
- package/dist/lake-storage/merge.d.ts.map +1 -1
- package/dist/lake-storage/source-ordering.d.ts +19 -0
- package/dist/lake-storage/source-ordering.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +2 -1
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +10 -5
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +4 -0
- package/dist/lake-storage/version-inputs.d.ts.map +1 -0
- 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.js +46 -49
- package/dist/materialization/index.js.map +1 -1
- package/dist/materializer/index.js +137 -142
- package/dist/materializer/index.js.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/authorized-ontology-view.d.ts +25 -0
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
- package/dist/objects/execution.d.ts +1 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +75 -84
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +2 -7
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/query/executor.d.ts +4 -2
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +67 -73
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/links.d.ts +22 -1
- package/dist/objects/query/links.d.ts.map +1 -1
- package/dist/objects/query/selected-read-admission.d.ts +27 -0
- package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts +60 -2
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/service/list-service.d.ts +2 -3
- package/dist/objects/service/list-service.d.ts.map +1 -1
- package/dist/objects/telemetry/history.d.ts +8 -6
- package/dist/objects/telemetry/history.d.ts.map +1 -1
- package/dist/objects/telemetry/index.d.ts +2 -2
- package/dist/objects/telemetry/index.d.ts.map +1 -1
- package/dist/objects/telemetry/workload.d.ts +11 -0
- package/dist/objects/telemetry/workload.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +2 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +61 -111
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +2 -1
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +7 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +65 -121
- package/dist/ontology/internal.js.map +3 -4
- package/dist/ontology/json-schema.d.ts +10 -6
- package/dist/ontology/json-schema.d.ts.map +1 -1
- package/dist/ontology/link-path-selection.d.ts +35 -0
- package/dist/ontology/link-path-selection.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +2 -0
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +2 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/pipelines/execution.d.ts.map +1 -1
- package/dist/pipelines/index.js +57 -63
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/request.d.ts.map +1 -1
- package/dist/projections/execution.d.ts.map +1 -1
- package/dist/projections/internal.js +58 -64
- 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/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/types.d.ts +3 -20
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/rules/execution.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 +6 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +2 -0
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +4 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +13 -14
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts +2 -0
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +6 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +3 -0
- package/dist/runtime/types.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/execution.d.ts +2 -1
- package/dist/schedules/execution.d.ts.map +1 -1
- package/dist/schedules/index.js +31 -33
- package/dist/schedules/index.js.map +1 -1
- package/dist/security/every.d.ts +4 -1
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +7 -2
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/registry.d.ts +1 -0
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +7 -1
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +2 -0
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/access-plan.d.ts +22 -0
- package/dist/shares/access-plan.d.ts.map +1 -0
- package/dist/shares/builders.d.ts +14 -0
- package/dist/shares/builders.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts +14 -0
- package/dist/shares/compiler.d.ts.map +1 -0
- package/dist/shares/errors.d.ts +4 -0
- package/dist/shares/errors.d.ts.map +1 -0
- package/dist/shares/execution.d.ts +57 -0
- package/dist/shares/execution.d.ts.map +1 -0
- package/dist/shares/index.d.ts +10 -0
- package/dist/shares/index.d.ts.map +1 -0
- package/dist/shares/internal.d.ts +3 -0
- package/dist/shares/internal.d.ts.map +1 -0
- package/dist/shares/internal.js +231 -0
- package/dist/shares/internal.js.map +10 -0
- package/dist/shares/intersection.d.ts +9 -0
- package/dist/shares/intersection.d.ts.map +1 -0
- package/dist/shares/session-protocol.d.ts +41 -0
- package/dist/shares/session-protocol.d.ts.map +1 -0
- package/dist/shares/types.d.ts +51 -0
- package/dist/shares/types.d.ts.map +1 -0
- package/dist/shares/validation.d.ts +11 -0
- package/dist/shares/validation.d.ts.map +1 -0
- 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/provider.js +34 -36
- package/dist/storage/connector-connections/provider.js.map +2 -2
- package/dist/storage/executions/in-memory.d.ts +3 -0
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +6 -2
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +35 -12
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/run-link.d.ts +7 -0
- package/dist/storage/executions/run-link.d.ts.map +1 -1
- 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 +8 -0
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +14 -9
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +221 -227
- 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/objects/execution-limits.d.ts +25 -0
- package/dist/storage/objects/execution-limits.d.ts.map +1 -0
- package/dist/storage/objects/guard.d.ts +16 -0
- package/dist/storage/objects/guard.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/index.d.ts +3 -0
- package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/keys.d.ts +10 -0
- package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/query.d.ts +31 -0
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
- package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
- package/dist/storage/objects/index.d.ts +4 -1
- package/dist/storage/objects/index.d.ts.map +1 -1
- package/dist/storage/objects/keys.d.ts +1 -1
- package/dist/storage/objects/keys.d.ts.map +1 -1
- package/dist/storage/objects/read-scope.d.ts +25 -0
- package/dist/storage/objects/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +114 -22
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +105 -109
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/operation-scope.d.ts +3 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +18 -17
- 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/provider.js +66 -70
- package/dist/storage/projection-runs/provider.js.map +1 -1
- package/dist/storage/share-grants/errors.d.ts +8 -0
- package/dist/storage/share-grants/errors.d.ts.map +1 -0
- package/dist/storage/share-grants/in-memory.d.ts +11 -0
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/share-grants/index.d.ts +5 -0
- package/dist/storage/share-grants/index.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.d.ts +4 -0
- package/dist/storage/share-grants/provider.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.js +22 -0
- package/dist/storage/share-grants/provider.js.map +9 -0
- package/dist/storage/share-grants/record.d.ts +11 -0
- package/dist/storage/share-grants/record.d.ts.map +1 -0
- package/dist/storage/share-grants/types.d.ts +97 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -0
- package/dist/storage/share-sessions/errors.d.ts +8 -0
- package/dist/storage/share-sessions/errors.d.ts.map +1 -0
- package/dist/storage/share-sessions/in-memory.d.ts +14 -0
- package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
- package/dist/storage/share-sessions/index.d.ts +5 -0
- package/dist/storage/share-sessions/index.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.d.ts +3 -0
- package/dist/storage/share-sessions/provider.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.js +19 -0
- package/dist/storage/share-sessions/provider.js.map +9 -0
- package/dist/storage/share-sessions/record.d.ts +8 -0
- package/dist/storage/share-sessions/record.d.ts.map +1 -0
- package/dist/storage/share-sessions/types.d.ts +50 -0
- package/dist/storage/share-sessions/types.d.ts.map +1 -0
- package/dist/storage/sync-runs/provider.js +4 -6
- package/dist/storage/sync-runs/provider.js.map +1 -1
- package/dist/storage/transaction.d.ts +2 -1
- package/dist/storage/transaction.d.ts.map +1 -1
- package/dist/storage/types.d.ts +8 -0
- package/dist/storage/types.d.ts.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 -18
- 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/execution.d.ts.map +1 -1
- package/dist/syncs/index.js +55 -62
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/request.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/dataset-sequence-contract.d.ts +4 -0
- package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
- package/dist/testing/effective-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts +4 -0
- 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 +3 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3087 -1328
- package/dist/testing/index.js.map +17 -13
- package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts +22 -0
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
- package/dist/testing/share-grant-storage-contract.d.ts +10 -0
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/share-session-storage-contract.d.ts +9 -0
- package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
- package/dist/testing/workflow-execution.d.ts +1 -0
- package/dist/testing/workflow-execution.d.ts.map +1 -1
- package/dist/webhooks/internal.js +51 -56
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +11 -13
- package/dist/workers/index.js.map +2 -2
- package/dist/workflows/execution.d.ts.map +1 -1
- package/dist/workflows/failure.d.ts +2 -0
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.js +135 -140
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/run-dispatch.d.ts +0 -1
- 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 +72 -30
- package/src/actions/delegated-admission.ts +72 -0
- package/src/actions/descriptor.ts +58 -0
- package/src/actions/execution.ts +99 -24
- package/src/actions/request.ts +136 -19
- package/src/actions/run-authorization.ts +53 -0
- package/src/actions/run-dispatch.ts +10 -7
- package/src/actions/types/context.ts +2 -0
- package/src/actions/validation.ts +2 -1
- package/src/agents/adapters.ts +34 -429
- package/src/agents/authority.ts +3 -4
- 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 +2 -5
- package/src/agents/errors.ts +0 -10
- package/src/agents/execution.ts +13 -5
- package/src/agents/identity.ts +4 -0
- package/src/agents/index.ts +5 -24
- package/src/agents/message.ts +5 -6
- package/src/agents/model-loop.ts +62 -6
- package/src/agents/request.ts +27 -29
- 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/tool-definition.ts +0 -19
- package/src/agents/types.ts +1 -1
- package/src/agents/validation.ts +9 -72
- package/src/ai-usage/execution.ts +4 -11
- package/src/auth/index.ts +0 -1
- package/src/authorization/decision.ts +29 -14
- package/src/authorization/grant-kinds.ts +10 -0
- package/src/authorization/index.ts +1 -0
- package/src/bootstrap/discovery.ts +84 -24
- package/src/bootstrap/index.ts +8 -1
- package/src/bootstrap/ontology-type-manifest.ts +12 -6
- package/src/datasets/builders.ts +23 -2
- package/src/datasets/changes.ts +16 -4
- package/src/datasets/execution.ts +76 -5
- package/src/datasets/index.ts +1 -0
- package/src/datasets/sequence.ts +77 -0
- package/src/datasets/types.ts +1 -0
- package/src/datasets/validation.ts +26 -0
- package/src/datasets/write.ts +240 -0
- 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 +57 -7
- package/src/events/types/datasets.ts +2 -6
- package/src/execution/agent.ts +6 -7
- package/src/execution/authorization.ts +470 -90
- package/src/execution/authorized-object-reader.ts +695 -0
- package/src/execution/durable.ts +21 -3
- package/src/execution/index.ts +1 -0
- package/src/execution/primitive.ts +5 -1
- package/src/execution/request.ts +66 -13
- package/src/execution/scopes.ts +36 -6
- package/src/execution/types.ts +8 -0
- package/src/http/api-routes.ts +45 -0
- package/src/index.ts +56 -33
- package/src/lake-storage/definition-updates.ts +9 -0
- package/src/lake-storage/errors.ts +6 -1
- package/src/lake-storage/in-memory.ts +53 -17
- package/src/lake-storage/index.ts +10 -1
- package/src/lake-storage/merge-validation.ts +12 -2
- package/src/lake-storage/merge.ts +40 -2
- package/src/lake-storage/source-ordering.ts +95 -0
- package/src/lake-storage/sql-transforms.ts +2 -1
- package/src/lake-storage/types.ts +10 -5
- package/src/lake-storage/version-inputs.ts +14 -0
- package/src/logging/index.ts +2 -33
- package/src/logging/internal.ts +43 -0
- 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/authorized-ontology-view.ts +512 -0
- package/src/objects/execution.ts +99 -144
- package/src/objects/link/authorization.ts +3 -2
- package/src/objects/query/executor.ts +45 -34
- package/src/objects/query/links.ts +84 -25
- package/src/objects/query/selected-read-admission.ts +310 -0
- package/src/objects/query/validate.ts +353 -36
- package/src/objects/sdk/object-handle.ts +2 -8
- package/src/objects/sdk/object-set.ts +10 -11
- package/src/objects/sdk/runtime-query-executor.ts +8 -28
- package/src/objects/sdk/telemetry-channel.ts +11 -7
- package/src/objects/service/list-service.ts +15 -29
- package/src/objects/telemetry/history.ts +297 -17
- package/src/objects/telemetry/index.ts +2 -2
- package/src/objects/telemetry/workload.ts +79 -0
- package/src/ontology/index.ts +7 -2
- package/src/ontology/inference/index.ts +4 -1
- package/src/ontology/internal.ts +35 -1
- package/src/ontology/json-schema.ts +13 -12
- package/src/ontology/link-path-selection.ts +193 -0
- package/src/ontology/refs.ts +19 -0
- package/src/ontology/tokens.ts +15 -8
- package/src/pipelines/execution.ts +30 -7
- package/src/pipelines/request.ts +5 -0
- package/src/projections/execution.ts +72 -11
- package/src/projections/run-dispatch.ts +7 -12
- package/src/query.ts +0 -1
- package/src/queues/index.ts +4 -2
- package/src/queues/types.ts +6 -25
- package/src/rules/execution.ts +20 -8
- package/src/runtime/create.ts +7 -2
- package/src/runtime/definitions.ts +2 -0
- package/src/runtime/host.ts +27 -7
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/resolve-definitions.ts +9 -0
- package/src/runtime/sixb.ts +27 -2
- package/src/runtime/types.ts +3 -0
- package/src/sandboxes/errors.ts +5 -0
- package/src/sandboxes/index.ts +3 -0
- package/src/sandboxes/sandbox.ts +35 -7
- package/src/schedules/execution.ts +24 -2
- package/src/security/every.ts +4 -0
- package/src/security/grants.ts +45 -3
- package/src/security/index.ts +1 -0
- package/src/security/registry.ts +3 -0
- package/src/security/types.ts +8 -0
- package/src/security/validation.ts +3 -0
- package/src/shares/access-plan.ts +225 -0
- package/src/shares/builders.ts +381 -0
- package/src/shares/compiler.ts +359 -0
- package/src/shares/errors.ts +3 -0
- package/src/shares/execution.ts +394 -0
- package/src/shares/index.ts +28 -0
- package/src/shares/internal.ts +9 -0
- package/src/shares/intersection.ts +178 -0
- package/src/shares/session-protocol.ts +258 -0
- package/src/shares/types.ts +76 -0
- package/src/shares/validation.ts +40 -0
- 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/executions/in-memory.ts +13 -10
- package/src/storage/executions/provider.ts +34 -1
- package/src/storage/executions/run-link.ts +29 -0
- package/src/storage/executions/types.ts +6 -2
- package/src/storage/executions/validation.ts +78 -1
- package/src/storage/in-memory/index.ts +37 -3
- package/src/storage/index.ts +54 -29
- package/src/storage/internal.ts +20 -0
- package/src/storage/objects/execution-limits.ts +283 -0
- package/src/storage/objects/guard.ts +55 -0
- package/src/storage/objects/in-memory/index.ts +2 -0
- package/src/storage/objects/in-memory/keys.ts +46 -0
- package/src/storage/objects/in-memory/query.ts +754 -0
- package/src/storage/objects/in-memory/read-scope.ts +211 -0
- package/src/storage/objects/in-memory/read-source.ts +10 -0
- package/src/storage/objects/in-memory/selected-reader.ts +252 -0
- package/src/storage/objects/in-memory/storage.ts +589 -0
- package/src/storage/objects/index.ts +21 -0
- package/src/storage/objects/keys.ts +1 -1
- package/src/storage/objects/read-scope.ts +672 -0
- package/src/storage/objects/types.ts +123 -19
- package/src/storage/operation-scope.ts +16 -0
- package/src/storage/share-grants/errors.ts +14 -0
- package/src/storage/share-grants/in-memory.ts +107 -0
- package/src/storage/share-grants/index.ts +14 -0
- package/src/storage/share-grants/provider.ts +11 -0
- package/src/storage/share-grants/record.ts +347 -0
- package/src/storage/share-grants/types.ts +112 -0
- package/src/storage/share-sessions/errors.ts +14 -0
- package/src/storage/share-sessions/in-memory.ts +105 -0
- package/src/storage/share-sessions/index.ts +11 -0
- package/src/storage/share-sessions/provider.ts +9 -0
- package/src/storage/share-sessions/record.ts +176 -0
- package/src/storage/share-sessions/types.ts +57 -0
- package/src/storage/transaction.ts +14 -2
- package/src/storage/types.ts +27 -0
- package/src/storage/workflow-runs/in-memory.ts +0 -2
- package/src/storage/workflow-runs/types.ts +0 -3
- package/src/syncs/execution.ts +25 -5
- package/src/syncs/request.ts +5 -0
- 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/dataset-sequence-contract.ts +373 -0
- package/src/testing/effective-storage-contract.ts +34 -0
- package/src/testing/execution-storage-contract.ts +138 -1
- package/src/testing/execution.ts +6 -0
- package/src/testing/index.ts +16 -0
- package/src/testing/lake-merge-storage-contract.ts +3 -0
- package/src/testing/lake-storage-contract.ts +58 -0
- package/src/testing/object-read-scope-contract.ts +939 -0
- package/src/testing/share-grant-storage-contract.ts +325 -0
- package/src/testing/share-session-storage-contract.ts +235 -0
- package/src/testing/workflow-execution.ts +4 -0
- package/src/workflows/execution.ts +53 -14
- package/src/workflows/failure.ts +62 -1
- package/src/workflows/request.ts +5 -9
- package/src/workflows/run-dispatch.ts +0 -3
- 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-08twe8m6.js +0 -218
- package/dist/chunk-2b5qtban.js.map +0 -14
- package/dist/chunk-2xns679x.js.map +0 -11
- package/dist/chunk-37wk412q.js +0 -1370
- package/dist/chunk-37wk412q.js.map +0 -23
- package/dist/chunk-3fqt22c4.js.map +0 -14
- package/dist/chunk-3kv70xwp.js.map +0 -10
- package/dist/chunk-407j3msh.js +0 -60
- package/dist/chunk-64sr682n.js.map +0 -12
- package/dist/chunk-6ed5bwnd.js.map +0 -57
- package/dist/chunk-7ds9620f.js.map +0 -10
- package/dist/chunk-7y0f6rf1.js.map +0 -10
- package/dist/chunk-atmkaf60.js.map +0 -11
- package/dist/chunk-c15dr03f.js +0 -43
- package/dist/chunk-d8qkxt2v.js.map +0 -10
- package/dist/chunk-dqn23610.js +0 -72
- package/dist/chunk-dqn23610.js.map +0 -11
- package/dist/chunk-e4rvtvpw.js.map +0 -34
- package/dist/chunk-gbrpsx4m.js.map +0 -11
- package/dist/chunk-h0knpbz5.js +0 -2486
- package/dist/chunk-h0knpbz5.js.map +0 -38
- package/dist/chunk-hdz94br2.js.map +0 -10
- package/dist/chunk-jq43kdvk.js +0 -50
- package/dist/chunk-n2arzn6e.js +0 -1745
- package/dist/chunk-n2arzn6e.js.map +0 -20
- package/dist/chunk-p03r0h5s.js.map +0 -16
- package/dist/chunk-qjzp9xyb.js.map +0 -12
- package/dist/chunk-tn7xcs2n.js.map +0 -13
- package/dist/chunk-wjgm6jjt.js.map +0 -13
- package/dist/chunk-xc7hq65b.js.map +0 -10
- package/dist/chunk-y35ma3mj.js +0 -551
- package/dist/chunk-y35ma3mj.js.map +0 -15
- package/dist/chunk-y64skrwp.js +0 -19
- package/dist/chunk-z2sery1b.js.map +0 -11
- package/dist/chunk-zcnhxkvd.js +0 -7
- package/dist/logging/types.js +0 -27
- package/dist/logging/types.js.map +0 -9
- package/dist/storage/objects/in-memory.d.ts.map +0 -1
- package/src/storage/objects/in-memory.ts +0 -1241
- /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
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { ShareSessionStorageError } from "./errors"
|
|
2
|
+
import type {
|
|
3
|
+
CreateShareSessionInput,
|
|
4
|
+
GetShareSessionByIdInput,
|
|
5
|
+
RenewShareSessionIfValidInput,
|
|
6
|
+
RevokeShareSessionInput,
|
|
7
|
+
ShareSessionRecord,
|
|
8
|
+
} from "./types"
|
|
9
|
+
|
|
10
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/
|
|
11
|
+
|
|
12
|
+
export function normalizeShareSessionCreate(input: CreateShareSessionInput): ShareSessionRecord {
|
|
13
|
+
if (!isRecord(input)) throw invalidInput("Share session create input must be an object.")
|
|
14
|
+
const createdAt = inputDate(input.createdAt, "Share session creation time")
|
|
15
|
+
const expiresAt = inputDate(input.expiresAt, "Share session inactivity expiry")
|
|
16
|
+
const absoluteExpiresAt = inputDate(input.absoluteExpiresAt, "Share session absolute expiry")
|
|
17
|
+
if (expiresAt.getTime() <= createdAt.getTime()) {
|
|
18
|
+
throw invalidInput("Share session inactivity expiry must be later than creation time.")
|
|
19
|
+
}
|
|
20
|
+
if (absoluteExpiresAt.getTime() <= createdAt.getTime()) {
|
|
21
|
+
throw invalidInput("Share session absolute expiry must be later than creation time.")
|
|
22
|
+
}
|
|
23
|
+
if (expiresAt.getTime() > absoluteExpiresAt.getTime()) {
|
|
24
|
+
throw invalidInput("Share session inactivity expiry must not exceed its absolute expiry.")
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
id: identifier(input.id, "Share session id"),
|
|
29
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
30
|
+
grantId: identifier(input.grantId, "Share grant id"),
|
|
31
|
+
tokenHash: sha256(input.tokenHash, "Share session token hash"),
|
|
32
|
+
createdAt,
|
|
33
|
+
expiresAt,
|
|
34
|
+
absoluteExpiresAt,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function parseShareSessionRecord(input: unknown): ShareSessionRecord {
|
|
39
|
+
if (!isRecord(input)) throw invalidRecord("Share session row must be an object.")
|
|
40
|
+
try {
|
|
41
|
+
const createdAt = storedDate(input.createdAt, "Share session creation time")
|
|
42
|
+
const expiresAt = storedDate(input.expiresAt, "Share session inactivity expiry")
|
|
43
|
+
const absoluteExpiresAt = storedDate(input.absoluteExpiresAt, "Share session absolute expiry")
|
|
44
|
+
if (expiresAt.getTime() <= createdAt.getTime()) {
|
|
45
|
+
throw invalidRecord("Share session inactivity expiry must be later than creation time.")
|
|
46
|
+
}
|
|
47
|
+
if (absoluteExpiresAt.getTime() <= createdAt.getTime()) {
|
|
48
|
+
throw invalidRecord("Share session absolute expiry must be later than creation time.")
|
|
49
|
+
}
|
|
50
|
+
if (expiresAt.getTime() > absoluteExpiresAt.getTime()) {
|
|
51
|
+
throw invalidRecord("Share session inactivity expiry exceeds its absolute expiry.")
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const revokedAtValue = input.revokedAt
|
|
55
|
+
if (revokedAtValue === null) {
|
|
56
|
+
throw invalidRecord("Share session revocation time must be omitted rather than null.")
|
|
57
|
+
}
|
|
58
|
+
const revokedAt =
|
|
59
|
+
revokedAtValue === undefined
|
|
60
|
+
? undefined
|
|
61
|
+
: storedDate(revokedAtValue, "Share session revocation time")
|
|
62
|
+
if (revokedAt && revokedAt.getTime() < createdAt.getTime()) {
|
|
63
|
+
throw invalidRecord("Share session revocation time must not precede creation time.")
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
id: identifier(input.id, "Share session id"),
|
|
68
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
69
|
+
grantId: identifier(input.grantId, "Share grant id"),
|
|
70
|
+
tokenHash: sha256(input.tokenHash, "Share session token hash"),
|
|
71
|
+
createdAt,
|
|
72
|
+
expiresAt,
|
|
73
|
+
absoluteExpiresAt,
|
|
74
|
+
...(revokedAt === undefined ? {} : { revokedAt }),
|
|
75
|
+
}
|
|
76
|
+
} catch (error) {
|
|
77
|
+
if (error instanceof ShareSessionStorageError) {
|
|
78
|
+
if (error.code === "invalid_record") throw error
|
|
79
|
+
throw invalidRecord(error.message.replace(/^\[Sixb\] /, ""), error)
|
|
80
|
+
}
|
|
81
|
+
throw error
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function normalizeGetShareSessionByIdInput(
|
|
86
|
+
input: GetShareSessionByIdInput
|
|
87
|
+
): GetShareSessionByIdInput {
|
|
88
|
+
if (!isRecord(input)) throw invalidInput("Share session lookup input must be an object.")
|
|
89
|
+
return {
|
|
90
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
91
|
+
id: identifier(input.id, "Share session id"),
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export function normalizeRenewShareSessionIfValidInput(
|
|
96
|
+
input: RenewShareSessionIfValidInput
|
|
97
|
+
): RenewShareSessionIfValidInput {
|
|
98
|
+
if (!isRecord(input)) throw invalidInput("Share session renewal input must be an object.")
|
|
99
|
+
const now = inputDate(input.now, "Share session renewal time")
|
|
100
|
+
const expiresAt = inputDate(input.expiresAt, "Requested Share session expiry")
|
|
101
|
+
if (expiresAt.getTime() <= now.getTime()) {
|
|
102
|
+
throw invalidInput("Requested Share session expiry must be later than renewal time.")
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
106
|
+
id: identifier(input.id, "Share session id"),
|
|
107
|
+
grantId: identifier(input.grantId, "Share grant id"),
|
|
108
|
+
tokenHash: sha256(input.tokenHash, "Share session token hash"),
|
|
109
|
+
now,
|
|
110
|
+
expiresAt,
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function normalizeRevokeShareSessionInput(
|
|
115
|
+
input: RevokeShareSessionInput,
|
|
116
|
+
createdAt?: Date
|
|
117
|
+
): RevokeShareSessionInput {
|
|
118
|
+
if (!isRecord(input)) throw invalidInput("Share session revocation input must be an object.")
|
|
119
|
+
const normalized = {
|
|
120
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
121
|
+
id: identifier(input.id, "Share session id"),
|
|
122
|
+
revokedAt: inputDate(input.revokedAt, "Share session revocation time"),
|
|
123
|
+
}
|
|
124
|
+
if (createdAt && normalized.revokedAt.getTime() < createdAt.getTime()) {
|
|
125
|
+
throw invalidInput("Share session revocation time must not precede creation time.")
|
|
126
|
+
}
|
|
127
|
+
return normalized
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function cloneShareSessionRecord(input: ShareSessionRecord): ShareSessionRecord {
|
|
131
|
+
return structuredClone(input)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function identifier(value: unknown, label: string): string {
|
|
135
|
+
if (typeof value !== "string" || value.trim().length === 0 || value.includes("\0")) {
|
|
136
|
+
throw invalidInput(`${label} must be a non-empty string without NUL bytes.`)
|
|
137
|
+
}
|
|
138
|
+
return value
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function sha256(value: unknown, label: string): string {
|
|
142
|
+
if (typeof value !== "string" || !SHA256_HEX.test(value)) {
|
|
143
|
+
throw invalidInput(`${label} must be a lowercase SHA-256 hex digest.`)
|
|
144
|
+
}
|
|
145
|
+
return value
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function inputDate(value: unknown, label: string): Date {
|
|
149
|
+
if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {
|
|
150
|
+
throw invalidInput(`${label} must be a valid Date.`)
|
|
151
|
+
}
|
|
152
|
+
return new Date(value)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function storedDate(value: unknown, label: string): Date {
|
|
156
|
+
const parsed =
|
|
157
|
+
value instanceof Date
|
|
158
|
+
? new Date(value)
|
|
159
|
+
: typeof value === "string"
|
|
160
|
+
? new Date(value)
|
|
161
|
+
: new Date(Number.NaN)
|
|
162
|
+
if (!Number.isFinite(parsed.getTime())) throw invalidRecord(`${label} is invalid.`)
|
|
163
|
+
return parsed
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
167
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function invalidInput(message: string, cause?: unknown): ShareSessionStorageError {
|
|
171
|
+
return new ShareSessionStorageError("invalid_input", `[Sixb] ${message}`, { cause })
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function invalidRecord(message: string, cause?: unknown): ShareSessionStorageError {
|
|
175
|
+
return new ShareSessionStorageError("invalid_record", `[Sixb] ${message}`, { cause })
|
|
176
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** Durable server-side session created after a Share link secret is exchanged. */
|
|
2
|
+
export interface ShareSessionRecord {
|
|
3
|
+
readonly id: string
|
|
4
|
+
readonly projectId: string
|
|
5
|
+
readonly grantId: string
|
|
6
|
+
/** SHA-256 of the bearer session secret. The plaintext secret is never durable. */
|
|
7
|
+
readonly tokenHash: string
|
|
8
|
+
readonly createdAt: Date
|
|
9
|
+
/** Sliding inactivity deadline. */
|
|
10
|
+
readonly expiresAt: Date
|
|
11
|
+
/** Immutable upper bound, normally inherited from the Share grant expiry. */
|
|
12
|
+
readonly absoluteExpiresAt: Date
|
|
13
|
+
readonly revokedAt?: Date
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type CreateShareSessionInput = Omit<ShareSessionRecord, "revokedAt">
|
|
17
|
+
|
|
18
|
+
export interface GetShareSessionByIdInput {
|
|
19
|
+
readonly projectId: string
|
|
20
|
+
readonly id: string
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface RenewShareSessionIfValidInput {
|
|
24
|
+
readonly projectId: string
|
|
25
|
+
readonly id: string
|
|
26
|
+
readonly grantId: string
|
|
27
|
+
readonly tokenHash: string
|
|
28
|
+
/** Explicit clock keeps expiry semantics deterministic across providers. */
|
|
29
|
+
readonly now: Date
|
|
30
|
+
/** Requested sliding inactivity deadline. Storage clamps it to the absolute deadline. */
|
|
31
|
+
readonly expiresAt: Date
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface RevokeShareSessionInput {
|
|
35
|
+
readonly projectId: string
|
|
36
|
+
readonly id: string
|
|
37
|
+
readonly revokedAt: Date
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Persistence contract for short-lived Share access sessions. */
|
|
41
|
+
export interface ShareSessionStorage {
|
|
42
|
+
/** `(projectId, id)` and `(projectId, tokenHash)` must both be unique. */
|
|
43
|
+
create(input: CreateShareSessionInput): Promise<ShareSessionRecord>
|
|
44
|
+
|
|
45
|
+
/** Load one project-scoped session, including expired or revoked sessions, or return null. */
|
|
46
|
+
getById(input: GetShareSessionByIdInput): Promise<ShareSessionRecord | null>
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Atomically authenticate and renew an active session. Mismatched, expired, or revoked sessions
|
|
50
|
+
* return null. A renewal never shortens the current deadline and never exceeds
|
|
51
|
+
* `absoluteExpiresAt`.
|
|
52
|
+
*/
|
|
53
|
+
renewIfValid(input: RenewShareSessionIfValidInput): Promise<ShareSessionRecord | null>
|
|
54
|
+
|
|
55
|
+
/** Preserve and return the first revocation; a missing session returns null. */
|
|
56
|
+
revoke(input: RevokeShareSessionInput): Promise<ShareSessionRecord | null>
|
|
57
|
+
}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { StorageTransactionError } from "./errors"
|
|
2
|
+
import { createObjectOperationScope } from "./operation-scope"
|
|
3
|
+
import type { Storage } from "./types"
|
|
2
4
|
|
|
3
5
|
type ObjectLike = Record<PropertyKey, unknown>
|
|
4
6
|
|
|
5
|
-
export function createTransactionStorageProxy<T extends
|
|
7
|
+
export function createTransactionStorageProxy<T extends Storage>(
|
|
6
8
|
target: T,
|
|
7
9
|
isActive: () => boolean
|
|
8
10
|
): T {
|
|
9
11
|
const proxies = new WeakMap<object, object>()
|
|
12
|
+
const objectStorage = createObjectOperationScope(target.objects, {
|
|
13
|
+
assertAvailable: () => assertTransactionActive(isActive),
|
|
14
|
+
run: async <TResult>(operation: () => Promise<TResult> | TResult): Promise<TResult> => {
|
|
15
|
+
assertTransactionActive(isActive)
|
|
16
|
+
return operation()
|
|
17
|
+
},
|
|
18
|
+
})
|
|
10
19
|
|
|
11
20
|
const wrap = <TValue extends object>(value: TValue): TValue => {
|
|
12
21
|
const existing = proxies.get(value)
|
|
@@ -19,7 +28,10 @@ export function createTransactionStorageProxy<T extends object>(
|
|
|
19
28
|
// from `tx` are wrapped (a handful), not the row/link data graph, and never per-record.
|
|
20
29
|
get(current, property, receiver) {
|
|
21
30
|
assertTransactionActive(isActive)
|
|
22
|
-
const result =
|
|
31
|
+
const result =
|
|
32
|
+
current === target && property === "objects"
|
|
33
|
+
? objectStorage
|
|
34
|
+
: Reflect.get(current, property, receiver)
|
|
23
35
|
if (typeof result === "function") {
|
|
24
36
|
return (...args: unknown[]) => {
|
|
25
37
|
assertTransactionActive(isActive)
|
package/src/storage/types.ts
CHANGED
|
@@ -12,6 +12,8 @@ import type { OntologyStorage } from "./ontology"
|
|
|
12
12
|
import type { PipelineRunStorage } from "./pipeline-runs"
|
|
13
13
|
import type { ProjectionRunStorage } from "./projection-runs"
|
|
14
14
|
import type { RulesStorage } from "./rules"
|
|
15
|
+
import type { ShareGrantStorage } from "./share-grants"
|
|
16
|
+
import type { ShareSessionStorage } from "./share-sessions"
|
|
15
17
|
import type { SyncRunStorage } from "./sync-runs"
|
|
16
18
|
import type { TimeseriesStorage } from "./timeseries/types"
|
|
17
19
|
import type { WebhookRunStorage } from "./webhook-runs"
|
|
@@ -231,6 +233,29 @@ export type {
|
|
|
231
233
|
RuleStateRecord,
|
|
232
234
|
RulesStorage,
|
|
233
235
|
} from "./rules"
|
|
236
|
+
export type {
|
|
237
|
+
CreateShareGrantInput,
|
|
238
|
+
GetShareGrantByIdInput,
|
|
239
|
+
ListShareGrantsInput,
|
|
240
|
+
ListShareGrantsResult,
|
|
241
|
+
RevokeShareGrantInput,
|
|
242
|
+
ShareAuthoritySnapshot,
|
|
243
|
+
ShareAuthoritySnapshotV1,
|
|
244
|
+
ShareGrantRecord,
|
|
245
|
+
ShareGrantStorage,
|
|
246
|
+
ShareGrantStorageErrorCode,
|
|
247
|
+
} from "./share-grants"
|
|
248
|
+
export { ShareGrantStorageError } from "./share-grants"
|
|
249
|
+
export type {
|
|
250
|
+
CreateShareSessionInput,
|
|
251
|
+
GetShareSessionByIdInput,
|
|
252
|
+
RenewShareSessionIfValidInput,
|
|
253
|
+
RevokeShareSessionInput,
|
|
254
|
+
ShareSessionRecord,
|
|
255
|
+
ShareSessionStorage,
|
|
256
|
+
ShareSessionStorageErrorCode,
|
|
257
|
+
} from "./share-sessions"
|
|
258
|
+
export { ShareSessionStorageError } from "./share-sessions"
|
|
234
259
|
export type {
|
|
235
260
|
FinishSyncRunInput,
|
|
236
261
|
ListSyncRunsInput,
|
|
@@ -340,6 +365,8 @@ export interface Storage {
|
|
|
340
365
|
workflowInterventions?: WorkflowInterventionStorage
|
|
341
366
|
webhookRuns?: WebhookRunStorage
|
|
342
367
|
rules?: RulesStorage
|
|
368
|
+
shareGrants?: ShareGrantStorage
|
|
369
|
+
shareSessions?: ShareSessionStorage
|
|
343
370
|
fileUploadSessions?: FileUploadSessionStore
|
|
344
371
|
connectorConnections?: ConnectorConnectionStorage
|
|
345
372
|
|
|
@@ -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 {
|
package/src/syncs/execution.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assertAuthorized, isRuntimeAllowed } from "../authorization"
|
|
2
2
|
import type { ExecutionContext } from "../execution"
|
|
3
|
+
import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
|
|
3
4
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
4
5
|
import type {
|
|
5
6
|
ListLatestSyncRunsResult,
|
|
@@ -29,26 +30,39 @@ export function createSyncsRuntime(
|
|
|
29
30
|
execution: ExecutionContext,
|
|
30
31
|
source: Pick<SyncsRuntime, "list" | "getById">
|
|
31
32
|
): SyncsRuntime {
|
|
32
|
-
const
|
|
33
|
+
const authority = resolveRuntimeAuthorizationForProject(runtime)
|
|
34
|
+
const allowed = (syncId: string) => isRuntimeAllowed(runtime, { kind: "sync.run", syncId })
|
|
33
35
|
const visibleIds = () =>
|
|
34
36
|
source
|
|
35
37
|
.list()
|
|
36
38
|
.filter((sync) => allowed(sync.id))
|
|
37
39
|
.map((sync) => sync.id)
|
|
40
|
+
const historyFilterIds = () =>
|
|
41
|
+
authority.type === "unrestricted"
|
|
42
|
+
? undefined
|
|
43
|
+
: authority.type === "principal"
|
|
44
|
+
? visibleIds()
|
|
45
|
+
: []
|
|
38
46
|
|
|
39
47
|
return {
|
|
40
|
-
list: () =>
|
|
48
|
+
list: () =>
|
|
49
|
+
authority.type === "denied" || authority.type === "delegated"
|
|
50
|
+
? []
|
|
51
|
+
: source.list().filter((sync) => allowed(sync.id)),
|
|
41
52
|
getById: (syncId) => {
|
|
53
|
+
if (authority.type === "denied" || authority.type === "delegated") return null
|
|
42
54
|
const sync = source.getById(syncId)
|
|
43
55
|
return sync && allowed(syncId) ? sync : null
|
|
44
56
|
},
|
|
45
57
|
request: async (input) => {
|
|
58
|
+
assertAuthorized(runtime, { kind: "sync.run", syncId: input.syncId })
|
|
46
59
|
const sync = source.getById(input.syncId)
|
|
47
60
|
if (!sync) throw new SyncValidationError(`[Sixb] Unknown sync '${input.syncId}'`)
|
|
48
61
|
return requestSyncRun(runtime, execution, sync, input)
|
|
49
62
|
},
|
|
50
63
|
runs: {
|
|
51
64
|
getById: async (runId) => {
|
|
65
|
+
if (authority.type === "denied" || authority.type === "delegated") return null
|
|
52
66
|
const run =
|
|
53
67
|
(await runtime.storage.syncRuns?.getById({
|
|
54
68
|
projectId: runtime.projectId,
|
|
@@ -57,15 +71,21 @@ export function createSyncsRuntime(
|
|
|
57
71
|
return run && allowed(run.syncId) ? run : null
|
|
58
72
|
},
|
|
59
73
|
list: (input = {}) => {
|
|
74
|
+
if (authority.type === "denied" || authority.type === "delegated") {
|
|
75
|
+
return Promise.resolve({ runs: [], hasMore: false, total: 0 })
|
|
76
|
+
}
|
|
60
77
|
const storage = runtime.storage.syncRuns
|
|
61
78
|
if (!storage) return Promise.resolve({ runs: [], hasMore: false, total: 0 })
|
|
62
79
|
return storage.list({
|
|
63
|
-
projectId: runtime.projectId,
|
|
64
80
|
...input,
|
|
65
|
-
syncIds:
|
|
81
|
+
syncIds: historyFilterIds(),
|
|
82
|
+
projectId: runtime.projectId,
|
|
66
83
|
})
|
|
67
84
|
},
|
|
68
85
|
listLatest: (syncIds) => {
|
|
86
|
+
if (authority.type === "denied" || authority.type === "delegated") {
|
|
87
|
+
return Promise.resolve({ runs: [] })
|
|
88
|
+
}
|
|
69
89
|
const storage = runtime.storage.syncRuns
|
|
70
90
|
if (!storage || syncIds.length === 0) return Promise.resolve({ runs: [] })
|
|
71
91
|
const allowedIds = syncIds.filter(allowed)
|
package/src/syncs/request.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertAuthorized } from "../authorization"
|
|
2
|
+
import { resolveExecutionScopeAuthorization } from "../execution/authorization"
|
|
2
3
|
import {
|
|
3
4
|
createPrimitiveExecutionRecord,
|
|
4
5
|
ensureExecutionRecord,
|
|
@@ -45,6 +46,10 @@ export async function requestSyncRun(
|
|
|
45
46
|
sync: SyncDefinition,
|
|
46
47
|
options: SyncRunRequestOptions = {}
|
|
47
48
|
): Promise<SyncRunRequestResult> {
|
|
49
|
+
resolveExecutionScopeAuthorization(runtime.projectId, {
|
|
50
|
+
execution,
|
|
51
|
+
authorization: runtime.runtimeAuthorization,
|
|
52
|
+
})
|
|
48
53
|
assertAuthorized(runtime, { kind: "sync.run", syncId: sync.id })
|
|
49
54
|
if (!runtime.storage.syncRuns) {
|
|
50
55
|
throw new SyncValidationError("[Sixb] Sync run storage is not configured.")
|
|
@@ -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,
|