@sixb/core 0.1.12 → 0.1.14
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/errors.d.ts +12 -0
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/index.d.ts +4 -3
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +16 -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.d.ts +2 -0
- package/dist/auth/strategy.d.ts.map +1 -1
- package/dist/auth/strategy.js +4 -2
- package/dist/auth/strategy.js.map +1 -1
- package/dist/auth/types.d.ts +16 -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-m7cx05vp.js → chunk-00pfcqh4.js} +126 -59
- package/dist/{chunk-m7cx05vp.js.map → chunk-00pfcqh4.js.map} +13 -12
- package/dist/{chunk-nzsy3xrp.js → chunk-16jenmzw.js} +69 -44
- package/dist/{chunk-nzsy3xrp.js.map → chunk-16jenmzw.js.map} +7 -7
- package/dist/{chunk-y3ev53cq.js → chunk-2fv8sajb.js} +2 -2
- package/dist/{chunk-q5gz3g2j.js → chunk-2jntasmh.js} +13 -16
- package/dist/{chunk-q5gz3g2j.js.map → chunk-2jntasmh.js.map} +3 -3
- package/dist/chunk-3a338wrp.js +191 -0
- package/dist/chunk-3a338wrp.js.map +11 -0
- package/dist/{chunk-ybhz3j9g.js → chunk-3fpgxpsq.js} +104 -148
- package/dist/{chunk-ybhz3j9g.js.map → chunk-3fpgxpsq.js.map} +7 -8
- 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-3ghw2t5q.js → chunk-4ypbe95r.js} +10 -16
- package/dist/chunk-4ypbe95r.js.map +10 -0
- package/dist/{chunk-2cxv584m.js → chunk-6rzb1g6h.js} +358 -248
- package/dist/chunk-6rzb1g6h.js.map +44 -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-728fp090.js} +49 -42
- package/dist/chunk-728fp090.js.map +15 -0
- package/dist/chunk-96yw3pwd.js.map +2 -2
- 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-y1ahv8b7.js → chunk-bdhfn0ww.js} +1 -1
- package/dist/{chunk-kept9cdd.js → chunk-bxx3ms5t.js} +1 -1
- package/dist/{chunk-xtfryrfb.js → chunk-cbn96bve.js} +2 -2
- package/dist/{chunk-vsg0g7h9.js → chunk-d8yes9yx.js} +304 -45
- package/dist/chunk-d8yes9yx.js.map +20 -0
- 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-qm535afa.js → chunk-dv4ct8mp.js} +66 -24
- package/dist/chunk-dv4ct8mp.js.map +15 -0
- package/dist/{chunk-t7dzd1tm.js → chunk-e2c5yxfe.js} +2 -2
- package/dist/{chunk-p6r1ex7t.js → chunk-ffwvdgk1.js} +5 -13
- package/dist/chunk-ffwvdgk1.js.map +10 -0
- package/dist/{chunk-tg4g4zh0.js → chunk-gct3m1da.js} +9 -9
- package/dist/{chunk-tg4g4zh0.js.map → chunk-gct3m1da.js.map} +3 -3
- package/dist/chunk-h89wz928.js +42 -0
- package/dist/chunk-h89wz928.js.map +10 -0
- package/dist/{chunk-b768c93y.js → chunk-hj0n3c2p.js} +83 -28
- package/dist/{chunk-b768c93y.js.map → chunk-hj0n3c2p.js.map} +5 -5
- package/dist/{chunk-hkw8rykk.js → chunk-ht4a7mjg.js} +74 -4
- package/dist/chunk-ht4a7mjg.js.map +15 -0
- package/dist/{chunk-7qnvhtcd.js → chunk-hxgj4kzd.js} +17 -17
- package/dist/{chunk-7qnvhtcd.js.map → chunk-hxgj4kzd.js.map} +5 -5
- package/dist/{chunk-bg2bs62d.js → chunk-jfdggg1p.js} +5 -5
- package/dist/{chunk-f06sf7rr.js → chunk-k4kkp58d.js} +18 -5
- package/dist/chunk-k4kkp58d.js.map +11 -0
- package/dist/{chunk-e1f1sqba.js → chunk-kxea54yg.js} +3 -3
- 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-xn686q2e.js → chunk-ma1mhh7w.js} +75 -57
- package/dist/{chunk-xn686q2e.js.map → chunk-ma1mhh7w.js.map} +3 -3
- 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-g50nxqs5.js → chunk-pvgpckm1.js} +63 -20
- package/dist/chunk-pvgpckm1.js.map +20 -0
- package/dist/{chunk-jjwhy3rs.js → chunk-q2xghyft.js} +5 -5
- package/dist/chunk-rdghfsss.js.map +2 -2
- 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-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-sfypc7mk.js → chunk-wn7mznxc.js} +4 -4
- package/dist/{chunk-r5zythxp.js → chunk-wnxabtn4.js} +7 -7
- package/dist/{chunk-4ph94nhd.js → chunk-ww185kt6.js} +2 -2
- 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-3bnt2wna.js → chunk-yvf2jqj8.js} +1 -1
- 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/errors.d.ts +1 -1
- package/dist/storage/auth/errors.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts +2 -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 +77 -20
- 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 +2035 -1358
- 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/errors.ts +23 -0
- package/src/auth/index.ts +4 -3
- package/src/auth/runtime.ts +353 -297
- package/src/auth/session-cache.ts +18 -6
- package/src/auth/sessions.ts +30 -0
- package/src/auth/strategy.ts +2 -0
- package/src/auth/types.ts +15 -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/errors.ts +0 -1
- package/src/storage/auth/in-memory/access-tokens.ts +5 -2
- package/src/storage/auth/in-memory/auth-storage.ts +49 -73
- 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 +72 -20
- 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 +253 -192
- 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-y3ev53cq.js.map → chunk-2fv8sajb.js.map} +0 -0
- /package/dist/{chunk-5tetw4hn.js.map → chunk-4tnrzqqh.js.map} +0 -0
- /package/dist/{chunk-y1ahv8b7.js.map → chunk-bdhfn0ww.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-t7dzd1tm.js.map → chunk-e2c5yxfe.js.map} +0 -0
- /package/dist/{chunk-bg2bs62d.js.map → chunk-jfdggg1p.js.map} +0 -0
- /package/dist/{chunk-e1f1sqba.js.map → chunk-kxea54yg.js.map} +0 -0
- /package/dist/{chunk-0mza4xb2.js.map → chunk-m8zkvep1.js.map} +0 -0
- /package/dist/{chunk-jjwhy3rs.js.map → chunk-q2xghyft.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-sfypc7mk.js.map → chunk-wn7mznxc.js.map} +0 -0
- /package/dist/{chunk-r5zythxp.js.map → chunk-wnxabtn4.js.map} +0 -0
- /package/dist/{chunk-4ph94nhd.js.map → chunk-ww185kt6.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-3bnt2wna.js.map → chunk-yvf2jqj8.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
|
@@ -3,6 +3,7 @@ import type { AuthenticatedAuthSession } from "./types"
|
|
|
3
3
|
|
|
4
4
|
interface SessionCacheEntry {
|
|
5
5
|
readonly tokenHash: string
|
|
6
|
+
readonly transport: "cookie" | "bearer"
|
|
6
7
|
readonly audience: AuthSessionAudience
|
|
7
8
|
readonly session: AuthenticatedAuthSession
|
|
8
9
|
readonly expiresAtMs: number
|
|
@@ -11,11 +12,18 @@ interface SessionCacheEntry {
|
|
|
11
12
|
export interface SessionCacheGetInput {
|
|
12
13
|
readonly sessionId: string
|
|
13
14
|
readonly tokenHash: string
|
|
14
|
-
|
|
15
|
+
/** A cookie is only ever answered from a cookie entry, and a bearer token from a bearer entry. */
|
|
16
|
+
readonly transport: "cookie" | "bearer"
|
|
17
|
+
/** The browser audience a cookie was read for. Bearer sessions carry their own. */
|
|
18
|
+
readonly audience?: AuthSessionAudience
|
|
15
19
|
readonly nowMs: number
|
|
16
20
|
}
|
|
17
21
|
|
|
18
|
-
export interface SessionCacheSetInput
|
|
22
|
+
export interface SessionCacheSetInput {
|
|
23
|
+
readonly sessionId: string
|
|
24
|
+
readonly tokenHash: string
|
|
25
|
+
readonly audience: AuthSessionAudience
|
|
26
|
+
readonly nowMs: number
|
|
19
27
|
readonly session: AuthenticatedAuthSession
|
|
20
28
|
readonly sessionExpiresAtMs: number
|
|
21
29
|
readonly sessionAbsoluteExpiresAtMs?: number
|
|
@@ -30,7 +38,7 @@ export interface SessionCacheSetInput extends SessionCacheGetInput {
|
|
|
30
38
|
* API stalls. Caching the resolved result for a short TTL collapses those reads to one
|
|
31
39
|
* per session per window.
|
|
32
40
|
*
|
|
33
|
-
* Safety: entries are pinned to the exact token hash
|
|
41
|
+
* Safety: entries are pinned to the exact token hash, transport, and audience that produced them and
|
|
34
42
|
* are never served past the session's rolling or absolute deadline. The short TTL bounds how long
|
|
35
43
|
* a revoked session can linger; sign-out additionally invalidates eagerly via
|
|
36
44
|
* {@link SessionCache.invalidate}.
|
|
@@ -52,7 +60,8 @@ export class SessionCache {
|
|
|
52
60
|
if (
|
|
53
61
|
entry.expiresAtMs <= input.nowMs ||
|
|
54
62
|
entry.tokenHash !== input.tokenHash ||
|
|
55
|
-
entry.
|
|
63
|
+
entry.transport !== input.transport ||
|
|
64
|
+
(input.audience !== undefined && entry.audience !== input.audience)
|
|
56
65
|
) {
|
|
57
66
|
this.entries.delete(input.sessionId)
|
|
58
67
|
return undefined
|
|
@@ -62,11 +71,13 @@ export class SessionCache {
|
|
|
62
71
|
}
|
|
63
72
|
|
|
64
73
|
set(input: SessionCacheSetInput): void {
|
|
65
|
-
// Never let a cached session outlive the real session
|
|
74
|
+
// Never let a cached session outlive the real session, or a bearer session its access token.
|
|
75
|
+
const bearer = input.session.session.bearer
|
|
66
76
|
const expiresAtMs = Math.min(
|
|
67
77
|
input.nowMs + this.ttlMs,
|
|
68
78
|
input.sessionExpiresAtMs,
|
|
69
|
-
input.sessionAbsoluteExpiresAtMs ?? Number.POSITIVE_INFINITY
|
|
79
|
+
input.sessionAbsoluteExpiresAtMs ?? Number.POSITIVE_INFINITY,
|
|
80
|
+
bearer?.accessExpiresAt.getTime() ?? Number.POSITIVE_INFINITY
|
|
70
81
|
)
|
|
71
82
|
if (expiresAtMs <= input.nowMs) {
|
|
72
83
|
return
|
|
@@ -76,6 +87,7 @@ export class SessionCache {
|
|
|
76
87
|
this.entries.delete(input.sessionId)
|
|
77
88
|
this.entries.set(input.sessionId, {
|
|
78
89
|
tokenHash: input.tokenHash,
|
|
90
|
+
transport: bearer ? "bearer" : "cookie",
|
|
79
91
|
audience: input.audience,
|
|
80
92
|
session: input.session,
|
|
81
93
|
expiresAtMs,
|
package/src/auth/sessions.ts
CHANGED
|
@@ -53,3 +53,33 @@ export function createSessionCredential(sessionId = `ses_${randomUUID()}`): Sess
|
|
|
53
53
|
cookieValue: formatSessionCookieValue(sessionId, sessionSecret),
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
+
|
|
57
|
+
export const SESSION_ACCESS_TOKEN_PREFIX = "sixb_at_"
|
|
58
|
+
export const SESSION_REFRESH_TOKEN_PREFIX = "sixb_rt_"
|
|
59
|
+
|
|
60
|
+
export interface BearerSessionTokens {
|
|
61
|
+
readonly accessToken: string
|
|
62
|
+
readonly refreshToken: string
|
|
63
|
+
readonly tokenHash: string
|
|
64
|
+
readonly refreshTokenHash: string
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Fresh access and refresh tokens for a native client's session. Only their hashes are stored. */
|
|
68
|
+
export function createBearerSessionTokens(sessionId: string): BearerSessionTokens {
|
|
69
|
+
const accessSecret = generateSessionSecret()
|
|
70
|
+
const refreshSecret = generateSessionSecret()
|
|
71
|
+
return {
|
|
72
|
+
accessToken: `${SESSION_ACCESS_TOKEN_PREFIX}${formatSessionCookieValue(sessionId, accessSecret)}`,
|
|
73
|
+
refreshToken: `${SESSION_REFRESH_TOKEN_PREFIX}${formatSessionCookieValue(sessionId, refreshSecret)}`,
|
|
74
|
+
tokenHash: hashSessionSecret(accessSecret),
|
|
75
|
+
refreshTokenHash: hashSessionSecret(refreshSecret),
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** The session id and secret in a bearer session token, or null when it is not one. */
|
|
80
|
+
export function parseBearerSessionToken(
|
|
81
|
+
prefix: typeof SESSION_ACCESS_TOKEN_PREFIX | typeof SESSION_REFRESH_TOKEN_PREFIX,
|
|
82
|
+
value: string
|
|
83
|
+
): SessionCookieParts | null {
|
|
84
|
+
return value.startsWith(prefix) ? parseSessionCookieValue(value.slice(prefix.length)) : null
|
|
85
|
+
}
|
package/src/auth/strategy.ts
CHANGED
package/src/auth/types.ts
CHANGED
|
@@ -30,13 +30,6 @@ export function principalsEqual(left: Principal, right: Principal): boolean {
|
|
|
30
30
|
return left.type === right.type && left.id === right.id
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export interface SecurityContext {
|
|
34
|
-
readonly principal: Principal
|
|
35
|
-
readonly sessionId?: string
|
|
36
|
-
readonly projectId: string
|
|
37
|
-
readonly correlationId: string
|
|
38
|
-
}
|
|
39
|
-
|
|
40
33
|
export type AuthStrategyKind = "magicLink" | "oidc" | "dev" | "disabled"
|
|
41
34
|
|
|
42
35
|
export interface AuthStrategy {
|
|
@@ -225,7 +218,6 @@ export interface InviteUserInput {
|
|
|
225
218
|
readonly groups?: readonly GroupDefinition[]
|
|
226
219
|
readonly groupIds?: readonly string[]
|
|
227
220
|
readonly expiresAt?: Date
|
|
228
|
-
readonly returnTo?: string
|
|
229
221
|
/** Reveal the delivered link once in the result. Defaults to false. */
|
|
230
222
|
readonly revealLink?: boolean
|
|
231
223
|
}
|
|
@@ -330,6 +322,11 @@ export interface MemberCapabilities {
|
|
|
330
322
|
export interface MemberSummary {
|
|
331
323
|
readonly user: UserRecord
|
|
332
324
|
readonly groupIds: readonly string[]
|
|
325
|
+
/**
|
|
326
|
+
* The groups among `groupIds` that the identity provider manages. They sync at the user's next
|
|
327
|
+
* sign-in, so they cannot be removed here.
|
|
328
|
+
*/
|
|
329
|
+
readonly managedGroupIds: readonly string[]
|
|
333
330
|
readonly capabilities: MemberCapabilities
|
|
334
331
|
}
|
|
335
332
|
|
|
@@ -348,6 +345,7 @@ export interface UpdateMemberGroupsInput {
|
|
|
348
345
|
export interface UpdateMemberGroupsResult {
|
|
349
346
|
readonly user: UserRecord
|
|
350
347
|
readonly groupIds: readonly string[]
|
|
348
|
+
readonly managedGroupIds: readonly string[]
|
|
351
349
|
}
|
|
352
350
|
|
|
353
351
|
export interface SuspendMemberInput {
|
|
@@ -357,6 +355,7 @@ export interface SuspendMemberInput {
|
|
|
357
355
|
export interface SuspendMemberResult {
|
|
358
356
|
readonly user: UserRecord
|
|
359
357
|
readonly groupIds: readonly string[]
|
|
358
|
+
readonly managedGroupIds: readonly string[]
|
|
360
359
|
}
|
|
361
360
|
|
|
362
361
|
export interface ReactivateMemberInput {
|
|
@@ -366,9 +365,11 @@ export interface ReactivateMemberInput {
|
|
|
366
365
|
export interface ReactivateMemberResult {
|
|
367
366
|
readonly user: UserRecord
|
|
368
367
|
readonly groupIds: readonly string[]
|
|
368
|
+
readonly managedGroupIds: readonly string[]
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
-
|
|
371
|
+
/** `"session"` reads only the cookie; `"any"` reads a bearer access token, else the cookie. */
|
|
372
|
+
export type AuthCredentialSource = "session" | "any"
|
|
372
373
|
|
|
373
374
|
export interface AuthSessionResolutionOptions extends AuthSessionAudienceOptions {
|
|
374
375
|
readonly credentialSource?: AuthCredentialSource
|
|
@@ -376,12 +377,11 @@ export interface AuthSessionResolutionOptions extends AuthSessionAudienceOptions
|
|
|
376
377
|
readonly sessionActivity?: "foreground"
|
|
377
378
|
}
|
|
378
379
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}
|
|
380
|
+
/** Where an invitation link sends its recipient. */
|
|
381
|
+
export interface InvitationDestination {
|
|
382
|
+
readonly audience: AuthSessionAudience
|
|
383
|
+
readonly requestOrigin: string
|
|
384
|
+
readonly returnTo: string
|
|
385
385
|
}
|
|
386
386
|
|
|
387
387
|
export interface RevokeInvitationInput {
|
|
@@ -521,9 +521,7 @@ export type SixbAuthConfig =
|
|
|
521
521
|
|
|
522
522
|
export type AuthSessionFailureReason =
|
|
523
523
|
| "auth_disabled"
|
|
524
|
-
| "missing_credentials"
|
|
525
524
|
| "missing_cookie"
|
|
526
|
-
| "missing_access_token"
|
|
527
525
|
| "invalid_cookie"
|
|
528
526
|
| "invalid_access_token"
|
|
529
527
|
| "invalid_session"
|
package/src/bootstrap/index.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { dirname, extname, join, relative, resolve, sep } from "node:path"
|
|
|
3
3
|
import { pathToFileURL } from "node:url"
|
|
4
4
|
import type { OntologyDocumentInput } from "../ontology/registry"
|
|
5
5
|
import type { ObjectTypeWithPropertyTokens } from "../ontology/tokens"
|
|
6
|
+
import type { ValueType } from "../ontology/types"
|
|
6
7
|
import { RuntimeError } from "../runtime/errors"
|
|
7
8
|
|
|
8
9
|
const moduleExtensions = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"])
|
|
@@ -14,8 +15,17 @@ export interface OntologyTypeManifestEntry {
|
|
|
14
15
|
readonly typeExpression: string
|
|
15
16
|
}
|
|
16
17
|
|
|
18
|
+
/** A value type the manifest registers, so a string-only `valueTypeRef("id")` is typed. */
|
|
19
|
+
export interface OntologyValueTypeManifestEntry {
|
|
20
|
+
readonly valueTypeId: string
|
|
21
|
+
readonly modulePath: string
|
|
22
|
+
readonly exportName: string
|
|
23
|
+
readonly typeExpression: string
|
|
24
|
+
}
|
|
25
|
+
|
|
17
26
|
export interface OntologyTypeManifestDiscovery {
|
|
18
27
|
readonly entries: readonly OntologyTypeManifestEntry[]
|
|
28
|
+
readonly valueTypeEntries: readonly OntologyValueTypeManifestEntry[]
|
|
19
29
|
readonly moduleCount: number
|
|
20
30
|
}
|
|
21
31
|
|
|
@@ -37,7 +47,8 @@ export async function discoverOntologyTypeManifest(
|
|
|
37
47
|
const ontologyDir = join(resolvedProjectRoot, "ontology")
|
|
38
48
|
const modulePaths = await listModuleFiles(ontologyDir)
|
|
39
49
|
const entries = new Map<string, OntologyTypeManifestEntry>()
|
|
40
|
-
const
|
|
50
|
+
const valueTypeEntries = new Map<string, OntologyValueTypeManifestEntry>()
|
|
51
|
+
const seen = new Set<unknown>()
|
|
41
52
|
|
|
42
53
|
for (const modulePath of modulePaths) {
|
|
43
54
|
const moduleSpecifier = toGeneratedModuleSpecifier({
|
|
@@ -56,13 +67,17 @@ export async function discoverOntologyTypeManifest(
|
|
|
56
67
|
modulePath,
|
|
57
68
|
moduleSpecifier,
|
|
58
69
|
entries,
|
|
59
|
-
|
|
70
|
+
valueTypeEntries,
|
|
71
|
+
seen,
|
|
60
72
|
})
|
|
61
73
|
}
|
|
62
74
|
}
|
|
63
75
|
|
|
64
76
|
return {
|
|
65
77
|
entries: [...entries.values()].sort((a, b) => a.objectTypeId.localeCompare(b.objectTypeId)),
|
|
78
|
+
valueTypeEntries: [...valueTypeEntries.values()].sort((a, b) =>
|
|
79
|
+
a.valueTypeId.localeCompare(b.valueTypeId)
|
|
80
|
+
),
|
|
66
81
|
moduleCount: modulePaths.length,
|
|
67
82
|
}
|
|
68
83
|
}
|
|
@@ -89,7 +104,7 @@ export async function generateOntologyTypeManifest(
|
|
|
89
104
|
}
|
|
90
105
|
}
|
|
91
106
|
|
|
92
|
-
const content = renderOntologyTypeManifest(discovery
|
|
107
|
+
const content = renderOntologyTypeManifest(discovery)
|
|
93
108
|
await mkdir(dirname(outFile), { recursive: true })
|
|
94
109
|
const written = await writeFileIfChanged(outFile, content)
|
|
95
110
|
|
|
@@ -101,98 +116,114 @@ export async function generateOntologyTypeManifest(
|
|
|
101
116
|
}
|
|
102
117
|
}
|
|
103
118
|
|
|
119
|
+
/**
|
|
120
|
+
* Mirrors what runtime discovery registers from an `ontology/` module: exported object types and
|
|
121
|
+
* value types, the ones an exported ontology document carries, and those inside exported arrays.
|
|
122
|
+
*/
|
|
104
123
|
function collectManifestEntries(input: {
|
|
105
124
|
readonly exportedValue: unknown
|
|
106
125
|
readonly exportName: string
|
|
107
126
|
readonly modulePath: string
|
|
108
127
|
readonly moduleSpecifier: string
|
|
109
128
|
readonly entries: Map<string, OntologyTypeManifestEntry>
|
|
110
|
-
readonly
|
|
129
|
+
readonly valueTypeEntries: Map<string, OntologyValueTypeManifestEntry>
|
|
130
|
+
readonly seen: Set<unknown>
|
|
111
131
|
}): void {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
132
|
+
const exported = `(typeof import(${JSON.stringify(input.moduleSpecifier)})[${JSON.stringify(
|
|
133
|
+
input.exportName
|
|
134
|
+
)}])`
|
|
135
|
+
const add = (value: unknown, typeExpression: (id: string) => string): void => {
|
|
136
|
+
if (isObjectTypeWithPropertyTokens(value)) {
|
|
137
|
+
addManifestEntry({
|
|
138
|
+
kind: "object type",
|
|
139
|
+
definition: value,
|
|
140
|
+
entry: {
|
|
141
|
+
objectTypeId: value.id,
|
|
142
|
+
modulePath: input.modulePath,
|
|
143
|
+
exportName: input.exportName,
|
|
144
|
+
typeExpression: typeExpression(value.id),
|
|
145
|
+
},
|
|
146
|
+
idOf: (entry) => entry.objectTypeId,
|
|
147
|
+
entries: input.entries,
|
|
148
|
+
seen: input.seen,
|
|
149
|
+
})
|
|
150
|
+
} else if (isValueType(value)) {
|
|
151
|
+
addManifestEntry({
|
|
152
|
+
kind: "value type",
|
|
153
|
+
definition: value,
|
|
154
|
+
entry: {
|
|
155
|
+
valueTypeId: value.id,
|
|
156
|
+
modulePath: input.modulePath,
|
|
157
|
+
exportName: input.exportName,
|
|
158
|
+
typeExpression: typeExpression(value.id),
|
|
159
|
+
},
|
|
160
|
+
idOf: (entry) => entry.valueTypeId,
|
|
161
|
+
entries: input.valueTypeEntries,
|
|
162
|
+
seen: input.seen,
|
|
163
|
+
})
|
|
164
|
+
}
|
|
124
165
|
}
|
|
125
166
|
|
|
126
167
|
if (isOntologyDocumentInput(input.exportedValue)) {
|
|
127
168
|
for (const objectType of input.exportedValue.objectTypes) {
|
|
128
|
-
|
|
169
|
+
add(
|
|
129
170
|
objectType,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
)} }
|
|
137
|
-
|
|
138
|
-
seenObjectTypes: input.seenObjectTypes,
|
|
139
|
-
})
|
|
171
|
+
(id) => `Extract<${exported}["objectTypes"][number], { id: ${JSON.stringify(id)} }>`
|
|
172
|
+
)
|
|
173
|
+
}
|
|
174
|
+
for (const valueType of input.exportedValue.valueTypes ?? []) {
|
|
175
|
+
add(
|
|
176
|
+
valueType,
|
|
177
|
+
(id) => `Extract<${exported}["valueTypes"][number], { id: ${JSON.stringify(id)} }>`
|
|
178
|
+
)
|
|
140
179
|
}
|
|
141
180
|
return
|
|
142
181
|
}
|
|
143
182
|
|
|
144
183
|
if (Array.isArray(input.exportedValue)) {
|
|
145
184
|
for (const item of input.exportedValue) {
|
|
146
|
-
|
|
147
|
-
addManifestEntry({
|
|
148
|
-
objectType: item,
|
|
149
|
-
modulePath: input.modulePath,
|
|
150
|
-
exportName: input.exportName,
|
|
151
|
-
typeExpression: `Extract<(typeof import(${JSON.stringify(
|
|
152
|
-
input.moduleSpecifier
|
|
153
|
-
)})[${JSON.stringify(input.exportName)}])[number], { id: ${JSON.stringify(item.id)} }>`,
|
|
154
|
-
entries: input.entries,
|
|
155
|
-
seenObjectTypes: input.seenObjectTypes,
|
|
156
|
-
})
|
|
185
|
+
add(item, (id) => `Extract<${exported}[number], { id: ${JSON.stringify(id)} }>`)
|
|
157
186
|
}
|
|
187
|
+
return
|
|
158
188
|
}
|
|
189
|
+
|
|
190
|
+
add(
|
|
191
|
+
input.exportedValue,
|
|
192
|
+
() =>
|
|
193
|
+
`typeof import(${JSON.stringify(input.moduleSpecifier)})[${JSON.stringify(input.exportName)}]`
|
|
194
|
+
)
|
|
159
195
|
}
|
|
160
196
|
|
|
161
|
-
function addManifestEntry(input: {
|
|
162
|
-
readonly
|
|
163
|
-
readonly
|
|
164
|
-
readonly
|
|
165
|
-
readonly
|
|
166
|
-
readonly entries: Map<string,
|
|
167
|
-
readonly
|
|
197
|
+
function addManifestEntry<TEntry extends { readonly modulePath: string }>(input: {
|
|
198
|
+
readonly kind: "object type" | "value type"
|
|
199
|
+
readonly definition: unknown
|
|
200
|
+
readonly entry: TEntry
|
|
201
|
+
readonly idOf: (entry: TEntry) => string
|
|
202
|
+
readonly entries: Map<string, TEntry>
|
|
203
|
+
readonly seen: Set<unknown>
|
|
168
204
|
}): void {
|
|
169
|
-
|
|
205
|
+
// The same definition re-exported from several places is one registration.
|
|
206
|
+
if (input.seen.has(input.definition)) {
|
|
170
207
|
return
|
|
171
208
|
}
|
|
172
|
-
input.
|
|
173
|
-
|
|
174
|
-
const existing = input.entries.get(input.objectType.id)
|
|
175
|
-
const entry: OntologyTypeManifestEntry = {
|
|
176
|
-
objectTypeId: input.objectType.id,
|
|
177
|
-
modulePath: input.modulePath,
|
|
178
|
-
exportName: input.exportName,
|
|
179
|
-
typeExpression: input.typeExpression,
|
|
180
|
-
}
|
|
209
|
+
input.seen.add(input.definition)
|
|
181
210
|
|
|
211
|
+
const id = input.idOf(input.entry)
|
|
212
|
+
const existing = input.entries.get(id)
|
|
182
213
|
if (!existing) {
|
|
183
|
-
input.entries.set(
|
|
214
|
+
input.entries.set(id, input.entry)
|
|
184
215
|
return
|
|
185
216
|
}
|
|
186
217
|
|
|
187
218
|
throw new RuntimeError(
|
|
188
|
-
`[Sixb] Duplicate ontology
|
|
219
|
+
`[Sixb] Duplicate ontology ${input.kind} id "${id}" while generating `.concat(
|
|
189
220
|
`the type manifest: ${relative(process.cwd(), existing.modulePath)} and `,
|
|
190
|
-
`${relative(process.cwd(), input.modulePath)}.`
|
|
221
|
+
`${relative(process.cwd(), input.entry.modulePath)}.`
|
|
191
222
|
)
|
|
192
223
|
)
|
|
193
224
|
}
|
|
194
225
|
|
|
195
|
-
function renderOntologyTypeManifest(
|
|
226
|
+
function renderOntologyTypeManifest(discovery: OntologyTypeManifestDiscovery): string {
|
|
196
227
|
const lines = [
|
|
197
228
|
"// This file is auto-generated by Sixb.",
|
|
198
229
|
"// Do not edit this file directly.",
|
|
@@ -201,10 +232,16 @@ function renderOntologyTypeManifest(entries: readonly OntologyTypeManifestEntry[
|
|
|
201
232
|
" interface SixbObjectTypeMap {",
|
|
202
233
|
]
|
|
203
234
|
|
|
204
|
-
for (const entry of entries) {
|
|
235
|
+
for (const entry of discovery.entries) {
|
|
205
236
|
lines.push(` ${JSON.stringify(entry.objectTypeId)}: ${entry.typeExpression}`)
|
|
206
237
|
}
|
|
207
238
|
|
|
239
|
+
lines.push(" }", " interface SixbValueTypeMap {")
|
|
240
|
+
|
|
241
|
+
for (const entry of discovery.valueTypeEntries) {
|
|
242
|
+
lines.push(` ${JSON.stringify(entry.valueTypeId)}: ${entry.typeExpression}`)
|
|
243
|
+
}
|
|
244
|
+
|
|
208
245
|
lines.push(" }", "}", "", "export {}", "")
|
|
209
246
|
return lines.join("\n")
|
|
210
247
|
}
|
|
@@ -309,6 +346,21 @@ function isObjectTypeWithPropertyTokens(value: unknown): value is ObjectTypeWith
|
|
|
309
346
|
)
|
|
310
347
|
}
|
|
311
348
|
|
|
349
|
+
/** Same shape test runtime discovery applies to an exported value type. */
|
|
350
|
+
function isValueType(value: unknown): value is ValueType {
|
|
351
|
+
if (!isRecord(value)) {
|
|
352
|
+
return false
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
return (
|
|
356
|
+
typeof value.id === "string" &&
|
|
357
|
+
typeof value.name === "string" &&
|
|
358
|
+
"schema" in value &&
|
|
359
|
+
!Array.isArray(value.properties) &&
|
|
360
|
+
!Array.isArray(value.objectTypes)
|
|
361
|
+
)
|
|
362
|
+
}
|
|
363
|
+
|
|
312
364
|
function isOntologyDocumentInput(value: unknown): value is OntologyDocumentInput {
|
|
313
365
|
if (!isRecord(value)) {
|
|
314
366
|
return false
|
package/src/edits/types.ts
CHANGED
|
@@ -114,25 +114,24 @@ export type EditablePropertyId<TObjectType extends ObjectType> =
|
|
|
114
114
|
|
|
115
115
|
type StaticPropertyMap<
|
|
116
116
|
TProperties extends readonly Property[],
|
|
117
|
-
TValueTypes extends readonly ValueType[],
|
|
118
117
|
TMode extends "create" | "update",
|
|
119
118
|
> = string extends TProperties[number]["id"]
|
|
120
119
|
? Record<string, unknown>
|
|
121
120
|
: Simplify<{
|
|
122
121
|
[TProp in TProperties[number] as TMode extends "create"
|
|
123
122
|
? CreatablePropertyId<TProp>
|
|
124
|
-
: SettablePropertyId<TProp>]?: InferPropertyValue<TProp
|
|
123
|
+
: SettablePropertyId<TProp>]?: InferPropertyValue<TProp>
|
|
125
124
|
}>
|
|
126
125
|
|
|
127
|
-
export type EditCreateProperties<
|
|
128
|
-
TObjectType
|
|
129
|
-
|
|
130
|
-
>
|
|
126
|
+
export type EditCreateProperties<TObjectType extends ObjectType> = StaticPropertyMap<
|
|
127
|
+
TObjectType["properties"],
|
|
128
|
+
"create"
|
|
129
|
+
>
|
|
131
130
|
|
|
132
|
-
export type EditUpdateProperties<
|
|
133
|
-
TObjectType
|
|
134
|
-
|
|
135
|
-
>
|
|
131
|
+
export type EditUpdateProperties<TObjectType extends ObjectType> = StaticPropertyMap<
|
|
132
|
+
TObjectType["properties"],
|
|
133
|
+
"update"
|
|
134
|
+
>
|
|
136
135
|
|
|
137
136
|
type LinkProperties<TLink extends { properties?: readonly Property[] }> = TLink extends {
|
|
138
137
|
properties: infer TProperties extends readonly Property[]
|
|
@@ -147,23 +146,18 @@ type RequiredLinkPropertyId<TProperty extends Property> = TProperty extends { re
|
|
|
147
146
|
? LinkPropertyId<TProperty>
|
|
148
147
|
: never
|
|
149
148
|
|
|
150
|
-
type EditLinkProperties<
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
[TProp in LinkProperties<TLink>[number] as TProp extends { required: true }
|
|
163
|
-
? never
|
|
164
|
-
: LinkPropertyId<TProp>]?: InferPropertyValue<TProp, TValueTypes>
|
|
165
|
-
}
|
|
166
|
-
>
|
|
149
|
+
type EditLinkProperties<TLink extends { properties?: readonly Property[] }> =
|
|
150
|
+
string extends LinkProperties<TLink>[number]["id"]
|
|
151
|
+
? Record<string, unknown>
|
|
152
|
+
: Simplify<
|
|
153
|
+
{
|
|
154
|
+
[TProp in LinkProperties<TLink>[number] as RequiredLinkPropertyId<TProp>]: InferPropertyValue<TProp>
|
|
155
|
+
} & {
|
|
156
|
+
[TProp in LinkProperties<TLink>[number] as TProp extends { required: true }
|
|
157
|
+
? never
|
|
158
|
+
: LinkPropertyId<TProp>]?: InferPropertyValue<TProp>
|
|
159
|
+
}
|
|
160
|
+
>
|
|
167
161
|
|
|
168
162
|
type RequiredLinkPropertyIds<TLink extends { properties?: readonly Property[] }> =
|
|
169
163
|
LinkProperties<TLink>[number] extends infer TProperty extends Property
|
|
@@ -191,34 +185,32 @@ type EditLinkTargetRef<TLinkToken extends LinkToken<string, string, string | rea
|
|
|
191
185
|
? EditObjectRef<string>
|
|
192
186
|
: EditObjectRef<ResolveTargetObjectTypeId<TLinkToken["targetObjectTypeId"]>>
|
|
193
187
|
|
|
194
|
-
type EditLinkOptionsArg<
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
},
|
|
211
|
-
]
|
|
188
|
+
type EditLinkOptionsArg<TLinkToken extends LinkToken<string, string, string | readonly string[]>> =
|
|
189
|
+
string extends TLinkToken["id"]
|
|
190
|
+
? [options?: { readonly properties?: Readonly<Record<string, unknown>> }]
|
|
191
|
+
: HasLinkProperties<TLinkToken["link"]> extends false
|
|
192
|
+
? [options?: { readonly properties?: never }]
|
|
193
|
+
: HasRequiredLinkProperties<TLinkToken["link"]> extends true
|
|
194
|
+
? [
|
|
195
|
+
options: {
|
|
196
|
+
readonly properties: EditLinkProperties<TLinkToken["link"]>
|
|
197
|
+
},
|
|
198
|
+
]
|
|
199
|
+
: [
|
|
200
|
+
options?: {
|
|
201
|
+
readonly properties?: EditLinkProperties<TLinkToken["link"]>
|
|
202
|
+
},
|
|
203
|
+
]
|
|
212
204
|
|
|
213
205
|
export interface RecordEditsOptions {
|
|
214
206
|
readonly runId: string
|
|
215
207
|
readonly valueTypesById?: ReadonlyMap<string, ValueType>
|
|
216
208
|
}
|
|
217
209
|
|
|
218
|
-
export interface RecordEditsContext
|
|
210
|
+
export interface RecordEditsContext {
|
|
219
211
|
objects<const TObjectType extends ObjectTypeWithPropertyTokens>(
|
|
220
212
|
objectType: TObjectType
|
|
221
|
-
): EditObjectSetRecorder<TObjectType
|
|
213
|
+
): EditObjectSetRecorder<TObjectType>
|
|
222
214
|
}
|
|
223
215
|
|
|
224
216
|
export type RecordEditsHandlerResult = ReturnType<() => void>
|
|
@@ -226,26 +218,18 @@ export type RecordEditsHandlerResult = ReturnType<() => void>
|
|
|
226
218
|
export type RecordEditsHandlerReturn = RecordEditsHandlerResult | Promise<RecordEditsHandlerResult>
|
|
227
219
|
|
|
228
220
|
export type RecordEditsHandler<
|
|
229
|
-
TValueTypes extends readonly ValueType[] = [],
|
|
230
221
|
TResult extends RecordEditsHandlerReturn = RecordEditsHandlerReturn,
|
|
231
|
-
> = (ctx: RecordEditsContext
|
|
222
|
+
> = (ctx: RecordEditsContext) => TResult
|
|
232
223
|
|
|
233
|
-
export interface EditObjectSetRecorder<
|
|
234
|
-
|
|
235
|
-
TValueTypes extends readonly ValueType[] = [],
|
|
236
|
-
> {
|
|
237
|
-
byId(primaryId: string): EditObjectHandle<TObjectType, TValueTypes>
|
|
224
|
+
export interface EditObjectSetRecorder<TObjectType extends ObjectType> {
|
|
225
|
+
byId(primaryId: string): EditObjectHandle<TObjectType>
|
|
238
226
|
|
|
239
|
-
create(
|
|
240
|
-
properties: EditCreateProperties<TObjectType, TValueTypes>
|
|
241
|
-
): EditObjectHandle<TObjectType, TValueTypes>
|
|
227
|
+
create(properties: EditCreateProperties<TObjectType>): EditObjectHandle<TObjectType>
|
|
242
228
|
}
|
|
243
229
|
|
|
244
|
-
export interface EditObjectHandle<
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
> extends TypedEditObjectRef<TObjectType> {
|
|
248
|
-
update(properties: EditUpdateProperties<TObjectType, TValueTypes>): void
|
|
230
|
+
export interface EditObjectHandle<TObjectType extends ObjectType = ObjectType>
|
|
231
|
+
extends TypedEditObjectRef<TObjectType> {
|
|
232
|
+
update(properties: EditUpdateProperties<TObjectType>): void
|
|
249
233
|
|
|
250
234
|
/** Clears managed values, leaving the property absent from managed authority. */
|
|
251
235
|
unset(...propertyIds: readonly EditablePropertyId<TObjectType>[]): void
|
|
@@ -260,7 +244,7 @@ export interface EditObjectHandle<
|
|
|
260
244
|
link<const TLinkToken extends LinkToken<TObjectType["id"], string, string | readonly string[]>>(
|
|
261
245
|
link: TLinkToken,
|
|
262
246
|
target: EditLinkTargetRef<TLinkToken>,
|
|
263
|
-
...options: EditLinkOptionsArg<TLinkToken
|
|
247
|
+
...options: EditLinkOptionsArg<TLinkToken>
|
|
264
248
|
): void
|
|
265
249
|
|
|
266
250
|
unlink<const TLinkToken extends LinkToken<TObjectType["id"], string, string | readonly string[]>>(
|
package/src/errors/catalog.ts
CHANGED
|
@@ -14,6 +14,10 @@ export const SIXB_ERROR_DEFINITIONS = {
|
|
|
14
14
|
publicMessage: "Action execution failed.",
|
|
15
15
|
retryable: false,
|
|
16
16
|
},
|
|
17
|
+
"action.read_conflict": {
|
|
18
|
+
publicMessage: "Data the Action read changed before its commit.",
|
|
19
|
+
retryable: true,
|
|
20
|
+
},
|
|
17
21
|
"agent.execution_failed": {
|
|
18
22
|
publicMessage: "Agent execution failed.",
|
|
19
23
|
retryable: false,
|