@sixb/core 0.1.15 → 0.1.17
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 +25 -25
- package/dist/actions/types/context.d.ts +2 -2
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/worker.js +1 -1
- package/dist/agents/index.js +41 -40
- package/dist/agents/index.js.map +1 -1
- package/dist/auth/index.js +5 -5
- package/dist/authorization/index.js +2 -2
- 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/index.js +5 -3
- package/dist/blob-storage/index.js.map +1 -1
- package/dist/blob-storage/internal.d.ts +2 -0
- package/dist/blob-storage/internal.d.ts.map +1 -0
- package/dist/blob-storage/internal.js +11 -0
- package/dist/blob-storage/internal.js.map +9 -0
- package/dist/bootstrap/index.js +45 -44
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/{chunk-wem5vqjw.js → chunk-10styjgk.js} +18 -13
- package/dist/{chunk-wem5vqjw.js.map → chunk-10styjgk.js.map} +3 -3
- package/dist/{chunk-hgqpcmyr.js → chunk-1hqwggsn.js} +47 -19
- package/dist/chunk-1hqwggsn.js.map +12 -0
- package/dist/{chunk-q3grgzp1.js → chunk-23xs4qp9.js} +2 -2
- package/dist/{chunk-vef6qa14.js → chunk-2am3db31.js} +2 -2
- package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
- package/dist/{chunk-p0nbkys4.js → chunk-33saed7g.js} +1 -1
- package/dist/{chunk-mdnw7nj8.js → chunk-3rrezgyc.js} +33 -8
- package/dist/chunk-3rrezgyc.js.map +15 -0
- package/dist/{chunk-jgwb25gc.js → chunk-4as3wt1c.js} +13 -5
- package/dist/chunk-4as3wt1c.js.map +12 -0
- package/dist/chunk-4ra628t7.js +88 -0
- package/dist/chunk-4ra628t7.js.map +10 -0
- package/dist/{chunk-mmac1mp6.js → chunk-52c5zb0z.js} +2 -2
- package/dist/{chunk-8fjmqjyx.js → chunk-5be2ath4.js} +1 -1
- package/dist/{chunk-2fv8sajb.js → chunk-5thzcb8g.js} +2 -2
- package/dist/{chunk-fjw417jf.js → chunk-5yd8cchh.js} +1143 -784
- package/dist/chunk-5yd8cchh.js.map +66 -0
- package/dist/{chunk-2tz5vnvz.js → chunk-6wbm6ymz.js} +235 -41
- package/dist/{chunk-2tz5vnvz.js.map → chunk-6wbm6ymz.js.map} +8 -6
- package/dist/{chunk-py2dw8cw.js → chunk-7ecp4v7a.js} +26 -19
- package/dist/chunk-7ecp4v7a.js.map +17 -0
- 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-1jvq82rp.js → chunk-9g6jz9kk.js} +5 -5
- package/dist/{chunk-39tqv9hz.js → chunk-9se093qz.js} +5 -6
- package/dist/{chunk-39tqv9hz.js.map → chunk-9se093qz.js.map} +3 -4
- package/dist/{chunk-8w27xf9e.js → chunk-a7er86jd.js} +1 -1
- package/dist/{chunk-zdkcdshk.js → chunk-aq39q04r.js} +41 -3
- package/dist/{chunk-zdkcdshk.js.map → chunk-aq39q04r.js.map} +4 -3
- package/dist/chunk-b9affek3.js +261 -0
- package/dist/chunk-b9affek3.js.map +12 -0
- package/dist/{chunk-bxx3ms5t.js → chunk-c2rga5cx.js} +2 -2
- package/dist/{chunk-dsfw1bdr.js → chunk-cnb5kv05.js} +2 -2
- package/dist/chunk-d62kjtbg.js.map +2 -2
- package/dist/{chunk-dqkd3kdj.js → chunk-dam456ve.js} +234 -35
- package/dist/{chunk-dqkd3kdj.js.map → chunk-dam456ve.js.map} +7 -5
- package/dist/{chunk-n5t4mq6z.js → chunk-e67ynxcr.js} +3 -3
- 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-6q7c68yx.js → chunk-f1xh7a32.js} +3 -3
- package/dist/{chunk-z708gemf.js → chunk-fggq3d9k.js} +450 -799
- package/dist/chunk-fggq3d9k.js.map +49 -0
- package/dist/{chunk-7jc21943.js → chunk-gf7yht60.js} +4 -4
- package/dist/chunk-h8teetr0.js +9 -0
- package/dist/chunk-h8teetr0.js.map +10 -0
- package/dist/chunk-hn2r7z41.js.map +1 -1
- package/dist/{chunk-ffwvdgk1.js → chunk-jjrn5v0p.js} +1 -1
- package/dist/{chunk-r5sc1d2b.js → chunk-jnfxmr3f.js} +1 -1
- package/dist/{chunk-y0zmae99.js → chunk-k4g51s47.js} +3 -3
- package/dist/{chunk-a0073121.js → chunk-kpx7jrmn.js} +3 -1
- package/dist/chunk-kpx7jrmn.js.map +12 -0
- package/dist/{chunk-p1683c0v.js → chunk-kyjcwqz6.js} +5 -2
- package/dist/{chunk-p1683c0v.js.map → chunk-kyjcwqz6.js.map} +3 -3
- package/dist/{chunk-3c90jvfj.js → chunk-pja9jfz6.js} +742 -583
- package/dist/chunk-pja9jfz6.js.map +19 -0
- package/dist/chunk-pqajwytd.js.map +1 -1
- 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-s3csryxe.js → chunk-rj69qcrd.js} +8 -2
- package/dist/chunk-rj69qcrd.js.map +11 -0
- package/dist/{chunk-d8yes9yx.js → chunk-rpxz486p.js} +32 -5
- package/dist/{chunk-d8yes9yx.js.map → chunk-rpxz486p.js.map} +4 -4
- package/dist/{chunk-drz59ve0.js → chunk-rx7h5fdx.js} +1 -1
- package/dist/{chunk-ky7zpbtt.js → chunk-s7ftxrdr.js} +106 -8
- package/dist/chunk-s7ftxrdr.js.map +22 -0
- package/dist/{chunk-yfppyaty.js → chunk-sk0hcjsz.js} +1 -1
- package/dist/{chunk-qne45xqq.js → chunk-svabwqdq.js} +2 -2
- package/dist/{chunk-xr7y35yj.js → chunk-t9shqx3w.js} +2 -2
- package/dist/{chunk-4jph1t3v.js → chunk-tjjgy3z4.js} +27 -24
- package/dist/{chunk-4jph1t3v.js.map → chunk-tjjgy3z4.js.map} +4 -4
- package/dist/{chunk-ex8s8wsk.js → chunk-vp3z1ckh.js} +42 -10
- package/dist/{chunk-ex8s8wsk.js.map → chunk-vp3z1ckh.js.map} +7 -6
- package/dist/{chunk-adbve9zt.js → chunk-vre348sb.js} +2 -2
- package/dist/{chunk-a4g5yjm0.js → chunk-w9yycd3t.js} +1 -1
- package/dist/{chunk-g4rbm4a6.js → chunk-wt4szfec.js} +379 -331
- package/dist/chunk-wt4szfec.js.map +14 -0
- package/dist/{chunk-wd34wnsy.js → chunk-xcy5ddha.js} +6 -6
- package/dist/{chunk-3nx8vj5a.js → chunk-xyvy73tj.js} +5 -3
- package/dist/chunk-xyvy73tj.js.map +12 -0
- package/dist/datasets/write.js +1 -1
- package/dist/execution/agent.js +38 -37
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +3 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +36 -35
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +37 -36
- package/dist/execution/request.js.map +2 -2
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -59
- 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 +2 -2
- 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 +31 -32
- 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 +23 -1
- 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/embedding-model.d.ts +4 -0
- package/dist/models/embedding-model.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/index.js +22 -22
- 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.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 +7 -3
- package/dist/models/index.js.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/index.js +25 -25
- package/dist/objects/query/executor.d.ts +2 -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 +24 -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.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/indexing-generate.d.ts.map +1 -1
- package/dist/objects/vectors/profile.d.ts.map +1 -1
- package/dist/objects/vectors/query.d.ts +1 -1
- package/dist/objects/vectors/query.d.ts.map +1 -1
- package/dist/objects/vectors/resolve-query.d.ts.map +1 -1
- package/dist/objects/vectors/types.d.ts +1 -1
- package/dist/objects/vectors/types.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +13 -4
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +1 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +3 -3
- package/dist/ontology/internal.js +2 -2
- package/dist/ontology/query-capabilities.d.ts +1 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +20 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/vector-profiles.d.ts.map +1 -1
- package/dist/pipelines/index.js +23 -23
- package/dist/projections/internal.js +22 -22
- 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/host.d.ts +1 -0
- 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 +28 -26
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/public-origin.d.ts +10 -0
- package/dist/runtime/public-origin.d.ts.map +1 -0
- package/dist/runtime/sixb.d.ts +1 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +12 -2
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +5 -5
- package/dist/shares/internal.js +19 -19
- package/dist/storage/agents/provider.js +2 -2
- 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 +6 -6
- 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 +5 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +30 -30
- 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 +8 -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 +2 -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 +6 -6
- package/dist/syncs/index.js +24 -24
- 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 +2548 -1489
- 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 +20 -20
- 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/index.js +42 -41
- package/dist/workflows/index.js.map +1 -1
- package/package.json +7 -1
- package/src/actions/types/context.ts +5 -2
- package/src/blob-storage/download-urls.ts +138 -0
- package/src/blob-storage/execution.ts +32 -1
- package/src/blob-storage/internal.ts +1 -0
- package/src/execution/authorized-object-reader.ts +8 -1
- package/src/index.ts +25 -0
- 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 +52 -5
- package/src/models/definitions.ts +8 -1
- package/src/models/embedding-model.ts +12 -0
- package/src/models/events.ts +3 -0
- package/src/models/execution/README.md +20 -1
- package/src/models/execution/embedding.ts +5 -1
- 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 +1 -0
- package/src/models/execution/model-call-recovery.ts +1 -0
- package/src/models/execution/reranking.ts +137 -0
- package/src/models/execution/usage.ts +1 -0
- package/src/models/execution.ts +5 -1
- package/src/models/generation-types.ts +2 -0
- package/src/models/index.ts +32 -0
- package/src/models/pricing.ts +2 -1
- package/src/models/reranking-model.ts +114 -0
- package/src/objects/query/executor.ts +42 -2
- 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 +33 -10
- 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 +14 -2
- package/src/objects/vectors/handle.ts +1 -1
- package/src/objects/vectors/indexing-dispatch.ts +83 -0
- package/src/objects/vectors/indexing-generate.ts +5 -1
- package/src/objects/vectors/profile.ts +2 -0
- package/src/objects/vectors/query.ts +21 -4
- package/src/objects/vectors/resolve-query.ts +9 -5
- package/src/objects/vectors/types.ts +3 -1
- package/src/ontology/builders.ts +22 -7
- package/src/ontology/index.ts +2 -0
- package/src/ontology/query-capabilities.ts +1 -1
- package/src/ontology/types.ts +21 -0
- package/src/ontology/validation/query.ts +57 -0
- package/src/ontology/vector-profiles.ts +1 -0
- package/src/query.ts +4 -0
- package/src/queues/in-memory.ts +54 -19
- package/src/queues/types.ts +4 -0
- package/src/runtime/host.ts +28 -1
- package/src/runtime/index.ts +1 -0
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/public-origin.ts +33 -0
- package/src/runtime/sixb.ts +13 -2
- package/src/runtime/types.ts +12 -2
- 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 +31 -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 +2 -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/dist/chunk-3c90jvfj.js.map +0 -15
- package/dist/chunk-3nx8vj5a.js.map +0 -12
- package/dist/chunk-7ytf06d3.js +0 -113
- package/dist/chunk-7ytf06d3.js.map +0 -10
- package/dist/chunk-a0073121.js.map +0 -12
- package/dist/chunk-fjw417jf.js.map +0 -62
- package/dist/chunk-g4rbm4a6.js.map +0 -15
- 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-ky7zpbtt.js.map +0 -19
- package/dist/chunk-mdnw7nj8.js.map +0 -15
- package/dist/chunk-py2dw8cw.js.map +0 -17
- package/dist/chunk-s3csryxe.js.map +0 -11
- package/dist/chunk-xnx96gfy.js.map +0 -15
- package/dist/chunk-z708gemf.js.map +0 -50
- 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-q3grgzp1.js.map → chunk-23xs4qp9.js.map} +0 -0
- /package/dist/{chunk-vef6qa14.js.map → chunk-2am3db31.js.map} +0 -0
- /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
- /package/dist/{chunk-p0nbkys4.js.map → chunk-33saed7g.js.map} +0 -0
- /package/dist/{chunk-mmac1mp6.js.map → chunk-52c5zb0z.js.map} +0 -0
- /package/dist/{chunk-8fjmqjyx.js.map → chunk-5be2ath4.js.map} +0 -0
- /package/dist/{chunk-2fv8sajb.js.map → chunk-5thzcb8g.js.map} +0 -0
- /package/dist/{chunk-1jvq82rp.js.map → chunk-9g6jz9kk.js.map} +0 -0
- /package/dist/{chunk-8w27xf9e.js.map → chunk-a7er86jd.js.map} +0 -0
- /package/dist/{chunk-bxx3ms5t.js.map → chunk-c2rga5cx.js.map} +0 -0
- /package/dist/{chunk-dsfw1bdr.js.map → chunk-cnb5kv05.js.map} +0 -0
- /package/dist/{chunk-n5t4mq6z.js.map → chunk-e67ynxcr.js.map} +0 -0
- /package/dist/{chunk-6q7c68yx.js.map → chunk-f1xh7a32.js.map} +0 -0
- /package/dist/{chunk-7jc21943.js.map → chunk-gf7yht60.js.map} +0 -0
- /package/dist/{chunk-ffwvdgk1.js.map → chunk-jjrn5v0p.js.map} +0 -0
- /package/dist/{chunk-r5sc1d2b.js.map → chunk-jnfxmr3f.js.map} +0 -0
- /package/dist/{chunk-y0zmae99.js.map → chunk-k4g51s47.js.map} +0 -0
- /package/dist/{chunk-drz59ve0.js.map → chunk-rx7h5fdx.js.map} +0 -0
- /package/dist/{chunk-yfppyaty.js.map → chunk-sk0hcjsz.js.map} +0 -0
- /package/dist/{chunk-qne45xqq.js.map → chunk-svabwqdq.js.map} +0 -0
- /package/dist/{chunk-xr7y35yj.js.map → chunk-t9shqx3w.js.map} +0 -0
- /package/dist/{chunk-adbve9zt.js.map → chunk-vre348sb.js.map} +0 -0
- /package/dist/{chunk-a4g5yjm0.js.map → chunk-w9yycd3t.js.map} +0 -0
- /package/dist/{chunk-wd34wnsy.js.map → chunk-xcy5ddha.js.map} +0 -0
|
@@ -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,
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
EffectiveLinkChange,
|
|
3
|
-
EffectiveObjectChange,
|
|
4
|
-
OntologyMaterializationOrigin,
|
|
5
|
-
} from "../../materialization/model"
|
|
1
|
+
import type { EffectiveLinkChange, EffectiveObjectChange } from "../../materialization/model"
|
|
6
2
|
import {
|
|
7
3
|
compareLinkRefs,
|
|
8
4
|
compareObjectRefs,
|
|
@@ -26,7 +22,6 @@ import {
|
|
|
26
22
|
} from "../effective/build-events"
|
|
27
23
|
import { diffEffectiveLink, diffEffectiveLinkSlot, diffEffectiveObject } from "../effective/diff"
|
|
28
24
|
import { validateEffectiveObject } from "../effective/validate"
|
|
29
|
-
import type { MaterializerAttribution } from "../execution/scope"
|
|
30
25
|
import { stageWorkBounded } from "../execution/work-executor"
|
|
31
26
|
import {
|
|
32
27
|
appendEffectiveLinkWork,
|
|
@@ -55,43 +50,29 @@ export interface EditPlanChanges {
|
|
|
55
50
|
readonly links: readonly EffectiveLinkChange[]
|
|
56
51
|
}
|
|
57
52
|
|
|
58
|
-
interface EditPlanContext {
|
|
59
|
-
readonly identity: TimedCommitIdentity
|
|
60
|
-
readonly origin: OntologyMaterializationOrigin
|
|
61
|
-
readonly correlationId: string
|
|
62
|
-
readonly attribution: MaterializerAttribution
|
|
63
|
-
}
|
|
64
|
-
|
|
65
53
|
export async function stageEditPlan(
|
|
66
54
|
context: MaterializerContext,
|
|
67
55
|
storage: OntologyMaterializationStorage,
|
|
68
56
|
session: MaterializationSession,
|
|
69
57
|
state: EditWorkingState,
|
|
70
|
-
|
|
58
|
+
identity: TimedCommitIdentity
|
|
71
59
|
): Promise<EditPlanChanges> {
|
|
72
60
|
validateWorkingCardinality(state.links.slots)
|
|
73
61
|
|
|
74
62
|
const objectChanges: EffectiveObjectChange[] = []
|
|
75
63
|
for (const working of sortedObjects(state.objects)) {
|
|
76
|
-
const change = await stageObject(context, storage, session, working,
|
|
64
|
+
const change = await stageObject(context, storage, session, working, identity)
|
|
77
65
|
if (change) objectChanges.push(change)
|
|
78
66
|
}
|
|
79
67
|
|
|
80
68
|
const linkChanges: EffectiveLinkChange[] = []
|
|
81
69
|
for (const working of sortedLinkEdges(state.links.edges)) {
|
|
82
|
-
const change = await stageLinkEdge(
|
|
83
|
-
context,
|
|
84
|
-
storage,
|
|
85
|
-
session,
|
|
86
|
-
state.objects,
|
|
87
|
-
working,
|
|
88
|
-
planContext
|
|
89
|
-
)
|
|
70
|
+
const change = await stageLinkEdge(context, storage, session, state.objects, working, identity)
|
|
90
71
|
if (change) linkChanges.push(change)
|
|
91
72
|
}
|
|
92
73
|
for (const working of sortedLinkSlots(state.links.slots)) {
|
|
93
74
|
linkChanges.push(
|
|
94
|
-
...(await stageLinkSlot(context, storage, session, state.objects, working,
|
|
75
|
+
...(await stageLinkSlot(context, storage, session, state.objects, working, identity))
|
|
95
76
|
)
|
|
96
77
|
}
|
|
97
78
|
|
|
@@ -109,16 +90,16 @@ async function stageLinkSlot(
|
|
|
109
90
|
session: MaterializationSession,
|
|
110
91
|
objects: EditWorkingState["objects"],
|
|
111
92
|
working: WorkingLinkSlot,
|
|
112
|
-
|
|
93
|
+
identity: TimedCommitIdentity
|
|
113
94
|
): Promise<EffectiveLinkChange[]> {
|
|
114
95
|
const overrideItems: MaterializationPlanWorkItem[] = []
|
|
115
|
-
appendLinkSlotOverrideWork(overrideItems, working,
|
|
96
|
+
appendLinkSlotOverrideWork(overrideItems, working, identity)
|
|
116
97
|
const resolved = resolveLinkSlot(context.ontology, working, objects)
|
|
117
98
|
const changes = diffEffectiveLinkSlot({
|
|
118
99
|
before: working.before,
|
|
119
100
|
resolved,
|
|
120
|
-
commitId:
|
|
121
|
-
committedAt:
|
|
101
|
+
commitId: identity.commitId,
|
|
102
|
+
committedAt: identity.committedAt,
|
|
122
103
|
})
|
|
123
104
|
|
|
124
105
|
const representative =
|
|
@@ -145,7 +126,7 @@ async function stageLinkSlot(
|
|
|
145
126
|
appendEffectiveLinkWork(effectiveItems, change)
|
|
146
127
|
const sortKey = linkRefSortKey(change.ref)
|
|
147
128
|
work.push(...effectiveItems.map((item) => planWork(item, sortKey)))
|
|
148
|
-
work.push(eventWork(
|
|
129
|
+
work.push(eventWork(buildLinkMaterializationEventDraft(change)))
|
|
149
130
|
}
|
|
150
131
|
await stageWorkBounded(context, storage, session, work)
|
|
151
132
|
return changes
|
|
@@ -156,18 +137,18 @@ async function stageObject(
|
|
|
156
137
|
storage: OntologyMaterializationStorage,
|
|
157
138
|
session: MaterializationSession,
|
|
158
139
|
working: WorkingObject,
|
|
159
|
-
|
|
140
|
+
identity: TimedCommitIdentity
|
|
160
141
|
): Promise<EffectiveObjectChange | null> {
|
|
161
142
|
const items: MaterializationPlanWorkItem[] = []
|
|
162
|
-
appendObjectOverrideWork(items, working,
|
|
143
|
+
appendObjectOverrideWork(items, working, identity)
|
|
163
144
|
|
|
164
145
|
const resolved = resolveObject(context.ontology, working)
|
|
165
146
|
if (resolved) validateEffectiveObject(context.ontology, resolved.ref, resolved.properties)
|
|
166
147
|
const change = diffEffectiveObject({
|
|
167
148
|
before: working.before,
|
|
168
149
|
resolved,
|
|
169
|
-
commitId:
|
|
170
|
-
committedAt:
|
|
150
|
+
commitId: identity.commitId,
|
|
151
|
+
committedAt: identity.committedAt,
|
|
171
152
|
})
|
|
172
153
|
if (change) appendEffectiveObjectWork(items, change)
|
|
173
154
|
|
|
@@ -177,7 +158,7 @@ async function stageObject(
|
|
|
177
158
|
...items.map((item) => planWork(item, sortKey)),
|
|
178
159
|
]
|
|
179
160
|
if (change) {
|
|
180
|
-
work.push(eventWork(
|
|
161
|
+
work.push(eventWork(buildObjectMaterializationEventDraft(change)))
|
|
181
162
|
}
|
|
182
163
|
await stageWorkBounded(context, storage, session, work)
|
|
183
164
|
return change
|
|
@@ -189,17 +170,17 @@ async function stageLinkEdge(
|
|
|
189
170
|
session: MaterializationSession,
|
|
190
171
|
objects: EditWorkingState["objects"],
|
|
191
172
|
working: WorkingLinkEdge,
|
|
192
|
-
|
|
173
|
+
identity: TimedCommitIdentity
|
|
193
174
|
): Promise<EffectiveLinkChange | null> {
|
|
194
175
|
const items: MaterializationPlanWorkItem[] = []
|
|
195
|
-
appendLinkEdgeOverrideWork(items, working,
|
|
176
|
+
appendLinkEdgeOverrideWork(items, working, identity)
|
|
196
177
|
|
|
197
178
|
const resolved = resolveLinkEdge(context.ontology, working, objects)
|
|
198
179
|
const change = diffEffectiveLink({
|
|
199
180
|
before: working.before,
|
|
200
181
|
resolved,
|
|
201
|
-
commitId:
|
|
202
|
-
committedAt:
|
|
182
|
+
commitId: identity.commitId,
|
|
183
|
+
committedAt: identity.committedAt,
|
|
203
184
|
})
|
|
204
185
|
if (change) appendEffectiveLinkWork(items, change)
|
|
205
186
|
|
|
@@ -209,44 +190,12 @@ async function stageLinkEdge(
|
|
|
209
190
|
...items.map((item) => planWork(item, sortKey)),
|
|
210
191
|
]
|
|
211
192
|
if (change) {
|
|
212
|
-
work.push(eventWork(
|
|
193
|
+
work.push(eventWork(buildLinkMaterializationEventDraft(change)))
|
|
213
194
|
}
|
|
214
195
|
await stageWorkBounded(context, storage, session, work)
|
|
215
196
|
return change
|
|
216
197
|
}
|
|
217
198
|
|
|
218
|
-
function buildObjectEvent(
|
|
219
|
-
context: Pick<MaterializerContext, "projectId">,
|
|
220
|
-
planContext: EditPlanContext,
|
|
221
|
-
change: EffectiveObjectChange
|
|
222
|
-
) {
|
|
223
|
-
const eventContext = materializationEventContext(context, planContext)
|
|
224
|
-
return buildObjectMaterializationEventDraft({ ...eventContext, change })
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
function buildLinkEvent(
|
|
228
|
-
context: Pick<MaterializerContext, "projectId">,
|
|
229
|
-
planContext: EditPlanContext,
|
|
230
|
-
change: EffectiveLinkChange
|
|
231
|
-
) {
|
|
232
|
-
const eventContext = materializationEventContext(context, planContext)
|
|
233
|
-
return buildLinkMaterializationEventDraft({ ...eventContext, change })
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
function materializationEventContext(
|
|
237
|
-
context: Pick<MaterializerContext, "projectId">,
|
|
238
|
-
planContext: EditPlanContext
|
|
239
|
-
) {
|
|
240
|
-
return {
|
|
241
|
-
projectId: context.projectId,
|
|
242
|
-
commitId: planContext.identity.commitId,
|
|
243
|
-
committedAt: planContext.identity.committedAt,
|
|
244
|
-
origin: planContext.origin,
|
|
245
|
-
correlationId: planContext.correlationId,
|
|
246
|
-
attribution: planContext.attribution,
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
199
|
function sortedObjects(objects: EditWorkingState["objects"]): WorkingObject[] {
|
|
251
200
|
return [...objects.values()].sort((left, right) => compareObjectRefs(left.ref, right.ref))
|
|
252
201
|
}
|