@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
|
@@ -8,16 +8,19 @@ import type {
|
|
|
8
8
|
OntologyObjectRef,
|
|
9
9
|
} from "../materializer"
|
|
10
10
|
import { createLinkScopeFingerprint } from "../materializer"
|
|
11
|
+
import { decorateObjectQueryExecutor } from "../objects/sdk/query-builder"
|
|
12
|
+
import type { ObjectQueryExecutor } from "../objects/sdk/query-executor"
|
|
11
13
|
import { OntologyValidationError } from "../ontology/errors"
|
|
12
14
|
import type { ObjectTypeWithPropertyTokens } from "../ontology/tokens"
|
|
13
|
-
import type { ValueType } from "../ontology/types"
|
|
14
15
|
import {
|
|
15
16
|
assertPropertyTokenBelongsToObjectType,
|
|
16
17
|
assertTelemetryProperty,
|
|
17
18
|
} from "../ontology/validation"
|
|
18
19
|
import { RuntimeError } from "../runtime/errors"
|
|
19
|
-
import type {
|
|
20
|
+
import type { ObjectReader, ObjectReadSet } from "../runtime/types"
|
|
20
21
|
import type {
|
|
22
|
+
ExpandedLinkValue,
|
|
23
|
+
ExpandedObjectRow,
|
|
21
24
|
ObjectLinkRow,
|
|
22
25
|
ObjectRow,
|
|
23
26
|
TimeseriesHistoryBatchInput,
|
|
@@ -26,21 +29,10 @@ import type {
|
|
|
26
29
|
import type { ActionReadDependencies } from "./commit-edits"
|
|
27
30
|
import type {
|
|
28
31
|
ActionReadFacade,
|
|
29
|
-
ActionReadObjectSet,
|
|
30
32
|
ActionTelemetryHistorySeriesInput,
|
|
31
33
|
ActionTelemetryReadFacade,
|
|
32
34
|
} from "./types"
|
|
33
35
|
|
|
34
|
-
export type ActionReadObjectSetSource = {
|
|
35
|
-
get(id: string): Promise<unknown>
|
|
36
|
-
query(): unknown
|
|
37
|
-
list(input?: ObjectSetListInput): Promise<unknown>
|
|
38
|
-
byId(id: string): {
|
|
39
|
-
get(): Promise<unknown>
|
|
40
|
-
listLinks(link?: { readonly id: string }): Promise<unknown>
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
36
|
/** Runtime leaves used by the Action telemetry read adapter. */
|
|
45
37
|
export interface ActionTelemetryReadSource {
|
|
46
38
|
readonly resolveObjectType: (objectTypeId: string) => ObjectTypeWithPropertyTokens
|
|
@@ -54,9 +46,10 @@ export interface ActionTelemetryReadSource {
|
|
|
54
46
|
*
|
|
55
47
|
* A handler that reads one dependency twice keeps the first observation: the commit must fail when
|
|
56
48
|
* current state no longer matches what the decision was made against, and the later read may already
|
|
57
|
-
* reflect the handler's own intent.
|
|
58
|
-
*
|
|
59
|
-
*
|
|
49
|
+
* reflect the handler's own intent. Objects returned by `list()` and `query()` are fenced like
|
|
50
|
+
* concrete reads, but query membership is not yet: an object that starts matching a query after the
|
|
51
|
+
* read, and aggregate results (`count()`, `exists()`, `facets()`), stay unfenced. Telemetry history
|
|
52
|
+
* is also a call-level snapshot, not an edit dependency.
|
|
60
53
|
*/
|
|
61
54
|
export class ActionReadRecorder {
|
|
62
55
|
private readonly objects = new Map<string, ExpectedObjectRevision>()
|
|
@@ -81,6 +74,21 @@ export class ActionReadRecorder {
|
|
|
81
74
|
})
|
|
82
75
|
}
|
|
83
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Records every object a listing or query returned, including the objects its expansions attached.
|
|
79
|
+
*
|
|
80
|
+
* Rows are keyed by their own type: a traversal or subtype query returns objects of a type other
|
|
81
|
+
* than the one the query started from, and the commit checks each row under its exact identity.
|
|
82
|
+
*/
|
|
83
|
+
observeObjectRows(rows: readonly ObjectRow[]): void {
|
|
84
|
+
for (const row of rows) {
|
|
85
|
+
this.observeObject({ objectTypeId: row.objectTypeId, primaryId: row.primaryId }, row)
|
|
86
|
+
for (const value of Object.values(row.links ?? {})) {
|
|
87
|
+
this.observeObjectRows(expandedRows(value))
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
84
92
|
/**
|
|
85
93
|
* Records the complete `(source, linkId)` scopes a link listing observed.
|
|
86
94
|
*
|
|
@@ -159,29 +167,23 @@ export interface ActionReadFacadeOptions {
|
|
|
159
167
|
readonly telemetry?: ActionTelemetryReadSource
|
|
160
168
|
}
|
|
161
169
|
|
|
170
|
+
/** Exposes `reader`'s object reads to an Action handler; with `options`, each read is recorded. */
|
|
162
171
|
export function createActionReadFacade(
|
|
163
|
-
|
|
164
|
-
objectType: TObjectType
|
|
165
|
-
) => ActionReadObjectSetSource,
|
|
172
|
+
reader: ObjectReader,
|
|
166
173
|
options?: ActionReadFacadeOptions
|
|
167
174
|
): ActionReadFacade {
|
|
168
|
-
|
|
175
|
+
return {
|
|
169
176
|
telemetry: createActionTelemetryReadFacade(options?.telemetry),
|
|
170
177
|
objects<const TObjectType extends ObjectTypeWithPropertyTokens>(objectType: TObjectType) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
createObjectSet(objectType),
|
|
174
|
-
options
|
|
175
|
-
)
|
|
178
|
+
const objectSet = reader.objects(objectType)
|
|
179
|
+
return options ? recordObjectReads(objectType, objectSet, options) : objectSet
|
|
176
180
|
},
|
|
177
181
|
}
|
|
178
|
-
|
|
179
|
-
return facade as ActionReadFacade
|
|
180
182
|
}
|
|
181
183
|
|
|
182
184
|
function createActionTelemetryReadFacade(
|
|
183
185
|
source: ActionTelemetryReadSource | undefined
|
|
184
|
-
): ActionTelemetryReadFacade
|
|
186
|
+
): ActionTelemetryReadFacade {
|
|
185
187
|
const facade = {
|
|
186
188
|
async historyBatch(input: {
|
|
187
189
|
readonly series: readonly ActionTelemetryHistorySeriesInput[]
|
|
@@ -241,7 +243,7 @@ function createActionTelemetryReadFacade(
|
|
|
241
243
|
|
|
242
244
|
// Cast needed at the generic token boundary: the implementation deliberately manipulates raw
|
|
243
245
|
// provider values while the public facade maps every tuple position back to its property token.
|
|
244
|
-
return facade as unknown as ActionTelemetryReadFacade
|
|
246
|
+
return facade as unknown as ActionTelemetryReadFacade
|
|
245
247
|
}
|
|
246
248
|
|
|
247
249
|
function assertTelemetryBatchResultMatchesRequest(
|
|
@@ -273,60 +275,98 @@ function assertTelemetryBatchResultMatchesRequest(
|
|
|
273
275
|
}
|
|
274
276
|
}
|
|
275
277
|
|
|
276
|
-
function
|
|
278
|
+
function recordObjectReads<TObjectType extends ObjectTypeWithPropertyTokens>(
|
|
277
279
|
objectType: TObjectType,
|
|
278
|
-
objectSet:
|
|
279
|
-
options: ActionReadFacadeOptions
|
|
280
|
-
):
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
async function readObject(id: string, read: () => Promise<unknown>): Promise<unknown> {
|
|
288
|
-
const row = await read()
|
|
289
|
-
options?.recorder.observeObject(
|
|
290
|
-
{ objectTypeId: objectType.id, primaryId: id },
|
|
291
|
-
(row ?? null) as ObjectRow | null
|
|
292
|
-
)
|
|
293
|
-
return row
|
|
294
|
-
}
|
|
280
|
+
objectSet: ObjectReadSet<TObjectType>,
|
|
281
|
+
options: ActionReadFacadeOptions
|
|
282
|
+
): ObjectReadSet<TObjectType> {
|
|
283
|
+
const { recorder } = options
|
|
284
|
+
const ref = (primaryId: string): OntologyObjectRef => ({
|
|
285
|
+
objectTypeId: objectType.id,
|
|
286
|
+
primaryId,
|
|
287
|
+
})
|
|
295
288
|
|
|
296
289
|
return {
|
|
297
|
-
get(id) {
|
|
298
|
-
|
|
290
|
+
async get(id) {
|
|
291
|
+
const row = await objectSet.get(id)
|
|
292
|
+
recorder.observeObject(ref(id), row && storageRow(row))
|
|
293
|
+
return row
|
|
299
294
|
},
|
|
300
295
|
query() {
|
|
301
|
-
|
|
296
|
+
// Recording at the executor covers every terminal of every refinement, present and future.
|
|
297
|
+
return decorateObjectQueryExecutor(objectSet.query(), (executor) =>
|
|
298
|
+
recordingExecutor(executor, recorder)
|
|
299
|
+
)
|
|
302
300
|
},
|
|
303
|
-
list(input) {
|
|
304
|
-
|
|
301
|
+
async list(input) {
|
|
302
|
+
const result = await objectSet.list(input)
|
|
303
|
+
recorder.observeObjectRows(result.objects.map(storageRow))
|
|
304
|
+
return result
|
|
305
305
|
},
|
|
306
306
|
byId(id) {
|
|
307
307
|
const handle = objectSet.byId(id)
|
|
308
308
|
return {
|
|
309
|
-
get() {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
309
|
+
async get() {
|
|
310
|
+
const row = await handle.get()
|
|
311
|
+
recorder.observeObject(ref(id), row && storageRow(row))
|
|
312
|
+
return row
|
|
313
313
|
},
|
|
314
314
|
async listLinks(link) {
|
|
315
|
-
const rows =
|
|
316
|
-
|
|
317
|
-
|
|
315
|
+
const rows = await handle.listLinks(link)
|
|
316
|
+
recorder.observeLinkScopes(
|
|
317
|
+
ref(id),
|
|
318
318
|
link ? [link.id] : options.resolveLinkIds(objectType.id),
|
|
319
319
|
rows
|
|
320
320
|
)
|
|
321
|
-
return rows
|
|
322
|
-
ReturnType<ReturnType<TypedReadObjectSet["byId"]>["listLinks"]>
|
|
323
|
-
>
|
|
321
|
+
return rows
|
|
324
322
|
},
|
|
325
323
|
}
|
|
326
324
|
},
|
|
327
325
|
}
|
|
328
326
|
}
|
|
329
327
|
|
|
328
|
+
/**
|
|
329
|
+
* Delegates to `executor` and records the objects its row queries return.
|
|
330
|
+
*
|
|
331
|
+
* Aggregates (`count()`, `exists()`, `facets()`) return no rows to fence; protecting their result
|
|
332
|
+
* needs query-level dependencies.
|
|
333
|
+
*/
|
|
334
|
+
function recordingExecutor(
|
|
335
|
+
executor: ObjectQueryExecutor,
|
|
336
|
+
recorder: ActionReadRecorder
|
|
337
|
+
): ObjectQueryExecutor {
|
|
338
|
+
return {
|
|
339
|
+
async list(query, listOptions) {
|
|
340
|
+
const result = await executor.list(query, listOptions)
|
|
341
|
+
recorder.observeObjectRows(result.objects.map(storageRow))
|
|
342
|
+
return result
|
|
343
|
+
},
|
|
344
|
+
count: (query) => executor.count(query),
|
|
345
|
+
exists: (query) => executor.exists(query),
|
|
346
|
+
facets: (query, facets) => executor.facets(query, facets),
|
|
347
|
+
validate: executor.validate?.bind(executor),
|
|
348
|
+
explain: executor.explain?.bind(executor),
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Runtime reads return storage rows; the SDK row types only leave out the commit fields a fence
|
|
354
|
+
* needs.
|
|
355
|
+
*/
|
|
356
|
+
function storageRow(row: object): ObjectRow {
|
|
357
|
+
return row as ObjectRow
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
function expandedRows(value: ExpandedLinkValue): readonly ObjectRow[] {
|
|
361
|
+
if (value === null) return []
|
|
362
|
+
return isExpandedRowList(value) ? value : [value]
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// `Array.isArray` does not narrow a readonly array out of a union.
|
|
366
|
+
function isExpandedRowList(value: ExpandedLinkValue): value is readonly ExpandedObjectRow[] {
|
|
367
|
+
return Array.isArray(value)
|
|
368
|
+
}
|
|
369
|
+
|
|
330
370
|
function toLinkSnapshot(row: ObjectLinkRow): EffectiveLinkSnapshot | null {
|
|
331
371
|
// Rows without materializer provenance predate the commit ledger and cannot be fenced.
|
|
332
372
|
if (row.lastCommitId === undefined) return null
|
package/src/actions/request.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { ActionRunTimeoutError } from "../objects/action/errors"
|
|
|
14
14
|
import { OntologyValidationError } from "../ontology/errors"
|
|
15
15
|
import type { ObjectTypeWithPropertyTokens } from "../ontology/tokens"
|
|
16
16
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
17
|
+
import { assertParamUsersActive } from "../shared/params/user-refs"
|
|
17
18
|
import {
|
|
18
19
|
ActionRunError,
|
|
19
20
|
type ActionRunRecord,
|
|
@@ -159,6 +160,18 @@ export async function requestAction(
|
|
|
159
160
|
subject,
|
|
160
161
|
params: actionParams,
|
|
161
162
|
runId: request.runId,
|
|
163
|
+
assertNewRun: () =>
|
|
164
|
+
assertParamUsersActive({
|
|
165
|
+
auth: runtime.storage.auth,
|
|
166
|
+
projectId,
|
|
167
|
+
schemas: Object.fromEntries(
|
|
168
|
+
Object.entries(action.params).map(([paramId, param]) => [paramId, param.schema])
|
|
169
|
+
),
|
|
170
|
+
values: actionParams,
|
|
171
|
+
valueTypesById: runtime.ontology.getValueTypesById(),
|
|
172
|
+
describe: (paramId) => `Action param '${pathPrefix}.${paramId}'`,
|
|
173
|
+
invalid: (message) => new OntologyValidationError(message),
|
|
174
|
+
}),
|
|
162
175
|
...(authorization.type === "delegated"
|
|
163
176
|
? {
|
|
164
177
|
assertCanReuseExisting: async (
|
|
@@ -30,6 +30,8 @@ interface DispatchActionRunInput {
|
|
|
30
30
|
readonly createExecution: (executionId: string, runId: string) => Promise<CreateExecutionInput>
|
|
31
31
|
/** Runs before payload comparison or retry so an existing run cannot cross authority owners. */
|
|
32
32
|
readonly assertCanReuseExisting?: (storage: Storage, run: ActionRunRecord) => void | Promise<void>
|
|
33
|
+
/** Checks that hold only for a run this call creates; a replayed run keeps its accepted params. */
|
|
34
|
+
readonly assertNewRun?: () => Promise<void>
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
interface PreparedActionRun {
|
|
@@ -76,6 +78,7 @@ async function persistActionRun(
|
|
|
76
78
|
return reuseActionRun(input, existing)
|
|
77
79
|
}
|
|
78
80
|
|
|
81
|
+
await input.assertNewRun?.()
|
|
79
82
|
const execution = await input.createExecution(`exec_${randomUUID()}`, request.runId)
|
|
80
83
|
const queuedAt = new Date()
|
|
81
84
|
try {
|
|
@@ -8,21 +8,13 @@ import type {
|
|
|
8
8
|
OntologyOperationOutcome,
|
|
9
9
|
} from "../../materializer"
|
|
10
10
|
import type { ModelsRuntime } from "../../models/generation-types"
|
|
11
|
-
import type { ObjectType, Property
|
|
11
|
+
import type { ObjectType, Property } from "../../ontology"
|
|
12
12
|
import type { InferPropertyUnit, InferPropertyValue } from "../../ontology/inference"
|
|
13
|
-
import type {
|
|
14
|
-
import type {
|
|
15
|
-
ListResult,
|
|
16
|
-
ObjectQueryBuilder,
|
|
17
|
-
ObjectSetListInput,
|
|
18
|
-
TwinObject,
|
|
19
|
-
} from "../../runtime/types"
|
|
13
|
+
import type { ObjectTypeWithPropertyTokens, PropertyToken } from "../../ontology/tokens"
|
|
14
|
+
import type { ObjectReader } from "../../runtime/types"
|
|
20
15
|
import type { ActionPrimitiveSchemaValues } from "./params"
|
|
21
16
|
|
|
22
|
-
export type ActionTargetObject<
|
|
23
|
-
TObjectType extends ObjectType = ObjectType,
|
|
24
|
-
_TValueTypes extends readonly ValueType[] = readonly ValueType[],
|
|
25
|
-
> = {
|
|
17
|
+
export type ActionTargetObject<TObjectType extends ObjectType = ObjectType> = {
|
|
26
18
|
readonly primaryId: string
|
|
27
19
|
readonly objectTypeId: TObjectType["id"]
|
|
28
20
|
readonly properties: ActionTargetPropertyBag<TObjectType>
|
|
@@ -66,45 +58,12 @@ export type ActionBinding<TObjectType extends ObjectType = ObjectType> =
|
|
|
66
58
|
| { readonly kind: "global" }
|
|
67
59
|
| { readonly kind: "object"; readonly objectType: TObjectType }
|
|
68
60
|
|
|
69
|
-
type ActionLinkTokenForObjectType<TObjectType extends ObjectTypeWithPropertyTokens> = LinkToken<
|
|
70
|
-
TObjectType["id"],
|
|
71
|
-
TObjectType["links"][number]["id"],
|
|
72
|
-
TObjectType["links"][number]["targetObjectTypeId"],
|
|
73
|
-
TObjectType["links"][number]
|
|
74
|
-
>
|
|
75
|
-
|
|
76
61
|
export interface ActionRunPhaseInfo {
|
|
77
62
|
readonly id: string
|
|
78
63
|
readonly startedAt: Date
|
|
79
64
|
readonly idempotencyKey: string
|
|
80
65
|
}
|
|
81
66
|
|
|
82
|
-
export interface ActionReadObjectByIdHandle<
|
|
83
|
-
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
84
|
-
TValueTypes extends readonly ValueType[],
|
|
85
|
-
> {
|
|
86
|
-
get(): Promise<TwinObject<TObjectType, TValueTypes> | null>
|
|
87
|
-
listLinks(link?: ActionLinkTokenForObjectType<TObjectType>): Promise<
|
|
88
|
-
readonly {
|
|
89
|
-
readonly linkId: string
|
|
90
|
-
readonly targetTypeId: string
|
|
91
|
-
readonly targetId: string
|
|
92
|
-
readonly properties?: Readonly<Record<string, unknown>>
|
|
93
|
-
}[]
|
|
94
|
-
>
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export interface ActionReadObjectSet<
|
|
98
|
-
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
99
|
-
TValueTypes extends readonly ValueType[],
|
|
100
|
-
TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens = TObjectType,
|
|
101
|
-
> {
|
|
102
|
-
get(id: string): Promise<TwinObject<TObjectType, TValueTypes> | null>
|
|
103
|
-
query(): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>
|
|
104
|
-
list(input?: ObjectSetListInput): Promise<ListResult<TwinObject<TObjectType, TValueTypes>>>
|
|
105
|
-
byId(id: string): ActionReadObjectByIdHandle<TObjectType, TValueTypes>
|
|
106
|
-
}
|
|
107
|
-
|
|
108
67
|
/** A telemetry-mode ontology property accepted by Action history reads. */
|
|
109
68
|
export type ActionTelemetryPropertyToken = PropertyToken<
|
|
110
69
|
string,
|
|
@@ -139,7 +98,6 @@ export interface ActionTelemetryHistoryBatchInput<
|
|
|
139
98
|
export type ActionTelemetryHistoryBatchResult<
|
|
140
99
|
TSeries extends
|
|
141
100
|
readonly ActionTelemetryHistorySeriesInput[] = readonly ActionTelemetryHistorySeriesInput[],
|
|
142
|
-
TValueTypes extends readonly ValueType[] = readonly ValueType[],
|
|
143
101
|
> = {
|
|
144
102
|
readonly [TIndex in keyof TSeries]: TSeries[TIndex] extends ActionTelemetryHistorySeriesInput<
|
|
145
103
|
infer TProperty
|
|
@@ -148,17 +106,15 @@ export type ActionTelemetryHistoryBatchResult<
|
|
|
148
106
|
readonly objectId: TSeries[TIndex]["objectId"]
|
|
149
107
|
readonly property: TProperty
|
|
150
108
|
readonly points: readonly {
|
|
151
|
-
readonly value: InferPropertyValue<TProperty["property"]
|
|
109
|
+
readonly value: InferPropertyValue<TProperty["property"]>
|
|
152
110
|
readonly at: Date
|
|
153
|
-
readonly unit?: InferPropertyUnit<TProperty["property"]
|
|
111
|
+
readonly unit?: InferPropertyUnit<TProperty["property"]>
|
|
154
112
|
}[]
|
|
155
113
|
}
|
|
156
114
|
: never
|
|
157
115
|
}
|
|
158
116
|
|
|
159
|
-
export type ActionTelemetryReadFacade
|
|
160
|
-
TValueTypes extends readonly ValueType[] = readonly ValueType[],
|
|
161
|
-
> = {
|
|
117
|
+
export type ActionTelemetryReadFacade = {
|
|
162
118
|
/**
|
|
163
119
|
* Read several telemetry series in one provider call.
|
|
164
120
|
*
|
|
@@ -167,20 +123,18 @@ export type ActionTelemetryReadFacade<
|
|
|
167
123
|
*/
|
|
168
124
|
historyBatch<const TSeries extends readonly ActionTelemetryHistorySeriesInput[]>(
|
|
169
125
|
input: ActionTelemetryHistoryBatchInput<TSeries>
|
|
170
|
-
): Promise<ActionTelemetryHistoryBatchResult<TSeries
|
|
126
|
+
): Promise<ActionTelemetryHistoryBatchResult<TSeries>>
|
|
171
127
|
}
|
|
172
128
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
129
|
+
/**
|
|
130
|
+
* The `read` an Action handler receives. What it reads through `objects(Type)` is recorded, and
|
|
131
|
+
* the commit fails if any of it changed first.
|
|
132
|
+
*/
|
|
133
|
+
export interface ActionReadFacade extends ObjectReader {
|
|
134
|
+
readonly telemetry: ActionTelemetryReadFacade
|
|
178
135
|
}
|
|
179
136
|
|
|
180
|
-
export interface ActionTelemetryObjectSet<
|
|
181
|
-
_TObjectType extends ObjectTypeWithPropertyTokens,
|
|
182
|
-
_TValueTypes extends readonly ValueType[],
|
|
183
|
-
> {
|
|
137
|
+
export interface ActionTelemetryObjectSet<_TObjectType extends ObjectTypeWithPropertyTokens> {
|
|
184
138
|
appendTelemetryBatch(
|
|
185
139
|
items: readonly {
|
|
186
140
|
id: string
|
|
@@ -193,15 +147,13 @@ export interface ActionTelemetryObjectSet<
|
|
|
193
147
|
/** Immutable blob operations available to action writeback and effects handlers. */
|
|
194
148
|
export type ActionBlobContext = Pick<BlobStorage, "put" | "open" | "stat">
|
|
195
149
|
|
|
196
|
-
export interface ActionRuntimeFacade
|
|
197
|
-
TValueTypes extends readonly ValueType[] = readonly ValueType[],
|
|
198
|
-
> {
|
|
150
|
+
export interface ActionRuntimeFacade {
|
|
199
151
|
readonly blobs: ActionBlobContext
|
|
200
152
|
readonly models: ModelsRuntime
|
|
201
153
|
readonly connector: ConnectorRuntime
|
|
202
154
|
objects<const TObjectType extends ObjectTypeWithPropertyTokens>(
|
|
203
155
|
objectType: TObjectType
|
|
204
|
-
): ActionTelemetryObjectSet<TObjectType
|
|
156
|
+
): ActionTelemetryObjectSet<TObjectType>
|
|
205
157
|
}
|
|
206
158
|
|
|
207
159
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ValueType } from "../../ontology"
|
|
2
|
+
import type { RegisteredValueTypes } from "../../ontology/registered"
|
|
2
3
|
import type {
|
|
3
4
|
InferParams,
|
|
4
5
|
ParamConfig,
|
|
@@ -18,5 +19,5 @@ export type ActionPrimitiveSchemaValues = ParamPrimitiveSchemaValues
|
|
|
18
19
|
/** Action-facing compatibility name for the shared parameter inference contract. */
|
|
19
20
|
export type InferActionParams<
|
|
20
21
|
TParams extends ActionParamsConfig,
|
|
21
|
-
TValueTypes extends readonly ValueType[] =
|
|
22
|
+
TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
|
|
22
23
|
> = InferParams<TParams, TValueTypes>
|
package/src/agents/authority.ts
CHANGED
|
@@ -330,7 +330,7 @@ function isUsableUserAccessToken(
|
|
|
330
330
|
userId: string,
|
|
331
331
|
now: Date
|
|
332
332
|
): token is AccessTokenRecord {
|
|
333
|
-
if (!token || token.
|
|
333
|
+
if (!token || !principalsEqual(token.subject, { type: "user", id: userId })) return false
|
|
334
334
|
return token.revokedAt === undefined && token.expiresAt.getTime() > now.getTime()
|
|
335
335
|
}
|
|
336
336
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// The server resolves each request's client address once, at the socket, from the peer address
|
|
2
|
+
// and the forwarding headers its trusted proxies wrote. Everything else reads it from here and
|
|
3
|
+
// never parses forwarding headers itself: a client can write any value into them.
|
|
4
|
+
const clientAddresses = new WeakMap<Request, string>()
|
|
5
|
+
|
|
6
|
+
export function setRequestClientAddress(request: Request, address: string): void {
|
|
7
|
+
clientAddresses.set(request, address)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function getRequestClientAddress(request: Request): string | undefined {
|
|
11
|
+
return clientAddresses.get(request)
|
|
12
|
+
}
|
package/src/auth/csrf.ts
CHANGED
|
@@ -14,20 +14,29 @@ export function isCsrfExemptMethod(method: string): boolean {
|
|
|
14
14
|
|
|
15
15
|
export function verifyDoubleSubmitCsrf(
|
|
16
16
|
request: Request,
|
|
17
|
-
options: { readonly cookieName: string
|
|
17
|
+
options: { readonly cookieName: string }
|
|
18
18
|
): boolean {
|
|
19
19
|
if (isCsrfExemptMethod(request.method)) {
|
|
20
20
|
return true
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
return verifyCsrfToken(request, {
|
|
24
|
+
cookieName: options.cookieName,
|
|
25
|
+
token: request.headers.get(CSRF_HEADER_NAME),
|
|
26
|
+
})
|
|
27
|
+
}
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
/** Match a submitted CSRF token (header or form field) against the request's CSRF cookie. */
|
|
30
|
+
export function verifyCsrfToken(
|
|
31
|
+
request: Request,
|
|
32
|
+
options: { readonly cookieName: string; readonly token: string | null }
|
|
33
|
+
): boolean {
|
|
34
|
+
const cookieValue = getCookie(request, options.cookieName)
|
|
35
|
+
if (!cookieValue || !options.token) {
|
|
27
36
|
return false
|
|
28
37
|
}
|
|
29
38
|
|
|
30
|
-
return safeEqual(cookieValue,
|
|
39
|
+
return safeEqual(cookieValue, options.token)
|
|
31
40
|
}
|
|
32
41
|
|
|
33
42
|
function safeEqual(left: string, right: string): boolean {
|
package/src/auth/index.ts
CHANGED
|
@@ -15,6 +15,7 @@ export {
|
|
|
15
15
|
isValidAuthSessionAudience,
|
|
16
16
|
resolveAuthSessionAudience,
|
|
17
17
|
} from "./audience"
|
|
18
|
+
export { getRequestClientAddress, setRequestClientAddress } from "./client-address"
|
|
18
19
|
export {
|
|
19
20
|
clearCsrfCookieHeader,
|
|
20
21
|
clearSessionCookieHeader,
|
|
@@ -32,6 +33,7 @@ export {
|
|
|
32
33
|
CSRF_HEADER_NAME,
|
|
33
34
|
generateCsrfToken,
|
|
34
35
|
isCsrfExemptMethod,
|
|
36
|
+
verifyCsrfToken,
|
|
35
37
|
verifyDoubleSubmitCsrf,
|
|
36
38
|
} from "./csrf"
|
|
37
39
|
export type { AuthRuntimeErrorCode } from "./errors"
|
|
@@ -85,6 +87,7 @@ export type {
|
|
|
85
87
|
GetMembershipOptionsResult,
|
|
86
88
|
InvitationDeliveryAuthStrategy,
|
|
87
89
|
InvitationDeliveryInput,
|
|
90
|
+
InvitationDestination,
|
|
88
91
|
InvitationGroupOption,
|
|
89
92
|
InvitationRecipientInput,
|
|
90
93
|
InvitationRecipientResult,
|
|
@@ -92,7 +95,6 @@ export type {
|
|
|
92
95
|
InviteDeliveryResult,
|
|
93
96
|
InviteDeliveryStatus,
|
|
94
97
|
InviteUserInput,
|
|
95
|
-
InviteUserOptions,
|
|
96
98
|
InviteUserResult,
|
|
97
99
|
ListInvitationsInput,
|
|
98
100
|
ListInvitationsResult,
|
|
@@ -133,7 +135,6 @@ export type {
|
|
|
133
135
|
RevokePersonalAccessTokenInput,
|
|
134
136
|
RevokeServiceAccountAccessTokenInput,
|
|
135
137
|
RevokeServiceAccountAccessTokenResult,
|
|
136
|
-
SecurityContext,
|
|
137
138
|
ServiceAccountWithGroups,
|
|
138
139
|
SixbAuthConfig,
|
|
139
140
|
SuspendMemberInput,
|