@sixb/core 0.1.16 → 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-8x74221e.js → chunk-10styjgk.js} +18 -13
- package/dist/{chunk-8x74221e.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-zb47r1c8.js → chunk-23xs4qp9.js} +2 -2
- package/dist/{chunk-gmdvns8f.js → chunk-2am3db31.js} +2 -2
- package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
- package/dist/{chunk-dp7yk20b.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-chdg6eqq.js → chunk-52c5zb0z.js} +2 -2
- package/dist/{chunk-69kt9q43.js → chunk-5be2ath4.js} +1 -1
- package/dist/{chunk-qnd7ehe5.js → chunk-5thzcb8g.js} +2 -2
- package/dist/{chunk-6z1q7j19.js → chunk-5yd8cchh.js} +1126 -780
- package/dist/chunk-5yd8cchh.js.map +66 -0
- package/dist/{chunk-3q7z9hd4.js → chunk-6wbm6ymz.js} +234 -40
- package/dist/{chunk-3q7z9hd4.js.map → chunk-6wbm6ymz.js.map} +8 -6
- package/dist/{chunk-kvysp909.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-dsv8kdgk.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-7g2gjvah.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-b9y8hcm2.js → chunk-c2rga5cx.js} +1 -1
- package/dist/{chunk-f72rbvsb.js → chunk-cnb5kv05.js} +2 -2
- package/dist/chunk-d62kjtbg.js.map +2 -2
- package/dist/{chunk-vjqt7q3a.js → chunk-dam456ve.js} +233 -34
- package/dist/{chunk-vjqt7q3a.js.map → chunk-dam456ve.js.map} +7 -5
- package/dist/{chunk-sbcm1b92.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-cq44v1a6.js → chunk-f1xh7a32.js} +3 -3
- package/dist/{chunk-h4138ww2.js → chunk-fggq3d9k.js} +450 -799
- package/dist/chunk-fggq3d9k.js.map +49 -0
- package/dist/{chunk-kttr5ftm.js → chunk-gf7yht60.js} +3 -3
- 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-nj0020ay.js → chunk-jjrn5v0p.js} +1 -1
- package/dist/{chunk-nvymebc1.js → chunk-jnfxmr3f.js} +1 -1
- package/dist/{chunk-nkbev3tr.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-h044jb97.js → chunk-pja9jfz6.js} +172 -10
- 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-swxzncrv.js → chunk-rpxz486p.js} +32 -5
- package/dist/{chunk-swxzncrv.js.map → chunk-rpxz486p.js.map} +4 -4
- package/dist/{chunk-tkdbge6v.js → chunk-rx7h5fdx.js} +1 -1
- package/dist/{chunk-tnvafr7g.js → chunk-s7ftxrdr.js} +105 -7
- package/dist/chunk-s7ftxrdr.js.map +22 -0
- package/dist/{chunk-h866d223.js → chunk-sk0hcjsz.js} +1 -1
- package/dist/{chunk-2xvgy3x5.js → chunk-svabwqdq.js} +2 -2
- package/dist/{chunk-667x4drs.js → chunk-t9shqx3w.js} +2 -2
- package/dist/{chunk-40qb8wpe.js → chunk-tjjgy3z4.js} +26 -23
- package/dist/{chunk-40qb8wpe.js.map → chunk-tjjgy3z4.js.map} +3 -3
- package/dist/{chunk-gkxsenvp.js → chunk-vp3z1ckh.js} +31 -7
- package/dist/{chunk-gkxsenvp.js.map → chunk-vp3z1ckh.js.map} +5 -4
- package/dist/{chunk-cxj8y8t0.js → chunk-vre348sb.js} +2 -2
- package/dist/{chunk-vsvrv7n8.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-a7ne02hk.js → chunk-xcy5ddha.js} +6 -6
- package/dist/{chunk-zvmr2hqk.js → chunk-xyvy73tj.js} +4 -3
- package/dist/{chunk-zvmr2hqk.js.map → chunk-xyvy73tj.js.map} +3 -3
- 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/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 +6 -2
- 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 +22 -22
- 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/query.d.ts.map +1 -1
- 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/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 +2549 -1490
- 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/events.ts +3 -0
- package/src/models/execution/README.md +20 -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 -1
- 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 +1 -0
- 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/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-6z1q7j19.js.map +0 -62
- 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-g4rbm4a6.js.map +0 -15
- package/dist/chunk-h044jb97.js.map +0 -15
- 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-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-xnx96gfy.js.map +0 -15
- 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-zb47r1c8.js.map → chunk-23xs4qp9.js.map} +0 -0
- /package/dist/{chunk-gmdvns8f.js.map → chunk-2am3db31.js.map} +0 -0
- /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
- /package/dist/{chunk-dp7yk20b.js.map → chunk-33saed7g.js.map} +0 -0
- /package/dist/{chunk-chdg6eqq.js.map → chunk-52c5zb0z.js.map} +0 -0
- /package/dist/{chunk-69kt9q43.js.map → chunk-5be2ath4.js.map} +0 -0
- /package/dist/{chunk-qnd7ehe5.js.map → chunk-5thzcb8g.js.map} +0 -0
- /package/dist/{chunk-dsv8kdgk.js.map → chunk-9g6jz9kk.js.map} +0 -0
- /package/dist/{chunk-7g2gjvah.js.map → chunk-a7er86jd.js.map} +0 -0
- /package/dist/{chunk-b9y8hcm2.js.map → chunk-c2rga5cx.js.map} +0 -0
- /package/dist/{chunk-f72rbvsb.js.map → chunk-cnb5kv05.js.map} +0 -0
- /package/dist/{chunk-sbcm1b92.js.map → chunk-e67ynxcr.js.map} +0 -0
- /package/dist/{chunk-cq44v1a6.js.map → chunk-f1xh7a32.js.map} +0 -0
- /package/dist/{chunk-kttr5ftm.js.map → chunk-gf7yht60.js.map} +0 -0
- /package/dist/{chunk-nj0020ay.js.map → chunk-jjrn5v0p.js.map} +0 -0
- /package/dist/{chunk-nvymebc1.js.map → chunk-jnfxmr3f.js.map} +0 -0
- /package/dist/{chunk-nkbev3tr.js.map → chunk-k4g51s47.js.map} +0 -0
- /package/dist/{chunk-tkdbge6v.js.map → chunk-rx7h5fdx.js.map} +0 -0
- /package/dist/{chunk-h866d223.js.map → chunk-sk0hcjsz.js.map} +0 -0
- /package/dist/{chunk-2xvgy3x5.js.map → chunk-svabwqdq.js.map} +0 -0
- /package/dist/{chunk-667x4drs.js.map → chunk-t9shqx3w.js.map} +0 -0
- /package/dist/{chunk-cxj8y8t0.js.map → chunk-vre348sb.js.map} +0 -0
- /package/dist/{chunk-vsvrv7n8.js.map → chunk-w9yycd3t.js.map} +0 -0
- /package/dist/{chunk-a7ne02hk.js.map → chunk-xcy5ddha.js.map} +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { OntologyDefinitionCatalog } from "../../ontology/registry"
|
|
2
|
+
import type { ObjectQueryPreparationResult } from "../objects/query-preparation"
|
|
1
3
|
import type { Storage } from "../types"
|
|
2
4
|
|
|
3
5
|
export interface MigrationStepInfo {
|
|
@@ -123,7 +125,13 @@ export interface MigrationCapableStorage extends Storage {
|
|
|
123
125
|
readonly migrators: readonly StorageMigrator[]
|
|
124
126
|
}
|
|
125
127
|
|
|
128
|
+
export interface StorageMigrationOptions {
|
|
129
|
+
readonly projectId: string
|
|
130
|
+
readonly ontology: OntologyDefinitionCatalog
|
|
131
|
+
}
|
|
132
|
+
|
|
126
133
|
export interface StorageMigrationResult {
|
|
134
|
+
readonly queries?: ObjectQueryPreparationResult
|
|
127
135
|
readonly status: "migrated" | "current" | "skipped"
|
|
128
136
|
readonly reports: readonly MigrationReport[]
|
|
129
137
|
}
|
|
@@ -117,6 +117,8 @@ export function evaluateObjectQuery(
|
|
|
117
117
|
source: InMemoryReadSource
|
|
118
118
|
): QueryEvaluation {
|
|
119
119
|
switch (query.kind) {
|
|
120
|
+
case "rerank":
|
|
121
|
+
throw new Error("[Sixb] Reranking must execute in the model runtime, not storage.")
|
|
120
122
|
case "start":
|
|
121
123
|
return evaluateStart(query.objectTypeId, source)
|
|
122
124
|
case "refs":
|
|
@@ -105,6 +105,7 @@ export function createInMemorySelectedReader(
|
|
|
105
105
|
const result = evaluateObjectQuery(stripOuterRowShape(input.query), universe)
|
|
106
106
|
return visible(
|
|
107
107
|
structuredClone({
|
|
108
|
+
total: result.entries.length,
|
|
108
109
|
facets: buildFacetResults(
|
|
109
110
|
result.entries.map((entry) => entry.row),
|
|
110
111
|
input.facets
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { QueryScalarKind } from "../../objects/query/ir"
|
|
2
|
+
import {
|
|
3
|
+
queryScalarKindForSchema,
|
|
4
|
+
resolvePropertyQueryCapabilities,
|
|
5
|
+
resolveQuerySchema,
|
|
6
|
+
} from "../../ontology/query-capabilities"
|
|
7
|
+
import type { OntologyDefinitionCatalog } from "../../ontology/registry"
|
|
8
|
+
import type { ObjectQueryIndexDefinition } from "../../ontology/types"
|
|
9
|
+
import type { Storage } from "../types"
|
|
10
|
+
|
|
11
|
+
export interface ObjectQueryPreparationPlan {
|
|
12
|
+
readonly projectId: string
|
|
13
|
+
readonly objectTypes: readonly {
|
|
14
|
+
readonly objectTypeId: string
|
|
15
|
+
readonly properties: readonly {
|
|
16
|
+
readonly propertyId: string
|
|
17
|
+
readonly scalarKind?: QueryScalarKind
|
|
18
|
+
readonly filterable: boolean
|
|
19
|
+
readonly sortable: boolean
|
|
20
|
+
readonly text: boolean
|
|
21
|
+
}[]
|
|
22
|
+
readonly indexes: readonly ObjectQueryIndexDefinition[]
|
|
23
|
+
}[]
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface ObjectQueryPreparationResult {
|
|
27
|
+
readonly status: "prepared" | "current"
|
|
28
|
+
readonly objectTypes: number
|
|
29
|
+
readonly indexes: number
|
|
30
|
+
readonly warnings: readonly string[]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Optional maintenance capability, separate from object reads and writes. */
|
|
34
|
+
export interface QueryPreparationCapableStorage extends Storage {
|
|
35
|
+
/** Coordinate concurrent callers and skip completed plans. Backfills may block writes. */
|
|
36
|
+
prepareObjectQueries(plan: ObjectQueryPreparationPlan): Promise<ObjectQueryPreparationResult>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function isQueryPreparationCapableStorage(
|
|
40
|
+
storage: Storage
|
|
41
|
+
): storage is QueryPreparationCapableStorage {
|
|
42
|
+
return "prepareObjectQueries" in storage && typeof storage.prepareObjectQueries === "function"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Prepare declared query access paths after schema migration. Providers own physical layout;
|
|
46
|
+
* applications describe their ontology, not PostgreSQL expressions or generated columns.
|
|
47
|
+
* This is maintenance: backfills may block writes and must not run in a request handler. */
|
|
48
|
+
export async function prepareObjectQueries(input: {
|
|
49
|
+
projectId: string
|
|
50
|
+
ontology: OntologyDefinitionCatalog
|
|
51
|
+
storage: Storage
|
|
52
|
+
}): Promise<ObjectQueryPreparationResult> {
|
|
53
|
+
if (!isQueryPreparationCapableStorage(input.storage)) {
|
|
54
|
+
throw new Error("[Sixb] This storage provider does not support object query preparation")
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const values = input.ontology.getValueTypesById()
|
|
58
|
+
const objectTypes = input.ontology.listObjectTypes().map((type) => ({
|
|
59
|
+
objectTypeId: type.id,
|
|
60
|
+
properties: type.properties
|
|
61
|
+
.filter((property) => property.mode !== "telemetry" && !property.primary)
|
|
62
|
+
.map((property) => {
|
|
63
|
+
const capabilities = resolvePropertyQueryCapabilities(property, values)
|
|
64
|
+
const schema = resolveQuerySchema(property.schema, values)
|
|
65
|
+
return {
|
|
66
|
+
propertyId: property.id,
|
|
67
|
+
scalarKind: schema ? queryScalarKindForSchema(schema) : undefined,
|
|
68
|
+
filterable: capabilities.operators.includes("eq"),
|
|
69
|
+
sortable: capabilities.sortable,
|
|
70
|
+
text: capabilities.text,
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
.filter((property) => property.filterable || property.sortable || property.text),
|
|
74
|
+
indexes: type.query?.indexes ?? [],
|
|
75
|
+
}))
|
|
76
|
+
return input.storage.prepareObjectQueries({ projectId: input.projectId, objectTypes })
|
|
77
|
+
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { AuthorizablePrincipal } from "../../execution/types"
|
|
2
|
-
import type { EventExecutor } from "../../materialization/events"
|
|
3
1
|
import type {
|
|
4
2
|
EditCommitResult,
|
|
5
3
|
OntologyMaterializationOrigin,
|
|
@@ -56,12 +54,9 @@ interface OntologyCommitFields {
|
|
|
56
54
|
readonly id: string
|
|
57
55
|
readonly idempotencyKey: string
|
|
58
56
|
readonly requestHash: string
|
|
57
|
+
/** The execution the commit ran under: who asked for it and what wrote it live there. */
|
|
59
58
|
readonly executionId: string
|
|
60
59
|
readonly origin: OntologyMaterializationOrigin
|
|
61
|
-
/** Principal on whose behalf the execution ran, copied from `ExecutionRecord.requestedBy`. */
|
|
62
|
-
readonly requestedBy?: AuthorizablePrincipal
|
|
63
|
-
/** Workload that wrote the commit, copied from its execution. */
|
|
64
|
-
readonly executor: EventExecutor
|
|
65
60
|
readonly ontologyRevision: string
|
|
66
61
|
readonly projectionRevision?: string
|
|
67
62
|
readonly ownershipHash?: string
|
|
@@ -7,14 +7,17 @@ import type { AssertSourceMaterializationExecution } from "../sources"
|
|
|
7
7
|
import { InMemoryOntologyCommitStorage } from "./commits"
|
|
8
8
|
import { InMemoryOntologyMaterializationStorage } from "./materializations"
|
|
9
9
|
import { InMemoryOntologyOutboxStorage } from "./outbox"
|
|
10
|
+
import { InMemoryOntologyReplacementPlanStorage } from "./replacement-plans"
|
|
10
11
|
import {
|
|
11
12
|
cloneOntologyState,
|
|
12
13
|
createInMemoryOntologyState,
|
|
14
|
+
type InMemoryExecutionReader,
|
|
13
15
|
type InMemoryOntologyState,
|
|
14
16
|
type InMemoryOntologyStorageTestHooks,
|
|
15
17
|
restoreOntologyState,
|
|
16
18
|
} from "./shared-state"
|
|
17
19
|
import { InMemoryOntologySourceStorage } from "./sources"
|
|
20
|
+
import { InMemoryMaterializationStateReader } from "./state-reader"
|
|
18
21
|
import {
|
|
19
22
|
type InMemoryOntologyStorageTestingAdapter,
|
|
20
23
|
registerInMemoryOntologyStorageTestingAdapter,
|
|
@@ -27,7 +30,7 @@ interface InMemoryOntologyStorageOptions {
|
|
|
27
30
|
readonly getTransactionToken: () => object | null
|
|
28
31
|
readonly getMaterializationLifecycle: () => ProviderMaterializationTransactionLifecycle | null
|
|
29
32
|
readonly assertSourceMaterializationExecution: AssertSourceMaterializationExecution
|
|
30
|
-
readonly
|
|
33
|
+
readonly readExecution: InMemoryExecutionReader
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
import { InMemoryVectorIndexingStorage } from "./vector-indexing"
|
|
@@ -40,6 +43,7 @@ export class InMemoryOntologyStorage implements OntologyStorage {
|
|
|
40
43
|
readonly commits: InMemoryOntologyCommitStorage
|
|
41
44
|
readonly sources: InMemoryOntologySourceStorage
|
|
42
45
|
readonly materializations: InMemoryOntologyMaterializationStorage
|
|
46
|
+
readonly replacementPlans: InMemoryOntologyReplacementPlanStorage
|
|
43
47
|
readonly outbox: InMemoryOntologyOutboxStorage
|
|
44
48
|
private testHooks: InMemoryOntologyStorageTestHooks = {}
|
|
45
49
|
private readonly testingAdapter: InMemoryOntologyStorageTestingAdapter = {
|
|
@@ -72,20 +76,35 @@ export class InMemoryOntologyStorage implements OntologyStorage {
|
|
|
72
76
|
options.runRootOperation,
|
|
73
77
|
options.assertSourceMaterializationExecution
|
|
74
78
|
)
|
|
75
|
-
this.outbox = new InMemoryOntologyOutboxStorage(
|
|
79
|
+
this.outbox = new InMemoryOntologyOutboxStorage(
|
|
80
|
+
this.state,
|
|
81
|
+
options.runRootOperation,
|
|
82
|
+
options.readExecution
|
|
83
|
+
)
|
|
84
|
+
const hooks: InMemoryOntologyStorageTestHooks = {
|
|
85
|
+
beforeRead: (boundary) => this.testHooks.beforeRead?.(boundary),
|
|
86
|
+
beforeWrite: (boundary, ordinal) => this.testHooks.beforeWrite?.(boundary, ordinal),
|
|
87
|
+
observeBuffer: (boundary, rows) => this.testHooks.observeBuffer?.(boundary, rows),
|
|
88
|
+
observeWork: (records) => this.testHooks.observeWork?.(records),
|
|
89
|
+
}
|
|
90
|
+
const reader = new InMemoryMaterializationStateReader(this.state, objects, timeseries, hooks)
|
|
76
91
|
this.materializations = new InMemoryOntologyMaterializationStorage(
|
|
77
92
|
this.state,
|
|
78
93
|
objects,
|
|
79
94
|
timeseries,
|
|
95
|
+
reader,
|
|
80
96
|
options.getTransactionToken,
|
|
81
97
|
options.getMaterializationLifecycle,
|
|
82
|
-
options.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
98
|
+
options.readExecution,
|
|
99
|
+
hooks
|
|
100
|
+
)
|
|
101
|
+
this.replacementPlans = new InMemoryOntologyReplacementPlanStorage(
|
|
102
|
+
this.state,
|
|
103
|
+
objects,
|
|
104
|
+
reader,
|
|
105
|
+
options.runRootOperation,
|
|
106
|
+
options.assertSourceMaterializationExecution,
|
|
107
|
+
hooks
|
|
89
108
|
)
|
|
90
109
|
registerInMemoryOntologyStorageTestingAdapter(this, this.testingAdapter)
|
|
91
110
|
}
|
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
PinnedDatasetVersion,
|
|
9
9
|
TelemetryCommitResult,
|
|
10
10
|
} from "../../../materialization/model"
|
|
11
|
-
import { linkRefSortKey } from "../../../materialization/refs"
|
|
11
|
+
import { linkRefKey, linkRefSortKey, objectRefKey } from "../../../materialization/refs"
|
|
12
12
|
import {
|
|
13
13
|
getInMemoryObjectMaterializerAdapter,
|
|
14
14
|
type InMemoryObjectStorage,
|
|
@@ -34,12 +34,12 @@ export function assertFinalizationCorrelations(
|
|
|
34
34
|
result.created !== true ||
|
|
35
35
|
!Number.isSafeInteger(result.eventCount) ||
|
|
36
36
|
result.eventCount < 0 ||
|
|
37
|
-
result.eventCount !== session.
|
|
37
|
+
result.eventCount !== session.outboxWrites.size
|
|
38
38
|
) {
|
|
39
39
|
invalidCorrelation("Materialization result does not correlate with its commit intent.")
|
|
40
40
|
}
|
|
41
41
|
for (let ordinal = 0; ordinal < result.eventCount; ordinal += 1) {
|
|
42
|
-
if (!session.
|
|
42
|
+
if (!session.outboxWrites.has(ordinal)) {
|
|
43
43
|
invalidCorrelation("Outbox event ordinals must be contiguous from zero.")
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -63,7 +63,7 @@ export function assertFinalizationCorrelations(
|
|
|
63
63
|
assertSourceActivationCorrelation(activation, session, state)
|
|
64
64
|
}
|
|
65
65
|
if (sourceActivations[0]) {
|
|
66
|
-
|
|
66
|
+
assertPlanCoverage(session, sourceActivations[0])
|
|
67
67
|
}
|
|
68
68
|
assertFinalizedWork(session, state, objects)
|
|
69
69
|
if (commit.intent.kind === "projection") {
|
|
@@ -317,16 +317,8 @@ function assertFinalizedWork(
|
|
|
317
317
|
state: InMemoryOntologyState,
|
|
318
318
|
objects: InMemoryObjectStorage
|
|
319
319
|
): void {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
if (expectedPlanItems.length > 0 && !session.workStreams.apply.completed) {
|
|
323
|
-
invalidCorrelation("Materialization plan work was not fully streamed.")
|
|
324
|
-
}
|
|
325
|
-
if (stableJsonStringify(appliedPlanItems) !== stableJsonStringify(expectedPlanItems)) {
|
|
326
|
-
invalidCorrelation("Materialization plan work was not applied exactly once.")
|
|
327
|
-
}
|
|
328
|
-
if (session.cardinalityWork.length > 0 && !session.workStreams.cardinality.completed) {
|
|
329
|
-
invalidCorrelation("Materialization cardinality work was not fully validated.")
|
|
320
|
+
if (!session.applied) {
|
|
321
|
+
invalidCorrelation("A materialization plan must apply before it finalizes.")
|
|
330
322
|
}
|
|
331
323
|
assertFinalCardinality(session.cardinalityWork, session.header.commit.projectId, objects)
|
|
332
324
|
if (session.header.commit.intent.kind === "telemetry") {
|
|
@@ -339,28 +331,25 @@ function assertFinalizedWork(
|
|
|
339
331
|
}
|
|
340
332
|
|
|
341
333
|
const expectedEvents = [...session.eventWork].sort(compareEventWork)
|
|
342
|
-
if (
|
|
343
|
-
invalidCorrelation("Materialization event work was not fully drained.")
|
|
344
|
-
}
|
|
345
|
-
if (session.outboxEnvelopes.size !== expectedEvents.length) {
|
|
334
|
+
if (session.outboxWrites.size !== expectedEvents.length) {
|
|
346
335
|
invalidCorrelation("Materialization event work was not fully written to the outbox.")
|
|
347
336
|
}
|
|
348
337
|
for (let ordinal = 0; ordinal < expectedEvents.length; ordinal += 1) {
|
|
349
338
|
const expected = expectedEvents[ordinal]
|
|
350
|
-
const actual = session.
|
|
339
|
+
const actual = session.outboxWrites.get(ordinal)
|
|
351
340
|
if (!expected || !actual) {
|
|
352
341
|
invalidCorrelation("Materialization event work was not fully written to the outbox.")
|
|
353
342
|
}
|
|
354
|
-
const { id, commitOrdinal, ...actualDraft } = actual
|
|
355
343
|
if (
|
|
356
|
-
commitOrdinal !== ordinal ||
|
|
357
|
-
id !==
|
|
358
|
-
|
|
344
|
+
actual.commitOrdinal !== ordinal ||
|
|
345
|
+
actual.id !==
|
|
346
|
+
createEventId(session.header.commit.projectId, session.header.commit.id, ordinal) ||
|
|
347
|
+
stableJsonStringify(actual.event) !== stableJsonStringify(expected.draft)
|
|
359
348
|
) {
|
|
360
349
|
invalidCorrelation("Materialization outbox event does not match its staged event work.")
|
|
361
350
|
}
|
|
362
351
|
const persisted = state.outbox.get(outboxKey(session.header.commit.projectId, actual.id))
|
|
363
|
-
if (!persisted || stableJsonStringify(persisted.
|
|
352
|
+
if (!persisted || stableJsonStringify(persisted.event) !== stableJsonStringify(actual.event)) {
|
|
364
353
|
invalidCorrelation("Materialization outbox event was not persisted.")
|
|
365
354
|
}
|
|
366
355
|
}
|
|
@@ -380,26 +369,15 @@ function assertFinalCardinality(
|
|
|
380
369
|
readonly occupiedLinkKeys: Set<string>
|
|
381
370
|
}
|
|
382
371
|
>()
|
|
383
|
-
|
|
384
|
-
let occupiedCount = 0
|
|
372
|
+
// Apply already rejected a scope with two staged occupants; this checks what it wrote.
|
|
385
373
|
for (const record of effectiveOccupants) {
|
|
386
|
-
if (record.scopeSortKey !== currentScope) {
|
|
387
|
-
currentScope = record.scopeSortKey
|
|
388
|
-
occupiedCount = 0
|
|
389
|
-
}
|
|
390
374
|
const scope = scopes.get(record.scopeSortKey) ?? {
|
|
391
375
|
source: structuredClone(record.ref.source),
|
|
392
376
|
linkId: record.ref.linkId,
|
|
393
377
|
occupiedLinkKeys: new Set<string>(),
|
|
394
378
|
}
|
|
395
379
|
scopes.set(record.scopeSortKey, scope)
|
|
396
|
-
if (record.occupied)
|
|
397
|
-
occupiedCount += 1
|
|
398
|
-
scope.occupiedLinkKeys.add(record.linkSortKey)
|
|
399
|
-
if (occupiedCount > 1) {
|
|
400
|
-
invalidCorrelation("Materialization cardinality work violates cardinality-one.")
|
|
401
|
-
}
|
|
402
|
-
}
|
|
380
|
+
if (record.occupied) scope.occupiedLinkKeys.add(record.linkSortKey)
|
|
403
381
|
}
|
|
404
382
|
|
|
405
383
|
const adapter = getInMemoryObjectMaterializerAdapter(objects)
|
|
@@ -422,48 +400,37 @@ function assertFinalCardinality(
|
|
|
422
400
|
}
|
|
423
401
|
}
|
|
424
402
|
|
|
425
|
-
|
|
403
|
+
/** Every identity the plan decides with a diff is classified once, and nothing else is. */
|
|
404
|
+
function assertPlanCoverage(
|
|
426
405
|
session: SessionState,
|
|
427
406
|
activation: import("../materializations").SourceActivationWrite
|
|
428
407
|
): void {
|
|
429
|
-
const
|
|
408
|
+
const plan = session.plan
|
|
430
409
|
if (
|
|
431
|
-
!
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
replacement.candidate.projectionKind !== activation.projectionKind ||
|
|
436
|
-
replacement.candidate.protocol !== activation.protocol
|
|
410
|
+
!plan ||
|
|
411
|
+
plan.sourceId !== activation.source.projectionId ||
|
|
412
|
+
plan.materializationId !== activation.materializationId ||
|
|
413
|
+
plan.projectionKind !== activation.projectionKind
|
|
437
414
|
) {
|
|
438
|
-
invalidCorrelation(
|
|
439
|
-
"Source activation does not match the replacement candidate opened by the session."
|
|
440
|
-
)
|
|
415
|
+
invalidCorrelation("Source activation does not match the replacement plan the session applies.")
|
|
441
416
|
}
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
const expectedObjectKeys =
|
|
452
|
-
activation.projectionKind === "object" ? [...replacement.objects.keys()].sort() : []
|
|
453
|
-
const expectedLinkKeys = [...replacement.links.entries()]
|
|
454
|
-
.filter(([, value]) => value.diffRequired)
|
|
455
|
-
.map(([key]) => key)
|
|
456
|
-
.sort()
|
|
417
|
+
const expected = (kind: "object" | "link") =>
|
|
418
|
+
[...plan.identities.values()]
|
|
419
|
+
.filter((identity) => identity.entity.kind === kind && identity.diffRequired)
|
|
420
|
+
.map((identity) =>
|
|
421
|
+
identity.entity.kind === "object"
|
|
422
|
+
? objectRefKey(identity.entity.ref)
|
|
423
|
+
: linkRefKey(identity.entity.ref)
|
|
424
|
+
)
|
|
425
|
+
.sort()
|
|
457
426
|
if (
|
|
458
427
|
stableJsonStringify(classificationKeys(session, "object")) !==
|
|
459
|
-
stableJsonStringify(
|
|
428
|
+
stableJsonStringify(expected("object")) ||
|
|
460
429
|
stableJsonStringify(classificationKeys(session, "link")) !==
|
|
461
|
-
stableJsonStringify(
|
|
430
|
+
stableJsonStringify(expected("link")) ||
|
|
462
431
|
classificationKeys(session, "point").length > 0
|
|
463
432
|
) {
|
|
464
|
-
invalidCorrelation(
|
|
465
|
-
"Projection replacement classification coverage does not match its streamed state."
|
|
466
|
-
)
|
|
433
|
+
invalidCorrelation("Projection replacement classification coverage does not match its plan.")
|
|
467
434
|
}
|
|
468
435
|
}
|
|
469
436
|
|
|
@@ -4,7 +4,6 @@ import type {
|
|
|
4
4
|
EffectiveObjectSnapshot,
|
|
5
5
|
OntologyLinkRef,
|
|
6
6
|
} from "../../../materialization/model"
|
|
7
|
-
import { linkRefKey, linkRefSortKey, linkScopeSortKey } from "../../../materialization/refs"
|
|
8
7
|
import type { ObjectLinkRow, ObjectRow } from "../../objects/types"
|
|
9
8
|
import type { TimeseriesPoint } from "../../timeseries/types"
|
|
10
9
|
import type {
|
|
@@ -19,7 +18,6 @@ import type {
|
|
|
19
18
|
StoredSourceLinkAssertion,
|
|
20
19
|
StoredSourceObjectAssertion,
|
|
21
20
|
} from "../sources"
|
|
22
|
-
import type { ReplacementSessionState } from "./materializations"
|
|
23
21
|
import type {
|
|
24
22
|
InMemoryOntologyState,
|
|
25
23
|
InMemorySourceMaterialization,
|
|
@@ -158,23 +156,3 @@ export function storedSourceLink(
|
|
|
158
156
|
if (!materializationId || !row || row.assertion.kind !== "link") return null
|
|
159
157
|
return storedSource(sourceId, materializationId, row) as StoredSourceLinkAssertion
|
|
160
158
|
}
|
|
161
|
-
|
|
162
|
-
export function addReplacementLink(
|
|
163
|
-
replacement: ReplacementSessionState,
|
|
164
|
-
ref: OntologyLinkRef,
|
|
165
|
-
diffRequired: boolean
|
|
166
|
-
): void {
|
|
167
|
-
const key = linkRefKey(ref)
|
|
168
|
-
const existing = replacement.links.get(key)
|
|
169
|
-
if (existing) {
|
|
170
|
-
existing.diffRequired ||= diffRequired
|
|
171
|
-
if (diffRequired) replacement.affectedScopes.add(linkScopeSortKey(ref.source, ref.linkId))
|
|
172
|
-
return
|
|
173
|
-
}
|
|
174
|
-
replacement.links.set(key, {
|
|
175
|
-
ref: structuredClone(ref),
|
|
176
|
-
sortKey: linkRefSortKey(ref),
|
|
177
|
-
diffRequired,
|
|
178
|
-
})
|
|
179
|
-
if (diffRequired) replacement.affectedScopes.add(linkScopeSortKey(ref.source, ref.linkId))
|
|
180
|
-
}
|
|
@@ -1,57 +1,12 @@
|
|
|
1
|
-
import { stableJsonStringify } from "../../../json"
|
|
2
1
|
import { MaterializationConflictError } from "../../../materialization/errors"
|
|
3
2
|
import type {
|
|
4
|
-
MaterializationPlanChunk,
|
|
5
3
|
StoredLinkOverride,
|
|
6
4
|
StoredLinkSlotOverride,
|
|
7
5
|
StoredObjectOverride,
|
|
8
6
|
} from "../materializations"
|
|
9
|
-
import { invalidCorrelation, materializationPlanItems } from "../provider-work"
|
|
10
|
-
import type { SessionState } from "./materializations"
|
|
11
7
|
|
|
12
8
|
export * from "../provider-work"
|
|
13
9
|
|
|
14
|
-
export function assertChunkSequence(session: SessionState, chunk: MaterializationPlanChunk): void {
|
|
15
|
-
const planItems = materializationPlanItems(chunk)
|
|
16
|
-
const applyStream = session.workStreams.apply
|
|
17
|
-
const appliedStart = session.appliedPlanItems.length
|
|
18
|
-
if (
|
|
19
|
-
planItems.length > 0 &&
|
|
20
|
-
(!applyStream.started || appliedStart + planItems.length > applyStream.emittedCount)
|
|
21
|
-
) {
|
|
22
|
-
invalidCorrelation("Materialization plan items cannot be applied before they are streamed.")
|
|
23
|
-
}
|
|
24
|
-
for (let offset = 0; offset < planItems.length; offset += 1) {
|
|
25
|
-
const expected = session.applyWork[appliedStart + offset]?.item
|
|
26
|
-
if (!expected || stableJsonStringify(planItems[offset]) !== stableJsonStringify(expected)) {
|
|
27
|
-
invalidCorrelation("Materialization plan items must be applied in exact streamed order.")
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const eventStream = session.workStreams.event
|
|
32
|
-
const appliedOutboxCount = session.outboxEnvelopes.size
|
|
33
|
-
if (
|
|
34
|
-
chunk.outbox.length > 0 &&
|
|
35
|
-
(!eventStream.started || appliedOutboxCount + chunk.outbox.length > eventStream.emittedCount)
|
|
36
|
-
) {
|
|
37
|
-
invalidCorrelation("Materialization events cannot be applied before they are streamed.")
|
|
38
|
-
}
|
|
39
|
-
for (let offset = 0; offset < chunk.outbox.length; offset += 1) {
|
|
40
|
-
const expected = session.eventWork[appliedOutboxCount + offset]
|
|
41
|
-
const actual = chunk.outbox[offset]?.envelope
|
|
42
|
-
if (!expected || !actual) {
|
|
43
|
-
invalidCorrelation("Materialization outbox events must follow exact streamed order.")
|
|
44
|
-
}
|
|
45
|
-
const { id: _id, commitOrdinal, ...actualDraft } = actual
|
|
46
|
-
if (
|
|
47
|
-
commitOrdinal !== appliedOutboxCount + offset ||
|
|
48
|
-
stableJsonStringify(actualDraft) !== stableJsonStringify(expected.draft)
|
|
49
|
-
) {
|
|
50
|
-
invalidCorrelation("Materialization outbox events must follow exact streamed order.")
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
10
|
export function assertLastCommit(
|
|
56
11
|
value: StoredObjectOverride | StoredLinkOverride | StoredLinkSlotOverride | undefined,
|
|
57
12
|
expected: string | null,
|