@sixb/core 0.1.16 → 0.1.18
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/index.js +30 -27
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +1 -1
- package/dist/actions/types/context.d.ts +2 -2
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +6 -2
- package/dist/actions/worker.js.map +3 -3
- package/dist/agents/adapters.d.ts +7 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +7 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context/entries.d.ts +10 -1
- package/dist/agents/context/entries.d.ts.map +1 -1
- package/dist/agents/context/index.d.ts +1 -1
- package/dist/agents/context/index.d.ts.map +1 -1
- package/dist/agents/context/index.js +4 -2
- package/dist/agents/context/index.js.map +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +54 -46
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +8 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/request.d.ts +19 -5
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts +41 -0
- package/dist/agents/skills.d.ts.map +1 -0
- package/dist/agents/streams/index.js +1 -1
- package/dist/agents/streams/internal.js +1 -1
- package/dist/agents/types.d.ts +33 -4
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/index.js +9 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/types.d.ts +6 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +5 -3
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/download-urls.d.ts +41 -0
- package/dist/blob-storage/download-urls.d.ts.map +1 -0
- package/dist/blob-storage/execution.d.ts +9 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/file-content.d.ts +18 -0
- package/dist/blob-storage/file-content.d.ts.map +1 -0
- package/dist/blob-storage/index.d.ts +1 -1
- package/dist/blob-storage/index.d.ts.map +1 -1
- package/dist/blob-storage/index.js +6 -4
- package/dist/blob-storage/index.js.map +1 -1
- package/dist/blob-storage/internal.d.ts +4 -0
- package/dist/blob-storage/internal.d.ts.map +1 -0
- package/dist/blob-storage/internal.js +23 -0
- package/dist/blob-storage/internal.js.map +9 -0
- package/dist/blob-storage/media-type.d.ts +8 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -0
- package/dist/blob-storage/types.d.ts +12 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/blob-storage/validation.d.ts +6 -0
- package/dist/blob-storage/validation.d.ts.map +1 -1
- package/dist/bootstrap/agent-context.d.ts +33 -0
- package/dist/bootstrap/agent-context.d.ts.map +1 -0
- package/dist/bootstrap/discovery.d.ts +23 -3
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +287 -75
- package/dist/bootstrap/index.js.map +4 -3
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-kttr5ftm.js → chunk-1b1f2d5f.js} +23 -6
- package/dist/chunk-1b1f2d5f.js.map +12 -0
- package/dist/{chunk-hgqpcmyr.js → chunk-1hqwggsn.js} +47 -19
- package/dist/chunk-1hqwggsn.js.map +12 -0
- package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
- package/dist/chunk-1sr8ryzk.js.map +11 -0
- package/dist/{chunk-4gmng3vf.js → chunk-22v5bpz3.js} +1 -1
- package/dist/{chunk-tnvafr7g.js → chunk-29yx306f.js} +124 -9
- package/dist/chunk-29yx306f.js.map +22 -0
- package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
- package/dist/chunk-3zxk45er.js +152 -0
- package/dist/chunk-3zxk45er.js.map +11 -0
- package/dist/{chunk-gmdvns8f.js → chunk-48e3cn2d.js} +2 -2
- package/dist/{chunk-jgwb25gc.js → chunk-4as3wt1c.js} +13 -5
- package/dist/chunk-4as3wt1c.js.map +12 -0
- package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
- package/dist/chunk-6gmfggss.js.map +10 -0
- package/dist/{chunk-2xvgy3x5.js → chunk-6h5m9xjx.js} +43 -415
- package/dist/{chunk-2xvgy3x5.js.map → chunk-6h5m9xjx.js.map} +7 -11
- package/dist/{chunk-cq44v1a6.js → chunk-7hpdd6r9.js} +3 -3
- package/dist/{chunk-f85hpqnm.js → chunk-99nd4rc1.js} +3 -3
- package/dist/{chunk-f85hpqnm.js.map → chunk-99nd4rc1.js.map} +3 -3
- package/dist/chunk-b9affek3.js +261 -0
- package/dist/chunk-b9affek3.js.map +12 -0
- package/dist/{chunk-zvmr2hqk.js → chunk-bs7sqkre.js} +10 -4
- package/dist/chunk-bs7sqkre.js.map +12 -0
- package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
- package/dist/{chunk-667x4drs.js → chunk-d0eb5yy6.js} +143 -7
- package/dist/chunk-d0eb5yy6.js.map +14 -0
- package/dist/chunk-d62kjtbg.js.map +2 -2
- package/dist/{chunk-gkxsenvp.js → chunk-de4z2bj6.js} +31 -7
- package/dist/{chunk-gkxsenvp.js.map → chunk-de4z2bj6.js.map} +5 -4
- package/dist/{chunk-mdnw7nj8.js → chunk-dnmadg9k.js} +35 -10
- package/dist/chunk-dnmadg9k.js.map +15 -0
- package/dist/chunk-enpsx8k5.js +127 -0
- package/dist/chunk-enpsx8k5.js.map +10 -0
- package/dist/{chunk-xnx96gfy.js → chunk-ere85b8y.js} +17 -8
- package/dist/chunk-ere85b8y.js.map +15 -0
- package/dist/{chunk-k4kkp58d.js → chunk-ewqa58h9.js} +12 -2
- package/dist/chunk-ewqa58h9.js.map +11 -0
- package/dist/{chunk-7g2gjvah.js → chunk-ex496vct.js} +1 -1
- package/dist/{chunk-nvymebc1.js → chunk-f1zxad2t.js} +1 -1
- package/dist/{chunk-3q7z9hd4.js → chunk-fe52eczz.js} +483 -101
- package/dist/chunk-fe52eczz.js.map +49 -0
- package/dist/{chunk-8x74221e.js → chunk-fx93hd2n.js} +79 -32
- package/dist/chunk-fx93hd2n.js.map +20 -0
- package/dist/{chunk-39tqv9hz.js → chunk-gc4ntf7d.js} +6 -7
- package/dist/{chunk-39tqv9hz.js.map → chunk-gc4ntf7d.js.map} +3 -4
- package/dist/chunk-h8teetr0.js +9 -0
- package/dist/chunk-h8teetr0.js.map +10 -0
- package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
- package/dist/chunk-hkc3jct7.js.map +10 -0
- package/dist/chunk-hn2r7z41.js.map +1 -1
- package/dist/{chunk-h044jb97.js → chunk-htr6wjmv.js} +282 -58
- package/dist/chunk-htr6wjmv.js.map +19 -0
- package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
- package/dist/chunk-jhm3zsa7.js.map +12 -0
- package/dist/{chunk-chdg6eqq.js → chunk-k6hrnf35.js} +5 -5
- package/dist/chunk-k6hrnf35.js.map +10 -0
- package/dist/{chunk-a0073121.js → chunk-kpx7jrmn.js} +3 -1
- package/dist/chunk-kpx7jrmn.js.map +12 -0
- package/dist/{chunk-b9y8hcm2.js → chunk-mfs23znk.js} +1 -1
- package/dist/{chunk-kvysp909.js → chunk-ny3xyvcn.js} +32 -19
- package/dist/chunk-ny3xyvcn.js.map +17 -0
- package/dist/{chunk-h4138ww2.js → chunk-p0dqwj3n.js} +450 -799
- package/dist/chunk-p0dqwj3n.js.map +49 -0
- package/dist/{chunk-f72rbvsb.js → chunk-p844e0rn.js} +23 -8
- package/dist/chunk-p844e0rn.js.map +19 -0
- package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
- package/dist/chunk-pfp1txq2.js.map +11 -0
- package/dist/chunk-pqajwytd.js.map +3 -3
- package/dist/{chunk-mr60an99.js → chunk-qczk96d9.js} +22 -2
- package/dist/{chunk-mr60an99.js.map → chunk-qczk96d9.js.map} +3 -3
- package/dist/{chunk-69kt9q43.js → chunk-qkbx3tf6.js} +17 -128
- package/dist/{chunk-69kt9q43.js.map → chunk-qkbx3tf6.js.map} +6 -7
- package/dist/{chunk-h866d223.js → chunk-qkvz64nd.js} +2 -2
- package/dist/{chunk-vsvrv7n8.js → chunk-qmnnhde6.js} +4 -8
- package/dist/{chunk-vsvrv7n8.js.map → chunk-qmnnhde6.js.map} +3 -3
- package/dist/{chunk-6z1q7j19.js → chunk-qq90g05n.js} +1128 -782
- package/dist/chunk-qq90g05n.js.map +66 -0
- package/dist/{chunk-40qb8wpe.js → chunk-qxvp5epv.js} +84 -29
- package/dist/{chunk-40qb8wpe.js.map → chunk-qxvp5epv.js.map} +10 -9
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-s3csryxe.js → chunk-rj69qcrd.js} +8 -2
- package/dist/chunk-rj69qcrd.js.map +11 -0
- package/dist/{chunk-tkdbge6v.js → chunk-rt9p8m9t.js} +1 -1
- package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
- package/dist/chunk-rz53yb4v.js.map +14 -0
- package/dist/{chunk-a7ne02hk.js → chunk-s4jhg8a3.js} +351 -296
- package/dist/chunk-s4jhg8a3.js.map +15 -0
- package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
- package/dist/chunk-s54c868q.js.map +12 -0
- package/dist/{chunk-dsv8kdgk.js → chunk-tffvfy6s.js} +8 -7
- package/dist/{chunk-dsv8kdgk.js.map → chunk-tffvfy6s.js.map} +3 -3
- package/dist/{chunk-sbcm1b92.js → chunk-v6xpd60t.js} +3 -3
- package/dist/{chunk-nj0020ay.js → chunk-vgk3hknm.js} +1 -1
- package/dist/{chunk-qnd7ehe5.js → chunk-vx2yp45y.js} +2 -2
- package/dist/{chunk-vjqt7q3a.js → chunk-vz3gc1tm.js} +607 -45
- package/dist/chunk-vz3gc1tm.js.map +41 -0
- package/dist/{chunk-g4rbm4a6.js → chunk-wt4szfec.js} +379 -331
- package/dist/chunk-wt4szfec.js.map +14 -0
- package/dist/chunk-xt1zt7gv.js +471 -0
- package/dist/chunk-xt1zt7gv.js.map +13 -0
- package/dist/{chunk-swxzncrv.js → chunk-y05543x6.js} +51 -8
- package/dist/{chunk-swxzncrv.js.map → chunk-y05543x6.js.map} +5 -5
- package/dist/{chunk-zdkcdshk.js → chunk-y9jmd7e5.js} +41 -3
- package/dist/{chunk-zdkcdshk.js.map → chunk-y9jmd7e5.js.map} +4 -3
- package/dist/{chunk-nkbev3tr.js → chunk-yv9czyfr.js} +3 -3
- package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
- package/dist/chunk-yw9pyg66.js.map +11 -0
- package/dist/{chunk-cxj8y8t0.js → chunk-za5yd58j.js} +2 -2
- package/dist/{chunk-zb47r1c8.js → chunk-zb77kjth.js} +3 -3
- package/dist/{chunk-dp7yk20b.js → chunk-zxawp1n2.js} +1 -1
- package/dist/datasets/builders.d.ts +12 -1
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +27 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -1
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/types.d.ts +2 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +5 -0
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +10 -5
- package/dist/datasets/write.js.map +1 -1
- package/dist/edits/properties.d.ts.map +1 -1
- package/dist/events/execution.d.ts +2 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/types/objects.d.ts +5 -0
- package/dist/events/types/objects.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +10 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +49 -43
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +9 -2
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +45 -41
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +46 -42
- package/dist/execution/request.js.map +2 -2
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +16 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -71
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +5 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +1 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +8 -5
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/types.d.ts +26 -0
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +5 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/maintenance/types.d.ts +1 -4
- package/dist/maintenance/types.d.ts.map +1 -1
- package/dist/materialization/event-envelopes.d.ts +20 -0
- package/dist/materialization/event-envelopes.d.ts.map +1 -0
- package/dist/materialization/events.d.ts +29 -3
- package/dist/materialization/events.d.ts.map +1 -1
- package/dist/materialization/index.d.ts +4 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +9 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -10
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/effective/build-events.d.ts +5 -21
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- package/dist/materializer/effective/vector-indexing.d.ts +2 -3
- package/dist/materializer/effective/vector-indexing.d.ts.map +1 -1
- package/dist/materializer/effective/vectors.d.ts +2 -3
- package/dist/materializer/effective/vectors.d.ts.map +1 -1
- package/dist/materializer/execution/scope.d.ts +1 -11
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- package/dist/materializer/execution/work-executor.d.ts +5 -7
- package/dist/materializer/execution/work-executor.d.ts.map +1 -1
- package/dist/materializer/execution/work-records.d.ts +1 -3
- package/dist/materializer/execution/work-records.d.ts.map +1 -1
- package/dist/materializer/index.js +35 -33
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replace.d.ts.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +8 -11
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/shared/batching.d.ts +5 -0
- package/dist/materializer/shared/batching.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -8
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/audio/catalog.d.ts +20 -0
- package/dist/models/audio/catalog.d.ts.map +1 -0
- package/dist/models/audio/errors.d.ts +8 -0
- package/dist/models/audio/errors.d.ts.map +1 -0
- package/dist/models/audio/file.d.ts +9 -0
- package/dist/models/audio/file.d.ts.map +1 -0
- package/dist/models/audio/runtime.d.ts +8 -0
- package/dist/models/audio/runtime.d.ts.map +1 -0
- package/dist/models/audio/types.d.ts +60 -0
- package/dist/models/audio/types.d.ts.map +1 -0
- package/dist/models/catalog.d.ts +24 -2
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/definitions.d.ts +1 -1
- package/dist/models/definitions.d.ts.map +1 -1
- package/dist/models/events.d.ts +3 -0
- package/dist/models/events.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +6 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.js +27 -24
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-admission.d.ts +6 -1
- package/dist/models/execution/model-call-admission.d.ts.map +1 -1
- package/dist/models/execution/model-call-limits.d.ts.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +4 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution/reranking.d.ts +4 -0
- package/dist/models/execution/reranking.d.ts.map +1 -0
- package/dist/models/execution/usage.d.ts.map +1 -1
- package/dist/models/execution.d.ts +2 -1
- 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 +7 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +6 -2
- package/dist/models/index.js.map +1 -1
- package/dist/models/language-model.d.ts +6 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/models/pricing.d.ts +2 -2
- package/dist/models/pricing.d.ts.map +1 -1
- package/dist/models/reranking-model.d.ts +49 -0
- package/dist/models/reranking-model.d.ts.map +1 -0
- package/dist/objects/context/index.d.ts +1 -1
- package/dist/objects/context/index.d.ts.map +1 -1
- package/dist/objects/context/types.d.ts +6 -0
- package/dist/objects/context/types.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +2 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +31 -27
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +41 -0
- package/dist/objects/property-clearance.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +5 -1
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.d.ts +1 -1
- package/dist/objects/query/index.d.ts.map +1 -1
- package/dist/objects/query/index.js +27 -24
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +8 -1
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/planner.d.ts +1 -1
- package/dist/objects/query/planner.d.ts.map +1 -1
- package/dist/objects/query/primary-id.d.ts +7 -0
- package/dist/objects/query/primary-id.d.ts.map +1 -0
- package/dist/objects/query/reranking-executor.d.ts +13 -0
- package/dist/objects/query/reranking-executor.d.ts.map +1 -0
- package/dist/objects/query/reranking-limits.d.ts +3 -0
- package/dist/objects/query/reranking-limits.d.ts.map +1 -0
- package/dist/objects/query/reranking-query.d.ts +4 -0
- package/dist/objects/query/reranking-query.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts +10 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/file-handle.d.ts +6 -0
- package/dist/objects/sdk/file-handle.d.ts.map +1 -0
- package/dist/objects/sdk/object-handle.d.ts +2 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -0
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -0
- package/dist/objects/sdk/query-builder.d.ts.map +1 -1
- package/dist/objects/sdk/query-executor.d.ts +2 -2
- package/dist/objects/sdk/query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/vectors/indexing-dispatch.d.ts +21 -0
- package/dist/objects/vectors/indexing-dispatch.d.ts.map +1 -0
- package/dist/objects/vectors/query.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +12 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +35 -0
- package/dist/ontology/docs-markdown.d.ts.map +1 -0
- package/dist/ontology/docs.d.ts +50 -0
- package/dist/ontology/docs.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +1 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +7 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +19 -0
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +3 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +276 -3
- package/dist/ontology/internal.js.map +4 -3
- package/dist/ontology/query-capabilities.d.ts +1 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +8 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +25 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +7 -0
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +29 -26
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +27 -24
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.d.ts +4 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +3 -0
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +4 -0
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +11 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +3 -1
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +14 -2
- 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 +1 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +32 -27
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/locale.d.ts +9 -0
- package/dist/runtime/locale.d.ts.map +1 -0
- package/dist/runtime/public-origin.d.ts +10 -0
- package/dist/runtime/public-origin.d.ts.map +1 -0
- package/dist/runtime/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +1 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +42 -5
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +7 -6
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/runtime.d.ts +3 -0
- package/dist/scheduler/runtime.d.ts.map +1 -1
- package/dist/security/builders.d.ts +11 -2
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/index.d.ts +4 -4
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/markings.d.ts +19 -0
- package/dist/security/markings.d.ts.map +1 -0
- package/dist/security/redactions.d.ts +4 -0
- package/dist/security/redactions.d.ts.map +1 -0
- package/dist/security/registry.d.ts +7 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +25 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -21
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +5 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +15 -9
- 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/provider.js +3 -3
- package/dist/storage/ai-cost/types.d.ts +1 -1
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/validation.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/ai-limits/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-limits/provider.d.ts +7 -2
- package/dist/storage/ai-limits/provider.d.ts.map +1 -1
- package/dist/storage/ai-limits/provider.js +4 -2
- package/dist/storage/ai-limits/provider.js.map +1 -1
- package/dist/storage/ai-limits/types.d.ts +3 -0
- package/dist/storage/ai-limits/types.d.ts.map +1 -1
- package/dist/storage/ai-usage/record.d.ts.map +1 -1
- package/dist/storage/ai-usage/types.d.ts +8 -4
- package/dist/storage/ai-usage/types.d.ts.map +1 -1
- package/dist/storage/ai-usage/usage.d.ts.map +1 -1
- package/dist/storage/file-download-grants/in-memory.d.ts +11 -0
- package/dist/storage/file-download-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/file-download-grants/index.d.ts +3 -0
- package/dist/storage/file-download-grants/index.d.ts.map +1 -0
- package/dist/storage/file-download-grants/record.d.ts +11 -0
- package/dist/storage/file-download-grants/record.d.ts.map +1 -0
- package/dist/storage/file-download-grants/types.d.ts +44 -0
- package/dist/storage/file-download-grants/types.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +10 -7
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/in-memory/index.d.ts +4 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +6 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +35 -32
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -0
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +9 -4
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/migrations/index.d.ts +1 -1
- package/dist/storage/migrations/index.d.ts.map +1 -1
- package/dist/storage/migrations/migrate-storage.d.ts +3 -3
- package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
- package/dist/storage/migrations/types.d.ts +7 -0
- package/dist/storage/migrations/types.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/query.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.map +1 -1
- package/dist/storage/objects/query-preparation.d.ts +39 -0
- package/dist/storage/objects/query-preparation.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +9 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +1 -6
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/index.d.ts +4 -2
- package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations-state.d.ts +0 -2
- package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations-work.d.ts +1 -3
- package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +23 -57
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/outbox.d.ts +3 -2
- package/dist/storage/ontology/in-memory/outbox.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/replacement-plans.d.ts +104 -0
- package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/shared-state.d.ts +17 -2
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts +3 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +1 -2
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/state-reader.d.ts +25 -0
- package/dist/storage/ontology/in-memory/state-reader.d.ts.map +1 -0
- package/dist/storage/ontology/index.d.ts +6 -3
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/materializations.d.ts +40 -59
- package/dist/storage/ontology/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/outbox.d.ts +4 -6
- package/dist/storage/ontology/outbox.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts +114 -3
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -39
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +26 -12
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/replacement-plans.d.ts +103 -0
- package/dist/storage/ontology/replacement-plans.d.ts.map +1 -0
- package/dist/storage/ontology/sources.d.ts +0 -8
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/projection-runs/types.d.ts +2 -0
- package/dist/storage/projection-runs/types.d.ts.map +1 -1
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +10 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +30 -27
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
- package/dist/testing/file-download-grant-storage-contract.d.ts +9 -0
- package/dist/testing/file-download-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2556 -1495
- package/dist/testing/index.js.map +14 -13
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/materializer-storage-contract.d.ts +14 -0
- package/dist/testing/materializer-storage-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 +5 -1
- 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/projection-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +25 -22
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +15 -17
- package/dist/workers/index.js.map +3 -3
- package/dist/workers/queue-worker.d.ts +3 -2
- package/dist/workers/queue-worker.d.ts.map +1 -1
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +51 -47
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +6 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +2 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/actions/read-facade.ts +2 -1
- package/src/actions/types/context.ts +5 -2
- package/src/actions/validation.ts +4 -1
- package/src/agents/adapters.ts +15 -0
- package/src/agents/authority.ts +15 -0
- package/src/agents/context/entries.ts +48 -4
- package/src/agents/context/index.ts +1 -0
- package/src/agents/context-compaction.ts +6 -0
- package/src/agents/errors.ts +3 -0
- package/src/agents/index.ts +13 -1
- package/src/agents/message.ts +9 -0
- package/src/agents/request.ts +178 -22
- package/src/agents/skills.ts +63 -0
- package/src/agents/types.ts +35 -5
- package/src/auth/runtime.ts +14 -0
- package/src/auth/types.ts +6 -0
- package/src/authorization/resolve.ts +6 -1
- package/src/authorization/types.ts +7 -0
- package/src/blob-storage/download-urls.ts +138 -0
- package/src/blob-storage/execution.ts +44 -1
- package/src/blob-storage/file-content.ts +106 -0
- package/src/blob-storage/index.ts +1 -0
- package/src/blob-storage/internal.ts +8 -0
- package/src/blob-storage/media-type.ts +29 -0
- package/src/blob-storage/types.ts +13 -1
- package/src/blob-storage/validation.ts +13 -0
- package/src/bootstrap/agent-context.ts +356 -0
- package/src/bootstrap/discovery.ts +100 -33
- package/src/bootstrap/index.ts +1 -1
- package/src/bootstrap/ontology-type-manifest.ts +3 -38
- package/src/datasets/builders.ts +17 -1
- package/src/datasets/execution.ts +110 -2
- package/src/datasets/index.ts +7 -1
- package/src/datasets/types.ts +2 -0
- package/src/datasets/write.ts +21 -2
- package/src/edits/properties.ts +3 -0
- package/src/events/execution.ts +15 -16
- package/src/events/types/objects.ts +5 -0
- package/src/execution/agent.ts +27 -0
- package/src/execution/authorization.ts +1 -0
- package/src/execution/authorized-object-reader.ts +104 -35
- package/src/execution/scopes.ts +2 -6
- package/src/http/api-routes.ts +4 -3
- package/src/index.ts +52 -2
- package/src/lake-storage/in-memory.ts +38 -9
- package/src/lake-storage/index.ts +2 -0
- package/src/lake-storage/types.ts +30 -0
- package/src/maintenance/ontology-maintenance.ts +50 -23
- package/src/maintenance/types.ts +1 -4
- package/src/materialization/event-envelopes.ts +168 -0
- package/src/materialization/events.ts +40 -4
- package/src/materialization/index.ts +9 -1
- package/src/materializer/README.md +55 -10
- package/src/materializer/edits/commit.ts +3 -19
- package/src/materializer/edits/plan.ts +20 -71
- package/src/materializer/effective/build-events.ts +42 -136
- package/src/materializer/effective/vector-indexing.ts +2 -3
- package/src/materializer/effective/vectors.ts +2 -3
- package/src/materializer/execution/scope.ts +1 -38
- package/src/materializer/execution/work-executor.ts +21 -115
- package/src/materializer/execution/work-records.ts +0 -15
- package/src/materializer/projections/replace.ts +106 -63
- package/src/materializer/projections/replacement-plan.ts +73 -218
- package/src/materializer/shared/batching.ts +7 -0
- package/src/materializer/telemetry/append.ts +2 -14
- package/src/materializer/telemetry/plan.ts +6 -43
- package/src/models/audio/catalog.ts +90 -0
- package/src/models/audio/errors.ts +19 -0
- package/src/models/audio/file.ts +78 -0
- package/src/models/audio/runtime.ts +182 -0
- package/src/models/audio/types.ts +69 -0
- package/src/models/catalog.ts +78 -7
- package/src/models/definitions.ts +8 -1
- package/src/models/events.ts +3 -0
- package/src/models/execution/README.md +24 -4
- package/src/models/execution/binding.ts +6 -0
- package/src/models/execution/model-call-admission.ts +6 -1
- package/src/models/execution/model-call-limits.ts +21 -11
- package/src/models/execution/model-call-recorder.ts +11 -0
- package/src/models/execution/model-call-recovery.ts +1 -0
- package/src/models/execution/reranking.ts +137 -0
- package/src/models/execution/session.ts +2 -2
- package/src/models/execution/usage.ts +1 -0
- package/src/models/execution.ts +11 -3
- package/src/models/generation-types.ts +2 -0
- package/src/models/index.ts +32 -0
- package/src/models/language-model.ts +6 -0
- package/src/models/pricing.ts +2 -1
- package/src/models/reranking-model.ts +114 -0
- package/src/objects/context/index.ts +1 -0
- package/src/objects/context/types.ts +7 -0
- package/src/objects/execution.ts +4 -1
- package/src/objects/materializer-adapter.ts +3 -0
- package/src/objects/object/upsert-batch.ts +4 -1
- package/src/objects/object/upsert.ts +3 -1
- package/src/objects/property-clearance.ts +209 -0
- package/src/objects/query/executor.ts +85 -38
- package/src/objects/query/explain.ts +8 -0
- package/src/objects/query/index.ts +1 -0
- package/src/objects/query/ir.ts +10 -0
- package/src/objects/query/normalize.ts +2 -0
- package/src/objects/query/planner.ts +12 -1
- package/src/objects/query/primary-id.ts +56 -0
- package/src/objects/query/reranking-executor.ts +91 -0
- package/src/objects/query/reranking-limits.ts +3 -0
- package/src/objects/query/reranking-query.ts +8 -0
- package/src/objects/query/validate.ts +166 -15
- package/src/objects/sdk/file-handle.ts +77 -0
- package/src/objects/sdk/object-handle.ts +8 -4
- package/src/objects/sdk/object-set.ts +5 -2
- package/src/objects/sdk/query-builder.ts +15 -2
- package/src/objects/sdk/query-executor.ts +2 -2
- package/src/objects/sdk/runtime-query-executor.ts +7 -4
- package/src/objects/vectors/README.md +6 -2
- package/src/objects/vectors/indexing-dispatch.ts +83 -0
- package/src/objects/vectors/query.ts +3 -0
- package/src/ontology/builders.ts +19 -2
- package/src/ontology/docs-markdown.ts +394 -0
- package/src/ontology/docs.ts +196 -0
- package/src/ontology/index.ts +2 -0
- package/src/ontology/inference/index.ts +25 -0
- package/src/ontology/internal.ts +7 -0
- package/src/ontology/query-capabilities.ts +1 -1
- package/src/ontology/tokens.ts +13 -2
- package/src/ontology/types.ts +26 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/query.ts +57 -0
- package/src/ontology/validation/schema.ts +26 -1
- package/src/query.ts +4 -0
- package/src/queues/in-memory.ts +54 -19
- package/src/queues/types.ts +4 -0
- package/src/runtime/create.ts +34 -4
- package/src/runtime/definitions.ts +3 -1
- package/src/runtime/host.ts +73 -2
- package/src/runtime/index.ts +4 -0
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/locale.ts +26 -0
- package/src/runtime/public-origin.ts +33 -0
- package/src/runtime/resolve-definitions.ts +28 -1
- package/src/runtime/sixb.ts +14 -3
- package/src/runtime/types.ts +51 -5
- package/src/scheduler/runtime.ts +11 -2
- package/src/security/builders.ts +49 -5
- package/src/security/index.ts +6 -1
- package/src/security/markings.ts +313 -0
- package/src/security/redactions.ts +6 -0
- package/src/security/registry.ts +21 -1
- package/src/security/types.ts +26 -0
- package/src/security/validation.ts +59 -2
- package/src/storage/agents/provider.ts +11 -0
- package/src/storage/agents/types.ts +15 -7
- package/src/storage/ai-cost/analytics.ts +2 -0
- package/src/storage/ai-cost/codec.ts +2 -1
- package/src/storage/ai-cost/types.ts +1 -0
- package/src/storage/ai-cost/validation.ts +21 -8
- package/src/storage/ai-limits/in-memory.ts +10 -2
- package/src/storage/ai-limits/provider.ts +29 -2
- package/src/storage/ai-limits/types.ts +3 -0
- package/src/storage/ai-usage/record.ts +9 -0
- package/src/storage/ai-usage/types.ts +8 -4
- package/src/storage/ai-usage/usage.ts +2 -0
- package/src/storage/file-download-grants/in-memory.ts +73 -0
- package/src/storage/file-download-grants/index.ts +8 -0
- package/src/storage/file-download-grants/record.ts +47 -0
- package/src/storage/file-download-grants/types.ts +48 -0
- package/src/storage/in-memory/index.ts +13 -2
- package/src/storage/index.ts +32 -13
- package/src/storage/internal.ts +1 -0
- package/src/storage/migrations/index.ts +1 -0
- package/src/storage/migrations/migrate-storage.ts +36 -12
- package/src/storage/migrations/types.ts +8 -0
- package/src/storage/objects/in-memory/query.ts +2 -0
- package/src/storage/objects/in-memory/selected-reader.ts +1 -0
- package/src/storage/objects/in-memory/storage.ts +1 -0
- package/src/storage/objects/query-preparation.ts +77 -0
- package/src/storage/objects/types.ts +9 -0
- package/src/storage/ontology/commits.ts +1 -6
- package/src/storage/ontology/in-memory/index.ts +28 -9
- package/src/storage/ontology/in-memory/materializations-finalization.ts +35 -68
- package/src/storage/ontology/in-memory/materializations-state.ts +0 -22
- package/src/storage/ontology/in-memory/materializations-work.ts +0 -45
- package/src/storage/ontology/in-memory/materializations.ts +172 -653
- package/src/storage/ontology/in-memory/outbox.ts +37 -29
- package/src/storage/ontology/in-memory/replacement-plans.ts +697 -0
- package/src/storage/ontology/in-memory/shared-state.ts +24 -2
- package/src/storage/ontology/in-memory/source-roots.ts +7 -2
- package/src/storage/ontology/in-memory/sources.ts +7 -33
- package/src/storage/ontology/in-memory/state-reader.ts +245 -0
- package/src/storage/ontology/index.ts +19 -13
- package/src/storage/ontology/materializations.ts +45 -74
- package/src/storage/ontology/outbox.ts +4 -7
- package/src/storage/ontology/provider-header-validation.ts +0 -57
- package/src/storage/ontology/provider-work.ts +381 -90
- package/src/storage/ontology/provider.ts +74 -171
- package/src/storage/ontology/replacement-plans.ts +117 -0
- package/src/storage/ontology/sources.ts +0 -12
- package/src/storage/operation-scope.ts +33 -1
- package/src/storage/projection-runs/in-memory.ts +7 -1
- package/src/storage/projection-runs/types.ts +2 -0
- package/src/storage/types.ts +2 -0
- package/src/testing/ai-cost-storage-contract.ts +1 -0
- package/src/testing/ai-limit-storage-contract.ts +62 -0
- package/src/testing/ai-usage-storage-contract.ts +31 -0
- package/src/testing/file-download-grant-storage-contract.ts +139 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/lake-storage-contract.ts +87 -1
- package/src/testing/materializer-storage-contract.ts +1008 -1
- package/src/testing/object-read-scope-contract.ts +1 -0
- package/src/testing/ontology-contract-fixture.ts +11 -87
- package/src/testing/ontology-storage-contract.ts +70 -39
- package/src/testing/projection-run-storage-contract.ts +14 -0
- package/src/testing/queues-contract.ts +59 -0
- package/src/workers/queue-worker.ts +19 -16
- package/src/workflows/builders.ts +24 -1
- package/src/workflows/request.ts +3 -0
- package/src/workflows/types.ts +6 -3
- package/src/workflows/validation.ts +32 -4
- package/dist/chunk-3q7z9hd4.js.map +0 -46
- package/dist/chunk-667x4drs.js.map +0 -12
- package/dist/chunk-69266efg.js.map +0 -12
- package/dist/chunk-6z1q7j19.js.map +0 -62
- package/dist/chunk-7ytf06d3.js +0 -113
- package/dist/chunk-7ytf06d3.js.map +0 -10
- package/dist/chunk-8x74221e.js.map +0 -20
- package/dist/chunk-91kcnbf0.js.map +0 -10
- package/dist/chunk-98cw09sw.js.map +0 -10
- package/dist/chunk-9vx5e9g1.js.map +0 -11
- package/dist/chunk-a0073121.js.map +0 -12
- package/dist/chunk-a7ne02hk.js.map +0 -15
- package/dist/chunk-cd234ba4.js.map +0 -14
- package/dist/chunk-chdg6eqq.js.map +0 -10
- package/dist/chunk-dmn70ztd.js.map +0 -11
- package/dist/chunk-f72rbvsb.js.map +0 -19
- package/dist/chunk-g4rbm4a6.js.map +0 -15
- package/dist/chunk-h044jb97.js.map +0 -15
- package/dist/chunk-h3v76ams.js.map +0 -11
- package/dist/chunk-h4138ww2.js.map +0 -50
- package/dist/chunk-hgqpcmyr.js.map +0 -12
- package/dist/chunk-jgwb25gc.js.map +0 -12
- package/dist/chunk-k4kkp58d.js.map +0 -11
- package/dist/chunk-kttr5ftm.js.map +0 -12
- package/dist/chunk-kvysp909.js.map +0 -17
- package/dist/chunk-mdnw7nj8.js.map +0 -15
- package/dist/chunk-s3csryxe.js.map +0 -11
- package/dist/chunk-tnvafr7g.js.map +0 -19
- package/dist/chunk-vjqt7q3a.js.map +0 -36
- package/dist/chunk-xnx96gfy.js.map +0 -15
- package/dist/chunk-z5rnrmz1.js.map +0 -11
- package/dist/chunk-zvmr2hqk.js.map +0 -12
- package/dist/materializer/execution/plan-stream.d.ts +0 -8
- package/dist/materializer/execution/plan-stream.d.ts.map +0 -1
- package/src/materializer/execution/plan-stream.ts +0 -121
- /package/dist/{chunk-4gmng3vf.js.map → chunk-22v5bpz3.js.map} +0 -0
- /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
- /package/dist/{chunk-gmdvns8f.js.map → chunk-48e3cn2d.js.map} +0 -0
- /package/dist/{chunk-cq44v1a6.js.map → chunk-7hpdd6r9.js.map} +0 -0
- /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
- /package/dist/{chunk-7g2gjvah.js.map → chunk-ex496vct.js.map} +0 -0
- /package/dist/{chunk-nvymebc1.js.map → chunk-f1zxad2t.js.map} +0 -0
- /package/dist/{chunk-b9y8hcm2.js.map → chunk-mfs23znk.js.map} +0 -0
- /package/dist/{chunk-h866d223.js.map → chunk-qkvz64nd.js.map} +0 -0
- /package/dist/{chunk-tkdbge6v.js.map → chunk-rt9p8m9t.js.map} +0 -0
- /package/dist/{chunk-sbcm1b92.js.map → chunk-v6xpd60t.js.map} +0 -0
- /package/dist/{chunk-nj0020ay.js.map → chunk-vgk3hknm.js.map} +0 -0
- /package/dist/{chunk-qnd7ehe5.js.map → chunk-vx2yp45y.js.map} +0 -0
- /package/dist/{chunk-nkbev3tr.js.map → chunk-yv9czyfr.js.map} +0 -0
- /package/dist/{chunk-cxj8y8t0.js.map → chunk-za5yd58j.js.map} +0 -0
- /package/dist/{chunk-zb47r1c8.js.map → chunk-zb77kjth.js.map} +0 -0
- /package/dist/{chunk-dp7yk20b.js.map → chunk-zxawp1n2.js.map} +0 -0
|
@@ -18,20 +18,16 @@ import { linkRefKey, objectRefKey, projectionEntityKey } from "../../materializa
|
|
|
18
18
|
import type { OntologyCommitOriginSelector, OntologyCommitWrite } from "./commits"
|
|
19
19
|
import type {
|
|
20
20
|
FinalizeMaterializationInput,
|
|
21
|
-
MaterializationEventWorkRecord,
|
|
22
21
|
MaterializationLinkScopeRevision,
|
|
23
|
-
MaterializationPlanChunk,
|
|
24
22
|
MaterializationPlanHeader,
|
|
25
|
-
MaterializationPlanWorkItem,
|
|
26
23
|
MaterializationSession,
|
|
27
24
|
MaterializationWorkRecord,
|
|
28
25
|
SourceActivationWrite,
|
|
29
26
|
StageMaterializationWorkInput,
|
|
30
27
|
StoredLinkSlotOverride,
|
|
31
|
-
StreamMaterializationWorkInput,
|
|
32
28
|
} from "./materializations"
|
|
33
29
|
import { assertNonblank, assertTimestamp } from "./provider-validation"
|
|
34
|
-
import { assertWorkRecord, workUniquenessKey } from "./provider-work"
|
|
30
|
+
import { assertWorkRecord, materializationPlanKindRank, workUniquenessKey } from "./provider-work"
|
|
35
31
|
import type {
|
|
36
32
|
AssertSourceMaterializationExecutionInput,
|
|
37
33
|
BeginSourceMaterializationInput,
|
|
@@ -46,6 +42,7 @@ import type {
|
|
|
46
42
|
* from `@sixb/core/storage` instead.
|
|
47
43
|
*/
|
|
48
44
|
|
|
45
|
+
export { materializationApplyPhase } from "./materializations"
|
|
49
46
|
export { assertMaterializationHeader } from "./provider-header-validation"
|
|
50
47
|
export {
|
|
51
48
|
assertNonblank,
|
|
@@ -56,13 +53,28 @@ export {
|
|
|
56
53
|
} from "./provider-validation"
|
|
57
54
|
export {
|
|
58
55
|
assertPageRows,
|
|
59
|
-
|
|
56
|
+
assertReplacementPlanCommit,
|
|
60
57
|
assertWorkRecord,
|
|
58
|
+
type CardinalityValidator,
|
|
59
|
+
type ClaimedOutboxDraft,
|
|
60
|
+
cardinalityViolation,
|
|
61
|
+
claimedOutboxRows,
|
|
61
62
|
compareCardinalityWork,
|
|
62
63
|
compareEventWork,
|
|
63
64
|
comparePlanWork,
|
|
65
|
+
createCardinalityValidator,
|
|
66
|
+
type ExactEffectiveWrites,
|
|
67
|
+
type ExactOverrideWrites,
|
|
68
|
+
type ExactTimeseriesWrites,
|
|
69
|
+
type MaterializationPlanChunk,
|
|
64
70
|
materializationChunkRows,
|
|
65
|
-
|
|
71
|
+
materializationOutboxWrite,
|
|
72
|
+
materializationPlanChunk,
|
|
73
|
+
materializationPlanKindRank,
|
|
74
|
+
type OntologyOutboxWrite,
|
|
75
|
+
type OutboxEventContext,
|
|
76
|
+
type PreparedReplacementIdentity,
|
|
77
|
+
prepareReplacementIdentities,
|
|
66
78
|
workUniquenessKey,
|
|
67
79
|
} from "./provider-work"
|
|
68
80
|
|
|
@@ -168,40 +180,15 @@ function isJsonValue(value: unknown): value is import("../../json").JsonValue {
|
|
|
168
180
|
return isRecord(value) && Object.values(value).every(isJsonValue)
|
|
169
181
|
}
|
|
170
182
|
|
|
171
|
-
export interface ProviderReplacementSessionState {
|
|
172
|
-
readonly incremental?: boolean
|
|
173
|
-
readonly sourceId: string
|
|
174
|
-
readonly candidateMaterializationId: string
|
|
175
|
-
readonly previousMaterializationId: string | null
|
|
176
|
-
readonly projectionKind: "object" | "link"
|
|
177
|
-
objectStreamStarted: boolean
|
|
178
|
-
objectStreamCompleted: boolean
|
|
179
|
-
linkStreamStarted: boolean
|
|
180
|
-
linkStreamCompleted: boolean
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
export interface ProviderMaterializationLaneState {
|
|
184
|
-
started: boolean
|
|
185
|
-
completed: boolean
|
|
186
|
-
emittedCount: number
|
|
187
|
-
}
|
|
188
|
-
|
|
189
183
|
export class ProviderMaterializationSessionState {
|
|
190
184
|
readonly id = randomUUID()
|
|
191
185
|
readonly providerToken = {}
|
|
192
|
-
readonly workStreams: Record<
|
|
193
|
-
StreamMaterializationWorkInput["order"],
|
|
194
|
-
ProviderMaterializationLaneState
|
|
195
|
-
> = {
|
|
196
|
-
apply: { started: false, completed: false, emittedCount: 0 },
|
|
197
|
-
cardinality: { started: false, completed: false, emittedCount: 0 },
|
|
198
|
-
event: { started: false, completed: false, emittedCount: 0 },
|
|
199
|
-
}
|
|
200
186
|
active = true
|
|
187
|
+
/** Staging closes once vector changes stream or the plan applies. */
|
|
201
188
|
workSealed = false
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
189
|
+
vectorChangesStreamed = false
|
|
190
|
+
applied = false
|
|
191
|
+
appliedEventCount = 0
|
|
205
192
|
|
|
206
193
|
constructor(
|
|
207
194
|
readonly header: MaterializationPlanHeader,
|
|
@@ -213,6 +200,37 @@ export class ProviderMaterializationSessionState {
|
|
|
213
200
|
}
|
|
214
201
|
}
|
|
215
202
|
|
|
203
|
+
/** Seals staging for the vector-change stream: once per session, before the plan applies. */
|
|
204
|
+
export function beginMaterializationVectorChanges(
|
|
205
|
+
state: Pick<
|
|
206
|
+
ProviderMaterializationSessionState,
|
|
207
|
+
"workSealed" | "vectorChangesStreamed" | "applied"
|
|
208
|
+
>
|
|
209
|
+
): void {
|
|
210
|
+
if (state.vectorChangesStreamed || state.applied) {
|
|
211
|
+
throw new MaterializationConflictError(
|
|
212
|
+
"effective-state",
|
|
213
|
+
"Materialization vector changes stream once per session, before the plan applies."
|
|
214
|
+
)
|
|
215
|
+
}
|
|
216
|
+
state.vectorChangesStreamed = true
|
|
217
|
+
state.workSealed = true
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** Seals staging for the apply step: once per session. */
|
|
221
|
+
export function beginMaterializationApply(
|
|
222
|
+
state: Pick<ProviderMaterializationSessionState, "workSealed" | "applied">
|
|
223
|
+
): void {
|
|
224
|
+
if (state.applied) {
|
|
225
|
+
throw new MaterializationConflictError(
|
|
226
|
+
"effective-state",
|
|
227
|
+
"A materialization plan applies once per session."
|
|
228
|
+
)
|
|
229
|
+
}
|
|
230
|
+
state.applied = true
|
|
231
|
+
state.workSealed = true
|
|
232
|
+
}
|
|
233
|
+
|
|
216
234
|
/**
|
|
217
235
|
* Tracks the materialization sessions owned by one storage transaction.
|
|
218
236
|
*
|
|
@@ -258,13 +276,19 @@ export interface PreparedMaterializationWork {
|
|
|
258
276
|
}
|
|
259
277
|
|
|
260
278
|
export function prepareMaterializationWork(
|
|
261
|
-
state: Pick<ProviderMaterializationSessionState, "header" | "workSealed"
|
|
279
|
+
state: Pick<ProviderMaterializationSessionState, "header" | "workSealed">,
|
|
262
280
|
input: StageMaterializationWorkInput
|
|
263
281
|
): readonly PreparedMaterializationWork[] {
|
|
282
|
+
if (state.header.plan) {
|
|
283
|
+
throw new MaterializationConflictError(
|
|
284
|
+
"effective-state",
|
|
285
|
+
"A plan-bound materialization session applies its plan and stages no work."
|
|
286
|
+
)
|
|
287
|
+
}
|
|
264
288
|
if (state.workSealed) {
|
|
265
289
|
throw new MaterializationConflictError(
|
|
266
290
|
"effective-state",
|
|
267
|
-
"Materialization work cannot be staged
|
|
291
|
+
"Materialization work cannot be staged once vector changes stream or the plan applies."
|
|
268
292
|
)
|
|
269
293
|
}
|
|
270
294
|
const keys = new Set<string>()
|
|
@@ -275,13 +299,10 @@ export function prepareMaterializationWork(
|
|
|
275
299
|
if (keys.has(record.recordKey) || uniqueKeys.has(uniqueKey)) {
|
|
276
300
|
throw duplicateMaterializationWork(record.recordKey)
|
|
277
301
|
}
|
|
278
|
-
if (
|
|
279
|
-
record.kind === "incident-object" &&
|
|
280
|
-
(!state.replacement || state.replacement.linkStreamStarted)
|
|
281
|
-
) {
|
|
302
|
+
if (record.kind === "incident-object" || record.kind === "object-existence") {
|
|
282
303
|
throw new MaterializationConflictError(
|
|
283
304
|
"effective-state",
|
|
284
|
-
"
|
|
305
|
+
"Replacement work is staged on a replacement plan, not on a session."
|
|
285
306
|
)
|
|
286
307
|
}
|
|
287
308
|
keys.add(record.recordKey)
|
|
@@ -290,75 +311,15 @@ export function prepareMaterializationWork(
|
|
|
290
311
|
})
|
|
291
312
|
}
|
|
292
313
|
|
|
293
|
-
export interface MaterializationChunkSequenceState {
|
|
294
|
-
readonly workStreams: ProviderMaterializationSessionState["workStreams"]
|
|
295
|
-
readonly appliedPlanCount: number
|
|
296
|
-
readonly appliedOutboxCount: number
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
export function correlateMaterializationChunk(
|
|
300
|
-
state: MaterializationChunkSequenceState,
|
|
301
|
-
chunk: MaterializationPlanChunk,
|
|
302
|
-
actualItems: readonly MaterializationPlanWorkItem[],
|
|
303
|
-
expectedItems: readonly MaterializationPlanWorkItem[],
|
|
304
|
-
expectedEvents: readonly MaterializationEventWorkRecord[]
|
|
305
|
-
): { readonly appliedPlanCount: number; readonly appliedOutboxCount: number } {
|
|
306
|
-
if (
|
|
307
|
-
actualItems.length > 0 &&
|
|
308
|
-
(!state.workStreams.apply.started ||
|
|
309
|
-
state.appliedPlanCount + actualItems.length > state.workStreams.apply.emittedCount)
|
|
310
|
-
) {
|
|
311
|
-
invalidMaterializationCorrelation(
|
|
312
|
-
"Materialization plan items cannot be applied before they are streamed."
|
|
313
|
-
)
|
|
314
|
-
}
|
|
315
|
-
for (let index = 0; index < actualItems.length; index += 1) {
|
|
316
|
-
if (stableJsonStringify(actualItems[index]) !== stableJsonStringify(expectedItems[index])) {
|
|
317
|
-
invalidMaterializationCorrelation(
|
|
318
|
-
"Materialization plan items must be applied in exact streamed order."
|
|
319
|
-
)
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
if (
|
|
324
|
-
chunk.outbox.length > 0 &&
|
|
325
|
-
(!state.workStreams.event.started ||
|
|
326
|
-
state.appliedOutboxCount + chunk.outbox.length > state.workStreams.event.emittedCount)
|
|
327
|
-
) {
|
|
328
|
-
invalidMaterializationCorrelation(
|
|
329
|
-
"Materialization events cannot be applied before they are streamed."
|
|
330
|
-
)
|
|
331
|
-
}
|
|
332
|
-
for (let index = 0; index < chunk.outbox.length; index += 1) {
|
|
333
|
-
const expected = expectedEvents[index]
|
|
334
|
-
const actual = chunk.outbox[index]?.envelope
|
|
335
|
-
if (!expected || !actual) {
|
|
336
|
-
invalidMaterializationCorrelation(
|
|
337
|
-
"Materialization outbox events must follow exact streamed order."
|
|
338
|
-
)
|
|
339
|
-
}
|
|
340
|
-
const { id: _id, commitOrdinal, ...draft } = actual
|
|
341
|
-
if (
|
|
342
|
-
commitOrdinal !== state.appliedOutboxCount + index ||
|
|
343
|
-
stableJsonStringify(draft) !== stableJsonStringify(expected.draft)
|
|
344
|
-
) {
|
|
345
|
-
invalidMaterializationCorrelation(
|
|
346
|
-
"Materialization outbox events must follow exact streamed order."
|
|
347
|
-
)
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
return {
|
|
351
|
-
appliedPlanCount: state.appliedPlanCount + actualItems.length,
|
|
352
|
-
appliedOutboxCount: state.appliedOutboxCount + chunk.outbox.length,
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
314
|
export function assertMaterializationFinalizationCorrelation(
|
|
357
|
-
state: Pick<ProviderMaterializationSessionState, "header" | "
|
|
315
|
+
state: Pick<ProviderMaterializationSessionState, "header" | "applied" | "appliedEventCount">,
|
|
358
316
|
input: FinalizeMaterializationInput
|
|
359
317
|
): void {
|
|
360
318
|
const { commit } = state.header
|
|
361
319
|
const { result, sourceActivations } = input.finalization
|
|
320
|
+
if (!state.applied) {
|
|
321
|
+
invalidMaterializationCorrelation("A materialization plan must apply before it finalizes.")
|
|
322
|
+
}
|
|
362
323
|
if (
|
|
363
324
|
result.commitId !== commit.id ||
|
|
364
325
|
result.kind !== commit.intent.kind ||
|
|
@@ -366,7 +327,7 @@ export function assertMaterializationFinalizationCorrelation(
|
|
|
366
327
|
result.created !== true ||
|
|
367
328
|
!Number.isSafeInteger(result.eventCount) ||
|
|
368
329
|
result.eventCount < 0 ||
|
|
369
|
-
result.eventCount !== state.
|
|
330
|
+
result.eventCount !== state.appliedEventCount
|
|
370
331
|
) {
|
|
371
332
|
invalidMaterializationCorrelation(
|
|
372
333
|
"Materialization result does not correlate with its commit intent."
|
|
@@ -392,34 +353,8 @@ export function assertMaterializationFinalizationCorrelation(
|
|
|
392
353
|
}
|
|
393
354
|
}
|
|
394
355
|
|
|
395
|
-
export function assertMaterializationLaneCompletion(
|
|
396
|
-
state: Pick<
|
|
397
|
-
ProviderMaterializationSessionState,
|
|
398
|
-
"workStreams" | "appliedPlanCount" | "appliedOutboxCount"
|
|
399
|
-
>,
|
|
400
|
-
counts: { readonly apply: number; readonly cardinality: number; readonly event: number }
|
|
401
|
-
): void {
|
|
402
|
-
if (counts.apply > 0 && !state.workStreams.apply.completed) {
|
|
403
|
-
invalidMaterializationCorrelation("Materialization plan work was not fully streamed.")
|
|
404
|
-
}
|
|
405
|
-
if (state.appliedPlanCount !== counts.apply) {
|
|
406
|
-
invalidMaterializationCorrelation("Materialization plan work was not applied exactly once.")
|
|
407
|
-
}
|
|
408
|
-
if (counts.cardinality > 0 && !state.workStreams.cardinality.completed) {
|
|
409
|
-
invalidMaterializationCorrelation("Materialization cardinality work was not fully validated.")
|
|
410
|
-
}
|
|
411
|
-
if (counts.event > 0 && !state.workStreams.event.completed) {
|
|
412
|
-
invalidMaterializationCorrelation("Materialization event work was not fully drained.")
|
|
413
|
-
}
|
|
414
|
-
if (counts.event !== state.appliedOutboxCount) {
|
|
415
|
-
invalidMaterializationCorrelation(
|
|
416
|
-
"Materialization event work was not fully written to the outbox."
|
|
417
|
-
)
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
|
|
421
356
|
export function assertSourceActivationCorrelation(
|
|
422
|
-
state: Pick<ProviderMaterializationSessionState, "header"
|
|
357
|
+
state: Pick<ProviderMaterializationSessionState, "header">,
|
|
423
358
|
activation: SourceActivationWrite
|
|
424
359
|
): void {
|
|
425
360
|
const { commit } = state.header
|
|
@@ -445,18 +380,13 @@ export function assertSourceActivationCorrelation(
|
|
|
445
380
|
"Source activation does not correlate with its projection commit."
|
|
446
381
|
)
|
|
447
382
|
}
|
|
448
|
-
const replacement = state.replacement
|
|
449
383
|
if (
|
|
450
|
-
!
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
replacement.projectionKind !== activation.projectionKind ||
|
|
454
|
-
(activation.projectionKind === "object" &&
|
|
455
|
-
(!replacement.objectStreamCompleted || !replacement.linkStreamCompleted)) ||
|
|
456
|
-
(activation.projectionKind === "link" && !replacement.linkStreamCompleted)
|
|
384
|
+
!state.header.plan ||
|
|
385
|
+
state.header.plan.source.projectionId !== activation.source.projectionId ||
|
|
386
|
+
state.header.plan.materializationId !== activation.materializationId
|
|
457
387
|
) {
|
|
458
388
|
invalidMaterializationCorrelation(
|
|
459
|
-
"Source activation does not match
|
|
389
|
+
"Source activation does not match the replacement plan the session applies."
|
|
460
390
|
)
|
|
461
391
|
}
|
|
462
392
|
}
|
|
@@ -582,33 +512,6 @@ export function materializationWorkColumns(record: MaterializationWorkRecord): {
|
|
|
582
512
|
return { lane: "none", majorOrder: 0, minorOrder: 0, sortOne: "", sortTwo: "" }
|
|
583
513
|
}
|
|
584
514
|
|
|
585
|
-
function materializationPlanKindRank(kind: MaterializationPlanWorkItem["kind"]): number {
|
|
586
|
-
switch (kind) {
|
|
587
|
-
case "object-override-upsert":
|
|
588
|
-
return 0
|
|
589
|
-
case "object-override-delete":
|
|
590
|
-
return 1
|
|
591
|
-
case "link-override-upsert":
|
|
592
|
-
return 2
|
|
593
|
-
case "link-override-delete":
|
|
594
|
-
return 3
|
|
595
|
-
case "link-slot-override-upsert":
|
|
596
|
-
return 4
|
|
597
|
-
case "link-slot-override-delete":
|
|
598
|
-
return 5
|
|
599
|
-
case "point-upsert":
|
|
600
|
-
return 6
|
|
601
|
-
case "link-delete":
|
|
602
|
-
return 7
|
|
603
|
-
case "object-delete":
|
|
604
|
-
return 8
|
|
605
|
-
case "object-upsert":
|
|
606
|
-
return 9
|
|
607
|
-
case "link-upsert":
|
|
608
|
-
return 10
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
|
|
612
515
|
export function duplicateMaterializationWork(key?: string): MaterializationConflictError {
|
|
613
516
|
return new MaterializationConflictError(
|
|
614
517
|
"effective-state",
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
EffectiveChangeCounts,
|
|
3
|
+
ProjectionEntityRef,
|
|
4
|
+
ProjectionExecution,
|
|
5
|
+
ProjectionSourceRef,
|
|
6
|
+
} from "../../materialization/model"
|
|
7
|
+
import type { OntologyCommitWrite } from "./commits"
|
|
8
|
+
import type {
|
|
9
|
+
MaterializationObjectExistence,
|
|
10
|
+
MaterializationWorkRecord,
|
|
11
|
+
SourceReplacementLinkState,
|
|
12
|
+
SourceReplacementObjectState,
|
|
13
|
+
} from "./materializations"
|
|
14
|
+
|
|
15
|
+
/** A ready replacement candidate whose plan the calling execution builds or commits. */
|
|
16
|
+
export interface ReplacementPlanRef {
|
|
17
|
+
readonly projectId: string
|
|
18
|
+
readonly source: ProjectionSourceRef
|
|
19
|
+
readonly materializationId: string
|
|
20
|
+
readonly execution: ProjectionExecution
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface OpenReplacementPlanInput extends ReplacementPlanRef {
|
|
24
|
+
/** The commit the plan's work will carry, timed for a plan opened now. */
|
|
25
|
+
readonly commit: OntologyCommitWrite
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface OpenedReplacementPlan {
|
|
29
|
+
/**
|
|
30
|
+
* The time of the commit the plan's work carries: a resumed plan keeps the one it was opened
|
|
31
|
+
* with. Its work is staged, and its session begins, with the commit at exactly this time.
|
|
32
|
+
*/
|
|
33
|
+
readonly committedAt: string
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface StreamReplacementPlanStateInput extends ReplacementPlanRef {
|
|
37
|
+
/** Objects are planned before links: link state needs the planned existence of its endpoints. */
|
|
38
|
+
readonly entityKind: "object" | "link"
|
|
39
|
+
readonly pageRows: number
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface ReplacementPlanStatePage {
|
|
43
|
+
readonly objects: readonly SourceReplacementObjectState[]
|
|
44
|
+
readonly links: readonly SourceReplacementLinkState[]
|
|
45
|
+
/** Existence of the endpoints of `links`: as this plan leaves them, else as effective. */
|
|
46
|
+
readonly endpoints: readonly MaterializationObjectExistence[]
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface PlannedReplacementIdentity {
|
|
50
|
+
readonly identity: ProjectionEntityRef
|
|
51
|
+
/** Every work record this identity contributes, possibly none. */
|
|
52
|
+
readonly records: readonly MaterializationWorkRecord[]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface StageReplacementPlanInput extends ReplacementPlanRef {
|
|
56
|
+
/** The commit the plan carries, timed as `open` returned; every record is checked against it. */
|
|
57
|
+
readonly commit: OntologyCommitWrite
|
|
58
|
+
/** Identities of the page streamed last, each planned with the revision it was read at. */
|
|
59
|
+
readonly planned: readonly PlannedReplacementIdentity[]
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface PurgeReplacementPlansInput {
|
|
63
|
+
readonly projectId: string
|
|
64
|
+
/** Maximum rows one call deletes. */
|
|
65
|
+
readonly limit: number
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export type ReplacementPlanStatus =
|
|
69
|
+
| { readonly fresh: true; readonly counts: EffectiveChangeCounts }
|
|
70
|
+
/** Identities that changed since they were planned, and those planned from them, are planned again. */
|
|
71
|
+
| { readonly fresh: false; readonly unplanned: number }
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The durable plan of a ready replacement candidate.
|
|
75
|
+
*
|
|
76
|
+
* It is built outside the commit transaction, one page at a time, and belongs to the candidate: a
|
|
77
|
+
* redelivery resumes it, and the candidate's end removes it. Every identity keeps the revision of
|
|
78
|
+
* the inputs its plan was read from. `refresh`, inside the commit transaction, plans again what
|
|
79
|
+
* changed since, so a commit only ever applies a plan that is still exact.
|
|
80
|
+
*
|
|
81
|
+
* Every commit records which entities' plan inputs it changed: the objects whose row, override or
|
|
82
|
+
* telemetry it wrote, the links whose row or edge override it wrote or whose live source assertion
|
|
83
|
+
* it activated or retired, and the link scopes whose slot override it wrote. `refresh` reads only
|
|
84
|
+
* what the commits since the plan was last fresh recorded, so its cost follows those commits, not
|
|
85
|
+
* the size of the plan.
|
|
86
|
+
*/
|
|
87
|
+
export interface OntologyReplacementPlanStorage {
|
|
88
|
+
/**
|
|
89
|
+
* Opens the candidate's plan, or resumes the one an earlier execution of its run left. A plan
|
|
90
|
+
* decides the entities of the active source it replaces: once that moved, it starts over.
|
|
91
|
+
*/
|
|
92
|
+
open(input: OpenReplacementPlanInput): Promise<OpenedReplacementPlan>
|
|
93
|
+
/**
|
|
94
|
+
* State of the identities still to plan, in canonical order; each page reads one snapshot. The
|
|
95
|
+
* link stream first adds the links that identities planned since the previous link stream reach:
|
|
96
|
+
* those incident to an object whose existence flips, and the members of every scope a planned
|
|
97
|
+
* link changes.
|
|
98
|
+
*/
|
|
99
|
+
streamState(input: StreamReplacementPlanStateInput): AsyncIterable<ReplacementPlanStatePage>
|
|
100
|
+
/** Plans identities streamed since they were last unplanned; each is planned once. */
|
|
101
|
+
stage(input: StageReplacementPlanInput): Promise<void>
|
|
102
|
+
/**
|
|
103
|
+
* Within the commit transaction, before the plan-bound session begins: unplans every planned
|
|
104
|
+
* identity whose inputs a commit changed since the plan was last fresh, with every identity
|
|
105
|
+
* planned from it, and adds the links such a commit brought within the plan's reach. A plan
|
|
106
|
+
* older than the changes storage still records is checked whole. A fresh plan returns the
|
|
107
|
+
* change counts its commit reports.
|
|
108
|
+
*/
|
|
109
|
+
refresh(input: ReplacementPlanRef): Promise<ReplacementPlanStatus>
|
|
110
|
+
/**
|
|
111
|
+
* Deletes what is left of plans whose candidate is no longer ready, and the changes commits
|
|
112
|
+
* recorded that no ready plan still needs, a bounded number of rows at a time, and returns how
|
|
113
|
+
* many it deleted. A commit or an abandon may leave its plan behind: the rows are a cache
|
|
114
|
+
* nothing reads once the candidate moved on.
|
|
115
|
+
*/
|
|
116
|
+
purge(input: PurgeReplacementPlansInput): Promise<number>
|
|
117
|
+
}
|
|
@@ -185,15 +185,6 @@ export interface PurgeAbandonedSourceMaterializationsInput {
|
|
|
185
185
|
readonly limit: number
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
-
export interface SummarizeTerminalSourceMaterializationsInput {
|
|
189
|
-
readonly projectId: string
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
export interface TerminalSourceMaterializationSummary {
|
|
193
|
-
readonly count: number
|
|
194
|
-
readonly oldestTerminalAt: string | null
|
|
195
|
-
}
|
|
196
|
-
|
|
197
188
|
export interface AssertSourceMaterializationExecutionInput {
|
|
198
189
|
readonly projectId: string
|
|
199
190
|
readonly source: ProjectionSourceRef
|
|
@@ -234,7 +225,4 @@ export interface OntologySourceStorage {
|
|
|
234
225
|
purgeAbandoned(
|
|
235
226
|
input: PurgeAbandonedSourceMaterializationsInput
|
|
236
227
|
): Promise<CleanupTerminalSourceMaterializationsResult>
|
|
237
|
-
summarizeTerminal(
|
|
238
|
-
input: SummarizeTerminalSourceMaterializationsInput
|
|
239
|
-
): Promise<TerminalSourceMaterializationSummary>
|
|
240
228
|
}
|
|
@@ -181,13 +181,44 @@ function scopeMethod(
|
|
|
181
181
|
if (kind === "async-generator") {
|
|
182
182
|
return (...args: unknown[]) => {
|
|
183
183
|
scope.assertAvailable()
|
|
184
|
-
return
|
|
184
|
+
return scopeSteps(
|
|
185
|
+
Reflect.apply(implementation, target, args) as AsyncIterable<unknown>,
|
|
186
|
+
scope
|
|
187
|
+
)
|
|
185
188
|
}
|
|
186
189
|
}
|
|
187
190
|
|
|
188
191
|
return implementation.bind(target)
|
|
189
192
|
}
|
|
190
193
|
|
|
194
|
+
/**
|
|
195
|
+
* Each step of a stream runs in its own operation scope, released between steps: a page holds the
|
|
196
|
+
* provider's lock while it reads, never while its consumer works on it.
|
|
197
|
+
*/
|
|
198
|
+
function scopeSteps<T>(
|
|
199
|
+
stream: AsyncIterable<T>,
|
|
200
|
+
scope: StorageOperationScope
|
|
201
|
+
): AsyncIterableIterator<T> {
|
|
202
|
+
let iterator: AsyncIterator<T> | undefined
|
|
203
|
+
const steps = () => {
|
|
204
|
+
iterator ??= stream[Symbol.asyncIterator]()
|
|
205
|
+
return iterator
|
|
206
|
+
}
|
|
207
|
+
const scoped: AsyncIterableIterator<T> = {
|
|
208
|
+
next: (...args) => scope.run(() => steps().next(...args)),
|
|
209
|
+
return: (value) =>
|
|
210
|
+
scope.run(async () => (await steps().return?.(value)) ?? { done: true, value }),
|
|
211
|
+
throw: (error) =>
|
|
212
|
+
scope.run(async () => {
|
|
213
|
+
const current = steps()
|
|
214
|
+
if (!current.throw) throw error
|
|
215
|
+
return current.throw(error)
|
|
216
|
+
}),
|
|
217
|
+
[Symbol.asyncIterator]: () => scoped,
|
|
218
|
+
}
|
|
219
|
+
return scoped
|
|
220
|
+
}
|
|
221
|
+
|
|
191
222
|
export function createAuthOperationScope<T extends AuthStorage>(
|
|
192
223
|
target: T,
|
|
193
224
|
scope: StorageOperationScope
|
|
@@ -230,6 +261,7 @@ export function createOntologyOperationScope<T extends OntologyStorage>(
|
|
|
230
261
|
commits: createOperationScopedFacade(target.commits, scope),
|
|
231
262
|
sources: createOperationScopedFacade(target.sources, scope),
|
|
232
263
|
materializations: createOperationScopedFacade(target.materializations, scope),
|
|
264
|
+
replacementPlans: createOperationScopedFacade(target.replacementPlans, scope),
|
|
233
265
|
outbox: createOperationScopedFacade(target.outbox, scope),
|
|
234
266
|
...(target.vectors ? { vectors: createOperationScopedFacade(target.vectors, scope) } : {}),
|
|
235
267
|
}) as T
|
|
@@ -285,13 +285,16 @@ export class InMemoryProjectionRunStorage implements ProjectionRunStorage {
|
|
|
285
285
|
assertProjectionRunNonEmpty(input.projectId, "projectId")
|
|
286
286
|
assertProjectionRunListWindow(input.limit, "limit")
|
|
287
287
|
assertProjectionRunListWindow(input.offset, "offset")
|
|
288
|
-
if (input.statuses?.length === 0
|
|
288
|
+
if (input.statuses?.length === 0 || input.errorCodes?.length === 0) {
|
|
289
|
+
return { runs: [], hasMore: false, total: 0 }
|
|
290
|
+
}
|
|
289
291
|
|
|
290
292
|
const order = input.order ?? "desc"
|
|
291
293
|
const offset = input.offset ?? 0
|
|
292
294
|
const limit = input.limit ?? this.rows.size
|
|
293
295
|
const statuses = input.statuses ? new Set(input.statuses) : null
|
|
294
296
|
const objectTypeIds = input.objectTypeIds ? new Set(input.objectTypeIds) : null
|
|
297
|
+
const errorCodes = input.errorCodes ? new Set(input.errorCodes) : null
|
|
295
298
|
const filtered = [...this.rows.values()]
|
|
296
299
|
.filter((record) => record.projectId === input.projectId)
|
|
297
300
|
.filter((record) =>
|
|
@@ -314,6 +317,9 @@ export class InMemoryProjectionRunStorage implements ProjectionRunStorage {
|
|
|
314
317
|
: true
|
|
315
318
|
)
|
|
316
319
|
.filter((record) => (statuses ? statuses.has(record.status) : true))
|
|
320
|
+
.filter((record) =>
|
|
321
|
+
errorCodes ? record.error !== undefined && errorCodes.has(record.error.code) : true
|
|
322
|
+
)
|
|
317
323
|
.filter((record) =>
|
|
318
324
|
matchesRunListDateFilters(record, {
|
|
319
325
|
statuses,
|
|
@@ -241,6 +241,8 @@ export interface ListProjectionRunsInput {
|
|
|
241
241
|
*/
|
|
242
242
|
readonly objectTypeIds?: readonly string[]
|
|
243
243
|
readonly statuses?: readonly ProjectionRunStatus[]
|
|
244
|
+
/** Runs whose recorded `error` has one of these codes; an empty set matches no runs. */
|
|
245
|
+
readonly errorCodes?: readonly ProjectionRunFailureCode[]
|
|
244
246
|
readonly startedAfter?: Date
|
|
245
247
|
readonly startedBefore?: Date
|
|
246
248
|
readonly limit?: number
|
package/src/storage/types.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { AiUsageStorage } from "./ai-usage"
|
|
|
6
6
|
import type { AuthStorage } from "./auth"
|
|
7
7
|
import type { ConnectorConnectionStorage } from "./connector-connections"
|
|
8
8
|
import type { ExecutionStorage } from "./executions"
|
|
9
|
+
import type { FileDownloadGrantStorage } from "./file-download-grants"
|
|
9
10
|
import type { FileUploadSessionStore } from "./file-upload-sessions"
|
|
10
11
|
import type { ObjectStorage } from "./objects/types"
|
|
11
12
|
import type { OntologyStorage } from "./ontology"
|
|
@@ -370,6 +371,7 @@ export interface Storage {
|
|
|
370
371
|
shareGrants?: ShareGrantStorage
|
|
371
372
|
shareSessions?: ShareSessionStorage
|
|
372
373
|
fileUploadSessions?: FileUploadSessionStore
|
|
374
|
+
fileDownloadGrants?: FileDownloadGrantStorage
|
|
373
375
|
connectorConnections?: ConnectorConnectionStorage
|
|
374
376
|
|
|
375
377
|
/** Lightweight reachability probe. It must not open a write transaction or run migrations. */
|