@sixb/core 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/builders/params.d.ts +1 -22
- package/dist/actions/builders/params.d.ts.map +1 -1
- package/dist/actions/index.d.ts +2 -2
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +33 -30
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +14 -16
- package/dist/actions/read-facade.d.ts.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-dispatch.d.ts +2 -0
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +18 -31
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/types/params.d.ts +11 -44
- package/dist/actions/types/params.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +3 -2
- package/dist/actions/worker.js.map +2 -2
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts +15 -9
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/ids.d.ts +2 -0
- package/dist/agents/ids.d.ts.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +52 -44
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/sandbox.d.ts +5 -0
- package/dist/agents/sandbox.d.ts.map +1 -0
- package/dist/agents/streams/index.js +4 -3
- package/dist/agents/streams/index.js.map +1 -1
- package/dist/agents/streams/internal.js +4 -3
- package/dist/agents/streams/internal.js.map +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/assert-never.d.ts +6 -0
- package/dist/assert-never.d.ts.map +1 -0
- package/dist/auth/client-address.d.ts +3 -0
- package/dist/auth/client-address.d.ts.map +1 -0
- package/dist/auth/csrf.d.ts +5 -1
- package/dist/auth/csrf.d.ts.map +1 -1
- package/dist/auth/index.d.ts +3 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +15 -7
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +58 -41
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +10 -3
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/sessions.d.ts +12 -0
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +8 -15
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +5 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/bootstrap/index.d.ts +1 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +54 -48
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
- package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
- package/dist/{chunk-d63nnr5b.js → chunk-04h4t2b5.js} +39 -53
- package/dist/{chunk-d63nnr5b.js.map → chunk-04h4t2b5.js.map} +5 -6
- package/dist/chunk-2fv8sajb.js +84 -0
- package/dist/chunk-2fv8sajb.js.map +10 -0
- package/dist/{chunk-1yefycb1.js → chunk-2hbhn1ff.js} +2 -2
- package/dist/{chunk-ap0g1g74.js → chunk-3nx8vj5a.js} +43 -6
- package/dist/chunk-3nx8vj5a.js.map +12 -0
- package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
- package/dist/{chunk-0y39rgsb.js → chunk-4tnrzqqh.js} +1 -1
- package/dist/chunk-58geavnf.js +29 -0
- package/dist/chunk-58geavnf.js.map +10 -0
- package/dist/{chunk-01kj2pbh.js → chunk-63fp9x3q.js} +97 -67
- package/dist/chunk-63fp9x3q.js.map +20 -0
- package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
- package/dist/chunk-69266efg.js.map +12 -0
- package/dist/{chunk-sepyxgpc.js → chunk-693f3zn8.js} +70 -28
- package/dist/chunk-693f3zn8.js.map +15 -0
- package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
- package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
- package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
- package/dist/{chunk-a0e6x5hd.js → chunk-898y24dd.js} +165 -90
- package/dist/chunk-898y24dd.js.map +15 -0
- package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
- package/dist/chunk-91kcnbf0.js.map +10 -0
- package/dist/{chunk-z0s4axeh.js → chunk-91wthfwe.js} +97 -21
- package/dist/{chunk-z0s4axeh.js.map → chunk-91wthfwe.js.map} +8 -7
- package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
- package/dist/chunk-96yw3pwd.js.map +10 -0
- package/dist/chunk-98cw09sw.js.map +2 -2
- package/dist/{chunk-g00bfdq6.js → chunk-9pfw47qx.js} +318 -257
- package/dist/chunk-9pfw47qx.js.map +44 -0
- package/dist/{chunk-5hz0fnca.js → chunk-a0073121.js} +64 -60
- package/dist/chunk-a0073121.js.map +12 -0
- package/dist/{chunk-cfvakeax.js → chunk-a69fkrtr.js} +5 -5
- package/dist/{chunk-72w2pxk7.js → chunk-bdhfn0ww.js} +11 -3
- package/dist/{chunk-72w2pxk7.js.map → chunk-bdhfn0ww.js.map} +3 -3
- package/dist/chunk-bep5rrdq.js +81 -0
- package/dist/chunk-bep5rrdq.js.map +10 -0
- package/dist/chunk-bxx3ms5t.js +29 -0
- package/dist/chunk-bxx3ms5t.js.map +10 -0
- package/dist/{chunk-v2vcg0w6.js → chunk-cbn96bve.js} +2 -2
- package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
- package/dist/chunk-cd234ba4.js.map +14 -0
- package/dist/{chunk-gq8vhakp.js → chunk-cvrbhvtr.js} +292 -104
- package/dist/chunk-cvrbhvtr.js.map +46 -0
- package/dist/{chunk-ms2tmn1k.js → chunk-d8yes9yx.js} +355 -100
- package/dist/chunk-d8yes9yx.js.map +20 -0
- package/dist/{chunk-pr2h4bv4.js → chunk-darm7eeg.js} +9 -9
- package/dist/{chunk-pr2h4bv4.js.map → chunk-darm7eeg.js.map} +3 -3
- package/dist/chunk-dmn70ztd.js.map +2 -2
- package/dist/chunk-drz59ve0.js +57 -0
- package/dist/chunk-drz59ve0.js.map +10 -0
- package/dist/{chunk-skz0hst3.js → chunk-dsfw1bdr.js} +6 -86
- package/dist/{chunk-skz0hst3.js.map → chunk-dsfw1bdr.js.map} +3 -3
- package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
- package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
- package/dist/chunk-ffwvdgk1.js +85 -0
- package/dist/chunk-ffwvdgk1.js.map +10 -0
- package/dist/chunk-gbcrz0gr.js +552 -0
- package/dist/chunk-gbcrz0gr.js.map +17 -0
- package/dist/{chunk-gqm76kse.js → chunk-gc226ten.js} +434 -177
- package/dist/chunk-gc226ten.js.map +62 -0
- package/dist/{chunk-awbhdqyc.js → chunk-gmt22nxx.js} +10 -16
- package/dist/chunk-gmt22nxx.js.map +10 -0
- package/dist/chunk-h89wz928.js +42 -0
- package/dist/chunk-h89wz928.js.map +10 -0
- package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
- package/dist/chunk-hgqpcmyr.js.map +12 -0
- package/dist/{chunk-gqh45d2n.js → chunk-ht4a7mjg.js} +76 -6
- package/dist/chunk-ht4a7mjg.js.map +15 -0
- package/dist/{chunk-x9m9x2eq.js → chunk-jhyc777j.js} +3 -3
- package/dist/{chunk-fh8kgex1.js → chunk-jmwy25mf.js} +76 -58
- package/dist/{chunk-fh8kgex1.js.map → chunk-jmwy25mf.js.map} +3 -3
- package/dist/{chunk-rb1xx120.js → chunk-k4kkp58d.js} +25 -8
- package/dist/chunk-k4kkp58d.js.map +11 -0
- package/dist/{chunk-jsy70480.js → chunk-ky7zpbtt.js} +366 -98
- package/dist/chunk-ky7zpbtt.js.map +19 -0
- package/dist/chunk-m4ehq95f.js +9 -0
- package/dist/chunk-m4ehq95f.js.map +10 -0
- package/dist/{chunk-17kfctj6.js → chunk-m8zkvep1.js} +2 -2
- package/dist/{chunk-z0271qkp.js → chunk-mdnw7nj8.js} +8 -6
- package/dist/chunk-mdnw7nj8.js.map +15 -0
- package/dist/{chunk-4zhmdsx6.js → chunk-mf6hwpzh.js} +121 -28
- package/dist/{chunk-4zhmdsx6.js.map → chunk-mf6hwpzh.js.map} +6 -6
- package/dist/{chunk-z30bv4ga.js → chunk-mr60an99.js} +5 -3
- package/dist/{chunk-z30bv4ga.js.map → chunk-mr60an99.js.map} +3 -3
- package/dist/chunk-n33e8dz8.js +191 -0
- package/dist/chunk-n33e8dz8.js.map +11 -0
- package/dist/chunk-p1683c0v.js +104 -0
- package/dist/chunk-p1683c0v.js.map +11 -0
- package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
- package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
- package/dist/chunk-rdghfsss.js.map +10 -0
- package/dist/{chunk-ftv470j8.js → chunk-rqtdtm43.js} +365 -67
- package/dist/chunk-rqtdtm43.js.map +50 -0
- package/dist/{chunk-dz5h08xv.js → chunk-rzcjp5m2.js} +28 -9
- package/dist/chunk-rzcjp5m2.js.map +25 -0
- package/dist/{chunk-f4w3yp4f.js → chunk-rzkr70gr.js} +108 -21
- package/dist/chunk-rzkr70gr.js.map +13 -0
- package/dist/{chunk-3ckk0xfj.js → chunk-s24qbp32.js} +18 -13
- package/dist/{chunk-3ckk0xfj.js.map → chunk-s24qbp32.js.map} +3 -3
- package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
- package/dist/chunk-t6f3tdnr.js.map +10 -0
- package/dist/{chunk-93csa55g.js → chunk-tw03bsmb.js} +11 -5
- package/dist/chunk-tw03bsmb.js.map +11 -0
- package/dist/chunk-vef6qa14.js +363 -0
- package/dist/chunk-vef6qa14.js.map +14 -0
- package/dist/{chunk-92vk7gta.js → chunk-vn3yh259.js} +1 -1
- package/dist/{chunk-g91qxjj0.js → chunk-w9bp61e7.js} +5 -5
- package/dist/{chunk-b19g04jk.js → chunk-xgptywp0.js} +4 -3
- package/dist/chunk-xgptywp0.js.map +11 -0
- package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
- package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
- package/dist/{chunk-1824gssz.js → chunk-y487ywrv.js} +4 -4
- package/dist/{chunk-7apz6hg4.js → chunk-y6vnvayj.js} +8 -4
- package/dist/chunk-y6vnvayj.js.map +10 -0
- package/dist/{chunk-wf88w4kp.js → chunk-ypj2wqtj.js} +3 -6
- package/dist/{chunk-wf88w4kp.js.map → chunk-ypj2wqtj.js.map} +4 -4
- package/dist/chunk-z3y5kg1x.js +14 -0
- package/dist/chunk-z3y5kg1x.js.map +10 -0
- package/dist/{chunk-38zv5rkr.js → chunk-z9h698s8.js} +1 -1
- package/dist/{chunk-38zv5rkr.js.map → chunk-z9h698s8.js.map} +2 -2
- package/dist/{chunk-8vj0rjgs.js → chunk-zdkcdshk.js} +3 -36
- package/dist/{chunk-8vj0rjgs.js.map → chunk-zdkcdshk.js.map} +3 -4
- package/dist/{chunk-358caqf5.js → chunk-znw0zvy4.js} +2 -2
- package/dist/datasets/validation.d.ts +4 -0
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +5 -4
- package/dist/datasets/write.js.map +1 -1
- package/dist/edits/types.d.ts +19 -19
- package/dist/edits/types.d.ts.map +1 -1
- package/dist/error-reporting/capability.d.ts +3 -2
- package/dist/error-reporting/capability.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +5 -4
- package/dist/error-reporting/internal.js.map +1 -1
- package/dist/error-reporting/reports.d.ts +10 -0
- package/dist/error-reporting/reports.d.ts.map +1 -1
- package/dist/error-reporting/types.d.ts +10 -2
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +16 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/failure-message.d.ts +8 -0
- package/dist/errors/failure-message.d.ts.map +1 -0
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +3 -2
- package/dist/errors/internal.js.map +1 -1
- package/dist/events/envelope.d.ts +0 -12
- package/dist/events/envelope.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +5 -4
- package/dist/events/index.js.map +1 -1
- package/dist/events/service.d.ts +1 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/events/toStoredEvent.d.ts +1 -2
- package/dist/events/toStoredEvent.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +2 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +1 -2
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +48 -43
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +3 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/kernel-operation.d.ts +4 -0
- package/dist/execution/kernel-operation.d.ts.map +1 -0
- package/dist/execution/primitive.d.ts +1 -2
- package/dist/execution/primitive.d.ts.map +1 -1
- package/dist/execution/primitive.js +47 -42
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +1 -2
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +48 -43
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/types.d.ts +6 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/index.d.ts +20 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -62
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.js +5 -4
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +11 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materialization/errors.d.ts +4 -2
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/events.d.ts +27 -2
- package/dist/materialization/events.d.ts.map +1 -1
- package/dist/materialization/index.d.ts +1 -0
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/model.d.ts +2 -0
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materialization/vectors.d.ts +19 -0
- package/dist/materialization/vectors.d.ts.map +1 -0
- package/dist/materializer/context.d.ts.map +1 -1
- package/dist/materializer/edits/commit.d.ts.map +1 -1
- package/dist/materializer/edits/operations.d.ts +2 -1
- package/dist/materializer/edits/operations.d.ts.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -2
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/edits/user-refs.d.ts +30 -0
- package/dist/materializer/edits/user-refs.d.ts.map +1 -0
- package/dist/materializer/edits/vector-authority.d.ts +6 -0
- package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
- package/dist/materializer/edits/vectors.d.ts +6 -0
- package/dist/materializer/edits/vectors.d.ts.map +1 -0
- package/dist/materializer/effective/build-events.d.ts +2 -2
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- package/dist/materializer/effective/validate.d.ts.map +1 -1
- package/dist/materializer/effective/vector-indexing.d.ts +7 -0
- package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
- package/dist/materializer/effective/vectors.d.ts +6 -0
- package/dist/materializer/effective/vectors.d.ts.map +1 -0
- package/dist/materializer/execution/scope.d.ts +11 -3
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- package/dist/materializer/execution/work-executor.d.ts +2 -1
- package/dist/materializer/execution/work-executor.d.ts.map +1 -1
- package/dist/materializer/index.js +30 -27
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +2 -0
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -2
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/catalog-index.d.ts +15 -0
- package/dist/models/catalog-index.d.ts.map +1 -0
- package/dist/models/catalog.d.ts +27 -6
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/decision/catalog.d.ts +12 -0
- package/dist/models/decision/catalog.d.ts.map +1 -0
- package/dist/models/decision/errors.d.ts +7 -0
- package/dist/models/decision/errors.d.ts.map +1 -0
- package/dist/models/decision/output.d.ts +50 -0
- package/dist/models/decision/output.d.ts.map +1 -0
- package/dist/models/decision/questions.d.ts +14 -0
- package/dist/models/decision/questions.d.ts.map +1 -0
- package/dist/models/decision/runtime.d.ts +7 -0
- package/dist/models/decision/runtime.d.ts.map +1 -0
- package/dist/models/decision/types.d.ts +92 -0
- package/dist/models/decision/types.d.ts.map +1 -0
- package/dist/models/decision/validation.d.ts +7 -0
- package/dist/models/decision/validation.d.ts.map +1 -0
- package/dist/models/definitions.d.ts +1 -1
- package/dist/models/definitions.d.ts.map +1 -1
- package/dist/models/embedding-model.d.ts +60 -0
- package/dist/models/embedding-model.d.ts.map +1 -0
- package/dist/models/execution/binding.d.ts +2 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/embedding.d.ts +5 -0
- package/dist/models/execution/embedding.d.ts.map +1 -0
- package/dist/models/execution/index.js +32 -27
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +5 -1
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution/session.d.ts +21 -0
- package/dist/models/execution/session.d.ts.map +1 -0
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/generation-types.d.ts +2 -0
- package/dist/models/generation-types.d.ts.map +1 -1
- package/dist/models/index.d.ts +9 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +17 -7
- package/dist/models/index.js.map +1 -1
- package/dist/models/pricing.d.ts +3 -2
- package/dist/models/pricing.d.ts.map +1 -1
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +21 -26
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +33 -30
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.d.ts +2 -0
- package/dist/objects/query/index.d.ts.map +1 -1
- package/dist/objects/query/index.js +42 -30
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +14 -3
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/scalar-values.d.ts.map +1 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts +6 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -3
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -10
- package/dist/objects/sdk/query-builder.d.ts.map +1 -1
- package/dist/objects/sdk/query-executor.d.ts +2 -0
- package/dist/objects/sdk/query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts +1 -2
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/sdk/where.d.ts +2 -3
- package/dist/objects/sdk/where.d.ts.map +1 -1
- package/dist/objects/vectors/handle.d.ts +4 -0
- package/dist/objects/vectors/handle.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-batch.d.ts +6 -0
- package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-generate.d.ts +11 -0
- package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
- package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-shared.d.ts +17 -0
- package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-single.d.ts +4 -0
- package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
- package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
- package/dist/objects/vectors/indexing.d.ts +7 -0
- package/dist/objects/vectors/indexing.d.ts.map +1 -0
- package/dist/objects/vectors/profile.d.ts +13 -0
- package/dist/objects/vectors/profile.d.ts.map +1 -0
- package/dist/objects/vectors/query.d.ts +5 -0
- package/dist/objects/vectors/query.d.ts.map +1 -0
- package/dist/objects/vectors/resolve-query.d.ts +6 -0
- package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
- package/dist/objects/vectors/types.d.ts +11 -0
- package/dist/objects/vectors/types.d.ts.map +1 -0
- package/dist/ontology/builders.d.ts +11 -10
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +5 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +7 -5
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +34 -22
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +1 -0
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +10 -7
- package/dist/ontology/internal.js.map +1 -1
- package/dist/ontology/primitives.d.ts +38 -0
- package/dist/ontology/primitives.d.ts.map +1 -0
- package/dist/ontology/query-capabilities.d.ts +38 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +23 -2
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/registered.d.ts +16 -0
- package/dist/ontology/registered.d.ts.map +1 -0
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +35 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +26 -13
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/user-ref.d.ts +35 -0
- package/dist/ontology/user-ref.d.ts.map +1 -0
- package/dist/ontology/validation/definition.d.ts +3 -0
- package/dist/ontology/validation/definition.d.ts.map +1 -0
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/normalize.d.ts.map +1 -1
- package/dist/ontology/validation/properties.d.ts +6 -1
- package/dist/ontology/validation/properties.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +1 -1
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/ontology/vector-profiles.d.ts +4 -0
- package/dist/ontology/vector-profiles.d.ts.map +1 -0
- package/dist/pipelines/index.js +32 -29
- package/dist/pipelines/index.js.map +1 -1
- package/dist/predicates/types.d.ts +53 -3
- package/dist/predicates/types.d.ts.map +1 -1
- package/dist/projections/builders.d.ts +19 -1
- package/dist/projections/builders.d.ts.map +1 -1
- package/dist/projections/internal.js +28 -25
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/validation.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +3 -2
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +5 -0
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +4 -3
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +10 -7
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +3 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +49 -1
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +11 -6
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +182 -187
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/auth.d.ts +16 -0
- package/dist/sandboxes/auth.d.ts.map +1 -0
- package/dist/sandboxes/config.d.ts +5 -0
- package/dist/sandboxes/config.d.ts.map +1 -0
- package/dist/sandboxes/configuration.d.ts +41 -0
- package/dist/sandboxes/configuration.d.ts.map +1 -0
- package/dist/sandboxes/environment.d.ts +13 -0
- package/dist/sandboxes/environment.d.ts.map +1 -0
- package/dist/sandboxes/errors.d.ts +1 -1
- package/dist/sandboxes/errors.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +6 -1
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +16 -3
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +39 -4
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/shared/params/builders.d.ts +25 -0
- package/dist/shared/params/builders.d.ts.map +1 -0
- package/dist/shared/params/types.d.ts +48 -0
- package/dist/shared/params/types.d.ts.map +1 -0
- package/dist/shared/params/user-refs.d.ts +19 -0
- package/dist/shared/params/user-refs.d.ts.map +1 -0
- package/dist/shared/params/validation.d.ts +15 -0
- package/dist/shared/params/validation.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts.map +1 -1
- package/dist/shares/internal.js +29 -26
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +4 -3
- package/dist/storage/action-runs/failure.js.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/types.d.ts +1 -1
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/in-memory.d.ts +2 -1
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/index.d.ts +1 -1
- package/dist/storage/agents/index.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts +5 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +8 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +49 -0
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +1 -0
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/index.d.ts +1 -1
- package/dist/storage/ai-cost/index.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +2 -2
- package/dist/storage/ai-cost/types.d.ts +14 -2
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +4 -3
- package/dist/storage/ai-limits/enforcement.js.map +1 -1
- package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +62 -13
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +3 -2
- package/dist/storage/connector-connections/provider.js.map +2 -2
- package/dist/storage/executions/provider.d.ts +3 -3
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +13 -11
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/types.d.ts +3 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/in-memory.d.ts +9 -18
- package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
- package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +24 -0
- package/dist/storage/file-upload-sessions/provider.js.map +9 -0
- package/dist/storage/file-upload-sessions/types.d.ts +19 -1
- package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
- package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
- package/dist/storage/index.d.ts +8 -6
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +37 -30
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +11 -9
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/storage.d.ts +7 -0
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
- package/dist/storage/objects/types.d.ts +2 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +7 -2
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/index.d.ts +4 -0
- package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
- package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
- package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
- package/dist/storage/ontology/index.d.ts +6 -0
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -1
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +9 -3
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/vector-indexing.d.ts +94 -0
- package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
- package/dist/storage/ontology/vectors.d.ts +56 -0
- package/dist/storage/ontology/vectors.d.ts.map +1 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/provider.js +4 -3
- package/dist/storage/projection-runs/provider.js.map +1 -1
- package/dist/storage/types.d.ts +2 -2
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/index.d.ts +1 -1
- package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/types.d.ts +5 -8
- package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +10 -8
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +33 -30
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +4 -0
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution.d.ts +1 -2
- package/dist/testing/execution.d.ts.map +1 -1
- package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
- package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2351 -1263
- package/dist/testing/index.js.map +19 -17
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-query-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
- package/dist/testing/ontology-contract-fixture.d.ts +8 -0
- package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/testing/sandboxes-contract.d.ts.map +1 -1
- package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
- package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +29 -26
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/webhooks/types.d.ts +2 -2
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/workers/index.js +3 -2
- package/dist/workers/index.js.map +2 -2
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.js +51 -45
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/run-dispatch.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +2 -2
- package/dist/workflows/types.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/actions/builders/params.ts +1 -48
- package/src/actions/index.ts +0 -3
- package/src/actions/read-facade.ts +102 -62
- package/src/actions/request.ts +13 -0
- package/src/actions/run-dispatch.ts +3 -0
- package/src/actions/types/context.ts +17 -65
- package/src/actions/types/params.ts +16 -75
- package/src/actions/validation.ts +7 -84
- package/src/agents/authority.ts +1 -1
- package/src/agents/errors.ts +3 -0
- package/src/agents/execution.ts +67 -15
- package/src/agents/ids.ts +8 -0
- package/src/agents/index.ts +1 -0
- package/src/agents/request.ts +11 -0
- package/src/agents/sandbox.ts +44 -0
- package/src/agents/validation.ts +2 -108
- package/src/assert-never.ts +7 -0
- package/src/auth/client-address.ts +12 -0
- package/src/auth/csrf.ts +14 -5
- package/src/auth/index.ts +3 -2
- package/src/auth/runtime.ts +299 -277
- package/src/auth/session-cache.ts +18 -6
- package/src/auth/sessions.ts +30 -0
- package/src/auth/types.ts +7 -17
- package/src/bootstrap/index.ts +1 -0
- package/src/bootstrap/ontology-type-manifest.ts +112 -60
- package/src/datasets/validation.ts +40 -11
- package/src/datasets/write.ts +8 -11
- package/src/edits/types.ts +47 -63
- package/src/error-reporting/capability.ts +11 -0
- package/src/error-reporting/reports.ts +23 -0
- package/src/error-reporting/types.ts +12 -1
- package/src/errors/catalog.ts +16 -0
- package/src/errors/failure-message.ts +15 -0
- package/src/errors/internal.ts +57 -25
- package/src/events/envelope.ts +0 -13
- package/src/events/index.ts +1 -1
- package/src/events/service.ts +1 -11
- package/src/events/toStoredEvent.ts +1 -3
- package/src/events/types/index.ts +1 -1
- package/src/execution/agent.ts +1 -2
- package/src/execution/authorization.ts +12 -5
- package/src/execution/authorized-object-reader.ts +42 -9
- package/src/execution/kernel-operation.ts +27 -0
- package/src/execution/primitive.ts +1 -2
- package/src/execution/request.ts +1 -2
- package/src/execution/scopes.ts +2 -0
- package/src/execution/types.ts +4 -4
- package/src/index.ts +68 -8
- package/src/lake-storage/in-memory.ts +5 -3
- package/src/maintenance/ontology-maintenance.ts +77 -1
- package/src/materialization/errors.ts +4 -2
- package/src/materialization/events.ts +27 -2
- package/src/materialization/index.ts +1 -0
- package/src/materialization/model.ts +2 -0
- package/src/materialization/vectors.ts +18 -0
- package/src/materializer/README.md +16 -0
- package/src/materializer/context.ts +10 -0
- package/src/materializer/edits/commit.ts +29 -13
- package/src/materializer/edits/operations.ts +32 -4
- package/src/materializer/edits/plan.ts +4 -5
- package/src/materializer/edits/user-refs.ts +115 -0
- package/src/materializer/edits/vector-authority.ts +108 -0
- package/src/materializer/edits/vectors.ts +100 -0
- package/src/materializer/effective/build-events.ts +4 -5
- package/src/materializer/effective/validate.ts +10 -3
- package/src/materializer/effective/vector-indexing.ts +84 -0
- package/src/materializer/effective/vectors.ts +47 -0
- package/src/materializer/execution/scope.ts +40 -7
- package/src/materializer/execution/work-executor.ts +11 -3
- package/src/materializer/projections/replace.ts +3 -1
- package/src/materializer/projections/replacement-plan.ts +4 -0
- package/src/materializer/shared/normalize.ts +11 -0
- package/src/materializer/telemetry/append.ts +5 -13
- package/src/materializer/telemetry/plan.ts +4 -5
- package/src/models/catalog-index.ts +38 -0
- package/src/models/catalog.ts +66 -38
- package/src/models/decision/catalog.ts +32 -0
- package/src/models/decision/errors.ts +18 -0
- package/src/models/decision/output.ts +101 -0
- package/src/models/decision/questions.ts +29 -0
- package/src/models/decision/runtime.ts +188 -0
- package/src/models/decision/types.ts +109 -0
- package/src/models/decision/validation.ts +335 -0
- package/src/models/definitions.ts +1 -1
- package/src/models/embedding-model.ts +129 -0
- package/src/models/execution/README.md +63 -0
- package/src/models/execution/binding.ts +2 -0
- package/src/models/execution/embedding.ts +133 -0
- package/src/models/execution/model-call-recorder.ts +42 -30
- package/src/models/execution/session.ts +81 -0
- package/src/models/execution.ts +10 -52
- package/src/models/generation-types.ts +2 -0
- package/src/models/index.ts +37 -0
- package/src/models/pricing.ts +1 -2
- package/src/objects/authorized-ontology-view.ts +12 -8
- package/src/objects/execution.ts +34 -61
- package/src/objects/query/executor.ts +25 -7
- package/src/objects/query/explain.ts +7 -2
- package/src/objects/query/index.ts +2 -0
- package/src/objects/query/ir.ts +13 -2
- package/src/objects/query/normalize.ts +5 -1
- package/src/objects/query/planner.ts +1 -0
- package/src/objects/query/scalar-values.ts +19 -0
- package/src/objects/query/validate.ts +129 -117
- package/src/objects/sdk/object-handle.ts +11 -8
- package/src/objects/sdk/object-set.ts +9 -15
- package/src/objects/sdk/query-builder.ts +66 -72
- package/src/objects/sdk/query-executor.ts +2 -1
- package/src/objects/sdk/runtime-query-executor.ts +6 -2
- package/src/objects/sdk/telemetry-channel.ts +6 -7
- package/src/objects/sdk/where.ts +6 -13
- package/src/objects/vectors/README.md +59 -0
- package/src/objects/vectors/handle.ts +91 -0
- package/src/objects/vectors/indexing-batch.ts +163 -0
- package/src/objects/vectors/indexing-generate.ts +184 -0
- package/src/objects/vectors/indexing-runtime.ts +17 -0
- package/src/objects/vectors/indexing-shared.ts +188 -0
- package/src/objects/vectors/indexing-single.ts +51 -0
- package/src/objects/vectors/indexing-store-batch.ts +62 -0
- package/src/objects/vectors/indexing.ts +23 -0
- package/src/objects/vectors/profile.ts +64 -0
- package/src/objects/vectors/query.ts +16 -0
- package/src/objects/vectors/resolve-query.ts +89 -0
- package/src/objects/vectors/types.ts +10 -0
- package/src/ontology/builders.ts +15 -11
- package/src/ontology/index.ts +6 -0
- package/src/ontology/inference/index.ts +56 -36
- package/src/ontology/internal.ts +1 -0
- package/src/ontology/json-schema.ts +12 -0
- package/src/ontology/primitives.ts +91 -0
- package/src/ontology/query-capabilities.ts +136 -0
- package/src/ontology/refs.ts +33 -6
- package/src/ontology/registered.ts +22 -0
- package/src/ontology/registry.ts +14 -3
- package/src/ontology/tokens.ts +41 -2
- package/src/ontology/types.ts +28 -12
- package/src/ontology/user-ref.ts +120 -0
- package/src/ontology/validation/definition.ts +93 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/normalize.ts +39 -3
- package/src/ontology/validation/properties.ts +109 -23
- package/src/ontology/validation/query.ts +44 -92
- package/src/ontology/validation/schema.ts +101 -23
- package/src/ontology/vector-profiles.ts +35 -0
- package/src/predicates/types.ts +43 -33
- package/src/projections/builders.ts +24 -3
- package/src/projections/validation.ts +15 -1
- package/src/queues/in-memory.ts +5 -0
- package/src/queues/index.ts +1 -0
- package/src/queues/types.ts +10 -0
- package/src/runtime/create.ts +7 -6
- package/src/runtime/host.ts +44 -10
- package/src/runtime/index.ts +3 -2
- package/src/runtime/internal.ts +3 -0
- package/src/runtime/resolve-definitions.ts +19 -1
- package/src/runtime/sixb.ts +25 -17
- package/src/runtime/types.ts +288 -478
- package/src/sandboxes/README.md +41 -0
- package/src/sandboxes/auth.ts +17 -0
- package/src/sandboxes/config.ts +37 -0
- package/src/sandboxes/configuration.ts +268 -0
- package/src/sandboxes/environment.ts +107 -0
- package/src/sandboxes/errors.ts +1 -1
- package/src/sandboxes/index.ts +15 -0
- package/src/sandboxes/sandbox.ts +42 -4
- package/src/shared/params/builders.ts +50 -0
- package/src/shared/params/types.ts +85 -0
- package/src/shared/params/user-refs.ts +48 -0
- package/src/shared/params/validation.ts +114 -0
- package/src/shares/compiler.ts +6 -16
- package/src/storage/action-runs/types.ts +1 -0
- package/src/storage/agents/in-memory.ts +25 -1
- package/src/storage/agents/index.ts +3 -0
- package/src/storage/agents/provider.ts +105 -0
- package/src/storage/agents/types.ts +54 -0
- package/src/storage/ai-cost/analytics.ts +59 -21
- package/src/storage/ai-cost/index.ts +1 -0
- package/src/storage/ai-cost/types.ts +19 -2
- package/src/storage/auth/in-memory/access-tokens.ts +5 -2
- package/src/storage/auth/in-memory/auth-storage.ts +5 -8
- package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
- package/src/storage/auth/in-memory/sessions.ts +69 -1
- package/src/storage/auth/in-memory/shared.ts +13 -7
- package/src/storage/auth/index.ts +2 -1
- package/src/storage/auth/types.ts +57 -13
- package/src/storage/executions/provider.ts +24 -12
- package/src/storage/executions/types.ts +1 -0
- package/src/storage/executions/validation.ts +8 -4
- package/src/storage/file-upload-sessions/in-memory.ts +64 -113
- package/src/storage/file-upload-sessions/index.ts +1 -0
- package/src/storage/file-upload-sessions/provider.ts +258 -0
- package/src/storage/file-upload-sessions/types.ts +20 -1
- package/src/storage/file-upload-sessions/utils.ts +25 -9
- package/src/storage/index.ts +18 -3
- package/src/storage/objects/in-memory/query.ts +38 -14
- package/src/storage/objects/in-memory/read-scope.ts +9 -2
- package/src/storage/objects/in-memory/read-source.ts +5 -0
- package/src/storage/objects/in-memory/selected-reader.ts +5 -1
- package/src/storage/objects/in-memory/storage.ts +19 -1
- package/src/storage/objects/types.ts +2 -0
- package/src/storage/ontology/commits.ts +7 -2
- package/src/storage/ontology/in-memory/index.ts +20 -0
- package/src/storage/ontology/in-memory/materializations.ts +19 -34
- package/src/storage/ontology/in-memory/shared-state.ts +9 -0
- package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
- package/src/storage/ontology/in-memory/vectors.ts +73 -0
- package/src/storage/ontology/index.ts +14 -0
- package/src/storage/ontology/provider-header-validation.ts +57 -0
- package/src/storage/ontology/provider-work.ts +15 -3
- package/src/storage/ontology/provider.ts +59 -1
- package/src/storage/ontology/vector-indexing.ts +98 -0
- package/src/storage/ontology/vectors.ts +48 -0
- package/src/storage/operation-scope.ts +2 -0
- package/src/storage/types.ts +3 -1
- package/src/storage/workflow-interventions/index.ts +0 -1
- package/src/storage/workflow-interventions/types.ts +5 -9
- package/src/testing/action-execution.ts +13 -3
- package/src/testing/agent-storage-contract.ts +246 -0
- package/src/testing/ai-cost-storage-contract.ts +134 -0
- package/src/testing/auth-storage-contract.ts +149 -62
- package/src/testing/execution-storage-contract.ts +1 -2
- package/src/testing/execution.ts +4 -7
- package/src/testing/file-upload-session-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -0
- package/src/testing/materializer-storage-contract.ts +86 -4
- package/src/testing/object-query-contract.ts +162 -27
- package/src/testing/object-read-scope-contract.ts +1 -5
- package/src/testing/ontology-contract-fixture.ts +23 -3
- package/src/testing/ontology-storage-contract.ts +58 -0
- package/src/testing/queues-contract.ts +31 -0
- package/src/testing/sandboxes-contract.ts +27 -0
- package/src/testing/workflow-intervention-storage-contract.ts +203 -0
- package/src/webhooks/types.ts +2 -2
- package/src/workflows/failure.ts +10 -4
- package/src/workflows/run-dispatch.ts +12 -1
- package/src/workflows/snapshot.ts +16 -7
- package/src/workflows/types.ts +2 -2
- package/src/workflows/validation.ts +2 -2
- package/dist/chunk-01kj2pbh.js.map +0 -19
- package/dist/chunk-5hz0fnca.js.map +0 -12
- package/dist/chunk-653vwrzr.js.map +0 -10
- package/dist/chunk-7apz6hg4.js.map +0 -10
- package/dist/chunk-7bs40fe1.js.map +0 -12
- package/dist/chunk-860dwwy0.js.map +0 -14
- package/dist/chunk-93csa55g.js.map +0 -11
- package/dist/chunk-a0e6x5hd.js.map +0 -14
- package/dist/chunk-aa6z4a19.js.map +0 -12
- package/dist/chunk-ap0g1g74.js.map +0 -11
- package/dist/chunk-awbhdqyc.js.map +0 -10
- package/dist/chunk-b19g04jk.js.map +0 -11
- package/dist/chunk-dz5h08xv.js.map +0 -25
- package/dist/chunk-f0rwz2vh.js.map +0 -11
- package/dist/chunk-f4w3yp4f.js.map +0 -12
- package/dist/chunk-ftv470j8.js.map +0 -45
- package/dist/chunk-g00bfdq6.js.map +0 -43
- package/dist/chunk-gq8vhakp.js.map +0 -44
- package/dist/chunk-gqh45d2n.js.map +0 -15
- package/dist/chunk-gqm76kse.js.map +0 -58
- package/dist/chunk-jsy70480.js.map +0 -15
- package/dist/chunk-mrp7k0pw.js.map +0 -10
- package/dist/chunk-ms2tmn1k.js.map +0 -17
- package/dist/chunk-rb1xx120.js.map +0 -11
- package/dist/chunk-sepyxgpc.js.map +0 -15
- package/dist/chunk-yv79ncbv.js.map +0 -10
- package/dist/chunk-z0271qkp.js.map +0 -15
- package/dist/chunk-z3y411fq.js +0 -99
- package/dist/chunk-z3y411fq.js.map +0 -11
- /package/dist/{chunk-1yefycb1.js.map → chunk-2hbhn1ff.js.map} +0 -0
- /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
- /package/dist/{chunk-0y39rgsb.js.map → chunk-4tnrzqqh.js.map} +0 -0
- /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
- /package/dist/{chunk-cfvakeax.js.map → chunk-a69fkrtr.js.map} +0 -0
- /package/dist/{chunk-v2vcg0w6.js.map → chunk-cbn96bve.js.map} +0 -0
- /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
- /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
- /package/dist/{chunk-x9m9x2eq.js.map → chunk-jhyc777j.js.map} +0 -0
- /package/dist/{chunk-17kfctj6.js.map → chunk-m8zkvep1.js.map} +0 -0
- /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
- /package/dist/{chunk-92vk7gta.js.map → chunk-vn3yh259.js.map} +0 -0
- /package/dist/{chunk-g91qxjj0.js.map → chunk-w9bp61e7.js.map} +0 -0
- /package/dist/{chunk-1824gssz.js.map → chunk-y487ywrv.js.map} +0 -0
- /package/dist/{chunk-358caqf5.js.map → chunk-znw0zvy4.js.map} +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Sandboxes
|
|
2
|
+
|
|
3
|
+
Factories define environments; threads retain immutable parameters; runs provide current authority.
|
|
4
|
+
|
|
5
|
+
- `create()` applies static source/setup. An explicit `environment` replaces both, including `{}`.
|
|
6
|
+
Dynamic recipes require an execution-resolved environment; providers never invoke resolvers.
|
|
7
|
+
- Selection and validation happen before provisioning. Initial source access must be allowed by
|
|
8
|
+
the session network policy. Creation runs setup once; resume never replays it.
|
|
9
|
+
- Runs without a thread binding explicitly select `{}`; shared env/network defaults remain session
|
|
10
|
+
settings, not an implicit project binding. Unsupported provider capabilities fail explicitly.
|
|
11
|
+
|
|
12
|
+
- [Configuration](./configuration.ts) validates and snapshots recipes, sharing Action parameter
|
|
13
|
+
schemas. Resolvers receive the execution-scoped SDK. Only parameters are stored in `sandbox_params`.
|
|
14
|
+
- [Initialization](./environment.ts) runs once, after session settings are applied. Git uses
|
|
15
|
+
`repository/`; source-free environments use the provider root. Vercel skips native cloning on this
|
|
16
|
+
path to avoid preparing the source twice. Confirmed loss uses a fresh name and replays setup.
|
|
17
|
+
- Threads expose immutable `sandboxParams` and worker-owned `sandboxState`; its `name` is the
|
|
18
|
+
provider's exact persistent name, also checked during transitions and explicit recreation.
|
|
19
|
+
- The conversation environment owns acquisition and preservation, including preparation failures.
|
|
20
|
+
It resolves access before compaction, drains operations, cleans transient files and confirms
|
|
21
|
+
preservation before the worker finalizes. Source identity/revision cannot change on resume.
|
|
22
|
+
- Git checkouts exclude `.sixb/agent/` locally before run files are written. Tracked runtime files,
|
|
23
|
+
redirected metadata and repository rules overriding this exclusion block acquisition or saving.
|
|
24
|
+
This prevents accidental staging, not deliberate publication with `git add -f`.
|
|
25
|
+
- Confirmed missing/expired state allows one replacement attempt under the current execution fence.
|
|
26
|
+
A durable reset timestamp informs subsequent model calls; conversation history is preserved.
|
|
27
|
+
- Omitted network policy permits API/source access. Explicit policies are never widened; incompatible
|
|
28
|
+
policies fail before provisioning. Guest-readable `env` is not a Git credential channel.
|
|
29
|
+
|
|
30
|
+
## V1 limits
|
|
31
|
+
|
|
32
|
+
Vercel requests can outlive their worker: storage fencing cannot cancel provider-side work.
|
|
33
|
+
Uncertain sandboxes stay blocked; explicit recreation uses a new name without deleting old state.
|
|
34
|
+
Saved files remain subject to provider retention.
|
|
35
|
+
|
|
36
|
+
Source `auth` stays host-side. Named providers advertising `supportsRequestCredentials` must apply
|
|
37
|
+
execution-prepared credentials; direct create/resume never invoke `auth` implicitly. They apply
|
|
38
|
+
initial credentials before setup and expose session-scoped renewal. Unsupported providers reject
|
|
39
|
+
credentials before provisioning. During initial provisioning/setup, the worker aborts before token
|
|
40
|
+
expiry if no session handle is available yet; renewal begins after acquisition. Normal teardown
|
|
41
|
+
removes injection and revokes grants. A crash cannot guarantee immediate revocation.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SandboxSource } from "./configuration"
|
|
2
|
+
import type { SandboxRequestCredential } from "./sandbox"
|
|
3
|
+
|
|
4
|
+
/** Per-run source access. Never persist these grants or expose them to the guest. */
|
|
5
|
+
export interface SandboxSourceCredentials {
|
|
6
|
+
readonly requests: readonly SandboxRequestCredential[]
|
|
7
|
+
readonly expiresAt: Date
|
|
8
|
+
revoke(): Promise<void>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/** Integration-owned authentication; grant source.access (read by default), or reject. */
|
|
12
|
+
export interface SandboxSourceAuth {
|
|
13
|
+
authorize(input: {
|
|
14
|
+
readonly source: SandboxSource
|
|
15
|
+
readonly signal: AbortSignal
|
|
16
|
+
}): Promise<SandboxSourceCredentials>
|
|
17
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ParamsConfig } from "../shared/params/types"
|
|
2
|
+
import { captureEnvironment, type SandboxConfig } from "./configuration"
|
|
3
|
+
import { SandboxError } from "./errors"
|
|
4
|
+
|
|
5
|
+
/** Extract only the common recipe; provider credentials and infrastructure stay on the factory. */
|
|
6
|
+
export function sandboxConfig<TParams extends ParamsConfig>(
|
|
7
|
+
options: SandboxConfig<TParams>
|
|
8
|
+
): SandboxConfig<TParams> {
|
|
9
|
+
if (options.auth !== undefined && typeof options.auth?.authorize !== "function") {
|
|
10
|
+
throw new SandboxError("[Sixb] sandboxes.auth requires an authorize function.")
|
|
11
|
+
}
|
|
12
|
+
const authorize = options.auth?.authorize.bind(options.auth)
|
|
13
|
+
if (options.params !== undefined && options.resolve === undefined) {
|
|
14
|
+
throw new SandboxError("[Sixb] Sandbox params require a resolve function.")
|
|
15
|
+
}
|
|
16
|
+
if (options.resolve !== undefined && typeof options.resolve !== "function") {
|
|
17
|
+
throw new SandboxError("[Sixb] Sandbox resolve must be a function.")
|
|
18
|
+
}
|
|
19
|
+
if (
|
|
20
|
+
options.resolve !== undefined &&
|
|
21
|
+
(options.source !== undefined || options.setup !== undefined)
|
|
22
|
+
) {
|
|
23
|
+
throw new SandboxError("[Sixb] Use either static source/setup or resolve, not both.")
|
|
24
|
+
}
|
|
25
|
+
const environment = captureEnvironment({
|
|
26
|
+
...(options.source === undefined ? {} : { source: options.source }),
|
|
27
|
+
...(options.setup === undefined ? {} : { setup: options.setup }),
|
|
28
|
+
...(options.env === undefined ? {} : { env: options.env }),
|
|
29
|
+
...(options.network === undefined ? {} : { network: options.network }),
|
|
30
|
+
})
|
|
31
|
+
return Object.freeze({
|
|
32
|
+
...(authorize ? { auth: Object.freeze({ authorize }) } : {}),
|
|
33
|
+
...environment,
|
|
34
|
+
...(options.params === undefined ? {} : { params: structuredClone(options.params) }),
|
|
35
|
+
...(options.resolve === undefined ? {} : { resolve: options.resolve }),
|
|
36
|
+
})
|
|
37
|
+
}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { isPlainRecord } from "../json"
|
|
2
|
+
import type { OntologyRegistry } from "../ontology/registry"
|
|
3
|
+
import { assertValidSchema } from "../ontology/validation/definition"
|
|
4
|
+
import type { Sixb } from "../runtime/sixb"
|
|
5
|
+
import type { InferParams, ParamsConfig } from "../shared/params/types"
|
|
6
|
+
import { coerceParamsToTyped, normalizeParams } from "../shared/params/validation"
|
|
7
|
+
import type { SandboxSourceAuth } from "./auth"
|
|
8
|
+
import { SandboxError } from "./errors"
|
|
9
|
+
import type { SandboxNetworkPolicy } from "./sandbox"
|
|
10
|
+
|
|
11
|
+
/** Static recipes accept an empty parameter record, not arbitrary undeclared keys. */
|
|
12
|
+
export type InferSandboxParams<TParams extends ParamsConfig> = keyof TParams extends never
|
|
13
|
+
? Record<string, never>
|
|
14
|
+
: InferParams<TParams>
|
|
15
|
+
|
|
16
|
+
/** Initial project contents, independent from the provider's runtime image or saved state. */
|
|
17
|
+
export interface SandboxSource {
|
|
18
|
+
readonly type: "git"
|
|
19
|
+
readonly url: string
|
|
20
|
+
readonly revision?: string
|
|
21
|
+
readonly access?: "read" | "write"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Host-side recipe. Environment values are guest-readable, never a Git credential channel. */
|
|
25
|
+
export interface SandboxEnvironment {
|
|
26
|
+
readonly source?: SandboxSource
|
|
27
|
+
readonly setup?: readonly string[]
|
|
28
|
+
readonly env?: Readonly<Record<string, string>>
|
|
29
|
+
readonly network?: SandboxNetworkPolicy
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface SandboxResolveContext<TParams = Record<string, unknown>> {
|
|
33
|
+
readonly params: TParams
|
|
34
|
+
/** Bound to the current execution; a stored binding is not authorization. */
|
|
35
|
+
readonly sixb: Sixb
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// The recipe both declares and consumes this schema: keep it invariant instead of asking
|
|
39
|
+
// TypeScript to compare the recursive ontology inference through callback variance.
|
|
40
|
+
// Provider option interfaces must preserve this annotation when extending the config.
|
|
41
|
+
export interface SandboxConfig<in out TParams extends ParamsConfig = ParamsConfig>
|
|
42
|
+
extends SandboxEnvironment {
|
|
43
|
+
readonly auth?: SandboxSourceAuth
|
|
44
|
+
readonly params?: TParams
|
|
45
|
+
readonly resolve?: (
|
|
46
|
+
context: SandboxResolveContext<InferParams<NoInfer<TParams>>>
|
|
47
|
+
) => SandboxEnvironment | Promise<SandboxEnvironment>
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Registered project recipe; only thread params cross the durable boundary. */
|
|
51
|
+
export interface SandboxDefinition {
|
|
52
|
+
readonly auth?: SandboxSourceAuth
|
|
53
|
+
readonly params: ParamsConfig
|
|
54
|
+
readonly resolve: (context: SandboxResolveContext) => Promise<SandboxEnvironment>
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function createSandboxDefinition<TParams extends ParamsConfig>(
|
|
58
|
+
config: SandboxConfig<TParams>,
|
|
59
|
+
ontology: OntologyRegistry
|
|
60
|
+
): SandboxDefinition {
|
|
61
|
+
const raw: unknown = config
|
|
62
|
+
if (
|
|
63
|
+
!isPlainRecord(raw) ||
|
|
64
|
+
(config.params !== undefined && !isPlainRecord(raw.params)) ||
|
|
65
|
+
(config.resolve !== undefined && typeof config.resolve !== "function")
|
|
66
|
+
) {
|
|
67
|
+
throw new SandboxError(
|
|
68
|
+
"[Sixb] Sandbox configuration requires a params object and a callable resolver when provided."
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
for (const key of Object.keys(config)) {
|
|
72
|
+
if (!["params", "resolve", "source", "setup", "env", "network", "auth"].includes(key)) {
|
|
73
|
+
throw new SandboxError("[Sixb] Unknown sandbox configuration field.")
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (config.auth !== undefined && typeof config.auth?.authorize !== "function") {
|
|
77
|
+
throw new SandboxError("[Sixb] sandboxes.auth requires an authorize function.")
|
|
78
|
+
}
|
|
79
|
+
if (config.params !== undefined && config.resolve === undefined) {
|
|
80
|
+
throw new SandboxError("[Sixb] Sandbox params require a resolve function.")
|
|
81
|
+
}
|
|
82
|
+
if (config.resolve !== undefined && (config.source !== undefined || config.setup !== undefined)) {
|
|
83
|
+
throw new SandboxError("[Sixb] Use either static source/setup or resolve, not both.")
|
|
84
|
+
}
|
|
85
|
+
const invalid = (path: string) =>
|
|
86
|
+
new SandboxError(`[Sixb] ${path} must be a valid parameter declaration; use param(schema).`)
|
|
87
|
+
for (const [id, value] of Object.entries(config.params ?? {})) {
|
|
88
|
+
const path = `sandboxes.params.${id}`
|
|
89
|
+
if (!id.trim() || !isPlainRecord(value)) throw invalid(path)
|
|
90
|
+
for (const key of Object.keys(value)) {
|
|
91
|
+
if (!["schema", "required", "nullable", "description", "semanticType"].includes(key)) {
|
|
92
|
+
throw invalid(path)
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (
|
|
96
|
+
(value.required !== undefined && typeof value.required !== "boolean") ||
|
|
97
|
+
(value.nullable !== undefined && typeof value.nullable !== "boolean") ||
|
|
98
|
+
(value.description !== undefined && typeof value.description !== "string") ||
|
|
99
|
+
(value.semanticType !== undefined && typeof value.semanticType !== "string")
|
|
100
|
+
)
|
|
101
|
+
throw invalid(path)
|
|
102
|
+
const schema: unknown = value.schema
|
|
103
|
+
if (isPlainRecord(schema) && schema.type === "objectRef") {
|
|
104
|
+
if (
|
|
105
|
+
typeof schema.objectTypeId !== "string" ||
|
|
106
|
+
!ontology.getObjectTypesById().has(schema.objectTypeId)
|
|
107
|
+
) {
|
|
108
|
+
throw invalid(path)
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
assertValidSchema(schema, `${path}.schema`, invalid)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const params = structuredClone(config.params ?? {}) as ParamsConfig
|
|
115
|
+
const environment = captureEnvironment({
|
|
116
|
+
...(config.source === undefined ? {} : { source: config.source }),
|
|
117
|
+
...(config.setup === undefined ? {} : { setup: config.setup }),
|
|
118
|
+
...(config.env === undefined ? {} : { env: config.env }),
|
|
119
|
+
...(config.network === undefined ? {} : { network: config.network }),
|
|
120
|
+
})
|
|
121
|
+
// Capture the function too: later mutation of application config must not change this host.
|
|
122
|
+
// Erase inference only after capturing its schema; every invocation validates and coerces below.
|
|
123
|
+
const resolve = config.resolve as SandboxConfig["resolve"]
|
|
124
|
+
const authorize = config.auth?.authorize.bind(config.auth)
|
|
125
|
+
deepFreeze(params)
|
|
126
|
+
return Object.freeze({
|
|
127
|
+
params,
|
|
128
|
+
...(authorize ? { auth: Object.freeze({ authorize }) } : {}),
|
|
129
|
+
resolve: async ({ params: input, sixb }: SandboxResolveContext) => {
|
|
130
|
+
const binding = normalizeParams(ontology.getValueTypesById(), params, input, {
|
|
131
|
+
kind: "sandbox",
|
|
132
|
+
id: "sandboxes",
|
|
133
|
+
path: "sandbox",
|
|
134
|
+
})
|
|
135
|
+
const typed = coerceParamsToTyped(params, binding, ontology.getValueTypesById())
|
|
136
|
+
if (!resolve) return structuredClone(environment)
|
|
137
|
+
const resolved = captureEnvironment(await resolve({ params: typed, sixb }))
|
|
138
|
+
return {
|
|
139
|
+
...structuredClone(environment),
|
|
140
|
+
...resolved,
|
|
141
|
+
env: { ...environment.env, ...resolved.env },
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
})
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/** Capture declarative data only; never retain caller-owned objects or include values in errors. */
|
|
148
|
+
export function captureEnvironment(value: unknown): SandboxEnvironment {
|
|
149
|
+
if (
|
|
150
|
+
!isPlainRecord(value) ||
|
|
151
|
+
Object.keys(value).some((key) => !["source", "setup", "env", "network"].includes(key))
|
|
152
|
+
) {
|
|
153
|
+
return fail("environment")
|
|
154
|
+
}
|
|
155
|
+
if (value.source !== undefined) validateSource(value.source)
|
|
156
|
+
if (value.setup !== undefined) validateSetup(value.setup)
|
|
157
|
+
if (value.env !== undefined) validateEnv(value.env)
|
|
158
|
+
if (value.network !== undefined) validateNetwork(value.network)
|
|
159
|
+
// Every field and discriminant has been checked above; return only an isolated snapshot.
|
|
160
|
+
return structuredClone(value) as SandboxEnvironment
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function fail(field: string): never {
|
|
164
|
+
throw new SandboxError(`[Sixb] Invalid sandbox ${field}.`)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function validateSource(source: unknown): void {
|
|
168
|
+
if (
|
|
169
|
+
!isPlainRecord(source) ||
|
|
170
|
+
source.type !== "git" ||
|
|
171
|
+
typeof source.url !== "string" ||
|
|
172
|
+
Object.keys(source).some((key) => !["type", "url", "revision", "access"].includes(key))
|
|
173
|
+
) {
|
|
174
|
+
fail("source")
|
|
175
|
+
}
|
|
176
|
+
const url = parseUrl(source.url, "source URL")
|
|
177
|
+
if (url.protocol !== "https:" || url.username || url.password || url.search || url.hash) {
|
|
178
|
+
fail("source URL: expected credential-free HTTPS")
|
|
179
|
+
}
|
|
180
|
+
if (
|
|
181
|
+
source.revision !== undefined &&
|
|
182
|
+
(typeof source.revision !== "string" ||
|
|
183
|
+
!source.revision.trim() ||
|
|
184
|
+
source.revision.startsWith("-") ||
|
|
185
|
+
/[\x00-\x1f]/.test(source.revision))
|
|
186
|
+
) {
|
|
187
|
+
fail("source revision")
|
|
188
|
+
}
|
|
189
|
+
if (source.access !== undefined && source.access !== "read" && source.access !== "write") {
|
|
190
|
+
fail("source access")
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
function validateSetup(setup: unknown): void {
|
|
195
|
+
if (
|
|
196
|
+
!Array.isArray(setup) ||
|
|
197
|
+
setup.some(
|
|
198
|
+
(command) => typeof command !== "string" || !command.trim() || command.includes("\0")
|
|
199
|
+
)
|
|
200
|
+
) {
|
|
201
|
+
fail("setup")
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
function validateEnv(env: unknown): void {
|
|
206
|
+
if (
|
|
207
|
+
!isPlainRecord(env) ||
|
|
208
|
+
Object.entries(env).some(
|
|
209
|
+
([key, entry]) =>
|
|
210
|
+
!key || /[=\0]/.test(key) || typeof entry !== "string" || entry.includes("\0")
|
|
211
|
+
)
|
|
212
|
+
) {
|
|
213
|
+
fail("env")
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
function validateNetwork(network: unknown): void {
|
|
218
|
+
if (!isPlainRecord(network)) fail("network")
|
|
219
|
+
if (network.mode === "restricted") {
|
|
220
|
+
if (
|
|
221
|
+
Object.keys(network).some((key) => key !== "mode" && key !== "allow") ||
|
|
222
|
+
!Array.isArray(network.allow)
|
|
223
|
+
) {
|
|
224
|
+
fail("network")
|
|
225
|
+
}
|
|
226
|
+
for (const target of network.allow) validateNetworkTarget(target)
|
|
227
|
+
return
|
|
228
|
+
}
|
|
229
|
+
if (
|
|
230
|
+
(network.mode !== "none" && network.mode !== "all") ||
|
|
231
|
+
Object.keys(network).some((key) => key !== "mode")
|
|
232
|
+
) {
|
|
233
|
+
fail("network")
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function validateNetworkTarget(target: unknown): void {
|
|
238
|
+
if (
|
|
239
|
+
!isPlainRecord(target) ||
|
|
240
|
+
typeof target.name !== "string" ||
|
|
241
|
+
!target.name.trim() ||
|
|
242
|
+
typeof target.origin !== "string" ||
|
|
243
|
+
Object.keys(target).some((key) => key !== "name" && key !== "origin")
|
|
244
|
+
) {
|
|
245
|
+
fail("network target")
|
|
246
|
+
}
|
|
247
|
+
const url = parseUrl(target.origin, "network origin")
|
|
248
|
+
if (!["http:", "https:"].includes(url.protocol) || url.origin !== target.origin) {
|
|
249
|
+
fail("network origin")
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function parseUrl(value: string, field: string): URL {
|
|
254
|
+
try {
|
|
255
|
+
return new URL(value)
|
|
256
|
+
} catch {
|
|
257
|
+
return fail(field)
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
function deepFreeze(value: object, seen = new Set<object>()): void {
|
|
262
|
+
if (seen.has(value)) return
|
|
263
|
+
seen.add(value)
|
|
264
|
+
for (const child of Object.values(value)) {
|
|
265
|
+
if (child !== null && typeof child === "object") deepFreeze(child, seen)
|
|
266
|
+
}
|
|
267
|
+
Object.freeze(value)
|
|
268
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { posix } from "node:path"
|
|
2
|
+
import type { ParamsConfig } from "../shared/params/types"
|
|
3
|
+
import type { SandboxConfig } from "./configuration"
|
|
4
|
+
import { captureEnvironment, type SandboxEnvironment } from "./configuration"
|
|
5
|
+
import { SandboxError } from "./errors"
|
|
6
|
+
import type { CreateSandboxOptions, Sandbox } from "./sandbox"
|
|
7
|
+
|
|
8
|
+
/** Select and validate before provisioning. Only the execution runtime may resolve a recipe. */
|
|
9
|
+
export function sandboxCreationEnvironment<TParams extends ParamsConfig>(
|
|
10
|
+
configuration: SandboxConfig<TParams>,
|
|
11
|
+
options: CreateSandboxOptions
|
|
12
|
+
): Pick<SandboxEnvironment, "source" | "setup"> {
|
|
13
|
+
if (options.environment === undefined && configuration.resolve !== undefined) {
|
|
14
|
+
throw new SandboxError(
|
|
15
|
+
"[Sixb] Dynamic sandbox configuration requires an execution-resolved environment."
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
const environment = captureEnvironment(
|
|
19
|
+
options.environment !== undefined
|
|
20
|
+
? options.environment
|
|
21
|
+
: {
|
|
22
|
+
...(configuration.source === undefined ? {} : { source: configuration.source }),
|
|
23
|
+
...(configuration.setup === undefined ? {} : { setup: configuration.setup }),
|
|
24
|
+
}
|
|
25
|
+
)
|
|
26
|
+
if (environment.env !== undefined || environment.network !== undefined) {
|
|
27
|
+
throw new SandboxError(
|
|
28
|
+
"[Sixb] Pass env and network as sandbox session options, not environment."
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
if (environment.source) {
|
|
32
|
+
if (
|
|
33
|
+
(configuration.auth !== undefined || environment.source.access === "write") &&
|
|
34
|
+
!options.requestCredentials?.length
|
|
35
|
+
) {
|
|
36
|
+
throw new SandboxError(
|
|
37
|
+
"[Sixb] Sandbox source authentication requires execution-prepared request credentials."
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
const network = options.network ?? configuration.network ?? { mode: "none" }
|
|
41
|
+
const origin = new URL(environment.source.url).origin
|
|
42
|
+
if (
|
|
43
|
+
network.mode === "none" ||
|
|
44
|
+
(network.mode === "restricted" && !network.allow.some((target) => target.origin === origin))
|
|
45
|
+
) {
|
|
46
|
+
throw new SandboxError("[Sixb] Sandbox network policy denies the source origin.")
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
options.signal?.throwIfAborted()
|
|
50
|
+
return environment
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Select the same project directory on creation and resume without touching saved files. */
|
|
54
|
+
export function sandboxProjectDirectory(session: Sandbox, hasSource: boolean): Sandbox {
|
|
55
|
+
if (!hasSource) return session
|
|
56
|
+
const workingDirectory = posix.join(session.workingDirectory, "repository")
|
|
57
|
+
return {
|
|
58
|
+
id: session.id,
|
|
59
|
+
provider: session.provider,
|
|
60
|
+
get status() {
|
|
61
|
+
return session.status
|
|
62
|
+
},
|
|
63
|
+
workingDirectory,
|
|
64
|
+
...(session.setRequestCredentials
|
|
65
|
+
? { setRequestCredentials: session.setRequestCredentials.bind(session) }
|
|
66
|
+
: {}),
|
|
67
|
+
runCommand: (command, args, options) =>
|
|
68
|
+
session.runCommand(command, args, { ...options, cwd: options?.cwd ?? workingDirectory }),
|
|
69
|
+
writeFiles: (files) =>
|
|
70
|
+
session.writeFiles(
|
|
71
|
+
files.map((file) => ({
|
|
72
|
+
...file,
|
|
73
|
+
path: posix.isAbsolute(file.path) ? file.path : posix.join(workingDirectory, file.path),
|
|
74
|
+
}))
|
|
75
|
+
),
|
|
76
|
+
stop: () => session.stop(),
|
|
77
|
+
destroy: () => session.destroy(),
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Provider-side initialization, after the session network/credentials have been applied.
|
|
82
|
+
* Call only on fresh creation. The caller owns cleanup if any command fails.
|
|
83
|
+
*/
|
|
84
|
+
export async function initializeSandboxEnvironment(
|
|
85
|
+
session: Sandbox,
|
|
86
|
+
environment: Pick<SandboxEnvironment, "source" | "setup">,
|
|
87
|
+
signal?: AbortSignal
|
|
88
|
+
): Promise<Sandbox> {
|
|
89
|
+
environment = captureEnvironment(environment)
|
|
90
|
+
const run = async (sandbox: Sandbox, command: string, args: readonly string[]) => {
|
|
91
|
+
signal?.throwIfAborted()
|
|
92
|
+
const result = await sandbox.runCommand(command, args, { timeout: 120_000, signal })
|
|
93
|
+
if (result.exitCode !== 0 || result.timedOut) {
|
|
94
|
+
throw new SandboxError("[Sixb] Sandbox environment initialization failed.")
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
signal?.throwIfAborted()
|
|
98
|
+
const sandbox = sandboxProjectDirectory(session, environment.source !== undefined)
|
|
99
|
+
if (environment.source) {
|
|
100
|
+
await run(session, "git", ["clone", "--", environment.source.url, "repository"])
|
|
101
|
+
if (environment.source.revision) {
|
|
102
|
+
await run(sandbox, "git", ["checkout", environment.source.revision, "--"])
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
for (const command of environment.setup ?? []) await run(sandbox, "bash", ["-lc", command])
|
|
106
|
+
return sandbox
|
|
107
|
+
}
|
package/src/sandboxes/errors.ts
CHANGED
|
@@ -6,7 +6,7 @@ export class SandboxError extends Error {
|
|
|
6
6
|
readonly name: string = "SandboxError"
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
/**
|
|
9
|
+
/** Confirmed missing/expired state. Never use for transport, authorization or session setup errors. */
|
|
10
10
|
export class SandboxStateUnavailableError extends SandboxError {
|
|
11
11
|
override readonly name = "SandboxStateUnavailableError"
|
|
12
12
|
}
|
package/src/sandboxes/index.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
export type { InferParams, ParamsConfig } from "../shared/params/types"
|
|
2
|
+
export type { SandboxSourceAuth, SandboxSourceCredentials } from "./auth"
|
|
3
|
+
export { sandboxConfig } from "./config"
|
|
4
|
+
export type {
|
|
5
|
+
SandboxConfig,
|
|
6
|
+
SandboxEnvironment,
|
|
7
|
+
SandboxResolveContext,
|
|
8
|
+
SandboxSource,
|
|
9
|
+
} from "./configuration"
|
|
10
|
+
export {
|
|
11
|
+
initializeSandboxEnvironment,
|
|
12
|
+
sandboxCreationEnvironment,
|
|
13
|
+
sandboxProjectDirectory,
|
|
14
|
+
} from "./environment"
|
|
1
15
|
export {
|
|
2
16
|
SandboxError,
|
|
3
17
|
SandboxIsolationUnavailableError,
|
|
@@ -17,6 +31,7 @@ export type {
|
|
|
17
31
|
SandboxFileRecord,
|
|
18
32
|
SandboxNetworkPolicy,
|
|
19
33
|
SandboxNetworkTarget,
|
|
34
|
+
SandboxRequestCredential,
|
|
20
35
|
SandboxSessionOptions,
|
|
21
36
|
SandboxStatus,
|
|
22
37
|
} from "./sandbox"
|
package/src/sandboxes/sandbox.ts
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
* SandboxFactory.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import type { ParamsConfig } from "../shared/params/types"
|
|
10
|
+
import type { SandboxConfig, SandboxEnvironment } from "./configuration"
|
|
11
|
+
|
|
9
12
|
export type SandboxStatus = "running" | "stopped" | "failed"
|
|
10
13
|
|
|
11
14
|
/**
|
|
@@ -13,7 +16,10 @@ export type SandboxStatus = "running" | "stopped" | "failed"
|
|
|
13
16
|
* default set at factory.create(...).
|
|
14
17
|
*/
|
|
15
18
|
export interface RunCommandOptions {
|
|
16
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Working directory for this call. Defaults to the sandbox's workingDirectory;
|
|
21
|
+
* relative paths resolve against it, while absolute paths override it.
|
|
22
|
+
*/
|
|
17
23
|
readonly cwd?: string
|
|
18
24
|
/** Merged on top of sandbox-level env. Per-call wins on collision. */
|
|
19
25
|
readonly env?: Readonly<Record<string, string>>
|
|
@@ -72,8 +78,20 @@ export interface SandboxNetworkTarget {
|
|
|
72
78
|
readonly origin: string
|
|
73
79
|
}
|
|
74
80
|
|
|
81
|
+
/** Host-only credentials injected outside the guest into one exact HTTPS request target.
|
|
82
|
+
* This selects authenticated requests, not the sandbox's general egress allowlist.
|
|
83
|
+
*/
|
|
84
|
+
export interface SandboxRequestCredential {
|
|
85
|
+
readonly origin: string
|
|
86
|
+
readonly path: string
|
|
87
|
+
readonly method: "GET" | "POST"
|
|
88
|
+
readonly headers: { readonly Authorization: string }
|
|
89
|
+
}
|
|
90
|
+
|
|
75
91
|
/** Current execution defaults, supplied on both creation and resume, never recovered from files. */
|
|
76
92
|
export interface SandboxSessionOptions {
|
|
93
|
+
/** Apply outside the guest before source/setup or resumed commands. Reject if unsupported. */
|
|
94
|
+
readonly requestCredentials?: readonly SandboxRequestCredential[]
|
|
77
95
|
readonly workingDirectory?: string
|
|
78
96
|
readonly env?: Readonly<Record<string, string>>
|
|
79
97
|
readonly timeout?: number
|
|
@@ -82,6 +100,10 @@ export interface SandboxSessionOptions {
|
|
|
82
100
|
|
|
83
101
|
/** Options accepted by every SandboxFactory.create. */
|
|
84
102
|
export interface CreateSandboxOptions extends SandboxSessionOptions {
|
|
103
|
+
/** Cancel initialization; a provider request already in flight may still finish. */
|
|
104
|
+
readonly signal?: AbortSignal
|
|
105
|
+
/** Replaces static source/setup, including {} to skip both. Required for dynamic recipes. */
|
|
106
|
+
readonly environment?: Pick<SandboxEnvironment, "source" | "setup">
|
|
85
107
|
/** Create new named state; reject an existing name or unsupported persistence before provisioning. */
|
|
86
108
|
readonly persistence?: { readonly name: string }
|
|
87
109
|
}
|
|
@@ -98,6 +120,14 @@ export interface Sandbox {
|
|
|
98
120
|
readonly status: SandboxStatus
|
|
99
121
|
readonly workingDirectory: string
|
|
100
122
|
|
|
123
|
+
/** Optional secure injection capability. Replaces all credentials on this session only.
|
|
124
|
+
* An empty list removes injection. Secrets must never enter guest files, env or snapshots.
|
|
125
|
+
* Must not resume a stopped session or change defaults inherited by future sessions.
|
|
126
|
+
*/
|
|
127
|
+
readonly setRequestCredentials?: (
|
|
128
|
+
credentials: readonly SandboxRequestCredential[]
|
|
129
|
+
) => Promise<void>
|
|
130
|
+
|
|
101
131
|
runCommand(
|
|
102
132
|
command: string,
|
|
103
133
|
args?: readonly string[],
|
|
@@ -135,18 +165,26 @@ export interface Sandbox {
|
|
|
135
165
|
* Callers own namespacing and must serialize the entire create/resume/use/stop/destroy lifecycle.
|
|
136
166
|
* Credentials and current authority must be supplied again, never inferred from saved files.
|
|
137
167
|
*/
|
|
138
|
-
export interface SandboxFactory {
|
|
168
|
+
export interface SandboxFactory<in out TParams extends ParamsConfig = ParamsConfig> {
|
|
169
|
+
/** Supports initial and renewable host-only credentials on named persistent sessions. */
|
|
170
|
+
readonly supportsRequestCredentials?: boolean
|
|
171
|
+
/** Common host-side environment recipe. Never a discovered Agent definition. */
|
|
172
|
+
readonly configuration?: SandboxConfig<TParams>
|
|
139
173
|
/** Create an ephemeral sandbox unless persistence is requested. Existing names must fail,
|
|
140
|
-
* never attach or overwrite.
|
|
174
|
+
* never attach or overwrite. Apply the selected source/setup once, after session settings.
|
|
175
|
+
* Dynamic resolution and source authorization belong to the caller, never the provider.
|
|
176
|
+
* Unsupported providers must reject persistence before provisioning.
|
|
141
177
|
* A persistent handle targets one session; operations must not automatically resume another VM.
|
|
142
178
|
*/
|
|
143
179
|
create(options?: CreateSandboxOptions): Promise<Sandbox>
|
|
144
180
|
/**
|
|
145
181
|
* Present only when named persistent creation and resume are supported.
|
|
146
182
|
* Resume an existing, stopped sandbox. Missing/expired state throws SandboxStateUnavailableError;
|
|
147
|
-
* it must never create an empty replacement.
|
|
183
|
+
* it must never create an empty replacement. Transport/auth/setup errors must not be classified
|
|
184
|
+
* as missing state. An already running sandbox must be rejected.
|
|
148
185
|
* Returns a handle bound to the resumed session, with no automatic resume on use.
|
|
149
186
|
* Runtime options must be provided again; no creation settings or persistence option are accepted.
|
|
187
|
+
* Never clone or replay setup on resume.
|
|
150
188
|
*/
|
|
151
189
|
resume?(name: string, options?: ResumeSandboxOptions): Promise<Sandbox>
|
|
152
190
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { SchemaOrRef } from "../../ontology"
|
|
2
|
+
import type { QuantitativeTypeId } from "../../ontology/units"
|
|
3
|
+
import type { ParamConfig } from "./types"
|
|
4
|
+
|
|
5
|
+
export interface ParamOptions {
|
|
6
|
+
readonly description?: string
|
|
7
|
+
readonly semanticType?: QuantitativeTypeId
|
|
8
|
+
readonly nullable?: boolean
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type FieldFromOptions<TOptions, TKey extends string, TFallback> =
|
|
12
|
+
TOptions extends Record<TKey, infer TValue>
|
|
13
|
+
? { [K in TKey]: TValue }
|
|
14
|
+
: { [K in TKey]?: TFallback }
|
|
15
|
+
|
|
16
|
+
type ParamResult<
|
|
17
|
+
TSchema extends SchemaOrRef,
|
|
18
|
+
TRequired extends boolean,
|
|
19
|
+
TOptions extends ParamOptions | undefined,
|
|
20
|
+
> = {
|
|
21
|
+
schema: TSchema
|
|
22
|
+
required: TRequired
|
|
23
|
+
} & FieldFromOptions<TOptions, "description", string> &
|
|
24
|
+
FieldFromOptions<TOptions, "semanticType", QuantitativeTypeId> &
|
|
25
|
+
FieldFromOptions<TOptions, "nullable", boolean>
|
|
26
|
+
|
|
27
|
+
/** Declare one required parameter. */
|
|
28
|
+
export function param<
|
|
29
|
+
const TSchema extends SchemaOrRef,
|
|
30
|
+
const TOptions extends ParamOptions | undefined = undefined,
|
|
31
|
+
>(schema: TSchema, options?: TOptions): ParamResult<TSchema, true, TOptions> {
|
|
32
|
+
const result: ParamConfig & { required: true } = {
|
|
33
|
+
schema,
|
|
34
|
+
required: true,
|
|
35
|
+
...(options?.description !== undefined ? { description: options.description } : {}),
|
|
36
|
+
...(options?.semanticType !== undefined ? { semanticType: options.semanticType } : {}),
|
|
37
|
+
...(options?.nullable !== undefined ? { nullable: options.nullable } : {}),
|
|
38
|
+
}
|
|
39
|
+
return result as ParamResult<TSchema, true, TOptions>
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Derive an optional parameter without changing its schema or metadata. */
|
|
43
|
+
export function optional<const TParam extends ParamConfig>(
|
|
44
|
+
paramConfig: TParam
|
|
45
|
+
): Omit<TParam, "required"> & { readonly required: false } {
|
|
46
|
+
return {
|
|
47
|
+
...paramConfig,
|
|
48
|
+
required: false,
|
|
49
|
+
}
|
|
50
|
+
}
|