@sixb/core 0.1.11 → 0.1.12
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/builders/params.d.ts +1 -22
- package/dist/actions/builders/params.d.ts.map +1 -1
- package/dist/actions/index.js +29 -28
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/types/params.d.ts +10 -44
- package/dist/actions/types/params.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +3 -2
- package/dist/actions/worker.js.map +2 -2
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts +15 -9
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/ids.d.ts +2 -0
- package/dist/agents/ids.d.ts.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +48 -42
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/sandbox.d.ts +5 -0
- package/dist/agents/sandbox.d.ts.map +1 -0
- package/dist/agents/streams/index.js +4 -3
- package/dist/agents/streams/index.js.map +1 -1
- package/dist/agents/streams/internal.js +4 -3
- package/dist/agents/streams/internal.js.map +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/auth/index.js +8 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/index.js +5 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/bootstrap/index.js +50 -46
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/{chunk-17kfctj6.js → chunk-0mza4xb2.js} +2 -2
- package/dist/{chunk-g00bfdq6.js → chunk-2cxv584m.js} +12 -56
- package/dist/{chunk-g00bfdq6.js.map → chunk-2cxv584m.js.map} +3 -3
- package/dist/{chunk-jsy70480.js → chunk-2h63nrde.js} +365 -95
- package/dist/chunk-2h63nrde.js.map +20 -0
- package/dist/{chunk-1yefycb1.js → chunk-3bnt2wna.js} +2 -2
- package/dist/{chunk-awbhdqyc.js → chunk-3ghw2t5q.js} +1 -1
- package/dist/{chunk-b19g04jk.js → chunk-3h7ctayx.js} +1 -1
- package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
- package/dist/{chunk-5hz0fnca.js → chunk-4k53sm9e.js} +6 -2
- package/dist/chunk-4k53sm9e.js.map +12 -0
- package/dist/chunk-4ph94nhd.js +81 -0
- package/dist/chunk-4ph94nhd.js.map +10 -0
- package/dist/chunk-58geavnf.js +29 -0
- package/dist/chunk-58geavnf.js.map +10 -0
- package/dist/{chunk-0y39rgsb.js → chunk-5tetw4hn.js} +1 -1
- package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
- package/dist/chunk-69266efg.js.map +12 -0
- package/dist/{chunk-a0e6x5hd.js → chunk-6ma8dvzc.js} +121 -53
- package/dist/chunk-6ma8dvzc.js.map +15 -0
- package/dist/{chunk-skz0hst3.js → chunk-7c2g3sz9.js} +6 -86
- package/dist/{chunk-skz0hst3.js.map → chunk-7c2g3sz9.js.map} +3 -3
- package/dist/{chunk-z0s4axeh.js → chunk-7qnvhtcd.js} +93 -17
- package/dist/{chunk-z0s4axeh.js.map → chunk-7qnvhtcd.js.map} +7 -6
- package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
- package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
- package/dist/chunk-91kcnbf0.js.map +10 -0
- package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
- package/dist/chunk-96yw3pwd.js.map +10 -0
- package/dist/chunk-98cw09sw.js.map +2 -2
- package/dist/{chunk-93csa55g.js → chunk-axndsymr.js} +10 -4
- package/dist/chunk-axndsymr.js.map +11 -0
- package/dist/{chunk-4zhmdsx6.js → chunk-b768c93y.js} +61 -23
- package/dist/{chunk-4zhmdsx6.js.map → chunk-b768c93y.js.map} +5 -5
- package/dist/{chunk-dz5h08xv.js → chunk-bbaa1fet.js} +24 -9
- package/dist/{chunk-dz5h08xv.js.map → chunk-bbaa1fet.js.map} +4 -4
- package/dist/{chunk-7apz6hg4.js → chunk-bet1rb9h.js} +8 -4
- package/dist/chunk-bet1rb9h.js.map +10 -0
- package/dist/{chunk-358caqf5.js → chunk-bfjv1adk.js} +2 -2
- package/dist/{chunk-g91qxjj0.js → chunk-bg2bs62d.js} +5 -5
- package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
- package/dist/chunk-cd234ba4.js.map +14 -0
- package/dist/chunk-dmn70ztd.js.map +2 -2
- package/dist/{chunk-d63nnr5b.js → chunk-e1f1sqba.js} +39 -53
- package/dist/{chunk-d63nnr5b.js.map → chunk-e1f1sqba.js.map} +5 -6
- package/dist/{chunk-ap0g1g74.js → chunk-eyjzgav0.js} +39 -4
- package/dist/chunk-eyjzgav0.js.map +12 -0
- package/dist/{chunk-rb1xx120.js → chunk-f06sf7rr.js} +9 -5
- package/dist/chunk-f06sf7rr.js.map +11 -0
- package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
- package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
- package/dist/{chunk-38zv5rkr.js → chunk-g2gezsg5.js} +1 -1
- package/dist/{chunk-38zv5rkr.js.map → chunk-g2gezsg5.js.map} +2 -2
- package/dist/{chunk-01kj2pbh.js → chunk-g50nxqs5.js} +53 -66
- package/dist/chunk-g50nxqs5.js.map +18 -0
- package/dist/{chunk-1824gssz.js → chunk-gswwr35f.js} +4 -4
- package/dist/{chunk-92vk7gta.js → chunk-gzt6v1ja.js} +1 -1
- package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
- package/dist/chunk-hgqpcmyr.js.map +12 -0
- package/dist/{chunk-gqh45d2n.js → chunk-hkw8rykk.js} +2 -2
- package/dist/{chunk-f4w3yp4f.js → chunk-hzw7yv5g.js} +104 -21
- package/dist/chunk-hzw7yv5g.js.map +13 -0
- package/dist/{chunk-cfvakeax.js → chunk-jjwhy3rs.js} +5 -5
- package/dist/chunk-kept9cdd.js +29 -0
- package/dist/chunk-kept9cdd.js.map +10 -0
- package/dist/{chunk-ftv470j8.js → chunk-m7cx05vp.js} +247 -16
- package/dist/{chunk-ftv470j8.js.map → chunk-m7cx05vp.js.map} +14 -10
- package/dist/{chunk-z0271qkp.js → chunk-mdnw7nj8.js} +8 -6
- package/dist/chunk-mdnw7nj8.js.map +15 -0
- package/dist/{chunk-gq8vhakp.js → chunk-nzsy3xrp.js} +249 -86
- package/dist/{chunk-gq8vhakp.js.map → chunk-nzsy3xrp.js.map} +13 -11
- package/dist/chunk-p1683c0v.js +104 -0
- package/dist/chunk-p1683c0v.js.map +11 -0
- package/dist/chunk-p6r1ex7t.js +93 -0
- package/dist/chunk-p6r1ex7t.js.map +10 -0
- package/dist/{chunk-sepyxgpc.js → chunk-qm535afa.js} +10 -10
- package/dist/{chunk-sepyxgpc.js.map → chunk-qm535afa.js.map} +4 -4
- package/dist/chunk-r5zythxp.js +552 -0
- package/dist/chunk-r5zythxp.js.map +17 -0
- package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
- package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
- package/dist/{chunk-3ckk0xfj.js → chunk-sfypc7mk.js} +18 -13
- package/dist/{chunk-3ckk0xfj.js.map → chunk-sfypc7mk.js.map} +3 -3
- package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
- package/dist/chunk-t6f3tdnr.js.map +10 -0
- package/dist/{chunk-x9m9x2eq.js → chunk-t7dzd1tm.js} +3 -3
- package/dist/{chunk-pr2h4bv4.js → chunk-tg4g4zh0.js} +3 -3
- package/dist/chunk-vpxss818.js +56 -0
- package/dist/chunk-vpxss818.js.map +10 -0
- package/dist/{chunk-ms2tmn1k.js → chunk-vsg0g7h9.js} +53 -57
- package/dist/chunk-vsg0g7h9.js.map +17 -0
- package/dist/{chunk-8vj0rjgs.js → chunk-wjffn5m4.js} +1 -1
- package/dist/{chunk-wf88w4kp.js → chunk-x9tmx3fc.js} +2 -2
- package/dist/{chunk-fh8kgex1.js → chunk-xn686q2e.js} +8 -8
- package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
- package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
- package/dist/{chunk-v2vcg0w6.js → chunk-xtfryrfb.js} +2 -2
- package/dist/chunk-y0v18c2j.js +363 -0
- package/dist/chunk-y0v18c2j.js.map +14 -0
- package/dist/{chunk-72w2pxk7.js → chunk-y1ahv8b7.js} +11 -3
- package/dist/{chunk-72w2pxk7.js.map → chunk-y1ahv8b7.js.map} +3 -3
- package/dist/chunk-y3ev53cq.js +84 -0
- package/dist/chunk-y3ev53cq.js.map +10 -0
- package/dist/{chunk-gqm76kse.js → chunk-ybhz3j9g.js} +342 -41
- package/dist/{chunk-gqm76kse.js.map → chunk-ybhz3j9g.js.map} +17 -12
- package/dist/{chunk-z30bv4ga.js → chunk-yxb4c62x.js} +3 -2
- package/dist/{chunk-z30bv4ga.js.map → chunk-yxb4c62x.js.map} +3 -3
- package/dist/chunk-z3y5kg1x.js +14 -0
- package/dist/chunk-z3y5kg1x.js.map +10 -0
- package/dist/datasets/validation.d.ts +4 -0
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +5 -4
- package/dist/datasets/write.js.map +1 -1
- package/dist/error-reporting/capability.d.ts +3 -2
- package/dist/error-reporting/capability.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +5 -4
- package/dist/error-reporting/internal.js.map +1 -1
- package/dist/error-reporting/reports.d.ts +10 -0
- package/dist/error-reporting/reports.d.ts.map +1 -1
- package/dist/error-reporting/types.d.ts +10 -2
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +12 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/failure-message.d.ts +8 -0
- package/dist/errors/failure-message.d.ts.map +1 -0
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +3 -2
- package/dist/errors/internal.js.map +1 -1
- package/dist/events/index.js +5 -4
- package/dist/events/index.js.map +1 -1
- package/dist/execution/agent.js +44 -41
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +3 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/kernel-operation.d.ts +4 -0
- package/dist/execution/kernel-operation.d.ts.map +1 -0
- package/dist/execution/primitive.js +44 -41
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +45 -42
- package/dist/execution/request.js.map +2 -2
- package/dist/execution/types.d.ts +6 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/index.d.ts +15 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -59
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.js +5 -4
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/materialization/errors.d.ts +1 -1
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/index.d.ts +1 -0
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/model.d.ts +2 -0
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materialization/vectors.d.ts +19 -0
- package/dist/materialization/vectors.d.ts.map +1 -0
- package/dist/materializer/context.d.ts.map +1 -1
- package/dist/materializer/edits/commit.d.ts.map +1 -1
- package/dist/materializer/edits/vector-authority.d.ts +6 -0
- package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
- package/dist/materializer/edits/vectors.d.ts +6 -0
- package/dist/materializer/edits/vectors.d.ts.map +1 -0
- package/dist/materializer/effective/validate.d.ts.map +1 -1
- package/dist/materializer/effective/vector-indexing.d.ts +7 -0
- package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
- package/dist/materializer/effective/vectors.d.ts +6 -0
- package/dist/materializer/effective/vectors.d.ts.map +1 -0
- package/dist/materializer/execution/work-executor.d.ts +2 -1
- package/dist/materializer/execution/work-executor.d.ts.map +1 -1
- package/dist/materializer/index.js +26 -25
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/catalog-index.d.ts +15 -0
- package/dist/models/catalog-index.d.ts.map +1 -0
- package/dist/models/catalog.d.ts +27 -6
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/decision/catalog.d.ts +12 -0
- package/dist/models/decision/catalog.d.ts.map +1 -0
- package/dist/models/decision/errors.d.ts +7 -0
- package/dist/models/decision/errors.d.ts.map +1 -0
- package/dist/models/decision/output.d.ts +50 -0
- package/dist/models/decision/output.d.ts.map +1 -0
- package/dist/models/decision/questions.d.ts +14 -0
- package/dist/models/decision/questions.d.ts.map +1 -0
- package/dist/models/decision/runtime.d.ts +7 -0
- package/dist/models/decision/runtime.d.ts.map +1 -0
- package/dist/models/decision/types.d.ts +92 -0
- package/dist/models/decision/types.d.ts.map +1 -0
- package/dist/models/decision/validation.d.ts +7 -0
- package/dist/models/decision/validation.d.ts.map +1 -0
- package/dist/models/definitions.d.ts +1 -1
- package/dist/models/definitions.d.ts.map +1 -1
- package/dist/models/embedding-model.d.ts +60 -0
- package/dist/models/embedding-model.d.ts.map +1 -0
- package/dist/models/execution/binding.d.ts +2 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/embedding.d.ts +5 -0
- package/dist/models/execution/embedding.d.ts.map +1 -0
- package/dist/models/execution/index.js +29 -26
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +5 -1
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution/session.d.ts +21 -0
- package/dist/models/execution/session.d.ts.map +1 -0
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/generation-types.d.ts +2 -0
- package/dist/models/generation-types.d.ts.map +1 -1
- package/dist/models/index.d.ts +9 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +17 -7
- package/dist/models/index.js.map +1 -1
- package/dist/models/pricing.d.ts +3 -2
- package/dist/models/pricing.d.ts.map +1 -1
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +1 -0
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +29 -28
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.d.ts +2 -0
- package/dist/objects/query/index.d.ts.map +1 -1
- package/dist/objects/query/index.js +34 -24
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +6 -2
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts +5 -0
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-executor.d.ts +2 -0
- package/dist/objects/sdk/query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/vectors/handle.d.ts +4 -0
- package/dist/objects/vectors/handle.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-batch.d.ts +6 -0
- package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-generate.d.ts +11 -0
- package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
- package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-shared.d.ts +17 -0
- package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-single.d.ts +4 -0
- package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
- package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
- package/dist/objects/vectors/indexing.d.ts +7 -0
- package/dist/objects/vectors/indexing.d.ts.map +1 -0
- package/dist/objects/vectors/profile.d.ts +13 -0
- package/dist/objects/vectors/profile.d.ts.map +1 -0
- package/dist/objects/vectors/query.d.ts +5 -0
- package/dist/objects/vectors/query.d.ts.map +1 -0
- package/dist/objects/vectors/resolve-query.d.ts +6 -0
- package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
- package/dist/objects/vectors/types.d.ts +11 -0
- package/dist/objects/vectors/types.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +2 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +5 -5
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.js +5 -4
- package/dist/ontology/internal.js.map +1 -1
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +8 -9
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/definition.d.ts +3 -0
- package/dist/ontology/validation/definition.d.ts.map +1 -0
- package/dist/ontology/validation/properties.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +1 -1
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/ontology/vector-profiles.d.ts +4 -0
- package/dist/ontology/vector-profiles.d.ts.map +1 -0
- package/dist/pipelines/index.js +28 -27
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +24 -23
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +2 -1
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +5 -0
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +4 -3
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +9 -6
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +3 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +47 -1
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +9 -4
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +15 -3
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/auth.d.ts +16 -0
- package/dist/sandboxes/auth.d.ts.map +1 -0
- package/dist/sandboxes/config.d.ts +5 -0
- package/dist/sandboxes/config.d.ts.map +1 -0
- package/dist/sandboxes/configuration.d.ts +41 -0
- package/dist/sandboxes/configuration.d.ts.map +1 -0
- package/dist/sandboxes/environment.d.ts +13 -0
- package/dist/sandboxes/environment.d.ts.map +1 -0
- package/dist/sandboxes/errors.d.ts +1 -1
- package/dist/sandboxes/errors.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +6 -1
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +16 -3
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +35 -3
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/shared/params/builders.d.ts +25 -0
- package/dist/shared/params/builders.d.ts.map +1 -0
- package/dist/shared/params/types.d.ts +47 -0
- package/dist/shared/params/types.d.ts.map +1 -0
- package/dist/shared/params/validation.d.ts +15 -0
- package/dist/shared/params/validation.d.ts.map +1 -0
- package/dist/shares/internal.js +23 -22
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +4 -3
- package/dist/storage/action-runs/failure.js.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/agents/in-memory.d.ts +2 -1
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/index.d.ts +1 -1
- package/dist/storage/agents/index.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts +5 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +8 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +49 -0
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +1 -0
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/index.d.ts +1 -1
- package/dist/storage/ai-cost/index.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +2 -2
- package/dist/storage/ai-cost/types.d.ts +14 -2
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +4 -3
- package/dist/storage/ai-limits/enforcement.js.map +1 -1
- package/dist/storage/connector-connections/provider.js +3 -2
- package/dist/storage/connector-connections/provider.js.map +2 -2
- package/dist/storage/executions/provider.d.ts +3 -3
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +13 -11
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/types.d.ts +3 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/index.d.ts +5 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +25 -22
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +2 -2
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/storage.d.ts +7 -0
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
- package/dist/storage/objects/types.d.ts +2 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +1 -0
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/index.d.ts +4 -0
- package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
- package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
- package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
- package/dist/storage/ontology/index.d.ts +6 -0
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +2 -2
- package/dist/storage/ontology/vector-indexing.d.ts +94 -0
- package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
- package/dist/storage/ontology/vectors.d.ts +56 -0
- package/dist/storage/ontology/vectors.d.ts.map +1 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/provider.js +4 -3
- package/dist/storage/projection-runs/provider.js.map +1 -1
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +9 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +29 -28
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.js +448 -69
- package/dist/testing/index.js.map +7 -7
- package/dist/testing/object-query-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +24 -23
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +3 -2
- package/dist/workers/index.js.map +2 -2
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.js +47 -43
- package/dist/workflows/index.js.map +1 -1
- package/package.json +1 -1
- package/src/actions/builders/params.ts +1 -48
- package/src/actions/types/params.ts +14 -74
- package/src/actions/validation.ts +7 -84
- package/src/agents/errors.ts +3 -0
- package/src/agents/execution.ts +67 -15
- package/src/agents/ids.ts +8 -0
- package/src/agents/index.ts +1 -0
- package/src/agents/request.ts +11 -0
- package/src/agents/sandbox.ts +44 -0
- package/src/agents/validation.ts +2 -108
- package/src/datasets/validation.ts +40 -11
- package/src/datasets/write.ts +8 -11
- package/src/error-reporting/capability.ts +11 -0
- package/src/error-reporting/reports.ts +23 -0
- package/src/error-reporting/types.ts +12 -1
- package/src/errors/catalog.ts +12 -0
- package/src/errors/failure-message.ts +15 -0
- package/src/errors/internal.ts +57 -25
- package/src/execution/authorization.ts +12 -5
- package/src/execution/authorized-object-reader.ts +37 -2
- package/src/execution/kernel-operation.ts +27 -0
- package/src/execution/scopes.ts +2 -0
- package/src/execution/types.ts +4 -4
- package/src/index.ts +60 -1
- package/src/lake-storage/in-memory.ts +5 -3
- package/src/materialization/errors.ts +2 -2
- package/src/materialization/index.ts +1 -0
- package/src/materialization/model.ts +2 -0
- package/src/materialization/vectors.ts +18 -0
- package/src/materializer/README.md +14 -0
- package/src/materializer/context.ts +10 -0
- package/src/materializer/edits/commit.ts +8 -1
- package/src/materializer/edits/vector-authority.ts +108 -0
- package/src/materializer/edits/vectors.ts +100 -0
- package/src/materializer/effective/validate.ts +10 -3
- package/src/materializer/effective/vector-indexing.ts +84 -0
- package/src/materializer/effective/vectors.ts +47 -0
- package/src/materializer/execution/work-executor.ts +11 -3
- package/src/materializer/projections/replace.ts +1 -1
- package/src/materializer/shared/normalize.ts +11 -0
- package/src/materializer/telemetry/append.ts +1 -1
- package/src/models/catalog-index.ts +38 -0
- package/src/models/catalog.ts +66 -38
- package/src/models/decision/catalog.ts +32 -0
- package/src/models/decision/errors.ts +18 -0
- package/src/models/decision/output.ts +101 -0
- package/src/models/decision/questions.ts +29 -0
- package/src/models/decision/runtime.ts +188 -0
- package/src/models/decision/types.ts +109 -0
- package/src/models/decision/validation.ts +335 -0
- package/src/models/definitions.ts +1 -1
- package/src/models/embedding-model.ts +129 -0
- package/src/models/execution/README.md +63 -0
- package/src/models/execution/binding.ts +2 -0
- package/src/models/execution/embedding.ts +133 -0
- package/src/models/execution/model-call-recorder.ts +42 -30
- package/src/models/execution/session.ts +81 -0
- package/src/models/execution.ts +10 -52
- package/src/models/generation-types.ts +2 -0
- package/src/models/index.ts +37 -0
- package/src/models/pricing.ts +1 -2
- package/src/objects/authorized-ontology-view.ts +12 -8
- package/src/objects/execution.ts +2 -0
- package/src/objects/query/executor.ts +13 -4
- package/src/objects/query/explain.ts +7 -2
- package/src/objects/query/index.ts +2 -0
- package/src/objects/query/ir.ts +6 -2
- package/src/objects/query/normalize.ts +5 -1
- package/src/objects/query/validate.ts +74 -73
- package/src/objects/sdk/object-handle.ts +3 -0
- package/src/objects/sdk/object-set.ts +1 -0
- package/src/objects/sdk/query-builder.ts +9 -3
- package/src/objects/sdk/query-executor.ts +2 -1
- package/src/objects/sdk/runtime-query-executor.ts +6 -2
- package/src/objects/vectors/README.md +59 -0
- package/src/objects/vectors/handle.ts +91 -0
- package/src/objects/vectors/indexing-batch.ts +163 -0
- package/src/objects/vectors/indexing-generate.ts +184 -0
- package/src/objects/vectors/indexing-runtime.ts +17 -0
- package/src/objects/vectors/indexing-shared.ts +188 -0
- package/src/objects/vectors/indexing-single.ts +51 -0
- package/src/objects/vectors/indexing-store-batch.ts +62 -0
- package/src/objects/vectors/indexing.ts +23 -0
- package/src/objects/vectors/profile.ts +64 -0
- package/src/objects/vectors/query.ts +16 -0
- package/src/objects/vectors/resolve-query.ts +89 -0
- package/src/objects/vectors/types.ts +10 -0
- package/src/ontology/index.ts +2 -0
- package/src/ontology/registry.ts +8 -0
- package/src/ontology/types.ts +9 -9
- package/src/ontology/validation/definition.ts +104 -0
- package/src/ontology/validation/properties.ts +14 -4
- package/src/ontology/validation/query.ts +34 -51
- package/src/ontology/validation/schema.ts +85 -23
- package/src/ontology/vector-profiles.ts +35 -0
- package/src/queues/in-memory.ts +5 -0
- package/src/queues/index.ts +1 -0
- package/src/queues/types.ts +10 -0
- package/src/runtime/create.ts +7 -6
- package/src/runtime/host.ts +42 -6
- package/src/runtime/internal.ts +3 -0
- package/src/runtime/resolve-definitions.ts +19 -1
- package/src/runtime/sixb.ts +27 -9
- package/src/runtime/types.ts +16 -4
- package/src/sandboxes/README.md +41 -0
- package/src/sandboxes/auth.ts +17 -0
- package/src/sandboxes/config.ts +37 -0
- package/src/sandboxes/configuration.ts +268 -0
- package/src/sandboxes/environment.ts +107 -0
- package/src/sandboxes/errors.ts +1 -1
- package/src/sandboxes/index.ts +15 -0
- package/src/sandboxes/sandbox.ts +38 -3
- package/src/shared/params/builders.ts +50 -0
- package/src/shared/params/types.ts +84 -0
- package/src/shared/params/validation.ts +114 -0
- package/src/storage/agents/in-memory.ts +25 -1
- package/src/storage/agents/index.ts +3 -0
- package/src/storage/agents/provider.ts +105 -0
- package/src/storage/agents/types.ts +54 -0
- package/src/storage/ai-cost/analytics.ts +59 -21
- package/src/storage/ai-cost/index.ts +1 -0
- package/src/storage/ai-cost/types.ts +19 -2
- package/src/storage/executions/provider.ts +24 -12
- package/src/storage/executions/types.ts +1 -0
- package/src/storage/executions/validation.ts +7 -3
- package/src/storage/index.ts +15 -1
- package/src/storage/objects/in-memory/query.ts +25 -11
- package/src/storage/objects/in-memory/read-scope.ts +9 -2
- package/src/storage/objects/in-memory/read-source.ts +5 -0
- package/src/storage/objects/in-memory/selected-reader.ts +5 -1
- package/src/storage/objects/in-memory/storage.ts +19 -1
- package/src/storage/objects/types.ts +2 -0
- package/src/storage/ontology/commits.ts +1 -0
- package/src/storage/ontology/in-memory/index.ts +20 -0
- package/src/storage/ontology/in-memory/materializations.ts +13 -0
- package/src/storage/ontology/in-memory/shared-state.ts +9 -0
- package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
- package/src/storage/ontology/in-memory/vectors.ts +73 -0
- package/src/storage/ontology/index.ts +14 -0
- package/src/storage/ontology/vector-indexing.ts +98 -0
- package/src/storage/ontology/vectors.ts +48 -0
- package/src/storage/operation-scope.ts +1 -0
- package/src/storage/types.ts +3 -0
- package/src/testing/agent-storage-contract.ts +246 -0
- package/src/testing/ai-cost-storage-contract.ts +134 -0
- package/src/testing/object-query-contract.ts +41 -25
- package/src/testing/object-read-scope-contract.ts +1 -5
- package/src/testing/queues-contract.ts +31 -0
- package/src/workflows/failure.ts +10 -4
- package/src/workflows/validation.ts +2 -2
- package/dist/chunk-01kj2pbh.js.map +0 -19
- package/dist/chunk-5hz0fnca.js.map +0 -12
- package/dist/chunk-7apz6hg4.js.map +0 -10
- package/dist/chunk-7bs40fe1.js.map +0 -12
- package/dist/chunk-860dwwy0.js.map +0 -14
- package/dist/chunk-93csa55g.js.map +0 -11
- package/dist/chunk-a0e6x5hd.js.map +0 -14
- package/dist/chunk-aa6z4a19.js.map +0 -12
- package/dist/chunk-ap0g1g74.js.map +0 -11
- package/dist/chunk-f0rwz2vh.js.map +0 -11
- package/dist/chunk-f4w3yp4f.js.map +0 -12
- package/dist/chunk-jsy70480.js.map +0 -15
- package/dist/chunk-mrp7k0pw.js.map +0 -10
- package/dist/chunk-ms2tmn1k.js.map +0 -17
- package/dist/chunk-rb1xx120.js.map +0 -11
- package/dist/chunk-yv79ncbv.js.map +0 -10
- package/dist/chunk-z0271qkp.js.map +0 -15
- package/dist/chunk-z3y411fq.js +0 -99
- package/dist/chunk-z3y411fq.js.map +0 -11
- /package/dist/{chunk-17kfctj6.js.map → chunk-0mza4xb2.js.map} +0 -0
- /package/dist/{chunk-1yefycb1.js.map → chunk-3bnt2wna.js.map} +0 -0
- /package/dist/{chunk-awbhdqyc.js.map → chunk-3ghw2t5q.js.map} +0 -0
- /package/dist/{chunk-b19g04jk.js.map → chunk-3h7ctayx.js.map} +0 -0
- /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
- /package/dist/{chunk-0y39rgsb.js.map → chunk-5tetw4hn.js.map} +0 -0
- /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
- /package/dist/{chunk-358caqf5.js.map → chunk-bfjv1adk.js.map} +0 -0
- /package/dist/{chunk-g91qxjj0.js.map → chunk-bg2bs62d.js.map} +0 -0
- /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
- /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
- /package/dist/{chunk-1824gssz.js.map → chunk-gswwr35f.js.map} +0 -0
- /package/dist/{chunk-92vk7gta.js.map → chunk-gzt6v1ja.js.map} +0 -0
- /package/dist/{chunk-gqh45d2n.js.map → chunk-hkw8rykk.js.map} +0 -0
- /package/dist/{chunk-cfvakeax.js.map → chunk-jjwhy3rs.js.map} +0 -0
- /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
- /package/dist/{chunk-653vwrzr.js.map → chunk-rdghfsss.js.map} +0 -0
- /package/dist/{chunk-x9m9x2eq.js.map → chunk-t7dzd1tm.js.map} +0 -0
- /package/dist/{chunk-pr2h4bv4.js.map → chunk-tg4g4zh0.js.map} +0 -0
- /package/dist/{chunk-8vj0rjgs.js.map → chunk-wjffn5m4.js.map} +0 -0
- /package/dist/{chunk-wf88w4kp.js.map → chunk-x9tmx3fc.js.map} +0 -0
- /package/dist/{chunk-fh8kgex1.js.map → chunk-xn686q2e.js.map} +0 -0
- /package/dist/{chunk-v2vcg0w6.js.map → chunk-xtfryrfb.js.map} +0 -0
package/src/models/catalog.ts
CHANGED
|
@@ -1,17 +1,32 @@
|
|
|
1
1
|
import { RuntimeError } from "../runtime/errors"
|
|
2
|
+
import { indexModelBindings } from "./catalog-index"
|
|
3
|
+
import { createDecisionCatalog, type DecisionModelCatalog } from "./decision/catalog"
|
|
4
|
+
import type { DecisionModel } from "./decision/types"
|
|
2
5
|
import {
|
|
3
6
|
defineLanguageModel,
|
|
4
7
|
type LanguageModelDefinition,
|
|
5
8
|
type ModelDefinition,
|
|
6
9
|
} from "./definitions"
|
|
10
|
+
import { assertEmbeddingModel, type EmbeddingModel } from "./embedding-model"
|
|
7
11
|
import type { LanguageModel } from "./language-model"
|
|
8
12
|
|
|
9
|
-
/** Stable identity of
|
|
10
|
-
export interface
|
|
13
|
+
/** Stable identity of a configured provider binding. */
|
|
14
|
+
export interface ModelRef {
|
|
11
15
|
readonly provider: string
|
|
12
16
|
readonly modelId: string
|
|
13
17
|
}
|
|
14
18
|
|
|
19
|
+
export type LanguageModelRef = ModelRef
|
|
20
|
+
|
|
21
|
+
export interface EmbeddingModelEntry extends ModelRef {
|
|
22
|
+
readonly model: EmbeddingModel
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface EmbeddingModelCatalog {
|
|
26
|
+
list(): readonly EmbeddingModelEntry[]
|
|
27
|
+
getByRef(ref: ModelRef): EmbeddingModelEntry | null
|
|
28
|
+
}
|
|
29
|
+
|
|
15
30
|
/** The configured language models, with the project default. */
|
|
16
31
|
export interface LanguageModelCatalog {
|
|
17
32
|
readonly default: LanguageModelEntry
|
|
@@ -32,61 +47,74 @@ export interface LanguageModelEntry extends LanguageModelRef {
|
|
|
32
47
|
|
|
33
48
|
/** Models a project allows Sixb to use, organized by technical model kind. */
|
|
34
49
|
export interface ModelCatalog {
|
|
35
|
-
readonly language
|
|
50
|
+
readonly language?: LanguageModelCatalog
|
|
51
|
+
readonly decision?: DecisionModelCatalog
|
|
52
|
+
readonly embedding: EmbeddingModelCatalog
|
|
36
53
|
}
|
|
37
54
|
|
|
38
55
|
export interface ModelCatalogInput {
|
|
39
56
|
/** Ordered; the first entry is the project default. */
|
|
40
|
-
readonly language
|
|
57
|
+
readonly language?: readonly LanguageModel[]
|
|
58
|
+
/** Ordered; the first entry is the project default decision model. */
|
|
59
|
+
readonly decision?: readonly DecisionModel[]
|
|
60
|
+
readonly embedding?: readonly EmbeddingModel[]
|
|
41
61
|
}
|
|
42
62
|
|
|
43
|
-
|
|
63
|
+
// Only statically required inputs make their corresponding catalogs required.
|
|
64
|
+
type ConfiguredModelKinds<TInput> = {
|
|
65
|
+
[Kind in keyof ModelCatalog]-?: [TInput] extends [Record<Kind, readonly unknown[]>] ? Kind : never
|
|
66
|
+
}[keyof ModelCatalog]
|
|
67
|
+
|
|
68
|
+
export type ModelCatalogFor<TInput extends ModelCatalogInput> = ModelCatalog &
|
|
69
|
+
Required<Pick<ModelCatalog, ConfiguredModelKinds<TInput>>>
|
|
70
|
+
|
|
71
|
+
/** Build an immutable catalog while preserving each family's default and empty-list rules. */
|
|
72
|
+
export function createModelCatalog<TInput extends ModelCatalogInput>(
|
|
73
|
+
input: TInput
|
|
74
|
+
): ModelCatalogFor<TInput>
|
|
44
75
|
export function createModelCatalog(input: ModelCatalogInput): ModelCatalog {
|
|
45
|
-
if (!Array.isArray(input
|
|
46
|
-
throw new RuntimeError("[Sixb] 'models
|
|
76
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) {
|
|
77
|
+
throw new RuntimeError("[Sixb] 'models' must be a model catalog configuration.")
|
|
47
78
|
}
|
|
48
79
|
|
|
49
|
-
const
|
|
50
|
-
const
|
|
80
|
+
const language = createLanguageCatalog(input.language)
|
|
81
|
+
const embedding = createEmbeddingCatalog(input.embedding)
|
|
82
|
+
const decision = createDecisionCatalog(input.decision)
|
|
51
83
|
|
|
52
|
-
|
|
53
|
-
|
|
84
|
+
if (!language && !decision && embedding.list().length === 0) {
|
|
85
|
+
throw new RuntimeError("[Sixb] Configure at least one language, embedding or decision model.")
|
|
86
|
+
}
|
|
54
87
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
byModelId = new Map()
|
|
58
|
-
byProvider.set(model.providerId, byModelId)
|
|
59
|
-
}
|
|
60
|
-
if (byModelId.has(model.modelId)) {
|
|
61
|
-
throw new RuntimeError(
|
|
62
|
-
`[Sixb] Duplicate language model '${model.providerId}/${model.modelId}' in 'models'. Each provider and model id pair may be configured once.`
|
|
63
|
-
)
|
|
64
|
-
}
|
|
88
|
+
return Object.freeze({ language, embedding, decision })
|
|
89
|
+
}
|
|
65
90
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
entries.push(entry)
|
|
91
|
+
function createLanguageCatalog(
|
|
92
|
+
models: readonly LanguageModel[] | undefined
|
|
93
|
+
): LanguageModelCatalog | undefined {
|
|
94
|
+
if (models === undefined) return undefined
|
|
95
|
+
if (!Array.isArray(models)) {
|
|
96
|
+
throw new RuntimeError("[Sixb] 'models.language' must be an array of Sixb language models.")
|
|
73
97
|
}
|
|
74
98
|
|
|
75
|
-
const
|
|
76
|
-
|
|
99
|
+
const index = indexModelBindings(models, "language", assertLanguageModel)
|
|
100
|
+
const [defaultEntry] = index.list()
|
|
101
|
+
if (!defaultEntry) {
|
|
77
102
|
throw new RuntimeError(
|
|
78
|
-
"[Sixb] 'models.language' needs at least one model. Configure one or omit 'models'
|
|
103
|
+
"[Sixb] 'models.language' needs at least one model. Configure one or omit 'models.language'."
|
|
79
104
|
)
|
|
80
105
|
}
|
|
81
106
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
107
|
+
return Object.freeze({ ...index, default: defaultEntry })
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function createEmbeddingCatalog(
|
|
111
|
+
models: readonly EmbeddingModel[] | undefined
|
|
112
|
+
): EmbeddingModelCatalog {
|
|
113
|
+
if (models !== undefined && !Array.isArray(models)) {
|
|
114
|
+
throw new RuntimeError("[Sixb] models.embedding must be an array of embedding models.")
|
|
115
|
+
}
|
|
88
116
|
|
|
89
|
-
return
|
|
117
|
+
return indexModelBindings(models ?? [], "embedding", assertEmbeddingModel)
|
|
90
118
|
}
|
|
91
119
|
|
|
92
120
|
function assertLanguageModel(model: unknown, index: number): asserts model is LanguageModel {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { RuntimeError } from "../../runtime/errors"
|
|
2
|
+
import type { ModelRef } from "../catalog"
|
|
3
|
+
import { indexModelBindings } from "../catalog-index"
|
|
4
|
+
import type { DecisionModel } from "./types"
|
|
5
|
+
import { assertDecisionModel } from "./validation"
|
|
6
|
+
|
|
7
|
+
export interface DecisionModelEntry extends ModelRef {
|
|
8
|
+
readonly model: DecisionModel
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface DecisionModelCatalog {
|
|
12
|
+
readonly default: DecisionModelEntry
|
|
13
|
+
list(): readonly DecisionModelEntry[]
|
|
14
|
+
getByRef(ref: ModelRef): DecisionModelEntry | null
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function createDecisionCatalog(
|
|
18
|
+
models: readonly DecisionModel[] | undefined
|
|
19
|
+
): DecisionModelCatalog | undefined {
|
|
20
|
+
if (models === undefined) return undefined
|
|
21
|
+
if (!Array.isArray(models)) {
|
|
22
|
+
throw new RuntimeError("[Sixb] models.decision must be a nonempty array of decision models.")
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const index = indexModelBindings(models, "decision", assertDecisionModel)
|
|
26
|
+
const [defaultEntry] = index.list()
|
|
27
|
+
if (!defaultEntry) {
|
|
28
|
+
throw new RuntimeError("[Sixb] models.decision must be a nonempty array of decision models.")
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return Object.freeze({ ...index, default: defaultEntry })
|
|
32
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ModelProviderError } from "../errors"
|
|
2
|
+
import type { DecisionModelResponseMetadata } from "./types"
|
|
3
|
+
|
|
4
|
+
export class DecisionModelResponseError extends ModelProviderError {
|
|
5
|
+
constructor(
|
|
6
|
+
message: string,
|
|
7
|
+
providerId: string,
|
|
8
|
+
modelId: string,
|
|
9
|
+
readonly metadata: DecisionModelResponseMetadata,
|
|
10
|
+
options?: ErrorOptions
|
|
11
|
+
) {
|
|
12
|
+
super(message, providerId, modelId, {
|
|
13
|
+
...options,
|
|
14
|
+
code: "invalid_decision_response",
|
|
15
|
+
retryable: false,
|
|
16
|
+
})
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { SchemaOrRef } from "../../ontology/refs"
|
|
2
|
+
import type {
|
|
3
|
+
ChoiceQuestion,
|
|
4
|
+
DecisionContent,
|
|
5
|
+
DecisionQuestion,
|
|
6
|
+
DecisionQuestions,
|
|
7
|
+
ScoreQuestion,
|
|
8
|
+
} from "./types"
|
|
9
|
+
import { assertDecisionQuestions } from "./validation"
|
|
10
|
+
|
|
11
|
+
type RequiredField<S extends SchemaOrRef> = { required: true; schema: S }
|
|
12
|
+
type ChoiceAnswerSchema<C extends Readonly<Record<string, DecisionContent | null>>> = {
|
|
13
|
+
type: "object"
|
|
14
|
+
properties: {
|
|
15
|
+
choice: RequiredField<{
|
|
16
|
+
type: "enum"
|
|
17
|
+
valueType: "string"
|
|
18
|
+
values: `${Extract<keyof C, string | number>}`[]
|
|
19
|
+
}>
|
|
20
|
+
probabilities: RequiredField<{
|
|
21
|
+
type: "object"
|
|
22
|
+
properties: { [K in keyof C]: RequiredField<"double"> }
|
|
23
|
+
}>
|
|
24
|
+
confidence: { schema: "double" }
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export type DecisionAnswerSchema<Q extends DecisionQuestion> =
|
|
28
|
+
Q extends ChoiceQuestion<infer C>
|
|
29
|
+
? ChoiceAnswerSchema<C>
|
|
30
|
+
: Q extends ScoreQuestion
|
|
31
|
+
? {
|
|
32
|
+
type: "object"
|
|
33
|
+
properties: {
|
|
34
|
+
score: RequiredField<"double">
|
|
35
|
+
probabilities: RequiredField<{ type: "array"; items: "double" }>
|
|
36
|
+
confidence: { schema: "double" }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
: { type: "object"; properties: { probability: RequiredField<"double"> } }
|
|
40
|
+
export type DecisionOutputShape<Q extends DecisionQuestions> = {
|
|
41
|
+
-readonly [K in keyof Q]: DecisionAnswerSchema<Q[K]>
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** Ordinary Sixb output schemas for actions/workflow steps; evaluate() validates distributions. */
|
|
45
|
+
export function decisionOutput<const Q extends DecisionQuestions>(
|
|
46
|
+
questions: Q
|
|
47
|
+
): DecisionOutputShape<Q> {
|
|
48
|
+
assertDecisionQuestions(questions)
|
|
49
|
+
const result: Record<string, SchemaOrRef> = Object.fromEntries(
|
|
50
|
+
Object.entries(questions).map(([key, q]) => {
|
|
51
|
+
if (q.type === "probability")
|
|
52
|
+
return [
|
|
53
|
+
key,
|
|
54
|
+
{
|
|
55
|
+
type: "object",
|
|
56
|
+
properties: { probability: { required: true, schema: "double" } },
|
|
57
|
+
},
|
|
58
|
+
]
|
|
59
|
+
const confidence = { schema: "double" as const }
|
|
60
|
+
if (q.type === "score")
|
|
61
|
+
return [
|
|
62
|
+
key,
|
|
63
|
+
{
|
|
64
|
+
type: "object",
|
|
65
|
+
properties: {
|
|
66
|
+
score: { required: true, schema: "double" },
|
|
67
|
+
probabilities: { required: true, schema: { type: "array", items: "double" } },
|
|
68
|
+
confidence,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
]
|
|
72
|
+
return [
|
|
73
|
+
key,
|
|
74
|
+
{
|
|
75
|
+
type: "object",
|
|
76
|
+
properties: {
|
|
77
|
+
choice: {
|
|
78
|
+
required: true,
|
|
79
|
+
schema: { type: "enum", valueType: "string", values: Object.keys(q.options) },
|
|
80
|
+
},
|
|
81
|
+
probabilities: {
|
|
82
|
+
required: true,
|
|
83
|
+
schema: {
|
|
84
|
+
type: "object",
|
|
85
|
+
properties: Object.fromEntries(
|
|
86
|
+
Object.keys(q.options).map((option) => [
|
|
87
|
+
option,
|
|
88
|
+
{ required: true, schema: "double" },
|
|
89
|
+
])
|
|
90
|
+
),
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
confidence,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
]
|
|
97
|
+
})
|
|
98
|
+
)
|
|
99
|
+
// Each branch builds the corresponding schema while retaining literal option keys in the type.
|
|
100
|
+
return result as DecisionOutputShape<Q>
|
|
101
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ChoiceQuestion, DecisionContent, ProbabilityQuestion, ScoreQuestion } from "./types"
|
|
2
|
+
import { assertDecisionQuestions } from "./validation"
|
|
3
|
+
|
|
4
|
+
/** Plain serializable descriptors; no registration or inference takes place here. */
|
|
5
|
+
export const question = {
|
|
6
|
+
choice<const TOptions extends Readonly<Record<string, DecisionContent | null>>>(input: {
|
|
7
|
+
readonly instructions: DecisionContent
|
|
8
|
+
readonly options: TOptions
|
|
9
|
+
}): ChoiceQuestion<TOptions> {
|
|
10
|
+
const result = { ...input, type: "choice" as const }
|
|
11
|
+
assertDecisionQuestions({ question: result })
|
|
12
|
+
return result
|
|
13
|
+
},
|
|
14
|
+
score<
|
|
15
|
+
const TLevels extends readonly [DecisionContent, DecisionContent, ...DecisionContent[]],
|
|
16
|
+
>(input: {
|
|
17
|
+
readonly instructions: DecisionContent
|
|
18
|
+
readonly levels: TLevels
|
|
19
|
+
}): ScoreQuestion<TLevels> {
|
|
20
|
+
const result = { ...input, type: "score" as const }
|
|
21
|
+
assertDecisionQuestions({ question: result })
|
|
22
|
+
return result
|
|
23
|
+
},
|
|
24
|
+
probability(instructions: DecisionContent): ProbabilityQuestion {
|
|
25
|
+
const result = { type: "probability" as const, instructions }
|
|
26
|
+
assertDecisionQuestions({ question: result })
|
|
27
|
+
return result
|
|
28
|
+
},
|
|
29
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto"
|
|
2
|
+
import { assertProviderAccess } from "../../authorization"
|
|
3
|
+
import type { ExecutionContext } from "../../execution"
|
|
4
|
+
import { cloneJsonValue } from "../../json"
|
|
5
|
+
import type { SixbRuntimeContext } from "../../runtime/types"
|
|
6
|
+
import type { ModelCatalog } from "../catalog"
|
|
7
|
+
import { AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE } from "../execution/model-call-admission"
|
|
8
|
+
import type { AiModelCallRecorder } from "../execution/model-call-recorder"
|
|
9
|
+
import type { ModelExecutionSession } from "../execution/session"
|
|
10
|
+
import { estimateModelCall } from "../pricing"
|
|
11
|
+
import { DecisionModelResponseError } from "./errors"
|
|
12
|
+
import type {
|
|
13
|
+
DecisionAnswers,
|
|
14
|
+
DecisionModel,
|
|
15
|
+
DecisionModelRequest,
|
|
16
|
+
DecisionModelResponseMetadata,
|
|
17
|
+
DecisionModelResult,
|
|
18
|
+
DecisionModelsRuntime,
|
|
19
|
+
} from "./types"
|
|
20
|
+
import {
|
|
21
|
+
assertDecisionContent,
|
|
22
|
+
assertDecisionModel,
|
|
23
|
+
assertDecisionQuestions,
|
|
24
|
+
assertDecisionSupport,
|
|
25
|
+
validateDecisionAnswers,
|
|
26
|
+
} from "./validation"
|
|
27
|
+
|
|
28
|
+
export function createDecisionRuntime(
|
|
29
|
+
runtime: SixbRuntimeContext,
|
|
30
|
+
execution: ExecutionContext,
|
|
31
|
+
catalog: ModelCatalog | undefined,
|
|
32
|
+
session: ModelExecutionSession
|
|
33
|
+
): DecisionModelsRuntime {
|
|
34
|
+
return {
|
|
35
|
+
async evaluate(input) {
|
|
36
|
+
assertProviderAccess(runtime, execution, "models.decision.evaluate")
|
|
37
|
+
assertDecisionContent(input.input, "input")
|
|
38
|
+
assertDecisionQuestions(input.questions)
|
|
39
|
+
|
|
40
|
+
// Snapshot before the first await; caller edits cannot change an admitted request.
|
|
41
|
+
const state = cloneJsonValue(input.input)
|
|
42
|
+
assertDecisionContent(state, "input")
|
|
43
|
+
const questions = structuredClone(input.questions)
|
|
44
|
+
const signal = session.signal(input.signal)
|
|
45
|
+
signal.throwIfAborted()
|
|
46
|
+
|
|
47
|
+
const binding = resolveDecisionModel(catalog, input.model)
|
|
48
|
+
assertDecisionModel(binding)
|
|
49
|
+
assertDecisionSupport(binding, questions)
|
|
50
|
+
|
|
51
|
+
const accounting = await session.accounting()
|
|
52
|
+
accounting.assertHealthy()
|
|
53
|
+
signal.throwIfAborted()
|
|
54
|
+
const model = binding.resolve ? await binding.resolve() : binding
|
|
55
|
+
assertDecisionModel(model)
|
|
56
|
+
if (model.providerId !== binding.providerId || model.modelId !== binding.modelId) {
|
|
57
|
+
throw new TypeError(
|
|
58
|
+
"[SixbModels] Resolved decision model identity does not match the selected model."
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
assertDecisionSupport(model, questions)
|
|
62
|
+
signal.throwIfAborted()
|
|
63
|
+
const request = { input: state, questions, signal }
|
|
64
|
+
const callId = await admitDecisionCall(accounting, model, request)
|
|
65
|
+
|
|
66
|
+
let result: DecisionModelResult
|
|
67
|
+
try {
|
|
68
|
+
signal.throwIfAborted()
|
|
69
|
+
result = await model.evaluate(request)
|
|
70
|
+
} catch (error) {
|
|
71
|
+
const metadata = error instanceof DecisionModelResponseError ? error.metadata : {}
|
|
72
|
+
await recordDecision(accounting, model, callId, metadata)
|
|
73
|
+
throw error
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Account before validation or cancellation can reject a billable response.
|
|
77
|
+
const event = await recordDecision(accounting, model, callId, result ?? {})
|
|
78
|
+
signal.throwIfAborted()
|
|
79
|
+
|
|
80
|
+
let output: DecisionAnswers<typeof input.questions>
|
|
81
|
+
try {
|
|
82
|
+
output = validateDecisionAnswers(
|
|
83
|
+
questions,
|
|
84
|
+
result?.output,
|
|
85
|
+
model.definition.capabilities.answerDecimalPlaces
|
|
86
|
+
)
|
|
87
|
+
} catch (cause) {
|
|
88
|
+
throw new DecisionModelResponseError(
|
|
89
|
+
"[SixbModels] Invalid decision response.",
|
|
90
|
+
model.providerId,
|
|
91
|
+
model.modelId,
|
|
92
|
+
result ?? {},
|
|
93
|
+
{ cause }
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
output,
|
|
99
|
+
callId,
|
|
100
|
+
...(event.responseModelId === undefined ? {} : { responseModelId: event.responseModelId }),
|
|
101
|
+
usage: event.usage,
|
|
102
|
+
cost: event.cost,
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function resolveDecisionModel(
|
|
109
|
+
catalog: ModelCatalog | undefined,
|
|
110
|
+
requested: DecisionModel | undefined
|
|
111
|
+
): DecisionModel {
|
|
112
|
+
if (!requested) {
|
|
113
|
+
const model = catalog?.decision?.default.model
|
|
114
|
+
if (!model) {
|
|
115
|
+
throw new Error("[SixbModels] Configure models.decision or supply a model to evaluate().")
|
|
116
|
+
}
|
|
117
|
+
return model
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (!catalog) return requested
|
|
121
|
+
|
|
122
|
+
// The catalog owns the binding, even when a caller supplies another object with the same ID.
|
|
123
|
+
const entry = catalog.decision?.getByRef({
|
|
124
|
+
provider: requested.providerId,
|
|
125
|
+
modelId: requested.modelId,
|
|
126
|
+
})
|
|
127
|
+
if (!entry) {
|
|
128
|
+
throw new Error(
|
|
129
|
+
`[SixbModels] Model '${requested.providerId}/${requested.modelId}' is not configured in models.decision.`
|
|
130
|
+
)
|
|
131
|
+
}
|
|
132
|
+
return entry.model
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
async function admitDecisionCall(
|
|
136
|
+
accounting: AiModelCallRecorder,
|
|
137
|
+
model: DecisionModel,
|
|
138
|
+
request: DecisionModelRequest
|
|
139
|
+
): Promise<string> {
|
|
140
|
+
const callId = `call_${randomUUID()}`
|
|
141
|
+
const serialized = JSON.stringify({ input: request.input, questions: request.questions })
|
|
142
|
+
const tokens = Math.ceil(new TextEncoder().encode(serialized).byteLength / 4)
|
|
143
|
+
|
|
144
|
+
// Reservation estimate only; neither an exact context check nor an enforced output cap.
|
|
145
|
+
const outputTokenAllowance = AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE
|
|
146
|
+
await accounting.admitCall({
|
|
147
|
+
callId,
|
|
148
|
+
providerId: model.providerId,
|
|
149
|
+
modelId: model.modelId,
|
|
150
|
+
costEstimator: model.costEstimator,
|
|
151
|
+
inputTokens: { status: "estimated", tokens, method: "utf8BytesDividedByFour" },
|
|
152
|
+
outputTokenAllowance,
|
|
153
|
+
estimatedTotalTokens: tokens + outputTokenAllowance,
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
return callId
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async function recordDecision(
|
|
160
|
+
accounting: AiModelCallRecorder,
|
|
161
|
+
model: DecisionModel,
|
|
162
|
+
callId: string,
|
|
163
|
+
metadata: DecisionModelResponseMetadata
|
|
164
|
+
) {
|
|
165
|
+
const usage = metadata.usage ?? {}
|
|
166
|
+
const estimate = estimateModelCall(model, {
|
|
167
|
+
usage,
|
|
168
|
+
route: metadata.route,
|
|
169
|
+
responseModelId: metadata.responseModelId,
|
|
170
|
+
})
|
|
171
|
+
const event = {
|
|
172
|
+
callId,
|
|
173
|
+
providerId: model.providerId,
|
|
174
|
+
modelId: model.modelId,
|
|
175
|
+
responseId: metadata.providerIds?.responseId ?? callId,
|
|
176
|
+
responseModelId: metadata.responseModelId,
|
|
177
|
+
providerIds: metadata.providerIds,
|
|
178
|
+
usage,
|
|
179
|
+
cost: metadata.reportedCost
|
|
180
|
+
? { status: "reported" as const, ...metadata.reportedCost }
|
|
181
|
+
: estimate,
|
|
182
|
+
...(metadata.reportedCost ? { estimate } : {}),
|
|
183
|
+
route: metadata.route,
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
await accounting.onModelCallEnd(event)
|
|
187
|
+
return event
|
|
188
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { ReadonlyJsonArray, ReadonlyJsonObject } from "../../json"
|
|
2
|
+
import type { ModelDefinition } from "../definitions"
|
|
3
|
+
import type { ModelProviderIds, ModelRoute, ModelUsage } from "../events"
|
|
4
|
+
import type { ModelCallCost, ModelCostEstimator, ModelReportedCost } from "../pricing"
|
|
5
|
+
|
|
6
|
+
/** Text or structured text. Non-text media must be prepared explicitly by the application. */
|
|
7
|
+
export type DecisionContent = string | ReadonlyJsonObject | ReadonlyJsonArray
|
|
8
|
+
|
|
9
|
+
export interface ChoiceQuestion<
|
|
10
|
+
TOptions extends Readonly<Record<string, DecisionContent | null>> = Readonly<
|
|
11
|
+
Record<string, DecisionContent | null>
|
|
12
|
+
>,
|
|
13
|
+
> {
|
|
14
|
+
readonly type: "choice"
|
|
15
|
+
readonly instructions: DecisionContent
|
|
16
|
+
readonly options: TOptions
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface ScoreQuestion<
|
|
20
|
+
TLevels extends readonly DecisionContent[] = readonly DecisionContent[],
|
|
21
|
+
> {
|
|
22
|
+
readonly type: "score"
|
|
23
|
+
readonly instructions: DecisionContent
|
|
24
|
+
readonly levels: TLevels
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface ProbabilityQuestion {
|
|
28
|
+
readonly type: "probability"
|
|
29
|
+
readonly instructions: DecisionContent
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type DecisionQuestion = ChoiceQuestion | ScoreQuestion | ProbabilityQuestion
|
|
33
|
+
export type DecisionQuestions = Readonly<Record<string, DecisionQuestion>>
|
|
34
|
+
export type DecisionAnswer<TQuestion extends DecisionQuestion> =
|
|
35
|
+
TQuestion extends ChoiceQuestion<infer TOptions>
|
|
36
|
+
? {
|
|
37
|
+
choice: `${Extract<keyof TOptions, string | number>}`
|
|
38
|
+
probabilities: { -readonly [K in keyof TOptions]: number }
|
|
39
|
+
confidence?: number
|
|
40
|
+
}
|
|
41
|
+
: TQuestion extends ScoreQuestion
|
|
42
|
+
? { score: number; probabilities: number[]; confidence?: number }
|
|
43
|
+
: { probability: number }
|
|
44
|
+
export type DecisionAnswers<TQuestions extends DecisionQuestions> = {
|
|
45
|
+
-readonly [K in keyof TQuestions]: DecisionAnswer<TQuestions[K]>
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface DecisionModelDefinition extends ModelDefinition {
|
|
49
|
+
readonly kind: "decision"
|
|
50
|
+
readonly capabilities: {
|
|
51
|
+
readonly questions: readonly DecisionQuestion["type"][]
|
|
52
|
+
readonly maxChoices?: number
|
|
53
|
+
readonly maxScoreLevels?: number
|
|
54
|
+
/** Independent decimal rounding of returned scores/probabilities; omitted means strict validation. */
|
|
55
|
+
readonly answerDecimalPlaces?: number
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface DecisionModelRequest {
|
|
60
|
+
readonly input: DecisionContent
|
|
61
|
+
readonly questions: DecisionQuestions
|
|
62
|
+
/** Providers must pass cancellation through to their transport. */
|
|
63
|
+
readonly signal?: AbortSignal
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface DecisionModelResponseMetadata {
|
|
67
|
+
readonly usage?: ModelUsage
|
|
68
|
+
readonly providerIds?: ModelProviderIds
|
|
69
|
+
readonly responseModelId?: string
|
|
70
|
+
readonly reportedCost?: ModelReportedCost
|
|
71
|
+
readonly route?: ModelRoute
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface DecisionModelResult extends DecisionModelResponseMetadata {
|
|
75
|
+
/** Decoded answers; Sixb still validates them against the original questions at runtime. */
|
|
76
|
+
readonly output: DecisionAnswers<DecisionQuestions>
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** An explicit provider binding; declaring it never triggers inference. */
|
|
80
|
+
export interface DecisionModel {
|
|
81
|
+
readonly providerId: string
|
|
82
|
+
readonly modelId: string
|
|
83
|
+
readonly definition: DecisionModelDefinition
|
|
84
|
+
readonly costEstimator?: ModelCostEstimator
|
|
85
|
+
/** Resolve and pin optional metadata/pricing before admission, without inference. */
|
|
86
|
+
resolve?(): Promise<DecisionModel>
|
|
87
|
+
evaluate(request: DecisionModelRequest): Promise<DecisionModelResult>
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface DecisionEvaluateInput<TQuestions extends DecisionQuestions> {
|
|
91
|
+
readonly input: DecisionContent
|
|
92
|
+
readonly questions: TQuestions
|
|
93
|
+
readonly model?: DecisionModel
|
|
94
|
+
readonly signal?: AbortSignal
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface DecisionEvaluateResult<TQuestions extends DecisionQuestions> {
|
|
98
|
+
readonly output: DecisionAnswers<TQuestions>
|
|
99
|
+
readonly callId: string
|
|
100
|
+
readonly responseModelId?: string
|
|
101
|
+
readonly usage: ModelUsage
|
|
102
|
+
readonly cost: ModelCallCost
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface DecisionModelsRuntime {
|
|
106
|
+
evaluate<const TQuestions extends DecisionQuestions>(
|
|
107
|
+
input: DecisionEvaluateInput<TQuestions>
|
|
108
|
+
): Promise<DecisionEvaluateResult<TQuestions>>
|
|
109
|
+
}
|