@sixb/core 0.1.11 → 0.1.13
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.d.ts +2 -2
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +33 -30
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +14 -16
- package/dist/actions/read-facade.d.ts.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-dispatch.d.ts +2 -0
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +18 -31
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/types/params.d.ts +11 -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 +52 -44
- 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/assert-never.d.ts +6 -0
- package/dist/assert-never.d.ts.map +1 -0
- package/dist/auth/client-address.d.ts +3 -0
- package/dist/auth/client-address.d.ts.map +1 -0
- package/dist/auth/csrf.d.ts +5 -1
- package/dist/auth/csrf.d.ts.map +1 -1
- package/dist/auth/index.d.ts +3 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +15 -7
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +58 -41
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +10 -3
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/sessions.d.ts +12 -0
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +8 -15
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +5 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/bootstrap/index.d.ts +1 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +54 -48
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
- package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
- package/dist/{chunk-d63nnr5b.js → chunk-04h4t2b5.js} +39 -53
- package/dist/{chunk-d63nnr5b.js.map → chunk-04h4t2b5.js.map} +5 -6
- package/dist/chunk-2fv8sajb.js +84 -0
- package/dist/chunk-2fv8sajb.js.map +10 -0
- package/dist/{chunk-1yefycb1.js → chunk-2hbhn1ff.js} +2 -2
- package/dist/{chunk-ap0g1g74.js → chunk-3nx8vj5a.js} +43 -6
- package/dist/chunk-3nx8vj5a.js.map +12 -0
- package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
- package/dist/{chunk-0y39rgsb.js → chunk-4tnrzqqh.js} +1 -1
- package/dist/chunk-58geavnf.js +29 -0
- package/dist/chunk-58geavnf.js.map +10 -0
- package/dist/{chunk-01kj2pbh.js → chunk-63fp9x3q.js} +97 -67
- package/dist/chunk-63fp9x3q.js.map +20 -0
- package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
- package/dist/chunk-69266efg.js.map +12 -0
- package/dist/{chunk-sepyxgpc.js → chunk-693f3zn8.js} +70 -28
- package/dist/chunk-693f3zn8.js.map +15 -0
- package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
- package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
- package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
- package/dist/{chunk-a0e6x5hd.js → chunk-898y24dd.js} +165 -90
- package/dist/chunk-898y24dd.js.map +15 -0
- package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
- package/dist/chunk-91kcnbf0.js.map +10 -0
- package/dist/{chunk-z0s4axeh.js → chunk-91wthfwe.js} +97 -21
- package/dist/{chunk-z0s4axeh.js.map → chunk-91wthfwe.js.map} +8 -7
- 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-g00bfdq6.js → chunk-9pfw47qx.js} +318 -257
- package/dist/chunk-9pfw47qx.js.map +44 -0
- package/dist/{chunk-5hz0fnca.js → chunk-a0073121.js} +64 -60
- package/dist/chunk-a0073121.js.map +12 -0
- package/dist/{chunk-cfvakeax.js → chunk-a69fkrtr.js} +5 -5
- package/dist/{chunk-72w2pxk7.js → chunk-bdhfn0ww.js} +11 -3
- package/dist/{chunk-72w2pxk7.js.map → chunk-bdhfn0ww.js.map} +3 -3
- package/dist/chunk-bep5rrdq.js +81 -0
- package/dist/chunk-bep5rrdq.js.map +10 -0
- package/dist/chunk-bxx3ms5t.js +29 -0
- package/dist/chunk-bxx3ms5t.js.map +10 -0
- package/dist/{chunk-v2vcg0w6.js → chunk-cbn96bve.js} +2 -2
- package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
- package/dist/chunk-cd234ba4.js.map +14 -0
- package/dist/{chunk-gq8vhakp.js → chunk-cvrbhvtr.js} +292 -104
- package/dist/chunk-cvrbhvtr.js.map +46 -0
- package/dist/{chunk-ms2tmn1k.js → chunk-d8yes9yx.js} +355 -100
- package/dist/chunk-d8yes9yx.js.map +20 -0
- package/dist/{chunk-pr2h4bv4.js → chunk-darm7eeg.js} +9 -9
- package/dist/{chunk-pr2h4bv4.js.map → chunk-darm7eeg.js.map} +3 -3
- package/dist/chunk-dmn70ztd.js.map +2 -2
- package/dist/chunk-drz59ve0.js +57 -0
- package/dist/chunk-drz59ve0.js.map +10 -0
- package/dist/{chunk-skz0hst3.js → chunk-dsfw1bdr.js} +6 -86
- package/dist/{chunk-skz0hst3.js.map → chunk-dsfw1bdr.js.map} +3 -3
- package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
- package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
- package/dist/chunk-ffwvdgk1.js +85 -0
- package/dist/chunk-ffwvdgk1.js.map +10 -0
- package/dist/chunk-gbcrz0gr.js +552 -0
- package/dist/chunk-gbcrz0gr.js.map +17 -0
- package/dist/{chunk-gqm76kse.js → chunk-gc226ten.js} +434 -177
- package/dist/chunk-gc226ten.js.map +62 -0
- package/dist/{chunk-awbhdqyc.js → chunk-gmt22nxx.js} +10 -16
- package/dist/chunk-gmt22nxx.js.map +10 -0
- package/dist/chunk-h89wz928.js +42 -0
- package/dist/chunk-h89wz928.js.map +10 -0
- package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
- package/dist/chunk-hgqpcmyr.js.map +12 -0
- package/dist/{chunk-gqh45d2n.js → chunk-ht4a7mjg.js} +76 -6
- package/dist/chunk-ht4a7mjg.js.map +15 -0
- package/dist/{chunk-x9m9x2eq.js → chunk-jhyc777j.js} +3 -3
- package/dist/{chunk-fh8kgex1.js → chunk-jmwy25mf.js} +76 -58
- package/dist/{chunk-fh8kgex1.js.map → chunk-jmwy25mf.js.map} +3 -3
- package/dist/{chunk-rb1xx120.js → chunk-k4kkp58d.js} +25 -8
- package/dist/chunk-k4kkp58d.js.map +11 -0
- package/dist/{chunk-jsy70480.js → chunk-ky7zpbtt.js} +366 -98
- package/dist/chunk-ky7zpbtt.js.map +19 -0
- package/dist/chunk-m4ehq95f.js +9 -0
- package/dist/chunk-m4ehq95f.js.map +10 -0
- package/dist/{chunk-17kfctj6.js → chunk-m8zkvep1.js} +2 -2
- package/dist/{chunk-z0271qkp.js → chunk-mdnw7nj8.js} +8 -6
- package/dist/chunk-mdnw7nj8.js.map +15 -0
- package/dist/{chunk-4zhmdsx6.js → chunk-mf6hwpzh.js} +121 -28
- package/dist/{chunk-4zhmdsx6.js.map → chunk-mf6hwpzh.js.map} +6 -6
- package/dist/{chunk-z30bv4ga.js → chunk-mr60an99.js} +5 -3
- package/dist/{chunk-z30bv4ga.js.map → chunk-mr60an99.js.map} +3 -3
- package/dist/chunk-n33e8dz8.js +191 -0
- package/dist/chunk-n33e8dz8.js.map +11 -0
- package/dist/chunk-p1683c0v.js +104 -0
- package/dist/chunk-p1683c0v.js.map +11 -0
- package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
- package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
- package/dist/chunk-rdghfsss.js.map +10 -0
- package/dist/{chunk-ftv470j8.js → chunk-rqtdtm43.js} +365 -67
- package/dist/chunk-rqtdtm43.js.map +50 -0
- package/dist/{chunk-dz5h08xv.js → chunk-rzcjp5m2.js} +28 -9
- package/dist/chunk-rzcjp5m2.js.map +25 -0
- package/dist/{chunk-f4w3yp4f.js → chunk-rzkr70gr.js} +108 -21
- package/dist/chunk-rzkr70gr.js.map +13 -0
- package/dist/{chunk-3ckk0xfj.js → chunk-s24qbp32.js} +18 -13
- package/dist/{chunk-3ckk0xfj.js.map → chunk-s24qbp32.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-93csa55g.js → chunk-tw03bsmb.js} +11 -5
- package/dist/chunk-tw03bsmb.js.map +11 -0
- package/dist/chunk-vef6qa14.js +363 -0
- package/dist/chunk-vef6qa14.js.map +14 -0
- package/dist/{chunk-92vk7gta.js → chunk-vn3yh259.js} +1 -1
- package/dist/{chunk-g91qxjj0.js → chunk-w9bp61e7.js} +5 -5
- package/dist/{chunk-b19g04jk.js → chunk-xgptywp0.js} +4 -3
- package/dist/chunk-xgptywp0.js.map +11 -0
- 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-1824gssz.js → chunk-y487ywrv.js} +4 -4
- package/dist/{chunk-7apz6hg4.js → chunk-y6vnvayj.js} +8 -4
- package/dist/chunk-y6vnvayj.js.map +10 -0
- package/dist/{chunk-wf88w4kp.js → chunk-ypj2wqtj.js} +3 -6
- package/dist/{chunk-wf88w4kp.js.map → chunk-ypj2wqtj.js.map} +4 -4
- package/dist/chunk-z3y5kg1x.js +14 -0
- package/dist/chunk-z3y5kg1x.js.map +10 -0
- package/dist/{chunk-38zv5rkr.js → chunk-z9h698s8.js} +1 -1
- package/dist/{chunk-38zv5rkr.js.map → chunk-z9h698s8.js.map} +2 -2
- package/dist/{chunk-8vj0rjgs.js → chunk-zdkcdshk.js} +3 -36
- package/dist/{chunk-8vj0rjgs.js.map → chunk-zdkcdshk.js.map} +3 -4
- package/dist/{chunk-358caqf5.js → chunk-znw0zvy4.js} +2 -2
- 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/edits/types.d.ts +19 -19
- package/dist/edits/types.d.ts.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 +16 -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/envelope.d.ts +0 -12
- package/dist/events/envelope.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +5 -4
- package/dist/events/index.js.map +1 -1
- package/dist/events/service.d.ts +1 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/events/toStoredEvent.d.ts +1 -2
- package/dist/events/toStoredEvent.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +2 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +1 -2
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +48 -43
- 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.d.ts +1 -2
- package/dist/execution/primitive.d.ts.map +1 -1
- package/dist/execution/primitive.js +47 -42
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +1 -2
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +48 -43
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/types.d.ts +6 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/index.d.ts +20 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -62
- 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/maintenance/ontology-maintenance.d.ts +11 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materialization/errors.d.ts +4 -2
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/events.d.ts +27 -2
- package/dist/materialization/events.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/operations.d.ts +2 -1
- package/dist/materializer/edits/operations.d.ts.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -2
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/edits/user-refs.d.ts +30 -0
- package/dist/materializer/edits/user-refs.d.ts.map +1 -0
- 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/build-events.d.ts +2 -2
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- 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/scope.d.ts +11 -3
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- 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 +30 -27
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +2 -0
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -2
- package/dist/materializer/telemetry/plan.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 +32 -27
- 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 +21 -26
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +33 -30
- 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 +42 -30
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +14 -3
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/scalar-values.d.ts.map +1 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts +6 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -3
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -10
- package/dist/objects/sdk/query-builder.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/sdk/telemetry-channel.d.ts +1 -2
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/sdk/where.d.ts +2 -3
- package/dist/objects/sdk/where.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/builders.d.ts +11 -10
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +5 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +7 -5
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +34 -22
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +1 -0
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +10 -7
- package/dist/ontology/internal.js.map +1 -1
- package/dist/ontology/primitives.d.ts +38 -0
- package/dist/ontology/primitives.d.ts.map +1 -0
- package/dist/ontology/query-capabilities.d.ts +38 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +23 -2
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/registered.d.ts +16 -0
- package/dist/ontology/registered.d.ts.map +1 -0
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +35 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +26 -13
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/user-ref.d.ts +35 -0
- package/dist/ontology/user-ref.d.ts.map +1 -0
- package/dist/ontology/validation/definition.d.ts +3 -0
- package/dist/ontology/validation/definition.d.ts.map +1 -0
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/normalize.d.ts.map +1 -1
- package/dist/ontology/validation/properties.d.ts +6 -1
- 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 +32 -29
- package/dist/pipelines/index.js.map +1 -1
- package/dist/predicates/types.d.ts +53 -3
- package/dist/predicates/types.d.ts.map +1 -1
- package/dist/projections/builders.d.ts +19 -1
- package/dist/projections/builders.d.ts.map +1 -1
- package/dist/projections/internal.js +28 -25
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/validation.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +3 -2
- 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 +10 -7
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.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 +49 -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 +11 -6
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +182 -187
- 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 +39 -4
- 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 +48 -0
- package/dist/shared/params/types.d.ts.map +1 -0
- package/dist/shared/params/user-refs.d.ts +19 -0
- package/dist/shared/params/user-refs.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/compiler.d.ts.map +1 -1
- package/dist/shares/internal.js +29 -26
- 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/action-runs/types.d.ts +1 -1
- package/dist/storage/action-runs/types.d.ts.map +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/auth/in-memory/access-tokens.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +62 -13
- package/dist/storage/auth/types.d.ts.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/file-upload-sessions/in-memory.d.ts +9 -18
- package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
- package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +24 -0
- package/dist/storage/file-upload-sessions/provider.js.map +9 -0
- package/dist/storage/file-upload-sessions/types.d.ts +19 -1
- package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
- package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
- package/dist/storage/index.d.ts +8 -6
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +37 -30
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +11 -9
- package/dist/storage/internal.js.map +1 -1
- 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 +7 -2
- 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-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -1
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +9 -3
- package/dist/storage/ontology/provider.js.map +1 -1
- 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 +2 -2
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/index.d.ts +1 -1
- package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/types.d.ts +5 -8
- package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +10 -8
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +33 -30
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +4 -0
- package/dist/testing/action-execution.d.ts.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/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution.d.ts +1 -2
- package/dist/testing/execution.d.ts.map +1 -1
- package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
- package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2351 -1263
- package/dist/testing/index.js.map +19 -17
- package/dist/testing/materializer-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-contract-fixture.d.ts +8 -0
- package/dist/testing/ontology-contract-fixture.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/testing/sandboxes-contract.d.ts.map +1 -1
- package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
- package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +29 -26
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/webhooks/types.d.ts +2 -2
- package/dist/webhooks/types.d.ts.map +1 -1
- 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 +51 -45
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/run-dispatch.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +2 -2
- package/dist/workflows/types.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/actions/builders/params.ts +1 -48
- package/src/actions/index.ts +0 -3
- package/src/actions/read-facade.ts +102 -62
- package/src/actions/request.ts +13 -0
- package/src/actions/run-dispatch.ts +3 -0
- package/src/actions/types/context.ts +17 -65
- package/src/actions/types/params.ts +16 -75
- package/src/actions/validation.ts +7 -84
- package/src/agents/authority.ts +1 -1
- 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/assert-never.ts +7 -0
- package/src/auth/client-address.ts +12 -0
- package/src/auth/csrf.ts +14 -5
- package/src/auth/index.ts +3 -2
- package/src/auth/runtime.ts +299 -277
- package/src/auth/session-cache.ts +18 -6
- package/src/auth/sessions.ts +30 -0
- package/src/auth/types.ts +7 -17
- package/src/bootstrap/index.ts +1 -0
- package/src/bootstrap/ontology-type-manifest.ts +112 -60
- package/src/datasets/validation.ts +40 -11
- package/src/datasets/write.ts +8 -11
- package/src/edits/types.ts +47 -63
- 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 +16 -0
- package/src/errors/failure-message.ts +15 -0
- package/src/errors/internal.ts +57 -25
- package/src/events/envelope.ts +0 -13
- package/src/events/index.ts +1 -1
- package/src/events/service.ts +1 -11
- package/src/events/toStoredEvent.ts +1 -3
- package/src/events/types/index.ts +1 -1
- package/src/execution/agent.ts +1 -2
- package/src/execution/authorization.ts +12 -5
- package/src/execution/authorized-object-reader.ts +42 -9
- package/src/execution/kernel-operation.ts +27 -0
- package/src/execution/primitive.ts +1 -2
- package/src/execution/request.ts +1 -2
- package/src/execution/scopes.ts +2 -0
- package/src/execution/types.ts +4 -4
- package/src/index.ts +68 -8
- package/src/lake-storage/in-memory.ts +5 -3
- package/src/maintenance/ontology-maintenance.ts +77 -1
- package/src/materialization/errors.ts +4 -2
- package/src/materialization/events.ts +27 -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 +16 -0
- package/src/materializer/context.ts +10 -0
- package/src/materializer/edits/commit.ts +29 -13
- package/src/materializer/edits/operations.ts +32 -4
- package/src/materializer/edits/plan.ts +4 -5
- package/src/materializer/edits/user-refs.ts +115 -0
- package/src/materializer/edits/vector-authority.ts +108 -0
- package/src/materializer/edits/vectors.ts +100 -0
- package/src/materializer/effective/build-events.ts +4 -5
- 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/scope.ts +40 -7
- package/src/materializer/execution/work-executor.ts +11 -3
- package/src/materializer/projections/replace.ts +3 -1
- package/src/materializer/projections/replacement-plan.ts +4 -0
- package/src/materializer/shared/normalize.ts +11 -0
- package/src/materializer/telemetry/append.ts +5 -13
- package/src/materializer/telemetry/plan.ts +4 -5
- 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 +34 -61
- package/src/objects/query/executor.ts +25 -7
- package/src/objects/query/explain.ts +7 -2
- package/src/objects/query/index.ts +2 -0
- package/src/objects/query/ir.ts +13 -2
- package/src/objects/query/normalize.ts +5 -1
- package/src/objects/query/planner.ts +1 -0
- package/src/objects/query/scalar-values.ts +19 -0
- package/src/objects/query/validate.ts +129 -117
- package/src/objects/sdk/object-handle.ts +11 -8
- package/src/objects/sdk/object-set.ts +9 -15
- package/src/objects/sdk/query-builder.ts +66 -72
- package/src/objects/sdk/query-executor.ts +2 -1
- package/src/objects/sdk/runtime-query-executor.ts +6 -2
- package/src/objects/sdk/telemetry-channel.ts +6 -7
- package/src/objects/sdk/where.ts +6 -13
- 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/builders.ts +15 -11
- package/src/ontology/index.ts +6 -0
- package/src/ontology/inference/index.ts +56 -36
- package/src/ontology/internal.ts +1 -0
- package/src/ontology/json-schema.ts +12 -0
- package/src/ontology/primitives.ts +91 -0
- package/src/ontology/query-capabilities.ts +136 -0
- package/src/ontology/refs.ts +33 -6
- package/src/ontology/registered.ts +22 -0
- package/src/ontology/registry.ts +14 -3
- package/src/ontology/tokens.ts +41 -2
- package/src/ontology/types.ts +28 -12
- package/src/ontology/user-ref.ts +120 -0
- package/src/ontology/validation/definition.ts +93 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/normalize.ts +39 -3
- package/src/ontology/validation/properties.ts +109 -23
- package/src/ontology/validation/query.ts +44 -92
- package/src/ontology/validation/schema.ts +101 -23
- package/src/ontology/vector-profiles.ts +35 -0
- package/src/predicates/types.ts +43 -33
- package/src/projections/builders.ts +24 -3
- package/src/projections/validation.ts +15 -1
- 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 +44 -10
- package/src/runtime/index.ts +3 -2
- package/src/runtime/internal.ts +3 -0
- package/src/runtime/resolve-definitions.ts +19 -1
- package/src/runtime/sixb.ts +25 -17
- package/src/runtime/types.ts +288 -478
- 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 +42 -4
- package/src/shared/params/builders.ts +50 -0
- package/src/shared/params/types.ts +85 -0
- package/src/shared/params/user-refs.ts +48 -0
- package/src/shared/params/validation.ts +114 -0
- package/src/shares/compiler.ts +6 -16
- package/src/storage/action-runs/types.ts +1 -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/auth/in-memory/access-tokens.ts +5 -2
- package/src/storage/auth/in-memory/auth-storage.ts +5 -8
- package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
- package/src/storage/auth/in-memory/sessions.ts +69 -1
- package/src/storage/auth/in-memory/shared.ts +13 -7
- package/src/storage/auth/index.ts +2 -1
- package/src/storage/auth/types.ts +57 -13
- package/src/storage/executions/provider.ts +24 -12
- package/src/storage/executions/types.ts +1 -0
- package/src/storage/executions/validation.ts +8 -4
- package/src/storage/file-upload-sessions/in-memory.ts +64 -113
- package/src/storage/file-upload-sessions/index.ts +1 -0
- package/src/storage/file-upload-sessions/provider.ts +258 -0
- package/src/storage/file-upload-sessions/types.ts +20 -1
- package/src/storage/file-upload-sessions/utils.ts +25 -9
- package/src/storage/index.ts +18 -3
- package/src/storage/objects/in-memory/query.ts +38 -14
- 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 +7 -2
- package/src/storage/ontology/in-memory/index.ts +20 -0
- package/src/storage/ontology/in-memory/materializations.ts +19 -34
- 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/provider-header-validation.ts +57 -0
- package/src/storage/ontology/provider-work.ts +15 -3
- package/src/storage/ontology/provider.ts +59 -1
- package/src/storage/ontology/vector-indexing.ts +98 -0
- package/src/storage/ontology/vectors.ts +48 -0
- package/src/storage/operation-scope.ts +2 -0
- package/src/storage/types.ts +3 -1
- package/src/storage/workflow-interventions/index.ts +0 -1
- package/src/storage/workflow-interventions/types.ts +5 -9
- package/src/testing/action-execution.ts +13 -3
- package/src/testing/agent-storage-contract.ts +246 -0
- package/src/testing/ai-cost-storage-contract.ts +134 -0
- package/src/testing/auth-storage-contract.ts +149 -62
- package/src/testing/execution-storage-contract.ts +1 -2
- package/src/testing/execution.ts +4 -7
- package/src/testing/file-upload-session-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -0
- package/src/testing/materializer-storage-contract.ts +86 -4
- package/src/testing/object-query-contract.ts +162 -27
- package/src/testing/object-read-scope-contract.ts +1 -5
- package/src/testing/ontology-contract-fixture.ts +23 -3
- package/src/testing/ontology-storage-contract.ts +58 -0
- package/src/testing/queues-contract.ts +31 -0
- package/src/testing/sandboxes-contract.ts +27 -0
- package/src/testing/workflow-intervention-storage-contract.ts +203 -0
- package/src/webhooks/types.ts +2 -2
- package/src/workflows/failure.ts +10 -4
- package/src/workflows/run-dispatch.ts +12 -1
- package/src/workflows/snapshot.ts +16 -7
- package/src/workflows/types.ts +2 -2
- 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-653vwrzr.js.map +0 -10
- 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-awbhdqyc.js.map +0 -10
- package/dist/chunk-b19g04jk.js.map +0 -11
- package/dist/chunk-dz5h08xv.js.map +0 -25
- package/dist/chunk-f0rwz2vh.js.map +0 -11
- package/dist/chunk-f4w3yp4f.js.map +0 -12
- package/dist/chunk-ftv470j8.js.map +0 -45
- package/dist/chunk-g00bfdq6.js.map +0 -43
- package/dist/chunk-gq8vhakp.js.map +0 -44
- package/dist/chunk-gqh45d2n.js.map +0 -15
- package/dist/chunk-gqm76kse.js.map +0 -58
- 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-sepyxgpc.js.map +0 -15
- 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-1yefycb1.js.map → chunk-2hbhn1ff.js.map} +0 -0
- /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
- /package/dist/{chunk-0y39rgsb.js.map → chunk-4tnrzqqh.js.map} +0 -0
- /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
- /package/dist/{chunk-cfvakeax.js.map → chunk-a69fkrtr.js.map} +0 -0
- /package/dist/{chunk-v2vcg0w6.js.map → chunk-cbn96bve.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-x9m9x2eq.js.map → chunk-jhyc777j.js.map} +0 -0
- /package/dist/{chunk-17kfctj6.js.map → chunk-m8zkvep1.js.map} +0 -0
- /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
- /package/dist/{chunk-92vk7gta.js.map → chunk-vn3yh259.js.map} +0 -0
- /package/dist/{chunk-g91qxjj0.js.map → chunk-w9bp61e7.js.map} +0 -0
- /package/dist/{chunk-1824gssz.js.map → chunk-y487ywrv.js.map} +0 -0
- /package/dist/{chunk-358caqf5.js.map → chunk-znw0zvy4.js.map} +0 -0
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
import { assertJsonValue, cloneJsonValue } from "../../json"
|
|
2
|
+
import { UnsupportedModelFeatureError } from "../errors"
|
|
3
|
+
import type {
|
|
4
|
+
ChoiceQuestion,
|
|
5
|
+
DecisionAnswers,
|
|
6
|
+
DecisionContent,
|
|
7
|
+
DecisionModel,
|
|
8
|
+
DecisionModelDefinition,
|
|
9
|
+
DecisionQuestion,
|
|
10
|
+
DecisionQuestions,
|
|
11
|
+
ScoreQuestion,
|
|
12
|
+
} from "./types"
|
|
13
|
+
|
|
14
|
+
type DecisionCapabilities = DecisionModelDefinition["capabilities"]
|
|
15
|
+
|
|
16
|
+
// Allow serialization rounding without normalizing provider answers.
|
|
17
|
+
const DISTRIBUTION_TOLERANCE = 1e-4
|
|
18
|
+
const CHOICE_TOLERANCE = 1e-6
|
|
19
|
+
|
|
20
|
+
export function assertDecisionContent(
|
|
21
|
+
value: unknown,
|
|
22
|
+
path: string
|
|
23
|
+
): asserts value is DecisionContent {
|
|
24
|
+
assertJsonValue(value, path)
|
|
25
|
+
if (value === null || (typeof value !== "string" && typeof value !== "object")) {
|
|
26
|
+
throw new TypeError(`[SixbModels] ${path} must be text, a JSON object or an array.`)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function assertDecisionQuestions(value: unknown): asserts value is DecisionQuestions {
|
|
31
|
+
assertJsonValue(value, "questions")
|
|
32
|
+
const questions = readRecord(value, "questions")
|
|
33
|
+
if (!Object.keys(questions).length) {
|
|
34
|
+
fail("questions must not be empty")
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
for (const [key, question] of Object.entries(questions)) {
|
|
38
|
+
if (!key.trim()) {
|
|
39
|
+
fail("question names must not be empty")
|
|
40
|
+
}
|
|
41
|
+
assertQuestion(question, `questions.${key}`)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function assertQuestion(value: unknown, path: string): void {
|
|
46
|
+
const question = readRecord(value, path)
|
|
47
|
+
assertDecisionContent(question.instructions, `${path}.instructions`)
|
|
48
|
+
if (typeof question.instructions === "string" && !question.instructions.trim()) {
|
|
49
|
+
fail(`${path}.instructions must not be empty`)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
switch (question.type) {
|
|
53
|
+
case "choice":
|
|
54
|
+
assertOnlyKeys(question, ["type", "instructions", "options"], path)
|
|
55
|
+
assertChoiceOptions(question.options, `${path}.options`)
|
|
56
|
+
break
|
|
57
|
+
case "score":
|
|
58
|
+
assertOnlyKeys(question, ["type", "instructions", "levels"], path)
|
|
59
|
+
assertScoreLevels(question.levels, `${path}.levels`)
|
|
60
|
+
break
|
|
61
|
+
case "probability":
|
|
62
|
+
assertOnlyKeys(question, ["type", "instructions"], path)
|
|
63
|
+
break
|
|
64
|
+
default:
|
|
65
|
+
fail(`${path}.type is not a supported decision primitive`)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function assertChoiceOptions(value: unknown, path: string): void {
|
|
70
|
+
const options = readRecord(value, path)
|
|
71
|
+
if (!Object.keys(options).length) {
|
|
72
|
+
fail(`${path} must not be empty`)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
for (const [option, description] of Object.entries(options)) {
|
|
76
|
+
if (!option.trim()) {
|
|
77
|
+
fail(`${path} contains an empty label`)
|
|
78
|
+
}
|
|
79
|
+
if (description !== null) {
|
|
80
|
+
assertDecisionContent(description, `${path}.${option}`)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function assertScoreLevels(value: unknown, path: string): void {
|
|
86
|
+
if (!Array.isArray(value) || value.length < 2) {
|
|
87
|
+
fail(`${path} needs at least two levels`)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
for (const level of value) {
|
|
91
|
+
assertDecisionContent(level, path)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export function assertDecisionModel(model: DecisionModel): void {
|
|
96
|
+
const definition = model?.definition
|
|
97
|
+
if (
|
|
98
|
+
!model ||
|
|
99
|
+
typeof model.evaluate !== "function" ||
|
|
100
|
+
!isValidId(model.providerId) ||
|
|
101
|
+
!isValidId(model.modelId) ||
|
|
102
|
+
definition?.kind !== "decision" ||
|
|
103
|
+
definition.providerId !== model.providerId ||
|
|
104
|
+
definition.modelId !== model.modelId
|
|
105
|
+
) {
|
|
106
|
+
fail("Expected a DecisionModel with matching provider/model identity")
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const capabilities = definition.capabilities
|
|
110
|
+
if (
|
|
111
|
+
!capabilities ||
|
|
112
|
+
!Array.isArray(capabilities.questions) ||
|
|
113
|
+
!capabilities.questions.length ||
|
|
114
|
+
capabilities.questions.some((kind) => !["choice", "score", "probability"].includes(kind)) ||
|
|
115
|
+
new Set(capabilities.questions).size !== capabilities.questions.length
|
|
116
|
+
) {
|
|
117
|
+
fail("Decision model capabilities must list distinct supported question types")
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
assertCapabilityLimit(capabilities.maxChoices, "maxChoices", 1)
|
|
121
|
+
assertCapabilityLimit(capabilities.maxScoreLevels, "maxScoreLevels", 2)
|
|
122
|
+
const decimals = capabilities.answerDecimalPlaces
|
|
123
|
+
if (
|
|
124
|
+
decimals !== undefined &&
|
|
125
|
+
(!Number.isSafeInteger(decimals) || decimals < 1 || decimals > 15)
|
|
126
|
+
) {
|
|
127
|
+
fail("Invalid decision answerDecimalPlaces (expected 1–15)")
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function assertCapabilityLimit(value: number | undefined, name: string, minimum: number): void {
|
|
132
|
+
if (value !== undefined && (!Number.isSafeInteger(value) || value < minimum)) {
|
|
133
|
+
fail(`Invalid decision capability '${name}'`)
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export function assertDecisionSupport(model: DecisionModel, questions: DecisionQuestions): void {
|
|
138
|
+
for (const [key, question] of Object.entries(questions)) {
|
|
139
|
+
if (!supportsQuestion(model.definition.capabilities, question)) {
|
|
140
|
+
throw new UnsupportedModelFeatureError(
|
|
141
|
+
`[SixbModels] Model '${model.providerId}/${model.modelId}' does not support questions.${key}.`
|
|
142
|
+
)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function supportsQuestion(capabilities: DecisionCapabilities, question: DecisionQuestion): boolean {
|
|
148
|
+
if (!capabilities.questions.includes(question.type)) return false
|
|
149
|
+
|
|
150
|
+
switch (question.type) {
|
|
151
|
+
case "choice":
|
|
152
|
+
return Object.keys(question.options).length <= (capabilities.maxChoices ?? Infinity)
|
|
153
|
+
case "score":
|
|
154
|
+
return question.levels.length <= (capabilities.maxScoreLevels ?? Infinity)
|
|
155
|
+
case "probability":
|
|
156
|
+
return true
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export function validateDecisionAnswers<const Q extends DecisionQuestions>(
|
|
161
|
+
questions: Q,
|
|
162
|
+
value: unknown,
|
|
163
|
+
answerDecimalPlaces?: number
|
|
164
|
+
): DecisionAnswers<Q> {
|
|
165
|
+
assertJsonValue(value, "decision output")
|
|
166
|
+
const answers = readRecord(value, "decision output")
|
|
167
|
+
assertExactKeys(answers, Object.keys(questions), "decision output")
|
|
168
|
+
|
|
169
|
+
const roundingError = answerDecimalPlaces === undefined ? 0 : 0.5 * 10 ** -answerDecimalPlaces
|
|
170
|
+
for (const [key, question] of Object.entries(questions)) {
|
|
171
|
+
assertAnswer(question, answers[key], `output.${key}`, roundingError)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Validation establishes the mapped type; callers receive an independent JSON snapshot.
|
|
175
|
+
return cloneJsonValue(value) as DecisionAnswers<Q>
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function assertAnswer(
|
|
179
|
+
question: DecisionQuestion,
|
|
180
|
+
value: unknown,
|
|
181
|
+
path: string,
|
|
182
|
+
roundingError: number
|
|
183
|
+
): void {
|
|
184
|
+
const answer = readRecord(value, path)
|
|
185
|
+
if (question.type === "probability") {
|
|
186
|
+
assertExactKeys(answer, ["probability"], path)
|
|
187
|
+
readProbability(answer.probability, path)
|
|
188
|
+
return
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
assertOnlyKeys(answer, [question.type, "probabilities", "confidence"], path)
|
|
192
|
+
if (answer.confidence !== undefined) {
|
|
193
|
+
readProbability(answer.confidence, `${path}.confidence`)
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
const distribution =
|
|
197
|
+
question.type === "choice"
|
|
198
|
+
? validateChoiceAnswer(question, answer, path)
|
|
199
|
+
: validateScoreAnswer(question, answer, path, roundingError)
|
|
200
|
+
|
|
201
|
+
const total = distribution.reduce((sum, probability) => sum + probability, 0)
|
|
202
|
+
const tolerance = Math.max(DISTRIBUTION_TOLERANCE, distribution.length * roundingError)
|
|
203
|
+
if (Math.abs(total - 1) > tolerance + Number.EPSILON * distribution.length) {
|
|
204
|
+
fail(`${path}.probabilities must sum to one`)
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function validateChoiceAnswer(
|
|
209
|
+
question: ChoiceQuestion,
|
|
210
|
+
answer: Record<string, unknown>,
|
|
211
|
+
path: string
|
|
212
|
+
): number[] {
|
|
213
|
+
const probabilities = readRecord(answer.probabilities, `${path}.probabilities`)
|
|
214
|
+
assertExactKeys(probabilities, Object.keys(question.options), `${path}.probabilities`)
|
|
215
|
+
const distribution = Object.values(probabilities).map((value) => readProbability(value, path))
|
|
216
|
+
|
|
217
|
+
if (typeof answer.choice !== "string" || !Object.hasOwn(question.options, answer.choice)) {
|
|
218
|
+
fail(`${path}.choice is not a declared option`)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const winner = readProbability(probabilities[answer.choice], path)
|
|
222
|
+
if (winner + CHOICE_TOLERANCE < Math.max(...distribution)) {
|
|
223
|
+
fail(`${path}.choice is not a highest-probability option`)
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return distribution
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function validateScoreAnswer(
|
|
230
|
+
question: ScoreQuestion,
|
|
231
|
+
answer: Record<string, unknown>,
|
|
232
|
+
path: string,
|
|
233
|
+
roundingError: number
|
|
234
|
+
): number[] {
|
|
235
|
+
if (
|
|
236
|
+
!Array.isArray(answer.probabilities) ||
|
|
237
|
+
answer.probabilities.length !== question.levels.length
|
|
238
|
+
) {
|
|
239
|
+
fail(`${path}.probabilities must match the score levels`)
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const distribution = answer.probabilities.map((value) => readProbability(value, path))
|
|
243
|
+
const expected = distribution.reduce((sum, probability, index) => sum + probability * index, 0)
|
|
244
|
+
const levels = question.levels.length
|
|
245
|
+
const [minimum, maximum] = roundingError
|
|
246
|
+
? roundedScoreBounds(distribution, roundingError, path)
|
|
247
|
+
: [expected, expected]
|
|
248
|
+
const tolerance = roundingError || DISTRIBUTION_TOLERANCE * levels
|
|
249
|
+
if (
|
|
250
|
+
typeof answer.score !== "number" ||
|
|
251
|
+
!Number.isFinite(answer.score) ||
|
|
252
|
+
answer.score < 0 ||
|
|
253
|
+
answer.score > question.levels.length - 1 ||
|
|
254
|
+
answer.score < minimum - tolerance - Number.EPSILON * levels ** 2 ||
|
|
255
|
+
answer.score > maximum + tolerance + Number.EPSILON * levels ** 2
|
|
256
|
+
) {
|
|
257
|
+
fail(`${path}.score is inconsistent with its distribution`)
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
return distribution
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/** Find possible means without changing the returned probabilities. */
|
|
264
|
+
function roundedScoreBounds(
|
|
265
|
+
distribution: readonly number[],
|
|
266
|
+
roundingError: number,
|
|
267
|
+
path: string
|
|
268
|
+
): readonly [number, number] {
|
|
269
|
+
const lower = distribution.map((value) => Math.max(0, value - roundingError))
|
|
270
|
+
const upper = distribution.map((value) => Math.min(1, value + roundingError))
|
|
271
|
+
const remaining = 1 - lower.reduce((sum, value) => sum + value, 0)
|
|
272
|
+
const epsilon = Number.EPSILON * distribution.length
|
|
273
|
+
if (remaining < -epsilon || upper.reduce((sum, value) => sum + value, 0) < 1 - epsilon) {
|
|
274
|
+
fail(`${path}.probabilities must sum to one`)
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
const base = lower.reduce((sum, value, index) => sum + value * index, 0)
|
|
278
|
+
function extreme(highestFirst: boolean): number {
|
|
279
|
+
let mass = Math.max(0, remaining)
|
|
280
|
+
let mean = base
|
|
281
|
+
// Start at each probability's lower bound, then allocate exactly the remaining mass.
|
|
282
|
+
// Filling lower levels first minimizes the mean; filling higher levels maximizes it.
|
|
283
|
+
for (let offset = 0; offset < distribution.length && mass > 0; offset++) {
|
|
284
|
+
const index = highestFirst ? distribution.length - 1 - offset : offset
|
|
285
|
+
const added = Math.min(mass, upper[index]! - lower[index]!)
|
|
286
|
+
mean += added * index
|
|
287
|
+
mass -= added
|
|
288
|
+
}
|
|
289
|
+
return mean
|
|
290
|
+
}
|
|
291
|
+
return [extreme(false), extreme(true)]
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
function readProbability(value: unknown, path: string): number {
|
|
295
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value < 0 || value > 1) {
|
|
296
|
+
fail(`${path} must contain probabilities between zero and one`)
|
|
297
|
+
}
|
|
298
|
+
return value
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
function readRecord(value: unknown, path: string): Record<string, unknown> {
|
|
302
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
303
|
+
fail(`${path} must be an object`)
|
|
304
|
+
}
|
|
305
|
+
return value as Record<string, unknown>
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
function assertOnlyKeys(
|
|
309
|
+
value: Record<string, unknown>,
|
|
310
|
+
keys: readonly string[],
|
|
311
|
+
path: string
|
|
312
|
+
): void {
|
|
313
|
+
if (Object.keys(value).some((key) => !keys.includes(key))) {
|
|
314
|
+
fail(`${path} contains an unknown field`)
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
function assertExactKeys(
|
|
319
|
+
value: Record<string, unknown>,
|
|
320
|
+
keys: readonly string[],
|
|
321
|
+
path: string
|
|
322
|
+
): void {
|
|
323
|
+
assertOnlyKeys(value, keys, path)
|
|
324
|
+
if (keys.some((key) => !Object.hasOwn(value, key))) {
|
|
325
|
+
fail(`${path} is missing an expected field`)
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
function isValidId(value: unknown): value is string {
|
|
330
|
+
return typeof value === "string" && !!value.trim() && value.trim() === value
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
function fail(detail: string): never {
|
|
334
|
+
throw new TypeError(`[SixbModels] ${detail}.`)
|
|
335
|
+
}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
type ModelReasoningCapabilities,
|
|
6
6
|
} from "./language-model"
|
|
7
7
|
|
|
8
|
-
export type ModelKind = "language" | "image" | "video" | "embedding"
|
|
8
|
+
export type ModelKind = "language" | "image" | "video" | "embedding" | "decision"
|
|
9
9
|
|
|
10
10
|
/** Common catalog identity shared by every present and future model runtime. */
|
|
11
11
|
export interface ModelDefinition {
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import type { ModelDefinition } from "./definitions"
|
|
2
|
+
import { ModelProviderError } from "./errors"
|
|
3
|
+
import type { ModelProviderIds, ModelRoute, ModelUsage } from "./events"
|
|
4
|
+
import type { ModelCostEstimator, ModelReportedCost } from "./pricing"
|
|
5
|
+
|
|
6
|
+
/** The identity includes the configured output dimension, not only the vendor's model id. */
|
|
7
|
+
export interface EmbeddingModelDefinition extends ModelDefinition {
|
|
8
|
+
readonly kind: "embedding"
|
|
9
|
+
readonly dimensions: number
|
|
10
|
+
/** Actual representation behind a routing alias. Omit only when modelId identifies it directly. */
|
|
11
|
+
readonly representation?: { readonly name: string; readonly version?: string }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface EmbeddingModelRequest {
|
|
15
|
+
readonly texts: readonly string[]
|
|
16
|
+
/** Providers must honor cancellation and propagate this signal to their transport. */
|
|
17
|
+
readonly signal?: AbortSignal
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** Provider accounting facts; absent meters or prices remain unknown. */
|
|
21
|
+
export interface EmbeddingModelResponseMetadata {
|
|
22
|
+
readonly usage?: ModelUsage
|
|
23
|
+
readonly providerIds?: ModelProviderIds
|
|
24
|
+
readonly responseModelId?: string
|
|
25
|
+
readonly reportedCost?: ModelReportedCost
|
|
26
|
+
readonly route?: ModelRoute
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface EmbeddingModelResult extends EmbeddingModelResponseMetadata {
|
|
30
|
+
readonly vectors: readonly (readonly number[])[]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Serializable profile reference; executable providers stay on the server. */
|
|
34
|
+
export interface EmbeddingModelRef {
|
|
35
|
+
readonly providerId: string
|
|
36
|
+
readonly modelId: string
|
|
37
|
+
readonly definition: EmbeddingModelDefinition
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Conservative transport bounds for automatic projection batching, not token estimates. */
|
|
41
|
+
export interface EmbeddingBatchLimits {
|
|
42
|
+
readonly maxInputs: number
|
|
43
|
+
readonly maxInputBytes: number
|
|
44
|
+
readonly maxTotalInputBytes: number
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface EmbeddingModel extends EmbeddingModelRef {
|
|
48
|
+
/** Omit when safe multi-input bounds are unknown; automatic indexing then calls one at a time. */
|
|
49
|
+
readonly batching?: EmbeddingBatchLimits
|
|
50
|
+
readonly costEstimator?: ModelCostEstimator
|
|
51
|
+
/** Resolve and pin optional pricing before admission, without an inference call. */
|
|
52
|
+
resolve?(): Promise<EmbeddingModel>
|
|
53
|
+
embed(request: EmbeddingModelRequest): Promise<EmbeddingModelResult>
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function assertEmbeddingModel(model: EmbeddingModel): void {
|
|
57
|
+
if (!model || typeof model !== "object" || typeof model.embed !== "function") {
|
|
58
|
+
throw new TypeError("[Sixb] Expected an EmbeddingModel with an embed method.")
|
|
59
|
+
}
|
|
60
|
+
assertEmbeddingModelRef(model)
|
|
61
|
+
if (
|
|
62
|
+
model.batching &&
|
|
63
|
+
[
|
|
64
|
+
model.batching.maxInputs,
|
|
65
|
+
model.batching.maxInputBytes,
|
|
66
|
+
model.batching.maxTotalInputBytes,
|
|
67
|
+
].some((value) => !Number.isSafeInteger(value) || value < 1)
|
|
68
|
+
) {
|
|
69
|
+
throw new TypeError("[Sixb] Embedding batch limits must be positive safe integers.")
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function assertEmbeddingModelRef(model: EmbeddingModelRef): void {
|
|
74
|
+
const definition = model?.definition
|
|
75
|
+
const representation = definition?.representation
|
|
76
|
+
if (
|
|
77
|
+
representation !== undefined &&
|
|
78
|
+
(!representation ||
|
|
79
|
+
typeof representation !== "object" ||
|
|
80
|
+
!validIdentityPart(representation.name) ||
|
|
81
|
+
(representation.version !== undefined && !validIdentityPart(representation.version)))
|
|
82
|
+
)
|
|
83
|
+
throw new TypeError("[Sixb] Invalid embedding model representation.")
|
|
84
|
+
if (
|
|
85
|
+
!definition ||
|
|
86
|
+
definition.kind !== "embedding" ||
|
|
87
|
+
definition.providerId !== model.providerId ||
|
|
88
|
+
definition.modelId !== model.modelId ||
|
|
89
|
+
typeof model.providerId !== "string" ||
|
|
90
|
+
!model.providerId ||
|
|
91
|
+
model.providerId.trim() !== model.providerId ||
|
|
92
|
+
typeof model.modelId !== "string" ||
|
|
93
|
+
!model.modelId ||
|
|
94
|
+
model.modelId.trim() !== model.modelId ||
|
|
95
|
+
!Number.isSafeInteger(definition.dimensions) ||
|
|
96
|
+
definition.dimensions < 1 ||
|
|
97
|
+
definition.dimensions > 16000
|
|
98
|
+
) {
|
|
99
|
+
throw new TypeError("[Sixb] Invalid embedding model identity or dimensions (expected 1–16000).")
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Routing identity, representation and dimensions must agree before any inference. */
|
|
104
|
+
export function sameEmbeddingModel(left: EmbeddingModelRef, right: EmbeddingModelRef): boolean {
|
|
105
|
+
return (
|
|
106
|
+
left.providerId === right.providerId &&
|
|
107
|
+
left.modelId === right.modelId &&
|
|
108
|
+
left.definition.dimensions === right.definition.dimensions &&
|
|
109
|
+
(left.definition.representation?.name ?? left.modelId) ===
|
|
110
|
+
(right.definition.representation?.name ?? right.modelId) &&
|
|
111
|
+
left.definition.representation?.version === right.definition.representation?.version
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function validIdentityPart(value: unknown): value is string {
|
|
116
|
+
return typeof value === "string" && value.length > 0 && value.trim() === value
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** A completed provider response whose vectors are unusable, but may still be billable. */
|
|
120
|
+
export class EmbeddingModelResponseError extends ModelProviderError {
|
|
121
|
+
constructor(
|
|
122
|
+
message: string,
|
|
123
|
+
providerId: string,
|
|
124
|
+
modelId: string,
|
|
125
|
+
readonly metadata: EmbeddingModelResponseMetadata
|
|
126
|
+
) {
|
|
127
|
+
super(message, providerId, modelId, { code: "invalid_embedding_response", retryable: false })
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Model execution accounting
|
|
2
|
+
|
|
3
|
+
Internal execution and accounting shared by language, embedding and decision calls. Application usage is
|
|
4
|
+
documented in [Usage and limits](../../../../../docs/models/usage-and-limits.md).
|
|
5
|
+
|
|
6
|
+
## Execution boundary
|
|
7
|
+
|
|
8
|
+
`ModelExecutionSession` binds one execution attempt and cancellation signal. Its lazy recorder
|
|
9
|
+
uses the durable execution's requester-group snapshot, so redelivery cannot change attribution.
|
|
10
|
+
Language execution and the scoped embedding catalog share that recorder and its failure state.
|
|
11
|
+
Object authorization happens before embedding inference; wrapping a catalog does not grant access.
|
|
12
|
+
|
|
13
|
+
## Embedding flow
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
Authorized index / text search
|
|
17
|
+
→ Scoped embedding model
|
|
18
|
+
→ Resolve model and pricing; verify identity and dimensions
|
|
19
|
+
→ Reserve capacity atomically
|
|
20
|
+
→ Call provider once
|
|
21
|
+
→ Record usage, valuation, and reconcile reservation
|
|
22
|
+
→ Check cancellation; return for vector validation and object write
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`embedding.ts` snapshots inputs and combines caller, execution, and 30-second cancellation
|
|
26
|
+
signals. Providers must propagate the signal to their transport; cancellation is cooperative.
|
|
27
|
+
Input reservation uses UTF-8 bytes divided by four, rounded up per text. Output allowance and
|
|
28
|
+
actual output tokens are zero. Missing input usage remains unknown.
|
|
29
|
+
|
|
30
|
+
An optional provider `resolve()` pins pricing before admission. The response can include `usage`,
|
|
31
|
+
`providerIds`, `responseModelId`, `reportedCost`, and `route`. Provider charges take precedence;
|
|
32
|
+
the local estimate is retained separately. `EmbeddingModelResponseError` preserves this evidence
|
|
33
|
+
when a provider rejects an invalid response.
|
|
34
|
+
|
|
35
|
+
Accounting precedes cancellation propagation, vector validation, and the optimistic object write:
|
|
36
|
+
a rejected result or stale write does not erase a billable call. Ambiguous provider failures retain
|
|
37
|
+
unknown input usage and unresolved capacity. Inference is never retried here.
|
|
38
|
+
|
|
39
|
+
## Recovery and boundaries
|
|
40
|
+
|
|
41
|
+
`AiModelCallRecorder` retries the atomic accounting write, then hands persistent failures to
|
|
42
|
+
`queues.agents`. Its failure state prevents further billable calls in the session. Recovery
|
|
43
|
+
replays accounting only, never inference; see the
|
|
44
|
+
[worker recovery contract](../../../../agent-worker/docs/usage-accounting.md).
|
|
45
|
+
|
|
46
|
+
Direct provider calls bypass this session. Webhook handlers have no bound model execution attempt;
|
|
47
|
+
they must dispatch an action for accounted calls. A process crash before accounting is captured
|
|
48
|
+
can still leave provider billing outside the ledger.
|
|
49
|
+
|
|
50
|
+
## Decision flow
|
|
51
|
+
|
|
52
|
+
Decision evaluation in `../decision/runtime.ts` uses the same session and recorder. It snapshots JSON input/questions
|
|
53
|
+
before yielding, resolves only a permitted catalog binding, checks primitive capabilities,
|
|
54
|
+
admits one call, invokes the provider, and records usage before validating or returning answers.
|
|
55
|
+
The original question snapshot defines valid answer keys, labels and score levels.
|
|
56
|
+
|
|
57
|
+
Input reservation uses serialized UTF-8 bytes divided by four; output reserves the shared
|
|
58
|
+
4,096-token estimate. Neither is a tokenizer or a provider-enforced ceiling. Decision providers
|
|
59
|
+
must preserve their actual output-token meters even when their output price is zero.
|
|
60
|
+
|
|
61
|
+
`DecisionModelResponseError` carries accounting metadata when protocol translation fails after
|
|
62
|
+
a billable response. Other errors retain unknown usage. Recovery replays accounting, never
|
|
63
|
+
inference. Decision-only projects use the existing recovery worker without an agent sandbox.
|
|
@@ -3,6 +3,8 @@ import type { ModelsRuntime } from "../generation-types"
|
|
|
3
3
|
export interface ModelExecutionAttempt {
|
|
4
4
|
readonly attempt: number
|
|
5
5
|
readonly signal: AbortSignal
|
|
6
|
+
/** Internal durable fence around admission; it must invoke admit exactly once to proceed. */
|
|
7
|
+
readonly embeddingAdmission?: (admit: () => Promise<void>) => Promise<void>
|
|
6
8
|
}
|
|
7
9
|
|
|
8
10
|
const bindings = new WeakMap<ModelsRuntime, (input: ModelExecutionAttempt) => void>()
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto"
|
|
2
|
+
import type { EmbeddingModelCatalog, EmbeddingModelEntry, ModelRef } from "../catalog"
|
|
3
|
+
import {
|
|
4
|
+
assertEmbeddingModel,
|
|
5
|
+
type EmbeddingModel,
|
|
6
|
+
type EmbeddingModelRequest,
|
|
7
|
+
EmbeddingModelResponseError,
|
|
8
|
+
type EmbeddingModelResponseMetadata,
|
|
9
|
+
type EmbeddingModelResult,
|
|
10
|
+
sameEmbeddingModel,
|
|
11
|
+
} from "../embedding-model"
|
|
12
|
+
import { estimateModelCall } from "../pricing"
|
|
13
|
+
import type { AiModelCallRecorder } from "./model-call-recorder"
|
|
14
|
+
import type { ModelExecutionSession } from "./session"
|
|
15
|
+
|
|
16
|
+
/** Scope the configured bindings without changing profile identity or object permissions. */
|
|
17
|
+
export function bindEmbeddingModels(
|
|
18
|
+
catalog: EmbeddingModelCatalog | undefined,
|
|
19
|
+
session: ModelExecutionSession
|
|
20
|
+
): EmbeddingModelCatalog | undefined {
|
|
21
|
+
if (!catalog) return undefined
|
|
22
|
+
const entries: readonly EmbeddingModelEntry[] = Object.freeze(
|
|
23
|
+
catalog.list().map((entry) =>
|
|
24
|
+
Object.freeze({
|
|
25
|
+
...entry,
|
|
26
|
+
model: Object.freeze({
|
|
27
|
+
providerId: entry.model.providerId,
|
|
28
|
+
modelId: entry.model.modelId,
|
|
29
|
+
definition: entry.model.definition,
|
|
30
|
+
batching: entry.model.batching && Object.freeze({ ...entry.model.batching }),
|
|
31
|
+
embed: (input: EmbeddingModelRequest) => executeEmbedding(session, entry.model, input),
|
|
32
|
+
}),
|
|
33
|
+
})
|
|
34
|
+
)
|
|
35
|
+
)
|
|
36
|
+
const byRef = new Map(
|
|
37
|
+
entries.map((entry) => [JSON.stringify([entry.provider, entry.modelId]), entry])
|
|
38
|
+
)
|
|
39
|
+
return Object.freeze({
|
|
40
|
+
list: () => entries,
|
|
41
|
+
getByRef: (ref: ModelRef) => byRef.get(JSON.stringify([ref.provider, ref.modelId])) ?? null,
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async function executeEmbedding(
|
|
46
|
+
session: ModelExecutionSession,
|
|
47
|
+
binding: EmbeddingModel,
|
|
48
|
+
input: EmbeddingModelRequest
|
|
49
|
+
) {
|
|
50
|
+
if (
|
|
51
|
+
!Array.isArray(input.texts) ||
|
|
52
|
+
input.texts.some((text) => typeof text !== "string" || !text.trim())
|
|
53
|
+
) {
|
|
54
|
+
throw new TypeError("[SixbModels] Embedding inputs must be nonempty strings.")
|
|
55
|
+
}
|
|
56
|
+
const texts = [...input.texts]
|
|
57
|
+
const signal = session.signal(input.signal)
|
|
58
|
+
const requestSignal = AbortSignal.any([signal, AbortSignal.timeout(30_000)])
|
|
59
|
+
requestSignal.throwIfAborted()
|
|
60
|
+
if (!texts.length) return { vectors: [] }
|
|
61
|
+
|
|
62
|
+
const accounting = await session.accounting()
|
|
63
|
+
accounting.assertHealthy()
|
|
64
|
+
const model = (await binding.resolve?.()) ?? binding
|
|
65
|
+
assertEmbeddingModel(model)
|
|
66
|
+
if (!sameEmbeddingModel(model, binding)) {
|
|
67
|
+
throw new TypeError(
|
|
68
|
+
"[SixbModels] Resolved embedding model identity does not match the selected model."
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
requestSignal.throwIfAborted()
|
|
72
|
+
const callId = `call_${randomUUID()}`
|
|
73
|
+
const tokens = texts.reduce(
|
|
74
|
+
(sum, text) => sum + Math.ceil(new TextEncoder().encode(text).byteLength / 4),
|
|
75
|
+
0
|
|
76
|
+
)
|
|
77
|
+
await session.admitEmbeddingCall(() =>
|
|
78
|
+
accounting.admitCall({
|
|
79
|
+
callId,
|
|
80
|
+
providerId: model.providerId,
|
|
81
|
+
modelId: model.modelId,
|
|
82
|
+
costEstimator: model.costEstimator,
|
|
83
|
+
inputTokens: { status: "estimated", tokens, method: "utf8BytesDividedByFour" },
|
|
84
|
+
outputTokenAllowance: 0,
|
|
85
|
+
estimatedTotalTokens: tokens,
|
|
86
|
+
})
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
let result: EmbeddingModelResult
|
|
90
|
+
try {
|
|
91
|
+
requestSignal.throwIfAborted()
|
|
92
|
+
result = await model.embed({ texts, signal: requestSignal })
|
|
93
|
+
} catch (error) {
|
|
94
|
+
if (error instanceof EmbeddingModelResponseError) {
|
|
95
|
+
await recordEmbedding(accounting, model, callId, error.metadata)
|
|
96
|
+
} else {
|
|
97
|
+
// The provider may have accepted the request. Never retry inference or release its budget.
|
|
98
|
+
await recordEmbedding(accounting, model, callId, {})
|
|
99
|
+
}
|
|
100
|
+
throw error
|
|
101
|
+
}
|
|
102
|
+
// Account before cancellation, vector validation or the materializer's optimistic write.
|
|
103
|
+
await recordEmbedding(accounting, model, callId, result ?? {})
|
|
104
|
+
requestSignal.throwIfAborted()
|
|
105
|
+
return result
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
async function recordEmbedding(
|
|
109
|
+
accounting: AiModelCallRecorder,
|
|
110
|
+
model: EmbeddingModel,
|
|
111
|
+
callId: string,
|
|
112
|
+
metadata: EmbeddingModelResponseMetadata
|
|
113
|
+
): Promise<void> {
|
|
114
|
+
// Embeddings produce no output tokens; missing INPUT usage must remain unknown.
|
|
115
|
+
const usage = { ...metadata.usage, outputTokens: 0 }
|
|
116
|
+
const estimate = estimateModelCall(model, {
|
|
117
|
+
usage,
|
|
118
|
+
route: metadata.route,
|
|
119
|
+
responseModelId: metadata.responseModelId,
|
|
120
|
+
})
|
|
121
|
+
await accounting.onModelCallEnd({
|
|
122
|
+
callId,
|
|
123
|
+
providerId: model.providerId,
|
|
124
|
+
modelId: model.modelId,
|
|
125
|
+
responseId: metadata.providerIds?.responseId ?? callId,
|
|
126
|
+
responseModelId: metadata.responseModelId,
|
|
127
|
+
providerIds: metadata.providerIds,
|
|
128
|
+
usage,
|
|
129
|
+
cost: metadata.reportedCost ? { status: "reported", ...metadata.reportedCost } : estimate,
|
|
130
|
+
...(metadata.reportedCost ? { estimate } : {}),
|
|
131
|
+
route: metadata.route,
|
|
132
|
+
})
|
|
133
|
+
}
|