@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
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from "./chunk-rte5sm3z.js";
|
|
3
|
+
MAX_OBJECT_READ_FACETS2,
|
|
4
|
+
isAllowed2,
|
|
5
|
+
assertAuthorized2
|
|
6
|
+
} from "./chunk-dz5h08xv.js";
|
|
8
7
|
import {
|
|
8
|
+
validateSchemaValue2,
|
|
9
|
+
validatePropertyValue2
|
|
10
|
+
} from "./chunk-ms2tmn1k.js";
|
|
11
|
+
import {
|
|
12
|
+
objectBatchKey2,
|
|
13
|
+
linkBatchKey2,
|
|
14
|
+
objectLinkCursor2,
|
|
9
15
|
compareQueryScalarValues,
|
|
10
|
-
linkBatchKey,
|
|
11
|
-
objectBatchKey,
|
|
12
|
-
objectLinkCursor,
|
|
13
16
|
queryScalarValuesEqual
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
assertAuthorized,
|
|
17
|
-
isAllowed
|
|
18
|
-
} from "./chunk-37wk412q.js";
|
|
19
|
-
import {
|
|
20
|
-
validatePropertyValue,
|
|
21
|
-
validateSchemaValue
|
|
22
|
-
} from "./chunk-d63tybny.js";
|
|
17
|
+
} from "./chunk-mjbk2djy.js";
|
|
23
18
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
ObjectQueryValidationError2,
|
|
20
|
+
ObjectQueryPlanningError2,
|
|
21
|
+
ObjectQueryExecutionError2,
|
|
22
|
+
normalizeObjectQuery2
|
|
23
|
+
} from "./chunk-5hz0fnca.js";
|
|
26
24
|
import {
|
|
27
25
|
formatUnknownObjectTypeMessage
|
|
28
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-cqr3acm1.js";
|
|
29
27
|
import {
|
|
30
|
-
|
|
31
|
-
} from "./chunk-
|
|
28
|
+
normalizeDecimalValue2
|
|
29
|
+
} from "./chunk-3bh94gbw.js";
|
|
30
|
+
import {
|
|
31
|
+
stableJsonStringify2
|
|
32
|
+
} from "./chunk-wy0qdqfm.js";
|
|
32
33
|
// src/objects/query/planner.ts
|
|
33
34
|
var DEFAULT_MAX_FALLBACK_ROWS = 1000;
|
|
34
35
|
var fallbackNodeKinds = new Set([
|
|
@@ -41,7 +42,7 @@ var fallbackNodeKinds = new Set([
|
|
|
41
42
|
"project",
|
|
42
43
|
"expand"
|
|
43
44
|
]);
|
|
44
|
-
function
|
|
45
|
+
function planObjectQuery2(query, options) {
|
|
45
46
|
const operation = options.operation ?? "queryObjects";
|
|
46
47
|
const providerIssues = collectProviderIssues(query, options.capabilities, {
|
|
47
48
|
operation,
|
|
@@ -88,8 +89,8 @@ function collectProviderIssues(query, capabilities, options) {
|
|
|
88
89
|
function collectOperationProviderIssues(capabilities, options, issues) {
|
|
89
90
|
const enabled = options.operation === "queryObjects" ? capabilities.queryObjects === true : options.operation === "countObjects" ? capabilities.countObjects === true : options.operation === "existsObjects" ? capabilities.existsObjects === true : capabilities.facetObjects === true;
|
|
90
91
|
if (!enabled) {
|
|
91
|
-
const
|
|
92
|
-
addIssue(issues, "$",
|
|
92
|
+
const code = `${operationIssuePrefix(options.operation)}_not_enabled`;
|
|
93
|
+
addIssue(issues, "$", code, `Object storage capabilities do not enable ${options.operation} pushdown`);
|
|
93
94
|
}
|
|
94
95
|
if (options.hasImplementation)
|
|
95
96
|
return;
|
|
@@ -330,29 +331,53 @@ function addIssue(issues, path, code, message) {
|
|
|
330
331
|
var DEFAULT_MAX_LIMIT = 1000;
|
|
331
332
|
var DEFAULT_MAX_PAGE_SIZE = 1000;
|
|
332
333
|
var DEFAULT_MAX_REFS = 1000;
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
334
|
+
var NOOP_ADMISSION_STATE = Object.freeze({});
|
|
335
|
+
var NOOP_QUERY_ADMISSION = Object.freeze({
|
|
336
|
+
empty: () => NOOP_ADMISSION_STATE,
|
|
337
|
+
source: () => ({ state: NOOP_ADMISSION_STATE }),
|
|
338
|
+
property: () => {
|
|
339
|
+
return;
|
|
340
|
+
},
|
|
341
|
+
edge: (input) => ({
|
|
342
|
+
state: input.state
|
|
343
|
+
}),
|
|
344
|
+
set: (input) => input.states[0] ?? NOOP_ADMISSION_STATE
|
|
345
|
+
});
|
|
346
|
+
function validateObjectQuery2(query, options) {
|
|
347
|
+
const admitted = validateObjectQueryWithAdmission(query, options, NOOP_QUERY_ADMISSION);
|
|
348
|
+
return {
|
|
349
|
+
query: admitted.query,
|
|
350
|
+
result: admitted.result,
|
|
351
|
+
touchedObjectTypeIds: admitted.touchedObjectTypeIds
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
function validateObjectQueryWithAdmission(query, options, admission) {
|
|
355
|
+
const normalized = options.normalize === false ? query : normalizeObjectQuery2(query);
|
|
356
|
+
const ctx = createValidationContext(options, admission);
|
|
336
357
|
const validation = validateQueryNode(normalized, "$", ctx);
|
|
337
358
|
if (ctx.issues.length > 0) {
|
|
338
|
-
throw new
|
|
359
|
+
throw new ObjectQueryValidationError2(ctx.issues);
|
|
339
360
|
}
|
|
361
|
+
const denial = ctx.admissionDenials[0];
|
|
362
|
+
if (denial)
|
|
363
|
+
throw denial;
|
|
340
364
|
return {
|
|
341
365
|
query: validation.query,
|
|
342
366
|
result: validation.result,
|
|
343
|
-
touchedObjectTypeIds: [...ctx.touchedObjectTypeIds]
|
|
367
|
+
touchedObjectTypeIds: [...ctx.touchedObjectTypeIds],
|
|
368
|
+
admissionState: validation.admissionState
|
|
344
369
|
};
|
|
345
370
|
}
|
|
346
|
-
function
|
|
347
|
-
const normalized = options.normalize === false ? query :
|
|
348
|
-
const ctx = createValidationContext(options);
|
|
371
|
+
function collectObjectQueryValidationIssues2(query, options) {
|
|
372
|
+
const normalized = options.normalize === false ? query : normalizeObjectQuery2(query);
|
|
373
|
+
const ctx = createValidationContext(options, NOOP_QUERY_ADMISSION);
|
|
349
374
|
validateQueryNode(normalized, "$", ctx);
|
|
350
375
|
return ctx.issues;
|
|
351
376
|
}
|
|
352
|
-
function
|
|
353
|
-
return
|
|
377
|
+
function resolveObjectQueryResultShape2(query, options) {
|
|
378
|
+
return validateObjectQuery2(query, options).result;
|
|
354
379
|
}
|
|
355
|
-
function createValidationContext(options) {
|
|
380
|
+
function createValidationContext(options, admission) {
|
|
356
381
|
return {
|
|
357
382
|
ontology: options.ontology,
|
|
358
383
|
valueTypesById: options.ontology.getValueTypesById(),
|
|
@@ -360,7 +385,9 @@ function createValidationContext(options) {
|
|
|
360
385
|
maxPageSize: options.maxPageSize ?? DEFAULT_MAX_PAGE_SIZE,
|
|
361
386
|
maxRefs: options.maxRefs ?? DEFAULT_MAX_REFS,
|
|
362
387
|
issues: [],
|
|
363
|
-
touchedObjectTypeIds: new Set
|
|
388
|
+
touchedObjectTypeIds: new Set,
|
|
389
|
+
admission,
|
|
390
|
+
admissionDenials: []
|
|
364
391
|
};
|
|
365
392
|
}
|
|
366
393
|
function validateQueryNode(query, path, ctx) {
|
|
@@ -372,18 +399,42 @@ function validateQueryNode(query, path, ctx) {
|
|
|
372
399
|
}
|
|
373
400
|
function dispatchQueryNode(query, path, ctx) {
|
|
374
401
|
switch (query.kind) {
|
|
375
|
-
case "start":
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
402
|
+
case "start": {
|
|
403
|
+
const validation = validateStart(query.objectTypeId, query.includeSubtypes, path, ctx);
|
|
404
|
+
return {
|
|
405
|
+
...validation,
|
|
406
|
+
admissionState: admitTransition(ctx, ctx.admission.source({
|
|
407
|
+
kind: "start",
|
|
408
|
+
result: validation.result,
|
|
409
|
+
objectTypeId: query.objectTypeId,
|
|
410
|
+
path
|
|
411
|
+
}))
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
case "refs": {
|
|
415
|
+
const validation = validateRefs(query.refs, path, ctx);
|
|
416
|
+
return {
|
|
417
|
+
...validation,
|
|
418
|
+
admissionState: admitTransition(ctx, ctx.admission.source({
|
|
419
|
+
kind: "refs",
|
|
420
|
+
result: validation.result,
|
|
421
|
+
refs: validation.query.kind === "refs" ? validation.query.refs : query.refs,
|
|
422
|
+
path
|
|
423
|
+
}))
|
|
424
|
+
};
|
|
425
|
+
}
|
|
379
426
|
case "filter": {
|
|
380
427
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
381
|
-
const predicate = validatePredicate(query.predicate, input.result, `${path}.predicate`, ctx);
|
|
382
|
-
return {
|
|
428
|
+
const predicate = validatePredicate(query.predicate, input.result, input.admissionState, `${path}.predicate`, ctx);
|
|
429
|
+
return {
|
|
430
|
+
result: input.result,
|
|
431
|
+
query: { ...query, input: input.query, predicate },
|
|
432
|
+
admissionState: input.admissionState
|
|
433
|
+
};
|
|
383
434
|
}
|
|
384
435
|
case "text": {
|
|
385
436
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
386
|
-
const textFields = validateTextQuery(query.query, query.fields, input.result, path, ctx);
|
|
437
|
+
const textFields = validateTextQuery(query.query, query.fields, input.result, input.admissionState, path, ctx);
|
|
387
438
|
return {
|
|
388
439
|
result: input.result,
|
|
389
440
|
query: {
|
|
@@ -391,47 +442,82 @@ function dispatchQueryNode(query, path, ctx) {
|
|
|
391
442
|
input: input.query,
|
|
392
443
|
fields: query.fields,
|
|
393
444
|
fieldsByObjectType: query.fields ? undefined : textFields.fieldsByObjectType
|
|
394
|
-
}
|
|
445
|
+
},
|
|
446
|
+
admissionState: input.admissionState
|
|
395
447
|
};
|
|
396
448
|
}
|
|
397
449
|
case "vector": {
|
|
398
450
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
399
|
-
validateVectorQuery(query.vector, query.propertyId, query.k, input.result, path, ctx);
|
|
400
|
-
return {
|
|
451
|
+
validateVectorQuery(query.vector, query.propertyId, query.k, input.result, input.admissionState, path, ctx);
|
|
452
|
+
return {
|
|
453
|
+
result: input.result,
|
|
454
|
+
query: { ...query, input: input.query },
|
|
455
|
+
admissionState: input.admissionState
|
|
456
|
+
};
|
|
401
457
|
}
|
|
402
458
|
case "traverse": {
|
|
403
459
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
460
|
+
const result = validateTraverse(query.linkId, query.direction, query.sourceObjectTypeId, input.result, path, ctx);
|
|
404
461
|
return {
|
|
405
|
-
result
|
|
406
|
-
query: { ...query, input: input.query }
|
|
462
|
+
result,
|
|
463
|
+
query: { ...query, input: input.query },
|
|
464
|
+
admissionState: admitTransition(ctx, ctx.admission.edge({
|
|
465
|
+
state: input.admissionState,
|
|
466
|
+
result,
|
|
467
|
+
linkId: query.linkId,
|
|
468
|
+
direction: query.direction,
|
|
469
|
+
sourceObjectTypeId: query.sourceObjectTypeId,
|
|
470
|
+
use: "traverse",
|
|
471
|
+
path
|
|
472
|
+
}))
|
|
407
473
|
};
|
|
408
474
|
}
|
|
409
475
|
case "set":
|
|
410
476
|
return validateSet(query.inputs, query.op, path, ctx);
|
|
411
477
|
case "sort": {
|
|
412
478
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
413
|
-
const fields = validateSortFields(query.fields, input.result, path, ctx);
|
|
414
|
-
return {
|
|
479
|
+
const fields = validateSortFields(query.fields, input.result, input.admissionState, "sort", path, ctx);
|
|
480
|
+
return {
|
|
481
|
+
result: input.result,
|
|
482
|
+
query: { ...query, input: input.query, fields },
|
|
483
|
+
admissionState: input.admissionState
|
|
484
|
+
};
|
|
415
485
|
}
|
|
416
486
|
case "limit": {
|
|
417
487
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
418
488
|
validateLimit(query.limit, path, ctx);
|
|
419
|
-
return {
|
|
489
|
+
return {
|
|
490
|
+
result: input.result,
|
|
491
|
+
query: { ...query, input: input.query },
|
|
492
|
+
admissionState: input.admissionState
|
|
493
|
+
};
|
|
420
494
|
}
|
|
421
495
|
case "page": {
|
|
422
496
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
423
497
|
validatePage(query.pageSize, query.pageToken, path, ctx);
|
|
424
|
-
return {
|
|
498
|
+
return {
|
|
499
|
+
result: input.result,
|
|
500
|
+
query: { ...query, input: input.query },
|
|
501
|
+
admissionState: input.admissionState
|
|
502
|
+
};
|
|
425
503
|
}
|
|
426
504
|
case "project": {
|
|
427
505
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
428
|
-
validateProjection(query.properties, input.result, path, ctx);
|
|
429
|
-
return {
|
|
506
|
+
validateProjection(query.properties, input.result, input.admissionState, path, ctx);
|
|
507
|
+
return {
|
|
508
|
+
result: input.result,
|
|
509
|
+
query: { ...query, input: input.query },
|
|
510
|
+
admissionState: input.admissionState
|
|
511
|
+
};
|
|
430
512
|
}
|
|
431
513
|
case "expand": {
|
|
432
514
|
const input = validateQueryNode(query.input, `${path}.input`, ctx);
|
|
433
|
-
const expansions = validateExpansions(query.expansions, input.result, `${path}.expansions`, ctx);
|
|
434
|
-
return {
|
|
515
|
+
const expansions = validateExpansions(query.expansions, input.result, input.admissionState, `${path}.expansions`, ctx);
|
|
516
|
+
return {
|
|
517
|
+
result: input.result,
|
|
518
|
+
query: { ...query, input: input.query, expansions },
|
|
519
|
+
admissionState: input.admissionState
|
|
520
|
+
};
|
|
435
521
|
}
|
|
436
522
|
}
|
|
437
523
|
}
|
|
@@ -473,7 +559,7 @@ function validateStart(objectTypeId, includeSubtypes, path, ctx) {
|
|
|
473
559
|
const objectTypeIds = includeSubtypes ? uniqueStrings([objectTypeId, ...ctx.ontology.listSubTypes(objectTypeId)]) : [objectTypeId];
|
|
474
560
|
return { result: { objectTypeIds }, query: { kind: "start", objectTypeId, includeSubtypes } };
|
|
475
561
|
}
|
|
476
|
-
function validatePredicate(predicate, shape, path, ctx) {
|
|
562
|
+
function validatePredicate(predicate, shape, admissionState, path, ctx) {
|
|
477
563
|
switch (predicate.op) {
|
|
478
564
|
case "and":
|
|
479
565
|
case "or":
|
|
@@ -482,12 +568,12 @@ function validatePredicate(predicate, shape, path, ctx) {
|
|
|
482
568
|
}
|
|
483
569
|
return {
|
|
484
570
|
...predicate,
|
|
485
|
-
items: predicate.items.map((item, index) => validatePredicate(item, shape, `${path}.items[${index}]`, ctx))
|
|
571
|
+
items: predicate.items.map((item, index) => validatePredicate(item, shape, admissionState, `${path}.items[${index}]`, ctx))
|
|
486
572
|
};
|
|
487
573
|
case "not":
|
|
488
574
|
return {
|
|
489
575
|
...predicate,
|
|
490
|
-
item: validatePredicate(predicate.item, shape, `${path}.item`, ctx)
|
|
576
|
+
item: validatePredicate(predicate.item, shape, admissionState, `${path}.item`, ctx)
|
|
491
577
|
};
|
|
492
578
|
case "eq":
|
|
493
579
|
case "neq":
|
|
@@ -498,6 +584,12 @@ function validatePredicate(predicate, shape, path, ctx) {
|
|
|
498
584
|
const { scalarKind: _authoredScalarKind, ...authoredPredicate } = predicate;
|
|
499
585
|
const scalarKind = resolveAndValidatePredicateProperty(predicate.propertyId, predicate.op, shape, path, ctx);
|
|
500
586
|
validatePredicateValue(predicate.propertyId, predicate.value, shape, path, ctx);
|
|
587
|
+
admitProperty(ctx, {
|
|
588
|
+
state: admissionState,
|
|
589
|
+
propertyId: predicate.propertyId,
|
|
590
|
+
use: "filter",
|
|
591
|
+
path
|
|
592
|
+
});
|
|
501
593
|
return {
|
|
502
594
|
...authoredPredicate,
|
|
503
595
|
value: normalizeObjectQueryValue(predicate.value, scalarKind),
|
|
@@ -513,6 +605,12 @@ function validatePredicate(predicate, shape, path, ctx) {
|
|
|
513
605
|
predicate.values.forEach((value, index) => {
|
|
514
606
|
validatePredicateValue(predicate.propertyId, value, shape, `${path}.values[${index}]`, ctx);
|
|
515
607
|
});
|
|
608
|
+
admitProperty(ctx, {
|
|
609
|
+
state: admissionState,
|
|
610
|
+
propertyId: predicate.propertyId,
|
|
611
|
+
use: "filter",
|
|
612
|
+
path
|
|
613
|
+
});
|
|
516
614
|
return {
|
|
517
615
|
...authoredPredicate,
|
|
518
616
|
values: predicate.values.map((value) => normalizeObjectQueryValue(value, scalarKind)),
|
|
@@ -521,6 +619,12 @@ function validatePredicate(predicate, shape, path, ctx) {
|
|
|
521
619
|
}
|
|
522
620
|
case "exists":
|
|
523
621
|
resolveAndValidatePredicateProperty(predicate.propertyId, predicate.op, shape, path, ctx);
|
|
622
|
+
admitProperty(ctx, {
|
|
623
|
+
state: admissionState,
|
|
624
|
+
propertyId: predicate.propertyId,
|
|
625
|
+
use: "filter",
|
|
626
|
+
path
|
|
627
|
+
});
|
|
524
628
|
if (typeof predicate.value !== "boolean") {
|
|
525
629
|
addIssue2(ctx, path, "invalid_exists_value", "Predicate 'exists' value must be boolean");
|
|
526
630
|
}
|
|
@@ -528,6 +632,12 @@ function validatePredicate(predicate, shape, path, ctx) {
|
|
|
528
632
|
case "contains":
|
|
529
633
|
resolveAndValidatePredicateProperty(predicate.propertyId, predicate.op, shape, path, ctx);
|
|
530
634
|
validateContainsValue(predicate.propertyId, predicate.value, shape, path, ctx);
|
|
635
|
+
admitProperty(ctx, {
|
|
636
|
+
state: admissionState,
|
|
637
|
+
propertyId: predicate.propertyId,
|
|
638
|
+
use: "filter",
|
|
639
|
+
path
|
|
640
|
+
});
|
|
531
641
|
return predicate;
|
|
532
642
|
}
|
|
533
643
|
}
|
|
@@ -567,7 +677,7 @@ function normalizeObjectQueryValue(value, scalarKind) {
|
|
|
567
677
|
if (scalarKind !== "decimal" || typeof value !== "string")
|
|
568
678
|
return value;
|
|
569
679
|
try {
|
|
570
|
-
return
|
|
680
|
+
return normalizeDecimalValue2(value);
|
|
571
681
|
} catch {
|
|
572
682
|
return value;
|
|
573
683
|
}
|
|
@@ -595,7 +705,7 @@ function validatePredicateValue(propertyId, value, shape, path, ctx) {
|
|
|
595
705
|
reportMissing: false
|
|
596
706
|
})) {
|
|
597
707
|
try {
|
|
598
|
-
|
|
708
|
+
validatePropertyValue2(property, value, `${objectType.id}.${property.id}`, ctx.valueTypesById);
|
|
599
709
|
} catch (error) {
|
|
600
710
|
addIssue2(ctx, path, "invalid_predicate_value", error instanceof Error ? error.message : `Invalid value for property '${property.id}' on '${objectType.id}'`);
|
|
601
711
|
}
|
|
@@ -618,7 +728,7 @@ function validateContainsValue(propertyId, value, shape, path, ctx) {
|
|
|
618
728
|
}
|
|
619
729
|
if (schema.type === "array") {
|
|
620
730
|
try {
|
|
621
|
-
|
|
731
|
+
validateSchemaValue2(schema.items, value, `${objectType.id}.${property.id}[]`, ctx.valueTypesById);
|
|
622
732
|
} catch (error) {
|
|
623
733
|
addIssue2(ctx, path, "invalid_contains_value", error instanceof Error ? error.message : `Invalid contains value for '${objectType.id}.${property.id}'`);
|
|
624
734
|
}
|
|
@@ -629,7 +739,7 @@ function validateContainsValue(propertyId, value, shape, path, ctx) {
|
|
|
629
739
|
}
|
|
630
740
|
}
|
|
631
741
|
}
|
|
632
|
-
function validateTextQuery(query, fields, shape, path, ctx) {
|
|
742
|
+
function validateTextQuery(query, fields, shape, admissionState, path, ctx) {
|
|
633
743
|
if (query.trim().length === 0) {
|
|
634
744
|
addIssue2(ctx, path, "empty_text_query", "Text query must not be empty");
|
|
635
745
|
}
|
|
@@ -643,6 +753,13 @@ function validateTextQuery(query, fields, shape, path, ctx) {
|
|
|
643
753
|
if (fieldsByObjectType)
|
|
644
754
|
fieldsByObjectType[objectType.id] = uniqueStrings(fieldIds);
|
|
645
755
|
for (const fieldId of fieldIds) {
|
|
756
|
+
admitProperty(ctx, {
|
|
757
|
+
state: admissionState,
|
|
758
|
+
propertyId: fieldId,
|
|
759
|
+
objectTypeId: objectType.id,
|
|
760
|
+
use: "text",
|
|
761
|
+
path: `${path}.fields`
|
|
762
|
+
});
|
|
646
763
|
const property = getProperty(objectType, fieldId);
|
|
647
764
|
if (!property) {
|
|
648
765
|
addIssue2(ctx, path, "unknown_text_field", `Text query references unknown property '${fieldId}' on '${objectType.id}'`);
|
|
@@ -658,7 +775,7 @@ function validateTextQuery(query, fields, shape, path, ctx) {
|
|
|
658
775
|
}
|
|
659
776
|
return fieldsByObjectType ? { fieldsByObjectType } : {};
|
|
660
777
|
}
|
|
661
|
-
function validateVectorQuery(vector, propertyId, k, shape, path, ctx) {
|
|
778
|
+
function validateVectorQuery(vector, propertyId, k, shape, admissionState, path, ctx) {
|
|
662
779
|
if (!Number.isInteger(k) || k <= 0) {
|
|
663
780
|
addIssue2(ctx, path, "invalid_vector_k", "Vector query k must be a positive integer");
|
|
664
781
|
}
|
|
@@ -669,6 +786,13 @@ function validateVectorQuery(vector, propertyId, k, shape, path, ctx) {
|
|
|
669
786
|
addIssue2(ctx, path, "invalid_vector_value", "Vector query vector values must be finite numbers");
|
|
670
787
|
}
|
|
671
788
|
for (const objectType of getObjectTypesForResult(shape, ctx)) {
|
|
789
|
+
admitProperty(ctx, {
|
|
790
|
+
state: admissionState,
|
|
791
|
+
propertyId,
|
|
792
|
+
objectTypeId: objectType.id,
|
|
793
|
+
use: "vector",
|
|
794
|
+
path
|
|
795
|
+
});
|
|
672
796
|
const property = getProperty(objectType, propertyId);
|
|
673
797
|
if (!property) {
|
|
674
798
|
addIssue2(ctx, path, "unknown_vector_property", `Vector query references unknown property '${propertyId}' on '${objectType.id}'`);
|
|
@@ -749,21 +873,30 @@ function validateIncomingTraverse(linkId, sourceObjectTypeId, shape, path, ctx)
|
|
|
749
873
|
}
|
|
750
874
|
return { objectTypeIds: uniqueStrings(sourceTypeIds) };
|
|
751
875
|
}
|
|
752
|
-
function validateExpansions(expansions, shape, path, ctx) {
|
|
753
|
-
return expansions.map((expansion, index) => validateExpansion(expansion, shape, `${path}[${index}]`, ctx));
|
|
876
|
+
function validateExpansions(expansions, shape, admissionState, path, ctx) {
|
|
877
|
+
return expansions.map((expansion, index) => validateExpansion(expansion, shape, admissionState, `${path}[${index}]`, ctx));
|
|
754
878
|
}
|
|
755
|
-
function validateExpansion(expansion, shape, path, ctx) {
|
|
879
|
+
function validateExpansion(expansion, shape, admissionState, path, ctx) {
|
|
756
880
|
if (!expansion.linkId) {
|
|
757
881
|
addIssue2(ctx, path, "missing_expand_link", "expand.linkId is required");
|
|
758
882
|
return expansion;
|
|
759
883
|
}
|
|
760
884
|
const targetShape = expansion.direction === "incoming" ? resolveIncomingExpansionTargets(expansion.linkId, expansion.sourceObjectTypeId, shape, path, ctx) : resolveOutgoingExpansionTargets(expansion.linkId, expansion.sourceObjectTypeId, shape, path, ctx);
|
|
885
|
+
const targetAdmissionState = admitTransition(ctx, ctx.admission.edge({
|
|
886
|
+
state: admissionState,
|
|
887
|
+
result: targetShape,
|
|
888
|
+
linkId: expansion.linkId,
|
|
889
|
+
direction: expansion.direction,
|
|
890
|
+
sourceObjectTypeId: expansion.sourceObjectTypeId,
|
|
891
|
+
use: "expand",
|
|
892
|
+
path
|
|
893
|
+
}));
|
|
761
894
|
for (const targetTypeId of targetShape.objectTypeIds) {
|
|
762
895
|
ctx.touchedObjectTypeIds.add(targetTypeId);
|
|
763
896
|
}
|
|
764
897
|
validateExpansionLimit(expansion.limit, path, ctx);
|
|
765
|
-
const orderBy = expansion.orderBy ? validateSortFields(expansion.orderBy, targetShape, `${path}.orderBy`, ctx) : undefined;
|
|
766
|
-
const expand = expansion.expand ? validateExpansions(expansion.expand, targetShape, `${path}.expand`, ctx) : undefined;
|
|
898
|
+
const orderBy = expansion.orderBy ? validateSortFields(expansion.orderBy, targetShape, targetAdmissionState, "expand.orderBy", `${path}.orderBy`, ctx) : undefined;
|
|
899
|
+
const expand = expansion.expand ? validateExpansions(expansion.expand, targetShape, targetAdmissionState, `${path}.expand`, ctx) : undefined;
|
|
767
900
|
return { ...expansion, orderBy, expand };
|
|
768
901
|
}
|
|
769
902
|
function resolveOutgoingExpansionTargets(linkId, sourceObjectTypeId, shape, path, ctx) {
|
|
@@ -833,7 +966,11 @@ function validateExpansionLimit(limit, path, ctx) {
|
|
|
833
966
|
function validateSet(inputs, op, path, ctx) {
|
|
834
967
|
if (inputs.length === 0) {
|
|
835
968
|
addIssue2(ctx, path, "empty_set", `Set operation '${op}' must include at least one input`);
|
|
836
|
-
return {
|
|
969
|
+
return {
|
|
970
|
+
result: { objectTypeIds: [] },
|
|
971
|
+
query: { kind: "set", op, inputs },
|
|
972
|
+
admissionState: ctx.admission.empty()
|
|
973
|
+
};
|
|
837
974
|
}
|
|
838
975
|
const results = inputs.map((input, index) => validateQueryNode(input, `${path}.inputs[${index}]`, ctx));
|
|
839
976
|
const first = results[0]?.result ?? { objectTypeIds: [] };
|
|
@@ -845,10 +982,15 @@ function validateSet(inputs, op, path, ctx) {
|
|
|
845
982
|
});
|
|
846
983
|
return {
|
|
847
984
|
result: first,
|
|
848
|
-
query: { kind: "set", op, inputs: results.map((result) => result.query) }
|
|
985
|
+
query: { kind: "set", op, inputs: results.map((result) => result.query) },
|
|
986
|
+
admissionState: ctx.admission.set({
|
|
987
|
+
op,
|
|
988
|
+
states: results.map((result) => result.admissionState),
|
|
989
|
+
path
|
|
990
|
+
})
|
|
849
991
|
};
|
|
850
992
|
}
|
|
851
|
-
function validateSortFields(fields, shape, path, ctx) {
|
|
993
|
+
function validateSortFields(fields, shape, admissionState, use, path, ctx) {
|
|
852
994
|
if (fields.length === 0) {
|
|
853
995
|
addIssue2(ctx, path, "empty_sort", "Sort must include at least one field");
|
|
854
996
|
return [];
|
|
@@ -865,6 +1007,12 @@ function validateSortFields(fields, shape, path, ctx) {
|
|
|
865
1007
|
seen.add(key);
|
|
866
1008
|
if (field.kind === "relevance")
|
|
867
1009
|
return field;
|
|
1010
|
+
admitProperty(ctx, {
|
|
1011
|
+
state: admissionState,
|
|
1012
|
+
propertyId: field.propertyId,
|
|
1013
|
+
use,
|
|
1014
|
+
path: `${path}.fields[${index}]`
|
|
1015
|
+
});
|
|
868
1016
|
const { scalarKind: _authoredScalarKind, ...authoredField } = field;
|
|
869
1017
|
const schemas = [];
|
|
870
1018
|
for (const { objectType, property } of getPropertiesForResult(field.propertyId, shape, `${path}.fields[${index}]`, ctx)) {
|
|
@@ -900,7 +1048,7 @@ function validatePage(pageSize, pageToken, path, ctx) {
|
|
|
900
1048
|
addIssue2(ctx, path, "empty_page_token", "pageToken must not be empty when provided");
|
|
901
1049
|
}
|
|
902
1050
|
}
|
|
903
|
-
function validateProjection(properties, shape, path, ctx) {
|
|
1051
|
+
function validateProjection(properties, shape, admissionState, path, ctx) {
|
|
904
1052
|
if (!properties)
|
|
905
1053
|
return;
|
|
906
1054
|
if (properties.length === 0) {
|
|
@@ -908,6 +1056,12 @@ function validateProjection(properties, shape, path, ctx) {
|
|
|
908
1056
|
}
|
|
909
1057
|
const seen = new Set;
|
|
910
1058
|
properties.forEach((propertyId, index) => {
|
|
1059
|
+
admitProperty(ctx, {
|
|
1060
|
+
state: admissionState,
|
|
1061
|
+
propertyId,
|
|
1062
|
+
use: "project",
|
|
1063
|
+
path: `${path}.properties[${index}]`
|
|
1064
|
+
});
|
|
911
1065
|
if (seen.has(propertyId)) {
|
|
912
1066
|
addIssue2(ctx, `${path}.properties[${index}]`, "duplicate_projection_property", `Duplicate projected property '${propertyId}'`);
|
|
913
1067
|
}
|
|
@@ -1011,6 +1165,20 @@ function keyForTypeIds(typeIds) {
|
|
|
1011
1165
|
function uniqueStrings(values) {
|
|
1012
1166
|
return [...new Set(values)];
|
|
1013
1167
|
}
|
|
1168
|
+
function admitTransition(ctx, transition) {
|
|
1169
|
+
if (transition.denial)
|
|
1170
|
+
recordAdmissionDenial(ctx, transition.denial);
|
|
1171
|
+
return transition.state;
|
|
1172
|
+
}
|
|
1173
|
+
function admitProperty(ctx, input) {
|
|
1174
|
+
const denial = ctx.admission.property(input);
|
|
1175
|
+
if (denial)
|
|
1176
|
+
recordAdmissionDenial(ctx, denial);
|
|
1177
|
+
}
|
|
1178
|
+
function recordAdmissionDenial(ctx, denial) {
|
|
1179
|
+
if (ctx.admissionDenials.length === 0)
|
|
1180
|
+
ctx.admissionDenials.push(denial);
|
|
1181
|
+
}
|
|
1014
1182
|
function addIssue2(ctx, path, code, message) {
|
|
1015
1183
|
ctx.issues.push({ path, code, message });
|
|
1016
1184
|
}
|
|
@@ -1020,16 +1188,16 @@ var DEFAULT_MAX_FALLBACK_ROWS2 = 1000;
|
|
|
1020
1188
|
var DEFAULT_MAX_FACET_LIMIT = 1000;
|
|
1021
1189
|
var DEFAULT_MAX_EXPANSION_FANOUT = 1000;
|
|
1022
1190
|
var PAGE_TOKEN_PREFIX = "offset:";
|
|
1023
|
-
async function
|
|
1024
|
-
const normalized =
|
|
1025
|
-
const validated =
|
|
1191
|
+
async function executeObjectQuery2(input, options) {
|
|
1192
|
+
const normalized = normalizeObjectQuery2(input.query);
|
|
1193
|
+
const validated = validateObjectQuery2(normalized, {
|
|
1026
1194
|
ontology: options.ontology,
|
|
1027
1195
|
maxLimit: options.maxLimit,
|
|
1028
1196
|
maxPageSize: options.maxPageSize,
|
|
1029
1197
|
maxRefs: options.maxRefs,
|
|
1030
1198
|
normalize: false
|
|
1031
1199
|
});
|
|
1032
|
-
assertQueryViewable(validated, options);
|
|
1200
|
+
assertQueryViewable(input.projectId, validated, options);
|
|
1033
1201
|
const capabilities = options.storage.queryCapabilities();
|
|
1034
1202
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
1035
1203
|
const hasCountObjects = typeof options.storage.countObjects === "function";
|
|
@@ -1044,7 +1212,7 @@ async function executeObjectQuery(input, options) {
|
|
|
1044
1212
|
maxFallbackRows: options.maxFallbackRows,
|
|
1045
1213
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1046
1214
|
}, options.maxExpansionFanout);
|
|
1047
|
-
const plan =
|
|
1215
|
+
const plan = planObjectQuery2(plannedQuery, {
|
|
1048
1216
|
capabilities,
|
|
1049
1217
|
hasQueryObjects,
|
|
1050
1218
|
hasCountObjects,
|
|
@@ -1055,11 +1223,11 @@ async function executeObjectQuery(input, options) {
|
|
|
1055
1223
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1056
1224
|
});
|
|
1057
1225
|
if (plan.mode === "rejected") {
|
|
1058
|
-
throw new
|
|
1226
|
+
throw new ObjectQueryPlanningError2(plan.issues);
|
|
1059
1227
|
}
|
|
1060
1228
|
if (plan.mode === "pushdown") {
|
|
1061
1229
|
if (!options.storage.queryObjects) {
|
|
1062
|
-
throw new
|
|
1230
|
+
throw new ObjectQueryPlanningError2(plan.providerIssues);
|
|
1063
1231
|
}
|
|
1064
1232
|
const result = await options.storage.queryObjects({
|
|
1065
1233
|
projectId: input.projectId,
|
|
@@ -1073,16 +1241,16 @@ async function executeObjectQuery(input, options) {
|
|
|
1073
1241
|
});
|
|
1074
1242
|
return { ...fallback, plan };
|
|
1075
1243
|
}
|
|
1076
|
-
async function
|
|
1077
|
-
const normalized =
|
|
1078
|
-
const validated =
|
|
1244
|
+
async function countObjects2(input, options) {
|
|
1245
|
+
const normalized = normalizeObjectQuery2(input.query);
|
|
1246
|
+
const validated = validateObjectQuery2(normalized, {
|
|
1079
1247
|
ontology: options.ontology,
|
|
1080
1248
|
maxLimit: options.maxLimit,
|
|
1081
1249
|
maxPageSize: options.maxPageSize,
|
|
1082
1250
|
maxRefs: options.maxRefs,
|
|
1083
1251
|
normalize: false
|
|
1084
1252
|
});
|
|
1085
|
-
assertQueryViewable(validated, options);
|
|
1253
|
+
assertQueryViewable(input.projectId, validated, options);
|
|
1086
1254
|
const capabilities = options.storage.queryCapabilities();
|
|
1087
1255
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
1088
1256
|
const hasCountObjects = typeof options.storage.countObjects === "function";
|
|
@@ -1099,7 +1267,7 @@ async function countObjects(input, options) {
|
|
|
1099
1267
|
maxFallbackRows: options.maxFallbackRows,
|
|
1100
1268
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1101
1269
|
});
|
|
1102
|
-
const plan =
|
|
1270
|
+
const plan = planObjectQuery2(plannedQuery, {
|
|
1103
1271
|
capabilities,
|
|
1104
1272
|
operation: "countObjects",
|
|
1105
1273
|
hasQueryObjects,
|
|
@@ -1111,11 +1279,11 @@ async function countObjects(input, options) {
|
|
|
1111
1279
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1112
1280
|
});
|
|
1113
1281
|
if (plan.mode === "rejected") {
|
|
1114
|
-
throw new
|
|
1282
|
+
throw new ObjectQueryPlanningError2(plan.issues);
|
|
1115
1283
|
}
|
|
1116
1284
|
if (plan.mode === "pushdown") {
|
|
1117
1285
|
if (!options.storage.countObjects) {
|
|
1118
|
-
throw new
|
|
1286
|
+
throw new ObjectQueryPlanningError2(plan.providerIssues);
|
|
1119
1287
|
}
|
|
1120
1288
|
const result = await options.storage.countObjects({
|
|
1121
1289
|
projectId: input.projectId,
|
|
@@ -1127,16 +1295,16 @@ async function countObjects(input, options) {
|
|
|
1127
1295
|
const evaluation = await evaluateFallbackQuery(input.projectId, aggregateQuery, options, maxRows);
|
|
1128
1296
|
return { count: evaluation.total, plan };
|
|
1129
1297
|
}
|
|
1130
|
-
async function
|
|
1131
|
-
const normalized =
|
|
1132
|
-
const validated =
|
|
1298
|
+
async function existsObjects2(input, options) {
|
|
1299
|
+
const normalized = normalizeObjectQuery2(input.query);
|
|
1300
|
+
const validated = validateObjectQuery2(normalized, {
|
|
1133
1301
|
ontology: options.ontology,
|
|
1134
1302
|
maxLimit: options.maxLimit,
|
|
1135
1303
|
maxPageSize: options.maxPageSize,
|
|
1136
1304
|
maxRefs: options.maxRefs,
|
|
1137
1305
|
normalize: false
|
|
1138
1306
|
});
|
|
1139
|
-
assertQueryViewable(validated, options);
|
|
1307
|
+
assertQueryViewable(input.projectId, validated, options);
|
|
1140
1308
|
const capabilities = options.storage.queryCapabilities();
|
|
1141
1309
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
1142
1310
|
const hasCountObjects = typeof options.storage.countObjects === "function";
|
|
@@ -1153,7 +1321,7 @@ async function existsObjects(input, options) {
|
|
|
1153
1321
|
maxFallbackRows: options.maxFallbackRows,
|
|
1154
1322
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1155
1323
|
});
|
|
1156
|
-
const plan =
|
|
1324
|
+
const plan = planObjectQuery2(plannedQuery, {
|
|
1157
1325
|
capabilities,
|
|
1158
1326
|
operation: "existsObjects",
|
|
1159
1327
|
hasQueryObjects,
|
|
@@ -1165,11 +1333,11 @@ async function existsObjects(input, options) {
|
|
|
1165
1333
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1166
1334
|
});
|
|
1167
1335
|
if (plan.mode === "rejected") {
|
|
1168
|
-
throw new
|
|
1336
|
+
throw new ObjectQueryPlanningError2(plan.issues);
|
|
1169
1337
|
}
|
|
1170
1338
|
if (plan.mode === "pushdown") {
|
|
1171
1339
|
if (!options.storage.existsObjects) {
|
|
1172
|
-
throw new
|
|
1340
|
+
throw new ObjectQueryPlanningError2(plan.providerIssues);
|
|
1173
1341
|
}
|
|
1174
1342
|
const result = await options.storage.existsObjects({
|
|
1175
1343
|
projectId: input.projectId,
|
|
@@ -1181,17 +1349,17 @@ async function existsObjects(input, options) {
|
|
|
1181
1349
|
const evaluation = await evaluateFallbackQuery(input.projectId, aggregateQuery, options, maxRows);
|
|
1182
1350
|
return { exists: evaluation.total > 0, plan };
|
|
1183
1351
|
}
|
|
1184
|
-
async function
|
|
1185
|
-
const normalized =
|
|
1186
|
-
const validated =
|
|
1352
|
+
async function facetObjects2(input, options) {
|
|
1353
|
+
const normalized = normalizeObjectQuery2(input.query);
|
|
1354
|
+
const validated = validateObjectQuery2(normalized, {
|
|
1187
1355
|
ontology: options.ontology,
|
|
1188
1356
|
maxLimit: options.maxLimit,
|
|
1189
1357
|
maxPageSize: options.maxPageSize,
|
|
1190
1358
|
maxRefs: options.maxRefs,
|
|
1191
1359
|
normalize: false
|
|
1192
1360
|
});
|
|
1193
|
-
assertQueryViewable(validated, options);
|
|
1194
|
-
const facets =
|
|
1361
|
+
assertQueryViewable(input.projectId, validated, options);
|
|
1362
|
+
const facets = validateObjectFacetRequests(input.facets, validated.result.objectTypeIds, options);
|
|
1195
1363
|
const aggregateQuery = stripOuterRowShape(validated.query);
|
|
1196
1364
|
const capabilities = options.storage.queryCapabilities();
|
|
1197
1365
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
@@ -1208,7 +1376,7 @@ async function facetObjects(input, options) {
|
|
|
1208
1376
|
maxFallbackRows: options.maxFallbackRows,
|
|
1209
1377
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1210
1378
|
});
|
|
1211
|
-
const plan =
|
|
1379
|
+
const plan = planObjectQuery2(plannedQuery, {
|
|
1212
1380
|
capabilities,
|
|
1213
1381
|
operation: "facetObjects",
|
|
1214
1382
|
hasQueryObjects,
|
|
@@ -1220,11 +1388,11 @@ async function facetObjects(input, options) {
|
|
|
1220
1388
|
requiresExplicitFallbackBound: options.requiresExplicitFallbackBound
|
|
1221
1389
|
});
|
|
1222
1390
|
if (plan.mode === "rejected") {
|
|
1223
|
-
throw new
|
|
1391
|
+
throw new ObjectQueryPlanningError2(plan.issues);
|
|
1224
1392
|
}
|
|
1225
1393
|
if (plan.mode === "pushdown") {
|
|
1226
1394
|
if (!options.storage.facetObjects) {
|
|
1227
|
-
throw new
|
|
1395
|
+
throw new ObjectQueryPlanningError2(plan.providerIssues);
|
|
1228
1396
|
}
|
|
1229
1397
|
const result = await options.storage.facetObjects({
|
|
1230
1398
|
projectId: input.projectId,
|
|
@@ -1240,10 +1408,10 @@ async function facetObjects(input, options) {
|
|
|
1240
1408
|
plan
|
|
1241
1409
|
};
|
|
1242
1410
|
}
|
|
1243
|
-
function assertQueryViewable(validated, authorization) {
|
|
1411
|
+
function assertQueryViewable(projectId, validated, authorization) {
|
|
1244
1412
|
if (!authorization.runtimeAuthorization && !authorization.authorization)
|
|
1245
1413
|
return;
|
|
1246
|
-
|
|
1414
|
+
assertAuthorized2({ projectId, ...authorization }, {
|
|
1247
1415
|
kind: "object.query",
|
|
1248
1416
|
touchedObjectTypeIds: validated.touchedObjectTypeIds
|
|
1249
1417
|
});
|
|
@@ -1254,7 +1422,7 @@ function expandPushdownQuery(query, ontology, capabilities, planning, maxExpansi
|
|
|
1254
1422
|
const expanded = expandIncludeSubtypes(annotated, ontology);
|
|
1255
1423
|
if (expanded === annotated)
|
|
1256
1424
|
return annotated;
|
|
1257
|
-
const plan =
|
|
1425
|
+
const plan = planObjectQuery2(expanded, { ...planning, capabilities, allowFallback: false });
|
|
1258
1426
|
return plan.mode === "pushdown" ? expanded : annotated;
|
|
1259
1427
|
}
|
|
1260
1428
|
function resolveExpansions(query, ctx) {
|
|
@@ -1333,7 +1501,7 @@ function resolveExpansionTargetShape(expansion, parentShape, ontology) {
|
|
|
1333
1501
|
}
|
|
1334
1502
|
function safeResultShape(query, ontology) {
|
|
1335
1503
|
try {
|
|
1336
|
-
return
|
|
1504
|
+
return resolveObjectQueryResultShape2(query, { ontology });
|
|
1337
1505
|
} catch {
|
|
1338
1506
|
return { objectTypeIds: [] };
|
|
1339
1507
|
}
|
|
@@ -1445,7 +1613,7 @@ async function evaluateFallbackQuery(projectId, query, options, maxRows) {
|
|
|
1445
1613
|
case "vector":
|
|
1446
1614
|
case "traverse":
|
|
1447
1615
|
case "set":
|
|
1448
|
-
throw new
|
|
1616
|
+
throw new ObjectQueryExecutionError2("fallback_node_not_supported", `Fallback execution does not support query node '${query.kind}'`);
|
|
1449
1617
|
}
|
|
1450
1618
|
}
|
|
1451
1619
|
async function evaluateFallbackRefs(projectId, query, options) {
|
|
@@ -1454,7 +1622,7 @@ async function evaluateFallbackRefs(projectId, query, options) {
|
|
|
1454
1622
|
items: query.refs
|
|
1455
1623
|
});
|
|
1456
1624
|
return completeFallbackEvaluation(query.refs.flatMap((ref, order) => {
|
|
1457
|
-
const row = rows.get(
|
|
1625
|
+
const row = rows.get(objectBatchKey2(ref.objectTypeId, ref.primaryId));
|
|
1458
1626
|
return row ? [{ row, order }] : [];
|
|
1459
1627
|
}));
|
|
1460
1628
|
}
|
|
@@ -1497,7 +1665,7 @@ async function collectOutgoingEdges(projectId, parents, expansion, options) {
|
|
|
1497
1665
|
}))
|
|
1498
1666
|
});
|
|
1499
1667
|
return parents.map((parent) => {
|
|
1500
|
-
const links = linksByKey.get(
|
|
1668
|
+
const links = linksByKey.get(linkBatchKey2(parent.objectTypeId, parent.primaryId, expansion.linkId));
|
|
1501
1669
|
if (!links)
|
|
1502
1670
|
return [];
|
|
1503
1671
|
return links.map((link) => ({
|
|
@@ -1508,31 +1676,20 @@ async function collectOutgoingEdges(projectId, parents, expansion, options) {
|
|
|
1508
1676
|
});
|
|
1509
1677
|
}
|
|
1510
1678
|
async function collectIncomingEdges(projectId, parents, expansion, options) {
|
|
1511
|
-
const
|
|
1679
|
+
const linksByKey = await options.storage.listLinksBatch({
|
|
1512
1680
|
projectId,
|
|
1681
|
+
direction: "incoming",
|
|
1513
1682
|
items: parents.map((parent) => ({
|
|
1514
1683
|
objectTypeId: parent.objectTypeId,
|
|
1515
|
-
objectId: parent.primaryId
|
|
1684
|
+
objectId: parent.primaryId,
|
|
1685
|
+
linkId: expansion.linkId
|
|
1516
1686
|
}))
|
|
1517
1687
|
});
|
|
1518
|
-
const byTarget = new Map;
|
|
1519
|
-
for (const link of incident) {
|
|
1520
|
-
if (link.linkId !== expansion.linkId)
|
|
1521
|
-
continue;
|
|
1522
|
-
if (expansion.sourceObjectTypeId && link.sourceTypeId !== expansion.sourceObjectTypeId)
|
|
1523
|
-
continue;
|
|
1524
|
-
const key = targetKey(link.targetTypeId, link.targetId);
|
|
1525
|
-
const bucket = byTarget.get(key);
|
|
1526
|
-
if (bucket)
|
|
1527
|
-
bucket.push(link);
|
|
1528
|
-
else
|
|
1529
|
-
byTarget.set(key, [link]);
|
|
1530
|
-
}
|
|
1531
1688
|
return parents.map((parent) => {
|
|
1532
|
-
const links =
|
|
1689
|
+
const links = linksByKey.get(linkBatchKey2(parent.objectTypeId, parent.primaryId, expansion.linkId));
|
|
1533
1690
|
if (!links)
|
|
1534
1691
|
return [];
|
|
1535
|
-
return links.map((link) => ({
|
|
1692
|
+
return links.filter((link) => !expansion.sourceObjectTypeId || link.sourceTypeId === expansion.sourceObjectTypeId).map((link) => ({
|
|
1536
1693
|
neighborTypeId: link.sourceTypeId,
|
|
1537
1694
|
neighborId: link.sourceId,
|
|
1538
1695
|
edgeProperties: link.properties
|
|
@@ -1633,7 +1790,7 @@ function toLinkValue(rows, cardinality) {
|
|
|
1633
1790
|
return rows;
|
|
1634
1791
|
}
|
|
1635
1792
|
function targetKey(objectTypeId, id) {
|
|
1636
|
-
return
|
|
1793
|
+
return objectBatchKey2(objectTypeId, id);
|
|
1637
1794
|
}
|
|
1638
1795
|
async function evaluateFallbackStart(projectId, query, options, maxRows) {
|
|
1639
1796
|
const objectTypeIds = query.includeSubtypes ? [query.objectTypeId, ...options.ontology.listSubTypes(query.objectTypeId)] : [query.objectTypeId];
|
|
@@ -1645,7 +1802,7 @@ async function evaluateFallbackStart(projectId, query, options, maxRows) {
|
|
|
1645
1802
|
order: "asc"
|
|
1646
1803
|
});
|
|
1647
1804
|
if (result.objects.length > maxRows || result.hasMore || result.total > maxRows) {
|
|
1648
|
-
throw new
|
|
1805
|
+
throw new ObjectQueryExecutionError2("fallback_row_limit_exceeded", `Fallback start '${query.objectTypeId}' exceeded maxFallbackRows=${maxRows}`, "$.start");
|
|
1649
1806
|
}
|
|
1650
1807
|
return completeFallbackEvaluation(result.objects.map((row, index) => ({
|
|
1651
1808
|
row,
|
|
@@ -1750,12 +1907,21 @@ function stripOuterRowShape(query) {
|
|
|
1750
1907
|
return query;
|
|
1751
1908
|
}
|
|
1752
1909
|
}
|
|
1753
|
-
function
|
|
1910
|
+
function validateObjectFacetRequests(facets, objectTypeIds, options) {
|
|
1754
1911
|
const issues = [];
|
|
1755
1912
|
const maxLimit = options.maxFacetLimit ?? DEFAULT_MAX_FACET_LIMIT;
|
|
1756
1913
|
if (facets.length === 0) {
|
|
1757
1914
|
addFacetIssue(issues, "$.facets", "empty_facets", "At least one facet is required");
|
|
1758
1915
|
}
|
|
1916
|
+
if (facets.length > MAX_OBJECT_READ_FACETS2) {
|
|
1917
|
+
throw new ObjectQueryValidationError2([
|
|
1918
|
+
{
|
|
1919
|
+
path: "$.facets",
|
|
1920
|
+
code: "too_many_facets",
|
|
1921
|
+
message: `facets must include at most ${MAX_OBJECT_READ_FACETS2} facet requests`
|
|
1922
|
+
}
|
|
1923
|
+
]);
|
|
1924
|
+
}
|
|
1759
1925
|
if (!Number.isInteger(maxLimit) || maxLimit <= 0) {
|
|
1760
1926
|
addFacetIssue(issues, "$.maxFacetLimit", "invalid_facet_bound", "maxFacetLimit must be positive");
|
|
1761
1927
|
}
|
|
@@ -1792,7 +1958,7 @@ function validateFacetRequests(facets, objectTypeIds, options) {
|
|
|
1792
1958
|
normalizedFacets.push({ propertyId, limit: facet.limit });
|
|
1793
1959
|
});
|
|
1794
1960
|
if (issues.length > 0) {
|
|
1795
|
-
throw new
|
|
1961
|
+
throw new ObjectQueryValidationError2(issues);
|
|
1796
1962
|
}
|
|
1797
1963
|
return normalizedFacets;
|
|
1798
1964
|
}
|
|
@@ -1830,7 +1996,7 @@ function facetValueSortKey(value) {
|
|
|
1830
1996
|
return JSON.stringify(value) ?? String(value);
|
|
1831
1997
|
}
|
|
1832
1998
|
function rowIdentityKey(row) {
|
|
1833
|
-
return
|
|
1999
|
+
return objectBatchKey2(row.objectTypeId, row.primaryId);
|
|
1834
2000
|
}
|
|
1835
2001
|
function encodePageOffset(offset) {
|
|
1836
2002
|
return `${PAGE_TOKEN_PREFIX}${offset}`;
|
|
@@ -1839,11 +2005,11 @@ function decodePageOffset(token) {
|
|
|
1839
2005
|
if (!token)
|
|
1840
2006
|
return 0;
|
|
1841
2007
|
if (!token.startsWith(PAGE_TOKEN_PREFIX)) {
|
|
1842
|
-
throw new
|
|
2008
|
+
throw new ObjectQueryExecutionError2("invalid_page_token", "Fallback page token must use the offset token format");
|
|
1843
2009
|
}
|
|
1844
2010
|
const offset = Number(token.slice(PAGE_TOKEN_PREFIX.length));
|
|
1845
2011
|
if (!Number.isInteger(offset) || offset < 0) {
|
|
1846
|
-
throw new
|
|
2012
|
+
throw new ObjectQueryExecutionError2("invalid_page_token", "Fallback page token contains an invalid offset");
|
|
1847
2013
|
}
|
|
1848
2014
|
return offset;
|
|
1849
2015
|
}
|
|
@@ -1851,16 +2017,16 @@ function isPlainObject(value) {
|
|
|
1851
2017
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1852
2018
|
}
|
|
1853
2019
|
// src/objects/query/explain.ts
|
|
1854
|
-
function
|
|
1855
|
-
const normalizedQuery = options.normalize === false ? query :
|
|
1856
|
-
const issues = options.ontology ?
|
|
2020
|
+
function explainObjectQuery2(query, options = {}) {
|
|
2021
|
+
const normalizedQuery = options.normalize === false ? query : normalizeObjectQuery2(query);
|
|
2022
|
+
const issues = options.ontology ? collectObjectQueryValidationIssues2(normalizedQuery, {
|
|
1857
2023
|
ontology: options.ontology,
|
|
1858
2024
|
maxLimit: options.maxLimit,
|
|
1859
2025
|
maxPageSize: options.maxPageSize,
|
|
1860
2026
|
maxRefs: options.maxRefs,
|
|
1861
2027
|
normalize: false
|
|
1862
2028
|
}) : [];
|
|
1863
|
-
const result = options.ontology && issues.length === 0 ?
|
|
2029
|
+
const result = options.ontology && issues.length === 0 ? validateObjectQuery2(normalizedQuery, {
|
|
1864
2030
|
ontology: options.ontology,
|
|
1865
2031
|
maxLimit: options.maxLimit,
|
|
1866
2032
|
maxPageSize: options.maxPageSize,
|
|
@@ -2020,19 +2186,32 @@ var MAX_LINK_QUERY_OBJECTS = 1000;
|
|
|
2020
2186
|
var MAX_LINK_PAGE_SIZE = 1000;
|
|
2021
2187
|
var DEFAULT_LINK_PAGE_SIZE = 100;
|
|
2022
2188
|
var LINK_PAGE_TOKEN_PREFIX = "link:v1:";
|
|
2023
|
-
|
|
2024
|
-
const
|
|
2189
|
+
function preflightObjectQueryLinks(input, options) {
|
|
2190
|
+
const projectId = input.projectId;
|
|
2191
|
+
const query = input.query;
|
|
2192
|
+
const requestedDirection = input.direction;
|
|
2193
|
+
const linkId = input.linkId;
|
|
2194
|
+
const requestedIncludeObjects = input.includeObjects;
|
|
2195
|
+
const requestedPageSize = input.pageSize;
|
|
2196
|
+
const pageToken = input.pageToken;
|
|
2197
|
+
const direction = requestedDirection ?? "both";
|
|
2025
2198
|
if (direction !== "outgoing" && direction !== "incoming" && direction !== "both") {
|
|
2026
|
-
throw new
|
|
2199
|
+
throw new ObjectQueryExecutionError2("invalid_link_direction", "direction must be 'outgoing', 'incoming', or 'both'", "$.direction");
|
|
2200
|
+
}
|
|
2201
|
+
if (linkId !== undefined && typeof linkId !== "string") {
|
|
2202
|
+
throw new ObjectQueryExecutionError2("invalid_link_id", "linkId must be a string", "$.linkId");
|
|
2203
|
+
}
|
|
2204
|
+
if (linkId !== undefined && linkId.length === 0) {
|
|
2205
|
+
throw new ObjectQueryExecutionError2("invalid_link_id", "linkId must not be empty", "$.linkId");
|
|
2027
2206
|
}
|
|
2028
|
-
if (
|
|
2029
|
-
throw new
|
|
2207
|
+
if (requestedIncludeObjects !== undefined && typeof requestedIncludeObjects !== "boolean") {
|
|
2208
|
+
throw new ObjectQueryExecutionError2("invalid_link_include_objects", "includeObjects must be a boolean", "$.includeObjects");
|
|
2030
2209
|
}
|
|
2031
|
-
const pageSize =
|
|
2210
|
+
const pageSize = requestedPageSize ?? DEFAULT_LINK_PAGE_SIZE;
|
|
2032
2211
|
if (!Number.isInteger(pageSize) || pageSize <= 0 || pageSize > MAX_LINK_PAGE_SIZE) {
|
|
2033
|
-
throw new
|
|
2212
|
+
throw new ObjectQueryExecutionError2("invalid_link_page_size", `pageSize must be an integer between 1 and ${MAX_LINK_PAGE_SIZE}`, "$.pageSize");
|
|
2034
2213
|
}
|
|
2035
|
-
const validated =
|
|
2214
|
+
const validated = validateObjectQuery2(normalizeObjectQuery2(query), {
|
|
2036
2215
|
ontology: options.ontology,
|
|
2037
2216
|
maxLimit: options.maxLimit,
|
|
2038
2217
|
maxPageSize: options.maxPageSize,
|
|
@@ -2040,12 +2219,25 @@ async function executeObjectQueryLinks(input, options) {
|
|
|
2040
2219
|
normalize: false
|
|
2041
2220
|
});
|
|
2042
2221
|
assertLinkSelectorShape(validated.query);
|
|
2043
|
-
const
|
|
2044
|
-
const
|
|
2045
|
-
|
|
2222
|
+
const pageScope = linkPageScope(projectId, validated.query, direction, linkId);
|
|
2223
|
+
const cursor = decodeLinkPageToken(pageToken, pageScope);
|
|
2224
|
+
return {
|
|
2225
|
+
projectId,
|
|
2226
|
+
validated,
|
|
2227
|
+
direction,
|
|
2228
|
+
...linkId === undefined ? {} : { linkId },
|
|
2229
|
+
includeObjects: requestedIncludeObjects ?? false,
|
|
2230
|
+
pageSize,
|
|
2231
|
+
...cursor === undefined ? {} : { cursor },
|
|
2232
|
+
pageScope
|
|
2233
|
+
};
|
|
2234
|
+
}
|
|
2235
|
+
async function executeObjectQueryLinks2(input, options) {
|
|
2236
|
+
const preflight = preflightObjectQueryLinks(input, options);
|
|
2237
|
+
const selectorQuery = preflight.validated.query;
|
|
2046
2238
|
const boundedSelector = selectorQuery.kind === "page" ? selectorQuery : { kind: "limit", limit: MAX_LINK_QUERY_OBJECTS + 1, input: selectorQuery };
|
|
2047
|
-
const selection = await
|
|
2048
|
-
projectId:
|
|
2239
|
+
const selection = await executeObjectQuery2({
|
|
2240
|
+
projectId: preflight.projectId,
|
|
2049
2241
|
query: boundedSelector,
|
|
2050
2242
|
includeTotal: false
|
|
2051
2243
|
}, {
|
|
@@ -2053,7 +2245,7 @@ async function executeObjectQueryLinks(input, options) {
|
|
|
2053
2245
|
maxLimit: Math.max(options.maxLimit ?? 1000, MAX_LINK_QUERY_OBJECTS + 1)
|
|
2054
2246
|
});
|
|
2055
2247
|
if (selection.objects.length > MAX_LINK_QUERY_OBJECTS) {
|
|
2056
|
-
throw new
|
|
2248
|
+
throw new ObjectQueryExecutionError2("link_query_object_limit_exceeded", `Link query selected more than ${MAX_LINK_QUERY_OBJECTS} objects; add a limit or page node`, "$.query");
|
|
2057
2249
|
}
|
|
2058
2250
|
const selected = selection.objects;
|
|
2059
2251
|
if (selected.length === 0) {
|
|
@@ -2061,16 +2253,16 @@ async function executeObjectQueryLinks(input, options) {
|
|
|
2061
2253
|
}
|
|
2062
2254
|
const endpointObjectTypeIds = visibleEndpointTypeIds(options);
|
|
2063
2255
|
const page = await options.storage.queryLinks({
|
|
2064
|
-
projectId:
|
|
2256
|
+
projectId: preflight.projectId,
|
|
2065
2257
|
objectRefs: selected.map((row) => ({
|
|
2066
2258
|
objectTypeId: row.objectTypeId,
|
|
2067
2259
|
primaryId: row.primaryId
|
|
2068
2260
|
})),
|
|
2069
|
-
direction,
|
|
2070
|
-
...
|
|
2261
|
+
direction: preflight.direction,
|
|
2262
|
+
...preflight.linkId === undefined ? {} : { linkId: preflight.linkId },
|
|
2071
2263
|
...endpointObjectTypeIds === undefined ? {} : { endpointObjectTypeIds },
|
|
2072
|
-
...cursor === undefined ? {} : { after: cursor },
|
|
2073
|
-
limit: pageSize
|
|
2264
|
+
...preflight.cursor === undefined ? {} : { after: preflight.cursor },
|
|
2265
|
+
limit: preflight.pageSize
|
|
2074
2266
|
});
|
|
2075
2267
|
const lastLink = page.links.at(-1);
|
|
2076
2268
|
let nextPageToken;
|
|
@@ -2078,9 +2270,9 @@ async function executeObjectQueryLinks(input, options) {
|
|
|
2078
2270
|
if (!lastLink) {
|
|
2079
2271
|
throw new Error("[Sixb] Object storage returned hasMore for an empty link page.");
|
|
2080
2272
|
}
|
|
2081
|
-
nextPageToken = encodeLinkPageToken(
|
|
2273
|
+
nextPageToken = encodeLinkPageToken(objectLinkCursor2(lastLink), preflight.pageScope);
|
|
2082
2274
|
}
|
|
2083
|
-
const objects =
|
|
2275
|
+
const objects = preflight.includeObjects ? await hydrateLinkQueryObjects(preflight.projectId, selected, page.links, options.storage) : [];
|
|
2084
2276
|
return {
|
|
2085
2277
|
objects,
|
|
2086
2278
|
links: page.links,
|
|
@@ -2092,10 +2284,10 @@ function assertLinkSelectorShape(query, path = "$.query", root = true) {
|
|
|
2092
2284
|
switch (query.kind) {
|
|
2093
2285
|
case "project":
|
|
2094
2286
|
case "expand":
|
|
2095
|
-
throw new
|
|
2287
|
+
throw new ObjectQueryExecutionError2("link_selector_output_shape_not_supported", `Link selectors do not support '${query.kind}' nodes; remove output shaping from the selector`, path);
|
|
2096
2288
|
case "page":
|
|
2097
2289
|
if (!root) {
|
|
2098
|
-
throw new
|
|
2290
|
+
throw new ObjectQueryExecutionError2("link_selector_page_must_be_root", "A page node in a link selector must be the outermost node", path);
|
|
2099
2291
|
}
|
|
2100
2292
|
assertLinkSelectorShape(query.input, `${path}.input`, false);
|
|
2101
2293
|
return;
|
|
@@ -2121,13 +2313,13 @@ function assertLinkSelectorShape(query, path = "$.query", root = true) {
|
|
|
2121
2313
|
function visibleEndpointTypeIds(options) {
|
|
2122
2314
|
if (!options.authorization)
|
|
2123
2315
|
return;
|
|
2124
|
-
return options.ontology.listObjectTypes().filter((objectType) =>
|
|
2316
|
+
return options.ontology.listObjectTypes().filter((objectType) => isAllowed2(options.authorization, { kind: "object.view", objectTypeId: objectType.id })).map((objectType) => objectType.id);
|
|
2125
2317
|
}
|
|
2126
2318
|
function objectIdentity(objectTypeId, primaryId) {
|
|
2127
|
-
return
|
|
2319
|
+
return objectBatchKey2(objectTypeId, primaryId);
|
|
2128
2320
|
}
|
|
2129
2321
|
function linkPageScope(projectId, query, direction, linkId) {
|
|
2130
|
-
return createHash("sha256").update(
|
|
2322
|
+
return createHash("sha256").update(stableJsonStringify2({
|
|
2131
2323
|
projectId,
|
|
2132
2324
|
query,
|
|
2133
2325
|
direction,
|
|
@@ -2153,7 +2345,7 @@ function decodeLinkPageToken(token, expectedScope) {
|
|
|
2153
2345
|
}
|
|
2154
2346
|
return value.cursor;
|
|
2155
2347
|
} catch {
|
|
2156
|
-
throw new
|
|
2348
|
+
throw new ObjectQueryExecutionError2("invalid_link_page_token", "pageToken is not a valid object-links cursor", "$.pageToken");
|
|
2157
2349
|
}
|
|
2158
2350
|
}
|
|
2159
2351
|
function isObjectLinkCursor(value) {
|
|
@@ -2183,7 +2375,7 @@ async function hydrateLinkQueryObjects(projectId, selected, links, storage) {
|
|
|
2183
2375
|
if (missingRefs.length > 0) {
|
|
2184
2376
|
const hydrated = await storage.getByPrimaryIdBatch({ projectId, items: missingRefs });
|
|
2185
2377
|
for (const ref of missingRefs) {
|
|
2186
|
-
const row = hydrated.get(
|
|
2378
|
+
const row = hydrated.get(objectBatchKey2(ref.objectTypeId, ref.primaryId));
|
|
2187
2379
|
if (row)
|
|
2188
2380
|
byIdentity.set(objectIdentity(ref.objectTypeId, ref.primaryId), row);
|
|
2189
2381
|
}
|
|
@@ -2193,6 +2385,6 @@ async function hydrateLinkQueryObjects(projectId, selected, links, storage) {
|
|
|
2193
2385
|
return row ? [row] : [];
|
|
2194
2386
|
});
|
|
2195
2387
|
}
|
|
2196
|
-
export {
|
|
2388
|
+
export { planObjectQuery2, validateObjectQuery2, validateObjectQueryWithAdmission, collectObjectQueryValidationIssues2, resolveObjectQueryResultShape2, executeObjectQuery2, countObjects2, existsObjects2, facetObjects2, validateObjectFacetRequests, explainObjectQuery2, preflightObjectQueryLinks, executeObjectQueryLinks2 };
|
|
2197
2389
|
|
|
2198
|
-
//# debugId=
|
|
2390
|
+
//# debugId=48B001E3D65EA0BD64756E2164756E21
|