@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
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
// @bun
|
|
2
|
+
import {
|
|
3
|
+
isPrimitiveSchema,
|
|
4
|
+
primitiveTraits
|
|
5
|
+
} from "./chunk-d8yes9yx.js";
|
|
2
6
|
import {
|
|
3
7
|
ShareDefinitionError2,
|
|
4
8
|
snapshotShareDefinition
|
|
5
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-9pfw47qx.js";
|
|
6
10
|
import {
|
|
7
11
|
snapshotShareAccessPlan
|
|
8
12
|
} from "./chunk-br3k6qbf.js";
|
|
@@ -58,31 +62,21 @@ function compileShareAccessPlan(input) {
|
|
|
58
62
|
}
|
|
59
63
|
return snapshotShareAccessPlan({ grants });
|
|
60
64
|
}
|
|
61
|
-
var SHAREABLE_PRIMITIVE_SCHEMAS = new Set([
|
|
62
|
-
"string",
|
|
63
|
-
"integer",
|
|
64
|
-
"double",
|
|
65
|
-
"decimal",
|
|
66
|
-
"boolean",
|
|
67
|
-
"date",
|
|
68
|
-
"timestamp",
|
|
69
|
-
"uuid"
|
|
70
|
-
]);
|
|
71
65
|
function assertShareableActionParams(input) {
|
|
72
66
|
const seenSchemas = new WeakSet;
|
|
73
67
|
const resolvingValueTypes = new Set;
|
|
74
68
|
const reject = (path, kind) => {
|
|
75
|
-
throw invalid(`Share '${input.shareId}' Action '${input.actionId}' parameter '${path}' uses ${kind}. Shared Action parameters cannot contain objectRef or
|
|
69
|
+
throw invalid(`Share '${input.shareId}' Action '${input.actionId}' parameter '${path}' uses ${kind}. Shared Action parameters cannot contain objectRef, fileRef, or userRef in V1.`);
|
|
76
70
|
};
|
|
77
71
|
const malformed = (path) => {
|
|
78
72
|
throw invalid(`Share '${input.shareId}' Action '${input.actionId}' parameter '${path}' has a schema that cannot be inspected safely.`);
|
|
79
73
|
};
|
|
80
74
|
const walk = (schema, path) => {
|
|
81
75
|
if (typeof schema === "string") {
|
|
82
|
-
if (schema
|
|
83
|
-
reject(path, "fileRef");
|
|
84
|
-
if (!SHAREABLE_PRIMITIVE_SCHEMAS.has(schema))
|
|
76
|
+
if (!isPrimitiveSchema(schema))
|
|
85
77
|
malformed(path);
|
|
78
|
+
else if (primitiveTraits(schema)?.shareableParam !== true)
|
|
79
|
+
reject(path, schema);
|
|
86
80
|
return;
|
|
87
81
|
}
|
|
88
82
|
if (!isRecord(schema))
|
|
@@ -249,4 +243,4 @@ function invalid(message) {
|
|
|
249
243
|
|
|
250
244
|
export { compileShareAccessPlan };
|
|
251
245
|
|
|
252
|
-
//# debugId=
|
|
246
|
+
//# debugId=189829503A14E0E464756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/shares/compiler.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import type { ActionDefinitionCatalog } from \"../actions\"\nimport type { LinkPathSelection, LinkPathSelectionMode, ObjectRef } from \"../ontology\"\nimport { isPrimitiveSchema, primitiveTraits } from \"../ontology/primitives\"\nimport type { OntologyDefinitionCatalog } from \"../ontology/registry\"\nimport type { ObjectLink, ObjectType, PrimitiveSchema } from \"../ontology/types\"\nimport type {\n ObjectReadLinkDefinitionSelection,\n ObjectReadLinkSelection,\n ObjectReadNode,\n ObjectReadObjectSelection,\n ObjectReadRoot,\n} from \"../storage/objects/types\"\nimport { type ShareAccessPlan, snapshotShareAccessPlan } from \"./access-plan\"\nimport { snapshotShareDefinition } from \"./builders\"\nimport { ShareDefinitionError } from \"./errors\"\nimport type { ShareDefinition, ShareViewGrant } from \"./types\"\n\nexport interface CompileShareAccessPlanInput {\n readonly share: ShareDefinition\n readonly target: ObjectRef\n readonly ontology: OntologyDefinitionCatalog\n readonly actions: ActionDefinitionCatalog\n}\n\n/** Compile one current Share definition and exact target into M01 delegated authority. */\nexport function compileShareAccessPlan(input: CompileShareAccessPlanInput): ShareAccessPlan {\n const share = snapshotShareDefinition(input.share)\n const targetObjectTypeId = share.target.objectTypeId\n if (\n input.target.objectTypeId !== targetObjectTypeId ||\n typeof input.target.primaryId !== \"string\" ||\n !input.target.primaryId.trim()\n ) {\n throw invalid(`Share '${share.id}' requires an exact '${targetObjectTypeId}' object reference.`)\n }\n if (!input.ontology.getObjectTypeById(targetObjectTypeId)) {\n throw invalid(\n `Share '${share.id}' targets unknown object type '${targetObjectTypeId}'. Register it in the ontology before this Share.`\n )\n }\n\n const view = share.grants.find((grant): grant is ShareViewGrant => grant.kind === \"object.view\")\n if (!view) {\n throw invalid(`Share '${share.id}' must contain one view grant.`)\n }\n\n const root: ObjectReadRoot = {\n anchor: {\n objectTypeId: targetObjectTypeId,\n primaryId: input.target.primaryId,\n },\n node: compileNode(input.ontology, [targetObjectTypeId], view.links, share.id),\n }\n\n const grants: ShareAccessPlan[\"grants\"][number][] = [\n {\n kind: \"object.view\",\n selection: { kind: \"selected\", roots: [root] },\n },\n ]\n\n for (const grant of share.grants) {\n if (grant.kind !== \"action.apply\") continue\n const action = input.actions.getById(grant.actionId)\n if (!action || action.binding.kind !== \"object\") {\n throw invalid(`Share '${share.id}' references unknown or global Action '${grant.actionId}'.`)\n }\n if (\n action.binding.objectType.id !== targetObjectTypeId ||\n grant.subjectObjectTypeId !== targetObjectTypeId\n ) {\n throw invalid(\n `Share '${share.id}' Action '${grant.actionId}' must be defined exactly on '${targetObjectTypeId}'. Shared Actions do not inherit in V1.`\n )\n }\n assertShareableActionParams({\n ontology: input.ontology,\n params: action.params,\n shareId: share.id,\n actionId: action.id,\n })\n grants.push({\n kind: \"action.apply\",\n actionId: action.id,\n subjects: [{ ...input.target }],\n })\n }\n\n return snapshotShareAccessPlan({ grants })\n}\n\n/**\n * V1 deliberately excludes references from shared Action params. A delegated caller cannot yet be\n * authorized to resolve arbitrary object or blob references supplied at invocation time.\n */\nfunction assertShareableActionParams(input: {\n readonly ontology: OntologyDefinitionCatalog\n readonly params: Readonly<Record<string, { readonly schema: unknown }>>\n readonly shareId: string\n readonly actionId: string\n}): void {\n const seenSchemas = new WeakSet<object>()\n const resolvingValueTypes = new Set<string>()\n\n const reject = (path: string, kind: \"objectRef\" | PrimitiveSchema): never => {\n throw invalid(\n `Share '${input.shareId}' Action '${input.actionId}' parameter '${path}' uses ${kind}. Shared Action parameters cannot contain objectRef, fileRef, or userRef in V1.`\n )\n }\n\n const malformed = (path: string): never => {\n throw invalid(\n `Share '${input.shareId}' Action '${input.actionId}' parameter '${path}' has a schema that cannot be inspected safely.`\n )\n }\n\n const walk = (schema: unknown, path: string): void => {\n if (typeof schema === \"string\") {\n if (!isPrimitiveSchema(schema)) malformed(path)\n else if (primitiveTraits(schema)?.shareableParam !== true) reject(path, schema)\n return\n }\n if (!isRecord(schema)) throw malformed(path)\n if (seenSchemas.has(schema)) return\n seenSchemas.add(schema)\n\n switch (schema.type) {\n case \"objectRef\":\n reject(path, \"objectRef\")\n break\n case \"enum\":\n return\n case \"object\": {\n if (!isRecord(schema.properties)) throw malformed(path)\n for (const [fieldId, field] of Object.entries(schema.properties)) {\n if (!isRecord(field) || !(\"schema\" in field)) {\n throw malformed(`${path}.${fieldId}`)\n }\n walk(field.schema, `${path}.${fieldId}`)\n }\n return\n }\n case \"array\":\n if (!(\"items\" in schema)) throw malformed(path)\n walk(schema.items, `${path}[]`)\n return\n case \"map\":\n if (!(\"valueSchema\" in schema)) throw malformed(path)\n walk(schema.valueSchema, `${path}{}`)\n return\n case \"valueTypeRef\": {\n if (typeof schema.valueTypeId !== \"string\" || !schema.valueTypeId.trim()) {\n throw malformed(path)\n }\n const valueTypeId = schema.valueTypeId\n if (resolvingValueTypes.has(valueTypeId)) {\n // Recursive inline resolutions are still untrusted. Inspect one when present; the\n // schema-identity guard terminates honest self-reference while catching a forged second\n // resolution that hides a reference-bearing payload behind the same id.\n if (schema._resolved !== undefined) {\n walk(schema._resolved, `${path}<${valueTypeId}>`)\n }\n return\n }\n // The registered ValueType is authoritative. `_resolved` supports inference and\n // auto-registration; it must not override the current ontology under the same id.\n const resolved =\n input.ontology.getValueTypesById().get(valueTypeId)?.schema ?? schema._resolved\n if (resolved === undefined) {\n throw invalid(\n `Share '${input.shareId}' Action '${input.actionId}' parameter '${path}' references unknown ValueType '${valueTypeId}', so it cannot be inspected safely.`\n )\n }\n resolvingValueTypes.add(valueTypeId)\n try {\n walk(resolved, `${path}<${valueTypeId}>`)\n } finally {\n resolvingValueTypes.delete(valueTypeId)\n }\n return\n }\n default:\n throw malformed(path)\n }\n }\n\n for (const [paramId, param] of Object.entries(input.params)) {\n if (!isRecord(param) || !(\"schema\" in param)) throw malformed(paramId)\n walk(param.schema, paramId)\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction compileNode(\n ontology: OntologyDefinitionCatalog,\n authoredObjectTypeIds: readonly string[],\n links: LinkPathSelectionMode,\n shareId: string\n): ObjectReadNode {\n const objectTypeIds = uniqueSorted(authoredObjectTypeIds)\n const objectTypes = objectTypeIds.map((id) => ontology.resolveObjectType(id))\n const objects: ObjectReadObjectSelection[] = objectTypes.map((objectType) => ({\n objectTypeId: objectType.id,\n propertyIds: uniqueSorted(objectType.properties.map((property) => property.id)),\n }))\n\n const selectedLinks =\n links.kind === \"none\"\n ? []\n : links.kind === \"all\"\n ? allDirectLinks(ontology, objectTypes)\n : links.links\n\n const compiledLinks = selectedLinks.map((selection) =>\n compileLinkSelection({ ontology, parentObjectTypeIds: objectTypeIds, selection, shareId })\n )\n\n return { objects, links: compiledLinks }\n}\n\nfunction allDirectLinks(\n ontology: OntologyDefinitionCatalog,\n objectTypes: readonly ObjectType[]\n): readonly LinkPathSelection[] {\n const selections: LinkPathSelection[] = []\n const sortedObjectTypes = [...objectTypes].sort((a, b) => a.id.localeCompare(b.id))\n const descendantIdsByType = new Map(\n sortedObjectTypes.map((objectType) => [\n objectType.id,\n new Set(ontology.listSubTypes(objectType.id)),\n ])\n )\n\n for (const objectType of sortedObjectTypes) {\n for (const link of [...objectType.links].sort((a, b) => a.id.localeCompare(b.id))) {\n const inheritedSelectionAlreadyCoversLink = sortedObjectTypes.some(\n (candidate) =>\n candidate.id !== objectType.id &&\n descendantIdsByType.get(candidate.id)?.has(objectType.id) === true &&\n candidate.links.some((candidateLink) => candidateLink.id === link.id)\n )\n if (inheritedSelectionAlreadyCoversLink) continue\n selections.push({\n kind: \"linkPathSelection\",\n sourceObjectTypeId: objectType.id,\n linkId: link.id,\n targetObjectTypeId: link.targetObjectTypeId,\n selection: { kind: \"none\" },\n })\n }\n }\n return selections\n}\n\nfunction compileLinkSelection(input: {\n readonly ontology: OntologyDefinitionCatalog\n readonly parentObjectTypeIds: readonly string[]\n readonly selection: LinkPathSelection\n readonly shareId: string\n}): ObjectReadLinkSelection {\n const selectorSource = input.ontology.getObjectTypeById(input.selection.sourceObjectTypeId)\n if (!selectorSource) {\n throw invalid(\n `Share '${input.shareId}' selects link '${input.selection.sourceObjectTypeId}.${input.selection.linkId}' on an unknown object type.`\n )\n }\n const eligibleSourceIds = new Set([\n selectorSource.id,\n ...input.ontology.listSubTypes(selectorSource.id),\n ])\n const definitions: ObjectReadLinkDefinitionSelection[] = []\n const targetObjectTypeIds = new Set<string>()\n\n for (const sourceObjectTypeId of input.parentObjectTypeIds) {\n if (!eligibleSourceIds.has(sourceObjectTypeId)) continue\n const source = input.ontology.resolveObjectType(sourceObjectTypeId)\n const link = source.links.find((candidate) => candidate.id === input.selection.linkId)\n if (!link) continue\n const concreteTargetIds = expandLinkTargets(input.ontology, link, input.shareId, source.id)\n for (const id of concreteTargetIds) targetObjectTypeIds.add(id)\n definitions.push({\n sourceObjectTypeId: source.id,\n linkId: link.id,\n targetObjectTypeIds: concreteTargetIds,\n propertyIds: uniqueSorted((link.properties ?? []).map((property) => property.id)),\n })\n }\n\n if (definitions.length === 0) {\n throw invalid(\n `Share '${input.shareId}' link '${input.selection.sourceObjectTypeId}.${input.selection.linkId}' is not available at this path.`\n )\n }\n\n return {\n definitions: definitions.sort(compareLinkDefinitions),\n target: compileNode(\n input.ontology,\n [...targetObjectTypeIds],\n input.selection.selection,\n input.shareId\n ),\n }\n}\n\nfunction expandLinkTargets(\n ontology: OntologyDefinitionCatalog,\n link: ObjectLink,\n shareId: string,\n sourceObjectTypeId: string\n): readonly string[] {\n if (link.targetObjectTypeId === \"*\") {\n return uniqueSorted(ontology.listObjectTypes().map((objectType) => objectType.id))\n }\n const authoredIds = Array.isArray(link.targetObjectTypeId)\n ? link.targetObjectTypeId\n : [link.targetObjectTypeId]\n const result: string[] = []\n for (const objectTypeId of authoredIds) {\n if (!ontology.getObjectTypeById(objectTypeId)) {\n throw invalid(\n `Share '${shareId}' link '${sourceObjectTypeId}.${link.id}' targets unknown object type '${objectTypeId}'.`\n )\n }\n result.push(objectTypeId, ...ontology.listSubTypes(objectTypeId))\n }\n return uniqueSorted(result)\n}\n\nfunction compareLinkDefinitions(\n left: ObjectReadLinkDefinitionSelection,\n right: ObjectReadLinkDefinitionSelection\n): number {\n return (\n left.sourceObjectTypeId.localeCompare(right.sourceObjectTypeId) ||\n left.linkId.localeCompare(right.linkId)\n )\n}\n\nfunction uniqueSorted(values: readonly string[]): string[] {\n return [...new Set(values)].sort((a, b) => a.localeCompare(b))\n}\n\nfunction invalid(message: string): ShareDefinitionError {\n return new ShareDefinitionError(`[Sixb] ${message}`)\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "189829503A14E0E464756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/storage/file-upload-sessions/utils.ts
|
|
3
|
+
import { randomUUID } from "crypto";
|
|
4
|
+
var DEFAULT_FILE_UPLOAD_SESSION_TTL_MS2 = 60 * 60 * 1000;
|
|
5
|
+
var DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS2 = 15 * 60 * 1000;
|
|
6
|
+
function createUploadExpiresAt2(now = Date.now()) {
|
|
7
|
+
return new Date(now + DEFAULT_FILE_UPLOAD_SESSION_TTL_MS2);
|
|
8
|
+
}
|
|
9
|
+
function createFileUploadId2() {
|
|
10
|
+
return `upload_${randomUUID().replaceAll("-", "")}`;
|
|
11
|
+
}
|
|
12
|
+
function isFileUploadSessionExpired(session, nowMs = Date.now()) {
|
|
13
|
+
return session.status === "pending" && session.expiresAt.getTime() <= nowMs;
|
|
14
|
+
}
|
|
15
|
+
function isAbandonedFileUploadSession(session, nowMs = Date.now()) {
|
|
16
|
+
return session.providerUpload !== undefined && isFileUploadSessionExpired(session, nowMs);
|
|
17
|
+
}
|
|
18
|
+
function fileUploadSessionReapAt2(session) {
|
|
19
|
+
if (session.status === "pending") {
|
|
20
|
+
return session.providerUpload === undefined ? session.expiresAt : null;
|
|
21
|
+
}
|
|
22
|
+
const terminalAt = session.completedAt ?? session.abortedAt;
|
|
23
|
+
return terminalAt ? new Date(terminalAt.getTime() + DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS2) : null;
|
|
24
|
+
}
|
|
25
|
+
function shouldDeleteFileUploadSession(session, nowMs) {
|
|
26
|
+
const reapAt = fileUploadSessionReapAt2(session);
|
|
27
|
+
return reapAt !== null && reapAt.getTime() <= nowMs;
|
|
28
|
+
}
|
|
29
|
+
function isTerminalFileUploadSessionExpired(session, nowMs) {
|
|
30
|
+
if (session.status === "pending") {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const terminalAt = session.completedAt ?? session.abortedAt;
|
|
34
|
+
if (!terminalAt) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return terminalAt.getTime() + DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS2 <= nowMs;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { DEFAULT_FILE_UPLOAD_SESSION_TTL_MS2, DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS2, createUploadExpiresAt2, createFileUploadId2, isFileUploadSessionExpired, isAbandonedFileUploadSession, fileUploadSessionReapAt2, shouldDeleteFileUploadSession, isTerminalFileUploadSessionExpired };
|
|
41
|
+
|
|
42
|
+
//# debugId=EAECD974E6F80CCB64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/storage/file-upload-sessions/utils.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { randomUUID } from \"node:crypto\"\nimport type { FileUploadSession } from \"./types\"\n\nexport const DEFAULT_FILE_UPLOAD_SESSION_TTL_MS = 60 * 60 * 1000\nexport const DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS = 15 * 60 * 1000\n\nexport function createUploadExpiresAt(now = Date.now()): Date {\n return new Date(now + DEFAULT_FILE_UPLOAD_SESSION_TTL_MS)\n}\n\nexport function createFileUploadId(): string {\n return `upload_${randomUUID().replaceAll(\"-\", \"\")}`\n}\n\nexport function isFileUploadSessionExpired(\n session: FileUploadSession,\n nowMs = Date.now()\n): boolean {\n return session.status === \"pending\" && session.expiresAt.getTime() <= nowMs\n}\n\n/** Expired, still `pending`, and holding a provider upload only `abortUpload` can release. */\nexport function isAbandonedFileUploadSession(\n session: FileUploadSession,\n nowMs = Date.now()\n): boolean {\n return session.providerUpload !== undefined && isFileUploadSessionExpired(session, nowMs)\n}\n\n/**\n * When a session may be deleted, or null when only a state change can make it deletable.\n * This is the single retention rule: durable providers persist it as `reap_at` and delete\n * `reap_at <= now`, so SQL never restates it.\n */\nexport function fileUploadSessionReapAt(session: FileUploadSession): Date | null {\n if (session.status === \"pending\") {\n return session.providerUpload === undefined ? session.expiresAt : null\n }\n\n const terminalAt = session.completedAt ?? session.abortedAt\n return terminalAt\n ? new Date(terminalAt.getTime() + DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS)\n : null\n}\n\nexport function shouldDeleteFileUploadSession(session: FileUploadSession, nowMs: number): boolean {\n const reapAt = fileUploadSessionReapAt(session)\n return reapAt !== null && reapAt.getTime() <= nowMs\n}\n\nexport function isTerminalFileUploadSessionExpired(\n session: FileUploadSession,\n nowMs: number\n): boolean {\n if (session.status === \"pending\") {\n return false\n }\n\n const terminalAt = session.completedAt ?? session.abortedAt\n if (!terminalAt) {\n return false\n }\n\n return terminalAt.getTime() + DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS <= nowMs\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;AAAA;AAGO,IAAM,sCAAqC,KAAK,KAAK;AACrD,IAAM,+CAA8C,KAAK,KAAK;AAE9D,SAAS,sBAAqB,CAAC,MAAM,KAAK,IAAI,GAAS;AAAA,EAC5D,OAAO,IAAI,KAAK,MAAM,mCAAkC;AAAA;AAGnD,SAAS,mBAAkB,GAAW;AAAA,EAC3C,OAAO,UAAU,WAAW,EAAE,WAAW,KAAK,EAAE;AAAA;AAG3C,SAAS,0BAA0B,CACxC,SACA,QAAQ,KAAK,IAAI,GACR;AAAA,EACT,OAAO,QAAQ,WAAW,aAAa,QAAQ,UAAU,QAAQ,KAAK;AAAA;AAIjE,SAAS,4BAA4B,CAC1C,SACA,QAAQ,KAAK,IAAI,GACR;AAAA,EACT,OAAO,QAAQ,mBAAmB,aAAa,2BAA2B,SAAS,KAAK;AAAA;AAQnF,SAAS,wBAAuB,CAAC,SAAyC;AAAA,EAC/E,IAAI,QAAQ,WAAW,WAAW;AAAA,IAChC,OAAO,QAAQ,mBAAmB,YAAY,QAAQ,YAAY;AAAA,EACpE;AAAA,EAEA,MAAM,aAAa,QAAQ,eAAe,QAAQ;AAAA,EAClD,OAAO,aACH,IAAI,KAAK,WAAW,QAAQ,IAAI,4CAA2C,IAC3E;AAAA;AAGC,SAAS,6BAA6B,CAAC,SAA4B,OAAwB;AAAA,EAChG,MAAM,SAAS,yBAAwB,OAAO;AAAA,EAC9C,OAAO,WAAW,QAAQ,OAAO,QAAQ,KAAK;AAAA;AAGzC,SAAS,kCAAkC,CAChD,SACA,OACS;AAAA,EACT,IAAI,QAAQ,WAAW,WAAW;AAAA,IAChC,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,aAAa,QAAQ,eAAe,QAAQ;AAAA,EAClD,IAAI,CAAC,YAAY;AAAA,IACf,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,WAAW,QAAQ,IAAI,gDAA+C;AAAA;",
|
|
8
|
+
"debugId": "EAECD974E6F80CCB64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -342,6 +342,7 @@ class InMemoryQueue {
|
|
|
342
342
|
class InMemoryQueues2 {
|
|
343
343
|
scope = "process";
|
|
344
344
|
store = new InMemoryQueueStore;
|
|
345
|
+
vectorIndexing = new InMemoryQueue(this.store, "vector.indexing");
|
|
345
346
|
syncRuns = new InMemoryQueue(this.store, "sync.runs");
|
|
346
347
|
pipelines = new InMemoryQueue(this.store, "pipeline.runs");
|
|
347
348
|
projections = new InMemoryQueue(this.store, "projection.runs");
|
|
@@ -355,4 +356,4 @@ class InMemoryQueues2 {
|
|
|
355
356
|
}
|
|
356
357
|
export { QueueError2, InMemoryQueues2 };
|
|
357
358
|
|
|
358
|
-
//# debugId=
|
|
359
|
+
//# debugId=50CDF8905DC39EBB64756E2164756E21
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/queues/errors.ts", "../src/queues/in-memory.ts", "../src/queues/indexed-heap.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Error for queue invariants and invalid queue operations.\n */\nexport class QueueError extends Error {\n readonly name = \"QueueError\"\n}\n",
|
|
6
|
+
"import { randomUUID } from \"node:crypto\"\nimport type { SixbErrorCode } from \"../errors/types\"\nimport { QueueError } from \"./errors\"\nimport { IndexedHeap } from \"./indexed-heap\"\nimport type {\n ActionQueueJobFailureCode,\n ActionRunRequestedQueueJob,\n AgentQueueJob,\n AgentQueueJobFailureCode,\n ClaimedQueueJob,\n NewQueueJob,\n PipelineQueueJobFailureCode,\n PipelineRunRequestedQueueJob,\n ProjectionQueueJobFailureCode,\n ProjectionRunRequestedQueueJob,\n Queue,\n QueueJob,\n QueueJobFailure,\n Queues,\n SubagentQueueJob,\n SyncQueueJobFailureCode,\n SyncRunRequestedQueueJob,\n VectorIndexingQueueJob,\n WorkflowQueueJob,\n WorkflowQueueJobFailureCode,\n} from \"./types\"\n\ntype QueueRecordState = \"queued\" | \"completed\" | \"failed\"\n\ninterface QueueRecord<TQueueJob extends QueueJob = QueueJob> {\n readonly sequence: number\n readonly queueId: string\n job: TQueueJob\n availableAtMs: number\n readonly createdAtMs: number\n leaseExpiryMs: number | null\n // A leased job stays \"queued\" until a worker completes or fails it.\n state: QueueRecordState\n failure: QueueJobFailure | null\n leaseId: string | null\n claimedAt: string | null\n leaseExpiresAt: string | null\n}\n\nfunction assertNonEmpty(value: string, fieldName: string): void {\n if (value.trim().length === 0) {\n throw new QueueError(`[Sixb] Queue ${fieldName} must not be empty`)\n }\n}\n\nfunction parseTimestamp(value: string, fieldName: string): number {\n const timestamp = Date.parse(value)\n\n if (Number.isNaN(timestamp)) {\n throw new QueueError(`[Sixb] Queue ${fieldName} must be a valid timestamp`)\n }\n\n return timestamp\n}\n\nfunction assertPositiveNumber(value: number, fieldName: string): void {\n if (!Number.isFinite(value) || value <= 0) {\n throw new QueueError(`[Sixb] Queue ${fieldName} must be greater than 0`)\n }\n}\n\nfunction clearLease(record: QueueRecord): void {\n record.leaseId = null\n record.claimedAt = null\n record.leaseExpiresAt = null\n record.leaseExpiryMs = null\n}\n\n// Best-effort ordering is part of the contract; this keeps the in-memory provider deterministic.\nfunction compareQueueRecords(left: QueueRecord, right: QueueRecord): number {\n const availableDifference = left.availableAtMs - right.availableAtMs\n if (availableDifference !== 0) return availableDifference\n const createdDifference = left.createdAtMs - right.createdAtMs\n if (createdDifference !== 0) return createdDifference\n\n return left.sequence - right.sequence\n}\n\nfunction createQueueJob<TQueueJob extends QueueJob>(\n projectId: string,\n newJob: NewQueueJob<TQueueJob>\n): TQueueJob {\n const createdAt = new Date().toISOString()\n const availableAt = newJob.availableAt ?? createdAt\n parseTimestamp(availableAt, \"availableAt\")\n\n return {\n id: newJob.id ?? randomUUID(),\n projectId,\n createdAt,\n availableAt,\n attempt: 0,\n metadata: newJob.metadata ? structuredClone(newJob.metadata) : undefined,\n type: newJob.type,\n payload: structuredClone(newJob.payload),\n } as TQueueJob\n}\n\nfunction leaseExpiresAtMs(record: QueueRecord): number | null {\n return record.leaseExpiryMs\n}\n\nfunction eligibleAt(record: QueueRecord): number {\n return Math.max(record.availableAtMs, record.leaseExpiryMs ?? -Infinity)\n}\n\ninterface QueueLane {\n // Terminal records remain here for caller-id deduplication, never in the delivery indexes.\n readonly records: Map<string, QueueRecord>\n readonly ready: IndexedHeap<QueueRecord>\n readonly waiting: IndexedHeap<QueueRecord>\n}\n\nfunction toClaimedQueueJob<TQueueJob extends QueueJob>(\n record: QueueRecord<TQueueJob>\n): ClaimedQueueJob<TQueueJob> {\n if (!record.leaseId || !record.claimedAt || !record.leaseExpiresAt) {\n throw new QueueError(`[Sixb] Queue job '${record.job.id}' is not currently leased`)\n }\n\n return {\n leaseId: record.leaseId,\n claimedAt: record.claimedAt,\n leaseExpiresAt: record.leaseExpiresAt,\n job: structuredClone(record.job),\n }\n}\n\nclass InMemoryQueueStore {\n private readonly projects = new Map<string, Map<string, QueueLane>>()\n private nextSequence = 1\n\n add<TQueueJob extends QueueJob>(projectId: string, queueId: string, job: TQueueJob): void {\n const lane = this.lane(projectId, queueId)\n const record: QueueRecord = {\n sequence: this.nextSequence++,\n queueId,\n job,\n availableAtMs: parseTimestamp(job.availableAt, \"job.availableAt\"),\n createdAtMs: parseTimestamp(job.createdAt, \"job.createdAt\"),\n leaseExpiryMs: null,\n state: \"queued\",\n failure: null,\n leaseId: null,\n claimedAt: null,\n leaseExpiresAt: null,\n }\n lane.records.set(job.id, record)\n this.schedule(projectId, record, Date.now())\n }\n\n find<TQueueJob extends QueueJob>(\n projectId: string,\n queueId: string,\n jobId: string\n ): QueueRecord<TQueueJob> | null {\n return (this.projects.get(projectId)?.get(queueId)?.records.get(jobId) ??\n null) as QueueRecord<TQueueJob> | null\n }\n\n schedule(projectId: string, record: QueueRecord, now: number): void {\n const lane = this.lane(projectId, record.queueId)\n if (record.state !== \"queued\") {\n lane.ready.delete(record)\n lane.waiting.delete(record)\n } else if (eligibleAt(record) <= now) {\n lane.waiting.delete(record)\n lane.ready.set(record)\n } else {\n lane.ready.delete(record)\n lane.waiting.set(record)\n }\n }\n\n takeReady<TQueueJob extends QueueJob>(\n projectId: string,\n queueId: string,\n now: number,\n limit: number\n ): QueueRecord<TQueueJob>[] {\n const lane = this.projects.get(projectId)?.get(queueId)\n if (!lane) return []\n // Wake delayed jobs and expired leases, then order all ready jobs by the original contract.\n // A lease expiry controls eligibility, not the priority of a redelivered job.\n while (lane.waiting.peek() && eligibleAt(lane.waiting.peek()!) <= now) {\n lane.ready.set(lane.waiting.pop()!)\n }\n const selected: QueueRecord[] = []\n while (selected.length < limit) {\n const record = lane.ready.peek()\n if (!record || record.availableAtMs > now) break\n lane.ready.pop()\n // A backwards wall-clock adjustment can make a previously expired lease live again.\n if (eligibleAt(record) > now) lane.waiting.set(record)\n else selected.push(record)\n }\n return selected as QueueRecord<TQueueJob>[]\n }\n\n private lane(projectId: string, queueId: string): QueueLane {\n let queues = this.projects.get(projectId)\n if (!queues) {\n queues = new Map()\n this.projects.set(projectId, queues)\n }\n let lane = queues.get(queueId)\n if (!lane) {\n lane = {\n records: new Map(),\n ready: new IndexedHeap(compareQueueRecords),\n waiting: new IndexedHeap(\n (left, right) => eligibleAt(left) - eligibleAt(right) || left.sequence - right.sequence\n ),\n }\n queues.set(queueId, lane)\n }\n return lane\n }\n}\n\nclass InMemoryQueue<TQueueJob extends QueueJob, TFailureCode extends SixbErrorCode>\n implements Queue<TQueueJob, TFailureCode>\n{\n constructor(\n private readonly store: InMemoryQueueStore,\n private readonly queueId: string\n ) {\n assertNonEmpty(queueId, \"queueId\")\n }\n\n async enqueue(params: {\n projectId: string\n jobs: readonly NewQueueJob<TQueueJob>[]\n }): Promise<readonly TQueueJob[]> {\n assertNonEmpty(params.projectId, \"projectId\")\n\n if (params.jobs.length === 0) {\n return []\n }\n\n const createdJobs = params.jobs.map((job) => {\n if (job.id !== undefined) assertNonEmpty(job.id, \"job.id\")\n const existing = job.id\n ? this.store.find<TQueueJob>(params.projectId, this.queueId, job.id)\n : null\n if (existing) return existing.job\n\n const created = createQueueJob(params.projectId, job)\n this.store.add(params.projectId, this.queueId, created)\n return created\n })\n\n return createdJobs.map((job) => structuredClone(job))\n }\n\n async claim(params: {\n projectId: string\n workerId: string\n limit?: number\n leaseMs?: number\n }): Promise<readonly ClaimedQueueJob<TQueueJob>[]> {\n assertNonEmpty(params.projectId, \"projectId\")\n assertNonEmpty(params.workerId, \"workerId\")\n\n const limit = Math.trunc(params.limit ?? 1)\n if (!(limit > 0)) {\n return []\n }\n\n const leaseMs = params.leaseMs ?? 30_000\n assertPositiveNumber(leaseMs, \"leaseMs\")\n\n const now = Date.now()\n const claimedAt = new Date(now).toISOString()\n // Validate before removing candidates, and cache the same millisecond precision we return.\n const leaseExpiry = new Date(now + leaseMs)\n const leaseExpiresAt = leaseExpiry.toISOString()\n const claimable = this.store.takeReady<TQueueJob>(params.projectId, this.queueId, now, limit)\n\n return claimable.map((record) => {\n // Attempts count claims so redelivery after lease expiry or retry is visible to workers.\n record.job = {\n ...record.job,\n attempt: record.job.attempt + 1,\n }\n record.leaseId = randomUUID()\n record.claimedAt = claimedAt\n record.leaseExpiresAt = leaseExpiresAt\n record.leaseExpiryMs = leaseExpiry.getTime()\n this.store.schedule(params.projectId, record, now)\n\n return toClaimedQueueJob(record)\n })\n }\n\n async complete(params: { projectId: string; jobId: string; leaseId: string }): Promise<void> {\n const record = this.requireActiveLease(params)\n record.state = \"completed\"\n clearLease(record)\n this.store.schedule(params.projectId, record, Date.now())\n }\n\n async retry(params: {\n projectId: string\n jobId: string\n leaseId: string\n availableAt?: string\n }): Promise<void> {\n const record = this.requireActiveLease(params)\n const availableAt = params.availableAt ?? new Date().toISOString()\n const availableAtMs = parseTimestamp(availableAt, \"availableAt\")\n\n record.availableAtMs = availableAtMs\n record.job = {\n ...record.job,\n availableAt,\n }\n clearLease(record)\n this.store.schedule(params.projectId, record, Date.now())\n }\n\n async fail(params: {\n projectId: string\n jobId: string\n leaseId: string\n failure: QueueJobFailure<TFailureCode>\n }): Promise<void> {\n const record = this.requireActiveLease(params)\n record.state = \"failed\"\n record.failure = structuredClone(params.failure)\n clearLease(record)\n this.store.schedule(params.projectId, record, Date.now())\n }\n\n async renewLease(params: {\n projectId: string\n jobId: string\n leaseId: string\n leaseMs: number\n }): Promise<ClaimedQueueJob<TQueueJob> | null> {\n assertPositiveNumber(params.leaseMs, \"leaseMs\")\n\n const record = this.store.find<TQueueJob>(params.projectId, this.queueId, params.jobId)\n if (!record || record.state !== \"queued\") {\n return null\n }\n\n const now = Date.now()\n const expiresAt = leaseExpiresAtMs(record)\n if (record.leaseId !== params.leaseId || expiresAt === null) {\n return null\n }\n\n if (expiresAt <= now) {\n return null\n }\n\n const leaseExpiry = new Date(now + params.leaseMs)\n record.leaseExpiresAt = leaseExpiry.toISOString()\n record.leaseExpiryMs = leaseExpiry.getTime()\n this.store.schedule(params.projectId, record, now)\n return toClaimedQueueJob(record)\n }\n\n private requireActiveLease(params: {\n projectId: string\n jobId: string\n leaseId: string\n }): QueueRecord<TQueueJob> {\n assertNonEmpty(params.projectId, \"projectId\")\n assertNonEmpty(params.jobId, \"jobId\")\n assertNonEmpty(params.leaseId, \"leaseId\")\n\n const record = this.store.find<TQueueJob>(params.projectId, this.queueId, params.jobId)\n\n if (!record) {\n throw new QueueError(`[Sixb] Unknown queue job '${params.jobId}'`)\n }\n\n if (record.state !== \"queued\") {\n throw new QueueError(`[Sixb] Queue job '${params.jobId}' is no longer active`)\n }\n\n if (record.leaseId !== params.leaseId || !record.leaseExpiresAt) {\n throw new QueueError(`[Sixb] Lease mismatch for queue job '${params.jobId}'`)\n }\n\n const expiresAt = leaseExpiresAtMs(record)\n if (expiresAt === null || expiresAt <= Date.now()) {\n throw new QueueError(`[Sixb] Lease for queue job '${params.jobId}' has expired`)\n }\n\n return record\n }\n}\n\nexport class InMemoryQueues implements Queues {\n readonly scope = \"process\" as const\n private readonly store = new InMemoryQueueStore()\n\n readonly vectorIndexing = new InMemoryQueue<\n VectorIndexingQueueJob,\n \"internal.unexpected\" | \"runtime.cancelled\"\n >(this.store, \"vector.indexing\")\n readonly syncRuns = new InMemoryQueue<SyncRunRequestedQueueJob, SyncQueueJobFailureCode>(\n this.store,\n \"sync.runs\"\n )\n readonly pipelines = new InMemoryQueue<PipelineRunRequestedQueueJob, PipelineQueueJobFailureCode>(\n this.store,\n \"pipeline.runs\"\n )\n readonly projections = new InMemoryQueue<\n ProjectionRunRequestedQueueJob,\n ProjectionQueueJobFailureCode\n >(this.store, \"projection.runs\")\n readonly workflows = new InMemoryQueue<WorkflowQueueJob, WorkflowQueueJobFailureCode>(\n this.store,\n \"workflow.runs\"\n )\n readonly actions = new InMemoryQueue<ActionRunRequestedQueueJob, ActionQueueJobFailureCode>(\n this.store,\n \"action.runs\"\n )\n readonly agents = new InMemoryQueue<AgentQueueJob, AgentQueueJobFailureCode>(\n this.store,\n \"agent.runs\"\n )\n readonly agentChildren = new InMemoryQueue<SubagentQueueJob, AgentQueueJobFailureCode>(\n this.store,\n \"agent.children\"\n )\n\n /** Nothing to reach: the store is a field of this object. */\n health(): Promise<void> {\n return Promise.resolve()\n }\n}\n",
|
|
7
|
+
"/** Internal mutable priority index. Updating or removing an entry never leaves stale copies. */\nexport class IndexedHeap<T> {\n private readonly items: T[] = []\n private readonly positions = new Map<T, number>()\n\n constructor(private readonly compare: (left: T, right: T) => number) {}\n\n peek(): T | undefined {\n return this.items[0]\n }\n\n pop(): T | undefined {\n const first = this.peek()\n if (first !== undefined) this.delete(first)\n return first\n }\n\n set(item: T): void {\n const index = this.positions.get(item)\n if (index === undefined) {\n this.positions.set(item, this.items.length)\n this.items.push(item)\n this.up(this.items.length - 1)\n } else {\n this.down(this.up(index))\n }\n }\n\n delete(item: T): void {\n const index = this.positions.get(item)\n if (index === undefined) return\n const last = this.items.pop()!\n this.positions.delete(item)\n if (index === this.items.length) return\n this.items[index] = last\n this.positions.set(last, index)\n this.down(this.up(index))\n }\n\n private up(start: number): number {\n let index = start\n while (index > 0) {\n const parent = Math.floor((index - 1) / 2)\n if (this.compare(this.items[parent]!, this.items[index]!) <= 0) break\n this.swap(parent, index)\n index = parent\n }\n return index\n }\n\n private down(start: number): void {\n let index = start\n while (index * 2 + 1 < this.items.length) {\n const left = index * 2 + 1\n const right = left + 1\n const child =\n right < this.items.length && this.compare(this.items[right]!, this.items[left]!) < 0\n ? right\n : left\n if (this.compare(this.items[index]!, this.items[child]!) <= 0) break\n this.swap(index, child)\n index = child\n }\n }\n\n private swap(left: number, right: number): void {\n const a = this.items[left]!\n const b = this.items[right]!\n this.items[left] = b\n this.items[right] = a\n this.positions.set(a, right)\n this.positions.set(b, left)\n }\n}\n"
|
|
8
|
+
],
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "50CDF8905DC39EBB64756E2164756E21",
|
|
11
|
+
"names": []
|
|
12
|
+
}
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
telemetryPointKey2,
|
|
7
7
|
linkRefSortKey2,
|
|
8
8
|
linkScopeSortKey2
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7ytf06d3.js";
|
|
10
10
|
import {
|
|
11
11
|
MaterializationValidationError2,
|
|
12
12
|
MaterializationConflictError2
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-96yw3pwd.js";
|
|
14
14
|
import {
|
|
15
15
|
assertJsonValue2,
|
|
16
16
|
stableJsonStringify2
|
|
@@ -150,7 +150,7 @@ function assertWorkRecord2(record, header) {
|
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
152
|
if (record.kind === "event") {
|
|
153
|
-
if (!/^[0-9a-f]+$/.test(record.sortKey) || !Number.isSafeInteger(record.eventKindRank) || record.eventKindRank < 0 || record.eventKindRank !== materializationEventKindOrdinal2(record.draft.type) || record.draft.projectId !== header.commit.projectId || record.draft.commitId !== header.commit.id || record.draft.occurredAt !== header.commit.committedAt || stableJsonStringify2(record.draft.origin) !== stableJsonStringify2(header.commit.origin) ||
|
|
153
|
+
if (!/^[0-9a-f]+$/.test(record.sortKey) || !Number.isSafeInteger(record.eventKindRank) || record.eventKindRank < 0 || record.eventKindRank !== materializationEventKindOrdinal2(record.draft.type) || record.draft.projectId !== header.commit.projectId || record.draft.commitId !== header.commit.id || record.draft.occurredAt !== header.commit.committedAt || stableJsonStringify2(record.draft.origin) !== stableJsonStringify2(header.commit.origin) || !sameAttribution(record.draft, header.commit)) {
|
|
154
154
|
throw new MaterializationValidationError2("Materialization event work is invalid.");
|
|
155
155
|
}
|
|
156
156
|
return;
|
|
@@ -270,7 +270,7 @@ function assertPointWriteCorrelation(value, commit) {
|
|
|
270
270
|
}
|
|
271
271
|
function assertOutboxCorrelation(value, commit) {
|
|
272
272
|
const { envelope } = value;
|
|
273
|
-
if (envelope.projectId !== commit.projectId || envelope.commitId !== commit.id || envelope.occurredAt !== commit.committedAt || value.availableAt !== commit.committedAt || value.createdAt !== commit.committedAt || stableJsonStringify2(envelope.origin) !== stableJsonStringify2(commit.origin) ||
|
|
273
|
+
if (envelope.projectId !== commit.projectId || envelope.commitId !== commit.id || envelope.occurredAt !== commit.committedAt || value.availableAt !== commit.committedAt || value.createdAt !== commit.committedAt || stableJsonStringify2(envelope.origin) !== stableJsonStringify2(commit.origin) || !sameAttribution(envelope, commit) || !Number.isSafeInteger(envelope.commitOrdinal) || envelope.commitOrdinal < 0 || envelope.id !== createEventId2(commit.projectId, commit.id, envelope.commitOrdinal)) {
|
|
274
274
|
invalidCorrelation2("Outbox event does not correlate with its materialization commit.");
|
|
275
275
|
}
|
|
276
276
|
}
|
|
@@ -289,6 +289,9 @@ function assertLinkRefEqual(left, right, label) {
|
|
|
289
289
|
invalidCorrelation2(`${label} row and expected references differ.`);
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
|
+
function sameAttribution(event, commit) {
|
|
293
|
+
return stableJsonStringify2(event.requestedBy ?? null) === stableJsonStringify2(commit.requestedBy ?? null) && stableJsonStringify2(event.executor) === stableJsonStringify2(commit.executor);
|
|
294
|
+
}
|
|
292
295
|
|
|
293
296
|
// src/storage/ontology/provider-header-validation.ts
|
|
294
297
|
function assertMaterializationHeader2({ commit }) {
|
|
@@ -313,6 +316,40 @@ function assertCommitEnvelope(commit) {
|
|
|
313
316
|
assertNonblank2(commit.executionId, "Materialization execution id");
|
|
314
317
|
assertNonblank2(commit.ontologyRevision, "Materialization ontology revision");
|
|
315
318
|
assertTimestamp2(commit.committedAt, "Materialization commit time");
|
|
319
|
+
assertCommitAttribution(commit);
|
|
320
|
+
}
|
|
321
|
+
function assertCommitAttribution(commit) {
|
|
322
|
+
const { requestedBy, executor } = commit;
|
|
323
|
+
if (requestedBy !== undefined) {
|
|
324
|
+
if (requestedBy.type !== "user" && requestedBy.type !== "serviceAccount") {
|
|
325
|
+
invalidCorrelation2("Materialization requester must be a user or service account.");
|
|
326
|
+
}
|
|
327
|
+
assertNonblank2(requestedBy.id, "Materialization requester id");
|
|
328
|
+
}
|
|
329
|
+
switch (executor?.type) {
|
|
330
|
+
case "request":
|
|
331
|
+
assertNonblank2(executor.requestId, "Materialization executor request id");
|
|
332
|
+
return;
|
|
333
|
+
case "primitive":
|
|
334
|
+
assertNonblank2(executor.kind, "Materialization executor primitive kind");
|
|
335
|
+
assertNonblank2(executor.id, "Materialization executor primitive id");
|
|
336
|
+
assertNonblank2(executor.runId, "Materialization executor run id");
|
|
337
|
+
return;
|
|
338
|
+
case "agent":
|
|
339
|
+
assertNonblank2(executor.runId, "Materialization executor Agent run id");
|
|
340
|
+
return;
|
|
341
|
+
case "kernel":
|
|
342
|
+
assertNonblank2(executor.operation?.type, "Materialization executor kernel operation");
|
|
343
|
+
return;
|
|
344
|
+
default:
|
|
345
|
+
invalidCorrelation2("Materialization executor is invalid.");
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
function assertPrimitiveExecutor(commit, kind, id, runId) {
|
|
349
|
+
const { executor } = commit;
|
|
350
|
+
if (executor.type !== "primitive" || executor.kind !== kind || executor.id !== id || executor.runId !== runId) {
|
|
351
|
+
invalidCorrelation2(`Commit ${kind} origin does not match its executor.`);
|
|
352
|
+
}
|
|
316
353
|
}
|
|
317
354
|
function assertEditCommit(commit, intent) {
|
|
318
355
|
assertNonnegativeInteger2(intent.operationCount, "Edit commit operation count");
|
|
@@ -320,6 +357,7 @@ function assertEditCommit(commit, intent) {
|
|
|
320
357
|
case "action":
|
|
321
358
|
assertNonblank2(commit.origin.actionId, "Action origin action id");
|
|
322
359
|
assertNonblank2(commit.origin.runId, "Action origin run id");
|
|
360
|
+
assertPrimitiveExecutor(commit, "action", commit.origin.actionId, commit.origin.runId);
|
|
323
361
|
return;
|
|
324
362
|
case "runtime":
|
|
325
363
|
assertNonblank2(commit.origin.requestId, "Runtime origin request id");
|
|
@@ -341,6 +379,7 @@ function assertProjectionCommit(commit, intent) {
|
|
|
341
379
|
if (commit.origin.datasetId !== intent.datasetVersion.datasetId || commit.origin.datasetVersionId !== intent.datasetVersion.versionId) {
|
|
342
380
|
invalidCorrelation2("Projection commit origin does not match its dataset version.");
|
|
343
381
|
}
|
|
382
|
+
assertPrimitiveExecutor(commit, "projection", commit.origin.projectionId, commit.origin.projectionRunId);
|
|
344
383
|
}
|
|
345
384
|
function assertTelemetryCommit(commit, intent) {
|
|
346
385
|
if (commit.origin.kind !== "telemetry") {
|
|
@@ -387,6 +426,7 @@ function assertProjectionTelemetryCommit(commit, source, inputPointCount) {
|
|
|
387
426
|
if (origin.batchOrdinal !== source.batchOrdinal) {
|
|
388
427
|
invalidCorrelation2("Projection telemetry origin does not match its batch ordinal.");
|
|
389
428
|
}
|
|
429
|
+
assertPrimitiveExecutor(commit, "projection", origin.projectionId, origin.projectionRunId);
|
|
390
430
|
}
|
|
391
431
|
function assertProjectionTelemetryBatch(source, inputPointCount) {
|
|
392
432
|
assertNonnegativeInteger2(source.batchOrdinal, "Projection telemetry batch ordinal");
|
|
@@ -636,6 +676,36 @@ function sameNonnegativeCounts2(actual, expected) {
|
|
|
636
676
|
function effectiveConflict2(message) {
|
|
637
677
|
return new MaterializationConflictError2("effective-state", message);
|
|
638
678
|
}
|
|
679
|
+
function assertExpectedObjectRevision2(current, expected) {
|
|
680
|
+
if (!expected.exists) {
|
|
681
|
+
if (current) {
|
|
682
|
+
throw expectationConflict(`Expected object ${objectRefKey2(expected.ref)} to be absent.`);
|
|
683
|
+
}
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
686
|
+
if (!current || current.version !== expected.version || current.lastCommitId !== expected.lastCommitId) {
|
|
687
|
+
throw expectationConflict(`Expected object ${objectRefKey2(expected.ref)} changed.`);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
function assertExpectedLinkRevision2(currentLastCommitId, expected) {
|
|
691
|
+
if (!expected.exists) {
|
|
692
|
+
if (currentLastCommitId !== undefined) {
|
|
693
|
+
throw expectationConflict(`Expected link ${linkRefKey2(expected.ref)} to be absent.`);
|
|
694
|
+
}
|
|
695
|
+
return;
|
|
696
|
+
}
|
|
697
|
+
if (currentLastCommitId === undefined || currentLastCommitId !== expected.lastCommitId) {
|
|
698
|
+
throw expectationConflict(`Expected link ${linkRefKey2(expected.ref)} changed.`);
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
function assertExpectedLinkScopeRevision2(currentFingerprint, expected) {
|
|
702
|
+
if (currentFingerprint === expected.fingerprint)
|
|
703
|
+
return;
|
|
704
|
+
throw expectationConflict(`Expected link scope changed for ${expected.source.objectTypeId}:${expected.source.primaryId}.${expected.linkId}.`);
|
|
705
|
+
}
|
|
706
|
+
function expectationConflict(message) {
|
|
707
|
+
return new MaterializationConflictError2("expectation", message);
|
|
708
|
+
}
|
|
639
709
|
function materializationWorkColumns2(record) {
|
|
640
710
|
if (record.kind === "plan") {
|
|
641
711
|
return {
|
|
@@ -927,6 +997,6 @@ function sourceConflict2(message) {
|
|
|
927
997
|
return new MaterializationConflictError2("source-materialization", message);
|
|
928
998
|
}
|
|
929
999
|
|
|
930
|
-
export { ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2, materializationEventKindOrdinal2, sha256Canonical2, createRequestHash2, createCommitId2, createEventId2, assertNonblank2, assertPositiveInteger2, assertNonnegativeInteger2, assertTimestamp2, invalidCorrelation2, materializationApplyPhase, assertPageRows2, materializationChunkRows2, materializationPlanItems2, assertWorkRecord2, workUniquenessKey2, comparePlanWork2, compareCardinalityWork2, compareEventWork2, assertPlanChunkCorrelations2, assertMaterializationHeader2, startScopeAccumulator2, appendScopeSnapshot2, finishScopeAccumulator2, linkSlotOverrideValue2, ProviderMaterializationSessionState2, ProviderMaterializationTransactionLifecycle2, prepareMaterializationWork2, correlateMaterializationChunk2, assertMaterializationFinalizationCorrelation2, assertMaterializationLaneCompletion2, assertSourceActivationCorrelation2, uniqueSorted2, sameNonnegativeCounts2, effectiveConflict2, materializationWorkColumns2, duplicateMaterializationWork2, canonicalJson2, originColumns2, originWhere2, objectRefFromColumns2, linkRefFromColumns2, sourceEntityKey2, sourceStageRows2, sourceStageRow2, sourceStageRoots2, reconcileSourceStageRows2, sourceMaterializationIdentity2, assertSourceBeginInput2, assertSourceWriteIdentity2, assertSourceProject2, assertSourceExecutionIdentity2, assertSourceCandidateOwner2, assertSourceStagedRow2, sourceEntityColumns2, utf8SortKey2, isExactStagingManifest2, sourceConflict2 };
|
|
1000
|
+
export { ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER2, materializationEventKindOrdinal2, sha256Canonical2, createRequestHash2, createCommitId2, createEventId2, assertNonblank2, assertPositiveInteger2, assertNonnegativeInteger2, assertTimestamp2, invalidCorrelation2, materializationApplyPhase, assertPageRows2, materializationChunkRows2, materializationPlanItems2, assertWorkRecord2, workUniquenessKey2, comparePlanWork2, compareCardinalityWork2, compareEventWork2, assertPlanChunkCorrelations2, assertMaterializationHeader2, startScopeAccumulator2, appendScopeSnapshot2, finishScopeAccumulator2, linkSlotOverrideValue2, ProviderMaterializationSessionState2, ProviderMaterializationTransactionLifecycle2, prepareMaterializationWork2, correlateMaterializationChunk2, assertMaterializationFinalizationCorrelation2, assertMaterializationLaneCompletion2, assertSourceActivationCorrelation2, uniqueSorted2, sameNonnegativeCounts2, effectiveConflict2, assertExpectedObjectRevision2, assertExpectedLinkRevision2, assertExpectedLinkScopeRevision2, materializationWorkColumns2, duplicateMaterializationWork2, canonicalJson2, originColumns2, originWhere2, objectRefFromColumns2, linkRefFromColumns2, sourceEntityKey2, sourceStageRows2, sourceStageRow2, sourceStageRoots2, reconcileSourceStageRows2, sourceMaterializationIdentity2, assertSourceBeginInput2, assertSourceWriteIdentity2, assertSourceProject2, assertSourceExecutionIdentity2, assertSourceCandidateOwner2, assertSourceStagedRow2, sourceEntityColumns2, utf8SortKey2, isExactStagingManifest2, sourceConflict2 };
|
|
931
1001
|
|
|
932
|
-
//# debugId=
|
|
1002
|
+
//# debugId=DAD98CF2C202937C64756E2164756E21
|