@sixb/core 0.1.8 → 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/index.js +77 -89
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +2 -0
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validation.d.ts +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +33 -37
- package/dist/actions/worker.js.map +2 -2
- package/dist/agents/adapters.d.ts +3 -3
- package/dist/agents/{context.d.ts → context/entries.d.ts} +3 -3
- package/dist/agents/context/entries.d.ts.map +1 -0
- package/dist/agents/context/index.d.ts +4 -0
- package/dist/agents/context/index.d.ts.map +1 -0
- package/dist/agents/context/index.js +19 -0
- package/dist/agents/{streams.js.map → context/index.js.map} +1 -1
- package/dist/agents/context-model.d.ts +1 -1
- package/dist/agents/context-model.d.ts.map +1 -1
- package/dist/agents/context-resolution.d.ts +1 -1
- package/dist/agents/context-resolution.d.ts.map +1 -1
- package/dist/agents/index.d.ts +4 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +192 -204
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +1 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +2 -0
- package/dist/agents/model-loop.d.ts.map +1 -1
- package/dist/agents/request.d.ts +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/streams/index.d.ts +4 -0
- package/dist/agents/streams/index.d.ts.map +1 -0
- package/dist/agents/streams/index.js +20 -0
- package/dist/{chunk-y64skrwp.js.map → agents/streams/index.js.map} +1 -1
- package/dist/agents/streams/internal.d.ts +3 -0
- package/dist/agents/streams/internal.d.ts.map +1 -0
- package/dist/agents/streams/internal.js +40 -0
- package/dist/agents/{context.js.map → streams/internal.js.map} +1 -1
- package/dist/agents/{streams.d.ts → streams/protocol.d.ts} +5 -5
- package/dist/agents/streams/protocol.d.ts.map +1 -0
- package/dist/agents/types.d.ts +1 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/auth/index.d.ts +0 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +96 -108
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/strategy.js +8 -9
- package/dist/auth/strategy.js.map +1 -1
- package/dist/authorization/index.js +51 -56
- package/dist/authorization/index.js.map +1 -1
- package/dist/blob-storage/browser.js +15 -17
- package/dist/blob-storage/browser.js.map +1 -1
- package/dist/blob-storage/index.js +36 -38
- package/dist/blob-storage/index.js.map +1 -1
- package/dist/bootstrap/discovery.d.ts +14 -1
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -2
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +79 -88
- package/dist/bootstrap/index.js.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-q0k9nc5a.js → chunk-0w35wavj.js} +98 -98
- package/dist/{chunk-q0k9nc5a.js.map → chunk-0w35wavj.js.map} +2 -2
- package/dist/chunk-0y39rgsb.js +43 -0
- package/dist/{chunk-c15dr03f.js.map → chunk-0y39rgsb.js.map} +2 -2
- package/dist/{chunk-k522z7v6.js → chunk-17kfctj6.js} +16 -11
- package/dist/chunk-17kfctj6.js.map +10 -0
- package/dist/{chunk-aa2pen2v.js → chunk-1enhpacz.js} +188 -175
- package/dist/{chunk-aa2pen2v.js.map → chunk-1enhpacz.js.map} +2 -2
- 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-fvt9rjsa.js → chunk-38zv5rkr.js} +4 -4
- package/dist/{chunk-fvt9rjsa.js.map → chunk-38zv5rkr.js.map} +1 -1
- package/dist/{chunk-w3e09qqk.js → chunk-39tqv9hz.js} +24 -24
- package/dist/{chunk-w3e09qqk.js.map → chunk-39tqv9hz.js.map} +2 -2
- package/dist/{chunk-04b07a9q.js → chunk-3bh94gbw.js} +13 -13
- package/dist/{chunk-04b07a9q.js.map → chunk-3bh94gbw.js.map} +2 -2
- package/dist/{chunk-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-mwsxn98e.js → chunk-52hbv0ak.js} +170 -170
- package/dist/{chunk-mwsxn98e.js.map → chunk-52hbv0ak.js.map} +4 -4
- 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-p1rzczbt.js.map → chunk-7bs40fe1.js.map} +3 -3
- package/dist/chunk-7zgecwy1.js +113 -0
- package/dist/chunk-7zgecwy1.js.map +10 -0
- package/dist/{chunk-pc7ys28c.js → chunk-860dwwy0.js} +29 -29
- package/dist/{chunk-pc7ys28c.js.map → chunk-860dwwy0.js.map} +2 -2
- package/dist/chunk-8vj0rjgs.js +165 -0
- package/dist/chunk-8vj0rjgs.js.map +15 -0
- package/dist/{chunk-7y0f6rf1.js → chunk-92vk7gta.js} +58 -58
- package/dist/chunk-92vk7gta.js.map +10 -0
- package/dist/{chunk-rafagrwr.js → chunk-93csa55g.js} +45 -17
- package/dist/chunk-93csa55g.js.map +11 -0
- package/dist/{chunk-d8qkxt2v.js → chunk-98cw09sw.js} +7 -7
- package/dist/chunk-98cw09sw.js.map +10 -0
- package/dist/{chunk-n4khvw9n.js → chunk-9qsh3p5y.js} +17 -17
- package/dist/{chunk-n4khvw9n.js.map → chunk-9qsh3p5y.js.map} +2 -2
- package/dist/{chunk-4a849fr1.js → chunk-9tc8dxmn.js} +1 -1
- package/dist/{chunk-9nbmsvn5.js → chunk-9vx5e9g1.js} +9 -9
- package/dist/{chunk-9nbmsvn5.js.map → chunk-9vx5e9g1.js.map} +2 -2
- package/dist/{chunk-f26bck4t.js → chunk-an5tt9y0.js} +353 -353
- package/dist/{chunk-f26bck4t.js.map → chunk-an5tt9y0.js.map} +2 -2
- package/dist/{chunk-2dw777qw.js → chunk-ap0g1g74.js} +37 -82
- package/dist/{chunk-2dw777qw.js.map → chunk-ap0g1g74.js.map} +3 -4
- package/dist/{chunk-v4en4jc2.js → chunk-awbhdqyc.js} +7 -7
- package/dist/{chunk-v4en4jc2.js.map → chunk-awbhdqyc.js.map} +2 -2
- package/dist/{chunk-ka3a2ft3.js → chunk-b19g04jk.js} +12 -12
- package/dist/{chunk-ka3a2ft3.js.map → chunk-b19g04jk.js.map} +2 -2
- package/dist/{chunk-nx7k8tpr.js → chunk-br3k6qbf.js} +23 -23
- package/dist/{chunk-nx7k8tpr.js.map → chunk-br3k6qbf.js.map} +2 -2
- package/dist/{chunk-dbc80ad7.js → chunk-c5rkjrgp.js} +28 -28
- package/dist/{chunk-dbc80ad7.js.map → chunk-c5rkjrgp.js.map} +2 -2
- package/dist/{chunk-dktq02ne.js → chunk-cqr3acm1.js} +4 -4
- package/dist/{chunk-dktq02ne.js.map → chunk-cqr3acm1.js.map} +2 -2
- package/dist/chunk-d62kjtbg.js +7 -0
- package/dist/{chunk-zcnhxkvd.js.map → chunk-d62kjtbg.js.map} +2 -2
- package/dist/{chunk-74drx9gd.js → chunk-dfm066qg.js} +10 -10
- package/dist/{chunk-74drx9gd.js.map → chunk-dfm066qg.js.map} +2 -2
- package/dist/{chunk-5e3pq99w.js → chunk-dmn70ztd.js} +30 -30
- package/dist/chunk-dmn70ztd.js.map +11 -0
- package/dist/{chunk-p1x242ad.js → chunk-dz5h08xv.js} +175 -175
- package/dist/{chunk-p1x242ad.js.map → chunk-dz5h08xv.js.map} +2 -2
- package/dist/{chunk-p2vqaxkc.js → chunk-e0d1rzef.js} +27 -22
- package/dist/{chunk-p2vqaxkc.js.map → chunk-e0d1rzef.js.map} +3 -3
- package/dist/{chunk-5sz8ta9r.js → chunk-e1c18xjx.js} +52 -52
- package/dist/{chunk-5sz8ta9r.js.map → chunk-e1c18xjx.js.map} +2 -2
- package/dist/{chunk-wtf06et8.js → chunk-emyyk7dx.js} +55 -55
- package/dist/{chunk-wtf06et8.js.map → chunk-emyyk7dx.js.map} +2 -2
- package/dist/{chunk-19jp6g9d.js → chunk-f0rwz2vh.js} +54 -33
- package/dist/chunk-f0rwz2vh.js.map +11 -0
- package/dist/{chunk-2xns679x.js → chunk-f4w3yp4f.js} +171 -36
- package/dist/chunk-f4w3yp4f.js.map +12 -0
- package/dist/{chunk-979ww6b3.js → chunk-fb3feg1e.js} +29 -29
- package/dist/{chunk-979ww6b3.js.map → chunk-fb3feg1e.js.map} +2 -2
- package/dist/{chunk-4sm0aznx.js → chunk-g00bfdq6.js} +254 -256
- package/dist/{chunk-4sm0aznx.js.map → chunk-g00bfdq6.js.map} +3 -3
- package/dist/{chunk-p03r0h5s.js → chunk-g53f0e4j.js} +76 -202
- package/dist/chunk-g53f0e4j.js.map +15 -0
- package/dist/chunk-g6cke204.js +124 -0
- package/dist/chunk-g6cke204.js.map +10 -0
- package/dist/{chunk-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-xajtptbw.js → chunk-hpr1r6av.js} +1367 -418
- 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-w9tg6yyb.js → chunk-jjy0fhrn.js} +36 -36
- package/dist/{chunk-w9tg6yyb.js.map → chunk-jjy0fhrn.js.map} +2 -2
- package/dist/{chunk-wdage1eb.js → chunk-jmfet9r4.js} +6 -6
- package/dist/{chunk-wdage1eb.js.map → chunk-jmfet9r4.js.map} +2 -2
- package/dist/{chunk-ajnan18g.js → chunk-k3cqkkn2.js} +58 -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-3z1qec12.js → chunk-m3z3x9v0.js} +107 -64
- package/dist/{chunk-3z1qec12.js.map → chunk-m3z3x9v0.js.map} +3 -3
- package/dist/{chunk-sbzzr4kx.js → chunk-mjbk2djy.js} +1061 -1195
- package/dist/{chunk-sbzzr4kx.js.map → chunk-mjbk2djy.js.map} +9 -15
- package/dist/{chunk-4jjp5k14.js → chunk-mmagke4x.js} +6 -6
- package/dist/{chunk-4jjp5k14.js.map → chunk-mmagke4x.js.map} +2 -2
- package/dist/{chunk-359jm1jw.js → chunk-mrp7k0pw.js} +20 -20
- package/dist/{chunk-359jm1jw.js.map → chunk-mrp7k0pw.js.map} +2 -2
- package/dist/{chunk-h0k55pc7.js → chunk-ms2tmn1k.js} +139 -139
- package/dist/{chunk-h0k55pc7.js.map → chunk-ms2tmn1k.js.map} +2 -2
- package/dist/{chunk-rv2hkwwa.js → chunk-ppytyr6w.js} +156 -179
- package/dist/{chunk-rv2hkwwa.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-nn0tekr1.js → chunk-pr2h4bv4.js} +33 -33
- package/dist/{chunk-nn0tekr1.js.map → chunk-pr2h4bv4.js.map} +2 -2
- package/dist/{chunk-xwnf87e1.js → chunk-q5gz3g2j.js} +64 -64
- package/dist/{chunk-xwnf87e1.js.map → chunk-q5gz3g2j.js.map} +2 -2
- package/dist/{chunk-5ntny1qx.js → chunk-qf954wje.js} +6 -6
- package/dist/{chunk-5ntny1qx.js.map → chunk-qf954wje.js.map} +2 -2
- package/dist/{chunk-mth82m8t.js → chunk-qhcpj9wc.js} +77 -77
- package/dist/{chunk-mth82m8t.js.map → chunk-qhcpj9wc.js.map} +2 -2
- 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-3xep5cjx.js → chunk-r4tfx1sf.js} +104 -86
- 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-r8jrnexe.js → chunk-v4jbb3rs.js} +4 -4
- package/dist/{chunk-r8jrnexe.js.map → chunk-v4jbb3rs.js.map} +2 -2
- package/dist/{chunk-v1xppd0y.js → chunk-vf691g1r.js} +60 -60
- package/dist/{chunk-v1xppd0y.js.map → chunk-vf691g1r.js.map} +2 -2
- package/dist/{chunk-w1tvjszy.js → chunk-vsj3mdfj.js} +8 -8
- package/dist/{chunk-w1tvjszy.js.map → chunk-vsj3mdfj.js.map} +2 -2
- package/dist/{chunk-9dzba0f2.js → chunk-wjasrj67.js} +8 -8
- package/dist/{chunk-9dzba0f2.js.map → chunk-wjasrj67.js.map} +2 -2
- package/dist/{chunk-1evzqhks.js → chunk-wr8qp979.js} +6 -6
- package/dist/{chunk-1evzqhks.js.map → chunk-wr8qp979.js.map} +2 -2
- package/dist/{chunk-n6jxh8sw.js → chunk-wy0qdqfm.js} +18 -18
- package/dist/{chunk-n6jxh8sw.js.map → chunk-wy0qdqfm.js.map} +2 -2
- package/dist/{chunk-8tsf6dmc.js → chunk-x57ycxq0.js} +204 -204
- package/dist/{chunk-8tsf6dmc.js.map → chunk-x57ycxq0.js.map} +2 -2
- package/dist/{chunk-z4ccwbkz.js → chunk-x9v4cx1d.js} +1 -1
- package/dist/{chunk-gbejpkex.js → chunk-xfbydgzy.js} +26 -26
- package/dist/{chunk-gbejpkex.js.map → chunk-xfbydgzy.js.map} +2 -2
- package/dist/{chunk-gzasd5b6.js → chunk-xyr8kppc.js} +22 -22
- package/dist/{chunk-gzasd5b6.js.map → chunk-xyr8kppc.js.map} +2 -2
- package/dist/{chunk-h5vqbfmd.js → chunk-ypbtykv6.js} +117 -117
- package/dist/{chunk-h5vqbfmd.js.map → chunk-ypbtykv6.js.map} +3 -3
- package/dist/{chunk-ry24jbr1.js → chunk-yv79ncbv.js} +10 -10
- package/dist/{chunk-ry24jbr1.js.map → chunk-yv79ncbv.js.map} +2 -2
- package/dist/{chunk-yp8ee62z.js → chunk-z30bv4ga.js} +35 -35
- package/dist/{chunk-yp8ee62z.js.map → chunk-z30bv4ga.js.map} +2 -2
- package/dist/{chunk-8ydjhh27.js → chunk-z3y411fq.js} +11 -7
- package/dist/{chunk-8ydjhh27.js.map → chunk-z3y411fq.js.map} +3 -3
- package/dist/{chunk-9t8f5xfx.js → chunk-z5rnrmz1.js} +10 -10
- package/dist/{chunk-9t8f5xfx.js.map → chunk-z5rnrmz1.js.map} +2 -2
- package/dist/{chunk-96swp2wd.js → chunk-z667z3sg.js} +3 -3
- package/dist/{chunk-96swp2wd.js.map → chunk-z667z3sg.js.map} +2 -2
- package/dist/{chunk-4yqmp43v.js → chunk-z8fx5cgb.js} +12 -12
- package/dist/{chunk-4yqmp43v.js.map → chunk-z8fx5cgb.js.map} +2 -2
- package/dist/{chunk-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/write.js +8 -12
- package/dist/datasets/write.js.map +1 -1
- package/dist/edits/index.js +7 -8
- package/dist/edits/index.js.map +1 -1
- package/dist/error-reporting/internal.js +22 -24
- package/dist/error-reporting/internal.js.map +1 -1
- package/dist/errors/internal.d.ts +1 -1
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +22 -24
- package/dist/errors/internal.js.map +1 -1
- package/dist/errors/redaction.d.ts +8 -0
- package/dist/errors/redaction.d.ts.map +1 -0
- package/dist/errors/types.d.ts +4 -0
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/events/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/execution/agent.d.ts +3 -3
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +70 -82
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/durable.d.ts +1 -0
- package/dist/execution/durable.d.ts.map +1 -1
- package/dist/execution/primitive.d.ts +2 -0
- package/dist/execution/primitive.d.ts.map +1 -1
- package/dist/execution/primitive.js +63 -71
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +1 -0
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +65 -75
- package/dist/execution/request.js.map +3 -3
- package/dist/http/index.js +10 -11
- package/dist/http/index.js.map +1 -1
- package/dist/index.d.ts +14 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +455 -477
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +38 -42
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/logging/index.d.ts +3 -4
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/index.js +18 -40
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/internal.d.ts +5 -0
- package/dist/logging/internal.d.ts.map +1 -0
- package/dist/logging/internal.js +43 -0
- package/dist/logging/internal.js.map +9 -0
- package/dist/materialization/index.js +46 -49
- package/dist/materialization/index.js.map +1 -1
- package/dist/materializer/index.js +137 -145
- 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/execution.d.ts.map +1 -1
- package/dist/objects/index.js +75 -87
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/index.js +67 -76
- package/dist/objects/query/index.js.map +1 -1
- package/dist/ontology/index.d.ts +1 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +62 -113
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.d.ts +7 -0
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +65 -116
- package/dist/ontology/internal.js.map +3 -4
- package/dist/pipelines/index.js +57 -66
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +58 -67
- package/dist/projections/internal.js.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/internal.js +4 -5
- package/dist/rules/internal.js.map +1 -1
- package/dist/runtime/create.d.ts +2 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +2 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.js +13 -14
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/sixb.d.ts +2 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/sandboxes/errors.d.ts +4 -0
- package/dist/sandboxes/errors.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +2 -2
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +14 -13
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +35 -7
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/scheduler/index.js +9 -10
- package/dist/scheduler/index.js.map +1 -1
- package/dist/schedules/index.js +31 -33
- package/dist/schedules/index.js.map +1 -1
- package/dist/shares/internal.js +46 -54
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +7 -9
- package/dist/storage/action-runs/failure.js.map +1 -1
- package/dist/storage/action-runs/provider.js +4 -8
- package/dist/storage/action-runs/provider.js.map +1 -1
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +26 -30
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +0 -3
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/attribution.d.ts +4 -0
- package/dist/storage/ai-cost/attribution.d.ts.map +1 -0
- package/dist/storage/ai-cost/groups.d.ts +3 -0
- package/dist/storage/ai-cost/groups.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.d.ts +1 -0
- package/dist/storage/ai-cost/provider.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +30 -143
- package/dist/storage/ai-cost/provider.js.map +3 -4
- package/dist/storage/ai-cost/types.d.ts +15 -0
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +14 -16
- package/dist/storage/ai-limits/enforcement.js.map +1 -1
- package/dist/storage/ai-limits/provider.js +56 -57
- package/dist/storage/ai-limits/provider.js.map +1 -1
- package/dist/storage/auth/in-memory.d.ts +1 -1
- package/dist/storage/auth/in-memory.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +34 -36
- package/dist/storage/connector-connections/provider.js.map +2 -2
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +2 -1
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +14 -11
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/types.d.ts +6 -2
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts +2 -0
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +6 -7
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +221 -256
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +10 -0
- package/dist/storage/internal.d.ts.map +1 -0
- package/dist/storage/internal.js +47 -0
- package/dist/storage/internal.js.map +9 -0
- package/dist/storage/ontology/provider.js +105 -109
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/operation-scope.js +18 -19
- package/dist/storage/operation-scope.js.map +1 -1
- package/dist/storage/pipeline-runs/provider.js +4 -6
- package/dist/storage/pipeline-runs/provider.js.map +1 -1
- package/dist/storage/projection-runs/provider.js +66 -70
- package/dist/storage/projection-runs/provider.js.map +1 -1
- package/dist/storage/share-grants/provider.js +17 -19
- package/dist/storage/share-grants/provider.js.map +1 -1
- package/dist/storage/share-sessions/provider.js +14 -15
- package/dist/storage/share-sessions/provider.js.map +1 -1
- package/dist/storage/sync-runs/provider.js +4 -6
- package/dist/storage/sync-runs/provider.js.map +1 -1
- package/dist/storage/webhook-runs/provider.js +4 -6
- package/dist/storage/webhook-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +13 -21
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +0 -3
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/index.js +55 -65
- package/dist/syncs/index.js.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/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.js +911 -799
- package/dist/testing/index.js.map +9 -9
- 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 -59
- 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/failure.d.ts +2 -0
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.js +135 -147
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/run-dispatch.d.ts +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 +48 -30
- package/src/actions/run-dispatch.ts +2 -6
- package/src/actions/types/context.ts +2 -0
- package/src/actions/validation.ts +2 -1
- package/src/agents/adapters.ts +4 -9
- package/src/agents/{context.ts → context/entries.ts} +4 -4
- package/src/agents/context/index.ts +15 -0
- package/src/agents/context-model.ts +1 -1
- package/src/agents/context-resolution.ts +1 -1
- package/src/agents/index.ts +4 -4
- package/src/agents/message.ts +1 -1
- package/src/agents/model-loop.ts +8 -0
- package/src/agents/request.ts +11 -26
- package/src/agents/streams/index.ts +18 -0
- package/src/agents/streams/internal.ts +19 -0
- package/src/agents/{streams.ts → streams/protocol.ts} +5 -5
- package/src/agents/types.ts +1 -1
- package/src/agents/validation.ts +3 -7
- package/src/auth/index.ts +0 -1
- package/src/bootstrap/discovery.ts +81 -24
- package/src/bootstrap/index.ts +8 -1
- package/src/errors/internal.ts +90 -10
- package/src/errors/redaction.ts +98 -0
- package/src/errors/types.ts +4 -0
- package/src/execution/agent.ts +5 -3
- package/src/execution/durable.ts +11 -1
- package/src/execution/primitive.ts +5 -1
- package/src/execution/request.ts +3 -0
- package/src/index.ts +20 -18
- 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/execution.ts +1 -1
- package/src/ontology/index.ts +1 -2
- package/src/ontology/internal.ts +35 -0
- package/src/projections/run-dispatch.ts +1 -0
- package/src/query.ts +0 -1
- package/src/queues/index.ts +4 -2
- package/src/queues/types.ts +6 -25
- package/src/runtime/create.ts +2 -1
- package/src/runtime/host.ts +2 -1
- package/src/runtime/sixb.ts +4 -0
- package/src/sandboxes/errors.ts +5 -0
- package/src/sandboxes/index.ts +3 -0
- package/src/sandboxes/sandbox.ts +35 -7
- package/src/storage/agents/in-memory.ts +0 -3
- package/src/storage/agents/types.ts +0 -3
- package/src/storage/ai-cost/analytics.ts +1 -1
- package/src/storage/ai-cost/attribution.ts +15 -0
- package/src/storage/ai-cost/groups.ts +5 -1
- package/src/storage/ai-cost/provider.ts +1 -0
- package/src/storage/ai-cost/types.ts +7 -0
- package/src/storage/auth/in-memory.ts +1 -1
- package/src/storage/executions/in-memory.ts +4 -9
- package/src/storage/executions/provider.ts +4 -0
- package/src/storage/executions/types.ts +6 -2
- package/src/storage/executions/validation.ts +32 -0
- package/src/storage/in-memory/index.ts +16 -1
- package/src/storage/index.ts +3 -29
- package/src/storage/internal.ts +20 -0
- package/src/storage/workflow-runs/in-memory.ts +0 -2
- package/src/storage/workflow-runs/types.ts +0 -3
- 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/execution-storage-contract.ts +59 -1
- package/src/testing/execution.ts +6 -0
- package/src/testing/workflow-execution.ts +4 -0
- package/src/workflows/failure.ts +62 -1
- package/src/workflows/request.ts +0 -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-19jp6g9d.js.map +0 -11
- package/dist/chunk-2xns679x.js.map +0 -11
- package/dist/chunk-3xep5cjx.js.map +0 -15
- package/dist/chunk-407j3msh.js +0 -60
- package/dist/chunk-4qfkag59.js +0 -1568
- package/dist/chunk-4qfkag59.js.map +0 -20
- package/dist/chunk-5e3pq99w.js.map +0 -11
- package/dist/chunk-7y0f6rf1.js.map +0 -10
- package/dist/chunk-ajnan18g.js.map +0 -12
- package/dist/chunk-c15dr03f.js +0 -43
- package/dist/chunk-d8qkxt2v.js.map +0 -10
- package/dist/chunk-jq43kdvk.js +0 -50
- package/dist/chunk-k522z7v6.js.map +0 -10
- package/dist/chunk-p03r0h5s.js.map +0 -16
- package/dist/chunk-p1rzczbt.js +0 -218
- package/dist/chunk-rafagrwr.js.map +0 -11
- package/dist/chunk-xajtptbw.js.map +0 -40
- package/dist/chunk-y64skrwp.js +0 -19
- package/dist/chunk-zcnhxkvd.js +0 -7
- package/dist/logging/types.js +0 -27
- package/dist/logging/types.js.map +0 -9
- /package/dist/{chunk-zqqz8052.js → chunk-7n30ybym.js} +0 -0
- /package/dist/{chunk-zqqz8052.js.map → chunk-7n30ybym.js.map} +0 -0
- /package/dist/{chunk-4a849fr1.js.map → chunk-9tc8dxmn.js.map} +0 -0
- /package/dist/{chunk-j1sbhm7p.js → chunk-ey1nk510.js} +0 -0
- /package/dist/{chunk-j1sbhm7p.js.map → chunk-ey1nk510.js.map} +0 -0
- /package/dist/{chunk-z4ccwbkz.js.map → chunk-x9v4cx1d.js.map} +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/agents/context-model.ts", "../src/agents/tool-result.ts", "../src/agents/adapters.ts", "../src/agents/api-gateway.ts", "../src/agents/validation.ts", "../src/agents/tool-definition.ts", "../src/agents/builders.ts", "../src/agents/context-compaction.ts", "../src/agents/reference.ts", "../src/agents/thread-context-projection.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { stableJsonStringify } from \"../json\"\nimport type { AgentContextPart } from \"./context/entries\"\n\n/** Project persisted context into one deterministic, escaped data block for the model. */\nexport function serializeAgentContextForModel(\n parts: readonly AgentContextPart[]\n): string | undefined {\n if (parts.length === 0) return undefined\n\n const lines = [\"<sixb_user_context>\"]\n for (const part of parts) {\n if (part.context.kind === \"object\") {\n lines.push(\n \" <object_context>\",\n ` <object_type_id>${escapeXml(part.context.ref.objectTypeId)}</object_type_id>`,\n ` <primary_id>${escapeXml(part.context.ref.primaryId)}</primary_id>`,\n \" </object_context>\"\n )\n continue\n }\n\n lines.push(\n \" <app_state_context>\",\n ` <id>${escapeXml(part.context.id)}</id>`,\n ` <description>${escapeXml(part.context.description)}</description>`,\n ` <value format=\"json\">${escapeXml(stableJsonStringify(part.context.value))}</value>`,\n \" </app_state_context>\"\n )\n }\n lines.push(\"</sixb_user_context>\")\n return lines.join(\"\\n\")\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replaceAll(\"&\", \"&\")\n .replaceAll(\"<\", \"<\")\n .replaceAll(\">\", \">\")\n .replaceAll('\"', \""\")\n .replaceAll(\"'\", \"'\")\n}\n",
|
|
6
|
+
"import { isFileRef } from \"../blob-storage/validation\"\nimport { isPlainRecord } from \"../json\"\nimport type { AgentToolResult } from \"./types\"\n\n/** Narrow a durable JSON tool output to Sixb's file-aware result envelope. */\nexport function isAgentToolResult(value: unknown): value is AgentToolResult {\n return (\n isPlainRecord(value) &&\n value.kind === \"agentToolResult\" &&\n getInvalidAgentToolResultReason(value) === undefined\n )\n}\n\n/** Return a precise path when a tagged result does not satisfy the public rich-result contract. */\nexport function getInvalidAgentToolResultReason(value: unknown): string | undefined {\n if (!isPlainRecord(value) || value.kind !== \"agentToolResult\") {\n return undefined\n }\n\n if (!Array.isArray(value.content)) {\n return \"result.content must be an array\"\n }\n const unsupportedKey = Object.keys(value).find((key) => key !== \"kind\" && key !== \"content\")\n if (unsupportedKey) {\n return `result.${unsupportedKey} is not supported`\n }\n if (value.content.length === 0) {\n return \"result.content must contain at least one content part\"\n }\n\n for (let index = 0; index < value.content.length; index += 1) {\n const part = value.content[index]\n const path = `result.content[${index}]`\n if (!isPlainRecord(part)) {\n return `${path} must be a text or file content part`\n }\n if (part.type === \"text\") {\n if (typeof part.text !== \"string\") {\n return `${path}.text must be a string`\n }\n const unsupportedKey = Object.keys(part).find((key) => key !== \"type\" && key !== \"text\")\n if (unsupportedKey) {\n return `${path}.${unsupportedKey} is not supported`\n }\n continue\n }\n if (part.type === \"file\") {\n if (!isFileRef(part.fileRef)) {\n return `${path}.fileRef must be a valid FileRef`\n }\n const unsupportedKey = Object.keys(part).find((key) => key !== \"type\" && key !== \"fileRef\")\n if (unsupportedKey) {\n return `${path}.${unsupportedKey} is not supported`\n }\n continue\n }\n return `${path}.type must be 'text' or 'file'`\n }\n\n return undefined\n}\n",
|
|
7
|
+
"import type { JsonValue } from \"../json\"\nimport type {\n ModelAssistantPart,\n ModelFilePart,\n ModelMessage,\n ModelTextPart,\n ModelToolCallPart,\n ModelToolOutput,\n ModelToolResultPart,\n ProviderData,\n} from \"../models\"\nimport { serializeAgentContextForModel } from \"./context-model\"\nimport type {\n AgentFilePart,\n AgentMessage,\n AgentMessagePart,\n AgentTextPart,\n AgentToolCallPart,\n} from \"./message\"\nimport { isAgentToolResult } from \"./tool-result\"\nimport type { AgentToolFileContent } from \"./types\"\n\nexport interface AgentFileDataResolverInput<TMessage extends AgentMessage = AgentMessage> {\n readonly message: TMessage\n readonly part: AgentFilePart\n readonly partIndex: number\n}\n\nexport interface AgentFileDataProjection {\n readonly data: URL\n readonly mediaType?: string\n readonly filename?: string\n}\n\nexport interface AgentToolResultFileResolverInput<TMessage extends AgentMessage = AgentMessage> {\n readonly message: TMessage\n readonly part: AgentToolCallPart\n readonly partIndex: number\n readonly contentPart: AgentToolFileContent\n readonly contentIndex: number\n}\n\nexport interface ToModelMessagesOptions<TMessage extends AgentMessage = AgentMessage> {\n /**\n * Convert a stored file reference into model-readable data. When omitted, file parts are skipped\n * rather than leaking blob ids or passing an unsupported Sixb-only shape to model providers.\n */\n readonly fileData?:\n | ((input: AgentFileDataResolverInput<TMessage>) => URL | AgentFileDataProjection | undefined)\n | undefined\n /**\n * Convert a user file reference into model-readable text context. This is appended before any\n * file data part so metadata, truncation notes, and sandbox/API access hints stay visible even for\n * models that cannot consume inline files.\n */\n readonly fileText?: (input: AgentFileDataResolverInput<TMessage>) => string | undefined\n /** Add current metadata, sandbox paths, and projection notes for a tool-result file. */\n readonly toolResultFileText?: (\n input: AgentToolResultFileResolverInput<TMessage>\n ) => string | undefined\n}\n\n/**\n * Project durable messages into Sixb model messages. Assistant parts are grouped\n * into blocks at each `step-start`; each nonempty block yields one `assistant` message plus, for any\n * non-provider-executed tool calls, one `tool` message. Provider-executed tool results stay inline\n * in the assistant message. Without a tool registry, a string output maps to `text` and anything\n * else to `json`; this is the documented fidelity scope (a tool's custom `toModelOutput` is not\n * reproduced). Assistant file attachments are not projected as assistant-authored text.\n */\nexport function toModelMessages<TMessage extends AgentMessage>(\n messages: readonly TMessage[],\n options: ToModelMessagesOptions<TMessage> = {}\n): ModelMessage[] {\n const result: ModelMessage[] = []\n for (const message of messages) {\n switch (message.role) {\n case \"system\":\n result.push(systemModelMessage(message))\n break\n case \"user\":\n result.push(userModelMessage(message, options))\n break\n case \"assistant\":\n appendAssistantModelMessages(result, message, options)\n break\n }\n }\n return result\n}\n\nfunction systemModelMessage(message: AgentMessage): ModelMessage {\n const textParts = message.parts.filter((part) => part.type === \"text\")\n const providerData = mergeProviderMetadata(textParts)\n return {\n role: \"system\",\n content: textParts.map((part) => part.text).join(\"\"),\n ...(providerData === undefined ? {} : { providerData }),\n }\n}\n\nfunction mergeProviderMetadata(parts: readonly AgentTextPart[]): ProviderData | undefined {\n let merged: Record<string, JsonValue> | undefined\n for (const part of parts) {\n const meta = part.providerMetadata\n if (meta !== undefined && typeof meta === \"object\" && meta !== null && !Array.isArray(meta)) {\n merged = { ...(merged ?? {}), ...meta }\n }\n }\n return merged\n}\n\nfunction userModelMessage<TMessage extends AgentMessage>(\n message: TMessage,\n options: ToModelMessagesOptions<TMessage>\n): ModelMessage {\n const content: (ModelTextPart | ModelFilePart)[] = []\n const serializedContext = serializeAgentContextForModel(\n message.parts.filter((part) => part.type === \"context\")\n )\n if (serializedContext) {\n content.push({ type: \"text\", text: `${serializedContext}\\n\\n` })\n }\n message.parts.forEach((part, partIndex) => {\n if (part.type === \"text\") {\n content.push({\n type: \"text\",\n text: part.text,\n ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),\n })\n return\n }\n if (part.type === \"file\") {\n const fileContext = options.fileText?.({ message, part, partIndex })\n if (fileContext) {\n content.push({ type: \"text\", text: fileContext })\n }\n const resolved = options.fileData?.({ message, part, partIndex })\n if (resolved) {\n const projection = resolved instanceof URL ? { data: resolved } : resolved\n content.push({\n type: \"file\",\n data: projection.data,\n mediaType: projection.mediaType ?? part.fileRef.mediaType ?? \"application/octet-stream\",\n ...(projection.filename !== undefined\n ? { filename: projection.filename }\n : part.fileRef.fileName === undefined\n ? {}\n : { filename: part.fileRef.fileName }),\n ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),\n })\n }\n }\n })\n return { role: \"user\", content }\n}\n\nfunction appendAssistantModelMessages<TMessage extends AgentMessage>(\n result: ModelMessage[],\n message: TMessage,\n options: ToModelMessagesOptions<TMessage>\n): void {\n let block: Array<{ readonly part: AgentMessagePart; readonly partIndex: number }> = []\n const flush = (): void => {\n if (block.length === 0) {\n return\n }\n const current = block\n block = []\n\n const content: ModelAssistantPart[] = []\n const toolResults: ModelToolResultPart[] = []\n for (const { part, partIndex } of current) {\n if (part.type === \"text\" || part.type === \"reasoning\") {\n content.push({\n type: part.type,\n text: part.text,\n ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),\n })\n } else if (part.type === \"tool-call\") {\n content.push(toolCallModelPart(part))\n if (part.providerExecuted === true) {\n content.push(toolResultModelPart(message, part, partIndex, \"json\", options))\n } else {\n toolResults.push(toolResultModelPart(message, part, partIndex, \"text\", options))\n }\n } else if (part.type === \"provider-state\") {\n content.push({\n type: \"provider-state\",\n providerId: part.providerId,\n data: part.data,\n })\n }\n }\n if (content.length > 0) result.push({ role: \"assistant\", content })\n\n if (toolResults.length > 0) {\n result.push({ role: \"tool\", content: toolResults })\n }\n }\n\n message.parts.forEach((part, partIndex) => {\n if (part.type === \"step-start\") {\n flush()\n } else {\n block.push({ part, partIndex })\n }\n })\n flush()\n}\n\nfunction toolCallModelPart(part: AgentToolCallPart): ModelToolCallPart {\n return {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted === undefined ? {} : { providerExecuted: part.providerExecuted }),\n ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),\n }\n}\n\nfunction toolResultModelPart<TMessage extends AgentMessage>(\n message: TMessage,\n part: AgentToolCallPart,\n partIndex: number,\n errorMode: \"text\" | \"json\",\n options: ToModelMessagesOptions<TMessage>\n): ModelToolResultPart {\n // Stored providerMetadata belongs to the call, not this synthesized result. Replaying it here\n // can replace the result with the provider's original tool-call block.\n return {\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: toolResultOutput(message, part, partIndex, errorMode, options),\n }\n}\n\nfunction toolResultOutput<TMessage extends AgentMessage>(\n message: TMessage,\n part: AgentToolCallPart,\n partIndex: number,\n errorMode: \"text\" | \"json\",\n options: ToModelMessagesOptions<TMessage>\n): ModelToolOutput {\n if (part.state === \"output-error\") {\n return errorMode === \"json\"\n ? { type: \"error-json\", value: part.errorText }\n : { type: \"error-text\", value: part.errorText }\n }\n if (isAgentToolResult(part.output)) {\n const value: string[] = []\n part.output.content.forEach((contentPart, contentIndex) => {\n if (contentPart.type === \"text\") {\n value.push(contentPart.text)\n return\n }\n\n const fileContext = options.toolResultFileText?.({\n message,\n part,\n partIndex,\n contentPart,\n contentIndex,\n })\n value.push(fileContext ?? toolResultFileFallbackText(contentPart))\n })\n return { type: \"text\", value: value.join(\"\\n\") }\n }\n return typeof part.output === \"string\"\n ? { type: \"text\", value: part.output }\n : { type: \"json\", value: part.output }\n}\n\nfunction toolResultFileFallbackText(part: AgentToolFileContent): string {\n const attributes = [\n part.fileRef.fileName ? `name=${JSON.stringify(part.fileRef.fileName)}` : undefined,\n part.fileRef.mediaType ? `mediaType=${JSON.stringify(part.fileRef.mediaType)}` : undefined,\n `sizeBytes=${part.fileRef.sizeBytes}`,\n ].filter((value): value is string => value !== undefined)\n return `[Tool-created file: ${attributes.join(\" \")}. Contents are not available inline.]`\n}\n",
|
|
8
|
+
"import { createHmac, timingSafeEqual } from \"node:crypto\"\nimport { SIXB_API_ROUTES } from \"../http/api-routes\"\nimport { matchesPathPattern, normalizeRoutePath } from \"../http/route-pattern\"\n\nexport const AGENT_API_GATEWAY_PREFIX = \"/__sixb/agent-api\"\n\nconst AGENT_API_GATEWAY_CAPABILITY_PREFIX = \"sixb_agw_v1_\"\n\nexport interface AgentApiGatewayCapabilityInput {\n readonly projectId: string\n readonly runId: string\n readonly executionToken: string\n}\n\nexport interface AgentApiRoute {\n readonly method: string\n readonly path: string\n}\n\n/**\n * The routes the agent API gateway may proxy — the `agentApi` projection of the canonical\n * {@link SIXB_API_ROUTES} table, so this list can never drift from (nor exceed) the bearer boundary.\n */\nexport const AGENT_API_ROUTES: readonly AgentApiRoute[] = SIXB_API_ROUTES.filter(\n (route) => route.agentApi\n).map((route) => ({ method: route.method, path: route.path }))\n\nexport function createAgentApiGatewayCapability(input: AgentApiGatewayCapabilityInput): string {\n return `${AGENT_API_GATEWAY_CAPABILITY_PREFIX}${capabilityDigest(input)}`\n}\n\nexport function isValidAgentApiGatewayCapability(\n input: AgentApiGatewayCapabilityInput & { readonly capability: string }\n): boolean {\n const expected = createAgentApiGatewayCapability(input)\n const actual = input.capability\n const expectedBuffer = Buffer.from(expected)\n const actualBuffer = Buffer.from(actual)\n return (\n expectedBuffer.byteLength === actualBuffer.byteLength &&\n timingSafeEqual(expectedBuffer, actualBuffer)\n )\n}\n\nexport function isAllowedAgentApiRequest(method: string, pathname: string): boolean {\n const normalizedMethod = method.toUpperCase()\n const normalizedPath = normalizeRoutePath(pathname)\n return AGENT_API_ROUTES.some(\n (route) => route.method === normalizedMethod && matchesPathPattern(normalizedPath, route.path)\n )\n}\n\nfunction capabilityDigest(input: AgentApiGatewayCapabilityInput): string {\n return createHmac(\"sha256\", input.executionToken)\n .update(`agent-api-gateway:${input.projectId}:${input.runId}`)\n .digest(\"base64url\")\n}\n",
|
|
9
|
+
"import { getInvalidJsonValueReason, isPlainRecord, type JsonValue } from \"../json\"\nimport { type ObjectSchema, OntologyValidationError, type ValueType } from \"../ontology\"\nimport { normalizeSchemaValue } from \"../ontology/validation/normalize\"\nimport { validateSchemaValue } from \"../ontology/validation/schema\"\nimport { AgentDefinitionError } from \"./errors\"\nimport type { AgentToolDefinition, AgentToolInputSchema } from \"./types\"\n\nconst AGENT_TOOL_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_-]{0,63}$/\nconst AGENT_TOOL_PRIMITIVE_SCHEMAS = new Set([\n \"string\",\n \"integer\",\n \"double\",\n \"decimal\",\n \"boolean\",\n \"date\",\n \"timestamp\",\n \"uuid\",\n \"fileRef\",\n])\n\nexport const AGENT_RESERVED_TOOL_NAMES = [\n \"bash\",\n \"read\",\n \"view_file\",\n \"spawn_agent\",\n \"wait_agent\",\n] as const\n\nexport function isAgentToolDefinition(value: unknown): value is AgentToolDefinition {\n return (\n isRecord(value) &&\n value.kind === \"agentTool\" &&\n typeof value.name === \"string\" &&\n typeof value.description === \"string\" &&\n isPlainRecord(value.input) &&\n typeof value.handler === \"function\"\n )\n}\n\nexport function assertValidAgentToolName(name: unknown): asserts name is string {\n if (typeof name !== \"string\" || !AGENT_TOOL_NAME_PATTERN.test(name)) {\n throw new AgentDefinitionError(\n \"[Sixb] Agent tool name must be 1-64 characters, start with a letter or underscore, and contain only letters, numbers, underscores, or hyphens.\"\n )\n }\n if ((AGENT_RESERVED_TOOL_NAMES as readonly string[]).includes(name)) {\n throw new AgentDefinitionError(`[Sixb] Agent tool name '${name}' is reserved by the framework.`)\n }\n}\n\nexport function assertValidAgentToolDescription(name: string, description: unknown): void {\n if (typeof description !== \"string\" || !description.trim()) {\n throw new AgentDefinitionError(`[Sixb] Agent tool '${name}' description must not be empty.`)\n }\n}\n\nexport function assertValidAgentToolInput(name: string, input: unknown): void {\n if (!isPlainRecord(input)) {\n throw new AgentDefinitionError(`[Sixb] Agent tool '${name}' input must be a schema object.`)\n }\n\n for (const [field, schema] of Object.entries(input)) {\n if (!field.trim()) {\n throw new AgentDefinitionError(\n `[Sixb] Agent tool '${name}' input field names must not be empty.`\n )\n }\n assertValidAgentToolSchema(name, schema, `input.${field}`, new Set())\n }\n}\n\nexport function validateAndSnapshotAgentToolInput<TInput extends AgentToolInputSchema>(\n toolName: string,\n input: TInput\n): TInput {\n assertValidAgentToolInput(toolName, input)\n try {\n return deepFreeze(structuredClone(input))\n } catch {\n throw new AgentDefinitionError(\n `[Sixb] Agent tool '${toolName}' input must be safely snapshot-compatible.`\n )\n }\n}\n\n/** Validate model input against a tool schema, normalize it to JSON, and lock the snapshot. */\nexport function validateAndNormalizeAgentToolInput(\n toolName: string,\n shape: AgentToolInputSchema,\n value: unknown,\n valueTypesById: ReadonlyMap<string, ValueType>\n): Record<string, JsonValue> {\n const label = `Agent tool '${toolName}' input`\n if (!isPlainRecord(value)) {\n throw new OntologyValidationError(`[Sixb] ${label} must be a JSON object.`)\n }\n\n const reason = getInvalidJsonValueReason(value, label)\n if (reason) {\n throw new OntologyValidationError(`[Sixb] ${label} must be JSON-compatible; ${reason}.`)\n }\n\n const schema: ObjectSchema = {\n type: \"object\",\n properties: Object.fromEntries(\n Object.entries(shape).map(([field, fieldSchema]) => [\n field,\n { schema: fieldSchema, required: true },\n ])\n ),\n }\n validateSchemaValue(schema, value, label, valueTypesById)\n return deepFreeze(\n normalizeSchemaValue(schema, value, label, valueTypesById) as Record<string, JsonValue>\n )\n}\n\nfunction assertValidAgentToolSchema(\n toolName: string,\n schema: unknown,\n path: string,\n visiting: Set<object>\n): void {\n if (typeof schema === \"string\") {\n if (AGENT_TOOL_PRIMITIVE_SCHEMAS.has(schema)) {\n return\n }\n throw invalidAgentToolSchema(toolName, path)\n }\n if (!isPlainRecord(schema) || typeof schema.type !== \"string\" || visiting.has(schema)) {\n throw invalidAgentToolSchema(toolName, path)\n }\n\n visiting.add(schema)\n switch (schema.type) {\n case \"enum\": {\n const values = schema.values\n const validValues = isValidAgentToolEnumValues(values, schema.valueType)\n if (!validValues || new Set(values).size !== values.length) {\n throw invalidAgentToolSchema(toolName, path)\n }\n break\n }\n case \"array\":\n assertValidAgentToolSchema(toolName, schema.items, `${path}.items`, visiting)\n break\n case \"map\":\n if (schema.keySchema !== \"string\") {\n throw invalidAgentToolSchema(toolName, path)\n }\n assertValidAgentToolSchema(toolName, schema.valueSchema, `${path}.valueSchema`, visiting)\n break\n case \"object\": {\n if (!isPlainRecord(schema.properties)) {\n throw invalidAgentToolSchema(toolName, path)\n }\n for (const [fieldId, field] of Object.entries(schema.properties)) {\n if (!fieldId.trim() || !isPlainRecord(field) || !(\"schema\" in field)) {\n throw invalidAgentToolSchema(toolName, `${path}.properties.${fieldId}`)\n }\n if (\n (field.required !== undefined && typeof field.required !== \"boolean\") ||\n (field.nullable !== undefined && typeof field.nullable !== \"boolean\") ||\n (field.description !== undefined &&\n (typeof field.description !== \"string\" || !field.description.trim()))\n ) {\n throw invalidAgentToolSchema(toolName, `${path}.properties.${fieldId}`)\n }\n assertValidAgentToolSchema(\n toolName,\n field.schema,\n `${path}.properties.${fieldId}.schema`,\n visiting\n )\n }\n break\n }\n case \"valueTypeRef\":\n if (typeof schema.valueTypeId !== \"string\" || !schema.valueTypeId.trim()) {\n throw invalidAgentToolSchema(toolName, path)\n }\n if (schema._resolved !== undefined) {\n assertValidAgentToolSchema(toolName, schema._resolved, `${path}._resolved`, visiting)\n }\n break\n default:\n throw invalidAgentToolSchema(toolName, path)\n }\n visiting.delete(schema)\n}\n\nfunction invalidAgentToolSchema(toolName: string, path: string): AgentDefinitionError {\n return new AgentDefinitionError(\n `[Sixb] Agent tool '${toolName}' ${path} must be a valid Sixb schema.`\n )\n}\n\nexport function assertValidProjectAgentToolDefinitions(\n tools: readonly AgentToolDefinition[]\n): void {\n const seen = new Set<string>()\n for (let index = 0; index < tools.length; index += 1) {\n const tool = tools[index]\n if (!Object.hasOwn(tools, index) || !isAgentToolDefinition(tool)) {\n throw new AgentDefinitionError(\n \"[Sixb] Project tools must contain only agent tool definitions.\"\n )\n }\n\n assertValidAgentToolName(tool.name)\n assertValidAgentToolDescription(tool.name, tool.description)\n assertValidAgentToolInput(tool.name, tool.input)\n if (seen.has(tool.name)) {\n throw new AgentDefinitionError(\n `[Sixb] Project tools contain duplicate tool name '${tool.name}'.`\n )\n }\n seen.add(tool.name)\n }\n}\n\nfunction isValidAgentToolEnumValues(values: unknown, valueType: unknown): values is unknown[] {\n if (!Array.isArray(values) || values.length === 0) {\n return false\n }\n\n for (let index = 0; index < values.length; index += 1) {\n if (!Object.hasOwn(values, index)) {\n return false\n }\n const value = values[index]\n if (\n valueType === \"string\"\n ? typeof value !== \"string\"\n : valueType !== \"integer\" || typeof value !== \"number\" || !Number.isInteger(value)\n ) {\n return false\n }\n }\n return true\n}\n\nfunction deepFreeze<T>(value: T, seen: Set<object> = new Set()): T {\n if (value === null || typeof value !== \"object\" || seen.has(value)) {\n return value\n }\n\n seen.add(value)\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key)\n if (descriptor && \"value\" in descriptor) {\n deepFreeze(descriptor.value, seen)\n }\n }\n return Object.freeze(value)\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n",
|
|
10
|
+
"import {\n cloneJsonValue,\n getInvalidJsonValueReason,\n type JsonValue,\n type ReadonlyJsonValue,\n} from \"../json\"\nimport { AgentDefinitionError, AgentToolResultValidationError } from \"./errors\"\nimport { getInvalidAgentToolResultReason } from \"./tool-result\"\nimport type {\n AgentToolDefinition,\n AgentToolHandler,\n AgentToolInputSchema,\n InferAgentToolInputSchema,\n} from \"./types\"\nimport {\n assertValidAgentToolDescription,\n assertValidAgentToolName,\n assertValidProjectAgentToolDefinitions,\n validateAndSnapshotAgentToolInput,\n} from \"./validation\"\n\nconst EMPTY_AGENT_TOOLS: readonly AgentToolDefinition[] = Object.freeze([])\nconst normalizedAgentTools = new WeakSet<AgentToolDefinition>()\n\nexport function createAgentToolDefinition<\n const TName extends string,\n const TInput extends AgentToolInputSchema,\n>(definition: {\n readonly name: TName\n readonly description: string\n readonly input: TInput\n readonly handler: AgentToolHandler<InferAgentToolInputSchema<TInput>>\n}): AgentToolDefinition<TName, TInput> {\n assertValidAgentToolName(definition.name)\n assertValidAgentToolDescription(definition.name, definition.description)\n if (typeof definition.handler !== \"function\") {\n throw new AgentDefinitionError(\n `[Sixb] Agent tool '${definition.name}' handler must be a function.`\n )\n }\n\n const input = validateAndSnapshotAgentToolInput(definition.name, definition.input)\n const tool: AgentToolDefinition<TName, TInput> = {\n kind: \"agentTool\",\n name: definition.name,\n description: definition.description,\n input,\n handler: async (context) => {\n const result = await definition.handler(context)\n let snapshot: JsonValue\n try {\n // AgentToolResult is intentionally expressed with FileRef instead of a duplicate JSON-only\n // shape. Runtime validation below proves that the complete envelope crosses the same JSON\n // boundary as legacy results.\n snapshot = cloneJsonValue(result as ReadonlyJsonValue, \"result\")\n } catch (cause) {\n throw new AgentToolResultValidationError(\n definition.name,\n getInvalidJsonValueReason(result, \"result\") ?? \"result could not be cloned safely\",\n { cause }\n )\n }\n const richResultReason = getInvalidAgentToolResultReason(snapshot)\n if (richResultReason) {\n throw new AgentToolResultValidationError(definition.name, richResultReason)\n }\n return snapshot\n },\n }\n\n normalizedAgentTools.add(tool)\n return Object.freeze(tool)\n}\n\nexport function toolsFromProjectConfig(\n tools: readonly AgentToolDefinition[] | undefined\n): readonly AgentToolDefinition[] {\n if (tools === undefined) {\n return EMPTY_AGENT_TOOLS\n }\n if (!Array.isArray(tools)) {\n throw new AgentDefinitionError(\n \"[Sixb] Project tools must be an array of agent tool definitions.\"\n )\n }\n\n assertValidProjectAgentToolDefinitions(tools)\n return normalizeAgentToolDefinitions(tools)\n}\n\nfunction normalizeAgentToolDefinitions(\n tools: readonly AgentToolDefinition[]\n): readonly AgentToolDefinition[] {\n const normalized: AgentToolDefinition[] = []\n for (const tool of tools) {\n normalized.push(normalizeAgentToolDefinition(tool))\n }\n return Object.freeze(normalized)\n}\n\nfunction normalizeAgentToolDefinition(tool: AgentToolDefinition): AgentToolDefinition {\n if (normalizedAgentTools.has(tool)) {\n return tool\n }\n\n return createAgentToolDefinition({\n name: tool.name,\n description: tool.description,\n input: tool.input,\n handler: (context) => tool.handler(context),\n })\n}\n",
|
|
11
|
+
"import { createAgentToolDefinition } from \"./tool-definition\"\nimport type {\n AgentToolDefinition,\n AgentToolDescriptionBuilder,\n AgentToolHandler,\n AgentToolInputBuilder,\n AgentToolInputSchema,\n AgentToolRunBuilder,\n InferAgentToolInputSchema,\n} from \"./types\"\nimport {\n assertValidAgentToolDescription,\n assertValidAgentToolInput,\n assertValidAgentToolName,\n} from \"./validation\"\n\n/**\n * Define a reusable tool registered through `createSixb({ tools })`.\n *\n * The returned definition is inert. The agent worker supplies its run-scoped\n * context and executes the handler only when a run calls the tool.\n */\nexport function defineAgentTool<const TName extends string>(\n name: TName\n): AgentToolDescriptionBuilder<TName> {\n assertValidAgentToolName(name)\n\n return {\n description(description: string): AgentToolInputBuilder<TName> {\n assertValidAgentToolDescription(name, description)\n\n return {\n input<const TInput extends AgentToolInputSchema>(\n input: TInput\n ): AgentToolRunBuilder<TName, TInput> {\n assertValidAgentToolInput(name, input)\n\n return {\n run(\n handler: AgentToolHandler<InferAgentToolInputSchema<TInput>>\n ): AgentToolDefinition<TName, TInput> {\n return createAgentToolDefinition({ name, description, input, handler })\n },\n }\n },\n }\n },\n }\n}\n",
|
|
12
|
+
"import { stableJsonStringify } from \"../json\"\nimport type { AgentMessageRecord } from \"../storage/agents/types\"\nimport type { AgentMessage, AgentMessagePart } from \"./message\"\n\nexport const AGENT_CONTEXT_ESTIMATOR_VERSION = 1 as const\n\nconst CHARS_PER_TOKEN = 4\nconst REQUEST_OVERHEAD_TOKENS = 8\nconst MESSAGE_OVERHEAD_TOKENS = 8\nconst TOOL_OVERHEAD_TOKENS = 16\nconst STEP_OVERHEAD_TOKENS = 2\nconst IMAGE_ALLOWANCE_TOKENS = 1_200\nconst FILE_TEXT_INLINE_MAX_BYTES = 50 * 1024\nconst FILE_TEXT_INLINE_TOTAL_MAX_BYTES = 200 * 1024\nconst TOOL_RESULT_SUMMARY_MAX_CHARS = 2_000\n\nexport interface AgentContextEstimateTool {\n readonly name: string\n readonly description: string\n /** Deterministic JSON-schema serialization sent for this tool. */\n readonly inputSchema: string\n}\n\nexport interface EstimateAgentContextRequestTokensInput {\n readonly systemPrompt: string\n readonly tools: readonly AgentContextEstimateTool[]\n readonly messages: readonly AgentMessage[]\n}\n\nexport interface AgentContextTokenEstimate {\n readonly tokens: number\n readonly estimatorVersion: typeof AGENT_CONTEXT_ESTIMATOR_VERSION\n}\n\nexport interface AgentContextCompactionBoundary {\n readonly messagesToSummarize: readonly AgentMessageRecord[]\n readonly retainedMessages: readonly AgentMessageRecord[]\n readonly summarizedThroughSeq: number\n}\n\n/** Compaction begins only once the estimated request crosses the reserved input budget. */\nexport function shouldCompactAgentContext(input: {\n readonly estimatedInputTokens: number\n readonly inputBudgetTokens: number\n}): boolean {\n return input.estimatedInputTokens > input.inputBudgetTokens\n}\n\n/** Estimate the provider request shape with one stable, conservative character heuristic. */\nexport function estimateAgentContextRequestTokens(\n input: EstimateAgentContextRequestTokensInput\n): AgentContextTokenEstimate {\n const toolTokens = input.tools.reduce(\n (total, tool) =>\n total +\n TOOL_OVERHEAD_TOKENS +\n textTokens(tool.name) +\n textTokens(tool.description) +\n textTokens(tool.inputSchema),\n 0\n )\n return {\n tokens:\n REQUEST_OVERHEAD_TOKENS +\n textTokens(input.systemPrompt) +\n toolTokens +\n estimateAgentContextMessagesTokens(input.messages).tokens,\n estimatorVersion: AGENT_CONTEXT_ESTIMATOR_VERSION,\n }\n}\n\n/** Estimate message-only growth after a provider-usage anchor. */\nexport function estimateAgentContextMessagesTokens(\n messages: readonly AgentMessage[]\n): AgentContextTokenEstimate {\n const attachments = { textBytesRemaining: FILE_TEXT_INLINE_TOTAL_MAX_BYTES }\n let tokens = 0\n for (const message of messages) {\n tokens += estimateMessageTokens(message, attachments)\n }\n return { tokens, estimatorVersion: AGENT_CONTEXT_ESTIMATOR_VERSION }\n}\n\n/** Select the safe user boundary whose retained tail is closest to the configured recent budget. */\nexport function selectAgentContextCompactionBoundary(input: {\n readonly messages: readonly AgentMessageRecord[]\n readonly keepRecentTokens: number\n}): AgentContextCompactionBoundary | null {\n if (input.messages.length < 2) return null\n\n let retainedTokens = 0\n let boundaryIndex: number | null = null\n let closestDistance = Number.POSITIVE_INFINITY\n for (let index = input.messages.length - 1; index > 0; index -= 1) {\n retainedTokens += estimateAgentContextMessagesTokens([input.messages[index]!]).tokens\n if (input.messages[index]?.role !== \"user\") continue\n\n const distance = Math.abs(input.keepRecentTokens - retainedTokens)\n if (distance <= closestDistance) {\n boundaryIndex = index\n closestDistance = distance\n }\n if (retainedTokens >= input.keepRecentTokens) break\n }\n\n if (boundaryIndex === null) return null\n\n const summarizedThroughSeq = input.messages[boundaryIndex - 1]?.seq\n if (summarizedThroughSeq === undefined) return null\n return {\n messagesToSummarize: input.messages.slice(0, boundaryIndex),\n retainedMessages: input.messages.slice(boundaryIndex),\n summarizedThroughSeq,\n }\n}\n\n/** Serialize durable conversation content as escaped quoted data for the summary model. */\nexport function serializeAgentMessagesForSummary(messages: readonly AgentMessageRecord[]): string {\n const lines = [\"<sixb_conversation_history>\"]\n for (const message of messages) {\n lines.push(\n ` <message id=\"${escapeXml(message.id)}\" seq=\"${message.seq}\" role=\"${message.role}\">`\n )\n message.parts.forEach((part, partIndex) => {\n lines.push(...serializeSummaryPart(message, part, partIndex))\n })\n lines.push(\" </message>\")\n }\n lines.push(\"</sixb_conversation_history>\")\n return lines.join(\"\\n\")\n}\n\nfunction estimateMessageTokens(\n message: AgentMessage,\n attachments: { textBytesRemaining: number }\n): number {\n let tokens = MESSAGE_OVERHEAD_TOKENS\n for (const part of message.parts) {\n switch (part.type) {\n case \"text\":\n case \"reasoning\":\n tokens += textTokens(part.text)\n break\n case \"step-start\":\n tokens += STEP_OVERHEAD_TOKENS\n break\n case \"context\":\n tokens += textTokens(stableJsonStringify(part.context))\n break\n case \"provider-state\":\n tokens += textTokens(stableJsonStringify(part.data))\n break\n case \"tool-call\":\n tokens +=\n TOOL_OVERHEAD_TOKENS +\n textTokens(part.toolName) +\n textTokens(stableJsonStringify(part.input)) +\n (part.state === \"output-available\"\n ? textTokens(stableJsonStringify(part.output))\n : textTokens(part.errorText))\n break\n case \"file\": {\n const file = part.fileRef\n tokens += textTokens(\n [file.blobId, file.digest, file.fileName, file.mediaType, file.logicalPath]\n .filter((value): value is string => value !== undefined)\n .join(\" \")\n )\n if (message.role !== \"assistant\") {\n if (looksLikeImage(file.mediaType, file.fileName)) {\n tokens += IMAGE_ALLOWANCE_TOKENS\n } else {\n const inlineBytes = Math.min(\n file.sizeBytes,\n FILE_TEXT_INLINE_MAX_BYTES,\n attachments.textBytesRemaining\n )\n attachments.textBytesRemaining -= inlineBytes\n tokens += Math.ceil(inlineBytes / CHARS_PER_TOKEN)\n }\n }\n break\n }\n }\n }\n return tokens\n}\n\nfunction serializeSummaryPart(\n message: AgentMessageRecord,\n part: AgentMessagePart,\n partIndex: number\n): string[] {\n const indent = \" \"\n switch (part.type) {\n case \"text\":\n return [`${indent}<text>${escapeXml(part.text)}</text>`]\n case \"reasoning\":\n case \"provider-state\":\n case \"step-start\":\n return []\n case \"context\":\n return part.context.kind === \"object\"\n ? [\n `${indent}<object_context origin=\"${part.origin}\" object_type_id=\"${escapeXml(part.context.ref.objectTypeId)}\" primary_id=\"${escapeXml(part.context.ref.primaryId)}\" />`,\n ]\n : [\n `${indent}<app_context origin=\"${part.origin}\" id=\"${escapeXml(part.context.id)}\" label=\"${escapeXml(part.context.label)}\">`,\n `${indent} <description>${escapeXml(part.context.description)}</description>`,\n `${indent} <value format=\"json\">${escapeXml(stableJsonStringify(part.context.value))}</value>`,\n `${indent}</app_context>`,\n ]\n case \"file\": {\n const file = part.fileRef\n const attributes = [\n `message_id=\"${escapeXml(message.id)}\"`,\n `part_index=\"${partIndex}\"`,\n `blob_id=\"${escapeXml(file.blobId)}\"`,\n `digest=\"${escapeXml(file.digest)}\"`,\n `size_bytes=\"${file.sizeBytes}\"`,\n ...(file.fileName === undefined ? [] : [`file_name=\"${escapeXml(file.fileName)}\"`]),\n ...(file.mediaType === undefined ? [] : [`media_type=\"${escapeXml(file.mediaType)}\"`]),\n ...(file.logicalPath === undefined\n ? []\n : [`logical_path=\"${escapeXml(file.logicalPath)}\"`]),\n ]\n return [`${indent}<file ${attributes.join(\" \")} />`]\n }\n case \"tool-call\": {\n const output =\n part.state === \"output-available\"\n ? truncateToolResult(stableJsonStringify(part.output))\n : truncateToolResult(part.errorText)\n return [\n `${indent}<tool_call id=\"${escapeXml(part.toolCallId)}\" name=\"${escapeXml(part.toolName)}\" state=\"${part.state}\">`,\n `${indent} <input format=\"json\">${escapeXml(stableJsonStringify(part.input))}</input>`,\n `${indent} <result>${escapeXml(output)}</result>`,\n `${indent}</tool_call>`,\n ]\n }\n }\n}\n\nfunction truncateToolResult(value: string): string {\n if (value.length <= TOOL_RESULT_SUMMARY_MAX_CHARS) return value\n return `${value.slice(0, TOOL_RESULT_SUMMARY_MAX_CHARS)}\\n[truncated ${value.length - TOOL_RESULT_SUMMARY_MAX_CHARS} characters]`\n}\n\nfunction looksLikeImage(mediaType: string | undefined, fileName: string | undefined): boolean {\n if (mediaType?.toLowerCase().startsWith(\"image/\")) return true\n return /\\.(?:avif|gif|jpe?g|png|webp)$/i.test(fileName ?? \"\")\n}\n\nfunction textTokens(value: string): number {\n return Math.ceil(new TextEncoder().encode(value).byteLength / CHARS_PER_TOKEN)\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replaceAll(\"&\", \"&\")\n .replaceAll(\"<\", \"<\")\n .replaceAll(\">\", \">\")\n .replaceAll('\"', \""\")\n .replaceAll(\"'\", \"'\")\n}\n",
|
|
13
|
+
"import type { AgentReference } from \"./types\"\n\n/** Project Agent capability used in security grants such as `can.run(agent)`. */\nexport const agent: AgentReference = Object.freeze({\n kind: \"agent\",\n usage: Object.freeze({ kind: \"aiUsage\" }),\n})\n",
|
|
14
|
+
"import type { AgentContextCheckpointRecord, AgentMessageRecord } from \"../storage/agents/types\"\nimport type { AgentMessage } from \"./message\"\n\n/** A model-only message. Persisted tail messages carry `id`; the synthetic summary does not. */\nexport interface AgentThreadModelContextMessage extends AgentMessage {\n readonly id?: string\n}\n\nexport interface ProjectAgentThreadModelContextInput {\n readonly checkpoint: AgentContextCheckpointRecord | null\n /** Complete retained tail, ordered by ascending per-thread sequence. */\n readonly messages: readonly AgentMessageRecord[]\n}\n\n/**\n * Build the bounded, model-only view of a durable thread.\n *\n * The function is deliberately pure: storage chooses the latest checkpoint and reads its retained\n * tail; this function validates that projection and prepends one synthetic user-role summary.\n */\nexport function projectAgentThreadModelContext(\n input: ProjectAgentThreadModelContextInput\n): readonly AgentThreadModelContextMessage[] {\n const { checkpoint, messages } = input\n if (!checkpoint) return messages\n\n assertConsistentCheckpointProjection(checkpoint, messages)\n return [\n {\n role: \"user\",\n parts: [{ type: \"text\", text: serializeThreadSummary(checkpoint.summary) }],\n },\n ...messages,\n ]\n}\n\nfunction assertConsistentCheckpointProjection(\n checkpoint: AgentContextCheckpointRecord,\n messages: readonly AgentMessageRecord[]\n): void {\n if (checkpoint.summaryFormatVersion !== 1 || checkpoint.summary.trim().length === 0) {\n throw projectionError(checkpoint, \"has an invalid summary\")\n }\n if (checkpoint.summarizedThroughSeq >= checkpoint.observedHeadSeq) {\n throw projectionError(checkpoint, \"does not retain its observed head\")\n }\n if (messages.length === 0) {\n throw projectionError(checkpoint, \"has no retained messages\")\n }\n\n let expectedSeq = checkpoint.summarizedThroughSeq + 1\n for (const message of messages) {\n if (message.projectId !== checkpoint.projectId || message.threadId !== checkpoint.threadId) {\n throw projectionError(checkpoint, \"contains a message from another thread\")\n }\n if (message.seq !== expectedSeq) {\n throw projectionError(checkpoint, `has a sequence gap before message '${message.id}'`)\n }\n expectedSeq += 1\n }\n\n if (messages[0]?.role !== \"user\") {\n throw projectionError(checkpoint, \"does not begin at a user turn boundary\")\n }\n if ((messages.at(-1)?.seq ?? 0) < checkpoint.observedHeadSeq) {\n throw projectionError(checkpoint, \"ends before the checkpoint's observed head\")\n }\n}\n\nfunction serializeThreadSummary(summary: string): string {\n return [\n \"The earlier conversation was compacted into this continuation summary.\",\n \"\",\n \"<sixb_thread_summary>\",\n escapeXml(summary),\n \"</sixb_thread_summary>\",\n ].join(\"\\n\")\n}\n\nfunction projectionError(checkpoint: AgentContextCheckpointRecord, detail: string): Error {\n return new Error(\n `[Sixb] Agent context checkpoint '${checkpoint.id}' for thread '${checkpoint.threadId}' ${detail}.`\n )\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replaceAll(\"&\", \"&\")\n .replaceAll(\"<\", \"<\")\n .replaceAll(\">\", \">\")\n .replaceAll('\"', \""\")\n .replaceAll(\"'\", \"'\")\n}\n"
|
|
15
|
+
],
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "6ABE14EFB7C9999B64756E2164756E21",
|
|
18
|
+
"names": []
|
|
19
|
+
}
|
|
@@ -8,7 +8,7 @@ var OBJECT_READ_SCOPE_LIMITS = Object.freeze({
|
|
|
8
8
|
maxPropertyOccurrences: 16384,
|
|
9
9
|
maxIdentifierCharacters: 1e6
|
|
10
10
|
});
|
|
11
|
-
function
|
|
11
|
+
function compileSelectedObjectReadScope2(rawScope) {
|
|
12
12
|
const scope = captureSelectedObjectReadScope(rawScope);
|
|
13
13
|
if (!isRecord(scope) || scope.kind !== "selected" || !Array.isArray(scope.roots)) {
|
|
14
14
|
throw invalidScope("scope must be a selected scope with a roots array");
|
|
@@ -309,7 +309,7 @@ function reserveCount(current, count, limit, message) {
|
|
|
309
309
|
throw invalidScope(message);
|
|
310
310
|
return current + count;
|
|
311
311
|
}
|
|
312
|
-
function
|
|
312
|
+
function assertObjectReaderProject2(expectedProjectId, actualProjectId) {
|
|
313
313
|
if (actualProjectId !== expectedProjectId) {
|
|
314
314
|
throw new Error(`[Sixb] Object reader belongs to project '${expectedProjectId}', not '${actualProjectId}'.`);
|
|
315
315
|
}
|
|
@@ -398,6 +398,6 @@ function invalidScope(message) {
|
|
|
398
398
|
return new Error(`[Sixb] Invalid object read scope: ${message}.`);
|
|
399
399
|
}
|
|
400
400
|
|
|
401
|
-
export {
|
|
401
|
+
export { compileSelectedObjectReadScope2, captureSelectedObjectReadScope, assertObjectReaderProject2 };
|
|
402
402
|
|
|
403
|
-
//# debugId=
|
|
403
|
+
//# debugId=2BFA0FCD72945DF564756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type {\n CompiledObjectReadObjectSelection,\n CompiledObjectReadRoot,\n CompiledObjectReadStep,\n CompiledSelectedObjectReadScope,\n ObjectReadLinkDefinitionSelection,\n ObjectReadLinkSelection,\n ObjectReadNode,\n ObjectReadObjectSelection,\n ObjectReadRoot,\n SelectedObjectReadScope,\n} from \"./types\"\n\n/** Admission bounds applied before a raw selection is normalized or allocated by a provider. */\nexport const OBJECT_READ_SCOPE_LIMITS = Object.freeze({\n maxDepth: 32,\n maxNodes: 512,\n maxObjectSelections: 4_096,\n maxSteps: 2_048,\n maxPropertyOccurrences: 16_384,\n maxIdentifierCharacters: 1_000_000,\n})\n\n/**\n * Validate, detach, normalize, and flatten a finite selection exactly once.\n *\n * Every path occurrence receives its own node id. Reusing only `(sourceType, linkId)` would lose\n * provenance and let an object reached through one branch borrow nested authority from another.\n */\nexport function compileSelectedObjectReadScope(\n rawScope: SelectedObjectReadScope\n): CompiledSelectedObjectReadScope {\n const scope = captureSelectedObjectReadScope(rawScope)\n if (!isRecord(scope) || scope.kind !== \"selected\" || !Array.isArray(scope.roots)) {\n throw invalidScope(\"scope must be a selected scope with a roots array\")\n }\n\n const roots: CompiledObjectReadRoot[] = []\n const objects: CompiledObjectReadObjectSelection[] = []\n const steps: CompiledObjectReadStep[] = []\n const visiting = new Set<object>()\n let nextNodeId = 0\n let concreteStepCount = 0\n let objectSelectionCount = 0\n let propertyOccurrenceCount = 0\n let identifierCharacterCount = 0\n let compiledPropertyOccurrenceCount = 0\n let compiledIdentifierCharacterCount = 0\n\n const addIdentifier = (value: unknown, path: string): string => {\n const identifier = nonEmptyString(value, path)\n identifierCharacterCount += identifier.length\n if (identifierCharacterCount > OBJECT_READ_SCOPE_LIMITS.maxIdentifierCharacters) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxIdentifierCharacters} identifier characters`\n )\n }\n return identifier\n }\n\n const addPropertyOccurrences = (count: number): void => {\n propertyOccurrenceCount += count\n if (propertyOccurrenceCount > OBJECT_READ_SCOPE_LIMITS.maxPropertyOccurrences) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxPropertyOccurrences} selected property occurrences`\n )\n }\n }\n\n const addCompiledPropertyOccurrences = (count: number): void => {\n compiledPropertyOccurrenceCount += count\n if (compiledPropertyOccurrenceCount > OBJECT_READ_SCOPE_LIMITS.maxPropertyOccurrences) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxPropertyOccurrences} selected property occurrences after compilation`\n )\n }\n }\n\n const addCompiledIdentifierCharacters = (count: number): void => {\n compiledIdentifierCharacterCount += count\n if (compiledIdentifierCharacterCount > OBJECT_READ_SCOPE_LIMITS.maxIdentifierCharacters) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxIdentifierCharacters} identifier characters after compilation`\n )\n }\n }\n\n const visitNode = (node: ObjectReadNode, path: string, depth: number): number => {\n if (!isRecord(node) || !Array.isArray(node.objects) || !Array.isArray(node.links)) {\n throw invalidScope(`${path} must contain object and link selections`)\n }\n if (depth > OBJECT_READ_SCOPE_LIMITS.maxDepth) {\n throw invalidScope(\n `${path} exceeds the maximum link depth of ${OBJECT_READ_SCOPE_LIMITS.maxDepth}`\n )\n }\n if (nextNodeId >= OBJECT_READ_SCOPE_LIMITS.maxNodes) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxNodes} selection nodes`\n )\n }\n if (visiting.has(node)) throw invalidScope(`${path} contains a cyclic selection node`)\n visiting.add(node)\n\n const nodeId = nextNodeId++\n try {\n objectSelectionCount += node.objects.length\n if (objectSelectionCount > OBJECT_READ_SCOPE_LIMITS.maxObjectSelections) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxObjectSelections} object selections`\n )\n }\n\n for (const [objectIndex, object] of node.objects.entries()) {\n const objectPath = `${path}.objects[${objectIndex}]`\n if (!isRecord(object) || !Array.isArray(object.propertyIds)) {\n throw invalidScope(`${objectPath} must contain an object type and property ids`)\n }\n addIdentifier(object.objectTypeId, `${objectPath}.objectTypeId`)\n addPropertyOccurrences(object.propertyIds.length)\n for (const [propertyIndex, propertyId] of object.propertyIds.entries()) {\n addIdentifier(propertyId, `${objectPath}.propertyIds[${propertyIndex}]`)\n }\n }\n\n const normalizedObjects = normalizeObjects(node.objects, `${path}.objects`)\n if (normalizedObjects.length === 0) {\n throw invalidScope(`${path}.objects must contain at least one concrete object type`)\n }\n for (const object of normalizedObjects) {\n addCompiledPropertyOccurrences(object.propertyIds.length)\n addCompiledIdentifierCharacters(\n object.objectTypeId.length + identifierCharacters(object.propertyIds)\n )\n objects.push(Object.freeze({ nodeId, ...object }))\n }\n\n for (const [linkIndex, link] of node.links.entries()) {\n const linkPath = `${path}.links[${linkIndex}]`\n if (!isRecord(link) || !Array.isArray(link.definitions) || !isRecord(link.target)) {\n throw invalidScope(`${linkPath} must contain definitions and a target node`)\n }\n if (link.definitions.length === 0) {\n throw invalidScope(`${linkPath}.definitions must not be empty`)\n }\n\n const definitions = normalizeConcreteDefinitions(\n link.definitions,\n `${linkPath}.definitions`,\n addIdentifier,\n addPropertyOccurrences,\n addCompiledPropertyOccurrences,\n addCompiledIdentifierCharacters,\n () => {\n concreteStepCount += 1\n if (concreteStepCount > OBJECT_READ_SCOPE_LIMITS.maxSteps) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxSteps} concrete link steps`\n )\n }\n }\n )\n const parentTypes = new Set(normalizedObjects.map((object) => object.objectTypeId))\n for (const definition of definitions) {\n if (!parentTypes.has(definition.sourceObjectTypeId)) {\n throw invalidScope(\n `${linkPath} selects source type '${definition.sourceObjectTypeId}' outside its parent node`\n )\n }\n }\n\n const childNodeId = visitNode(\n link.target as unknown as ObjectReadNode,\n `${linkPath}.target`,\n depth + 1\n )\n const childTypes = new Set(\n objects\n .filter((object) => object.nodeId === childNodeId)\n .map((object) => object.objectTypeId)\n )\n const targetTypes = new Set(definitions.map((definition) => definition.targetObjectTypeId))\n if (!setsEqual(childTypes, targetTypes)) {\n throw invalidScope(\n `${linkPath}.target object types must exactly match its definition target types`\n )\n }\n\n for (const definition of definitions) {\n steps.push(\n Object.freeze({\n nodeId: childNodeId,\n parentNodeId: nodeId,\n ...definition,\n })\n )\n }\n }\n } finally {\n visiting.delete(node)\n }\n\n return nodeId\n }\n\n for (const [rootIndex, root] of scope.roots.entries()) {\n const path = `roots[${rootIndex}]`\n if (!isRecord(root) || !isRecord(root.anchor) || !isRecord(root.node)) {\n throw invalidScope(`${path} must contain an exact anchor and a selection node`)\n }\n const objectTypeId = addIdentifier(root.anchor.objectTypeId, `${path}.anchor.objectTypeId`)\n const primaryId = addIdentifier(root.anchor.primaryId, `${path}.anchor.primaryId`)\n addCompiledIdentifierCharacters(objectTypeId.length + primaryId.length)\n const nodeId = visitNode(root.node as unknown as ObjectReadNode, `${path}.node`, 0)\n if (\n !objects.some((object) => object.nodeId === nodeId && object.objectTypeId === objectTypeId)\n ) {\n throw invalidScope(`${path}.anchor type '${objectTypeId}' is not selected by its root node`)\n }\n roots.push(Object.freeze({ nodeId, objectTypeId, primaryId }))\n }\n\n return Object.freeze({\n kind: \"selected\",\n roots: Object.freeze(roots),\n objects: Object.freeze(objects),\n steps: Object.freeze(steps),\n })\n}\n\ninterface ScopeCaptureState {\n readonly visiting: Set<object>\n nodeCount: number\n objectSelectionCount: number\n concreteStepCount: number\n propertyOccurrenceCount: number\n identifierCharacterCount: number\n}\n\ninterface CapturedArray {\n readonly value: readonly unknown[]\n readonly length: number\n}\n\n/**\n * Read every caller-controlled property once and detach it before another getter can mutate it.\n * The compiler only ever observes the resulting plain, deeply frozen snapshot.\n */\nexport function captureSelectedObjectReadScope(value: unknown): SelectedObjectReadScope {\n if (!isRecord(value)) {\n throw invalidScope(\"scope must be a selected scope with a roots array\")\n }\n\n const kind = value.kind\n if (kind !== \"selected\") {\n throw invalidScope(\"scope must be a selected scope with a roots array\")\n }\n\n const rootsValue = value.roots\n const rootsSource = captureArray(rootsValue, \"roots\")\n if (rootsSource.length > OBJECT_READ_SCOPE_LIMITS.maxNodes) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxNodes} selection nodes`\n )\n }\n\n const state: ScopeCaptureState = {\n visiting: new Set<object>(),\n nodeCount: 0,\n objectSelectionCount: 0,\n concreteStepCount: 0,\n propertyOccurrenceCount: 0,\n identifierCharacterCount: 0,\n }\n const roots: ObjectReadRoot[] = []\n for (let rootIndex = 0; rootIndex < rootsSource.length; rootIndex += 1) {\n const path = `roots[${rootIndex}]`\n const rootValue = rootsSource.value[rootIndex]\n if (!isRecord(rootValue)) {\n throw invalidScope(`${path} must contain an exact anchor and a selection node`)\n }\n\n const anchorValue = rootValue.anchor\n if (!isRecord(anchorValue)) {\n throw invalidScope(`${path} must contain an exact anchor and a selection node`)\n }\n const objectTypeId = captureIdentifier(\n state,\n anchorValue.objectTypeId,\n `${path}.anchor.objectTypeId`\n )\n const primaryId = captureIdentifier(state, anchorValue.primaryId, `${path}.anchor.primaryId`)\n const anchor = Object.freeze({ objectTypeId, primaryId })\n\n const nodeValue = rootValue.node\n if (!isRecord(nodeValue)) {\n throw invalidScope(`${path} must contain an exact anchor and a selection node`)\n }\n const node = captureNode(state, nodeValue, `${path}.node`, 0)\n roots.push(Object.freeze({ anchor, node }))\n }\n\n return Object.freeze({ kind, roots: Object.freeze(roots) })\n}\n\nfunction captureNode(\n state: ScopeCaptureState,\n value: Record<string, unknown>,\n path: string,\n depth: number\n): ObjectReadNode {\n if (depth > OBJECT_READ_SCOPE_LIMITS.maxDepth) {\n throw invalidScope(\n `${path} exceeds the maximum link depth of ${OBJECT_READ_SCOPE_LIMITS.maxDepth}`\n )\n }\n if (state.nodeCount >= OBJECT_READ_SCOPE_LIMITS.maxNodes) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxNodes} selection nodes`\n )\n }\n if (state.visiting.has(value)) {\n throw invalidScope(`${path} contains a cyclic selection node`)\n }\n state.visiting.add(value)\n state.nodeCount += 1\n\n try {\n const objectsValue = value.objects\n const objectsSource = captureArray(objectsValue, `${path}.objects`)\n state.objectSelectionCount = reserveCount(\n state.objectSelectionCount,\n objectsSource.length,\n OBJECT_READ_SCOPE_LIMITS.maxObjectSelections,\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxObjectSelections} object selections`\n )\n const objects: ObjectReadObjectSelection[] = []\n for (let objectIndex = 0; objectIndex < objectsSource.length; objectIndex += 1) {\n const objectPath = `${path}.objects[${objectIndex}]`\n const objectValue = objectsSource.value[objectIndex]\n if (!isRecord(objectValue)) {\n throw invalidScope(`${objectPath} must contain an object type and property ids`)\n }\n\n const objectTypeId = captureIdentifier(\n state,\n objectValue.objectTypeId,\n `${objectPath}.objectTypeId`\n )\n const propertyIdsValue = objectValue.propertyIds\n const propertyIds = capturePropertyIds(state, propertyIdsValue, `${objectPath}.propertyIds`)\n objects.push(Object.freeze({ objectTypeId, propertyIds }))\n }\n\n const linksValue = value.links\n const linksSource = captureArray(linksValue, `${path}.links`)\n if (linksSource.length > OBJECT_READ_SCOPE_LIMITS.maxNodes - state.nodeCount) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxNodes} selection nodes`\n )\n }\n const links: ObjectReadLinkSelection[] = []\n for (let linkIndex = 0; linkIndex < linksSource.length; linkIndex += 1) {\n const linkPath = `${path}.links[${linkIndex}]`\n const linkValue = linksSource.value[linkIndex]\n if (!isRecord(linkValue)) {\n throw invalidScope(`${linkPath} must contain definitions and a target node`)\n }\n\n const definitionsValue = linkValue.definitions\n const definitionsSource = captureArray(definitionsValue, `${linkPath}.definitions`)\n if (definitionsSource.length === 0) {\n throw invalidScope(`${linkPath}.definitions must not be empty`)\n }\n if (definitionsSource.length > OBJECT_READ_SCOPE_LIMITS.maxSteps - state.concreteStepCount) {\n throw invalidScope(\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxSteps} concrete link steps`\n )\n }\n const definitions: ObjectReadLinkDefinitionSelection[] = []\n for (\n let definitionIndex = 0;\n definitionIndex < definitionsSource.length;\n definitionIndex += 1\n ) {\n const definitionPath = `${linkPath}.definitions[${definitionIndex}]`\n const definitionValue = definitionsSource.value[definitionIndex]\n definitions.push(captureDefinition(state, definitionValue, definitionPath))\n }\n\n const targetValue = linkValue.target\n if (!isRecord(targetValue)) {\n throw invalidScope(`${linkPath} must contain definitions and a target node`)\n }\n const target = captureNode(state, targetValue, `${linkPath}.target`, depth + 1)\n links.push(Object.freeze({ definitions: Object.freeze(definitions), target }))\n }\n\n return Object.freeze({ objects: Object.freeze(objects), links: Object.freeze(links) })\n } finally {\n state.visiting.delete(value)\n }\n}\n\nfunction captureDefinition(\n state: ScopeCaptureState,\n value: unknown,\n path: string\n): ObjectReadLinkDefinitionSelection {\n if (!isRecord(value)) {\n throw invalidScope(`${path} must contain a concrete link definition`)\n }\n\n const sourceObjectTypeId = captureIdentifier(\n state,\n value.sourceObjectTypeId,\n `${path}.sourceObjectTypeId`\n )\n const linkId = captureIdentifier(state, value.linkId, `${path}.linkId`)\n\n const targetObjectTypeIdsValue = value.targetObjectTypeIds\n const targetObjectTypeIdsSource = captureArray(\n targetObjectTypeIdsValue,\n `${path}.targetObjectTypeIds`\n )\n if (targetObjectTypeIdsSource.length === 0) {\n throw invalidScope(`${path}.targetObjectTypeIds must not be empty`)\n }\n state.concreteStepCount = reserveCount(\n state.concreteStepCount,\n targetObjectTypeIdsSource.length,\n OBJECT_READ_SCOPE_LIMITS.maxSteps,\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxSteps} concrete link steps`\n )\n const targetObjectTypeIds = captureIdentifiers(\n state,\n targetObjectTypeIdsSource,\n `${path}.targetObjectTypeIds`\n )\n\n const propertyIdsValue = value.propertyIds\n const propertyIds = capturePropertyIds(state, propertyIdsValue, `${path}.propertyIds`)\n return Object.freeze({ sourceObjectTypeId, linkId, targetObjectTypeIds, propertyIds })\n}\n\nfunction capturePropertyIds(\n state: ScopeCaptureState,\n value: unknown,\n path: string\n): readonly string[] {\n const source = captureArray(value, path)\n state.propertyOccurrenceCount = reserveCount(\n state.propertyOccurrenceCount,\n source.length,\n OBJECT_READ_SCOPE_LIMITS.maxPropertyOccurrences,\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxPropertyOccurrences} selected property occurrences`\n )\n return captureIdentifiers(state, source, path)\n}\n\nfunction captureIdentifiers(\n state: ScopeCaptureState,\n source: CapturedArray,\n path: string\n): readonly string[] {\n const identifiers: string[] = []\n for (let index = 0; index < source.length; index += 1) {\n identifiers.push(captureIdentifier(state, source.value[index], `${path}[${index}]`))\n }\n return Object.freeze(identifiers)\n}\n\nfunction captureIdentifier(state: ScopeCaptureState, value: unknown, path: string): string {\n const identifier = nonEmptyString(value, path)\n state.identifierCharacterCount = reserveCount(\n state.identifierCharacterCount,\n identifier.length,\n OBJECT_READ_SCOPE_LIMITS.maxIdentifierCharacters,\n `scope exceeds the maximum of ${OBJECT_READ_SCOPE_LIMITS.maxIdentifierCharacters} identifier characters`\n )\n return identifier\n}\n\nfunction captureArray(value: unknown, path: string): CapturedArray {\n if (!Array.isArray(value)) {\n throw invalidScope(`${path} must be an array`)\n }\n const array = value as readonly unknown[]\n const length = array.length\n if (!Number.isSafeInteger(length) || length < 0) {\n throw invalidScope(`${path}.length must be a non-negative safe integer`)\n }\n return { value: array, length }\n}\n\nfunction reserveCount(current: number, count: number, limit: number, message: string): number {\n if (count > limit - current) throw invalidScope(message)\n return current + count\n}\n\n/** Fail closed when a project-bound selected reader is accidentally reused across projects. */\nexport function assertObjectReaderProject(\n expectedProjectId: string,\n actualProjectId: string\n): void {\n if (actualProjectId !== expectedProjectId) {\n throw new Error(\n `[Sixb] Object reader belongs to project '${expectedProjectId}', not '${actualProjectId}'.`\n )\n }\n}\n\ninterface ConcreteDefinition {\n readonly sourceObjectTypeId: string\n readonly linkId: string\n readonly targetObjectTypeId: string\n readonly propertyIds: readonly string[]\n}\n\nfunction normalizeConcreteDefinitions(\n definitions: readonly ObjectReadLinkDefinitionSelection[],\n path: string,\n addIdentifier: (value: unknown, path: string) => string,\n addPropertyOccurrences: (count: number) => void,\n addCompiledPropertyOccurrences: (count: number) => void,\n addCompiledIdentifierCharacters: (count: number) => void,\n addConcreteStep: () => void\n): readonly ConcreteDefinition[] {\n const propertiesByDefinition = new Map<\n string,\n {\n sourceObjectTypeId: string\n linkId: string\n targetObjectTypeId: string\n properties: Set<string>\n }\n >()\n\n for (const [index, definition] of definitions.entries()) {\n const definitionPath = `${path}[${index}]`\n if (\n !isRecord(definition) ||\n !Array.isArray(definition.targetObjectTypeIds) ||\n !Array.isArray(definition.propertyIds)\n ) {\n throw invalidScope(`${definitionPath} must contain a concrete link definition`)\n }\n const sourceObjectTypeId = addIdentifier(\n definition.sourceObjectTypeId,\n `${definitionPath}.sourceObjectTypeId`\n )\n const linkId = addIdentifier(definition.linkId, `${definitionPath}.linkId`)\n if (definition.targetObjectTypeIds.length === 0) {\n throw invalidScope(`${definitionPath}.targetObjectTypeIds must not be empty`)\n }\n addPropertyOccurrences(definition.propertyIds.length)\n let propertyIdentifierCharacters = 0\n for (const [propertyIndex, propertyId] of definition.propertyIds.entries()) {\n propertyIdentifierCharacters += addIdentifier(\n propertyId,\n `${definitionPath}.propertyIds[${propertyIndex}]`\n ).length\n }\n let targetIdentifierCharacters = 0\n for (const [targetIndex, value] of definition.targetObjectTypeIds.entries()) {\n addConcreteStep()\n targetIdentifierCharacters += addIdentifier(\n value,\n `${definitionPath}.targetObjectTypeIds[${targetIndex}]`\n ).length\n }\n\n // Reserve the complete concrete expansion before allocating collision-safe keys or copying\n // properties into per-target sets. One compact raw definition may otherwise amplify its\n // source/link/property identifiers once per target beyond the provider-neutral scope caps.\n addCompiledPropertyOccurrences(\n definition.propertyIds.length * definition.targetObjectTypeIds.length\n )\n const repeatedIdentifierCharacters =\n sourceObjectTypeId.length + linkId.length + propertyIdentifierCharacters\n addCompiledIdentifierCharacters(\n repeatedIdentifierCharacters * definition.targetObjectTypeIds.length +\n targetIdentifierCharacters\n )\n\n for (const [targetIndex, value] of definition.targetObjectTypeIds.entries()) {\n const targetObjectTypeId = nonEmptyString(\n value,\n `${definitionPath}.targetObjectTypeIds[${targetIndex}]`\n )\n const key = JSON.stringify([sourceObjectTypeId, linkId, targetObjectTypeId])\n const normalized = propertiesByDefinition.get(key) ?? {\n sourceObjectTypeId,\n linkId,\n targetObjectTypeId,\n properties: new Set<string>(),\n }\n for (const [propertyIndex, propertyId] of definition.propertyIds.entries()) {\n normalized.properties.add(\n nonEmptyString(propertyId, `${definitionPath}.propertyIds[${propertyIndex}]`)\n )\n }\n propertiesByDefinition.set(key, normalized)\n }\n }\n\n return [...propertiesByDefinition.values()]\n .sort(\n (left, right) =>\n left.sourceObjectTypeId.localeCompare(right.sourceObjectTypeId) ||\n left.linkId.localeCompare(right.linkId) ||\n left.targetObjectTypeId.localeCompare(right.targetObjectTypeId)\n )\n .map(({ properties, ...definition }) =>\n Object.freeze({\n ...definition,\n propertyIds: Object.freeze([...properties].sort()),\n })\n )\n}\n\nfunction identifierCharacters(values: readonly string[]): number {\n return values.reduce((total, value) => total + value.length, 0)\n}\n\nfunction normalizeObjects(\n selections: readonly ObjectReadObjectSelection[],\n path: string\n): readonly ObjectReadObjectSelection[] {\n const propertiesByType = new Map<string, Set<string>>()\n for (const [index, selection] of selections.entries()) {\n if (!isRecord(selection) || !Array.isArray(selection.propertyIds)) {\n throw invalidScope(`${path}[${index}] must contain an object type and property ids`)\n }\n const objectTypeId = nonEmptyString(selection.objectTypeId, `${path}[${index}].objectTypeId`)\n const properties = propertiesByType.get(objectTypeId) ?? new Set<string>()\n for (const propertyId of normalizeIds(selection.propertyIds, `${path}[${index}].propertyIds`)) {\n properties.add(propertyId)\n }\n propertiesByType.set(objectTypeId, properties)\n }\n return [...propertiesByType]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([objectTypeId, properties]) =>\n Object.freeze({ objectTypeId, propertyIds: Object.freeze([...properties].sort()) })\n )\n}\n\nfunction normalizeIds(values: readonly string[], path: string): string[] {\n return [\n ...new Set(values.map((value, index) => nonEmptyString(value, `${path}[${index}]`))),\n ].sort()\n}\n\nfunction nonEmptyString(value: unknown, path: string): string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw invalidScope(`${path} must be a non-empty string`)\n }\n return value\n}\n\nfunction setsEqual(left: ReadonlySet<string>, right: ReadonlySet<string>): boolean {\n return left.size === right.size && [...left].every((value) => right.has(value))\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null\n}\n\nfunction invalidScope(message: string): Error {\n return new Error(`[Sixb] Invalid object read scope: ${message}.`)\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "2BFA0FCD72945DF564756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|