@sixb/core 0.1.12 → 0.1.13
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.d.ts +2 -2
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +28 -26
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +14 -16
- package/dist/actions/read-facade.d.ts.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-dispatch.d.ts +2 -0
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +18 -31
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/types/params.d.ts +2 -1
- package/dist/actions/types/params.d.ts.map +1 -1
- package/dist/actions/worker.js +1 -1
- package/dist/agents/index.js +41 -39
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/assert-never.d.ts +6 -0
- package/dist/assert-never.d.ts.map +1 -0
- package/dist/auth/client-address.d.ts +3 -0
- package/dist/auth/client-address.d.ts.map +1 -0
- package/dist/auth/csrf.d.ts +5 -1
- package/dist/auth/csrf.d.ts.map +1 -1
- package/dist/auth/index.d.ts +3 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +14 -8
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +58 -41
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +10 -3
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/sessions.d.ts +12 -0
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +8 -15
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +3 -3
- package/dist/bootstrap/index.d.ts +1 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +45 -43
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
- package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
- package/dist/{chunk-e1f1sqba.js → chunk-04h4t2b5.js} +3 -3
- package/dist/{chunk-y3ev53cq.js → chunk-2fv8sajb.js} +2 -2
- package/dist/{chunk-3bnt2wna.js → chunk-2hbhn1ff.js} +1 -1
- package/dist/{chunk-eyjzgav0.js → chunk-3nx8vj5a.js} +6 -4
- package/dist/chunk-3nx8vj5a.js.map +12 -0
- package/dist/{chunk-5tetw4hn.js → chunk-4tnrzqqh.js} +1 -1
- package/dist/{chunk-g50nxqs5.js → chunk-63fp9x3q.js} +63 -20
- package/dist/chunk-63fp9x3q.js.map +20 -0
- package/dist/{chunk-qm535afa.js → chunk-693f3zn8.js} +66 -24
- package/dist/chunk-693f3zn8.js.map +15 -0
- package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
- package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
- package/dist/{chunk-6ma8dvzc.js → chunk-898y24dd.js} +49 -42
- package/dist/chunk-898y24dd.js.map +15 -0
- package/dist/{chunk-7qnvhtcd.js → chunk-91wthfwe.js} +17 -17
- package/dist/{chunk-7qnvhtcd.js.map → chunk-91wthfwe.js.map} +5 -5
- package/dist/chunk-96yw3pwd.js.map +2 -2
- package/dist/{chunk-2cxv584m.js → chunk-9pfw47qx.js} +309 -204
- package/dist/chunk-9pfw47qx.js.map +44 -0
- package/dist/{chunk-4k53sm9e.js → chunk-a0073121.js} +59 -59
- package/dist/{chunk-4k53sm9e.js.map → chunk-a0073121.js.map} +5 -5
- package/dist/{chunk-jjwhy3rs.js → chunk-a69fkrtr.js} +5 -5
- package/dist/{chunk-y1ahv8b7.js → chunk-bdhfn0ww.js} +1 -1
- package/dist/{chunk-4ph94nhd.js → chunk-bep5rrdq.js} +2 -2
- package/dist/{chunk-kept9cdd.js → chunk-bxx3ms5t.js} +1 -1
- package/dist/{chunk-xtfryrfb.js → chunk-cbn96bve.js} +2 -2
- package/dist/{chunk-nzsy3xrp.js → chunk-cvrbhvtr.js} +69 -44
- package/dist/{chunk-nzsy3xrp.js.map → chunk-cvrbhvtr.js.map} +7 -7
- package/dist/{chunk-vsg0g7h9.js → chunk-d8yes9yx.js} +304 -45
- package/dist/chunk-d8yes9yx.js.map +20 -0
- package/dist/{chunk-tg4g4zh0.js → chunk-darm7eeg.js} +9 -9
- package/dist/{chunk-tg4g4zh0.js.map → chunk-darm7eeg.js.map} +3 -3
- package/dist/{chunk-vpxss818.js → chunk-drz59ve0.js} +9 -8
- package/dist/chunk-drz59ve0.js.map +10 -0
- package/dist/{chunk-7c2g3sz9.js → chunk-dsfw1bdr.js} +5 -5
- package/dist/{chunk-7c2g3sz9.js.map → chunk-dsfw1bdr.js.map} +1 -1
- package/dist/{chunk-p6r1ex7t.js → chunk-ffwvdgk1.js} +5 -13
- package/dist/chunk-ffwvdgk1.js.map +10 -0
- package/dist/{chunk-r5zythxp.js → chunk-gbcrz0gr.js} +7 -7
- package/dist/{chunk-ybhz3j9g.js → chunk-gc226ten.js} +104 -148
- package/dist/{chunk-ybhz3j9g.js.map → chunk-gc226ten.js.map} +7 -8
- package/dist/{chunk-3ghw2t5q.js → chunk-gmt22nxx.js} +10 -16
- package/dist/chunk-gmt22nxx.js.map +10 -0
- package/dist/chunk-h89wz928.js +42 -0
- package/dist/chunk-h89wz928.js.map +10 -0
- package/dist/{chunk-hkw8rykk.js → chunk-ht4a7mjg.js} +74 -4
- package/dist/chunk-ht4a7mjg.js.map +15 -0
- package/dist/{chunk-t7dzd1tm.js → chunk-jhyc777j.js} +2 -2
- package/dist/{chunk-xn686q2e.js → chunk-jmwy25mf.js} +75 -57
- package/dist/{chunk-xn686q2e.js.map → chunk-jmwy25mf.js.map} +3 -3
- package/dist/{chunk-f06sf7rr.js → chunk-k4kkp58d.js} +18 -5
- package/dist/chunk-k4kkp58d.js.map +11 -0
- package/dist/{chunk-2h63nrde.js → chunk-ky7zpbtt.js} +5 -7
- package/dist/{chunk-2h63nrde.js.map → chunk-ky7zpbtt.js.map} +3 -4
- package/dist/chunk-m4ehq95f.js +9 -0
- package/dist/chunk-m4ehq95f.js.map +10 -0
- package/dist/{chunk-0mza4xb2.js → chunk-m8zkvep1.js} +2 -2
- package/dist/{chunk-b768c93y.js → chunk-mf6hwpzh.js} +83 -28
- package/dist/{chunk-b768c93y.js.map → chunk-mf6hwpzh.js.map} +5 -5
- package/dist/{chunk-yxb4c62x.js → chunk-mr60an99.js} +3 -2
- package/dist/{chunk-yxb4c62x.js.map → chunk-mr60an99.js.map} +3 -3
- package/dist/chunk-n33e8dz8.js +191 -0
- package/dist/chunk-n33e8dz8.js.map +11 -0
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-m7cx05vp.js → chunk-rqtdtm43.js} +126 -59
- package/dist/{chunk-m7cx05vp.js.map → chunk-rqtdtm43.js.map} +13 -12
- package/dist/{chunk-bbaa1fet.js → chunk-rzcjp5m2.js} +7 -3
- package/dist/chunk-rzcjp5m2.js.map +25 -0
- package/dist/{chunk-hzw7yv5g.js → chunk-rzkr70gr.js} +5 -1
- package/dist/{chunk-hzw7yv5g.js.map → chunk-rzkr70gr.js.map} +3 -3
- package/dist/{chunk-sfypc7mk.js → chunk-s24qbp32.js} +4 -4
- package/dist/{chunk-axndsymr.js → chunk-tw03bsmb.js} +2 -2
- package/dist/{chunk-axndsymr.js.map → chunk-tw03bsmb.js.map} +3 -3
- package/dist/{chunk-y0v18c2j.js → chunk-vef6qa14.js} +2 -2
- package/dist/{chunk-gzt6v1ja.js → chunk-vn3yh259.js} +1 -1
- package/dist/{chunk-bg2bs62d.js → chunk-w9bp61e7.js} +5 -5
- package/dist/{chunk-3h7ctayx.js → chunk-xgptywp0.js} +4 -3
- package/dist/chunk-xgptywp0.js.map +11 -0
- package/dist/{chunk-gswwr35f.js → chunk-y487ywrv.js} +4 -4
- package/dist/{chunk-bet1rb9h.js → chunk-y6vnvayj.js} +1 -1
- package/dist/{chunk-x9tmx3fc.js → chunk-ypj2wqtj.js} +3 -6
- package/dist/{chunk-x9tmx3fc.js.map → chunk-ypj2wqtj.js.map} +4 -4
- package/dist/{chunk-g2gezsg5.js → chunk-z9h698s8.js} +1 -1
- package/dist/{chunk-wjffn5m4.js → chunk-zdkcdshk.js} +3 -36
- package/dist/{chunk-wjffn5m4.js.map → chunk-zdkcdshk.js.map} +3 -4
- package/dist/{chunk-bfjv1adk.js → chunk-znw0zvy4.js} +1 -1
- package/dist/edits/types.d.ts +19 -19
- package/dist/edits/types.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/errors/catalog.d.ts +4 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/envelope.d.ts +0 -12
- package/dist/events/envelope.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +3 -3
- package/dist/events/service.d.ts +1 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/events/toStoredEvent.d.ts +1 -2
- package/dist/events/toStoredEvent.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +2 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +1 -2
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +39 -37
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.d.ts +1 -2
- package/dist/execution/primitive.d.ts.map +1 -1
- package/dist/execution/primitive.js +38 -36
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +1 -2
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +39 -37
- package/dist/execution/request.js.map +3 -3
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -50
- package/dist/index.js.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +11 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materialization/errors.d.ts +3 -1
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/events.d.ts +27 -2
- package/dist/materialization/events.d.ts.map +1 -1
- package/dist/materializer/edits/commit.d.ts.map +1 -1
- package/dist/materializer/edits/operations.d.ts +2 -1
- package/dist/materializer/edits/operations.d.ts.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -2
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/edits/user-refs.d.ts +30 -0
- package/dist/materializer/edits/user-refs.d.ts.map +1 -0
- package/dist/materializer/effective/build-events.d.ts +2 -2
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- package/dist/materializer/execution/scope.d.ts +11 -3
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- package/dist/materializer/index.js +23 -21
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +2 -0
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -2
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/execution/index.js +23 -21
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/objects/execution.d.ts +21 -27
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +28 -26
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +27 -25
- 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/scalar-values.d.ts.map +1 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts +1 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -3
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -10
- package/dist/objects/sdk/query-builder.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts +1 -2
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/sdk/where.d.ts +2 -3
- package/dist/objects/sdk/where.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +11 -10
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +4 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +6 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +34 -22
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +1 -0
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +9 -7
- package/dist/ontology/internal.js.map +1 -1
- package/dist/ontology/primitives.d.ts +38 -0
- package/dist/ontology/primitives.d.ts.map +1 -0
- package/dist/ontology/query-capabilities.d.ts +38 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +23 -2
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/registered.d.ts +16 -0
- package/dist/ontology/registered.d.ts.map +1 -0
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +35 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +18 -4
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/user-ref.d.ts +35 -0
- package/dist/ontology/user-ref.d.ts.map +1 -0
- package/dist/ontology/validation/definition.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/normalize.d.ts.map +1 -1
- package/dist/ontology/validation/properties.d.ts +6 -1
- package/dist/ontology/validation/properties.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +26 -24
- package/dist/pipelines/index.js.map +1 -1
- package/dist/predicates/types.d.ts +53 -3
- package/dist/predicates/types.d.ts.map +1 -1
- package/dist/projections/builders.d.ts +19 -1
- package/dist/projections/builders.d.ts.map +1 -1
- package/dist/projections/internal.js +23 -21
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/validation.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -1
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +1 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +5 -5
- 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.js +27 -25
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/sixb.d.ts +5 -5
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +171 -188
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +5 -5
- package/dist/sandboxes/sandbox.d.ts +4 -1
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/shared/params/types.d.ts +4 -3
- package/dist/shared/params/types.d.ts.map +1 -1
- package/dist/shared/params/user-refs.d.ts +19 -0
- package/dist/shared/params/user-refs.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -22
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/types.d.ts +1 -1
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +62 -13
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/executions/provider.js +1 -1
- package/dist/storage/file-upload-sessions/in-memory.d.ts +9 -18
- package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
- package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +24 -0
- package/dist/storage/file-upload-sessions/provider.js.map +9 -0
- package/dist/storage/file-upload-sessions/types.d.ts +19 -1
- package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
- package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +29 -25
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +11 -9
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +6 -2
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -1
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +8 -2
- package/dist/storage/ontology/provider.js.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/provider.js +2 -2
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/index.d.ts +1 -1
- package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/types.d.ts +5 -8
- package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +8 -8
- package/dist/syncs/index.js +27 -25
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +4 -0
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution.d.ts +1 -2
- package/dist/testing/execution.d.ts.map +1 -1
- package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
- package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1951 -1242
- package/dist/testing/index.js.map +15 -13
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-query-contract.d.ts.map +1 -1
- package/dist/testing/ontology-contract-fixture.d.ts +8 -0
- 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/sandboxes-contract.d.ts.map +1 -1
- package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
- package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +24 -22
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/webhooks/types.d.ts +2 -2
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/workers/index.js +1 -1
- package/dist/workflows/index.js +42 -40
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/run-dispatch.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +2 -2
- package/dist/workflows/types.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/actions/index.ts +0 -3
- package/src/actions/read-facade.ts +102 -62
- package/src/actions/request.ts +13 -0
- package/src/actions/run-dispatch.ts +3 -0
- package/src/actions/types/context.ts +17 -65
- package/src/actions/types/params.ts +2 -1
- package/src/agents/authority.ts +1 -1
- package/src/assert-never.ts +7 -0
- package/src/auth/client-address.ts +12 -0
- package/src/auth/csrf.ts +14 -5
- package/src/auth/index.ts +3 -2
- package/src/auth/runtime.ts +299 -277
- package/src/auth/session-cache.ts +18 -6
- package/src/auth/sessions.ts +30 -0
- package/src/auth/types.ts +7 -17
- package/src/bootstrap/index.ts +1 -0
- package/src/bootstrap/ontology-type-manifest.ts +112 -60
- package/src/edits/types.ts +47 -63
- package/src/errors/catalog.ts +4 -0
- package/src/events/envelope.ts +0 -13
- package/src/events/index.ts +1 -1
- package/src/events/service.ts +1 -11
- package/src/events/toStoredEvent.ts +1 -3
- package/src/events/types/index.ts +1 -1
- package/src/execution/agent.ts +1 -2
- package/src/execution/authorized-object-reader.ts +5 -7
- package/src/execution/primitive.ts +1 -2
- package/src/execution/request.ts +1 -2
- package/src/index.ts +8 -7
- package/src/maintenance/ontology-maintenance.ts +77 -1
- package/src/materialization/errors.ts +2 -0
- package/src/materialization/events.ts +27 -2
- package/src/materializer/README.md +2 -0
- package/src/materializer/edits/commit.ts +21 -12
- package/src/materializer/edits/operations.ts +32 -4
- package/src/materializer/edits/plan.ts +4 -5
- package/src/materializer/edits/user-refs.ts +115 -0
- package/src/materializer/effective/build-events.ts +4 -5
- package/src/materializer/execution/scope.ts +40 -7
- package/src/materializer/projections/replace.ts +2 -0
- package/src/materializer/projections/replacement-plan.ts +4 -0
- package/src/materializer/telemetry/append.ts +4 -12
- package/src/materializer/telemetry/plan.ts +4 -5
- package/src/objects/execution.ts +33 -62
- package/src/objects/query/executor.ts +12 -3
- package/src/objects/query/ir.ts +7 -0
- package/src/objects/query/planner.ts +1 -0
- package/src/objects/query/scalar-values.ts +19 -0
- package/src/objects/query/validate.ts +55 -44
- package/src/objects/sdk/object-handle.ts +8 -8
- package/src/objects/sdk/object-set.ts +8 -15
- package/src/objects/sdk/query-builder.ts +59 -71
- package/src/objects/sdk/telemetry-channel.ts +6 -7
- package/src/objects/sdk/where.ts +6 -13
- package/src/ontology/builders.ts +15 -11
- package/src/ontology/index.ts +4 -0
- package/src/ontology/inference/index.ts +56 -36
- package/src/ontology/internal.ts +1 -0
- package/src/ontology/json-schema.ts +12 -0
- package/src/ontology/primitives.ts +91 -0
- package/src/ontology/query-capabilities.ts +136 -0
- package/src/ontology/refs.ts +33 -6
- package/src/ontology/registered.ts +22 -0
- package/src/ontology/registry.ts +6 -3
- package/src/ontology/tokens.ts +41 -2
- package/src/ontology/types.ts +19 -3
- package/src/ontology/user-ref.ts +120 -0
- package/src/ontology/validation/definition.ts +2 -13
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/normalize.ts +39 -3
- package/src/ontology/validation/properties.ts +95 -19
- package/src/ontology/validation/query.ts +11 -42
- package/src/ontology/validation/schema.ts +16 -0
- package/src/predicates/types.ts +43 -33
- package/src/projections/builders.ts +24 -3
- package/src/projections/validation.ts +15 -1
- package/src/runtime/create.ts +2 -2
- package/src/runtime/host.ts +10 -12
- package/src/runtime/index.ts +3 -2
- package/src/runtime/sixb.ts +13 -23
- package/src/runtime/types.ts +277 -479
- package/src/sandboxes/sandbox.ts +4 -1
- package/src/shared/params/types.ts +4 -3
- package/src/shared/params/user-refs.ts +48 -0
- package/src/shares/compiler.ts +6 -16
- package/src/storage/action-runs/types.ts +1 -0
- package/src/storage/auth/in-memory/access-tokens.ts +5 -2
- package/src/storage/auth/in-memory/auth-storage.ts +5 -8
- package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
- package/src/storage/auth/in-memory/sessions.ts +69 -1
- package/src/storage/auth/in-memory/shared.ts +13 -7
- package/src/storage/auth/index.ts +2 -1
- package/src/storage/auth/types.ts +57 -13
- package/src/storage/executions/validation.ts +1 -1
- package/src/storage/file-upload-sessions/in-memory.ts +64 -113
- package/src/storage/file-upload-sessions/index.ts +1 -0
- package/src/storage/file-upload-sessions/provider.ts +258 -0
- package/src/storage/file-upload-sessions/types.ts +20 -1
- package/src/storage/file-upload-sessions/utils.ts +25 -9
- package/src/storage/index.ts +3 -2
- package/src/storage/objects/in-memory/query.ts +13 -3
- package/src/storage/ontology/commits.ts +6 -2
- package/src/storage/ontology/in-memory/materializations.ts +6 -34
- package/src/storage/ontology/provider-header-validation.ts +57 -0
- package/src/storage/ontology/provider-work.ts +15 -3
- package/src/storage/ontology/provider.ts +59 -1
- package/src/storage/operation-scope.ts +1 -0
- package/src/storage/types.ts +0 -1
- package/src/storage/workflow-interventions/index.ts +0 -1
- package/src/storage/workflow-interventions/types.ts +5 -9
- package/src/testing/action-execution.ts +13 -3
- package/src/testing/auth-storage-contract.ts +149 -62
- package/src/testing/execution-storage-contract.ts +1 -2
- package/src/testing/execution.ts +4 -7
- package/src/testing/file-upload-session-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -0
- package/src/testing/materializer-storage-contract.ts +86 -4
- package/src/testing/object-query-contract.ts +121 -2
- package/src/testing/ontology-contract-fixture.ts +23 -3
- package/src/testing/ontology-storage-contract.ts +58 -0
- package/src/testing/sandboxes-contract.ts +27 -0
- package/src/testing/workflow-intervention-storage-contract.ts +203 -0
- package/src/webhooks/types.ts +2 -2
- package/src/workflows/run-dispatch.ts +12 -1
- package/src/workflows/snapshot.ts +16 -7
- package/src/workflows/types.ts +2 -2
- package/dist/chunk-2cxv584m.js.map +0 -43
- package/dist/chunk-3ghw2t5q.js.map +0 -10
- package/dist/chunk-3h7ctayx.js.map +0 -11
- package/dist/chunk-6ma8dvzc.js.map +0 -15
- package/dist/chunk-bbaa1fet.js.map +0 -25
- package/dist/chunk-eyjzgav0.js.map +0 -12
- package/dist/chunk-f06sf7rr.js.map +0 -11
- package/dist/chunk-g50nxqs5.js.map +0 -18
- package/dist/chunk-hkw8rykk.js.map +0 -15
- package/dist/chunk-p6r1ex7t.js.map +0 -10
- package/dist/chunk-qm535afa.js.map +0 -15
- package/dist/chunk-vpxss818.js.map +0 -10
- package/dist/chunk-vsg0g7h9.js.map +0 -17
- /package/dist/{chunk-e1f1sqba.js.map → chunk-04h4t2b5.js.map} +0 -0
- /package/dist/{chunk-y3ev53cq.js.map → chunk-2fv8sajb.js.map} +0 -0
- /package/dist/{chunk-3bnt2wna.js.map → chunk-2hbhn1ff.js.map} +0 -0
- /package/dist/{chunk-5tetw4hn.js.map → chunk-4tnrzqqh.js.map} +0 -0
- /package/dist/{chunk-jjwhy3rs.js.map → chunk-a69fkrtr.js.map} +0 -0
- /package/dist/{chunk-y1ahv8b7.js.map → chunk-bdhfn0ww.js.map} +0 -0
- /package/dist/{chunk-4ph94nhd.js.map → chunk-bep5rrdq.js.map} +0 -0
- /package/dist/{chunk-kept9cdd.js.map → chunk-bxx3ms5t.js.map} +0 -0
- /package/dist/{chunk-xtfryrfb.js.map → chunk-cbn96bve.js.map} +0 -0
- /package/dist/{chunk-r5zythxp.js.map → chunk-gbcrz0gr.js.map} +0 -0
- /package/dist/{chunk-t7dzd1tm.js.map → chunk-jhyc777j.js.map} +0 -0
- /package/dist/{chunk-0mza4xb2.js.map → chunk-m8zkvep1.js.map} +0 -0
- /package/dist/{chunk-sfypc7mk.js.map → chunk-s24qbp32.js.map} +0 -0
- /package/dist/{chunk-y0v18c2j.js.map → chunk-vef6qa14.js.map} +0 -0
- /package/dist/{chunk-gzt6v1ja.js.map → chunk-vn3yh259.js.map} +0 -0
- /package/dist/{chunk-bg2bs62d.js.map → chunk-w9bp61e7.js.map} +0 -0
- /package/dist/{chunk-gswwr35f.js.map → chunk-y487ywrv.js.map} +0 -0
- /package/dist/{chunk-bet1rb9h.js.map → chunk-y6vnvayj.js.map} +0 -0
- /package/dist/{chunk-g2gezsg5.js.map → chunk-z9h698s8.js.map} +0 -0
- /package/dist/{chunk-bfjv1adk.js.map → chunk-znw0zvy4.js.map} +0 -0
package/src/ontology/index.ts
CHANGED
|
@@ -30,6 +30,7 @@ export { isObjectRefSchema, objectRef, ref } from "./refs"
|
|
|
30
30
|
export type {
|
|
31
31
|
LinkToken,
|
|
32
32
|
LinkTokenMap,
|
|
33
|
+
ObjectPropertiesMetadata,
|
|
33
34
|
ObjectTypeWithPropertyTokens,
|
|
34
35
|
ObjectTypeWithTokens,
|
|
35
36
|
PropertyToken,
|
|
@@ -57,9 +58,12 @@ export type {
|
|
|
57
58
|
PropertyQueryMetadata,
|
|
58
59
|
Schema,
|
|
59
60
|
SixbObjectTypeMap,
|
|
61
|
+
SixbValueTypeMap,
|
|
60
62
|
ValueType,
|
|
61
63
|
ValueTypeRefSchema,
|
|
62
64
|
} from "./types"
|
|
65
|
+
export type { UserRef } from "./user-ref"
|
|
66
|
+
export { userRef } from "./user-ref"
|
|
63
67
|
|
|
64
68
|
// ── Registry ──────────────────────────────────────────────
|
|
65
69
|
|
|
@@ -13,13 +13,16 @@ import type {
|
|
|
13
13
|
ValueTypeRefSchema,
|
|
14
14
|
} from ".."
|
|
15
15
|
import type { DecimalValue } from "../decimal"
|
|
16
|
+
import type { RegisteredValueTypes } from "../registered"
|
|
16
17
|
import type { QuantitativeTypeId, UnitsOf } from "../units"
|
|
18
|
+
import type { UserRef } from "../user-ref"
|
|
17
19
|
|
|
18
20
|
type Simplify<T> = { [K in keyof T]: T[K] } & {}
|
|
19
21
|
|
|
20
22
|
/**
|
|
21
23
|
* Look up a referenced value type by `id` from the value-type tuple passed
|
|
22
|
-
* into the inference utilities
|
|
24
|
+
* into the inference utilities — the generated registry unless a caller passes
|
|
25
|
+
* its own tuple.
|
|
23
26
|
*/
|
|
24
27
|
type ResolveValueType<
|
|
25
28
|
TValueTypes extends readonly ValueType[],
|
|
@@ -30,13 +33,17 @@ type ResolveValueType<
|
|
|
30
33
|
* Resolve `{ type: "valueTypeRef" }` recursively.
|
|
31
34
|
*
|
|
32
35
|
* Unknown references intentionally degrade to `unknown` so type-level callsites
|
|
33
|
-
* can decide how strict they want to be.
|
|
36
|
+
* can decide how strict they want to be. The `[never]` guard is what keeps that
|
|
37
|
+
* promise: an unresolved lookup is `never`, and a distributive check over `never`
|
|
38
|
+
* would yield `never` — a value assignable to everything.
|
|
34
39
|
*/
|
|
35
40
|
type InferValueTypeRef<TValueTypeId extends string, TValueTypes extends readonly ValueType[]> =
|
|
36
41
|
ResolveValueType<TValueTypes, TValueTypeId> extends infer TValueType
|
|
37
|
-
? TValueType extends
|
|
38
|
-
?
|
|
39
|
-
:
|
|
42
|
+
? [TValueType] extends [never]
|
|
43
|
+
? unknown
|
|
44
|
+
: TValueType extends ValueType
|
|
45
|
+
? InferSchema<TValueType["schema"], TValueTypes>
|
|
46
|
+
: unknown
|
|
40
47
|
: unknown
|
|
41
48
|
|
|
42
49
|
type RequiredFieldIds<TFields extends Record<string, ObjectFieldSchema>> = {
|
|
@@ -68,6 +75,7 @@ type InferObjectFields<
|
|
|
68
75
|
|
|
69
76
|
interface PrimitiveSchemaValueMap {
|
|
70
77
|
fileRef: FileRef
|
|
78
|
+
userRef: UserRef
|
|
71
79
|
string: string
|
|
72
80
|
uuid: string
|
|
73
81
|
boolean: boolean
|
|
@@ -102,26 +110,37 @@ type InferValueTypeRefSchema<
|
|
|
102
110
|
* Convert ontology schema definitions into runtime value types.
|
|
103
111
|
*
|
|
104
112
|
* This is the core typing bridge used by the future object SDK APIs.
|
|
113
|
+
*
|
|
114
|
+
* A schema typed as the whole `Schema` union (a helper returning `Schema`, say) infers `unknown`:
|
|
115
|
+
* its array, map and object children are `Schema` again, so inferring it never terminates.
|
|
105
116
|
*/
|
|
106
117
|
export type InferSchema<
|
|
107
118
|
TSchema extends Schema,
|
|
108
|
-
TValueTypes extends readonly ValueType[] =
|
|
109
|
-
> =
|
|
110
|
-
?
|
|
111
|
-
: TSchema extends
|
|
112
|
-
?
|
|
113
|
-
: TSchema extends
|
|
114
|
-
?
|
|
115
|
-
:
|
|
119
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
120
|
+
> = Schema extends TSchema
|
|
121
|
+
? unknown
|
|
122
|
+
: TSchema extends PrimitiveSchema
|
|
123
|
+
? PrimitiveSchemaValueMap[TSchema]
|
|
124
|
+
: TSchema extends ComplexSchema
|
|
125
|
+
? InferComplexSchema<TSchema, TValueTypes>
|
|
126
|
+
: TSchema extends ValueTypeRefSchema
|
|
127
|
+
? InferValueTypeRefSchema<TSchema, TValueTypes>
|
|
128
|
+
: never
|
|
116
129
|
|
|
117
130
|
/** Property-level value inference with nullable support. */
|
|
118
131
|
export type InferPropertyValue<
|
|
119
132
|
TProperty extends Pick<Property, "schema" | "nullable">,
|
|
120
|
-
TValueTypes extends readonly ValueType[] =
|
|
133
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
121
134
|
> = TProperty["nullable"] extends true
|
|
122
135
|
? InferSchema<TProperty["schema"], TValueTypes> | null
|
|
123
136
|
: InferSchema<TProperty["schema"], TValueTypes>
|
|
124
137
|
|
|
138
|
+
/**
|
|
139
|
+
* A registered value type wins over the semantic type carried on the ref, as it does at runtime:
|
|
140
|
+
* the registry keeps an explicit value type and only auto-registers the ref's copy when none
|
|
141
|
+
* exists. `valueTypeRef(VT)` carries `_semanticType` so a value type that is not registered
|
|
142
|
+
* (defined outside `ontology/`) still constrains units.
|
|
143
|
+
*/
|
|
125
144
|
type InferPropertySemanticTypeFromValueTypeRef<
|
|
126
145
|
TProperty extends Pick<Property, "schema">,
|
|
127
146
|
TValueTypes extends readonly ValueType[],
|
|
@@ -129,16 +148,20 @@ type InferPropertySemanticTypeFromValueTypeRef<
|
|
|
129
148
|
type: "valueTypeRef"
|
|
130
149
|
valueTypeId: infer TValueTypeId extends string
|
|
131
150
|
}
|
|
132
|
-
? ResolveValueType<TValueTypes, TValueTypeId> extends
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
:
|
|
151
|
+
? [ResolveValueType<TValueTypes, TValueTypeId>] extends [never]
|
|
152
|
+
? TProperty["schema"] extends { _semanticType: infer TSemanticType extends QuantitativeTypeId }
|
|
153
|
+
? TSemanticType
|
|
154
|
+
: never
|
|
155
|
+
: ResolveValueType<TValueTypes, TValueTypeId> extends {
|
|
156
|
+
semanticType: infer TSemanticType extends QuantitativeTypeId
|
|
157
|
+
}
|
|
158
|
+
? TSemanticType
|
|
159
|
+
: never
|
|
137
160
|
: never
|
|
138
161
|
|
|
139
162
|
export type InferPropertySemanticType<
|
|
140
163
|
TProperty extends Pick<Property, "schema" | "semanticType">,
|
|
141
|
-
TValueTypes extends readonly ValueType[] =
|
|
164
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
142
165
|
> = TProperty["semanticType"] extends QuantitativeTypeId
|
|
143
166
|
? TProperty["semanticType"]
|
|
144
167
|
: InferPropertySemanticTypeFromValueTypeRef<TProperty, TValueTypes>
|
|
@@ -152,7 +175,7 @@ export type InferPropertySemanticType<
|
|
|
152
175
|
*/
|
|
153
176
|
export type InferPropertyUnit<
|
|
154
177
|
TProperty extends Pick<Property, "schema" | "semanticType">,
|
|
155
|
-
TValueTypes extends readonly ValueType[] =
|
|
178
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
156
179
|
> =
|
|
157
180
|
InferPropertySemanticType<TProperty, TValueTypes> extends infer TSemanticType extends
|
|
158
181
|
QuantitativeTypeId
|
|
@@ -163,7 +186,7 @@ export type InferPropertyUnit<
|
|
|
163
186
|
|
|
164
187
|
export type InferObjectProperties<
|
|
165
188
|
TObjectType extends { properties: readonly Property[] },
|
|
166
|
-
TValueTypes extends readonly ValueType[] =
|
|
189
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
167
190
|
> =
|
|
168
191
|
// Object types whose property ids are not statically known (the broad
|
|
169
192
|
// `ObjectTypeWithPropertyTokens` base, e.g. as a generic constraint or
|
|
@@ -197,22 +220,19 @@ export type InferTelemetryPropertyIds<TObjectType extends { properties: readonly
|
|
|
197
220
|
*
|
|
198
221
|
* Iterates over the extracted telemetry property union directly (via `as P["id"]` remapping)
|
|
199
222
|
* so that `P` is already resolved — avoids repeated indexed access through the token map
|
|
200
|
-
* which would cause TS2589 on object types with many telemetry properties.
|
|
223
|
+
* which would cause TS2589 on object types with many telemetry properties. The semantic type is
|
|
224
|
+
* resolved as for a single append, so a batch requires exactly the units `telemetry()` does.
|
|
201
225
|
*/
|
|
202
226
|
export type InferTelemetryBatchProperties<
|
|
203
227
|
TObjectType extends { properties: readonly Property[] },
|
|
204
|
-
TValueTypes extends readonly ValueType[] =
|
|
228
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
205
229
|
> = {
|
|
206
|
-
[P in Extract<
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
? { value: InferPropertyValue<P, TValueTypes>; unit: UnitsOf<TSem> }
|
|
216
|
-
: InferPropertyValue<P, TValueTypes>
|
|
217
|
-
: InferPropertyValue<P, TValueTypes>
|
|
230
|
+
[P in Extract<TObjectType["properties"][number], { mode: "telemetry" }> as P["id"]]?: [
|
|
231
|
+
InferPropertySemanticType<P, TValueTypes>,
|
|
232
|
+
] extends [never]
|
|
233
|
+
? InferPropertyValue<P, TValueTypes>
|
|
234
|
+
: {
|
|
235
|
+
value: InferPropertyValue<P, TValueTypes>
|
|
236
|
+
unit: UnitsOf<InferPropertySemanticType<P, TValueTypes>>
|
|
237
|
+
}
|
|
218
238
|
}
|
package/src/ontology/internal.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { schemaFieldsToJsonSchema, schemaRecordToJsonSchema } from "./json-schema"
|
|
2
|
+
export { resolvePropertyQueryCapabilities } from "./query-capabilities"
|
|
2
3
|
export { validateSchemaOrRefValue } from "./refs"
|
|
3
4
|
export { createLinkTokenMap, createPropertyTokenMap } from "./tokens"
|
|
4
5
|
export {
|
|
@@ -101,6 +101,18 @@ function schemaJsonSchema(
|
|
|
101
101
|
required: ["blobId", "digest", "sizeBytes"],
|
|
102
102
|
additionalProperties: false,
|
|
103
103
|
}
|
|
104
|
+
case "userRef":
|
|
105
|
+
return {
|
|
106
|
+
type: "object",
|
|
107
|
+
properties: {
|
|
108
|
+
type: { type: "string", enum: ["user"] },
|
|
109
|
+
id: { type: "string", minLength: 1 },
|
|
110
|
+
},
|
|
111
|
+
required: ["type", "id"],
|
|
112
|
+
additionalProperties: false,
|
|
113
|
+
}
|
|
114
|
+
default:
|
|
115
|
+
schema satisfies never
|
|
104
116
|
}
|
|
105
117
|
}
|
|
106
118
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { QueryScalarKind } from "../objects/query/ir"
|
|
2
|
+
import type { PrimitiveSchema } from "./types"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Yes/no decisions a primitive schema makes for rules that several modules share.
|
|
6
|
+
*
|
|
7
|
+
* Every primitive states every decision: adding one to `PrimitiveSchema` fails to compile until it
|
|
8
|
+
* has a row here, instead of inheriting string-like behavior from a denylist. Per-type behavior
|
|
9
|
+
* (value validation, normalization, JSON Schema, inference) stays in exhaustive switches next to
|
|
10
|
+
* the code that performs it.
|
|
11
|
+
*/
|
|
12
|
+
export interface PrimitiveTraits {
|
|
13
|
+
/** Scalar kind object queries compare values with; `undefined` when values are not comparable. */
|
|
14
|
+
readonly queryScalarKind: QueryScalarKind | undefined
|
|
15
|
+
/** Exact matching: `eq`/`neq`/`in`/`exists` predicates and `query.filterable`. */
|
|
16
|
+
readonly exact: boolean
|
|
17
|
+
/** Exact-match search profile: `query.exact` and `search.exact`, matched against search input. */
|
|
18
|
+
readonly exactSearch: boolean
|
|
19
|
+
/** Ordering: range predicates and `query.sortable`. */
|
|
20
|
+
readonly sortable: boolean
|
|
21
|
+
/** Keyword search: `query.text`, search titles, and vector sources. */
|
|
22
|
+
readonly text: boolean
|
|
23
|
+
/** Substring `contains` predicates. */
|
|
24
|
+
readonly contains: boolean
|
|
25
|
+
/** Facet buckets: `query.facet`. */
|
|
26
|
+
readonly facet: boolean
|
|
27
|
+
/** Allowed anywhere inside a telemetry property's schema. */
|
|
28
|
+
readonly telemetry: boolean
|
|
29
|
+
/** Allowed anywhere inside a shared Action parameter's schema. */
|
|
30
|
+
readonly shareableParam: boolean
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const comparable = {
|
|
34
|
+
exact: true,
|
|
35
|
+
exactSearch: true,
|
|
36
|
+
sortable: true,
|
|
37
|
+
text: false,
|
|
38
|
+
contains: false,
|
|
39
|
+
facet: true,
|
|
40
|
+
telemetry: true,
|
|
41
|
+
shareableParam: true,
|
|
42
|
+
} as const
|
|
43
|
+
|
|
44
|
+
const PRIMITIVE_TRAITS = {
|
|
45
|
+
string: { ...comparable, queryScalarKind: "string", text: true, contains: true },
|
|
46
|
+
uuid: { ...comparable, queryScalarKind: "uuid", contains: true },
|
|
47
|
+
integer: { ...comparable, queryScalarKind: "integer" },
|
|
48
|
+
double: { ...comparable, queryScalarKind: "double" },
|
|
49
|
+
decimal: { ...comparable, queryScalarKind: "decimal" },
|
|
50
|
+
date: { ...comparable, queryScalarKind: "date" },
|
|
51
|
+
timestamp: { ...comparable, queryScalarKind: "timestamp" },
|
|
52
|
+
boolean: { ...comparable, queryScalarKind: "boolean", sortable: false },
|
|
53
|
+
// Blob references are resolved through the object that holds them, never compared.
|
|
54
|
+
fileRef: {
|
|
55
|
+
queryScalarKind: undefined,
|
|
56
|
+
exact: false,
|
|
57
|
+
exactSearch: false,
|
|
58
|
+
sortable: false,
|
|
59
|
+
text: false,
|
|
60
|
+
contains: false,
|
|
61
|
+
facet: false,
|
|
62
|
+
telemetry: false,
|
|
63
|
+
shareableParam: false,
|
|
64
|
+
},
|
|
65
|
+
// User references match by identity, never against typed search input. They are not text, carry
|
|
66
|
+
// no order, and stay out of telemetry and shared sessions, which cannot disclose who they point to.
|
|
67
|
+
userRef: {
|
|
68
|
+
queryScalarKind: "userRef",
|
|
69
|
+
exact: true,
|
|
70
|
+
exactSearch: false,
|
|
71
|
+
sortable: false,
|
|
72
|
+
text: false,
|
|
73
|
+
contains: false,
|
|
74
|
+
facet: true,
|
|
75
|
+
telemetry: false,
|
|
76
|
+
shareableParam: false,
|
|
77
|
+
},
|
|
78
|
+
} as const satisfies Record<PrimitiveSchema, PrimitiveTraits>
|
|
79
|
+
|
|
80
|
+
export function isPrimitiveSchema(schema: unknown): schema is PrimitiveSchema {
|
|
81
|
+
return typeof schema === "string" && Object.hasOwn(PRIMITIVE_TRAITS, schema)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Traits for a primitive schema. Property schemas are not shape-validated at registration, so an
|
|
86
|
+
* untyped definition can still carry a string outside `PrimitiveSchema`: it gets `undefined`, and
|
|
87
|
+
* callers treat it as supporting no query feature.
|
|
88
|
+
*/
|
|
89
|
+
export function primitiveTraits(schema: PrimitiveSchema): PrimitiveTraits | undefined {
|
|
90
|
+
return isPrimitiveSchema(schema) ? PRIMITIVE_TRAITS[schema] : undefined
|
|
91
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query rules for a schema whose `valueTypeRef`s are already resolved. Registration uses them to
|
|
3
|
+
* accept declared `query` flags, query validation to accept operators, and the ontology API to
|
|
4
|
+
* report both, so the three cannot drift.
|
|
5
|
+
*/
|
|
6
|
+
import type { QueryScalarKind } from "../objects/query/ir"
|
|
7
|
+
import { primitiveTraits } from "./primitives"
|
|
8
|
+
import type { Property, Schema, ValueType } from "./types"
|
|
9
|
+
|
|
10
|
+
/** `eq`/`neq`/`in`/`exists` predicates. */
|
|
11
|
+
export function isExactSchema(schema: Schema): boolean {
|
|
12
|
+
if (typeof schema === "string") return primitiveTraits(schema)?.exact === true
|
|
13
|
+
return schema.type === "enum"
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** `query.exact`, and through it `search.exact`: matched against search input. */
|
|
17
|
+
export function isExactSearchSchema(schema: Schema): boolean {
|
|
18
|
+
if (typeof schema === "string") return primitiveTraits(schema)?.exactSearch === true
|
|
19
|
+
return schema.type === "enum"
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** `query.filterable`: exact matching, or `contains` over a collection. */
|
|
23
|
+
export function isFilterableSchema(schema: Schema): boolean {
|
|
24
|
+
return (
|
|
25
|
+
isExactSchema(schema) ||
|
|
26
|
+
(typeof schema !== "string" && (schema.type === "array" || schema.type === "map"))
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Range predicates and `query.sortable`. */
|
|
31
|
+
export function isSortableSchema(schema: Schema): boolean {
|
|
32
|
+
if (typeof schema === "string") return primitiveTraits(schema)?.sortable === true
|
|
33
|
+
return schema.type === "enum"
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Keyword search. */
|
|
37
|
+
export function isTextSchema(schema: Schema): boolean {
|
|
38
|
+
if (typeof schema === "string") return primitiveTraits(schema)?.text === true
|
|
39
|
+
return schema.type === "enum" && schema.valueType === "string"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** `contains`: substring for scalars, item for arrays, key for maps. */
|
|
43
|
+
export function isContainsSchema(schema: Schema): boolean {
|
|
44
|
+
if (typeof schema === "string") return primitiveTraits(schema)?.contains === true
|
|
45
|
+
return schema.type === "array" || schema.type === "map"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** `query.facet`. */
|
|
49
|
+
export function isFacetSchema(schema: Schema): boolean {
|
|
50
|
+
if (typeof schema === "string") return primitiveTraits(schema)?.facet === true
|
|
51
|
+
return schema.type === "enum"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function queryScalarKindForSchema(schema: Schema): QueryScalarKind | undefined {
|
|
55
|
+
if (typeof schema === "string") return primitiveTraits(schema)?.queryScalarKind
|
|
56
|
+
if (schema.type === "enum") return schema.valueType === "integer" ? "integer" : "string"
|
|
57
|
+
return undefined
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Predicate operators a property may use in an object query. */
|
|
61
|
+
export type PropertyQueryOperator =
|
|
62
|
+
| "eq"
|
|
63
|
+
| "neq"
|
|
64
|
+
| "lt"
|
|
65
|
+
| "lte"
|
|
66
|
+
| "gt"
|
|
67
|
+
| "gte"
|
|
68
|
+
| "in"
|
|
69
|
+
| "exists"
|
|
70
|
+
| "contains"
|
|
71
|
+
|
|
72
|
+
/** What an object query can do with one property, resolved from its schema and `query` flags. */
|
|
73
|
+
export interface PropertyQueryCapabilities {
|
|
74
|
+
readonly operators: readonly PropertyQueryOperator[]
|
|
75
|
+
readonly sortable: boolean
|
|
76
|
+
readonly facet: boolean
|
|
77
|
+
readonly text: boolean
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const PRIMARY_OPERATORS: readonly PropertyQueryOperator[] = ["eq", "in"]
|
|
81
|
+
const EXACT_OPERATORS: readonly PropertyQueryOperator[] = ["eq", "neq", "in", "exists"]
|
|
82
|
+
const RANGE_OPERATORS: readonly PropertyQueryOperator[] = ["lt", "lte", "gt", "gte"]
|
|
83
|
+
const OPERATOR_ORDER: readonly PropertyQueryOperator[] = [
|
|
84
|
+
"eq",
|
|
85
|
+
"neq",
|
|
86
|
+
"lt",
|
|
87
|
+
"lte",
|
|
88
|
+
"gt",
|
|
89
|
+
"gte",
|
|
90
|
+
"in",
|
|
91
|
+
"contains",
|
|
92
|
+
"exists",
|
|
93
|
+
]
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Resolve what object queries accept for a property, applying the same rules as query validation:
|
|
97
|
+
* primary ids always accept `eq`/`in`; other predicates, sorting, faceting, and keyword search need
|
|
98
|
+
* `query.searchable` plus the matching flag and a schema that supports it.
|
|
99
|
+
*/
|
|
100
|
+
export function resolvePropertyQueryCapabilities(
|
|
101
|
+
property: Property,
|
|
102
|
+
valueTypesById: ReadonlyMap<string, ValueType>
|
|
103
|
+
): PropertyQueryCapabilities {
|
|
104
|
+
const query = property.query?.searchable === true ? property.query : undefined
|
|
105
|
+
const schema = resolveQuerySchema(property.schema, valueTypesById)
|
|
106
|
+
const operators = new Set<PropertyQueryOperator>(property.primary ? PRIMARY_OPERATORS : [])
|
|
107
|
+
|
|
108
|
+
if (query?.filterable === true && schema) {
|
|
109
|
+
if (isExactSchema(schema)) for (const op of EXACT_OPERATORS) operators.add(op)
|
|
110
|
+
if (isSortableSchema(schema)) for (const op of RANGE_OPERATORS) operators.add(op)
|
|
111
|
+
if (isContainsSchema(schema)) operators.add("contains")
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
operators: OPERATOR_ORDER.filter((op) => operators.has(op)),
|
|
116
|
+
sortable: query?.sortable === true && schema !== undefined && isSortableSchema(schema),
|
|
117
|
+
facet: query?.facet === true && schema !== undefined && isFacetSchema(schema),
|
|
118
|
+
text:
|
|
119
|
+
query?.text === true &&
|
|
120
|
+
property.mode !== "telemetry" &&
|
|
121
|
+
schema !== undefined &&
|
|
122
|
+
isTextSchema(schema),
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function resolveQuerySchema(
|
|
127
|
+
schema: Schema,
|
|
128
|
+
valueTypesById: ReadonlyMap<string, ValueType>,
|
|
129
|
+
seen = new Set<string>()
|
|
130
|
+
): Schema | undefined {
|
|
131
|
+
if (typeof schema === "string" || schema.type !== "valueTypeRef") return schema
|
|
132
|
+
if (seen.has(schema.valueTypeId)) return undefined
|
|
133
|
+
seen.add(schema.valueTypeId)
|
|
134
|
+
const resolved = schema._resolved ?? valueTypesById.get(schema.valueTypeId)?.schema
|
|
135
|
+
return resolved ? resolveQuerySchema(resolved, valueTypesById, seen) : undefined
|
|
136
|
+
}
|
package/src/ontology/refs.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OntologyValidationError } from "./errors"
|
|
2
2
|
import type { InferSchema } from "./inference"
|
|
3
|
+
import type { RegisteredValueTypes } from "./registered"
|
|
3
4
|
import type { ObjectType, Schema, ValueType } from "./types"
|
|
4
5
|
import { isRecord, validateSchemaValue } from "./validation"
|
|
5
6
|
|
|
@@ -17,7 +18,7 @@ export type SchemaOrRef = Schema | ObjectRefSchema
|
|
|
17
18
|
|
|
18
19
|
export type InferSchemaOrRef<
|
|
19
20
|
TSchema extends SchemaOrRef,
|
|
20
|
-
TValueTypes extends readonly ValueType[] =
|
|
21
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
21
22
|
> =
|
|
22
23
|
TSchema extends ObjectRefSchema<infer TObjectTypeId>
|
|
23
24
|
? ObjectRef<TObjectTypeId>
|
|
@@ -25,14 +26,40 @@ export type InferSchemaOrRef<
|
|
|
25
26
|
? InferSchema<TSchema, TValueTypes>
|
|
26
27
|
: never
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
interface RefBuilder {
|
|
30
|
+
/**
|
|
31
|
+
* Reference to one object of `objectType`, for Action and Workflow parameters.
|
|
32
|
+
*
|
|
33
|
+
* Object properties point at other objects with `link(...)` instead: a link is traversable,
|
|
34
|
+
* queryable from both ends, and kept consistent when its target is deleted.
|
|
35
|
+
*/
|
|
36
|
+
<const TObjectType extends ObjectType>(
|
|
37
|
+
objectType: TObjectType
|
|
38
|
+
): ObjectRefSchema<TObjectType["id"]>
|
|
39
|
+
/** Reference to a Sixb user, valued `{ type: "user", id }`. Serialized as `"userRef"`. */
|
|
40
|
+
user(): "userRef"
|
|
41
|
+
/** Reference to a stored file, valued as a `FileRef`. Serialized as `"fileRef"`. */
|
|
42
|
+
file(): "fileRef"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Schemas that point outside the value itself.
|
|
47
|
+
*
|
|
48
|
+
* Scalars are plain strings (`"string"`, `"timestamp"`); anything that points elsewhere or takes
|
|
49
|
+
* parameters is a builder: `ref(Customer)`, `ref.user()`, `ref.file()`.
|
|
50
|
+
*/
|
|
51
|
+
export const ref: RefBuilder = Object.assign(
|
|
52
|
+
<const TObjectType extends ObjectType>(
|
|
53
|
+
objectType: TObjectType
|
|
54
|
+
): ObjectRefSchema<TObjectType["id"]> => ({
|
|
32
55
|
type: "objectRef",
|
|
33
56
|
objectTypeId: objectType.id,
|
|
57
|
+
}),
|
|
58
|
+
{
|
|
59
|
+
user: (): "userRef" => "userRef",
|
|
60
|
+
file: (): "fileRef" => "fileRef",
|
|
34
61
|
}
|
|
35
|
-
|
|
62
|
+
)
|
|
36
63
|
|
|
37
64
|
/** Build an exact, typed reference to one object instance. */
|
|
38
65
|
export function objectRef<const TObjectType extends ObjectType>(
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ObjectTypeWithPropertyTokens } from "./tokens"
|
|
2
|
+
import type { SixbObjectTypeMap, SixbValueTypeMap, ValueType } from "./types"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Every object type the generated ontology manifest registers.
|
|
6
|
+
*
|
|
7
|
+
* It is the one registry every typed surface resolves string link targets against, so the same
|
|
8
|
+
* query is typed the same way in an Action, a Workflow and the browser. Without a manifest it is the
|
|
9
|
+
* loose base type: id-only link targets then degrade gracefully instead of failing.
|
|
10
|
+
*
|
|
11
|
+
* Deliberately not generic. A registry parameterized per call site gives each site its own type
|
|
12
|
+
* identity, and TypeScript then has to compare otherwise identical SDK types structurally.
|
|
13
|
+
*/
|
|
14
|
+
export type RegisteredObjectType = [keyof SixbObjectTypeMap] extends [never]
|
|
15
|
+
? ObjectTypeWithPropertyTokens
|
|
16
|
+
: Extract<SixbObjectTypeMap[keyof SixbObjectTypeMap], ObjectTypeWithPropertyTokens>
|
|
17
|
+
|
|
18
|
+
/** Every value type the generated ontology manifest registers, for string-only `valueTypeRef`s. */
|
|
19
|
+
export type RegisteredValueTypes = readonly Extract<
|
|
20
|
+
SixbValueTypeMap[keyof SixbValueTypeMap],
|
|
21
|
+
ValueType
|
|
22
|
+
>[]
|
package/src/ontology/registry.ts
CHANGED
|
@@ -68,9 +68,11 @@ function isOntologyDocumentSource(
|
|
|
68
68
|
* via `valueTypeRef` nodes that carry a `_resolved` schema.
|
|
69
69
|
*
|
|
70
70
|
* This enables auto-registration: when codegen emits `valueTypeRef(VT)`,
|
|
71
|
-
* it stores the resolved schema
|
|
72
|
-
* `valueTypesById` registry is populated
|
|
73
|
-
* ValueTypes explicitly.
|
|
71
|
+
* it stores the resolved schema (and the semantic type, if any) inline. We
|
|
72
|
+
* extract them here so the runtime `valueTypesById` registry is populated
|
|
73
|
+
* without requiring users to pass ValueTypes explicitly. Unit validation reads
|
|
74
|
+
* the semantic type from that registry, so dropping it would make a
|
|
75
|
+
* unit-bearing value type reject every unit.
|
|
74
76
|
*/
|
|
75
77
|
function extractValueTypesFromSchema(
|
|
76
78
|
schema: Schema,
|
|
@@ -89,6 +91,7 @@ function extractValueTypesFromSchema(
|
|
|
89
91
|
id: schema.valueTypeId,
|
|
90
92
|
name: localName,
|
|
91
93
|
schema: schema._resolved,
|
|
94
|
+
...(schema._semanticType === undefined ? {} : { semanticType: schema._semanticType }),
|
|
92
95
|
})
|
|
93
96
|
extractValueTypesFromSchema(schema._resolved, collected, seen)
|
|
94
97
|
}
|
package/src/ontology/tokens.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { InferObjectProperties } from "./inference"
|
|
1
2
|
import {
|
|
2
3
|
createLinkPathSelection,
|
|
3
4
|
type LinkPathSelectionBuilder,
|
|
@@ -7,6 +8,7 @@ import type { ObjectLink, ObjectType, Property } from "./types"
|
|
|
7
8
|
|
|
8
9
|
declare const propertyTokenBrand: unique symbol
|
|
9
10
|
declare const linkTokenBrand: unique symbol
|
|
11
|
+
declare const objectPropertiesBrand: unique symbol
|
|
10
12
|
|
|
11
13
|
/**
|
|
12
14
|
* Strongly-typed handle to a property on a specific object type.
|
|
@@ -57,12 +59,49 @@ export type LinkTokenMap<TObjectType extends ObjectType> = {
|
|
|
57
59
|
/**
|
|
58
60
|
* Object type with property tokens (`p.*`).
|
|
59
61
|
*
|
|
60
|
-
* The original ontology shape is preserved; this only adds typed handles
|
|
62
|
+
* The original ontology shape is preserved; this only adds typed handles, and the type-only
|
|
63
|
+
* property values every row of this object type carries.
|
|
61
64
|
*/
|
|
62
65
|
export type ObjectTypeWithPropertyTokens<TObjectType extends ObjectType = ObjectType> =
|
|
63
66
|
TObjectType & {
|
|
64
67
|
readonly p: PropertyTokenMap<TObjectType>
|
|
65
|
-
}
|
|
68
|
+
} & ObjectPropertiesMetadata<TObjectType>
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Type-only property values of an object type, inferred once where the type is defined so SDK types
|
|
72
|
+
* read them back by indexed access instead of re-deriving them from `properties`.
|
|
73
|
+
*
|
|
74
|
+
* Exported only so declaration files can name it, like the token maps.
|
|
75
|
+
*/
|
|
76
|
+
export type ObjectPropertiesMetadata<TObjectType extends ObjectType> = {
|
|
77
|
+
readonly [objectPropertiesBrand]?: string extends TObjectType["id"]
|
|
78
|
+
? { readonly properties: Record<string, unknown> }
|
|
79
|
+
: ObjectPropertiesCarrier<TObjectType>
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Carrier of an object type's inferred property values.
|
|
84
|
+
*
|
|
85
|
+
* When TypeScript relates, or infers between, two instantiations of a generic type it has not been
|
|
86
|
+
* told the variance of, it measures that variance by probing the type with marker types. A probe
|
|
87
|
+
* that reached the schema inference over a marker overflowed its depth limits (TS2589), in code as
|
|
88
|
+
* ordinary as reassigning a query. Declaring this carrier invariant stops every probe here, so an
|
|
89
|
+
* object type costs no more to relate than its tokens. The loose base type carries a plain record
|
|
90
|
+
* instead, which a concrete object type's carrier relates to structurally.
|
|
91
|
+
*/
|
|
92
|
+
interface ObjectPropertiesCarrier<in out TObjectType extends ObjectType> {
|
|
93
|
+
readonly properties: InferObjectProperties<TObjectType>
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The property values of an object type, as its rows carry them.
|
|
98
|
+
*
|
|
99
|
+
* Reads the type computed once by {@link ObjectTypeWithPropertyTokens}. For the loose base type,
|
|
100
|
+
* whose property ids are not statically known, it is `Record<string, unknown>`.
|
|
101
|
+
*/
|
|
102
|
+
export type ObjectTypeProperties<TObjectType extends ObjectTypeWithPropertyTokens> = NonNullable<
|
|
103
|
+
TObjectType[typeof objectPropertiesBrand]
|
|
104
|
+
>["properties"]
|
|
66
105
|
|
|
67
106
|
/**
|
|
68
107
|
* Object type with property tokens (`p.*`) and link tokens (`l.*`).
|
package/src/ontology/types.ts
CHANGED
|
@@ -22,6 +22,7 @@ import type { QuantitativeTypeId } from "./units"
|
|
|
22
22
|
* - `"uuid"` for an external system identifier.
|
|
23
23
|
* - `"timestamp"` for `lastObservedAt`.
|
|
24
24
|
* - `"fileRef"` for blob-backed documents, images, and attachments.
|
|
25
|
+
* - `"userRef"` for a Sixb user, such as a task's assignee (author it with `ref.user()`).
|
|
25
26
|
* - `"double"` for telemetry such as temperature or humidity.
|
|
26
27
|
*/
|
|
27
28
|
export type PrimitiveSchema =
|
|
@@ -34,12 +35,18 @@ export type PrimitiveSchema =
|
|
|
34
35
|
| "timestamp"
|
|
35
36
|
| "uuid"
|
|
36
37
|
| "fileRef"
|
|
38
|
+
| "userRef"
|
|
37
39
|
|
|
38
40
|
export interface ValueTypeRefSchema {
|
|
39
41
|
type: "valueTypeRef"
|
|
40
42
|
valueTypeId: string
|
|
41
43
|
/** Type-level: fully resolved schema for direct inference. Populated by codegen. */
|
|
42
44
|
_resolved?: Schema
|
|
45
|
+
/**
|
|
46
|
+
* The referenced value type's `semanticType`, carried next to `_resolved` so a value type that
|
|
47
|
+
* is registered only through this ref keeps its unit constraint. Populated by `valueTypeRef(VT)`.
|
|
48
|
+
*/
|
|
49
|
+
_semanticType?: QuantitativeTypeId
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
/**
|
|
@@ -414,13 +421,22 @@ export interface ObjectType {
|
|
|
414
421
|
* Ambient id-to-object-type index for app ontology definitions.
|
|
415
422
|
*
|
|
416
423
|
* Sixb generates a `.sixb/types/ontology.d.ts` module augmentation that adds
|
|
417
|
-
* entries here
|
|
418
|
-
*
|
|
419
|
-
* runtime ontology shape.
|
|
424
|
+
* entries here. Every typed surface — `sixb.objects(...)`, Action reads, the
|
|
425
|
+
* client query builder — resolves string link targets like `"Customer"` through
|
|
426
|
+
* it, without changing the runtime ontology shape.
|
|
420
427
|
*/
|
|
421
428
|
// biome-ignore lint/suspicious/noEmptyInterface: App code augments this interface.
|
|
422
429
|
export interface SixbObjectTypeMap {}
|
|
423
430
|
|
|
431
|
+
/**
|
|
432
|
+
* Ambient id-to-value-type index, generated alongside {@link SixbObjectTypeMap}.
|
|
433
|
+
*
|
|
434
|
+
* It types properties declared with a string-only `valueTypeRef("id")`, whose
|
|
435
|
+
* schema is not carried by the reference itself.
|
|
436
|
+
*/
|
|
437
|
+
// biome-ignore lint/suspicious/noEmptyInterface: App code augments this interface.
|
|
438
|
+
export interface SixbValueTypeMap {}
|
|
439
|
+
|
|
424
440
|
/**
|
|
425
441
|
* Root ontology document for object type modeling.
|
|
426
442
|
*
|