@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type BlobStorage, supportsDirectUpload } from "../blob-storage"
|
|
2
2
|
import type { OntologyOutboxDispatcher } from "../events"
|
|
3
|
+
import type { VectorIndexingDispatcher } from "../objects/vectors/indexing-dispatch"
|
|
3
4
|
import {
|
|
4
5
|
type FileUploadSession,
|
|
5
6
|
FileUploadSessionError,
|
|
@@ -27,11 +28,15 @@ const ABANDONED_UPLOAD_ABORT_GRACE_MS = 15 * 60_000
|
|
|
27
28
|
// One abandoned candidate of a large projection holds hundreds of thousands of rows. Batches this
|
|
28
29
|
// size keep each delete short while clearing such a candidate within a pass.
|
|
29
30
|
const ABANDONED_SOURCE_PURGE_BATCH = 50_000
|
|
31
|
+
// An expired download URL serves nothing, but its grant records which execution exposed which
|
|
32
|
+
// file. It stays this long for that audit trail.
|
|
33
|
+
const EXPIRED_FILE_DOWNLOAD_RETENTION_MS = 7 * 24 * 60 * 60_000
|
|
30
34
|
|
|
31
35
|
interface OntologyMaintenanceDependencies {
|
|
32
36
|
readonly projectId: string
|
|
33
37
|
readonly storage: Storage
|
|
34
38
|
readonly dispatcher: OntologyOutboxDispatcher
|
|
39
|
+
readonly vectorIndexing?: VectorIndexingDispatcher
|
|
35
40
|
/** Aborts the provider side of abandoned staged uploads. */
|
|
36
41
|
readonly blobStorage?: BlobStorage
|
|
37
42
|
readonly options?: OntologyMaintenanceOptions
|
|
@@ -44,6 +49,7 @@ export class OntologyMaintenance {
|
|
|
44
49
|
private readonly projectId: string
|
|
45
50
|
private readonly storage: Storage
|
|
46
51
|
private readonly dispatcher: OntologyOutboxDispatcher
|
|
52
|
+
private readonly vectorIndexing: VectorIndexingDispatcher | undefined
|
|
47
53
|
private readonly blobStorage: BlobStorage | undefined
|
|
48
54
|
private readonly intervalMs: number
|
|
49
55
|
private readonly publishedOutboxRetentionMs: number
|
|
@@ -64,6 +70,7 @@ export class OntologyMaintenance {
|
|
|
64
70
|
this.projectId = dependencies.projectId
|
|
65
71
|
this.storage = dependencies.storage
|
|
66
72
|
this.dispatcher = dependencies.dispatcher
|
|
73
|
+
this.vectorIndexing = dependencies.vectorIndexing
|
|
67
74
|
this.blobStorage = dependencies.blobStorage
|
|
68
75
|
this.intervalMs = positiveInteger(options.intervalMs ?? DEFAULT_INTERVAL_MS, "intervalMs")
|
|
69
76
|
this.publishedOutboxRetentionMs = nonnegativeInteger(
|
|
@@ -158,9 +165,15 @@ export class OntologyMaintenance {
|
|
|
158
165
|
|
|
159
166
|
const failures: unknown[] = []
|
|
160
167
|
await captureFailure(() => this.dispatcher.drain(), failures)
|
|
168
|
+
const vectorIndexing = this.vectorIndexing
|
|
169
|
+
if (vectorIndexing) await captureFailure(() => vectorIndexing.drain(), failures)
|
|
161
170
|
const cleanup = await this.cleanupExpiredRows(started, failures)
|
|
162
|
-
const
|
|
163
|
-
|
|
171
|
+
const outbox = await captureFailure(
|
|
172
|
+
() => this.storage.ontology.outbox.summarize({ projectId: this.projectId }),
|
|
173
|
+
failures,
|
|
174
|
+
this.snapshot.outbox
|
|
175
|
+
)
|
|
176
|
+
this.completePass({ started, failures, cleanup, outbox })
|
|
164
177
|
}
|
|
165
178
|
|
|
166
179
|
private async cleanupExpiredRows(
|
|
@@ -179,6 +192,8 @@ export class OntologyMaintenance {
|
|
|
179
192
|
failures,
|
|
180
193
|
0
|
|
181
194
|
)
|
|
195
|
+
// Plans go first: a source version is cleaned only once its plan is gone.
|
|
196
|
+
const spentPlanRows = await captureFailure(() => this.purgeSpentPlans(started), failures, 0)
|
|
182
197
|
const terminalSources = await captureFailure(
|
|
183
198
|
() =>
|
|
184
199
|
this.storage.ontology.sources.cleanupTerminal({
|
|
@@ -202,10 +217,24 @@ export class OntologyMaintenance {
|
|
|
202
217
|
await captureFailure(() => this.retireAbandonedUploads(uploads, started, failures), failures)
|
|
203
218
|
await captureFailure(() => uploads.cleanupExpired(started), failures, 0)
|
|
204
219
|
}
|
|
220
|
+
const downloads = this.storage.fileDownloadGrants
|
|
221
|
+
if (downloads) {
|
|
222
|
+
await captureFailure(
|
|
223
|
+
() =>
|
|
224
|
+
downloads.deleteExpired({
|
|
225
|
+
projectId: this.projectId,
|
|
226
|
+
expiredBefore: new Date(started.getTime() - EXPIRED_FILE_DOWNLOAD_RETENTION_MS),
|
|
227
|
+
limit: this.cleanupLimit,
|
|
228
|
+
}),
|
|
229
|
+
failures,
|
|
230
|
+
0
|
|
231
|
+
)
|
|
232
|
+
}
|
|
205
233
|
|
|
206
234
|
return {
|
|
207
235
|
publishedOutboxRowsDeleted,
|
|
208
|
-
terminalSourceRowsDeleted:
|
|
236
|
+
terminalSourceRowsDeleted:
|
|
237
|
+
terminalSources.rowsDeleted + abandonedSources.rowsDeleted + spentPlanRows,
|
|
209
238
|
terminalSourceMaterializationsDeleted:
|
|
210
239
|
terminalSources.materializationsDeleted + abandonedSources.materializationsDeleted,
|
|
211
240
|
}
|
|
@@ -232,6 +261,24 @@ export class OntologyMaintenance {
|
|
|
232
261
|
}
|
|
233
262
|
}
|
|
234
263
|
|
|
264
|
+
/** Deletes the plans of candidates that left `ready`, batch after batch, like candidates. */
|
|
265
|
+
private async purgeSpentPlans(started: Date): Promise<number> {
|
|
266
|
+
let rowsDeleted = 0
|
|
267
|
+
while (true) {
|
|
268
|
+
const purged = await this.storage.ontology.replacementPlans.purge({
|
|
269
|
+
projectId: this.projectId,
|
|
270
|
+
limit: ABANDONED_SOURCE_PURGE_BATCH,
|
|
271
|
+
})
|
|
272
|
+
rowsDeleted += purged
|
|
273
|
+
if (
|
|
274
|
+
purged < ABANDONED_SOURCE_PURGE_BATCH ||
|
|
275
|
+
this.now().getTime() - started.getTime() >= this.intervalMs
|
|
276
|
+
) {
|
|
277
|
+
return rowsDeleted
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
235
282
|
private async retireAbandonedUploads(
|
|
236
283
|
uploads: FileUploadSessionStore,
|
|
237
284
|
now: Date,
|
|
@@ -288,29 +335,11 @@ export class OntologyMaintenance {
|
|
|
288
335
|
if (abortFailure !== undefined) throw abortFailure
|
|
289
336
|
}
|
|
290
337
|
|
|
291
|
-
private async readOperationalSummaries(failures: unknown[]): Promise<{
|
|
292
|
-
readonly outbox: OntologyMaintenanceSnapshot["outbox"]
|
|
293
|
-
readonly terminalSources: OntologyMaintenanceSnapshot["terminalSources"]
|
|
294
|
-
}> {
|
|
295
|
-
const outbox = await captureFailure(
|
|
296
|
-
() => this.storage.ontology.outbox.summarize({ projectId: this.projectId }),
|
|
297
|
-
failures,
|
|
298
|
-
this.snapshot.outbox
|
|
299
|
-
)
|
|
300
|
-
const terminalSummary = await captureFailure(
|
|
301
|
-
() => this.storage.ontology.sources.summarizeTerminal({ projectId: this.projectId }),
|
|
302
|
-
failures,
|
|
303
|
-
this.snapshot.terminalSources
|
|
304
|
-
)
|
|
305
|
-
return { outbox, terminalSources: terminalSummary }
|
|
306
|
-
}
|
|
307
|
-
|
|
308
338
|
private completePass(input: {
|
|
309
339
|
readonly started: Date
|
|
310
340
|
readonly failures: readonly unknown[]
|
|
311
341
|
readonly cleanup: OntologyMaintenanceCleanupSnapshot
|
|
312
342
|
readonly outbox: OntologyMaintenanceSnapshot["outbox"]
|
|
313
|
-
readonly terminalSources: OntologyMaintenanceSnapshot["terminalSources"]
|
|
314
343
|
}): void {
|
|
315
344
|
const completed = this.now()
|
|
316
345
|
const failure =
|
|
@@ -326,7 +355,6 @@ export class OntologyMaintenance {
|
|
|
326
355
|
consecutiveFailures: failure ? this.snapshot.consecutiveFailures + 1 : 0,
|
|
327
356
|
lastError: failure ? errorMessage(failure) : null,
|
|
328
357
|
outbox: input.outbox,
|
|
329
|
-
terminalSources: input.terminalSources,
|
|
330
358
|
cleanup: input.cleanup,
|
|
331
359
|
}
|
|
332
360
|
if (failure) this.reportError(failure)
|
|
@@ -386,7 +414,6 @@ function emptySnapshot(intervalMs: number): OntologyMaintenanceSnapshot {
|
|
|
386
414
|
consecutiveFailures: 0,
|
|
387
415
|
lastError: null,
|
|
388
416
|
outbox: null,
|
|
389
|
-
terminalSources: null,
|
|
390
417
|
cleanup: null,
|
|
391
418
|
}
|
|
392
419
|
}
|
package/src/maintenance/types.ts
CHANGED
|
@@ -19,6 +19,7 @@ export interface OntologyMaintenanceOptions {
|
|
|
19
19
|
|
|
20
20
|
export interface OntologyMaintenanceCleanupSnapshot {
|
|
21
21
|
readonly publishedOutboxRowsDeleted: number
|
|
22
|
+
/** Rows of candidates that will not be published again, their replacement plans included. */
|
|
22
23
|
readonly terminalSourceRowsDeleted: number
|
|
23
24
|
readonly terminalSourceMaterializationsDeleted: number
|
|
24
25
|
}
|
|
@@ -37,10 +38,6 @@ export interface OntologyMaintenanceSnapshot {
|
|
|
37
38
|
readonly retryingCount: number
|
|
38
39
|
readonly maxAttempts: number
|
|
39
40
|
} | null
|
|
40
|
-
readonly terminalSources: {
|
|
41
|
-
readonly count: number
|
|
42
|
-
readonly oldestTerminalAt: string | null
|
|
43
|
-
} | null
|
|
44
41
|
readonly cleanup: OntologyMaintenanceCleanupSnapshot | null
|
|
45
42
|
}
|
|
46
43
|
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { compareStrings, type JsonValue } from "../json"
|
|
2
|
+
import type { ExecutionRecord } from "../storage/executions/types"
|
|
3
|
+
import type {
|
|
4
|
+
EventExecutor,
|
|
5
|
+
OntologyMaterializationEvent,
|
|
6
|
+
OntologyMaterializationEventAttribution,
|
|
7
|
+
OntologyMaterializationEventCommit,
|
|
8
|
+
OntologyMaterializationEventDraft,
|
|
9
|
+
} from "./events"
|
|
10
|
+
import type { OntologyMaterializationPropertyChangeMap } from "./model"
|
|
11
|
+
|
|
12
|
+
/** Where an event sits in its commit: its id and its ordinal. */
|
|
13
|
+
export interface OntologyMaterializationEventSequence {
|
|
14
|
+
readonly id: string
|
|
15
|
+
readonly commitOrdinal: number
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The event consumers receive, rebuilt from the draft storage keeps, the commit it belongs to and
|
|
20
|
+
* the execution that commit ran under. It is the exact event core would have built in one piece,
|
|
21
|
+
* so storing drafts changes nothing a consumer can observe.
|
|
22
|
+
*/
|
|
23
|
+
export function materializationEvent(
|
|
24
|
+
draft: OntologyMaterializationEventDraft,
|
|
25
|
+
sequence: OntologyMaterializationEventSequence,
|
|
26
|
+
commit: OntologyMaterializationEventCommit,
|
|
27
|
+
attribution: OntologyMaterializationEventAttribution
|
|
28
|
+
): OntologyMaterializationEvent {
|
|
29
|
+
const context = {
|
|
30
|
+
id: sequence.id,
|
|
31
|
+
schemaVersion: 1 as const,
|
|
32
|
+
projectId: commit.projectId,
|
|
33
|
+
occurredAt: commit.committedAt,
|
|
34
|
+
correlationId: attribution.correlationId,
|
|
35
|
+
origin: structuredClone(commit.origin),
|
|
36
|
+
...(attribution.requestedBy === undefined
|
|
37
|
+
? {}
|
|
38
|
+
: { requestedBy: { ...attribution.requestedBy } }),
|
|
39
|
+
executor: structuredClone(attribution.executor),
|
|
40
|
+
commitId: commit.id,
|
|
41
|
+
commitOrdinal: sequence.commitOrdinal,
|
|
42
|
+
}
|
|
43
|
+
switch (draft.type) {
|
|
44
|
+
case "object.created":
|
|
45
|
+
return {
|
|
46
|
+
...context,
|
|
47
|
+
type: draft.type,
|
|
48
|
+
topic: "objects",
|
|
49
|
+
partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,
|
|
50
|
+
payload: {
|
|
51
|
+
...draft.payload,
|
|
52
|
+
propertyChanges: createdPropertyChanges(draft.payload.properties),
|
|
53
|
+
},
|
|
54
|
+
}
|
|
55
|
+
case "object.updated":
|
|
56
|
+
return {
|
|
57
|
+
...context,
|
|
58
|
+
type: draft.type,
|
|
59
|
+
topic: "objects",
|
|
60
|
+
partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,
|
|
61
|
+
payload: draft.payload,
|
|
62
|
+
}
|
|
63
|
+
case "object.deleted":
|
|
64
|
+
return {
|
|
65
|
+
...context,
|
|
66
|
+
type: draft.type,
|
|
67
|
+
topic: "objects",
|
|
68
|
+
partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,
|
|
69
|
+
payload: draft.payload,
|
|
70
|
+
}
|
|
71
|
+
case "link.created":
|
|
72
|
+
return {
|
|
73
|
+
...context,
|
|
74
|
+
type: draft.type,
|
|
75
|
+
topic: "links",
|
|
76
|
+
partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,
|
|
77
|
+
payload: {
|
|
78
|
+
...draft.payload,
|
|
79
|
+
propertyChanges: createdPropertyChanges(draft.payload.properties ?? {}),
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
case "link.updated":
|
|
83
|
+
return {
|
|
84
|
+
...context,
|
|
85
|
+
type: draft.type,
|
|
86
|
+
topic: "links",
|
|
87
|
+
partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,
|
|
88
|
+
payload: draft.payload,
|
|
89
|
+
}
|
|
90
|
+
case "link.deleted":
|
|
91
|
+
return {
|
|
92
|
+
...context,
|
|
93
|
+
type: draft.type,
|
|
94
|
+
topic: "links",
|
|
95
|
+
partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,
|
|
96
|
+
payload: draft.payload,
|
|
97
|
+
}
|
|
98
|
+
case "telemetry.appended":
|
|
99
|
+
return {
|
|
100
|
+
...context,
|
|
101
|
+
type: draft.type,
|
|
102
|
+
topic: "telemetry",
|
|
103
|
+
partitionKey: `${draft.payload.objectTypeId}:${draft.payload.objectId}:${draft.payload.propertyId}`,
|
|
104
|
+
payload: draft.payload,
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* What the events of a commit say about who asked for it and what wrote it, read from the
|
|
111
|
+
* execution it ran under. A primitive's id lives in the execution's authority, the only place the
|
|
112
|
+
* durable record keeps it.
|
|
113
|
+
*/
|
|
114
|
+
export function eventAttribution(
|
|
115
|
+
execution: Pick<
|
|
116
|
+
ExecutionRecord,
|
|
117
|
+
"id" | "correlationId" | "requestedBy" | "executor" | "authorizationRef"
|
|
118
|
+
>
|
|
119
|
+
): OntologyMaterializationEventAttribution {
|
|
120
|
+
const attribution = {
|
|
121
|
+
correlationId: execution.correlationId,
|
|
122
|
+
executor: eventExecutor(execution),
|
|
123
|
+
}
|
|
124
|
+
if (execution.requestedBy === undefined) return attribution
|
|
125
|
+
const { type, id } = execution.requestedBy
|
|
126
|
+
return { ...attribution, requestedBy: { type, id } }
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function eventExecutor(
|
|
130
|
+
execution: Pick<ExecutionRecord, "id" | "executor" | "authorizationRef">
|
|
131
|
+
): EventExecutor {
|
|
132
|
+
const { executor, authorizationRef } = execution
|
|
133
|
+
switch (executor.type) {
|
|
134
|
+
case "request":
|
|
135
|
+
return { type: "request", requestId: executor.requestId }
|
|
136
|
+
case "agent":
|
|
137
|
+
return { type: "agent", runId: executor.runId }
|
|
138
|
+
case "kernel":
|
|
139
|
+
return { type: "kernel", operation: structuredClone(executor.operation) }
|
|
140
|
+
case "primitive":
|
|
141
|
+
if (
|
|
142
|
+
authorizationRef.type !== "trustedPrimitive" ||
|
|
143
|
+
authorizationRef.primitive.kind !== executor.kind ||
|
|
144
|
+
authorizationRef.primitive.runId !== executor.runId
|
|
145
|
+
) {
|
|
146
|
+
throw new Error(
|
|
147
|
+
`[Sixb] Execution '${execution.id}' runs a primitive without that primitive's authority.`
|
|
148
|
+
)
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
type: "primitive",
|
|
152
|
+
kind: executor.kind,
|
|
153
|
+
id: authorizationRef.primitive.id,
|
|
154
|
+
runId: executor.runId,
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** A creation changes every property it sets, from nothing to its value, in key order. */
|
|
160
|
+
function createdPropertyChanges(
|
|
161
|
+
properties: Readonly<Record<string, JsonValue>>
|
|
162
|
+
): OntologyMaterializationPropertyChangeMap {
|
|
163
|
+
const changes: Record<string, { readonly operation: "created"; readonly after: JsonValue }> = {}
|
|
164
|
+
for (const id of Object.keys(properties).sort(compareStrings)) {
|
|
165
|
+
changes[id] = { operation: "created", after: properties[id] as JsonValue }
|
|
166
|
+
}
|
|
167
|
+
return changes
|
|
168
|
+
}
|
|
@@ -110,9 +110,45 @@ export type OntologyMaterializationEvent =
|
|
|
110
110
|
| OntologyLinkMaterializationEvent
|
|
111
111
|
| OntologyTelemetryMaterializationEvent
|
|
112
112
|
|
|
113
|
-
type
|
|
114
|
-
|
|
113
|
+
type OntologyMaterializationEventKind = OntologyMaterializationEvent["type"]
|
|
114
|
+
|
|
115
|
+
type EventPayload<K extends OntologyMaterializationEventKind> =
|
|
116
|
+
OntologyMaterializationEvent extends infer E
|
|
117
|
+
? E extends { readonly type: infer T; readonly payload: infer P }
|
|
118
|
+
? K extends T
|
|
119
|
+
? P
|
|
120
|
+
: never
|
|
121
|
+
: never
|
|
122
|
+
: never
|
|
123
|
+
|
|
124
|
+
type EventDraftOf<K> = K extends OntologyMaterializationEventKind
|
|
125
|
+
? {
|
|
126
|
+
readonly type: K
|
|
127
|
+
readonly payload: K extends "object.created" | "link.created"
|
|
128
|
+
? Readonly<Omit<EventPayload<K>, "propertyChanges">>
|
|
129
|
+
: EventPayload<K>
|
|
130
|
+
}
|
|
115
131
|
: never
|
|
116
132
|
|
|
117
|
-
/**
|
|
118
|
-
|
|
133
|
+
/**
|
|
134
|
+
* An event as core stages it and storage keeps it: what changed, and nothing it can be rebuilt
|
|
135
|
+
* from. `materializationEvent` adds back the context its commit and execution share with every
|
|
136
|
+
* other event of that commit, the partition key and topic its type and payload fix, and the
|
|
137
|
+
* property changes of a creation, which only restate its properties.
|
|
138
|
+
*/
|
|
139
|
+
export type OntologyMaterializationEventDraft = EventDraftOf<OntologyMaterializationEventKind>
|
|
140
|
+
|
|
141
|
+
/** The commit fields every event of that commit carries. */
|
|
142
|
+
export interface OntologyMaterializationEventCommit {
|
|
143
|
+
readonly projectId: string
|
|
144
|
+
readonly id: string
|
|
145
|
+
readonly committedAt: string
|
|
146
|
+
readonly origin: OntologyMaterializationOrigin
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** Who asked for a commit and what wrote it, as its events carry them: read from its execution. */
|
|
150
|
+
export interface OntologyMaterializationEventAttribution {
|
|
151
|
+
readonly correlationId: string
|
|
152
|
+
readonly requestedBy?: AuthorizablePrincipal
|
|
153
|
+
readonly executor: EventExecutor
|
|
154
|
+
}
|
|
@@ -17,7 +17,15 @@ export {
|
|
|
17
17
|
MaterializationObjectNotFoundError,
|
|
18
18
|
MaterializationValidationError,
|
|
19
19
|
} from "./errors"
|
|
20
|
-
export type {
|
|
20
|
+
export type { OntologyMaterializationEventSequence } from "./event-envelopes"
|
|
21
|
+
export { eventAttribution, materializationEvent } from "./event-envelopes"
|
|
22
|
+
export type {
|
|
23
|
+
OntologyMaterializationEvent,
|
|
24
|
+
OntologyMaterializationEventAttribution,
|
|
25
|
+
OntologyMaterializationEventCommit,
|
|
26
|
+
OntologyMaterializationEventDraft,
|
|
27
|
+
} from "./events"
|
|
28
|
+
export { createEventId } from "./identity"
|
|
21
29
|
export type {
|
|
22
30
|
BaseCommitResult,
|
|
23
31
|
EditCommitResult,
|
|
@@ -32,26 +32,30 @@ normalize + validate intent
|
|
|
32
32
|
-> resolve effective state
|
|
33
33
|
-> diff against committed state
|
|
34
34
|
-> stage deterministic work
|
|
35
|
-
->
|
|
36
|
-
-> write outbox events with stable commit ordinals
|
|
35
|
+
-> storage applies the work in dependency order and writes its outbox events
|
|
37
36
|
-> finalize ontology commit atomically
|
|
38
37
|
-> advance a run resume checkpoint when required
|
|
39
38
|
```
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
Staged work is an execution plan, never queried as Ontology state. Edits and telemetry stage it on
|
|
41
|
+
their session; a projection replacement stages it on the candidate's durable plan (below). Either
|
|
42
|
+
way the Materializer plans and storage applies: it validates cardinality, writes every item in
|
|
43
|
+
phase order and sequences the events, so planned rows are not read back to be sent again. Vector
|
|
44
|
+
profiles see the changed objects first, while those still hold their previous values.
|
|
43
45
|
|
|
44
46
|
## Durable ownership
|
|
45
47
|
|
|
46
48
|
```text
|
|
47
49
|
run storage -> execution ownership, lifecycle, progress, and resume checkpoints
|
|
48
|
-
ontology storage -> sources, effective state, telemetry, commits, and outbox
|
|
50
|
+
ontology storage -> sources, replacement plans, effective state, telemetry, commits, and outbox
|
|
49
51
|
Materializer -> semantic planning and cross-store transaction orchestration
|
|
50
52
|
```
|
|
51
53
|
|
|
52
54
|
Every ontology commit references its immutable execution through `executionId`. Storage providers enforce that reference. `origin` remains the semantic idempotency and run-correlation key: it says which runtime request, Action, projection replacement, or telemetry batch the commit represents; the execution says under which durable authority it ran. Neither field duplicates the other.
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
Every event of a commit also names who asked for it and what wrote it, so consumers can answer "who changed this" without reading the execution: `requestedBy`, the principal on whose behalf the execution chain runs (absent for automatic, anonymous, or auth-disabled work), `executor`, the request, primitive run, Agent run, or kernel operation that wrote, and `correlationId`. The commit does not copy them: they live once, on its immutable execution, and the outbox reads them there. Authority stays on the execution's `authorizationRef`; only a primitive's id is read from it. Before writing, the Materializer requires an Action or projection origin to name the exact primitive run of its execution (`assertTrustedPrimitiveMutationExecution`).
|
|
57
|
+
|
|
58
|
+
Storage keeps an event once, as its draft — its type and payload, without the property changes a creation only restates. When the outbox claims a row, it rebuilds the full event from the draft, its commit and that commit's execution (`materializationEvent`). An event therefore cannot disagree with its commit or its execution, and a large publication writes their context once instead of once per event.
|
|
55
59
|
|
|
56
60
|
Run records do not duplicate ontology commit ids or semantic commit history. Replacement projections need no resume checkpoint; projection telemetry stores only its next batch/row checkpoint on the run.
|
|
57
61
|
|
|
@@ -65,14 +69,54 @@ listing is reserved for history and observability.
|
|
|
65
69
|
dataset entries
|
|
66
70
|
-> staging source candidate
|
|
67
71
|
-> ready source candidate
|
|
68
|
-
->
|
|
69
|
-
-> plan
|
|
70
|
-
-> atomically activate candidate and finalize commit
|
|
72
|
+
-> plan the candidate, outside any transaction, page by page
|
|
73
|
+
-> commit transaction: refresh the plan, apply it, activate the candidate, finalize the commit
|
|
71
74
|
```
|
|
72
75
|
|
|
73
76
|
Source ingress is sealed before commit time is assigned. Activation and ontology commit
|
|
74
77
|
finalization are atomic; the projection run stores no separate commit pointer.
|
|
75
78
|
|
|
79
|
+
The plan is built outside the commit transaction, which refreshes it, then applies it. The plan is
|
|
80
|
+
durable and belongs to the candidate:
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
open -> the candidate's identities: its entities and those of the roots it replaces
|
|
84
|
+
plan -> each page reads its state in one snapshot, records the revision of what it read,
|
|
85
|
+
and stages the resulting work; links are planned after objects, then extended to
|
|
86
|
+
the links of newly planned objects whose existence flips and to the members of
|
|
87
|
+
newly changed scopes
|
|
88
|
+
refresh -> in the commit transaction: a planned identity whose inputs a commit touched since
|
|
89
|
+
is planned again, with the links that commit brought into the plan; a few are
|
|
90
|
+
planned right there, more are given back to a round outside the transaction
|
|
91
|
+
apply -> only a plan that refresh found fresh; the commit reports its planned counts
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
An identity's revision covers everything its plan read: an object's effective row, override and
|
|
95
|
+
latest telemetry; a link's effective row, edge and slot overrides, live source, and the existence
|
|
96
|
+
of both endpoints (the whole revision of an endpoint the plan decides, whose planned existence
|
|
97
|
+
follows it).
|
|
98
|
+
|
|
99
|
+
Every commit records the entities whose plan inputs it changed, its touches: the objects whose row,
|
|
100
|
+
override or telemetry it wrote, the links whose row or edge override it wrote or whose live source
|
|
101
|
+
assertion its activation moved, and the scopes whose slot override it wrote. When no commit of the
|
|
102
|
+
project landed since the plan last proved fresh, refresh checks nothing; otherwise it reads again
|
|
103
|
+
only the revisions of identities those commits touched (a link also through its scope and both
|
|
104
|
+
endpoints), so its cost follows the commits, not the plan. A plan older than the touches storage
|
|
105
|
+
still keeps (PostgreSQL purge can race a plan's opening) is checked whole.
|
|
106
|
+
|
|
107
|
+
A refresh that finds no more stale identities than `transactionReplanRows` (one state page) plans
|
|
108
|
+
them inside the commit transaction, where nothing changes them again, and commits. More are given
|
|
109
|
+
back to another round outside it. A commit that keeps finding many stale identities gives the
|
|
110
|
+
delivery back after three rounds; the next delivery resumes the same plan, as does any redelivery
|
|
111
|
+
of the run, unless the active source the plan replaces moved meanwhile: the plan then starts over.
|
|
112
|
+
Storage keeps a plan while its candidate is ready and maintenance deletes it afterwards, before the
|
|
113
|
+
candidate itself, along with the touches no ready plan still needs.
|
|
114
|
+
|
|
115
|
+
The commit time is fixed when the plan opens: every planned row carries it as `updatedAt`, every
|
|
116
|
+
planned event as `occurredAt`. A resumed plan keeps it, so a publication that commits later than
|
|
117
|
+
it opened, after retries, stamps its writes with that earlier time, even over an edit committed in
|
|
118
|
+
between. Commit order is the order of the ontology ledger and the outbox, never these timestamps.
|
|
119
|
+
|
|
76
120
|
A candidate belongs to its run, not to the delivery that staged it:
|
|
77
121
|
|
|
78
122
|
```text
|
|
@@ -141,7 +185,8 @@ finish still commit atomically.
|
|
|
141
185
|
- `effective/`: pure resolution, validation, diff, and event construction.
|
|
142
186
|
- `execution/`: storage-neutral plan execution, replay, retry, and run correlation.
|
|
143
187
|
- `shared/`: normalization, identity, batching, and chunking primitives.
|
|
144
|
-
- `storage/ontology/`: durable ontology commit, source, materialization, and
|
|
188
|
+
- `storage/ontology/`: durable ontology commit, source, replacement plan, materialization, and
|
|
189
|
+
outbox contracts.
|
|
145
190
|
|
|
146
191
|
Keep use-case entrypoints explicit. Share mechanics only after they have identical semantics; do
|
|
147
192
|
not hide projection candidate lifecycle, edit continuation, or telemetry batching behind a generic
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
type MaterializerExecution,
|
|
22
22
|
prepareMaterializerExecution,
|
|
23
23
|
} from "../execution/scope"
|
|
24
|
-
import {
|
|
24
|
+
import { applyStagedWork } from "../execution/work-executor"
|
|
25
25
|
import type { MaterializerCommand } from "../materializer"
|
|
26
26
|
import {
|
|
27
27
|
createActionIdempotencyKey,
|
|
@@ -187,16 +187,10 @@ async function executeEditTransaction(
|
|
|
187
187
|
storage.ontology.materializations,
|
|
188
188
|
session,
|
|
189
189
|
workingState,
|
|
190
|
-
editPlanContext(command)
|
|
191
|
-
)
|
|
192
|
-
await drainStagedWork(context, storage, session)
|
|
193
|
-
await commitVectorWrites(context, storage, command.input, command.identity.commitId, session)
|
|
194
|
-
const eventCount = await drainStagedEvents(
|
|
195
|
-
context,
|
|
196
|
-
storage.ontology.materializations,
|
|
197
|
-
session,
|
|
198
190
|
command.identity
|
|
199
191
|
)
|
|
192
|
+
const eventCount = await applyStagedWork(context, storage, session)
|
|
193
|
+
await commitVectorWrites(context, storage, command.input, command.identity.commitId, session)
|
|
200
194
|
|
|
201
195
|
const result: EditCommitResult = {
|
|
202
196
|
kind: "edit",
|
|
@@ -237,7 +231,6 @@ function buildEditCommit(
|
|
|
237
231
|
requestHash: command.identity.requestHash,
|
|
238
232
|
executionId: command.execution.executionId,
|
|
239
233
|
origin: command.origin,
|
|
240
|
-
...command.execution.attribution,
|
|
241
234
|
ontologyRevision: context.projectionRegistry.ontologyRevision,
|
|
242
235
|
intent: {
|
|
243
236
|
kind: "edit",
|
|
@@ -362,15 +355,6 @@ function isRecoverableEditValidation(
|
|
|
362
355
|
return error instanceof MaterializationValidationError
|
|
363
356
|
}
|
|
364
357
|
|
|
365
|
-
function editPlanContext(command: PreparedEditCommit) {
|
|
366
|
-
return {
|
|
367
|
-
identity: command.identity,
|
|
368
|
-
origin: command.origin,
|
|
369
|
-
correlationId: command.execution.correlationId,
|
|
370
|
-
attribution: command.execution.attribution,
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
|
|
374
358
|
async function finalizeEditMaterialization(
|
|
375
359
|
storage: MaterializerStorage,
|
|
376
360
|
session: MaterializationSession,
|