@sixb/core 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/index.js +30 -27
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +1 -1
- package/dist/actions/types/context.d.ts +2 -2
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +6 -2
- package/dist/actions/worker.js.map +3 -3
- package/dist/agents/adapters.d.ts +7 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +7 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context/entries.d.ts +10 -1
- package/dist/agents/context/entries.d.ts.map +1 -1
- package/dist/agents/context/index.d.ts +1 -1
- package/dist/agents/context/index.d.ts.map +1 -1
- package/dist/agents/context/index.js +4 -2
- package/dist/agents/context/index.js.map +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +54 -46
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +8 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/request.d.ts +19 -5
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts +41 -0
- package/dist/agents/skills.d.ts.map +1 -0
- package/dist/agents/streams/index.js +1 -1
- package/dist/agents/streams/internal.js +1 -1
- package/dist/agents/types.d.ts +33 -4
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/index.js +9 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/types.d.ts +6 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +5 -3
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/download-urls.d.ts +41 -0
- package/dist/blob-storage/download-urls.d.ts.map +1 -0
- package/dist/blob-storage/execution.d.ts +9 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/file-content.d.ts +18 -0
- package/dist/blob-storage/file-content.d.ts.map +1 -0
- package/dist/blob-storage/index.d.ts +1 -1
- package/dist/blob-storage/index.d.ts.map +1 -1
- package/dist/blob-storage/index.js +6 -4
- package/dist/blob-storage/index.js.map +1 -1
- package/dist/blob-storage/internal.d.ts +4 -0
- package/dist/blob-storage/internal.d.ts.map +1 -0
- package/dist/blob-storage/internal.js +23 -0
- package/dist/blob-storage/internal.js.map +9 -0
- package/dist/blob-storage/media-type.d.ts +8 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -0
- package/dist/blob-storage/types.d.ts +12 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/blob-storage/validation.d.ts +6 -0
- package/dist/blob-storage/validation.d.ts.map +1 -1
- package/dist/bootstrap/agent-context.d.ts +33 -0
- package/dist/bootstrap/agent-context.d.ts.map +1 -0
- package/dist/bootstrap/discovery.d.ts +23 -3
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +287 -75
- package/dist/bootstrap/index.js.map +4 -3
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-kttr5ftm.js → chunk-1b1f2d5f.js} +23 -6
- package/dist/chunk-1b1f2d5f.js.map +12 -0
- package/dist/{chunk-hgqpcmyr.js → chunk-1hqwggsn.js} +47 -19
- package/dist/chunk-1hqwggsn.js.map +12 -0
- package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
- package/dist/chunk-1sr8ryzk.js.map +11 -0
- package/dist/{chunk-4gmng3vf.js → chunk-22v5bpz3.js} +1 -1
- package/dist/{chunk-tnvafr7g.js → chunk-29yx306f.js} +124 -9
- package/dist/chunk-29yx306f.js.map +22 -0
- package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
- package/dist/chunk-3zxk45er.js +152 -0
- package/dist/chunk-3zxk45er.js.map +11 -0
- package/dist/{chunk-gmdvns8f.js → chunk-48e3cn2d.js} +2 -2
- package/dist/{chunk-jgwb25gc.js → chunk-4as3wt1c.js} +13 -5
- package/dist/chunk-4as3wt1c.js.map +12 -0
- package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
- package/dist/chunk-6gmfggss.js.map +10 -0
- package/dist/{chunk-2xvgy3x5.js → chunk-6h5m9xjx.js} +43 -415
- package/dist/{chunk-2xvgy3x5.js.map → chunk-6h5m9xjx.js.map} +7 -11
- package/dist/{chunk-cq44v1a6.js → chunk-7hpdd6r9.js} +3 -3
- package/dist/{chunk-f85hpqnm.js → chunk-99nd4rc1.js} +3 -3
- package/dist/{chunk-f85hpqnm.js.map → chunk-99nd4rc1.js.map} +3 -3
- package/dist/chunk-b9affek3.js +261 -0
- package/dist/chunk-b9affek3.js.map +12 -0
- package/dist/{chunk-zvmr2hqk.js → chunk-bs7sqkre.js} +10 -4
- package/dist/chunk-bs7sqkre.js.map +12 -0
- package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
- package/dist/{chunk-667x4drs.js → chunk-d0eb5yy6.js} +143 -7
- package/dist/chunk-d0eb5yy6.js.map +14 -0
- package/dist/chunk-d62kjtbg.js.map +2 -2
- package/dist/{chunk-gkxsenvp.js → chunk-de4z2bj6.js} +31 -7
- package/dist/{chunk-gkxsenvp.js.map → chunk-de4z2bj6.js.map} +5 -4
- package/dist/{chunk-mdnw7nj8.js → chunk-dnmadg9k.js} +35 -10
- package/dist/chunk-dnmadg9k.js.map +15 -0
- package/dist/chunk-enpsx8k5.js +127 -0
- package/dist/chunk-enpsx8k5.js.map +10 -0
- package/dist/{chunk-xnx96gfy.js → chunk-ere85b8y.js} +17 -8
- package/dist/chunk-ere85b8y.js.map +15 -0
- package/dist/{chunk-k4kkp58d.js → chunk-ewqa58h9.js} +12 -2
- package/dist/chunk-ewqa58h9.js.map +11 -0
- package/dist/{chunk-7g2gjvah.js → chunk-ex496vct.js} +1 -1
- package/dist/{chunk-nvymebc1.js → chunk-f1zxad2t.js} +1 -1
- package/dist/{chunk-3q7z9hd4.js → chunk-fe52eczz.js} +483 -101
- package/dist/chunk-fe52eczz.js.map +49 -0
- package/dist/{chunk-8x74221e.js → chunk-fx93hd2n.js} +79 -32
- package/dist/chunk-fx93hd2n.js.map +20 -0
- package/dist/{chunk-39tqv9hz.js → chunk-gc4ntf7d.js} +6 -7
- package/dist/{chunk-39tqv9hz.js.map → chunk-gc4ntf7d.js.map} +3 -4
- package/dist/chunk-h8teetr0.js +9 -0
- package/dist/chunk-h8teetr0.js.map +10 -0
- package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
- package/dist/chunk-hkc3jct7.js.map +10 -0
- package/dist/chunk-hn2r7z41.js.map +1 -1
- package/dist/{chunk-h044jb97.js → chunk-htr6wjmv.js} +282 -58
- package/dist/chunk-htr6wjmv.js.map +19 -0
- package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
- package/dist/chunk-jhm3zsa7.js.map +12 -0
- package/dist/{chunk-chdg6eqq.js → chunk-k6hrnf35.js} +5 -5
- package/dist/chunk-k6hrnf35.js.map +10 -0
- package/dist/{chunk-a0073121.js → chunk-kpx7jrmn.js} +3 -1
- package/dist/chunk-kpx7jrmn.js.map +12 -0
- package/dist/{chunk-b9y8hcm2.js → chunk-mfs23znk.js} +1 -1
- package/dist/{chunk-kvysp909.js → chunk-ny3xyvcn.js} +32 -19
- package/dist/chunk-ny3xyvcn.js.map +17 -0
- package/dist/{chunk-h4138ww2.js → chunk-p0dqwj3n.js} +450 -799
- package/dist/chunk-p0dqwj3n.js.map +49 -0
- package/dist/{chunk-f72rbvsb.js → chunk-p844e0rn.js} +23 -8
- package/dist/chunk-p844e0rn.js.map +19 -0
- package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
- package/dist/chunk-pfp1txq2.js.map +11 -0
- package/dist/chunk-pqajwytd.js.map +3 -3
- package/dist/{chunk-mr60an99.js → chunk-qczk96d9.js} +22 -2
- package/dist/{chunk-mr60an99.js.map → chunk-qczk96d9.js.map} +3 -3
- package/dist/{chunk-69kt9q43.js → chunk-qkbx3tf6.js} +17 -128
- package/dist/{chunk-69kt9q43.js.map → chunk-qkbx3tf6.js.map} +6 -7
- package/dist/{chunk-h866d223.js → chunk-qkvz64nd.js} +2 -2
- package/dist/{chunk-vsvrv7n8.js → chunk-qmnnhde6.js} +4 -8
- package/dist/{chunk-vsvrv7n8.js.map → chunk-qmnnhde6.js.map} +3 -3
- package/dist/{chunk-6z1q7j19.js → chunk-qq90g05n.js} +1128 -782
- package/dist/chunk-qq90g05n.js.map +66 -0
- package/dist/{chunk-40qb8wpe.js → chunk-qxvp5epv.js} +84 -29
- package/dist/{chunk-40qb8wpe.js.map → chunk-qxvp5epv.js.map} +10 -9
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-s3csryxe.js → chunk-rj69qcrd.js} +8 -2
- package/dist/chunk-rj69qcrd.js.map +11 -0
- package/dist/{chunk-tkdbge6v.js → chunk-rt9p8m9t.js} +1 -1
- package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
- package/dist/chunk-rz53yb4v.js.map +14 -0
- package/dist/{chunk-a7ne02hk.js → chunk-s4jhg8a3.js} +351 -296
- package/dist/chunk-s4jhg8a3.js.map +15 -0
- package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
- package/dist/chunk-s54c868q.js.map +12 -0
- package/dist/{chunk-dsv8kdgk.js → chunk-tffvfy6s.js} +8 -7
- package/dist/{chunk-dsv8kdgk.js.map → chunk-tffvfy6s.js.map} +3 -3
- package/dist/{chunk-sbcm1b92.js → chunk-v6xpd60t.js} +3 -3
- package/dist/{chunk-nj0020ay.js → chunk-vgk3hknm.js} +1 -1
- package/dist/{chunk-qnd7ehe5.js → chunk-vx2yp45y.js} +2 -2
- package/dist/{chunk-vjqt7q3a.js → chunk-vz3gc1tm.js} +607 -45
- package/dist/chunk-vz3gc1tm.js.map +41 -0
- package/dist/{chunk-g4rbm4a6.js → chunk-wt4szfec.js} +379 -331
- package/dist/chunk-wt4szfec.js.map +14 -0
- package/dist/chunk-xt1zt7gv.js +471 -0
- package/dist/chunk-xt1zt7gv.js.map +13 -0
- package/dist/{chunk-swxzncrv.js → chunk-y05543x6.js} +51 -8
- package/dist/{chunk-swxzncrv.js.map → chunk-y05543x6.js.map} +5 -5
- package/dist/{chunk-zdkcdshk.js → chunk-y9jmd7e5.js} +41 -3
- package/dist/{chunk-zdkcdshk.js.map → chunk-y9jmd7e5.js.map} +4 -3
- package/dist/{chunk-nkbev3tr.js → chunk-yv9czyfr.js} +3 -3
- package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
- package/dist/chunk-yw9pyg66.js.map +11 -0
- package/dist/{chunk-cxj8y8t0.js → chunk-za5yd58j.js} +2 -2
- package/dist/{chunk-zb47r1c8.js → chunk-zb77kjth.js} +3 -3
- package/dist/{chunk-dp7yk20b.js → chunk-zxawp1n2.js} +1 -1
- package/dist/datasets/builders.d.ts +12 -1
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +27 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -1
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/types.d.ts +2 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +5 -0
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +10 -5
- package/dist/datasets/write.js.map +1 -1
- package/dist/edits/properties.d.ts.map +1 -1
- package/dist/events/execution.d.ts +2 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/types/objects.d.ts +5 -0
- package/dist/events/types/objects.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +10 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +49 -43
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +9 -2
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +45 -41
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +46 -42
- package/dist/execution/request.js.map +2 -2
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +16 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -71
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +5 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +1 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +8 -5
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/types.d.ts +26 -0
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +5 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/maintenance/types.d.ts +1 -4
- package/dist/maintenance/types.d.ts.map +1 -1
- package/dist/materialization/event-envelopes.d.ts +20 -0
- package/dist/materialization/event-envelopes.d.ts.map +1 -0
- package/dist/materialization/events.d.ts +29 -3
- package/dist/materialization/events.d.ts.map +1 -1
- package/dist/materialization/index.d.ts +4 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +9 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -10
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/effective/build-events.d.ts +5 -21
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- package/dist/materializer/effective/vector-indexing.d.ts +2 -3
- package/dist/materializer/effective/vector-indexing.d.ts.map +1 -1
- package/dist/materializer/effective/vectors.d.ts +2 -3
- package/dist/materializer/effective/vectors.d.ts.map +1 -1
- package/dist/materializer/execution/scope.d.ts +1 -11
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- package/dist/materializer/execution/work-executor.d.ts +5 -7
- package/dist/materializer/execution/work-executor.d.ts.map +1 -1
- package/dist/materializer/execution/work-records.d.ts +1 -3
- package/dist/materializer/execution/work-records.d.ts.map +1 -1
- package/dist/materializer/index.js +35 -33
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replace.d.ts.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +8 -11
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/shared/batching.d.ts +5 -0
- package/dist/materializer/shared/batching.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -8
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/audio/catalog.d.ts +20 -0
- package/dist/models/audio/catalog.d.ts.map +1 -0
- package/dist/models/audio/errors.d.ts +8 -0
- package/dist/models/audio/errors.d.ts.map +1 -0
- package/dist/models/audio/file.d.ts +9 -0
- package/dist/models/audio/file.d.ts.map +1 -0
- package/dist/models/audio/runtime.d.ts +8 -0
- package/dist/models/audio/runtime.d.ts.map +1 -0
- package/dist/models/audio/types.d.ts +60 -0
- package/dist/models/audio/types.d.ts.map +1 -0
- package/dist/models/catalog.d.ts +24 -2
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/definitions.d.ts +1 -1
- package/dist/models/definitions.d.ts.map +1 -1
- package/dist/models/events.d.ts +3 -0
- package/dist/models/events.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +6 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.js +27 -24
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-admission.d.ts +6 -1
- package/dist/models/execution/model-call-admission.d.ts.map +1 -1
- package/dist/models/execution/model-call-limits.d.ts.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +4 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution/reranking.d.ts +4 -0
- package/dist/models/execution/reranking.d.ts.map +1 -0
- package/dist/models/execution/usage.d.ts.map +1 -1
- package/dist/models/execution.d.ts +2 -1
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/generation-types.d.ts +2 -0
- package/dist/models/generation-types.d.ts.map +1 -1
- package/dist/models/index.d.ts +7 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +6 -2
- package/dist/models/index.js.map +1 -1
- package/dist/models/language-model.d.ts +6 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/models/pricing.d.ts +2 -2
- package/dist/models/pricing.d.ts.map +1 -1
- package/dist/models/reranking-model.d.ts +49 -0
- package/dist/models/reranking-model.d.ts.map +1 -0
- package/dist/objects/context/index.d.ts +1 -1
- package/dist/objects/context/index.d.ts.map +1 -1
- package/dist/objects/context/types.d.ts +6 -0
- package/dist/objects/context/types.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +2 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +31 -27
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +41 -0
- package/dist/objects/property-clearance.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +5 -1
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.d.ts +1 -1
- package/dist/objects/query/index.d.ts.map +1 -1
- package/dist/objects/query/index.js +27 -24
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +8 -1
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/planner.d.ts +1 -1
- package/dist/objects/query/planner.d.ts.map +1 -1
- package/dist/objects/query/primary-id.d.ts +7 -0
- package/dist/objects/query/primary-id.d.ts.map +1 -0
- package/dist/objects/query/reranking-executor.d.ts +13 -0
- package/dist/objects/query/reranking-executor.d.ts.map +1 -0
- package/dist/objects/query/reranking-limits.d.ts +3 -0
- package/dist/objects/query/reranking-limits.d.ts.map +1 -0
- package/dist/objects/query/reranking-query.d.ts +4 -0
- package/dist/objects/query/reranking-query.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts +10 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/file-handle.d.ts +6 -0
- package/dist/objects/sdk/file-handle.d.ts.map +1 -0
- package/dist/objects/sdk/object-handle.d.ts +2 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -0
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -0
- package/dist/objects/sdk/query-builder.d.ts.map +1 -1
- package/dist/objects/sdk/query-executor.d.ts +2 -2
- package/dist/objects/sdk/query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/vectors/indexing-dispatch.d.ts +21 -0
- package/dist/objects/vectors/indexing-dispatch.d.ts.map +1 -0
- package/dist/objects/vectors/query.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +12 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +35 -0
- package/dist/ontology/docs-markdown.d.ts.map +1 -0
- package/dist/ontology/docs.d.ts +50 -0
- package/dist/ontology/docs.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +1 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +7 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +19 -0
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +3 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +276 -3
- package/dist/ontology/internal.js.map +4 -3
- package/dist/ontology/query-capabilities.d.ts +1 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +8 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +25 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +7 -0
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +29 -26
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +27 -24
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.d.ts +4 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +3 -0
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +4 -0
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +11 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +3 -1
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +14 -2
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +32 -27
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/locale.d.ts +9 -0
- package/dist/runtime/locale.d.ts.map +1 -0
- package/dist/runtime/public-origin.d.ts +10 -0
- package/dist/runtime/public-origin.d.ts.map +1 -0
- package/dist/runtime/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +1 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +42 -5
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +7 -6
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/runtime.d.ts +3 -0
- package/dist/scheduler/runtime.d.ts.map +1 -1
- package/dist/security/builders.d.ts +11 -2
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/index.d.ts +4 -4
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/markings.d.ts +19 -0
- package/dist/security/markings.d.ts.map +1 -0
- package/dist/security/redactions.d.ts +4 -0
- package/dist/security/redactions.d.ts.map +1 -0
- package/dist/security/registry.d.ts +7 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +25 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -21
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +5 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +15 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +1 -0
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +3 -3
- package/dist/storage/ai-cost/types.d.ts +1 -1
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/validation.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/ai-limits/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-limits/provider.d.ts +7 -2
- package/dist/storage/ai-limits/provider.d.ts.map +1 -1
- package/dist/storage/ai-limits/provider.js +4 -2
- package/dist/storage/ai-limits/provider.js.map +1 -1
- package/dist/storage/ai-limits/types.d.ts +3 -0
- package/dist/storage/ai-limits/types.d.ts.map +1 -1
- package/dist/storage/ai-usage/record.d.ts.map +1 -1
- package/dist/storage/ai-usage/types.d.ts +8 -4
- package/dist/storage/ai-usage/types.d.ts.map +1 -1
- package/dist/storage/ai-usage/usage.d.ts.map +1 -1
- package/dist/storage/file-download-grants/in-memory.d.ts +11 -0
- package/dist/storage/file-download-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/file-download-grants/index.d.ts +3 -0
- package/dist/storage/file-download-grants/index.d.ts.map +1 -0
- package/dist/storage/file-download-grants/record.d.ts +11 -0
- package/dist/storage/file-download-grants/record.d.ts.map +1 -0
- package/dist/storage/file-download-grants/types.d.ts +44 -0
- package/dist/storage/file-download-grants/types.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +10 -7
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/in-memory/index.d.ts +4 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +6 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +35 -32
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -0
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +9 -4
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/migrations/index.d.ts +1 -1
- package/dist/storage/migrations/index.d.ts.map +1 -1
- package/dist/storage/migrations/migrate-storage.d.ts +3 -3
- package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
- package/dist/storage/migrations/types.d.ts +7 -0
- package/dist/storage/migrations/types.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
- package/dist/storage/objects/query-preparation.d.ts +39 -0
- package/dist/storage/objects/query-preparation.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +9 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +1 -6
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/index.d.ts +4 -2
- package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations-state.d.ts +0 -2
- package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations-work.d.ts +1 -3
- package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +23 -57
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/outbox.d.ts +3 -2
- package/dist/storage/ontology/in-memory/outbox.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/replacement-plans.d.ts +104 -0
- package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/shared-state.d.ts +17 -2
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts +3 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +1 -2
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/state-reader.d.ts +25 -0
- package/dist/storage/ontology/in-memory/state-reader.d.ts.map +1 -0
- package/dist/storage/ontology/index.d.ts +6 -3
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/materializations.d.ts +40 -59
- package/dist/storage/ontology/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/outbox.d.ts +4 -6
- package/dist/storage/ontology/outbox.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts +114 -3
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -39
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +26 -12
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/replacement-plans.d.ts +103 -0
- package/dist/storage/ontology/replacement-plans.d.ts.map +1 -0
- package/dist/storage/ontology/sources.d.ts +0 -8
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/projection-runs/types.d.ts +2 -0
- package/dist/storage/projection-runs/types.d.ts.map +1 -1
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +10 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +30 -27
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
- package/dist/testing/file-download-grant-storage-contract.d.ts +9 -0
- package/dist/testing/file-download-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2556 -1495
- package/dist/testing/index.js.map +14 -13
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/materializer-storage-contract.d.ts +14 -0
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
- package/dist/testing/ontology-contract-fixture.d.ts +5 -1
- package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +25 -22
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +15 -17
- package/dist/workers/index.js.map +3 -3
- package/dist/workers/queue-worker.d.ts +3 -2
- package/dist/workers/queue-worker.d.ts.map +1 -1
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +51 -47
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +6 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +2 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/actions/read-facade.ts +2 -1
- package/src/actions/types/context.ts +5 -2
- package/src/actions/validation.ts +4 -1
- package/src/agents/adapters.ts +15 -0
- package/src/agents/authority.ts +15 -0
- package/src/agents/context/entries.ts +48 -4
- package/src/agents/context/index.ts +1 -0
- package/src/agents/context-compaction.ts +6 -0
- package/src/agents/errors.ts +3 -0
- package/src/agents/index.ts +13 -1
- package/src/agents/message.ts +9 -0
- package/src/agents/request.ts +178 -22
- package/src/agents/skills.ts +63 -0
- package/src/agents/types.ts +35 -5
- package/src/auth/runtime.ts +14 -0
- package/src/auth/types.ts +6 -0
- package/src/authorization/resolve.ts +6 -1
- package/src/authorization/types.ts +7 -0
- package/src/blob-storage/download-urls.ts +138 -0
- package/src/blob-storage/execution.ts +44 -1
- package/src/blob-storage/file-content.ts +106 -0
- package/src/blob-storage/index.ts +1 -0
- package/src/blob-storage/internal.ts +8 -0
- package/src/blob-storage/media-type.ts +29 -0
- package/src/blob-storage/types.ts +13 -1
- package/src/blob-storage/validation.ts +13 -0
- package/src/bootstrap/agent-context.ts +356 -0
- package/src/bootstrap/discovery.ts +100 -33
- package/src/bootstrap/index.ts +1 -1
- package/src/bootstrap/ontology-type-manifest.ts +3 -38
- package/src/datasets/builders.ts +17 -1
- package/src/datasets/execution.ts +110 -2
- package/src/datasets/index.ts +7 -1
- package/src/datasets/types.ts +2 -0
- package/src/datasets/write.ts +21 -2
- package/src/edits/properties.ts +3 -0
- package/src/events/execution.ts +15 -16
- package/src/events/types/objects.ts +5 -0
- package/src/execution/agent.ts +27 -0
- package/src/execution/authorization.ts +1 -0
- package/src/execution/authorized-object-reader.ts +104 -35
- package/src/execution/scopes.ts +2 -6
- package/src/http/api-routes.ts +4 -3
- package/src/index.ts +52 -2
- package/src/lake-storage/in-memory.ts +38 -9
- package/src/lake-storage/index.ts +2 -0
- package/src/lake-storage/types.ts +30 -0
- package/src/maintenance/ontology-maintenance.ts +50 -23
- package/src/maintenance/types.ts +1 -4
- package/src/materialization/event-envelopes.ts +168 -0
- package/src/materialization/events.ts +40 -4
- package/src/materialization/index.ts +9 -1
- package/src/materializer/README.md +55 -10
- package/src/materializer/edits/commit.ts +3 -19
- package/src/materializer/edits/plan.ts +20 -71
- package/src/materializer/effective/build-events.ts +42 -136
- package/src/materializer/effective/vector-indexing.ts +2 -3
- package/src/materializer/effective/vectors.ts +2 -3
- package/src/materializer/execution/scope.ts +1 -38
- package/src/materializer/execution/work-executor.ts +21 -115
- package/src/materializer/execution/work-records.ts +0 -15
- package/src/materializer/projections/replace.ts +106 -63
- package/src/materializer/projections/replacement-plan.ts +73 -218
- package/src/materializer/shared/batching.ts +7 -0
- package/src/materializer/telemetry/append.ts +2 -14
- package/src/materializer/telemetry/plan.ts +6 -43
- package/src/models/audio/catalog.ts +90 -0
- package/src/models/audio/errors.ts +19 -0
- package/src/models/audio/file.ts +78 -0
- package/src/models/audio/runtime.ts +182 -0
- package/src/models/audio/types.ts +69 -0
- package/src/models/catalog.ts +78 -7
- package/src/models/definitions.ts +8 -1
- package/src/models/events.ts +3 -0
- package/src/models/execution/README.md +24 -4
- package/src/models/execution/binding.ts +6 -0
- package/src/models/execution/model-call-admission.ts +6 -1
- package/src/models/execution/model-call-limits.ts +21 -11
- package/src/models/execution/model-call-recorder.ts +11 -0
- package/src/models/execution/model-call-recovery.ts +1 -0
- package/src/models/execution/reranking.ts +137 -0
- package/src/models/execution/session.ts +2 -2
- package/src/models/execution/usage.ts +1 -0
- package/src/models/execution.ts +11 -3
- package/src/models/generation-types.ts +2 -0
- package/src/models/index.ts +32 -0
- package/src/models/language-model.ts +6 -0
- package/src/models/pricing.ts +2 -1
- package/src/models/reranking-model.ts +114 -0
- package/src/objects/context/index.ts +1 -0
- package/src/objects/context/types.ts +7 -0
- package/src/objects/execution.ts +4 -1
- package/src/objects/materializer-adapter.ts +3 -0
- package/src/objects/object/upsert-batch.ts +4 -1
- package/src/objects/object/upsert.ts +3 -1
- package/src/objects/property-clearance.ts +209 -0
- package/src/objects/query/executor.ts +85 -38
- package/src/objects/query/explain.ts +8 -0
- package/src/objects/query/index.ts +1 -0
- package/src/objects/query/ir.ts +10 -0
- package/src/objects/query/normalize.ts +2 -0
- package/src/objects/query/planner.ts +12 -1
- package/src/objects/query/primary-id.ts +56 -0
- package/src/objects/query/reranking-executor.ts +91 -0
- package/src/objects/query/reranking-limits.ts +3 -0
- package/src/objects/query/reranking-query.ts +8 -0
- package/src/objects/query/validate.ts +166 -15
- package/src/objects/sdk/file-handle.ts +77 -0
- package/src/objects/sdk/object-handle.ts +8 -4
- package/src/objects/sdk/object-set.ts +5 -2
- package/src/objects/sdk/query-builder.ts +15 -2
- package/src/objects/sdk/query-executor.ts +2 -2
- package/src/objects/sdk/runtime-query-executor.ts +7 -4
- package/src/objects/vectors/README.md +6 -2
- package/src/objects/vectors/indexing-dispatch.ts +83 -0
- package/src/objects/vectors/query.ts +3 -0
- package/src/ontology/builders.ts +19 -2
- package/src/ontology/docs-markdown.ts +394 -0
- package/src/ontology/docs.ts +196 -0
- package/src/ontology/index.ts +2 -0
- package/src/ontology/inference/index.ts +25 -0
- package/src/ontology/internal.ts +7 -0
- package/src/ontology/query-capabilities.ts +1 -1
- package/src/ontology/tokens.ts +13 -2
- package/src/ontology/types.ts +26 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/query.ts +57 -0
- package/src/ontology/validation/schema.ts +26 -1
- package/src/query.ts +4 -0
- package/src/queues/in-memory.ts +54 -19
- package/src/queues/types.ts +4 -0
- package/src/runtime/create.ts +34 -4
- package/src/runtime/definitions.ts +3 -1
- package/src/runtime/host.ts +73 -2
- package/src/runtime/index.ts +4 -0
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/locale.ts +26 -0
- package/src/runtime/public-origin.ts +33 -0
- package/src/runtime/resolve-definitions.ts +28 -1
- package/src/runtime/sixb.ts +14 -3
- package/src/runtime/types.ts +51 -5
- package/src/scheduler/runtime.ts +11 -2
- package/src/security/builders.ts +49 -5
- package/src/security/index.ts +6 -1
- package/src/security/markings.ts +313 -0
- package/src/security/redactions.ts +6 -0
- package/src/security/registry.ts +21 -1
- package/src/security/types.ts +26 -0
- package/src/security/validation.ts +59 -2
- package/src/storage/agents/provider.ts +11 -0
- package/src/storage/agents/types.ts +15 -7
- package/src/storage/ai-cost/analytics.ts +2 -0
- package/src/storage/ai-cost/codec.ts +2 -1
- package/src/storage/ai-cost/types.ts +1 -0
- package/src/storage/ai-cost/validation.ts +21 -8
- package/src/storage/ai-limits/in-memory.ts +10 -2
- package/src/storage/ai-limits/provider.ts +29 -2
- package/src/storage/ai-limits/types.ts +3 -0
- package/src/storage/ai-usage/record.ts +9 -0
- package/src/storage/ai-usage/types.ts +8 -4
- package/src/storage/ai-usage/usage.ts +2 -0
- package/src/storage/file-download-grants/in-memory.ts +73 -0
- package/src/storage/file-download-grants/index.ts +8 -0
- package/src/storage/file-download-grants/record.ts +47 -0
- package/src/storage/file-download-grants/types.ts +48 -0
- package/src/storage/in-memory/index.ts +13 -2
- package/src/storage/index.ts +32 -13
- package/src/storage/internal.ts +1 -0
- package/src/storage/migrations/index.ts +1 -0
- package/src/storage/migrations/migrate-storage.ts +36 -12
- package/src/storage/migrations/types.ts +8 -0
- package/src/storage/objects/in-memory/query.ts +2 -0
- package/src/storage/objects/in-memory/selected-reader.ts +1 -0
- package/src/storage/objects/in-memory/storage.ts +1 -0
- package/src/storage/objects/query-preparation.ts +77 -0
- package/src/storage/objects/types.ts +9 -0
- package/src/storage/ontology/commits.ts +1 -6
- package/src/storage/ontology/in-memory/index.ts +28 -9
- package/src/storage/ontology/in-memory/materializations-finalization.ts +35 -68
- package/src/storage/ontology/in-memory/materializations-state.ts +0 -22
- package/src/storage/ontology/in-memory/materializations-work.ts +0 -45
- package/src/storage/ontology/in-memory/materializations.ts +172 -653
- package/src/storage/ontology/in-memory/outbox.ts +37 -29
- package/src/storage/ontology/in-memory/replacement-plans.ts +697 -0
- package/src/storage/ontology/in-memory/shared-state.ts +24 -2
- package/src/storage/ontology/in-memory/source-roots.ts +7 -2
- package/src/storage/ontology/in-memory/sources.ts +7 -33
- package/src/storage/ontology/in-memory/state-reader.ts +245 -0
- package/src/storage/ontology/index.ts +19 -13
- package/src/storage/ontology/materializations.ts +45 -74
- package/src/storage/ontology/outbox.ts +4 -7
- package/src/storage/ontology/provider-header-validation.ts +0 -57
- package/src/storage/ontology/provider-work.ts +381 -90
- package/src/storage/ontology/provider.ts +74 -171
- package/src/storage/ontology/replacement-plans.ts +117 -0
- package/src/storage/ontology/sources.ts +0 -12
- package/src/storage/operation-scope.ts +33 -1
- package/src/storage/projection-runs/in-memory.ts +7 -1
- package/src/storage/projection-runs/types.ts +2 -0
- package/src/storage/types.ts +2 -0
- package/src/testing/ai-cost-storage-contract.ts +1 -0
- package/src/testing/ai-limit-storage-contract.ts +62 -0
- package/src/testing/ai-usage-storage-contract.ts +31 -0
- package/src/testing/file-download-grant-storage-contract.ts +139 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/lake-storage-contract.ts +87 -1
- package/src/testing/materializer-storage-contract.ts +1008 -1
- package/src/testing/object-read-scope-contract.ts +1 -0
- package/src/testing/ontology-contract-fixture.ts +11 -87
- package/src/testing/ontology-storage-contract.ts +70 -39
- package/src/testing/projection-run-storage-contract.ts +14 -0
- package/src/testing/queues-contract.ts +59 -0
- package/src/workers/queue-worker.ts +19 -16
- package/src/workflows/builders.ts +24 -1
- package/src/workflows/request.ts +3 -0
- package/src/workflows/types.ts +6 -3
- package/src/workflows/validation.ts +32 -4
- package/dist/chunk-3q7z9hd4.js.map +0 -46
- package/dist/chunk-667x4drs.js.map +0 -12
- package/dist/chunk-69266efg.js.map +0 -12
- package/dist/chunk-6z1q7j19.js.map +0 -62
- package/dist/chunk-7ytf06d3.js +0 -113
- package/dist/chunk-7ytf06d3.js.map +0 -10
- package/dist/chunk-8x74221e.js.map +0 -20
- package/dist/chunk-91kcnbf0.js.map +0 -10
- package/dist/chunk-98cw09sw.js.map +0 -10
- package/dist/chunk-9vx5e9g1.js.map +0 -11
- package/dist/chunk-a0073121.js.map +0 -12
- package/dist/chunk-a7ne02hk.js.map +0 -15
- package/dist/chunk-cd234ba4.js.map +0 -14
- package/dist/chunk-chdg6eqq.js.map +0 -10
- package/dist/chunk-dmn70ztd.js.map +0 -11
- package/dist/chunk-f72rbvsb.js.map +0 -19
- package/dist/chunk-g4rbm4a6.js.map +0 -15
- package/dist/chunk-h044jb97.js.map +0 -15
- package/dist/chunk-h3v76ams.js.map +0 -11
- package/dist/chunk-h4138ww2.js.map +0 -50
- package/dist/chunk-hgqpcmyr.js.map +0 -12
- package/dist/chunk-jgwb25gc.js.map +0 -12
- package/dist/chunk-k4kkp58d.js.map +0 -11
- package/dist/chunk-kttr5ftm.js.map +0 -12
- package/dist/chunk-kvysp909.js.map +0 -17
- package/dist/chunk-mdnw7nj8.js.map +0 -15
- package/dist/chunk-s3csryxe.js.map +0 -11
- package/dist/chunk-tnvafr7g.js.map +0 -19
- package/dist/chunk-vjqt7q3a.js.map +0 -36
- package/dist/chunk-xnx96gfy.js.map +0 -15
- package/dist/chunk-z5rnrmz1.js.map +0 -11
- package/dist/chunk-zvmr2hqk.js.map +0 -12
- package/dist/materializer/execution/plan-stream.d.ts +0 -8
- package/dist/materializer/execution/plan-stream.d.ts.map +0 -1
- package/src/materializer/execution/plan-stream.ts +0 -121
- /package/dist/{chunk-4gmng3vf.js.map → chunk-22v5bpz3.js.map} +0 -0
- /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
- /package/dist/{chunk-gmdvns8f.js.map → chunk-48e3cn2d.js.map} +0 -0
- /package/dist/{chunk-cq44v1a6.js.map → chunk-7hpdd6r9.js.map} +0 -0
- /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
- /package/dist/{chunk-7g2gjvah.js.map → chunk-ex496vct.js.map} +0 -0
- /package/dist/{chunk-nvymebc1.js.map → chunk-f1zxad2t.js.map} +0 -0
- /package/dist/{chunk-b9y8hcm2.js.map → chunk-mfs23znk.js.map} +0 -0
- /package/dist/{chunk-h866d223.js.map → chunk-qkvz64nd.js.map} +0 -0
- /package/dist/{chunk-tkdbge6v.js.map → chunk-rt9p8m9t.js.map} +0 -0
- /package/dist/{chunk-sbcm1b92.js.map → chunk-v6xpd60t.js.map} +0 -0
- /package/dist/{chunk-nj0020ay.js.map → chunk-vgk3hknm.js.map} +0 -0
- /package/dist/{chunk-qnd7ehe5.js.map → chunk-vx2yp45y.js.map} +0 -0
- /package/dist/{chunk-nkbev3tr.js.map → chunk-yv9czyfr.js.map} +0 -0
- /package/dist/{chunk-cxj8y8t0.js.map → chunk-za5yd58j.js.map} +0 -0
- /package/dist/{chunk-zb47r1c8.js.map → chunk-zb77kjth.js.map} +0 -0
- /package/dist/{chunk-dp7yk20b.js.map → chunk-zxawp1n2.js.map} +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { RerankingModel } from "../../models/reranking-model"
|
|
2
|
+
import { validateRerankingResults } from "../../models/reranking-model"
|
|
3
|
+
import type { ObjectRow, QueryObjectsResult } from "../../storage"
|
|
4
|
+
import { vectorSources } from "../vectors/profile"
|
|
5
|
+
import { ObjectQueryExecutionError } from "./errors"
|
|
6
|
+
import type { ObjectQuery, ObjectQueryVector } from "./ir"
|
|
7
|
+
import { MAX_RERANK_INPUT_BYTES } from "./reranking-limits"
|
|
8
|
+
|
|
9
|
+
/** Receives only rows from the authorized reader; never rereads unmasked storage. */
|
|
10
|
+
export async function rerankObjectCandidates(input: {
|
|
11
|
+
readonly query: ObjectQuery
|
|
12
|
+
readonly vector: ObjectQueryVector
|
|
13
|
+
readonly candidates: readonly ObjectRow[]
|
|
14
|
+
readonly model: RerankingModel
|
|
15
|
+
readonly signal?: AbortSignal
|
|
16
|
+
readonly includeTotal?: boolean
|
|
17
|
+
}): Promise<QueryObjectsResult> {
|
|
18
|
+
const { vector, candidates, model, signal } = input
|
|
19
|
+
if (typeof vector.vector !== "string" || !vector.source) {
|
|
20
|
+
throw new ObjectQueryExecutionError(
|
|
21
|
+
"invalid_rerank_input",
|
|
22
|
+
"Reranking requires a validated text vector query."
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
signal?.throwIfAborted()
|
|
26
|
+
if (candidates.length > vector.k) {
|
|
27
|
+
throw new ObjectQueryExecutionError(
|
|
28
|
+
"rerank_candidate_limit_exceeded",
|
|
29
|
+
"Storage exceeded the admitted vector candidate bound."
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
const source = vector.source
|
|
33
|
+
const documents = candidates.map((row) => vectorSources(source, row.properties).text)
|
|
34
|
+
const encoder = new TextEncoder()
|
|
35
|
+
const bytes =
|
|
36
|
+
encoder.encode(vector.vector).byteLength +
|
|
37
|
+
documents.reduce((sum, text) => sum + encoder.encode(text).byteLength, 0)
|
|
38
|
+
if (bytes > MAX_RERANK_INPUT_BYTES) {
|
|
39
|
+
throw new ObjectQueryExecutionError(
|
|
40
|
+
"rerank_input_limit_exceeded",
|
|
41
|
+
"Reranking input exceeds 1 MiB. Use fewer candidates or shorter profile sources."
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const results =
|
|
46
|
+
documents.length === 0
|
|
47
|
+
? []
|
|
48
|
+
: (await model.rerank({ query: vector.vector, documents, signal })).results
|
|
49
|
+
signal?.throwIfAborted()
|
|
50
|
+
const ranking = validateRerankingResults(results, candidates.length)
|
|
51
|
+
const rows = ranking.map(({ index, score }) => ({ ...candidates[index]!, score }))
|
|
52
|
+
const shaped = shapeRerankedRows(input.query, rows)
|
|
53
|
+
return {
|
|
54
|
+
objects: shaped.rows,
|
|
55
|
+
hasMore: shaped.hasMore,
|
|
56
|
+
...(input.includeTotal === false ? {} : { total: shaped.total }),
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function shapeRerankedRows(
|
|
61
|
+
query: ObjectQuery,
|
|
62
|
+
rows: readonly ObjectRow[]
|
|
63
|
+
): { rows: readonly ObjectRow[]; total: number; hasMore: boolean } {
|
|
64
|
+
if (query.kind === "rerank") return { rows, total: rows.length, hasMore: false }
|
|
65
|
+
if (query.kind === "limit") {
|
|
66
|
+
const input = shapeRerankedRows(query.input, rows)
|
|
67
|
+
return {
|
|
68
|
+
rows: input.rows.slice(0, query.limit),
|
|
69
|
+
total: input.total,
|
|
70
|
+
hasMore: input.hasMore || query.limit < input.rows.length,
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (query.kind === "project") {
|
|
74
|
+
const input = shapeRerankedRows(query.input, rows)
|
|
75
|
+
if (!query.properties) return input
|
|
76
|
+
const properties = new Set(query.properties)
|
|
77
|
+
return {
|
|
78
|
+
...input,
|
|
79
|
+
rows: input.rows.map((row) => ({
|
|
80
|
+
...row,
|
|
81
|
+
properties: Object.fromEntries(
|
|
82
|
+
Object.entries(row.properties).filter(([key]) => properties.has(key))
|
|
83
|
+
),
|
|
84
|
+
})),
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw new ObjectQueryExecutionError(
|
|
88
|
+
"invalid_rerank_composition",
|
|
89
|
+
"Only limit and project may follow reranking."
|
|
90
|
+
)
|
|
91
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ObjectQuery, ObjectQueryRerank } from "./ir"
|
|
2
|
+
|
|
3
|
+
/** Validation permits output shaping only after the explicit reranking stage. */
|
|
4
|
+
export function findQueryReranking(query: ObjectQuery): ObjectQueryRerank | undefined {
|
|
5
|
+
if (query.kind === "rerank") return query
|
|
6
|
+
if (query.kind === "limit" || query.kind === "project") return findQueryReranking(query.input)
|
|
7
|
+
return undefined
|
|
8
|
+
}
|
|
@@ -31,6 +31,7 @@ import type {
|
|
|
31
31
|
QueryScalarKind,
|
|
32
32
|
} from "./ir"
|
|
33
33
|
import { normalizeObjectQuery } from "./normalize"
|
|
34
|
+
import { MAX_RERANK_CANDIDATES } from "./reranking-limits"
|
|
34
35
|
|
|
35
36
|
export interface ObjectQueryValidationIssue {
|
|
36
37
|
path: string
|
|
@@ -41,7 +42,10 @@ export interface ObjectQueryValidationIssue {
|
|
|
41
42
|
export interface ValidatedObjectQuery {
|
|
42
43
|
query: ObjectQuery
|
|
43
44
|
result: ObjectQueryResultShape
|
|
44
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Every object type the query touches, including intermediate traversal types and the subtypes
|
|
47
|
+
* an outgoing link can reach.
|
|
48
|
+
*/
|
|
45
49
|
touchedObjectTypeIds: readonly string[]
|
|
46
50
|
}
|
|
47
51
|
|
|
@@ -158,6 +162,67 @@ const NOOP_QUERY_ADMISSION: ObjectQuerySemanticAdmission = Object.freeze({
|
|
|
158
162
|
input.states[0] ?? NOOP_ADMISSION_STATE,
|
|
159
163
|
})
|
|
160
164
|
|
|
165
|
+
/**
|
|
166
|
+
* Admit a query only when both admissions admit it, each reducing its own state.
|
|
167
|
+
*
|
|
168
|
+
* The first denial wins, in order, so composing keeps each admission's messages unchanged.
|
|
169
|
+
*/
|
|
170
|
+
export function composeObjectQueryAdmissions(
|
|
171
|
+
first: ObjectQuerySemanticAdmission,
|
|
172
|
+
second: ObjectQuerySemanticAdmission
|
|
173
|
+
): ObjectQuerySemanticAdmission {
|
|
174
|
+
const parts = new WeakMap<
|
|
175
|
+
ObjectQueryAdmissionState,
|
|
176
|
+
readonly [ObjectQueryAdmissionState, ObjectQueryAdmissionState]
|
|
177
|
+
>()
|
|
178
|
+
const join = (
|
|
179
|
+
left: ObjectQueryAdmissionState,
|
|
180
|
+
right: ObjectQueryAdmissionState
|
|
181
|
+
): ObjectQueryAdmissionState => {
|
|
182
|
+
const state = Object.freeze({})
|
|
183
|
+
parts.set(state, [left, right])
|
|
184
|
+
return state
|
|
185
|
+
}
|
|
186
|
+
const split = (state: ObjectQueryAdmissionState) => {
|
|
187
|
+
const pair = parts.get(state)
|
|
188
|
+
if (!pair) throw new Error("[Sixb] Composed query admission received a foreign state.")
|
|
189
|
+
return pair
|
|
190
|
+
}
|
|
191
|
+
const transition = (
|
|
192
|
+
left: ObjectQueryAdmissionTransition,
|
|
193
|
+
right: ObjectQueryAdmissionTransition
|
|
194
|
+
): ObjectQueryAdmissionTransition => {
|
|
195
|
+
const denial = left.denial ?? right.denial
|
|
196
|
+
return { state: join(left.state, right.state), ...(denial ? { denial } : {}) }
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const admission: ObjectQuerySemanticAdmission = {
|
|
200
|
+
empty: () => join(first.empty(), second.empty()),
|
|
201
|
+
source: (input) => transition(first.source(input), second.source(input)),
|
|
202
|
+
edge: (input) => {
|
|
203
|
+
const [left, right] = split(input.state)
|
|
204
|
+
return transition(
|
|
205
|
+
first.edge({ ...input, state: left }),
|
|
206
|
+
second.edge({ ...input, state: right })
|
|
207
|
+
)
|
|
208
|
+
},
|
|
209
|
+
property: (input) => {
|
|
210
|
+
const [left, right] = split(input.state)
|
|
211
|
+
return (
|
|
212
|
+
first.property({ ...input, state: left }) ?? second.property({ ...input, state: right })
|
|
213
|
+
)
|
|
214
|
+
},
|
|
215
|
+
set: (input) => {
|
|
216
|
+
const pairs = input.states.map(split)
|
|
217
|
+
return join(
|
|
218
|
+
first.set({ ...input, states: pairs.map(([left]) => left) }),
|
|
219
|
+
second.set({ ...input, states: pairs.map(([, right]) => right) })
|
|
220
|
+
)
|
|
221
|
+
},
|
|
222
|
+
}
|
|
223
|
+
return Object.freeze(admission)
|
|
224
|
+
}
|
|
225
|
+
|
|
161
226
|
export function validateObjectQuery(
|
|
162
227
|
query: ObjectQuery,
|
|
163
228
|
options: ObjectQueryValidationOptions
|
|
@@ -223,7 +288,7 @@ function validateVectorComposition(query: ObjectQuery, ctx: QueryValidationConte
|
|
|
223
288
|
path: "$",
|
|
224
289
|
code: "vector.composition",
|
|
225
290
|
message:
|
|
226
|
-
"Vector profiles support one top-k over one concrete type, with filters, traversals or sets before ranking
|
|
291
|
+
"Vector profiles support one top-k over one concrete type, with filters, traversals or sets before ranking, optional reranking, then limit/project.",
|
|
227
292
|
})
|
|
228
293
|
}
|
|
229
294
|
|
|
@@ -373,6 +438,37 @@ function dispatchQueryNode(
|
|
|
373
438
|
),
|
|
374
439
|
}
|
|
375
440
|
}
|
|
441
|
+
case "rerank": {
|
|
442
|
+
const input = validateQueryNode(query.input, `${path}.input`, ctx)
|
|
443
|
+
if (
|
|
444
|
+
input.query.kind !== "vector" ||
|
|
445
|
+
typeof input.query.vector !== "string" ||
|
|
446
|
+
input.query.k > MAX_RERANK_CANDIDATES
|
|
447
|
+
) {
|
|
448
|
+
addIssue(
|
|
449
|
+
ctx,
|
|
450
|
+
path,
|
|
451
|
+
"invalid_rerank_input",
|
|
452
|
+
`Reranking requires a text vector query with k at most ${MAX_RERANK_CANDIDATES}, before limit or project.`
|
|
453
|
+
)
|
|
454
|
+
}
|
|
455
|
+
if (
|
|
456
|
+
typeof query.model?.provider !== "string" ||
|
|
457
|
+
!query.model.provider.trim() ||
|
|
458
|
+
query.model.provider.trim() !== query.model.provider ||
|
|
459
|
+
typeof query.model.modelId !== "string" ||
|
|
460
|
+
!query.model.modelId.trim() ||
|
|
461
|
+
query.model.modelId.trim() !== query.model.modelId
|
|
462
|
+
) {
|
|
463
|
+
addIssue(
|
|
464
|
+
ctx,
|
|
465
|
+
path,
|
|
466
|
+
"invalid_rerank_model",
|
|
467
|
+
"Reranking requires an explicit provider and model ID."
|
|
468
|
+
)
|
|
469
|
+
}
|
|
470
|
+
return { ...input, query: { ...query, model: { ...query.model }, input: input.query } }
|
|
471
|
+
}
|
|
376
472
|
case "set":
|
|
377
473
|
return validateSet(query.inputs, query.op, path, ctx)
|
|
378
474
|
case "sort": {
|
|
@@ -498,9 +594,7 @@ function validateStart(
|
|
|
498
594
|
return { result: { objectTypeIds: [] }, query: { kind: "start", objectTypeId } }
|
|
499
595
|
}
|
|
500
596
|
|
|
501
|
-
const objectTypeIds = includeSubtypes
|
|
502
|
-
? uniqueStrings([objectTypeId, ...ctx.ontology.listSubTypes(objectTypeId)])
|
|
503
|
-
: [objectTypeId]
|
|
597
|
+
const objectTypeIds = includeSubtypes ? withSubtypes([objectTypeId], ctx) : [objectTypeId]
|
|
504
598
|
|
|
505
599
|
return { result: { objectTypeIds }, query: { kind: "start", objectTypeId, includeSubtypes } }
|
|
506
600
|
}
|
|
@@ -863,16 +957,15 @@ function validateTextQuery(
|
|
|
863
957
|
continue
|
|
864
958
|
}
|
|
865
959
|
|
|
866
|
-
|
|
960
|
+
const admitted = admitTextFields(fieldIds, fields === undefined, {
|
|
961
|
+
state: admissionState,
|
|
962
|
+
objectTypeId: objectType.id,
|
|
963
|
+
path: `${path}.fields`,
|
|
964
|
+
ctx,
|
|
965
|
+
})
|
|
966
|
+
if (fieldsByObjectType) fieldsByObjectType[objectType.id] = uniqueStrings(admitted)
|
|
867
967
|
|
|
868
968
|
for (const fieldId of fieldIds) {
|
|
869
|
-
admitProperty(ctx, {
|
|
870
|
-
state: admissionState,
|
|
871
|
-
propertyId: fieldId,
|
|
872
|
-
objectTypeId: objectType.id,
|
|
873
|
-
use: "text",
|
|
874
|
-
path: `${path}.fields`,
|
|
875
|
-
})
|
|
876
969
|
const property = getProperty(objectType, fieldId)
|
|
877
970
|
if (!property) {
|
|
878
971
|
addIssue(
|
|
@@ -901,6 +994,43 @@ function validateTextQuery(
|
|
|
901
994
|
return fieldsByObjectType ? { fieldsByObjectType } : {}
|
|
902
995
|
}
|
|
903
996
|
|
|
997
|
+
/**
|
|
998
|
+
* Admit the fields a text query searches. Every explicit field must be admitted. Default fields
|
|
999
|
+
* come from the type's search profile, so a reader that cannot use one searches the others
|
|
1000
|
+
* instead; only a type left with no usable default field is denied.
|
|
1001
|
+
*/
|
|
1002
|
+
function admitTextFields(
|
|
1003
|
+
fieldIds: readonly string[],
|
|
1004
|
+
defaults: boolean,
|
|
1005
|
+
input: {
|
|
1006
|
+
readonly state: ObjectQueryAdmissionState
|
|
1007
|
+
readonly objectTypeId: string
|
|
1008
|
+
readonly path: string
|
|
1009
|
+
readonly ctx: QueryValidationContext
|
|
1010
|
+
}
|
|
1011
|
+
): readonly string[] {
|
|
1012
|
+
const admitted: string[] = []
|
|
1013
|
+
let firstDenial: Error | undefined
|
|
1014
|
+
for (const fieldId of fieldIds) {
|
|
1015
|
+
const denial = input.ctx.admission.property({
|
|
1016
|
+
state: input.state,
|
|
1017
|
+
propertyId: fieldId,
|
|
1018
|
+
objectTypeId: input.objectTypeId,
|
|
1019
|
+
use: "text",
|
|
1020
|
+
path: input.path,
|
|
1021
|
+
})
|
|
1022
|
+
if (!denial) {
|
|
1023
|
+
admitted.push(fieldId)
|
|
1024
|
+
} else if (!defaults) {
|
|
1025
|
+
recordAdmissionDenial(input.ctx, denial)
|
|
1026
|
+
} else {
|
|
1027
|
+
firstDenial ??= denial
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
if (admitted.length === 0 && firstDenial) recordAdmissionDenial(input.ctx, firstDenial)
|
|
1031
|
+
return admitted
|
|
1032
|
+
}
|
|
1033
|
+
|
|
904
1034
|
function validateVectorProfileQuery(
|
|
905
1035
|
query: ObjectQueryVector,
|
|
906
1036
|
shape: ObjectQueryResultShape,
|
|
@@ -1028,7 +1158,9 @@ function validateOutgoingTraverse(
|
|
|
1028
1158
|
}
|
|
1029
1159
|
}
|
|
1030
1160
|
|
|
1031
|
-
|
|
1161
|
+
const objectTypeIds = uniqueStrings(targetTypeIds)
|
|
1162
|
+
touchLinkTargets(objectTypeIds, ctx)
|
|
1163
|
+
return { objectTypeIds }
|
|
1032
1164
|
}
|
|
1033
1165
|
|
|
1034
1166
|
function validateIncomingTraverse(
|
|
@@ -1229,7 +1361,22 @@ function resolveOutgoingExpansionTargets(
|
|
|
1229
1361
|
)
|
|
1230
1362
|
}
|
|
1231
1363
|
|
|
1232
|
-
|
|
1364
|
+
const objectTypeIds = uniqueStrings(targetTypeIds)
|
|
1365
|
+
touchLinkTargets(objectTypeIds, ctx)
|
|
1366
|
+
return { objectTypeIds }
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
/**
|
|
1370
|
+
* Following a link outgoing reads every subtype of its declared targets: links accept subtype
|
|
1371
|
+
* targets and storage follows them by link id alone. Authorize those reads like a `start` that
|
|
1372
|
+
* includes subtypes; the result shape keeps the declared targets that later nodes validate against.
|
|
1373
|
+
* Incoming edges already name every source type they can return: storage matches a pinned
|
|
1374
|
+
* `sourceObjectTypeId` exactly, and otherwise subtypes inherit the link.
|
|
1375
|
+
*/
|
|
1376
|
+
function touchLinkTargets(objectTypeIds: readonly string[], ctx: QueryValidationContext): void {
|
|
1377
|
+
for (const objectTypeId of withSubtypes(objectTypeIds, ctx)) {
|
|
1378
|
+
ctx.touchedObjectTypeIds.add(objectTypeId)
|
|
1379
|
+
}
|
|
1233
1380
|
}
|
|
1234
1381
|
|
|
1235
1382
|
function resolveIncomingExpansionTargets(
|
|
@@ -1625,6 +1772,10 @@ function uniqueStrings(values: readonly string[]): string[] {
|
|
|
1625
1772
|
return [...new Set(values)]
|
|
1626
1773
|
}
|
|
1627
1774
|
|
|
1775
|
+
function withSubtypes(objectTypeIds: readonly string[], ctx: QueryValidationContext): string[] {
|
|
1776
|
+
return uniqueStrings(objectTypeIds.flatMap((id) => [id, ...ctx.ontology.listSubTypes(id)]))
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1628
1779
|
function admitTransition(
|
|
1629
1780
|
ctx: QueryValidationContext,
|
|
1630
1781
|
transition: ObjectQueryAdmissionTransition
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File handle factory for ObjectReadByIdHandle.
|
|
3
|
+
*
|
|
4
|
+
* Opens a `fileRef` property through the object that holds it, the way the object file content
|
|
5
|
+
* route does: the object is read again with the caller's permissions, the FileRef is resolved in
|
|
6
|
+
* that authorized row, then checked against the stored blob before it is opened.
|
|
7
|
+
*/
|
|
8
|
+
import { AuthorizationError } from "../../authorization/errors"
|
|
9
|
+
import { jsonPointerSegment, openFileRef, resolveFileRefAtPath } from "../../blob-storage/internal"
|
|
10
|
+
import type { Property } from "../../ontology"
|
|
11
|
+
import { OntologyValidationError } from "../../ontology/errors"
|
|
12
|
+
import type { PropertyToken } from "../../ontology/tokens"
|
|
13
|
+
import { assertPropertyTokenBelongsToObjectType } from "../../ontology/validation"
|
|
14
|
+
import type { ObjectFileHandle } from "../../runtime/types"
|
|
15
|
+
import type { ObjectSetContext } from "../context"
|
|
16
|
+
|
|
17
|
+
export function createObjectFileHandle(
|
|
18
|
+
ctx: ObjectSetContext,
|
|
19
|
+
primaryId: string,
|
|
20
|
+
property: PropertyToken<string, string, Property>,
|
|
21
|
+
index?: number
|
|
22
|
+
): ObjectFileHandle {
|
|
23
|
+
const { objectType } = ctx
|
|
24
|
+
assertPropertyTokenBelongsToObjectType(objectType, property)
|
|
25
|
+
const registered = ctx.ontology
|
|
26
|
+
.resolveObjectType(objectType.id)
|
|
27
|
+
.properties.find((candidate) => candidate.id === property.id)
|
|
28
|
+
if (!registered) {
|
|
29
|
+
throw new OntologyValidationError(
|
|
30
|
+
`[Sixb] Unknown property '${property.id}' for object type '${objectType.id}'`
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
const path = filePropertyPath(objectType.id, registered, index)
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
async open() {
|
|
37
|
+
const row = await ctx.objectReader.getByPrimaryId({ objectTypeId: objectType.id, primaryId })
|
|
38
|
+
if (!row) return null
|
|
39
|
+
if (row.redactions?.[property.id]) {
|
|
40
|
+
// Redacted, so the registered property has a marking the caller is not cleared for.
|
|
41
|
+
const markings = registered.markings ?? []
|
|
42
|
+
const marking =
|
|
43
|
+
markings.find((markingId) => !ctx.authorization?.clearances?.has(markingId)) ??
|
|
44
|
+
markings[0]
|
|
45
|
+
throw new AuthorizationError(
|
|
46
|
+
`clearance:marking:${marking}`,
|
|
47
|
+
`[Sixb] Cannot open file '${objectType.id}.${property.id}': it requires clearance for marking '${marking}'.`
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
const fileRef = resolveFileRefAtPath(row, path)
|
|
51
|
+
return fileRef ? openFileRef(ctx.blobStorage, fileRef) : null
|
|
52
|
+
},
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** JSON Pointer to the file in an object row, validated against the property's schema. */
|
|
57
|
+
function filePropertyPath(objectTypeId: string, property: Property, index: number | undefined) {
|
|
58
|
+
const { schema } = property
|
|
59
|
+
const name = `${objectTypeId}.${property.id}`
|
|
60
|
+
if (schema === "fileRef") {
|
|
61
|
+
if (index !== undefined) {
|
|
62
|
+
throw new OntologyValidationError(`[Sixb] Property ${name} holds one file; omit the index.`)
|
|
63
|
+
}
|
|
64
|
+
return `/properties/${jsonPointerSegment(property.id)}`
|
|
65
|
+
}
|
|
66
|
+
if (typeof schema === "object" && schema.type === "array" && schema.items === "fileRef") {
|
|
67
|
+
if (index === undefined || !Number.isSafeInteger(index) || index < 0) {
|
|
68
|
+
throw new OntologyValidationError(
|
|
69
|
+
`[Sixb] Property ${name} holds a list of files; pass the index of the file to open.`
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
return `/properties/${jsonPointerSegment(property.id)}/${index}`
|
|
73
|
+
}
|
|
74
|
+
throw new OntologyValidationError(
|
|
75
|
+
`[Sixb] Property ${name} is not a file: file() takes a "fileRef" property or a list of them.`
|
|
76
|
+
)
|
|
77
|
+
}
|
|
@@ -5,26 +5,27 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import type { ActionDefinition } from "../../actions"
|
|
8
|
-
import type { ObjectLink, ObjectRef } from "../../ontology"
|
|
8
|
+
import type { ObjectLink, ObjectRef, Property } from "../../ontology"
|
|
9
9
|
import { OntologyValidationError } from "../../ontology/errors"
|
|
10
|
-
import type { LinkToken, ObjectTypeWithPropertyTokens } from "../../ontology/tokens"
|
|
10
|
+
import type { LinkToken, ObjectTypeWithPropertyTokens, PropertyToken } from "../../ontology/tokens"
|
|
11
11
|
import { assertLinkTokenBelongsToObjectType } from "../../ontology/validation"
|
|
12
12
|
import type { ObjectByIdHandle, TwinObject } from "../../runtime/types"
|
|
13
13
|
import {
|
|
14
14
|
requestActionAndWait as requestActionAndWaitLeaf,
|
|
15
15
|
requestAction as requestActionLeaf,
|
|
16
16
|
} from "../action"
|
|
17
|
-
import type {
|
|
17
|
+
import type { ObjectSetContext, ResolvedLinkContext } from "../context"
|
|
18
18
|
import { removeLink as removeLinkLeaf, upsertLink as upsertLinkLeaf } from "../link"
|
|
19
19
|
import { deleteObject, restoreObject } from "../object"
|
|
20
20
|
import { createObjectVectorHandle } from "../vectors/handle"
|
|
21
|
+
import { createObjectFileHandle } from "./file-handle"
|
|
21
22
|
import { createTelemetryChannel } from "./telemetry-channel"
|
|
22
23
|
|
|
23
24
|
type ObjectRefInput = ObjectRef
|
|
24
25
|
type AnyLinkToken = LinkToken<string, string, string | readonly string[], ObjectLink>
|
|
25
26
|
|
|
26
27
|
export function createObjectByIdHandle<TObjectType extends ObjectTypeWithPropertyTokens>(
|
|
27
|
-
ctx:
|
|
28
|
+
ctx: ObjectSetContext,
|
|
28
29
|
primaryId: string
|
|
29
30
|
): ObjectByIdHandle<TObjectType> {
|
|
30
31
|
const objectHandle = {
|
|
@@ -130,6 +131,9 @@ export function createObjectByIdHandle<TObjectType extends ObjectTypeWithPropert
|
|
|
130
131
|
},
|
|
131
132
|
|
|
132
133
|
telemetry: createTelemetryChannel<TObjectType>(ctx, primaryId),
|
|
134
|
+
|
|
135
|
+
file: (property: PropertyToken<string, string, Property>, index?: number) =>
|
|
136
|
+
createObjectFileHandle(ctx, primaryId, property, index),
|
|
133
137
|
}
|
|
134
138
|
|
|
135
139
|
return objectHandle as unknown as ObjectByIdHandle<TObjectType>
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import type { ActionDefinition } from "../../actions"
|
|
8
8
|
import type { AuthorizationContext } from "../../authorization"
|
|
9
|
+
import type { BlobStorage } from "../../blob-storage"
|
|
9
10
|
import { shareSixbErrorReporter } from "../../error-reporting/capability"
|
|
10
11
|
import type { ExecutionContext } from "../../execution"
|
|
11
12
|
import { assertAuthorizedObjectReaderBinding } from "../../execution/authorized-object-reader"
|
|
@@ -22,7 +23,7 @@ import {
|
|
|
22
23
|
requestActionAndWait as requestActionAndWaitLeaf,
|
|
23
24
|
requestAction as requestActionLeaf,
|
|
24
25
|
} from "../action"
|
|
25
|
-
import type {
|
|
26
|
+
import type { ObjectSetContext, ResolvedLinkContext } from "../context"
|
|
26
27
|
import { requireLinkDefinition } from "../context"
|
|
27
28
|
import { removeLink as removeLinkLeaf, upsertLink as upsertLinkLeaf } from "../link"
|
|
28
29
|
import { upsertObject as upsertObjectLeaf } from "../object"
|
|
@@ -36,6 +37,7 @@ export function createObjectSet<TObjectType extends ObjectTypeWithPropertyTokens
|
|
|
36
37
|
readonly execution: ExecutionContext
|
|
37
38
|
readonly objectType: TObjectType
|
|
38
39
|
readonly authorization?: AuthorizationContext
|
|
40
|
+
readonly blobStorage: Pick<BlobStorage, "stat" | "open">
|
|
39
41
|
}
|
|
40
42
|
): ObjectSet<TObjectType> {
|
|
41
43
|
assertAuthorizedObjectReaderBinding({
|
|
@@ -67,7 +69,7 @@ export function createObjectSet<TObjectType extends ObjectTypeWithPropertyTokens
|
|
|
67
69
|
objectReader,
|
|
68
70
|
})
|
|
69
71
|
|
|
70
|
-
const resolvedCtx:
|
|
72
|
+
const resolvedCtx: ObjectSetContext = {
|
|
71
73
|
embeddingModels: params.embeddingModels,
|
|
72
74
|
projectId,
|
|
73
75
|
broker,
|
|
@@ -80,6 +82,7 @@ export function createObjectSet<TObjectType extends ObjectTypeWithPropertyTokens
|
|
|
80
82
|
runtimeAuthorization,
|
|
81
83
|
authorization,
|
|
82
84
|
execution,
|
|
85
|
+
blobStorage: params.blobStorage,
|
|
83
86
|
objectType,
|
|
84
87
|
primaryPropertyId,
|
|
85
88
|
}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* `ObjectQueryExecutor` — the server runtime executor or the HTTP client
|
|
7
7
|
* executor — so the same builder serves both sides.
|
|
8
8
|
*/
|
|
9
|
+
|
|
10
|
+
import type { RerankingModelRef } from "../../models/reranking-model"
|
|
9
11
|
import { OntologyValidationError } from "../../ontology/errors"
|
|
10
12
|
import type { LinkToken, ObjectTypeWithPropertyTokens, PropertyToken } from "../../ontology/tokens"
|
|
11
13
|
import { RuntimeError } from "../../runtime/errors"
|
|
@@ -16,7 +18,7 @@ import type {
|
|
|
16
18
|
ObjectExpandOptions,
|
|
17
19
|
ObjectQueryBuilder,
|
|
18
20
|
ObjectQueryFacetInput,
|
|
19
|
-
|
|
21
|
+
ObjectQueryFacetsResult,
|
|
20
22
|
ObjectQueryListOptions,
|
|
21
23
|
ObjectWhereBuilder,
|
|
22
24
|
ObjectWhereClause,
|
|
@@ -118,6 +120,17 @@ class ObjectQueryBuilderImpl<TObjectType extends ObjectTypeWithPropertyTokens> {
|
|
|
118
120
|
})
|
|
119
121
|
}
|
|
120
122
|
|
|
123
|
+
rerank(options: { model: RerankingModelRef }): ObjectQueryBuilder<TObjectType> {
|
|
124
|
+
if (options.model?.definition?.kind !== "reranking") {
|
|
125
|
+
throw new TypeError("[Sixb] rerank() requires an explicit reranking model.")
|
|
126
|
+
}
|
|
127
|
+
return this.withQuery({
|
|
128
|
+
kind: "rerank",
|
|
129
|
+
input: this.ir,
|
|
130
|
+
model: { provider: options.model.providerId, modelId: options.model.modelId },
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
|
|
121
134
|
traverse(
|
|
122
135
|
link: LinkToken<TObjectType["id"], string, string>,
|
|
123
136
|
options?: { direction?: "outgoing" }
|
|
@@ -269,7 +282,7 @@ class ObjectQueryBuilderImpl<TObjectType extends ObjectTypeWithPropertyTokens> {
|
|
|
269
282
|
|
|
270
283
|
async facets(
|
|
271
284
|
input: readonly ObjectQueryFacetInput<TObjectType>[]
|
|
272
|
-
): Promise<
|
|
285
|
+
): Promise<ObjectQueryFacetsResult> {
|
|
273
286
|
return this.params.executor.facets(
|
|
274
287
|
this.ir,
|
|
275
288
|
input.map((facet) => ({
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* runtime implements this against storage, and `@sixb/client` implements it
|
|
6
6
|
* against the HTTP query routes, so both share one builder.
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { ObjectQueryFacetsResult } from "../../runtime/types"
|
|
9
9
|
import type { ObjectQueryExplanation } from "../query/explain"
|
|
10
10
|
import type { ObjectQuery } from "../query/ir"
|
|
11
11
|
import type { ValidatedObjectQuery } from "../query/validate"
|
|
@@ -55,7 +55,7 @@ export interface ObjectQueryExecutor {
|
|
|
55
55
|
facets(
|
|
56
56
|
query: ObjectQuery,
|
|
57
57
|
facets: readonly ObjectQueryExecutorFacetRequest[]
|
|
58
|
-
): Promise<
|
|
58
|
+
): Promise<ObjectQueryFacetsResult>
|
|
59
59
|
/** Validation requires ontology access and is unavailable on remote executors. */
|
|
60
60
|
validate?(query: ObjectQuery): ValidatedObjectQuery
|
|
61
61
|
/** Explanation requires ontology access and is unavailable on remote executors. */
|
|
@@ -46,10 +46,13 @@ export function createRuntimeQueryExecutor(params: {
|
|
|
46
46
|
|
|
47
47
|
async facets(query: ObjectQuery, facets: readonly ObjectQueryExecutorFacetRequest[]) {
|
|
48
48
|
const result = await objectReader.facet({ query, facets })
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
return {
|
|
50
|
+
total: result.total,
|
|
51
|
+
facets: result.facets.map((facet) => ({
|
|
52
|
+
propertyId: facet.propertyId,
|
|
53
|
+
buckets: [...facet.buckets],
|
|
54
|
+
})),
|
|
55
|
+
}
|
|
53
56
|
},
|
|
54
57
|
|
|
55
58
|
validate(query: ObjectQuery) {
|
|
@@ -12,7 +12,8 @@ eligible set after link and property authorization; it never filters a global to
|
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
14
|
Effective object change → invalidate stale vector + persist latest intent (one transaction)
|
|
15
|
-
|
|
15
|
+
Commit wake-up (or API maintenance pass) → durable queue
|
|
16
|
+
ProjectionWorker → project AI admission → provider → save result → fenced commit
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
`materializer/effective/vector-indexing.ts` compares effective source fingerprints after projection
|
|
@@ -22,7 +23,10 @@ There is no historical scan or configuration-only backfill.
|
|
|
22
23
|
|
|
23
24
|
The queue owns delivery leases. Ontology storage owns intent keyed by project/object/profile, plus
|
|
24
25
|
its generation id and `pending → running → ready` state. Dispatch has a separate due time so long
|
|
25
|
-
queues cannot starve later entries.
|
|
26
|
+
queues cannot starve later entries. `indexing-dispatch.ts` enqueues due intent after every commit
|
|
27
|
+
in the committing process and pushes its due time 30 seconds out; the API's maintenance pass
|
|
28
|
+
drains the same path, so intent a crash left undispatched waits at most one pass. Enqueueing the
|
|
29
|
+
same generation twice is safe.
|
|
26
30
|
|
|
27
31
|
`indexing.ts` exposes only a core-owned processing capability. Kernel authority cannot bind the
|
|
28
32
|
public domain SDK. `ontology.indexVectors` authorizes only the persisted results of its work item or durable group.
|