@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,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where each object type's Agent reference doc lives, and which hand-written docs and scripts are
|
|
3
|
+
* mounted next to it.
|
|
4
|
+
*
|
|
5
|
+
* The generated doc of a type mirrors the `ontology/` module that defines it:
|
|
6
|
+
* `billing/invoice.ts` → `billing/invoice.md`. A module that defines several types gets a folder,
|
|
7
|
+
* one doc per type: `billing.ts` → `billing/Invoice.md`, `billing/Customer.md`.
|
|
8
|
+
*
|
|
9
|
+
* Hand-written docs are notes when they sit at a type's doc path or next to a module exporting the
|
|
10
|
+
* type (`billing.md` for every type of `billing.ts`), compared without case. Notes are appended to
|
|
11
|
+
* the doc of each visible type they belong to, so a reader never receives the notes of types it
|
|
12
|
+
* cannot see. Any other hand-written doc is mounted as written, for every reader.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { AgentProjectFile } from "../agents/skills"
|
|
16
|
+
import { RuntimeError } from "../runtime/errors"
|
|
17
|
+
import type { ObjectType } from "./types"
|
|
18
|
+
|
|
19
|
+
/** Hand-written Markdown under `ontology/`. */
|
|
20
|
+
export interface OntologyDoc {
|
|
21
|
+
/** POSIX path relative to `ontology/`. */
|
|
22
|
+
readonly path: string
|
|
23
|
+
readonly contents: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** The Agent's files under `ontology/`, as createSixb() discovers them. */
|
|
27
|
+
export interface OntologyDocsInput {
|
|
28
|
+
/** Each module, by POSIX path relative to `ontology/`, with the object types it exports. */
|
|
29
|
+
readonly modules: readonly { readonly path: string; readonly objectTypeIds: readonly string[] }[]
|
|
30
|
+
readonly docs: readonly OntologyDoc[]
|
|
31
|
+
/** Every file in a `scripts/` directory under `ontology/`, mounted as written. */
|
|
32
|
+
readonly scripts: readonly AgentProjectFile[]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** Paths are POSIX and relative to `ontology/`. */
|
|
36
|
+
export interface OntologyDocsCatalog {
|
|
37
|
+
/** Path of the doc generated for this object type. */
|
|
38
|
+
docPathFor(objectTypeId: string): string
|
|
39
|
+
/** The team's notes for this type, appended to its doc. Sorted by path. */
|
|
40
|
+
notesFor(objectTypeId: string): readonly OntologyDoc[]
|
|
41
|
+
/** Hand-written docs that belong to no object type, mounted for every reader. */
|
|
42
|
+
listDocs(): readonly OntologyDoc[]
|
|
43
|
+
listScripts(): readonly AgentProjectFile[]
|
|
44
|
+
/** Whether a link declares any type (`*`) as its target. Readers' views expand it. */
|
|
45
|
+
isWildcardLink(objectTypeId: string, linkId: string): boolean
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Resolve every registered object type's doc path, rejecting two files that would share one. */
|
|
49
|
+
export function createOntologyDocsCatalog(input: {
|
|
50
|
+
readonly objectTypes: readonly ObjectType[]
|
|
51
|
+
readonly docs?: OntologyDocsInput
|
|
52
|
+
}): OntologyDocsCatalog {
|
|
53
|
+
const modules = input.docs?.modules ?? []
|
|
54
|
+
const scripts = Object.freeze([...(input.docs?.scripts ?? [])])
|
|
55
|
+
// Sandboxes may sit on a case-insensitive filesystem, where `Invoice.md` overwrites `invoice.md`.
|
|
56
|
+
const claimedPaths = new Map<string, string>(
|
|
57
|
+
scripts.map((script) => [script.path.toLowerCase(), `script 'ontology/${script.path}'`])
|
|
58
|
+
)
|
|
59
|
+
const claim = (path: string, owner: string) => {
|
|
60
|
+
const claimedBy = claimedPaths.get(path.toLowerCase())
|
|
61
|
+
if (claimedBy !== undefined) {
|
|
62
|
+
throw new RuntimeError(
|
|
63
|
+
`[Sixb] The ${owner} at 'ontology/${path}' collides with ${claimedBy}, which only differs ` +
|
|
64
|
+
"by case or not at all. Rename one of them."
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
claimedPaths.set(path.toLowerCase(), `the ${owner}`)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const docPathByType = new Map<string, string>()
|
|
71
|
+
// A hand-written doc at a type's doc path, or next to any module that exports the type, is
|
|
72
|
+
// notes for that type. Several types share the notes of a module that exports all of them.
|
|
73
|
+
const typeIdsByNotesPath = new Map<string, Set<string>>()
|
|
74
|
+
const addNotesPath = (path: string, objectTypeIds: readonly string[]) => {
|
|
75
|
+
const typeIds = typeIdsByNotesPath.get(path.toLowerCase()) ?? new Set<string>()
|
|
76
|
+
for (const objectTypeId of objectTypeIds) typeIds.add(objectTypeId)
|
|
77
|
+
typeIdsByNotesPath.set(path.toLowerCase(), typeIds)
|
|
78
|
+
}
|
|
79
|
+
for (const objectType of input.objectTypes) {
|
|
80
|
+
const path = docPathFor(objectType.id, modules)
|
|
81
|
+
claim(path, `doc of object type '${objectType.id}'`)
|
|
82
|
+
docPathByType.set(objectType.id, path)
|
|
83
|
+
addNotesPath(path, [objectType.id])
|
|
84
|
+
}
|
|
85
|
+
for (const module of modules) {
|
|
86
|
+
if (module.objectTypeIds.length > 0) {
|
|
87
|
+
addNotesPath(`${withoutExtension(module.path)}.md`, module.objectTypeIds)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const notesByType = new Map<string, OntologyDoc[]>()
|
|
92
|
+
const docs: OntologyDoc[] = []
|
|
93
|
+
const docPaths = new Map<string, string>()
|
|
94
|
+
for (const doc of input.docs?.docs ?? []) {
|
|
95
|
+
const sameName = docPaths.get(doc.path.toLowerCase())
|
|
96
|
+
if (sameName !== undefined) {
|
|
97
|
+
throw new RuntimeError(
|
|
98
|
+
`[Sixb] The ontology docs 'ontology/${sameName}' and 'ontology/${doc.path}' only differ ` +
|
|
99
|
+
"by case. Rename one of them."
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
docPaths.set(doc.path.toLowerCase(), doc.path)
|
|
103
|
+
|
|
104
|
+
const objectTypeIds = typeIdsByNotesPath.get(doc.path.toLowerCase())
|
|
105
|
+
if (objectTypeIds === undefined) {
|
|
106
|
+
docs.push(doc)
|
|
107
|
+
continue
|
|
108
|
+
}
|
|
109
|
+
for (const objectTypeId of objectTypeIds) {
|
|
110
|
+
notesByType.set(objectTypeId, [...(notesByType.get(objectTypeId) ?? []), doc])
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
for (const notes of notesByType.values()) notes.sort(byPath)
|
|
114
|
+
Object.freeze(docs)
|
|
115
|
+
|
|
116
|
+
const wildcardLinks = new Set(
|
|
117
|
+
input.objectTypes.flatMap((objectType) =>
|
|
118
|
+
objectType.links
|
|
119
|
+
.filter((link) => link.targetObjectTypeId === "*")
|
|
120
|
+
.map((link) => linkKey(objectType.id, link.id))
|
|
121
|
+
)
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
return Object.freeze({
|
|
125
|
+
docPathFor: (objectTypeId: string) => {
|
|
126
|
+
const path = docPathByType.get(objectTypeId)
|
|
127
|
+
if (path === undefined) {
|
|
128
|
+
throw new RuntimeError(`[Sixb] Object type '${objectTypeId}' is not registered.`)
|
|
129
|
+
}
|
|
130
|
+
return path
|
|
131
|
+
},
|
|
132
|
+
notesFor: (objectTypeId: string) => notesByType.get(objectTypeId) ?? [],
|
|
133
|
+
listDocs: () => docs,
|
|
134
|
+
listScripts: () => scripts,
|
|
135
|
+
isWildcardLink: (objectTypeId: string, linkId: string) =>
|
|
136
|
+
wildcardLinks.has(linkKey(objectTypeId, linkId)),
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* The module that defines a type, among those exporting it: the one named after the type
|
|
142
|
+
* (`email-thread.ts` for `EmailThread`), else any module but an `index`, else the one exporting the
|
|
143
|
+
* fewest types, else the first by path. Re-exporting barrels never take a type from its module.
|
|
144
|
+
*/
|
|
145
|
+
function docPathFor(objectTypeId: string, modules: OntologyDocsInput["modules"]): string {
|
|
146
|
+
const rank = (module: OntologyDocsInput["modules"][number]) => {
|
|
147
|
+
const name = basename(withoutExtension(module.path))
|
|
148
|
+
return [
|
|
149
|
+
kebabCase(name) === kebabCase(objectTypeId) ? 0 : 1,
|
|
150
|
+
name === "index" ? 1 : 0,
|
|
151
|
+
module.objectTypeIds.length,
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
let owner: OntologyDocsInput["modules"][number] | undefined
|
|
155
|
+
for (const module of modules) {
|
|
156
|
+
if (!module.objectTypeIds.includes(objectTypeId)) continue
|
|
157
|
+
if (owner === undefined || compareRanks(rank(module), rank(owner)) < 0) owner = module
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const fileName = `${objectTypeId.replaceAll(/[^A-Za-z0-9._-]/g, "_")}.md`
|
|
161
|
+
if (owner === undefined) return fileName
|
|
162
|
+
const base = withoutExtension(owner.path)
|
|
163
|
+
return owner.objectTypeIds.length === 1 ? `${base}.md` : `${base}/${fileName}`
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function compareRanks(left: readonly number[], right: readonly number[]): number {
|
|
167
|
+
for (const [index, value] of left.entries()) {
|
|
168
|
+
const difference = value - (right[index] ?? 0)
|
|
169
|
+
if (difference !== 0) return difference
|
|
170
|
+
}
|
|
171
|
+
return 0
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function kebabCase(name: string): string {
|
|
175
|
+
return name
|
|
176
|
+
.replaceAll(/([a-z0-9])([A-Z])/g, "$1-$2")
|
|
177
|
+
.replaceAll(/([A-Z]+)([A-Z][a-z])/g, "$1-$2")
|
|
178
|
+
.replaceAll(/[\s_]+/g, "-")
|
|
179
|
+
.toLowerCase()
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function withoutExtension(path: string): string {
|
|
183
|
+
return path.replace(/\.[^./]+$/, "")
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function basename(path: string): string {
|
|
187
|
+
return path.slice(path.lastIndexOf("/") + 1)
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function linkKey(objectTypeId: string, linkId: string): string {
|
|
191
|
+
return JSON.stringify([objectTypeId, linkId])
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
function byPath(left: OntologyDoc, right: OntologyDoc): number {
|
|
195
|
+
return left.path < right.path ? -1 : left.path > right.path ? 1 : 0
|
|
196
|
+
}
|
package/src/ontology/index.ts
CHANGED
|
@@ -211,6 +211,31 @@ export type InferObjectProperties<
|
|
|
211
211
|
}
|
|
212
212
|
>
|
|
213
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Property values as a principal reads them. A marked property may be redacted, so it is optional
|
|
216
|
+
* even when required; writes keep {@link InferObjectProperties}.
|
|
217
|
+
*/
|
|
218
|
+
export type InferObjectReadProperties<
|
|
219
|
+
TObjectType extends { properties: readonly Property[] },
|
|
220
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
221
|
+
> = string extends TObjectType["properties"][number]["id"]
|
|
222
|
+
? Record<string, unknown>
|
|
223
|
+
: Simplify<
|
|
224
|
+
{
|
|
225
|
+
[TProp in TObjectType["properties"][number] as TProp extends { required: true }
|
|
226
|
+
? TProp extends { markings: readonly string[] }
|
|
227
|
+
? never
|
|
228
|
+
: TProp["id"]
|
|
229
|
+
: never]: InferPropertyValue<TProp, TValueTypes>
|
|
230
|
+
} & {
|
|
231
|
+
[TProp in TObjectType["properties"][number] as TProp extends { required: true }
|
|
232
|
+
? TProp extends { markings: readonly string[] }
|
|
233
|
+
? TProp["id"]
|
|
234
|
+
: never
|
|
235
|
+
: TProp["id"]]?: InferPropertyValue<TProp, TValueTypes>
|
|
236
|
+
}
|
|
237
|
+
>
|
|
238
|
+
|
|
214
239
|
/** Useful for APIs that should only accept telemetry-mode properties. */
|
|
215
240
|
export type InferTelemetryPropertyIds<TObjectType extends { properties: readonly Property[] }> =
|
|
216
241
|
Extract<TObjectType["properties"][number], { mode: "telemetry" }>["id"]
|
package/src/ontology/internal.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
export type {
|
|
2
|
+
OntologyDocsIndexEntry,
|
|
3
|
+
RenderedOntologyDocs,
|
|
4
|
+
RenderOntologyDocsInput,
|
|
5
|
+
} from "./docs-markdown"
|
|
6
|
+
export { renderOntologyDocs } from "./docs-markdown"
|
|
1
7
|
export { schemaFieldsToJsonSchema, schemaRecordToJsonSchema } from "./json-schema"
|
|
2
8
|
export { resolvePropertyQueryCapabilities } from "./query-capabilities"
|
|
3
9
|
export { validateSchemaOrRefValue } from "./refs"
|
|
@@ -26,6 +32,7 @@ export {
|
|
|
26
32
|
} from "./validation/properties"
|
|
27
33
|
export { validateQueryMetadata } from "./validation/query"
|
|
28
34
|
export {
|
|
35
|
+
assertValidFileRefs,
|
|
29
36
|
isRecord,
|
|
30
37
|
resolveValueTypeRef,
|
|
31
38
|
resolveValueTypeSchema,
|
package/src/ontology/tokens.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InferObjectProperties } from "./inference"
|
|
1
|
+
import type { InferObjectProperties, InferObjectReadProperties } from "./inference"
|
|
2
2
|
import {
|
|
3
3
|
createLinkPathSelection,
|
|
4
4
|
type LinkPathSelectionBuilder,
|
|
@@ -75,7 +75,10 @@ export type ObjectTypeWithPropertyTokens<TObjectType extends ObjectType = Object
|
|
|
75
75
|
*/
|
|
76
76
|
export type ObjectPropertiesMetadata<TObjectType extends ObjectType> = {
|
|
77
77
|
readonly [objectPropertiesBrand]?: string extends TObjectType["id"]
|
|
78
|
-
? {
|
|
78
|
+
? {
|
|
79
|
+
readonly properties: Record<string, unknown>
|
|
80
|
+
readonly readProperties: Record<string, unknown>
|
|
81
|
+
}
|
|
79
82
|
: ObjectPropertiesCarrier<TObjectType>
|
|
80
83
|
}
|
|
81
84
|
|
|
@@ -91,6 +94,7 @@ export type ObjectPropertiesMetadata<TObjectType extends ObjectType> = {
|
|
|
91
94
|
*/
|
|
92
95
|
interface ObjectPropertiesCarrier<in out TObjectType extends ObjectType> {
|
|
93
96
|
readonly properties: InferObjectProperties<TObjectType>
|
|
97
|
+
readonly readProperties: InferObjectReadProperties<TObjectType>
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
/**
|
|
@@ -103,6 +107,13 @@ export type ObjectTypeProperties<TObjectType extends ObjectTypeWithPropertyToken
|
|
|
103
107
|
TObjectType[typeof objectPropertiesBrand]
|
|
104
108
|
>["properties"]
|
|
105
109
|
|
|
110
|
+
/**
|
|
111
|
+
* The property values of an object type as a read returns them: a marked property is optional,
|
|
112
|
+
* because a reader without clearance receives it redacted.
|
|
113
|
+
*/
|
|
114
|
+
export type ObjectTypeReadProperties<TObjectType extends ObjectTypeWithPropertyTokens> =
|
|
115
|
+
NonNullable<TObjectType[typeof objectPropertiesBrand]>["readProperties"]
|
|
116
|
+
|
|
106
117
|
/**
|
|
107
118
|
* Object type with property tokens (`p.*`) and link tokens (`l.*`).
|
|
108
119
|
*
|
package/src/ontology/types.ts
CHANGED
|
@@ -284,6 +284,11 @@ export interface Property {
|
|
|
284
284
|
semanticType?: QuantitativeTypeId
|
|
285
285
|
/** Query/indexing metadata for this property. */
|
|
286
286
|
query?: PropertyQueryMetadata
|
|
287
|
+
/**
|
|
288
|
+
* Marking ids. A principal receives this property only when its roles clear every marking;
|
|
289
|
+
* otherwise the value is omitted and listed in the object's `redactions`.
|
|
290
|
+
*/
|
|
291
|
+
markings?: readonly string[]
|
|
287
292
|
}
|
|
288
293
|
|
|
289
294
|
/**
|
|
@@ -360,6 +365,25 @@ export interface Interface {
|
|
|
360
365
|
links: ObjectLink[]
|
|
361
366
|
}
|
|
362
367
|
|
|
368
|
+
/** Compound query shapes prepared by the storage provider, in addition to property flags. */
|
|
369
|
+
export type ObjectQueryIndexDefinition =
|
|
370
|
+
| {
|
|
371
|
+
kind: "sort"
|
|
372
|
+
fields: readonly { propertyId: string; direction?: "asc" | "desc" }[]
|
|
373
|
+
/** String equality filters preceding the ordered fields. */
|
|
374
|
+
filters?: readonly string[]
|
|
375
|
+
}
|
|
376
|
+
| {
|
|
377
|
+
kind: "text"
|
|
378
|
+
propertyId: string
|
|
379
|
+
/** String filters/facets commonly combined with this substring search. */
|
|
380
|
+
filters?: readonly string[]
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
export interface ObjectTypeQueryMetadata {
|
|
384
|
+
indexes?: readonly ObjectQueryIndexDefinition[]
|
|
385
|
+
}
|
|
386
|
+
|
|
363
387
|
/**
|
|
364
388
|
* Canonical ontology node for a real-world asset, system, concept, or process.
|
|
365
389
|
*
|
|
@@ -413,6 +437,8 @@ export interface ObjectType {
|
|
|
413
437
|
|
|
414
438
|
properties: Property[]
|
|
415
439
|
links: ObjectLink[]
|
|
440
|
+
/** Query index declarations, prepared automatically after storage migrations. */
|
|
441
|
+
query?: ObjectTypeQueryMetadata
|
|
416
442
|
/** Search profile for this object type. */
|
|
417
443
|
search?: ObjectTypeSearchMetadata
|
|
418
444
|
}
|
|
@@ -7,6 +7,8 @@ import {
|
|
|
7
7
|
isFilterableSchema,
|
|
8
8
|
isSortableSchema,
|
|
9
9
|
isTextSchema,
|
|
10
|
+
queryScalarKindForSchema,
|
|
11
|
+
resolveQuerySchema,
|
|
10
12
|
} from "../query-capabilities"
|
|
11
13
|
|
|
12
14
|
type QueryFeature = "filterable" | "sortable" | "text" | "exact" | "facet"
|
|
@@ -27,6 +29,7 @@ export function validateQueryMetadata(
|
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
validateObjectSearchMetadata(typeId, objectType, valueTypesById)
|
|
32
|
+
validateQueryIndexes(typeId, objectType, valueTypesById)
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
|
|
@@ -250,3 +253,57 @@ function resolveSchema(
|
|
|
250
253
|
seenValueTypeIds.add(schema.valueTypeId)
|
|
251
254
|
return resolveSchema(resolved, valueTypesById, path, seenValueTypeIds)
|
|
252
255
|
}
|
|
256
|
+
|
|
257
|
+
function validateQueryIndexes(
|
|
258
|
+
typeId: string,
|
|
259
|
+
objectType: ObjectType,
|
|
260
|
+
valueTypes: ReadonlyMap<string, ValueType>
|
|
261
|
+
): void {
|
|
262
|
+
for (const index of objectType.query?.indexes ?? []) {
|
|
263
|
+
const fields =
|
|
264
|
+
index.kind === "sort" ? index.fields.map((field) => field.propertyId) : [index.propertyId]
|
|
265
|
+
const filters = index.filters ?? []
|
|
266
|
+
if (
|
|
267
|
+
!fields.length ||
|
|
268
|
+
fields.length + filters.length > 8 ||
|
|
269
|
+
new Set([...fields, ...filters]).size !== fields.length + filters.length
|
|
270
|
+
)
|
|
271
|
+
throw new OntologyValidationError(
|
|
272
|
+
`[Sixb] Query index on '${typeId}' requires one to eight distinct properties`
|
|
273
|
+
)
|
|
274
|
+
if (index.kind === "text" && filters.length > 4)
|
|
275
|
+
throw new OntologyValidationError(
|
|
276
|
+
`[Sixb] Text query index on '${typeId}' accepts at most four filters`
|
|
277
|
+
)
|
|
278
|
+
for (const id of [...fields, ...filters]) {
|
|
279
|
+
const property = objectType.properties.find((property) => property.id === id)
|
|
280
|
+
if (!property)
|
|
281
|
+
throw new OntologyValidationError(
|
|
282
|
+
`[Sixb] Query index on '${typeId}' references unknown property '${id}'`
|
|
283
|
+
)
|
|
284
|
+
if (property.mode === "telemetry")
|
|
285
|
+
throw new OntologyValidationError(
|
|
286
|
+
`[Sixb] Query indexes cannot include telemetry property '${typeId}.${id}'`
|
|
287
|
+
)
|
|
288
|
+
const flag = filters.includes(id) ? "filterable" : index.kind === "sort" ? "sortable" : "text"
|
|
289
|
+
assertPropertyQueryFlag(typeId, property, flag, "query.indexes")
|
|
290
|
+
if (filters.includes(id)) {
|
|
291
|
+
const schema = resolveQuerySchema(property.schema, valueTypes)
|
|
292
|
+
if (!schema || queryScalarKindForSchema(schema) !== "string")
|
|
293
|
+
throw new OntologyValidationError(
|
|
294
|
+
`[Sixb] Query index filters must be strings: '${typeId}.${id}'`
|
|
295
|
+
)
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (
|
|
299
|
+
index.kind === "sort" &&
|
|
300
|
+
index.fields.some(
|
|
301
|
+
(field) =>
|
|
302
|
+
field.direction !== undefined && field.direction !== "asc" && field.direction !== "desc"
|
|
303
|
+
)
|
|
304
|
+
)
|
|
305
|
+
throw new OntologyValidationError(
|
|
306
|
+
`[Sixb] Query index direction must be asc or desc on '${typeId}'`
|
|
307
|
+
)
|
|
308
|
+
}
|
|
309
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isFileRef } from "../../blob-storage/validation"
|
|
1
|
+
import { isFileRef, isValidFileRef } from "../../blob-storage/validation"
|
|
2
2
|
import { withFailureMessage } from "../../errors/failure-message"
|
|
3
3
|
import type { ObjectFieldSchema, Schema, ValueType, ValueTypeRefSchema } from ".."
|
|
4
4
|
import { isDecimalString } from "../decimal"
|
|
@@ -201,6 +201,31 @@ export function validateSchemaValue(
|
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Reject a value from a caller that holds a file reference whose `mediaType` is not exactly one
|
|
206
|
+
* media type, anywhere inside it. Call it where caller input is accepted, after
|
|
207
|
+
* `validateSchemaValue`; that validator also re-checks stored state, which must keep loading
|
|
208
|
+
* references written before the rule.
|
|
209
|
+
*/
|
|
210
|
+
export function assertValidFileRefs(value: unknown, path: string): void {
|
|
211
|
+
if (isFileRef(value)) {
|
|
212
|
+
if (!isValidFileRef(value)) {
|
|
213
|
+
throw withFailureMessage(
|
|
214
|
+
new OntologyValidationError(
|
|
215
|
+
`[Sixb] Property ${path}.mediaType must be one media type, such as "application/pdf"`
|
|
216
|
+
),
|
|
217
|
+
`Property ${path}.mediaType must be one media type, such as "application/pdf".`
|
|
218
|
+
)
|
|
219
|
+
}
|
|
220
|
+
return
|
|
221
|
+
}
|
|
222
|
+
if (Array.isArray(value)) {
|
|
223
|
+
for (const [index, item] of value.entries()) assertValidFileRefs(item, `${path}[${index}]`)
|
|
224
|
+
} else if (isRecord(value)) {
|
|
225
|
+
for (const [key, item] of Object.entries(value)) assertValidFileRefs(item, `${path}.${key}`)
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
204
229
|
function validateFieldValue(
|
|
205
230
|
field: ObjectFieldSchema,
|
|
206
231
|
value: unknown,
|
package/src/query.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* top of this module.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
export type { ModelRef } from "./models/catalog"
|
|
10
|
+
export type { RerankingModelDefinition, RerankingModelRef } from "./models/reranking-model"
|
|
9
11
|
export type { ObjectQueryPlanningIssue } from "./objects/query/errors"
|
|
10
12
|
export {
|
|
11
13
|
ObjectQueryExecutionError,
|
|
@@ -29,6 +31,7 @@ export type {
|
|
|
29
31
|
ObjectQueryPredicateNot,
|
|
30
32
|
ObjectQueryProject,
|
|
31
33
|
ObjectQueryRefs,
|
|
34
|
+
ObjectQueryRerank,
|
|
32
35
|
ObjectQueryResultShape,
|
|
33
36
|
ObjectQuerySet,
|
|
34
37
|
ObjectQuerySetOperation,
|
|
@@ -68,6 +71,7 @@ export type {
|
|
|
68
71
|
ObjectQueryFacetBucket,
|
|
69
72
|
ObjectQueryFacetInput,
|
|
70
73
|
ObjectQueryFacetResult,
|
|
74
|
+
ObjectQueryFacetsResult,
|
|
71
75
|
ObjectQueryListOptions,
|
|
72
76
|
ObjectQueryRow,
|
|
73
77
|
ObjectWhereBuilder,
|
package/src/queues/in-memory.ts
CHANGED
|
@@ -109,11 +109,16 @@ function eligibleAt(record: QueueRecord): number {
|
|
|
109
109
|
return Math.max(record.availableAtMs, record.leaseExpiryMs ?? -Infinity)
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
// Largest delay `setTimeout` accepts; a waiting claim that wakes early just waits again.
|
|
113
|
+
const MAX_TIMER_DELAY_MS = 2_147_483_647
|
|
114
|
+
|
|
112
115
|
interface QueueLane {
|
|
113
116
|
// Terminal records remain here for caller-id deduplication, never in the delivery indexes.
|
|
114
117
|
readonly records: Map<string, QueueRecord>
|
|
115
118
|
readonly ready: IndexedHeap<QueueRecord>
|
|
116
119
|
readonly waiting: IndexedHeap<QueueRecord>
|
|
120
|
+
/** Wakes claims waiting on this lane. */
|
|
121
|
+
readonly waiters: Set<() => void>
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
function toClaimedQueueJob<TQueueJob extends QueueJob>(
|
|
@@ -175,6 +180,27 @@ class InMemoryQueueStore {
|
|
|
175
180
|
lane.ready.delete(record)
|
|
176
181
|
lane.waiting.set(record)
|
|
177
182
|
}
|
|
183
|
+
// Any change can make a job claimable or move the next due time; waiters look again.
|
|
184
|
+
for (const wake of lane.waiters) wake()
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/** Resolves when the lane changes, its next delayed job or lease comes due, or `signal` aborts. */
|
|
188
|
+
waitForWork(projectId: string, queueId: string, signal: AbortSignal): Promise<void> {
|
|
189
|
+
const lane = this.lane(projectId, queueId)
|
|
190
|
+
const next = lane.waiting.peek()
|
|
191
|
+
const dueInMs = next ? eligibleAt(next) - Date.now() : MAX_TIMER_DELAY_MS
|
|
192
|
+
return new Promise((resolve) => {
|
|
193
|
+
// Always armed: like a blocking read on a socket, a waiting claim keeps its process alive.
|
|
194
|
+
const timer = setTimeout(wake, Math.min(dueInMs, MAX_TIMER_DELAY_MS))
|
|
195
|
+
function wake(): void {
|
|
196
|
+
clearTimeout(timer)
|
|
197
|
+
lane.waiters.delete(wake)
|
|
198
|
+
signal.removeEventListener("abort", wake)
|
|
199
|
+
resolve()
|
|
200
|
+
}
|
|
201
|
+
lane.waiters.add(wake)
|
|
202
|
+
signal.addEventListener("abort", wake, { once: true })
|
|
203
|
+
})
|
|
178
204
|
}
|
|
179
205
|
|
|
180
206
|
takeReady<TQueueJob extends QueueJob>(
|
|
@@ -216,6 +242,7 @@ class InMemoryQueueStore {
|
|
|
216
242
|
waiting: new IndexedHeap(
|
|
217
243
|
(left, right) => eligibleAt(left) - eligibleAt(right) || left.sequence - right.sequence
|
|
218
244
|
),
|
|
245
|
+
waiters: new Set(),
|
|
219
246
|
}
|
|
220
247
|
queues.set(queueId, lane)
|
|
221
248
|
}
|
|
@@ -263,6 +290,7 @@ class InMemoryQueue<TQueueJob extends QueueJob, TFailureCode extends SixbErrorCo
|
|
|
263
290
|
workerId: string
|
|
264
291
|
limit?: number
|
|
265
292
|
leaseMs?: number
|
|
293
|
+
signal?: AbortSignal
|
|
266
294
|
}): Promise<readonly ClaimedQueueJob<TQueueJob>[]> {
|
|
267
295
|
assertNonEmpty(params.projectId, "projectId")
|
|
268
296
|
assertNonEmpty(params.workerId, "workerId")
|
|
@@ -275,27 +303,34 @@ class InMemoryQueue<TQueueJob extends QueueJob, TFailureCode extends SixbErrorCo
|
|
|
275
303
|
const leaseMs = params.leaseMs ?? 30_000
|
|
276
304
|
assertPositiveNumber(leaseMs, "leaseMs")
|
|
277
305
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
attempt: record.job.attempt + 1,
|
|
306
|
+
for (;;) {
|
|
307
|
+
if (params.signal?.aborted) return []
|
|
308
|
+
const now = Date.now()
|
|
309
|
+
const claimedAt = new Date(now).toISOString()
|
|
310
|
+
// Validate before removing candidates, and cache the same millisecond precision we return.
|
|
311
|
+
const leaseExpiry = new Date(now + leaseMs)
|
|
312
|
+
const leaseExpiresAt = leaseExpiry.toISOString()
|
|
313
|
+
const claimable = this.store.takeReady<TQueueJob>(params.projectId, this.queueId, now, limit)
|
|
314
|
+
if (claimable.length === 0 && params.signal) {
|
|
315
|
+
await this.store.waitForWork(params.projectId, this.queueId, params.signal)
|
|
316
|
+
continue
|
|
290
317
|
}
|
|
291
|
-
record.leaseId = randomUUID()
|
|
292
|
-
record.claimedAt = claimedAt
|
|
293
|
-
record.leaseExpiresAt = leaseExpiresAt
|
|
294
|
-
record.leaseExpiryMs = leaseExpiry.getTime()
|
|
295
|
-
this.store.schedule(params.projectId, record, now)
|
|
296
318
|
|
|
297
|
-
return
|
|
298
|
-
|
|
319
|
+
return claimable.map((record) => {
|
|
320
|
+
// Attempts count claims so redelivery after lease expiry or retry is visible to workers.
|
|
321
|
+
record.job = {
|
|
322
|
+
...record.job,
|
|
323
|
+
attempt: record.job.attempt + 1,
|
|
324
|
+
}
|
|
325
|
+
record.leaseId = randomUUID()
|
|
326
|
+
record.claimedAt = claimedAt
|
|
327
|
+
record.leaseExpiresAt = leaseExpiresAt
|
|
328
|
+
record.leaseExpiryMs = leaseExpiry.getTime()
|
|
329
|
+
this.store.schedule(params.projectId, record, now)
|
|
330
|
+
|
|
331
|
+
return toClaimedQueueJob(record)
|
|
332
|
+
})
|
|
333
|
+
}
|
|
299
334
|
}
|
|
300
335
|
|
|
301
336
|
async complete(params: { projectId: string; jobId: string; leaseId: string }): Promise<void> {
|
package/src/queues/types.ts
CHANGED
|
@@ -82,12 +82,16 @@ export interface Queue<
|
|
|
82
82
|
*
|
|
83
83
|
* `leaseMs` is the visibility timeout for this claim. If the lease expires
|
|
84
84
|
* before the job is acknowledged, the job may be delivered again.
|
|
85
|
+
*
|
|
86
|
+
* Without `signal`, returns at once, possibly empty. With `signal`, waits for work instead:
|
|
87
|
+
* it resolves once it claims at least one job, and empty only after `signal` aborts.
|
|
85
88
|
*/
|
|
86
89
|
claim(params: {
|
|
87
90
|
projectId: string
|
|
88
91
|
workerId: string
|
|
89
92
|
limit?: number
|
|
90
93
|
leaseMs?: number
|
|
94
|
+
signal?: AbortSignal
|
|
91
95
|
}): Promise<readonly ClaimedQueueJob<TQueueJob>[]>
|
|
92
96
|
|
|
93
97
|
/** Acknowledges successful processing and removes the claimed job from delivery. */
|