@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
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
normalizeAiModelCallUsage2,
|
|
4
|
+
aggregateAiModelCallUsage2,
|
|
5
|
+
normalizeAiModelCallRecord2,
|
|
6
|
+
assertAiUsageExecutionId2
|
|
7
|
+
} from "./chunk-s3csryxe.js";
|
|
6
8
|
import {
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import {
|
|
10
|
-
assertJsonObject,
|
|
11
|
-
assertJsonValue,
|
|
12
|
-
isPlainRecord
|
|
13
|
-
} from "./chunk-n6jxh8sw.js";
|
|
9
|
+
assertJsonObject2
|
|
10
|
+
} from "./chunk-wy0qdqfm.js";
|
|
14
11
|
|
|
15
12
|
// src/storage/ai-usage/errors.ts
|
|
16
|
-
class
|
|
13
|
+
class AiUsageStorageError2 extends Error {
|
|
17
14
|
code;
|
|
18
15
|
name = "AiUsageStorageError";
|
|
19
16
|
constructor(code, message) {
|
|
@@ -22,144 +19,8 @@ class AiUsageStorageError extends Error {
|
|
|
22
19
|
}
|
|
23
20
|
}
|
|
24
21
|
|
|
25
|
-
// src/storage/ai-usage/usage.ts
|
|
26
|
-
var USAGE_FIELDS = [
|
|
27
|
-
"inputTokens",
|
|
28
|
-
"outputTokens",
|
|
29
|
-
"uncachedInputTokens",
|
|
30
|
-
"cacheReadInputTokens",
|
|
31
|
-
"cacheWriteInputTokens",
|
|
32
|
-
"textOutputTokens",
|
|
33
|
-
"reasoningOutputTokens"
|
|
34
|
-
];
|
|
35
|
-
function normalizeAiModelCallUsage(input) {
|
|
36
|
-
for (const field of USAGE_FIELDS) {
|
|
37
|
-
assertUsageCount(input[field], field);
|
|
38
|
-
}
|
|
39
|
-
const totalTokens = input.inputTokens === undefined || input.outputTokens === undefined ? undefined : addUsageCounts(input.inputTokens, input.outputTokens, "totalTokens");
|
|
40
|
-
const reportingStatus = input.inputTokens !== undefined && input.outputTokens !== undefined ? "complete" : USAGE_FIELDS.some((field) => input[field] !== undefined) ? "partial" : "unavailable";
|
|
41
|
-
return {
|
|
42
|
-
...input.inputTokens === undefined ? {} : { inputTokens: input.inputTokens },
|
|
43
|
-
...input.outputTokens === undefined ? {} : { outputTokens: input.outputTokens },
|
|
44
|
-
...totalTokens === undefined ? {} : { totalTokens },
|
|
45
|
-
...input.uncachedInputTokens === undefined ? {} : { uncachedInputTokens: input.uncachedInputTokens },
|
|
46
|
-
...input.cacheReadInputTokens === undefined ? {} : { cacheReadInputTokens: input.cacheReadInputTokens },
|
|
47
|
-
...input.cacheWriteInputTokens === undefined ? {} : { cacheWriteInputTokens: input.cacheWriteInputTokens },
|
|
48
|
-
...input.textOutputTokens === undefined ? {} : { textOutputTokens: input.textOutputTokens },
|
|
49
|
-
...input.reasoningOutputTokens === undefined ? {} : { reasoningOutputTokens: input.reasoningOutputTokens },
|
|
50
|
-
reportingStatus
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function aggregateAiModelCallUsage(usages) {
|
|
54
|
-
const normalized = Array.from(usages, normalizeAiModelCallUsage);
|
|
55
|
-
const fields = Object.fromEntries(USAGE_FIELDS.map((field) => [field, sumUsageField(normalized, field)]));
|
|
56
|
-
const aggregate = normalizeAiModelCallUsage(fields);
|
|
57
|
-
if (aggregate.reportingStatus === "unavailable" && normalized.some((usage) => usage.reportingStatus !== "unavailable")) {
|
|
58
|
-
return { ...aggregate, reportingStatus: "partial" };
|
|
59
|
-
}
|
|
60
|
-
return aggregate;
|
|
61
|
-
}
|
|
62
|
-
function sumUsageField(usages, field) {
|
|
63
|
-
if (usages.length === 0)
|
|
64
|
-
return;
|
|
65
|
-
let total = 0;
|
|
66
|
-
for (const usage of usages) {
|
|
67
|
-
const value = usage[field];
|
|
68
|
-
if (value === undefined)
|
|
69
|
-
return;
|
|
70
|
-
total = addUsageCounts(total, value, `aggregate ${field}`);
|
|
71
|
-
}
|
|
72
|
-
return total;
|
|
73
|
-
}
|
|
74
|
-
function assertUsageCount(value, field) {
|
|
75
|
-
if (value !== undefined && (!Number.isSafeInteger(value) || value < 0)) {
|
|
76
|
-
throw new TypeError(`[Sixb] AI model-call usage ${field} must be a non-negative safe integer.`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function addUsageCounts(left, right, field) {
|
|
80
|
-
const result = left + right;
|
|
81
|
-
if (!Number.isSafeInteger(result)) {
|
|
82
|
-
throw new TypeError(`[Sixb] AI model-call usage ${field} exceeds the safe integer range.`);
|
|
83
|
-
}
|
|
84
|
-
return result;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// src/storage/ai-usage/record.ts
|
|
88
|
-
function normalizeAiModelCallRecord(input) {
|
|
89
|
-
assertNonBlank(input.id, "id");
|
|
90
|
-
assertNonBlank(input.projectId, "projectId");
|
|
91
|
-
assertAiUsageExecutionId(input.executionId);
|
|
92
|
-
assertPositiveSafeInteger(input.attempt, "attempt");
|
|
93
|
-
assertNonBlank(input.callId, "callId");
|
|
94
|
-
assertNonBlank(input.providerId, "providerId");
|
|
95
|
-
assertNonBlank(input.requestedModelId, "requestedModelId");
|
|
96
|
-
if (input.responseModelId !== undefined) {
|
|
97
|
-
assertNonBlank(input.responseModelId, "responseModelId");
|
|
98
|
-
}
|
|
99
|
-
assertNonBlank(input.responseId, "responseId");
|
|
100
|
-
const occurredAt = cloneValidDate(input.occurredAt, "occurredAt");
|
|
101
|
-
const recordedAt = cloneValidDate(input.recordedAt ?? new Date, "recordedAt");
|
|
102
|
-
const requesterGroupIds = normalizeRequesterGroupIds(input.requesterGroupIds);
|
|
103
|
-
const requestedReasoning = cloneRequestedReasoning(input.requestedReasoning);
|
|
104
|
-
const rawUsage = cloneRawUsage(input.rawUsage);
|
|
105
|
-
return {
|
|
106
|
-
id: input.id,
|
|
107
|
-
projectId: input.projectId,
|
|
108
|
-
executionId: input.executionId,
|
|
109
|
-
attempt: input.attempt,
|
|
110
|
-
callId: input.callId,
|
|
111
|
-
requesterGroupIds,
|
|
112
|
-
providerId: input.providerId,
|
|
113
|
-
...input.providerIds === undefined ? {} : { providerIds: normalizeModelProviderIds(input.providerIds) },
|
|
114
|
-
requestedModelId: input.requestedModelId,
|
|
115
|
-
...requestedReasoning === undefined ? {} : { requestedReasoning },
|
|
116
|
-
...input.responseModelId === undefined ? {} : { responseModelId: input.responseModelId },
|
|
117
|
-
responseId: input.responseId,
|
|
118
|
-
usage: normalizeAiModelCallUsage(input.usage),
|
|
119
|
-
...rawUsage === undefined ? {} : { rawUsage },
|
|
120
|
-
occurredAt,
|
|
121
|
-
recordedAt
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
function cloneRequestedReasoning(reasoning) {
|
|
125
|
-
if (reasoning === undefined)
|
|
126
|
-
return;
|
|
127
|
-
if (!isModelReasoning(reasoning)) {
|
|
128
|
-
throw new TypeError("[Sixb] AI usage requestedReasoning is invalid.");
|
|
129
|
-
}
|
|
130
|
-
return typeof reasoning === "string" ? reasoning : { budgetTokens: reasoning.budgetTokens };
|
|
131
|
-
}
|
|
132
|
-
function assertAiUsageExecutionId(executionId) {
|
|
133
|
-
assertNonBlank(executionId, "executionId");
|
|
134
|
-
}
|
|
135
|
-
function cloneRawUsage(rawUsage) {
|
|
136
|
-
if (rawUsage === undefined)
|
|
137
|
-
return;
|
|
138
|
-
if (!isPlainRecord(rawUsage)) {
|
|
139
|
-
throw new TypeError("[Sixb] AI usage rawUsage must be a JSON object.");
|
|
140
|
-
}
|
|
141
|
-
assertJsonValue(rawUsage, "AI usage rawUsage");
|
|
142
|
-
return structuredClone(rawUsage);
|
|
143
|
-
}
|
|
144
|
-
function assertNonBlank(value, field) {
|
|
145
|
-
if (typeof value !== "string" || value.trim().length === 0) {
|
|
146
|
-
throw new TypeError(`[Sixb] AI usage ${field} must be nonblank.`);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
function assertPositiveSafeInteger(value, field) {
|
|
150
|
-
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
151
|
-
throw new TypeError(`[Sixb] AI usage ${field} must be a positive safe integer.`);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
function cloneValidDate(value, field) {
|
|
155
|
-
if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {
|
|
156
|
-
throw new TypeError(`[Sixb] AI usage ${field} must be a valid Date.`);
|
|
157
|
-
}
|
|
158
|
-
return new Date(value);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
22
|
// src/storage/ai-usage/in-memory.ts
|
|
162
|
-
class
|
|
23
|
+
class InMemoryAiUsageStorage2 {
|
|
163
24
|
executions;
|
|
164
25
|
records = new Map;
|
|
165
26
|
recordKeysByIdempotencyKey = new Map;
|
|
@@ -168,7 +29,7 @@ class InMemoryAiUsageStorage {
|
|
|
168
29
|
this.executions = executions;
|
|
169
30
|
}
|
|
170
31
|
async recordModelCall(input) {
|
|
171
|
-
const record =
|
|
32
|
+
const record = normalizeAiModelCallRecord2(input);
|
|
172
33
|
await this.assertExecutionExists(record.projectId, record.executionId);
|
|
173
34
|
const idempotencyKey = modelCallIdempotencyKey(record);
|
|
174
35
|
const existingRecordKey = this.recordKeysByIdempotencyKey.get(idempotencyKey);
|
|
@@ -181,7 +42,7 @@ class InMemoryAiUsageStorage {
|
|
|
181
42
|
}
|
|
182
43
|
const recordKey = modelCallRecordKey(record.projectId, record.id);
|
|
183
44
|
if (this.records.has(recordKey)) {
|
|
184
|
-
throw new
|
|
45
|
+
throw new AiUsageStorageError2("duplicate_id", `[Sixb] AI usage record '${record.id}' already exists for project '${record.projectId}'.`);
|
|
185
46
|
}
|
|
186
47
|
this.records.set(recordKey, structuredClone(record));
|
|
187
48
|
this.recordKeysByIdempotencyKey.set(idempotencyKey, recordKey);
|
|
@@ -197,7 +58,7 @@ class InMemoryAiUsageStorage {
|
|
|
197
58
|
return { record: structuredClone(record), created: true };
|
|
198
59
|
}
|
|
199
60
|
async getLatestForExecution(input) {
|
|
200
|
-
|
|
61
|
+
assertAiUsageExecutionId2(input.executionId);
|
|
201
62
|
if (typeof input.projectId !== "string" || input.projectId.trim().length === 0) {
|
|
202
63
|
throw new TypeError("[Sixb] AI usage projectId must be nonblank.");
|
|
203
64
|
}
|
|
@@ -224,7 +85,7 @@ class InMemoryAiUsageStorage {
|
|
|
224
85
|
}
|
|
225
86
|
const usageByExecutionId = new Map;
|
|
226
87
|
for (const executionId of input.executionIds) {
|
|
227
|
-
|
|
88
|
+
assertAiUsageExecutionId2(executionId);
|
|
228
89
|
usageByExecutionId.set(executionId, []);
|
|
229
90
|
}
|
|
230
91
|
if (usageByExecutionId.size === 0)
|
|
@@ -238,7 +99,7 @@ class InMemoryAiUsageStorage {
|
|
|
238
99
|
const usages = usageByExecutionId.get(executionId) ?? [];
|
|
239
100
|
return {
|
|
240
101
|
modelCallCount: usages.length,
|
|
241
|
-
usage:
|
|
102
|
+
usage: aggregateAiModelCallUsage2(usages)
|
|
242
103
|
};
|
|
243
104
|
});
|
|
244
105
|
}
|
|
@@ -265,7 +126,7 @@ class InMemoryAiUsageStorage {
|
|
|
265
126
|
const execution = await this.executions.getById({ projectId, id: executionId });
|
|
266
127
|
if (execution)
|
|
267
128
|
return;
|
|
268
|
-
throw new
|
|
129
|
+
throw new AiUsageStorageError2("missing_execution", `[Sixb] AI usage execution '${executionId}' does not exist in project '${projectId}'.`);
|
|
269
130
|
}
|
|
270
131
|
}
|
|
271
132
|
function modelCallRecordKey(projectId, id) {
|
|
@@ -293,17 +154,17 @@ function replaceMap(target, source) {
|
|
|
293
154
|
var DEFAULT_MODEL_CALL_PAGE_SIZE = 50;
|
|
294
155
|
var MAX_MODEL_CALL_PAGE_SIZE = 200;
|
|
295
156
|
var MAX_CHART_BUCKETS = 1e4;
|
|
296
|
-
function
|
|
297
|
-
|
|
157
|
+
function normalizeAiAccountingQuery2(input) {
|
|
158
|
+
assertNonBlank(input.projectId, "accounting projectId");
|
|
298
159
|
assertDate(input.from, "accounting from");
|
|
299
160
|
assertDate(input.to, "accounting to");
|
|
300
161
|
if (input.from.getTime() >= input.to.getTime()) {
|
|
301
162
|
throw new TypeError("[Sixb] AI accounting from must be before to.");
|
|
302
163
|
}
|
|
303
164
|
if (input.providerId !== undefined)
|
|
304
|
-
|
|
165
|
+
assertNonBlank(input.providerId, "accounting providerId");
|
|
305
166
|
if (input.modelId !== undefined)
|
|
306
|
-
|
|
167
|
+
assertNonBlank(input.modelId, "accounting modelId");
|
|
307
168
|
return {
|
|
308
169
|
projectId: input.projectId,
|
|
309
170
|
from: new Date(input.from),
|
|
@@ -312,10 +173,10 @@ function normalizeAiAccountingQuery(input) {
|
|
|
312
173
|
...input.modelId === undefined ? {} : { modelId: input.modelId }
|
|
313
174
|
};
|
|
314
175
|
}
|
|
315
|
-
function
|
|
316
|
-
const query =
|
|
176
|
+
function normalizeAiModelCallAccountingQuery2(input) {
|
|
177
|
+
const query = normalizeAiAccountingQuery2(input);
|
|
317
178
|
if (input.executionId !== undefined) {
|
|
318
|
-
|
|
179
|
+
assertNonBlank(input.executionId, "accounting executionId");
|
|
319
180
|
}
|
|
320
181
|
const { limit, offset } = normalizePage(input.limit, input.offset);
|
|
321
182
|
return {
|
|
@@ -331,7 +192,7 @@ function aiAccountingItemMatchesQuery(item, query) {
|
|
|
331
192
|
return item.usage.projectId === query.projectId && occurredAt >= query.from.getTime() && occurredAt < query.to.getTime() && (query.providerId === undefined || item.usage.providerId === query.providerId) && (query.modelId === undefined || item.usage.requestedModelId === query.modelId);
|
|
332
193
|
}
|
|
333
194
|
function buildAiAccountingOverview(input, source) {
|
|
334
|
-
const query =
|
|
195
|
+
const query = normalizeAiAccountingQuery2(input);
|
|
335
196
|
assertAiAccountingBucket(input.bucket);
|
|
336
197
|
const items = Array.from(source).filter((item) => aiAccountingItemMatchesQuery(item, query));
|
|
337
198
|
const periods = accountingPeriods(query.from, query.to, input.bucket);
|
|
@@ -352,7 +213,7 @@ function buildAiAccountingOverview(input, source) {
|
|
|
352
213
|
item.attribution.agentStepId
|
|
353
214
|
]), item);
|
|
354
215
|
}
|
|
355
|
-
if (item.attribution?.kind === "workflowAgent") {
|
|
216
|
+
if (item.attribution?.kind === "workflowAgent" || item.attribution?.kind === "workflow") {
|
|
356
217
|
appendGrouped(workflowItems, item.attribution.workflowId, item);
|
|
357
218
|
}
|
|
358
219
|
}
|
|
@@ -384,8 +245,8 @@ function buildAiAccountingOverview(input, source) {
|
|
|
384
245
|
workflows
|
|
385
246
|
});
|
|
386
247
|
}
|
|
387
|
-
function
|
|
388
|
-
const query =
|
|
248
|
+
function buildAiAccountingOverviewFromFragments2(input, fragments) {
|
|
249
|
+
const query = normalizeAiAccountingQuery2(input);
|
|
389
250
|
const periods = accountingPeriods(query.from, query.to, input.bucket);
|
|
390
251
|
const totals = aggregateFragmentAccumulator();
|
|
391
252
|
const series = new Map(periods.map((period) => [period.start.getTime(), aggregateFragmentAccumulator()]));
|
|
@@ -451,9 +312,9 @@ function buildAiAccountingOverviewFromFragments(input, fragments) {
|
|
|
451
312
|
});
|
|
452
313
|
}
|
|
453
314
|
function buildAiModelCallAccountingList(input, source) {
|
|
454
|
-
const query =
|
|
315
|
+
const query = normalizeAiModelCallAccountingQuery2(input);
|
|
455
316
|
const { limit, offset } = query;
|
|
456
|
-
const items = Array.from(source).filter((item) => aiAccountingItemMatchesQuery(item, query)).map(
|
|
317
|
+
const items = Array.from(source).filter((item) => aiAccountingItemMatchesQuery(item, query)).map(toAccountingItem2).filter((item) => (input.executionId === undefined || item.usage.executionId === input.executionId) && (input.valuationStatus === undefined || item.valuationStatus === input.valuationStatus)).sort(compareAccountingItems);
|
|
457
318
|
const page = items.slice(offset, offset + limit);
|
|
458
319
|
return structuredClone({
|
|
459
320
|
items: page,
|
|
@@ -461,7 +322,7 @@ function buildAiModelCallAccountingList(input, source) {
|
|
|
461
322
|
total: items.length
|
|
462
323
|
});
|
|
463
324
|
}
|
|
464
|
-
function
|
|
325
|
+
function toAccountingItem2(item) {
|
|
465
326
|
return {
|
|
466
327
|
usage: item.usage,
|
|
467
328
|
...item.attribution === undefined ? {} : { attribution: item.attribution },
|
|
@@ -486,7 +347,7 @@ function aiAccountingBucketStart(at, bucket) {
|
|
|
486
347
|
function aggregateAccountingItems(items) {
|
|
487
348
|
return {
|
|
488
349
|
modelCallCount: items.length,
|
|
489
|
-
usage:
|
|
350
|
+
usage: aggregateAiModelCallUsage2(items.map((item) => item.usage.usage)),
|
|
490
351
|
costs: aggregateCosts(items)
|
|
491
352
|
};
|
|
492
353
|
}
|
|
@@ -575,7 +436,7 @@ function finishAggregateFragment(value) {
|
|
|
575
436
|
}
|
|
576
437
|
}
|
|
577
438
|
}
|
|
578
|
-
let usage =
|
|
439
|
+
let usage = normalizeAiModelCallUsage2(usageInput);
|
|
579
440
|
if (usage.reportingStatus === "unavailable" && value.reportedUsageCallCount > 0n) {
|
|
580
441
|
usage = { ...usage, reportingStatus: "partial" };
|
|
581
442
|
}
|
|
@@ -683,15 +544,28 @@ function assertDate(value, label) {
|
|
|
683
544
|
throw new TypeError(`[Sixb] AI ${label} must be a valid Date.`);
|
|
684
545
|
}
|
|
685
546
|
}
|
|
686
|
-
function
|
|
547
|
+
function assertNonBlank(value, label) {
|
|
687
548
|
if (typeof value !== "string" || value.trim().length === 0) {
|
|
688
549
|
throw new TypeError(`[Sixb] AI ${label} must be nonblank.`);
|
|
689
550
|
}
|
|
690
551
|
}
|
|
691
552
|
|
|
553
|
+
// src/storage/ai-cost/attribution.ts
|
|
554
|
+
function directModelCallAttribution2(kind, id, primitiveId) {
|
|
555
|
+
if (!id)
|
|
556
|
+
return;
|
|
557
|
+
if (kind === "request")
|
|
558
|
+
return { kind, requestId: id };
|
|
559
|
+
if (kind === "action" && primitiveId)
|
|
560
|
+
return { kind, actionId: primitiveId, actionRunId: id };
|
|
561
|
+
if (kind === "workflow" && primitiveId)
|
|
562
|
+
return { kind, workflowId: primitiveId, workflowRunId: id };
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
565
|
+
|
|
692
566
|
// src/storage/ai-cost/groups.ts
|
|
693
|
-
function
|
|
694
|
-
let attribution;
|
|
567
|
+
function aiModelCallGroupFragmentFromRow2(row) {
|
|
568
|
+
let attribution = directModelCallAttribution2(row.executor_kind, row.executor_id, row.primitive_id);
|
|
695
569
|
if (row.root_agent_run_id && row.root_thread_id) {
|
|
696
570
|
attribution = {
|
|
697
571
|
kind: "agent",
|
|
@@ -726,7 +600,7 @@ function aiModelCallGroupFragmentFromRow(row) {
|
|
|
726
600
|
}
|
|
727
601
|
};
|
|
728
602
|
}
|
|
729
|
-
function
|
|
603
|
+
function buildAiModelCallGroupsFromFragments2(fragments) {
|
|
730
604
|
const roots = new Map;
|
|
731
605
|
for (const fragment of fragments)
|
|
732
606
|
append(roots, fragment.root.executionId, fragment);
|
|
@@ -751,7 +625,7 @@ function buildAiModelCallGroupsFromFragments(fragments) {
|
|
|
751
625
|
}).sort((a, b) => b.lastCallAt.getTime() - a.lastCallAt.getTime() || compareText(a.executionId, b.executionId));
|
|
752
626
|
}
|
|
753
627
|
function buildAiModelCallGroups(input, source) {
|
|
754
|
-
const query =
|
|
628
|
+
const query = normalizeAiModelCallAccountingQuery2(input);
|
|
755
629
|
const fragments = source.filter((item) => aiAccountingItemMatchesQuery(item, query) && (query.valuationStatus === undefined || (item.cost?.status ?? "unvalued") === query.valuationStatus)).map((item) => ({
|
|
756
630
|
root: item.root,
|
|
757
631
|
execution: { executionId: item.usage.executionId, attribution: item.attribution },
|
|
@@ -764,7 +638,7 @@ function buildAiModelCallGroups(input, source) {
|
|
|
764
638
|
valuationStatus: item.cost?.status ?? "unvalued",
|
|
765
639
|
...item.cost && item.cost.status !== "unpriceable" ? { money: item.cost.money } : {}
|
|
766
640
|
}));
|
|
767
|
-
const groups =
|
|
641
|
+
const groups = buildAiModelCallGroupsFromFragments2(fragments);
|
|
768
642
|
const items = groups.slice(query.offset, query.offset + query.limit);
|
|
769
643
|
return structuredClone({
|
|
770
644
|
items,
|
|
@@ -858,7 +732,7 @@ var CONTEXT_STRING_FIELDS = [
|
|
|
858
732
|
"inferenceProfileId",
|
|
859
733
|
"mode"
|
|
860
734
|
];
|
|
861
|
-
function
|
|
735
|
+
function normalizeAiPricingContext2(input) {
|
|
862
736
|
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
863
737
|
throw new TypeError("[Sixb] AI pricing context must be an object.");
|
|
864
738
|
}
|
|
@@ -866,7 +740,7 @@ function normalizeAiPricingContext(input) {
|
|
|
866
740
|
for (const field of CONTEXT_STRING_FIELDS) {
|
|
867
741
|
const value = input[field];
|
|
868
742
|
if (value !== undefined) {
|
|
869
|
-
|
|
743
|
+
assertNonBlank2(value, `pricingContext.${field}`);
|
|
870
744
|
result[field] = value;
|
|
871
745
|
}
|
|
872
746
|
}
|
|
@@ -884,14 +758,14 @@ function normalizeAiPricingContext(input) {
|
|
|
884
758
|
}
|
|
885
759
|
return result;
|
|
886
760
|
}
|
|
887
|
-
function
|
|
888
|
-
|
|
889
|
-
|
|
761
|
+
function normalizeAiModelCallCostRecord2(input) {
|
|
762
|
+
assertNonBlank2(input.projectId, "cost record projectId");
|
|
763
|
+
assertNonBlank2(input.usageRecordId, "cost record usageRecordId");
|
|
890
764
|
const base = {
|
|
891
765
|
...input.estimate === undefined ? {} : { estimate: normalizeAiCostEstimate(input.estimate) },
|
|
892
766
|
projectId: input.projectId,
|
|
893
767
|
usageRecordId: input.usageRecordId,
|
|
894
|
-
pricingContext:
|
|
768
|
+
pricingContext: normalizeAiPricingContext2(input.pricingContext),
|
|
895
769
|
ratedAt: cloneDate(input.ratedAt, "cost record ratedAt")
|
|
896
770
|
};
|
|
897
771
|
if (input.status === "rated") {
|
|
@@ -908,14 +782,14 @@ function normalizeAiModelCallCostRecord(input) {
|
|
|
908
782
|
}
|
|
909
783
|
throw new TypeError("[Sixb] AI cost status is invalid.");
|
|
910
784
|
}
|
|
911
|
-
function
|
|
785
|
+
function aiModelCallCostMatchesUsage2(record, usageRecord) {
|
|
912
786
|
if (record.projectId !== usageRecord.projectId || record.usageRecordId !== usageRecord.id) {
|
|
913
787
|
return false;
|
|
914
788
|
}
|
|
915
789
|
if (record.estimate?.status === "rated") {
|
|
916
|
-
const
|
|
917
|
-
const
|
|
918
|
-
if (!inputComponentsMatchUsage(
|
|
790
|
+
const usage = normalizeAiModelCallUsage2(usageRecord.usage);
|
|
791
|
+
const components = new Map(record.estimate.components.map((component) => [component.meter, component]));
|
|
792
|
+
if (!inputComponentsMatchUsage(components, usage) || !outputComponentsMatchUsage(components, usage))
|
|
919
793
|
return false;
|
|
920
794
|
}
|
|
921
795
|
if (record.status === "unpriceable")
|
|
@@ -923,7 +797,7 @@ function aiModelCallCostMatchesUsage(record, usageRecord) {
|
|
|
923
797
|
if (record.components.length === 0 && isExternalValuationSource(record.priceSource.sourceId)) {
|
|
924
798
|
return true;
|
|
925
799
|
}
|
|
926
|
-
const usage =
|
|
800
|
+
const usage = normalizeAiModelCallUsage2(usageRecord.usage);
|
|
927
801
|
const components = new Map(record.components.map((component) => [component.meter, component]));
|
|
928
802
|
return inputComponentsMatchUsage(components, usage) && outputComponentsMatchUsage(components, usage);
|
|
929
803
|
}
|
|
@@ -1014,15 +888,15 @@ function normalizeRatedCost(input, base) {
|
|
|
1014
888
|
};
|
|
1015
889
|
}
|
|
1016
890
|
function normalizeAiCostEstimate(value) {
|
|
1017
|
-
|
|
891
|
+
assertJsonObject2(value, "AI cost estimate");
|
|
1018
892
|
if (value.status === "rated") {
|
|
1019
|
-
|
|
893
|
+
assertJsonObject2(value.money, "estimate money");
|
|
1020
894
|
const { currency, amountNanos } = value.money;
|
|
1021
895
|
if (typeof currency !== "string" || typeof amountNanos !== "string" || !Array.isArray(value.components))
|
|
1022
896
|
throw new TypeError("[Sixb] Invalid cost estimate money or components.");
|
|
1023
897
|
const components = value.components.map((component) => {
|
|
1024
|
-
|
|
1025
|
-
const meter = [...METERS].find((
|
|
898
|
+
assertJsonObject2(component, "estimate component");
|
|
899
|
+
const meter = [...METERS].find((meter) => meter === component.meter);
|
|
1026
900
|
if (!meter || typeof component.quantity !== "string" || typeof component.rateAmountNanosPerMillion !== "string" || typeof component.chargeAmountNanos !== "string")
|
|
1027
901
|
throw new TypeError("[Sixb] Invalid cost estimate component.");
|
|
1028
902
|
return normalizeCostComponent({
|
|
@@ -1040,7 +914,7 @@ function normalizeAiCostEstimate(value) {
|
|
|
1040
914
|
components
|
|
1041
915
|
};
|
|
1042
916
|
}
|
|
1043
|
-
const reason = [...UNPRICEABLE_REASONS].find((
|
|
917
|
+
const reason = [...UNPRICEABLE_REASONS].find((reason) => reason === value.reason);
|
|
1044
918
|
if (value.status !== "unpriceable" || !reason)
|
|
1045
919
|
throw new TypeError("[Sixb] Invalid cost estimate status or reason.");
|
|
1046
920
|
let missingMeters;
|
|
@@ -1048,7 +922,7 @@ function normalizeAiCostEstimate(value) {
|
|
|
1048
922
|
if (!Array.isArray(value.missingMeters))
|
|
1049
923
|
throw new TypeError("[Sixb] Invalid estimate missing meters.");
|
|
1050
924
|
missingMeters = normalizeMissingMeters(value.missingMeters.map((input) => {
|
|
1051
|
-
const meter = [...METERS].find((
|
|
925
|
+
const meter = [...METERS].find((meter) => meter === input);
|
|
1052
926
|
if (!meter)
|
|
1053
927
|
throw new TypeError("[Sixb] Invalid estimate missing meter.");
|
|
1054
928
|
return meter;
|
|
@@ -1111,11 +985,11 @@ function calculateComponent(meter, quantity, rateAmountNanosPerMillion) {
|
|
|
1111
985
|
};
|
|
1112
986
|
}
|
|
1113
987
|
function normalizePriceSource(input) {
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
988
|
+
assertNonBlank2(input.sourceId, "price sourceId");
|
|
989
|
+
assertNonBlank2(input.sourceEntryId, "price sourceEntryId");
|
|
990
|
+
assertNonBlank2(input.sourceVersion, "price sourceVersion");
|
|
1117
991
|
if (input.sourceUrl !== undefined)
|
|
1118
|
-
|
|
992
|
+
assertNonBlank2(input.sourceUrl, "price sourceUrl");
|
|
1119
993
|
return {
|
|
1120
994
|
sourceId: input.sourceId,
|
|
1121
995
|
sourceEntryId: input.sourceEntryId,
|
|
@@ -1125,8 +999,8 @@ function normalizePriceSource(input) {
|
|
|
1125
999
|
};
|
|
1126
1000
|
}
|
|
1127
1001
|
function normalizeBillingIdentity(input) {
|
|
1128
|
-
|
|
1129
|
-
|
|
1002
|
+
assertNonBlank2(input.providerId, "billingIdentity.providerId");
|
|
1003
|
+
assertNonBlank2(input.modelId, "billingIdentity.modelId");
|
|
1130
1004
|
return { providerId: input.providerId, modelId: input.modelId };
|
|
1131
1005
|
}
|
|
1132
1006
|
function normalizeMissingMeters(input) {
|
|
@@ -1178,7 +1052,7 @@ function assertSignedInt64(value, field) {
|
|
|
1178
1052
|
throw new TypeError(`[Sixb] AI ${field} exceeds the signed 64-bit range.`);
|
|
1179
1053
|
}
|
|
1180
1054
|
}
|
|
1181
|
-
function
|
|
1055
|
+
function assertNonBlank2(value, field) {
|
|
1182
1056
|
if (typeof value !== "string" || value.trim().length === 0) {
|
|
1183
1057
|
throw new TypeError(`[Sixb] AI ${field} must be nonblank.`);
|
|
1184
1058
|
}
|
|
@@ -1190,6 +1064,6 @@ function cloneDate(value, field) {
|
|
|
1190
1064
|
return new Date(value);
|
|
1191
1065
|
}
|
|
1192
1066
|
|
|
1193
|
-
export {
|
|
1067
|
+
export { AiUsageStorageError2, InMemoryAiUsageStorage2, normalizeAiAccountingQuery2, normalizeAiModelCallAccountingQuery2, buildAiAccountingOverview, buildAiAccountingOverviewFromFragments2, buildAiModelCallAccountingList, toAccountingItem2, directModelCallAttribution2, aiModelCallGroupFragmentFromRow2, buildAiModelCallGroupsFromFragments2, buildAiModelCallGroups, normalizeAiPricingContext2, normalizeAiModelCallCostRecord2, aiModelCallCostMatchesUsage2, normalizeAiCostEstimate };
|
|
1194
1068
|
|
|
1195
|
-
//# debugId=
|
|
1069
|
+
//# debugId=3EFE5C3CDFF5349664756E2164756E21
|