@sixb/core 0.1.10 → 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/blob-storage/types.d.ts +4 -1
- package/dist/blob-storage/types.d.ts.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-2c4j899j.js.map +1 -1
- 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-e0d1rzef.js → chunk-2h63nrde.js} +380 -97
- package/dist/chunk-2h63nrde.js.map +20 -0
- package/dist/{chunk-rtk71jzp.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-g7knyczr.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-976rxdpx.js → chunk-7qnvhtcd.js} +93 -17
- package/dist/{chunk-976rxdpx.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-r7fj830t.js → chunk-b768c93y.js} +100 -29
- package/dist/chunk-b768c93y.js.map +36 -0
- 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-b0ec55a1.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-d62kjtbg.js.map +1 -1
- package/dist/chunk-dmn70ztd.js.map +2 -2
- package/dist/{chunk-28ja2cjs.js → chunk-e1f1sqba.js} +39 -53
- package/dist/{chunk-28ja2cjs.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-nmbxcaqx.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-5c7ga8zz.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-qyeptdyv.js → chunk-mdnw7nj8.js} +10 -6
- package/dist/chunk-mdnw7nj8.js.map +15 -0
- package/dist/{chunk-5p1v802y.js → chunk-nzsy3xrp.js} +253 -86
- package/dist/chunk-nzsy3xrp.js.map +46 -0
- 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-p5vcsw9c.js → chunk-qm535afa.js} +10 -10
- package/dist/{chunk-p5vcsw9c.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-t1f4f1ve.js → chunk-sfypc7mk.js} +18 -13
- package/dist/{chunk-t1f4f1ve.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-bn138h9w.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-nt99sxd6.js → chunk-x9tmx3fc.js} +18 -24
- package/dist/chunk-x9tmx3fc.js.map +14 -0
- package/dist/{chunk-agbbygvh.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-p6a4npdx.js → chunk-ybhz3j9g.js} +362 -60
- package/dist/chunk-ybhz3j9g.js.map +63 -0
- 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/connectors/connections/command-context.d.ts +2 -0
- package/dist/connectors/connections/command-context.d.ts.map +1 -1
- package/dist/connectors/connections/contracts.d.ts +1 -1
- package/dist/connectors/connections/contracts.d.ts.map +1 -1
- package/dist/connectors/connections/execution.d.ts +1 -0
- package/dist/connectors/connections/execution.d.ts.map +1 -1
- package/dist/connectors/connections/runs.d.ts +1 -0
- package/dist/connectors/connections/runs.d.ts.map +1 -1
- package/dist/connectors/connections/service.d.ts +2 -0
- package/dist/connectors/connections/service.d.ts.map +1 -1
- 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/events/outbox-dispatcher.d.ts +2 -2
- package/dist/events/outbox-dispatcher.d.ts.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/lake-storage/types.d.ts +2 -0
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/maintenance/types.d.ts +1 -1
- package/dist/maintenance/types.d.ts.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 +8 -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/in-memory.d.ts +1 -0
- package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/connections.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/runs.d.ts +1 -0
- package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/shared.d.ts +1 -0
- package/dist/storage/connector-connections/provider/shared.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.d.ts +1 -0
- package/dist/storage/connector-connections/provider.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +12 -17
- package/dist/storage/connector-connections/provider.js.map +6 -6
- package/dist/storage/connector-connections/types.d.ts +3 -1
- package/dist/storage/connector-connections/types.d.ts.map +1 -1
- 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/outbox.d.ts +1 -0
- package/dist/storage/ontology/outbox.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 +488 -81
- package/dist/testing/index.js.map +10 -10
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- 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/ontology-storage-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/model-loop.ts +7 -0
- package/src/agents/request.ts +11 -0
- package/src/agents/sandbox.ts +44 -0
- package/src/agents/validation.ts +2 -108
- package/src/blob-storage/types.ts +4 -1
- package/src/connectors/connections/command-context.ts +21 -4
- package/src/connectors/connections/contracts.ts +4 -1
- package/src/connectors/connections/execution.ts +3 -0
- package/src/connectors/connections/runs.ts +38 -1
- package/src/connectors/connections/service.ts +6 -0
- 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/events/outbox-dispatcher.ts +20 -26
- 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 +7 -3
- package/src/lake-storage/types.ts +2 -0
- package/src/maintenance/ontology-maintenance.ts +6 -2
- package/src/maintenance/types.ts +1 -1
- 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 +15 -1
- 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 +20 -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 +7 -4
- 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/connector-connections/in-memory.ts +16 -18
- package/src/storage/connector-connections/provider/connections.ts +1 -15
- package/src/storage/connector-connections/provider/runs.ts +6 -0
- package/src/storage/connector-connections/provider/shared.ts +2 -3
- package/src/storage/connector-connections/provider.ts +6 -0
- package/src/storage/connector-connections/types.ts +5 -1
- 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 +19 -3
- 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/outbox.ts +1 -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/connector-connection-storage-contract.ts +11 -11
- package/src/testing/lake-storage-contract.ts +29 -0
- package/src/testing/object-query-contract.ts +41 -25
- package/src/testing/object-read-scope-contract.ts +1 -5
- package/src/testing/ontology-storage-contract.ts +8 -3
- 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-5hz0fnca.js.map +0 -12
- package/dist/chunk-5p1v802y.js.map +0 -44
- 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-aa6z4a19.js.map +0 -12
- package/dist/chunk-ap0g1g74.js.map +0 -11
- package/dist/chunk-e0d1rzef.js.map +0 -15
- package/dist/chunk-f0rwz2vh.js.map +0 -11
- package/dist/chunk-f4w3yp4f.js.map +0 -12
- package/dist/chunk-g7knyczr.js.map +0 -14
- package/dist/chunk-mrp7k0pw.js.map +0 -10
- package/dist/chunk-ms2tmn1k.js.map +0 -17
- package/dist/chunk-nmbxcaqx.js.map +0 -19
- package/dist/chunk-nt99sxd6.js.map +0 -14
- package/dist/chunk-p6a4npdx.js.map +0 -58
- package/dist/chunk-qyeptdyv.js.map +0 -15
- package/dist/chunk-r7fj830t.js.map +0 -36
- package/dist/chunk-rb1xx120.js.map +0 -11
- package/dist/chunk-yv79ncbv.js.map +0 -10
- 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-rtk71jzp.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-b0ec55a1.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-5c7ga8zz.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-bn138h9w.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-agbbygvh.js.map → chunk-xn686q2e.js.map} +0 -0
- /package/dist/{chunk-v2vcg0w6.js.map → chunk-xtfryrfb.js.map} +0 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MaterializationConflictError,
|
|
3
|
+
MaterializationValidationError,
|
|
4
|
+
} from "../../materialization/errors"
|
|
5
|
+
import type { OntologyEditCommit } from "../../materialization/model"
|
|
6
|
+
import { objectRefKey } from "../../materialization/refs"
|
|
7
|
+
import { normalizeVector, vectorConfiguration, vectorSources } from "../../objects/vectors/profile"
|
|
8
|
+
import type { Storage } from "../../storage"
|
|
9
|
+
import { objectBatchKey } from "../../storage/objects/keys"
|
|
10
|
+
import type { MaterializationSession, OntologyVectorStorage } from "../../storage/ontology"
|
|
11
|
+
import type { MaterializerContext } from "../context"
|
|
12
|
+
|
|
13
|
+
export async function commitVectorWrites(
|
|
14
|
+
context: MaterializerContext,
|
|
15
|
+
storage: Storage,
|
|
16
|
+
input: OntologyEditCommit,
|
|
17
|
+
commitId: string,
|
|
18
|
+
session: MaterializationSession
|
|
19
|
+
): Promise<void> {
|
|
20
|
+
if (input.mode !== "atomic" || !input.vectorWrites?.length) return
|
|
21
|
+
const vectors = storage.ontology.vectors
|
|
22
|
+
if (!vectors)
|
|
23
|
+
throw new MaterializationValidationError("Storage does not support vector profiles.")
|
|
24
|
+
const rows = await storage.objects.getByPrimaryIdBatch({
|
|
25
|
+
projectId: context.projectId,
|
|
26
|
+
items: input.vectorWrites.map((write) => write.input.ref),
|
|
27
|
+
})
|
|
28
|
+
const expectations = new Map(
|
|
29
|
+
input.expectedObjects.map((expected) => [objectRefKey(expected.ref), expected])
|
|
30
|
+
)
|
|
31
|
+
const entries: Parameters<OntologyVectorStorage["writeBatch"]>[0]["entries"][number][] = []
|
|
32
|
+
const seen = new Set<string>()
|
|
33
|
+
for (const write of input.vectorWrites) {
|
|
34
|
+
const prepared = write.input
|
|
35
|
+
const key = JSON.stringify([objectRefKey(prepared.ref), prepared.profile])
|
|
36
|
+
if (seen.has(key)) throw new MaterializationValidationError(`Duplicate vector write: ${key}`)
|
|
37
|
+
seen.add(key)
|
|
38
|
+
const profileDefinition = context.ontology.resolveObjectType(prepared.ref.objectTypeId).search
|
|
39
|
+
?.vectors?.[prepared.profile]
|
|
40
|
+
if (
|
|
41
|
+
prepared.projectId !== context.projectId ||
|
|
42
|
+
!profileDefinition ||
|
|
43
|
+
vectorConfiguration(profileDefinition) !== prepared.configuration
|
|
44
|
+
) {
|
|
45
|
+
throw new MaterializationConflictError(
|
|
46
|
+
"effective-state",
|
|
47
|
+
"Vector profile configuration changed; index it again."
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
const expected = expectations.get(objectRefKey(prepared.ref))
|
|
51
|
+
if (
|
|
52
|
+
!expected?.exists ||
|
|
53
|
+
!prepared.expectedObject?.exists ||
|
|
54
|
+
objectRefKey(prepared.expectedObject.ref) !== objectRefKey(prepared.ref) ||
|
|
55
|
+
expected.version !== prepared.expectedObject.version ||
|
|
56
|
+
expected.lastCommitId !== prepared.expectedObject.lastCommitId
|
|
57
|
+
) {
|
|
58
|
+
throw new MaterializationValidationError(
|
|
59
|
+
"Vector writes must fence their prepared object revision."
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
const row = rows.get(objectBatchKey(prepared.ref.objectTypeId, prepared.ref.primaryId))
|
|
63
|
+
if (
|
|
64
|
+
!row ||
|
|
65
|
+
row.version !== expected.version ||
|
|
66
|
+
row.lastCommitId !== expected.lastCommitId ||
|
|
67
|
+
vectorSources(profileDefinition.source, row.properties).sourceFingerprint !==
|
|
68
|
+
prepared.sourceFingerprint
|
|
69
|
+
) {
|
|
70
|
+
throw new MaterializationConflictError(
|
|
71
|
+
"effective-state",
|
|
72
|
+
"Vector sources changed; index the profile again."
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
entries.push({
|
|
76
|
+
expectedCommitId: prepared.expectedVectorCommitId,
|
|
77
|
+
value: {
|
|
78
|
+
ref: prepared.ref,
|
|
79
|
+
profile: prepared.profile,
|
|
80
|
+
configuration: prepared.configuration,
|
|
81
|
+
source: profileDefinition.source,
|
|
82
|
+
sourceFingerprint: prepared.sourceFingerprint,
|
|
83
|
+
values: normalizeVector(write.values, profileDefinition.model.definition.dimensions),
|
|
84
|
+
lastCommitId: commitId,
|
|
85
|
+
},
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
await vectors.writeBatch({ session, projectId: context.projectId, entries })
|
|
90
|
+
await storage.ontology.vectorIndexing?.complete({
|
|
91
|
+
session,
|
|
92
|
+
projectId: context.projectId,
|
|
93
|
+
entries: input.vectorWrites.map(({ input: prepared }) => ({
|
|
94
|
+
ref: prepared.ref,
|
|
95
|
+
profile: prepared.profile,
|
|
96
|
+
configuration: prepared.configuration,
|
|
97
|
+
sourceFingerprint: prepared.sourceFingerprint,
|
|
98
|
+
})),
|
|
99
|
+
})
|
|
100
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withFailureMessage } from "../../errors/failure-message"
|
|
1
2
|
import type { JsonValue } from "../../json"
|
|
2
3
|
import { MaterializationValidationError } from "../../materialization/errors"
|
|
3
4
|
import type {
|
|
@@ -113,8 +114,11 @@ export function validateEffectiveObject(
|
|
|
113
114
|
property.required &&
|
|
114
115
|
properties[property.id] === undefined
|
|
115
116
|
) {
|
|
116
|
-
throw
|
|
117
|
-
|
|
117
|
+
throw withFailureMessage(
|
|
118
|
+
new Error(
|
|
119
|
+
`[Sixb] Missing required property '${property.id}' for object type '${objectType.id}'`
|
|
120
|
+
),
|
|
121
|
+
`Missing required property '${objectType.id}.${property.id}'.`
|
|
118
122
|
)
|
|
119
123
|
}
|
|
120
124
|
}
|
|
@@ -175,6 +179,9 @@ function materializationValidation<T>(run: () => T): T {
|
|
|
175
179
|
return run()
|
|
176
180
|
} catch (error) {
|
|
177
181
|
if (error instanceof MaterializationValidationError) throw error
|
|
178
|
-
throw new MaterializationValidationError(
|
|
182
|
+
throw new MaterializationValidationError(
|
|
183
|
+
error instanceof Error ? error.message : String(error),
|
|
184
|
+
{ cause: error }
|
|
185
|
+
)
|
|
179
186
|
}
|
|
180
187
|
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto"
|
|
2
|
+
import type { OntologyObjectRef } from "../../materialization/model"
|
|
3
|
+
import { vectorConfiguration, vectorSources } from "../../objects/vectors/profile"
|
|
4
|
+
import type { Storage } from "../../storage"
|
|
5
|
+
import { objectBatchKey } from "../../storage/objects/keys"
|
|
6
|
+
import type { MaterializationSession } from "../../storage/ontology"
|
|
7
|
+
import type { VectorIndexingRequest } from "../../storage/ontology/vector-indexing"
|
|
8
|
+
import type { MaterializerContext } from "../context"
|
|
9
|
+
import type { MaterializationPlanItem } from "../execution/plan-stream"
|
|
10
|
+
|
|
11
|
+
/** Source assertions are not effective values: schedule only after conflict resolution. */
|
|
12
|
+
export async function scheduleVectorChanges(
|
|
13
|
+
context: Pick<MaterializerContext, "projectId" | "ontology" | "clock">,
|
|
14
|
+
storage: Storage,
|
|
15
|
+
items: readonly MaterializationPlanItem[],
|
|
16
|
+
session: MaterializationSession,
|
|
17
|
+
projection = false
|
|
18
|
+
): Promise<void> {
|
|
19
|
+
const indexing = storage.ontology.vectorIndexing
|
|
20
|
+
if (!indexing) return
|
|
21
|
+
const upserts = items
|
|
22
|
+
.filter((item) => item.kind === "object-upsert")
|
|
23
|
+
.filter(
|
|
24
|
+
(item) =>
|
|
25
|
+
Object.keys(
|
|
26
|
+
context.ontology.resolveObjectType(item.value.row.ref.objectTypeId).search?.vectors ?? {}
|
|
27
|
+
).length > 0
|
|
28
|
+
)
|
|
29
|
+
const previous = await storage.objects.getByPrimaryIdBatch({
|
|
30
|
+
projectId: context.projectId,
|
|
31
|
+
items: upserts.map((item) => item.value.row.ref),
|
|
32
|
+
})
|
|
33
|
+
const requests: VectorIndexingRequest[] = []
|
|
34
|
+
const deleted: OntologyObjectRef[] = []
|
|
35
|
+
// Groups exist only for this materialization page and are persisted in its transaction.
|
|
36
|
+
const groups = new Map<string, { id: string; count: number; bytes: number }>()
|
|
37
|
+
for (const item of items) {
|
|
38
|
+
if (item.kind === "object-delete") {
|
|
39
|
+
deleted.push(item.value.ref)
|
|
40
|
+
continue
|
|
41
|
+
}
|
|
42
|
+
if (item.kind !== "object-upsert") continue
|
|
43
|
+
const row = item.value.row
|
|
44
|
+
const profiles = context.ontology.resolveObjectType(row.ref.objectTypeId).search?.vectors ?? {}
|
|
45
|
+
const before = previous.get(objectBatchKey(row.ref.objectTypeId, row.ref.primaryId))
|
|
46
|
+
for (const [profile, definition] of Object.entries(profiles)) {
|
|
47
|
+
const { sourceFingerprint, text } = vectorSources(definition.source, row.properties)
|
|
48
|
+
if (
|
|
49
|
+
before &&
|
|
50
|
+
vectorSources(definition.source, before.properties).sourceFingerprint === sourceFingerprint
|
|
51
|
+
)
|
|
52
|
+
continue
|
|
53
|
+
const configuration = vectorConfiguration(definition)
|
|
54
|
+
const bytes = Buffer.byteLength(text)
|
|
55
|
+
const key = JSON.stringify([row.ref.objectTypeId, profile, configuration, row.lastCommitId])
|
|
56
|
+
let group = projection ? groups.get(key) : undefined
|
|
57
|
+
if (projection && (!group || group.count === 32 || group.bytes + bytes > 32_768)) {
|
|
58
|
+
group = { id: randomUUID(), count: 0, bytes: 0 }
|
|
59
|
+
groups.set(key, group)
|
|
60
|
+
}
|
|
61
|
+
if (group) {
|
|
62
|
+
group.count++
|
|
63
|
+
group.bytes += bytes
|
|
64
|
+
}
|
|
65
|
+
requests.push({
|
|
66
|
+
...(group ? { batchId: group.id } : {}),
|
|
67
|
+
id: randomUUID(),
|
|
68
|
+
ref: row.ref,
|
|
69
|
+
profile,
|
|
70
|
+
sourceFingerprint,
|
|
71
|
+
configuration,
|
|
72
|
+
sourceCommitId: row.lastCommitId,
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (requests.length || deleted.length)
|
|
77
|
+
await indexing.schedule({
|
|
78
|
+
projectId: context.projectId,
|
|
79
|
+
session,
|
|
80
|
+
requests,
|
|
81
|
+
deleted,
|
|
82
|
+
availableAt: context.clock().toISOString(),
|
|
83
|
+
})
|
|
84
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { objectRefKey } from "../../materialization/refs"
|
|
2
|
+
import { vectorSources } from "../../objects/vectors/profile"
|
|
3
|
+
import type { MaterializationSession } from "../../storage/ontology"
|
|
4
|
+
import type { OntologyVectorStorage } from "../../storage/ontology/vectors"
|
|
5
|
+
import type { MaterializationPlanItem } from "../execution/plan-stream"
|
|
6
|
+
|
|
7
|
+
/** Invalidate a bounded materialization page, including stored profiles no longer declared. */
|
|
8
|
+
export async function invalidateVectorChanges(
|
|
9
|
+
projectId: string,
|
|
10
|
+
vectors: OntologyVectorStorage | undefined,
|
|
11
|
+
items: readonly MaterializationPlanItem[],
|
|
12
|
+
session: MaterializationSession
|
|
13
|
+
): Promise<void> {
|
|
14
|
+
if (!vectors) return
|
|
15
|
+
const changes = new Map(
|
|
16
|
+
items.flatMap((item) => {
|
|
17
|
+
if (item.kind !== "object-upsert" && item.kind !== "object-delete") return []
|
|
18
|
+
const ref = item.kind === "object-upsert" ? item.value.row.ref : item.value.ref
|
|
19
|
+
return [[objectRefKey(ref), { ref, item }] as const]
|
|
20
|
+
})
|
|
21
|
+
)
|
|
22
|
+
if (!changes.size) return
|
|
23
|
+
|
|
24
|
+
const stored = await vectors.listBatch({
|
|
25
|
+
projectId,
|
|
26
|
+
refs: [...changes.values()].map(({ ref }) => ref),
|
|
27
|
+
})
|
|
28
|
+
const removals: Parameters<OntologyVectorStorage["removeBatch"]>[0]["entries"][number][] = []
|
|
29
|
+
for (const entry of stored) {
|
|
30
|
+
const change = changes.get(objectRefKey(entry.ref))
|
|
31
|
+
if (!change) continue
|
|
32
|
+
const { item } = change
|
|
33
|
+
if (
|
|
34
|
+
item.kind === "object-upsert" &&
|
|
35
|
+
entry.source.every((id) => {
|
|
36
|
+
const value = item.value.row.properties[id]
|
|
37
|
+
return value === undefined || value === null || typeof value === "string"
|
|
38
|
+
}) &&
|
|
39
|
+
vectorSources(entry.source, item.value.row.properties).sourceFingerprint ===
|
|
40
|
+
entry.sourceFingerprint
|
|
41
|
+
)
|
|
42
|
+
continue
|
|
43
|
+
|
|
44
|
+
removals.push({ ref: entry.ref, profile: entry.profile, expectedCommitId: entry.lastCommitId })
|
|
45
|
+
}
|
|
46
|
+
if (removals.length) await vectors.removeBatch({ session, projectId, entries: removals })
|
|
47
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MaterializationValidationError } from "../../materialization/errors"
|
|
2
2
|
import { utf8JsonByteLength } from "../../materialization/refs"
|
|
3
|
+
import type { Storage } from "../../storage"
|
|
3
4
|
import type {
|
|
4
5
|
MaterializationSession,
|
|
5
6
|
MaterializationWorkRecord,
|
|
@@ -7,6 +8,8 @@ import type {
|
|
|
7
8
|
} from "../../storage/ontology"
|
|
8
9
|
import type { MaterializerContext } from "../context"
|
|
9
10
|
import { sequenceMaterializationEvent } from "../effective/build-events"
|
|
11
|
+
import { scheduleVectorChanges } from "../effective/vector-indexing"
|
|
12
|
+
import { invalidateVectorChanges } from "../effective/vectors"
|
|
10
13
|
import { throwIfAborted } from "../shared/abort"
|
|
11
14
|
import { chunkBySize } from "../shared/chunking"
|
|
12
15
|
import type { TimedCommitIdentity } from "../shared/identity"
|
|
@@ -46,15 +49,20 @@ export async function stageWorkBounded(
|
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
export async function drainStagedWork(
|
|
49
|
-
context:
|
|
50
|
-
|
|
52
|
+
context: Pick<MaterializerContext, "batching" | "projectId" | "ontology" | "clock">,
|
|
53
|
+
transactionStorage: Storage,
|
|
51
54
|
session: MaterializationSession,
|
|
52
|
-
signal?: AbortSignal
|
|
55
|
+
signal?: AbortSignal,
|
|
56
|
+
projection = false
|
|
53
57
|
): Promise<void> {
|
|
58
|
+
const ontologyStorage = transactionStorage.ontology
|
|
59
|
+
const storage = ontologyStorage.materializations
|
|
54
60
|
let phase: number | null = null
|
|
55
61
|
let pending: MaterializationPlanItem[] = []
|
|
56
62
|
const flush = async () => {
|
|
57
63
|
if (pending.length === 0) return
|
|
64
|
+
await scheduleVectorChanges(context, transactionStorage, pending, session, projection)
|
|
65
|
+
await invalidateVectorChanges(context.projectId, ontologyStorage.vectors, pending, session)
|
|
58
66
|
await applyItems(context, storage, session, pending, signal)
|
|
59
67
|
pending = []
|
|
60
68
|
}
|
|
@@ -347,7 +347,7 @@ async function executeProjectionTransaction(
|
|
|
347
347
|
ready,
|
|
348
348
|
origin
|
|
349
349
|
)
|
|
350
|
-
await drainStagedWork(context, storage
|
|
350
|
+
await drainStagedWork(context, storage, session, command.signal, true)
|
|
351
351
|
const eventCount = await drainStagedEvents(
|
|
352
352
|
context,
|
|
353
353
|
storage.ontology.materializations,
|
|
@@ -269,6 +269,8 @@ export function normalizeOntologyEditCommit(input: OntologyEditCommit): Ontology
|
|
|
269
269
|
})
|
|
270
270
|
|
|
271
271
|
if (input.mode === "continue") {
|
|
272
|
+
if ("vectorWrites" in input)
|
|
273
|
+
throw new MaterializationValidationError("Vector writes require an atomic commit.")
|
|
272
274
|
return Object.freeze({
|
|
273
275
|
mode: "continue",
|
|
274
276
|
source: Object.freeze({
|
|
@@ -293,12 +295,21 @@ export function normalizeOntologyEditCommit(input: OntologyEditCommit): Ontology
|
|
|
293
295
|
kind: "runtime" as const,
|
|
294
296
|
requestId: normalizeNonblank(input.source.requestId, "Runtime request id"),
|
|
295
297
|
})
|
|
298
|
+
if (input.vectorWrites?.length && (operations.length || input.source.kind !== "runtime")) {
|
|
299
|
+
throw new MaterializationValidationError(
|
|
300
|
+
"Vector writes require a dedicated atomic runtime commit."
|
|
301
|
+
)
|
|
302
|
+
}
|
|
303
|
+
if (input.vectorWrites !== undefined) assertJsonValue(input.vectorWrites, "Vector writes")
|
|
296
304
|
const expectedObjects = input.expectedObjects.map(normalizeExpectedObject)
|
|
297
305
|
const expectedLinks = input.expectedLinks.map(normalizeExpectedLink)
|
|
298
306
|
const expectedLinkScopes = input.expectedLinkScopes.map(normalizeExpectedLinkScope)
|
|
299
307
|
|
|
300
308
|
return Object.freeze({
|
|
301
309
|
mode: "atomic",
|
|
310
|
+
...(input.vectorWrites === undefined
|
|
311
|
+
? {}
|
|
312
|
+
: { vectorWrites: structuredClone(input.vectorWrites) }),
|
|
302
313
|
source,
|
|
303
314
|
operations: Object.freeze(operations),
|
|
304
315
|
expectedObjects: deduplicateExpectations(
|
|
@@ -404,7 +404,7 @@ async function executeTelemetryTransaction(
|
|
|
404
404
|
...(command.execution.actor === undefined ? {} : { actor: command.execution.actor }),
|
|
405
405
|
}
|
|
406
406
|
)
|
|
407
|
-
await drainStagedWork(context, storage
|
|
407
|
+
await drainStagedWork(context, storage, session)
|
|
408
408
|
const eventCount = await drainStagedEvents(
|
|
409
409
|
context,
|
|
410
410
|
storage.ontology.materializations,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { RuntimeError } from "../runtime/errors"
|
|
2
|
+
import type { ModelRef } from "./catalog"
|
|
3
|
+
|
|
4
|
+
interface ModelBinding {
|
|
5
|
+
readonly providerId: string
|
|
6
|
+
readonly modelId: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface ModelEntry<TModel> extends ModelRef {
|
|
10
|
+
readonly model: TModel
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** Private index shared by model families; default selection belongs to each family. */
|
|
14
|
+
export function indexModelBindings<TModel extends ModelBinding>(
|
|
15
|
+
models: readonly TModel[],
|
|
16
|
+
kind: string,
|
|
17
|
+
validate: (model: TModel, index: number) => void
|
|
18
|
+
) {
|
|
19
|
+
const byRef = new Map<string, ModelEntry<TModel>>()
|
|
20
|
+
|
|
21
|
+
for (const [index, model] of models.entries()) {
|
|
22
|
+
validate(model, index)
|
|
23
|
+
const key = JSON.stringify([model.providerId, model.modelId])
|
|
24
|
+
if (byRef.has(key)) {
|
|
25
|
+
throw new RuntimeError(
|
|
26
|
+
`[Sixb] Duplicate ${kind} model '${model.providerId}/${model.modelId}' in 'models.${kind}'. Each provider and model id pair may be configured once.`
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
byRef.set(key, Object.freeze({ provider: model.providerId, modelId: model.modelId, model }))
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const entries = Object.freeze([...byRef.values()])
|
|
34
|
+
return Object.freeze({
|
|
35
|
+
list: () => entries,
|
|
36
|
+
getByRef: (ref: ModelRef) => byRef.get(JSON.stringify([ref.provider, ref.modelId])) ?? null,
|
|
37
|
+
})
|
|
38
|
+
}
|
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
|
+
}
|