@sixb/core 0.1.18 → 0.1.20
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/README.md +7 -6
- package/dist/actions/commit-edits.d.ts +7 -19
- package/dist/actions/commit-edits.d.ts.map +1 -1
- package/dist/actions/errors.d.ts +0 -3
- package/dist/actions/errors.d.ts.map +1 -1
- package/dist/actions/execution.d.ts +10 -3
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.d.ts +6 -9
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +51 -50
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts +14 -25
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run/context.d.ts +40 -0
- package/dist/actions/run/context.d.ts.map +1 -0
- package/dist/actions/run/edits-commit.d.ts +31 -0
- package/dist/actions/run/edits-commit.d.ts.map +1 -0
- package/dist/actions/run/effects.d.ts +23 -0
- package/dist/actions/run/effects.d.ts.map +1 -0
- package/dist/actions/run/execute.d.ts +30 -0
- package/dist/actions/run/execute.d.ts.map +1 -0
- package/dist/actions/run/executor.d.ts +95 -0
- package/dist/actions/run/executor.d.ts.map +1 -0
- package/dist/actions/run/normalize.d.ts +36 -0
- package/dist/actions/run/normalize.d.ts.map +1 -0
- package/dist/actions/run/phase-types.d.ts +18 -0
- package/dist/actions/run/phase-types.d.ts.map +1 -0
- package/dist/actions/run/phases.d.ts +20 -0
- package/dist/actions/run/phases.d.ts.map +1 -0
- package/dist/actions/run/run-action.d.ts +25 -0
- package/dist/actions/run/run-action.d.ts.map +1 -0
- package/dist/actions/run/signals.d.ts +67 -0
- package/dist/actions/run/signals.d.ts.map +1 -0
- package/dist/actions/run/state.d.ts +47 -0
- package/dist/actions/run/state.d.ts.map +1 -0
- package/dist/actions/run/types.d.ts +54 -0
- package/dist/actions/run/types.d.ts.map +1 -0
- package/dist/actions/run/writeback.d.ts +17 -0
- package/dist/actions/run/writeback.d.ts.map +1 -0
- package/dist/actions/run-authorization.d.ts +1 -1
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/actions/run-persistence.d.ts +53 -0
- package/dist/actions/run-persistence.d.ts.map +1 -0
- package/dist/actions/types/context.d.ts +10 -0
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/agents/index.js +52 -55
- 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/auth/cookies.d.ts +2 -4
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/index.d.ts +0 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +15 -21
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +8 -10
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +1 -5
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +4 -8
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/validation.d.ts +0 -1
- package/dist/auth/validation.d.ts.map +1 -1
- package/dist/authorization/decision.d.ts +0 -4
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/event-visibility.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +6 -8
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +0 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +5 -9
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/bootstrap/index.js +50 -53
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-vz3gc1tm.js → chunk-0rbyz4qy.js} +67 -69
- package/dist/{chunk-vz3gc1tm.js.map → chunk-0rbyz4qy.js.map} +4 -4
- package/dist/{chunk-rz53yb4v.js → chunk-0yh890a4.js} +1 -1
- package/dist/{chunk-vgk3hknm.js → chunk-1k89ecfr.js} +1 -1
- package/dist/{chunk-ny3xyvcn.js → chunk-1zq2p6g0.js} +3 -3
- package/dist/{chunk-dnmadg9k.js → chunk-3t2hgbgd.js} +2 -2
- package/dist/{chunk-k6hrnf35.js → chunk-4vyr1j8f.js} +51 -4
- package/dist/chunk-4vyr1j8f.js.map +11 -0
- package/dist/{chunk-22v5bpz3.js → chunk-5e43w60z.js} +1 -1
- package/dist/{chunk-de4z2bj6.js → chunk-5j58wjct.js} +17 -17
- package/dist/chunk-5j58wjct.js.map +18 -0
- package/dist/{chunk-fe52eczz.js → chunk-6c6sn0bh.js} +6352 -2127
- package/dist/chunk-6c6sn0bh.js.map +106 -0
- package/dist/{chunk-7hpdd6r9.js → chunk-6p49a5cq.js} +4 -4
- package/dist/{chunk-b9affek3.js → chunk-7n440zgt.js} +30 -30
- package/dist/{chunk-b9affek3.js.map → chunk-7n440zgt.js.map} +4 -4
- package/dist/{chunk-kkqwzy6h.js → chunk-7t429e3f.js} +1 -1
- package/dist/{chunk-6fsr7y93.js → chunk-8mx7qw3y.js} +14 -13
- package/dist/{chunk-6fsr7y93.js.map → chunk-8mx7qw3y.js.map} +4 -4
- package/dist/{chunk-kpx7jrmn.js → chunk-91mg3nj9.js} +59 -59
- package/dist/{chunk-kpx7jrmn.js.map → chunk-91mg3nj9.js.map} +5 -5
- package/dist/{chunk-ex496vct.js → chunk-9dmt152s.js} +1 -1
- package/dist/{chunk-48e3cn2d.js → chunk-9gyp8hg1.js} +2 -2
- package/dist/{chunk-ewqa58h9.js → chunk-9k93ah50.js} +4 -4
- package/dist/{chunk-ewqa58h9.js.map → chunk-9k93ah50.js.map} +1 -1
- package/dist/{chunk-zxawp1n2.js → chunk-9w055r5b.js} +1 -1
- package/dist/{chunk-4wn7bxxa.js → chunk-9ybhtmg4.js} +1 -1
- package/dist/{chunk-fc5zfxy1.js → chunk-a40ad1ft.js} +5 -13
- package/dist/chunk-a40ad1ft.js.map +10 -0
- package/dist/{chunk-y2aq6ag9.js → chunk-b38szspf.js} +5 -14
- package/dist/chunk-b38szspf.js.map +11 -0
- package/dist/{chunk-r2y23egw.js → chunk-bkpke1sg.js} +1 -10
- package/dist/chunk-bkpke1sg.js.map +10 -0
- package/dist/{chunk-htr6wjmv.js → chunk-bx9q3cwv.js} +22 -22
- package/dist/{chunk-htr6wjmv.js.map → chunk-bx9q3cwv.js.map} +1 -1
- package/dist/{chunk-vx2yp45y.js → chunk-c85m1hyj.js} +2 -2
- package/dist/{chunk-bs7sqkre.js → chunk-d09tj99x.js} +2 -2
- package/dist/{chunk-qkbx3tf6.js → chunk-d0bqz29d.js} +27 -47
- package/dist/chunk-d0bqz29d.js.map +23 -0
- package/dist/{chunk-zb77kjth.js → chunk-dk8tkk5f.js} +4 -4
- package/dist/{chunk-xt1zt7gv.js → chunk-es1gxsbf.js} +24 -15
- package/dist/chunk-es1gxsbf.js.map +13 -0
- package/dist/{chunk-vjcd8d27.js → chunk-fa02jy15.js} +1 -1
- package/dist/{chunk-za5yd58j.js → chunk-fkgc1wt8.js} +2 -2
- package/dist/{chunk-enpsx8k5.js → chunk-gsjm1wms.js} +16 -20
- package/dist/chunk-gsjm1wms.js.map +10 -0
- package/dist/{chunk-2jntasmh.js → chunk-hcbyfxbe.js} +25 -49
- package/dist/chunk-hcbyfxbe.js.map +12 -0
- package/dist/{chunk-p0dqwj3n.js → chunk-hjzdd750.js} +66 -47
- package/dist/{chunk-p0dqwj3n.js.map → chunk-hjzdd750.js.map} +4 -4
- package/dist/chunk-hkc3jct7.js.map +1 -1
- package/dist/{chunk-y05543x6.js → chunk-hvsb78a1.js} +4 -4
- package/dist/{chunk-y05543x6.js.map → chunk-hvsb78a1.js.map} +1 -1
- package/dist/{chunk-1b1f2d5f.js → chunk-k6q3n2sc.js} +9 -9
- package/dist/{chunk-1b1f2d5f.js.map → chunk-k6q3n2sc.js.map} +1 -1
- package/dist/{chunk-wr8qp979.js → chunk-m427qgq0.js} +9 -5
- package/dist/{chunk-wr8qp979.js.map → chunk-m427qgq0.js.map} +4 -3
- package/dist/{chunk-qq90g05n.js → chunk-n33z5bjw.js} +50 -240
- package/dist/{chunk-qq90g05n.js.map → chunk-n33z5bjw.js.map} +4 -4
- package/dist/{chunk-e1c18xjx.js → chunk-nq6gpjt7.js} +4 -45
- package/dist/{chunk-e1c18xjx.js.map → chunk-nq6gpjt7.js.map} +5 -5
- package/dist/{chunk-1hqwggsn.js → chunk-nzapm6p0.js} +1 -2
- package/dist/chunk-nzapm6p0.js.map +12 -0
- package/dist/{chunk-wt4szfec.js → chunk-pbcbn83d.js} +4 -4
- package/dist/{chunk-wt4szfec.js.map → chunk-pbcbn83d.js.map} +1 -1
- package/dist/{chunk-s4jhg8a3.js → chunk-ren4kg2j.js} +15 -15
- package/dist/{chunk-s4jhg8a3.js.map → chunk-ren4kg2j.js.map} +1 -1
- package/dist/{chunk-d0eb5yy6.js → chunk-rrzt8jdy.js} +5 -5
- package/dist/{chunk-d0eb5yy6.js.map → chunk-rrzt8jdy.js.map} +1 -1
- package/dist/{chunk-y9jmd7e5.js → chunk-s16apyk9.js} +102 -16
- package/dist/chunk-s16apyk9.js.map +16 -0
- package/dist/{chunk-6gmfggss.js → chunk-t7x8dmn0.js} +2 -2
- package/dist/{chunk-f1zxad2t.js → chunk-tg2cw67r.js} +6 -6
- package/dist/{chunk-f1zxad2t.js.map → chunk-tg2cw67r.js.map} +1 -1
- package/dist/{chunk-p844e0rn.js → chunk-tpn40322.js} +2 -2
- package/dist/{chunk-rt9p8m9t.js → chunk-v9xd5wzd.js} +1 -1
- package/dist/{chunk-6h5m9xjx.js → chunk-vpq4shxz.js} +49 -113
- package/dist/chunk-vpq4shxz.js.map +39 -0
- package/dist/{chunk-2vhg6ysa.js → chunk-vyf9kfqf.js} +1 -1
- package/dist/{chunk-bwjcehza.js → chunk-way52z4h.js} +1 -1
- package/dist/{chunk-qkvz64nd.js → chunk-x6m907x7.js} +3 -3
- package/dist/{chunk-yv9czyfr.js → chunk-xfs8x8m9.js} +5 -5
- package/dist/chunk-y0c4e6ex.js +16 -0
- package/dist/chunk-y0c4e6ex.js.map +10 -0
- package/dist/{chunk-v6xpd60t.js → chunk-yevzdx4y.js} +5 -5
- package/dist/{chunk-dfm066qg.js → chunk-yxd3nnqt.js} +2 -29
- package/dist/chunk-yxd3nnqt.js.map +11 -0
- package/dist/{chunk-70jmg2zx.js → chunk-yzwja0mj.js} +4 -19
- package/dist/{chunk-70jmg2zx.js.map → chunk-yzwja0mj.js.map} +3 -3
- package/dist/{chunk-qmnnhde6.js → chunk-z4m0yz8c.js} +1 -1
- package/dist/datasets/write.js +5 -5
- package/dist/deploy/index.d.ts +1 -1
- package/dist/deploy/index.d.ts.map +1 -1
- package/dist/deploy/internal.js +13 -10
- package/dist/deploy/internal.js.map +4 -4
- package/dist/deploy/services.d.ts +1 -2
- package/dist/deploy/services.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +7 -7
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/validation.d.ts.map +1 -1
- package/dist/edits/index.js +3 -5
- package/dist/edits/index.js.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/error-reporting/types.d.ts +2 -9
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +12 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/definitions.d.ts +0 -5
- package/dist/events/definitions.d.ts.map +1 -1
- package/dist/events/index.d.ts +3 -3
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +6 -8
- package/dist/events/index.js.map +1 -1
- package/dist/events/scope.d.ts +0 -1
- package/dist/events/scope.d.ts.map +1 -1
- package/dist/events/scope.js +1 -1
- package/dist/events/selectors/builder.d.ts +1 -8
- package/dist/events/selectors/builder.d.ts.map +1 -1
- package/dist/events/selectors/index.d.ts +2 -2
- package/dist/events/selectors/index.d.ts.map +1 -1
- package/dist/events/selectors/index.js +2 -2
- package/dist/events/selectors/predicate.d.ts.map +1 -1
- package/dist/events/selectors/types.d.ts +2 -33
- package/dist/events/selectors/types.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +1 -12
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/execution/agent.js +41 -44
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/primitive.js +60 -91
- package/dist/execution/primitive.js.map +3 -4
- package/dist/execution/request.js +40 -43
- package/dist/execution/request.js.map +2 -2
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +105 -127
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +5 -5
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/model.d.ts +19 -6
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.js +31 -31
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/execution/index.js +21 -21
- package/dist/objects/action/errors.d.ts +0 -9
- package/dist/objects/action/errors.d.ts.map +1 -1
- package/dist/objects/action/index.d.ts +3 -3
- package/dist/objects/action/index.d.ts.map +1 -1
- package/dist/objects/action/request.d.ts +2 -8
- package/dist/objects/action/request.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +0 -2
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +44 -29
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/index.js +29 -29
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/service/index.d.ts +0 -1
- package/dist/objects/service/index.d.ts.map +1 -1
- package/dist/objects/vectors/handle.d.ts.map +1 -1
- package/dist/objects/vectors/profile.d.ts +5 -0
- package/dist/objects/vectors/profile.d.ts.map +1 -1
- package/dist/ontology/index.js +6 -6
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.js +2 -2
- package/dist/pipelines/index.js +28 -28
- package/dist/projections/internal.js +22 -22
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -2
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +0 -7
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.js +27 -28
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +16 -36
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +5 -5
- package/dist/schedules/builders.d.ts.map +1 -1
- package/dist/schedules/index.js +3 -3
- package/dist/schedules/runtime.d.ts.map +1 -1
- package/dist/schedules/validation.d.ts +0 -1
- package/dist/schedules/validation.d.ts.map +1 -1
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/every.d.ts +2 -5
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +2 -4
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +1 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/membership-policies.d.ts.map +1 -1
- package/dist/security/public.d.ts +10 -0
- package/dist/security/public.d.ts.map +1 -0
- package/dist/security/public.js +10 -0
- package/dist/security/public.js.map +9 -0
- package/dist/security/registry.d.ts +0 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +13 -18
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +0 -6
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +20 -20
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/idempotency.d.ts +3 -4
- package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
- package/dist/storage/action-runs/in-memory.d.ts +2 -9
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/index.d.ts +1 -3
- package/dist/storage/action-runs/index.d.ts.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/record.d.ts +20 -0
- package/dist/storage/action-runs/record.d.ts.map +1 -0
- package/dist/storage/action-runs/types.d.ts +39 -68
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/types.d.ts +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/magic-links.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/oidc-attempts.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +0 -10
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts +1 -2
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +1 -17
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/file-upload-sessions/provider.js +10 -10
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +21 -22
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -1
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +9 -12
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +1 -1
- package/dist/storage/objects/execution-limits.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +2 -2
- 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-runs/provider.js +10 -10
- package/dist/syncs/index.js +29 -29
- package/dist/testing/action-execution.d.ts +34 -4
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts +11 -0
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -0
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3205 -2946
- package/dist/testing/index.js.map +9 -8
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +26 -26
- package/dist/webhooks/internal.js.map +1 -1
- package/dist/workers/index.js +1 -1
- package/dist/workflows/index.js +48 -51
- package/dist/workflows/index.js.map +1 -1
- package/package.json +8 -8
- package/src/actions/commit-edits.ts +9 -37
- package/src/actions/errors.ts +0 -4
- package/src/actions/execution.ts +10 -10
- package/src/actions/index.ts +5 -24
- package/src/actions/request.ts +157 -295
- package/src/actions/run/context.ts +193 -0
- package/src/actions/run/edits-commit.ts +102 -0
- package/src/actions/run/effects.ts +105 -0
- package/src/actions/run/execute.ts +113 -0
- package/src/actions/run/executor.ts +314 -0
- package/src/actions/run/normalize.ts +142 -0
- package/src/actions/run/phase-types.ts +20 -0
- package/src/actions/run/phases.ts +150 -0
- package/src/actions/run/run-action.ts +170 -0
- package/src/actions/run/signals.ts +118 -0
- package/src/actions/run/state.ts +95 -0
- package/src/actions/run/types.ts +61 -0
- package/src/actions/run/writeback.ts +79 -0
- package/src/actions/run-authorization.ts +1 -1
- package/src/actions/run-persistence.ts +105 -0
- package/src/actions/types/context.ts +10 -0
- package/src/auth/cookies.ts +3 -20
- package/src/auth/index.ts +0 -6
- package/src/auth/runtime.ts +59 -76
- package/src/auth/session-cache.ts +2 -9
- package/src/auth/types.ts +4 -8
- package/src/auth/validation.ts +0 -2
- package/src/authorization/decision.ts +8 -23
- package/src/authorization/event-visibility.ts +0 -12
- package/src/authorization/grant-kinds.ts +20 -27
- package/src/authorization/index.ts +0 -1
- package/src/authorization/resolve.ts +10 -6
- package/src/deploy/index.ts +0 -1
- package/src/deploy/services.ts +2 -12
- package/src/deploy/types.ts +7 -8
- package/src/deploy/validation.ts +15 -7
- package/src/error-reporting/types.ts +2 -10
- package/src/errors/catalog.ts +13 -0
- package/src/events/definitions.ts +0 -17
- package/src/events/index.ts +0 -14
- package/src/events/scope.ts +0 -12
- package/src/events/selectors/builder.ts +0 -51
- package/src/events/selectors/index.ts +0 -6
- package/src/events/selectors/predicate.ts +0 -2
- package/src/events/selectors/types.ts +7 -65
- package/src/events/types/index.ts +0 -11
- package/src/execution/authorization.ts +11 -5
- package/src/index.ts +2 -33
- package/src/materialization/model.ts +26 -9
- package/src/materializer/README.md +6 -1
- package/src/materializer/edits/commit.ts +42 -32
- package/src/materializer/shared/normalize.ts +25 -14
- package/src/models/execution/embedding.ts +6 -6
- package/src/objects/action/errors.ts +0 -12
- package/src/objects/action/index.ts +3 -3
- package/src/objects/action/request.ts +2 -29
- package/src/objects/execution.ts +2 -2
- package/src/objects/sdk/object-handle.ts +3 -29
- package/src/objects/sdk/object-set.ts +5 -30
- package/src/objects/service/index.ts +0 -1
- package/src/objects/vectors/README.md +4 -0
- package/src/objects/vectors/handle.ts +11 -2
- package/src/objects/vectors/indexing-generate.ts +2 -2
- package/src/objects/vectors/profile.ts +5 -0
- package/src/queues/in-memory.ts +0 -6
- package/src/queues/index.ts +0 -2
- package/src/queues/types.ts +0 -11
- package/src/runtime/host.ts +5 -0
- package/src/runtime/resolve-definitions.ts +0 -1
- package/src/runtime/types.ts +16 -45
- package/src/schedules/builders.ts +1 -4
- package/src/schedules/runtime.ts +0 -41
- package/src/schedules/validation.ts +2 -16
- package/src/security/builders.ts +7 -2
- package/src/security/every.ts +1 -5
- package/src/security/grants.ts +5 -25
- package/src/security/index.ts +0 -3
- package/src/security/membership-policies.ts +3 -1
- package/src/security/public.ts +10 -0
- package/src/security/registry.ts +0 -8
- package/src/security/types.ts +19 -25
- package/src/security/validation.ts +19 -17
- package/src/storage/action-runs/idempotency.ts +13 -41
- package/src/storage/action-runs/in-memory.ts +20 -311
- package/src/storage/action-runs/index.ts +1 -16
- package/src/storage/action-runs/record.ts +130 -0
- package/src/storage/action-runs/types.ts +37 -92
- package/src/storage/agents/types.ts +1 -1
- package/src/storage/auth/in-memory/auth-storage.ts +0 -18
- package/src/storage/auth/in-memory/magic-links.ts +0 -3
- package/src/storage/auth/in-memory/oidc-attempts.ts +0 -3
- package/src/storage/auth/in-memory/sessions.ts +1 -25
- package/src/storage/auth/in-memory/shared.ts +1 -10
- package/src/storage/auth/types.ts +2 -18
- package/src/storage/index.ts +1 -9
- package/src/storage/internal.ts +1 -7
- package/src/storage/objects/execution-limits.ts +3 -2
- package/src/storage/types.ts +2 -4
- package/src/testing/action-execution.ts +73 -13
- package/src/testing/action-run-storage-contract.ts +335 -0
- package/src/testing/auth-storage-contract.ts +14 -107
- package/src/testing/execution-storage-contract.ts +0 -2
- package/src/testing/index.ts +8 -1
- package/src/testing/materializer-storage-contract.ts +174 -18
- package/src/testing/queues-contract.ts +0 -18
- package/dist/actions/run-dispatch.d.ts +0 -25
- package/dist/actions/run-dispatch.d.ts.map +0 -1
- package/dist/actions/worker.d.ts +0 -3
- package/dist/actions/worker.d.ts.map +0 -1
- package/dist/actions/worker.js +0 -325
- package/dist/actions/worker.js.map +0 -11
- package/dist/auth/audience.d.ts +0 -8
- package/dist/auth/audience.d.ts.map +0 -1
- package/dist/authorization/application-access.d.ts +0 -18
- package/dist/authorization/application-access.d.ts.map +0 -1
- package/dist/chunk-1hqwggsn.js.map +0 -12
- package/dist/chunk-2jntasmh.js.map +0 -13
- package/dist/chunk-6h5m9xjx.js.map +0 -40
- package/dist/chunk-85cd7e8c.js +0 -51
- package/dist/chunk-85cd7e8c.js.map +0 -10
- package/dist/chunk-de4z2bj6.js.map +0 -18
- package/dist/chunk-dfm066qg.js.map +0 -11
- package/dist/chunk-enpsx8k5.js.map +0 -10
- package/dist/chunk-fc5zfxy1.js.map +0 -11
- package/dist/chunk-fe52eczz.js.map +0 -49
- package/dist/chunk-fx93hd2n.js +0 -1614
- package/dist/chunk-fx93hd2n.js.map +0 -20
- package/dist/chunk-k6hrnf35.js.map +0 -10
- package/dist/chunk-qkbx3tf6.js.map +0 -24
- package/dist/chunk-qxvp5epv.js +0 -1329
- package/dist/chunk-qxvp5epv.js.map +0 -36
- package/dist/chunk-r2y23egw.js.map +0 -10
- package/dist/chunk-tffvfy6s.js +0 -593
- package/dist/chunk-tffvfy6s.js.map +0 -15
- package/dist/chunk-xt1zt7gv.js.map +0 -13
- package/dist/chunk-y2aq6ag9.js.map +0 -11
- package/dist/chunk-y9jmd7e5.js.map +0 -15
- package/dist/chunk-zvx7h87b.js +0 -12
- package/dist/chunk-zvx7h87b.js.map +0 -10
- package/dist/events/types/actions.d.ts +0 -39
- package/dist/events/types/actions.d.ts.map +0 -1
- package/dist/objects/service/action-service.d.ts +0 -13
- package/dist/objects/service/action-service.d.ts.map +0 -1
- package/dist/security/applications.d.ts +0 -15
- package/dist/security/applications.d.ts.map +0 -1
- package/src/actions/run-dispatch.ts +0 -282
- package/src/actions/worker.ts +0 -2
- package/src/auth/audience.ts +0 -28
- package/src/authorization/application-access.ts +0 -34
- package/src/events/types/actions.ts +0 -42
- package/src/objects/service/action-service.ts +0 -43
- package/src/security/applications.ts +0 -11
- /package/dist/{chunk-rz53yb4v.js.map → chunk-0yh890a4.js.map} +0 -0
- /package/dist/{chunk-vgk3hknm.js.map → chunk-1k89ecfr.js.map} +0 -0
- /package/dist/{chunk-ny3xyvcn.js.map → chunk-1zq2p6g0.js.map} +0 -0
- /package/dist/{chunk-dnmadg9k.js.map → chunk-3t2hgbgd.js.map} +0 -0
- /package/dist/{chunk-22v5bpz3.js.map → chunk-5e43w60z.js.map} +0 -0
- /package/dist/{chunk-7hpdd6r9.js.map → chunk-6p49a5cq.js.map} +0 -0
- /package/dist/{chunk-kkqwzy6h.js.map → chunk-7t429e3f.js.map} +0 -0
- /package/dist/{chunk-ex496vct.js.map → chunk-9dmt152s.js.map} +0 -0
- /package/dist/{chunk-48e3cn2d.js.map → chunk-9gyp8hg1.js.map} +0 -0
- /package/dist/{chunk-zxawp1n2.js.map → chunk-9w055r5b.js.map} +0 -0
- /package/dist/{chunk-4wn7bxxa.js.map → chunk-9ybhtmg4.js.map} +0 -0
- /package/dist/{chunk-vx2yp45y.js.map → chunk-c85m1hyj.js.map} +0 -0
- /package/dist/{chunk-bs7sqkre.js.map → chunk-d09tj99x.js.map} +0 -0
- /package/dist/{chunk-zb77kjth.js.map → chunk-dk8tkk5f.js.map} +0 -0
- /package/dist/{chunk-vjcd8d27.js.map → chunk-fa02jy15.js.map} +0 -0
- /package/dist/{chunk-za5yd58j.js.map → chunk-fkgc1wt8.js.map} +0 -0
- /package/dist/{chunk-6gmfggss.js.map → chunk-t7x8dmn0.js.map} +0 -0
- /package/dist/{chunk-p844e0rn.js.map → chunk-tpn40322.js.map} +0 -0
- /package/dist/{chunk-rt9p8m9t.js.map → chunk-v9xd5wzd.js.map} +0 -0
- /package/dist/{chunk-2vhg6ysa.js.map → chunk-vyf9kfqf.js.map} +0 -0
- /package/dist/{chunk-bwjcehza.js.map → chunk-way52z4h.js.map} +0 -0
- /package/dist/{chunk-qkvz64nd.js.map → chunk-x6m907x7.js.map} +0 -0
- /package/dist/{chunk-yv9czyfr.js.map → chunk-xfs8x8m9.js.map} +0 -0
- /package/dist/{chunk-v6xpd60t.js.map → chunk-yevzdx4y.js.map} +0 -0
- /package/dist/{chunk-qmnnhde6.js.map → chunk-z4m0yz8c.js.map} +0 -0
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto"
|
|
2
|
-
import { reportRunFailure } from "../error-reporting/capability"
|
|
3
|
-
import { createSixbError, toSixbFailure } from "../errors/internal"
|
|
4
|
-
import type { DomainEventLog } from "../events"
|
|
5
|
-
import type { Queues } from "../queues"
|
|
6
|
-
import type {
|
|
7
|
-
ActionRunFailure,
|
|
8
|
-
ActionRunParams,
|
|
9
|
-
ActionRunRecord,
|
|
10
|
-
CreateExecutionInput,
|
|
11
|
-
Storage,
|
|
12
|
-
} from "../storage"
|
|
13
|
-
import { ACTION_RUN_FAILURE_CODES, ActionRunError } from "../storage"
|
|
14
|
-
import { parseActionRunFailure } from "../storage/action-runs/failure"
|
|
15
|
-
import { actionRunParamsEqual, actionSubjectsEqual } from "../storage/action-runs/idempotency"
|
|
16
|
-
import type { RequestActionResult } from "./request"
|
|
17
|
-
import { createActionRunId, createActionRunIdempotencyKey } from "./run-id"
|
|
18
|
-
import type { ActionSubject } from "./types"
|
|
19
|
-
|
|
20
|
-
interface DispatchActionRunInput {
|
|
21
|
-
readonly errorReporterHost: object
|
|
22
|
-
readonly projectId: string
|
|
23
|
-
readonly storage: Storage
|
|
24
|
-
readonly queue: Queues["actions"]
|
|
25
|
-
readonly events: DomainEventLog
|
|
26
|
-
readonly actionId: string
|
|
27
|
-
readonly subject: ActionSubject
|
|
28
|
-
readonly params: ActionRunParams
|
|
29
|
-
readonly runId?: string
|
|
30
|
-
readonly createExecution: (executionId: string, runId: string) => Promise<CreateExecutionInput>
|
|
31
|
-
/** Runs before payload comparison or retry so an existing run cannot cross authority owners. */
|
|
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>
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
interface PreparedActionRun {
|
|
38
|
-
readonly runId: string
|
|
39
|
-
readonly idempotencyKey: string
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
type PersistedActionRun =
|
|
43
|
-
| { readonly publish: false; readonly run: ActionRunRecord }
|
|
44
|
-
| {
|
|
45
|
-
readonly publish: true
|
|
46
|
-
readonly run: ActionRunRecord
|
|
47
|
-
readonly execution: CreateExecutionInput
|
|
48
|
-
readonly queuedAt: Date
|
|
49
|
-
readonly created: boolean
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/** Persist an Action execution and run before publishing its queue job. */
|
|
53
|
-
export async function dispatchActionRun(
|
|
54
|
-
input: DispatchActionRunInput
|
|
55
|
-
): Promise<RequestActionResult> {
|
|
56
|
-
const request = prepareActionRun(input)
|
|
57
|
-
const persisted = await persistActionRun(input, request)
|
|
58
|
-
if (!persisted.publish) return existingActionRunResult(persisted.run)
|
|
59
|
-
return publishActionRun(input, persisted)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function prepareActionRun(input: DispatchActionRunInput): PreparedActionRun {
|
|
63
|
-
const runId = createActionRunId(input.runId)
|
|
64
|
-
return {
|
|
65
|
-
runId,
|
|
66
|
-
idempotencyKey: createActionRunIdempotencyKey(input.projectId, runId),
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
async function persistActionRun(
|
|
71
|
-
input: DispatchActionRunInput,
|
|
72
|
-
request: PreparedActionRun
|
|
73
|
-
): Promise<PersistedActionRun> {
|
|
74
|
-
const actionRuns = requireActionRunStorage(input.storage)
|
|
75
|
-
const existing = await actionRuns.getById({ projectId: input.projectId, id: request.runId })
|
|
76
|
-
if (existing) {
|
|
77
|
-
await input.assertCanReuseExisting?.(input.storage, existing)
|
|
78
|
-
return reuseActionRun(input, existing)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
await input.assertNewRun?.()
|
|
82
|
-
const execution = await input.createExecution(`exec_${randomUUID()}`, request.runId)
|
|
83
|
-
const queuedAt = new Date()
|
|
84
|
-
try {
|
|
85
|
-
return await input.storage.transaction(
|
|
86
|
-
async (tx): Promise<PersistedActionRun> => {
|
|
87
|
-
const transactionalRuns = requireActionRunStorage(tx)
|
|
88
|
-
const raced = await transactionalRuns.getById({
|
|
89
|
-
projectId: input.projectId,
|
|
90
|
-
id: request.runId,
|
|
91
|
-
})
|
|
92
|
-
if (raced) {
|
|
93
|
-
await input.assertCanReuseExisting?.(tx, raced)
|
|
94
|
-
assertExistingRunMatchesRequest(raced, input)
|
|
95
|
-
return { publish: false, run: raced }
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
await tx.executions.create(execution)
|
|
99
|
-
const run = await transactionalRuns.queue({
|
|
100
|
-
projectId: input.projectId,
|
|
101
|
-
id: request.runId,
|
|
102
|
-
executionId: execution.id,
|
|
103
|
-
actionId: input.actionId,
|
|
104
|
-
subject: input.subject,
|
|
105
|
-
params: input.params,
|
|
106
|
-
idempotencyKey: request.idempotencyKey,
|
|
107
|
-
queuedAt,
|
|
108
|
-
})
|
|
109
|
-
return { publish: true, run, execution, queuedAt, created: true }
|
|
110
|
-
},
|
|
111
|
-
{ isolation: "serializable" }
|
|
112
|
-
)
|
|
113
|
-
} catch (error) {
|
|
114
|
-
if (!(error instanceof ActionRunError)) throw error
|
|
115
|
-
const raced = await actionRuns.getById({ projectId: input.projectId, id: request.runId })
|
|
116
|
-
if (!raced) throw error
|
|
117
|
-
await input.assertCanReuseExisting?.(input.storage, raced)
|
|
118
|
-
assertExistingRunMatchesRequest(raced, input)
|
|
119
|
-
return { publish: false, run: raced }
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
async function reuseActionRun(
|
|
124
|
-
input: DispatchActionRunInput,
|
|
125
|
-
existing: ActionRunRecord
|
|
126
|
-
): Promise<PersistedActionRun> {
|
|
127
|
-
assertExistingRunMatchesRequest(existing, input)
|
|
128
|
-
if (!isRetryableEnqueueFailure(existing)) return { publish: false, run: existing }
|
|
129
|
-
|
|
130
|
-
const execution = await input.storage.executions.getById({
|
|
131
|
-
projectId: input.projectId,
|
|
132
|
-
id: existing.executionId,
|
|
133
|
-
})
|
|
134
|
-
if (!execution) {
|
|
135
|
-
throw new ActionRunError(
|
|
136
|
-
`[Sixb] Execution '${existing.executionId}' for Action run '${existing.id}' was not found.`
|
|
137
|
-
)
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
const queuedAt = new Date()
|
|
141
|
-
const run = await requireActionRunStorage(input.storage).queue({
|
|
142
|
-
projectId: input.projectId,
|
|
143
|
-
id: existing.id,
|
|
144
|
-
executionId: existing.executionId,
|
|
145
|
-
actionId: existing.actionId,
|
|
146
|
-
subject: existing.subject,
|
|
147
|
-
params: existing.params,
|
|
148
|
-
idempotencyKey: existing.idempotencyKey,
|
|
149
|
-
queuedAt,
|
|
150
|
-
})
|
|
151
|
-
return { publish: true, run, execution, queuedAt, created: false }
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
async function publishActionRun(
|
|
155
|
-
input: DispatchActionRunInput,
|
|
156
|
-
persisted: Extract<PersistedActionRun, { readonly publish: true }>
|
|
157
|
-
): Promise<RequestActionResult> {
|
|
158
|
-
let job: Awaited<ReturnType<Queues["actions"]["enqueue"]>>[number] | undefined
|
|
159
|
-
try {
|
|
160
|
-
const jobs = await input.queue.enqueue({
|
|
161
|
-
projectId: input.projectId,
|
|
162
|
-
jobs: [
|
|
163
|
-
{
|
|
164
|
-
id: persisted.run.id,
|
|
165
|
-
type: "action.run.requested",
|
|
166
|
-
payload: {
|
|
167
|
-
runId: persisted.run.id,
|
|
168
|
-
},
|
|
169
|
-
},
|
|
170
|
-
],
|
|
171
|
-
})
|
|
172
|
-
job = jobs[0]
|
|
173
|
-
} catch (error) {
|
|
174
|
-
await failActionRunPublication(input, persisted.run, error)
|
|
175
|
-
throw error
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
await input.events.emit(
|
|
179
|
-
{
|
|
180
|
-
events: [
|
|
181
|
-
{
|
|
182
|
-
type: "action.requested",
|
|
183
|
-
payload: {
|
|
184
|
-
actionId: persisted.run.actionId,
|
|
185
|
-
subject: persisted.run.subject,
|
|
186
|
-
params: persisted.run.params,
|
|
187
|
-
runId: persisted.run.id,
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
],
|
|
191
|
-
correlationId: persisted.execution.correlationId,
|
|
192
|
-
},
|
|
193
|
-
{ source: "Sixb" }
|
|
194
|
-
)
|
|
195
|
-
|
|
196
|
-
return {
|
|
197
|
-
runId: persisted.run.id,
|
|
198
|
-
queuedAt: persisted.queuedAt.toISOString(),
|
|
199
|
-
...(job?.id ? { jobId: job.id } : {}),
|
|
200
|
-
created: persisted.created,
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
async function failActionRunPublication(
|
|
205
|
-
input: DispatchActionRunInput,
|
|
206
|
-
run: ActionRunRecord,
|
|
207
|
-
error: unknown
|
|
208
|
-
): Promise<void> {
|
|
209
|
-
const failedAt = new Date()
|
|
210
|
-
const failure = toActionRunFailure(error, run, failedAt)
|
|
211
|
-
await requireActionRunStorage(input.storage).finish({
|
|
212
|
-
projectId: input.projectId,
|
|
213
|
-
id: run.id,
|
|
214
|
-
status: "failed",
|
|
215
|
-
finishedAt: failedAt,
|
|
216
|
-
error: failure,
|
|
217
|
-
})
|
|
218
|
-
reportRunFailure(input.errorReporterHost, error, {
|
|
219
|
-
projectId: input.projectId,
|
|
220
|
-
runKind: "action",
|
|
221
|
-
run: { runId: run.id, actionId: run.actionId },
|
|
222
|
-
failure,
|
|
223
|
-
})
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
function requireActionRunStorage(storage: Storage): NonNullable<Storage["actionRuns"]> {
|
|
227
|
-
if (!storage.actionRuns) {
|
|
228
|
-
throw new ActionRunError("[Sixb] Action run storage is not configured.")
|
|
229
|
-
}
|
|
230
|
-
return storage.actionRuns
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
function assertExistingRunMatchesRequest(
|
|
234
|
-
existing: ActionRunRecord,
|
|
235
|
-
request: Pick<DispatchActionRunInput, "actionId" | "subject" | "params">
|
|
236
|
-
): void {
|
|
237
|
-
if (
|
|
238
|
-
existing.actionId !== request.actionId ||
|
|
239
|
-
!actionSubjectsEqual(existing.subject, request.subject) ||
|
|
240
|
-
!actionRunParamsEqual(existing.params, request.params)
|
|
241
|
-
) {
|
|
242
|
-
throw new ActionRunError(
|
|
243
|
-
`[Sixb] Action run '${existing.id}' already exists with a different request payload.`
|
|
244
|
-
)
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
function isRetryableEnqueueFailure(record: ActionRunRecord): boolean {
|
|
249
|
-
return (
|
|
250
|
-
record.status === "failed" && record.phase === "enqueue" && record.error?.retryable === true
|
|
251
|
-
)
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
function existingActionRunResult(existing: ActionRunRecord): RequestActionResult {
|
|
255
|
-
return {
|
|
256
|
-
runId: existing.id,
|
|
257
|
-
queuedAt: existing.queuedAt.toISOString(),
|
|
258
|
-
created: false,
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
function toActionRunFailure(
|
|
263
|
-
error: unknown,
|
|
264
|
-
run: ActionRunRecord,
|
|
265
|
-
at: Date
|
|
266
|
-
): ActionRunFailure<"enqueue"> {
|
|
267
|
-
const enqueueError = createSixbError(
|
|
268
|
-
"queue.enqueue_failed",
|
|
269
|
-
`[Sixb] Could not enqueue Action run '${run.id}'.`,
|
|
270
|
-
{
|
|
271
|
-
cause: error,
|
|
272
|
-
details: { actionId: run.actionId, runId: run.id, phase: "enqueue" },
|
|
273
|
-
}
|
|
274
|
-
)
|
|
275
|
-
return parseActionRunFailure(
|
|
276
|
-
toSixbFailure(enqueueError, {
|
|
277
|
-
allowedCodes: ACTION_RUN_FAILURE_CODES,
|
|
278
|
-
at,
|
|
279
|
-
}),
|
|
280
|
-
"enqueue"
|
|
281
|
-
)
|
|
282
|
-
}
|
package/src/actions/worker.ts
DELETED
package/src/auth/audience.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { AuthRuntimeError } from "./errors"
|
|
2
|
-
|
|
3
|
-
export const DEFAULT_AUTH_SESSION_AUDIENCE = "atlas"
|
|
4
|
-
|
|
5
|
-
export type AuthSessionAudience = typeof DEFAULT_AUTH_SESSION_AUDIENCE | "app"
|
|
6
|
-
|
|
7
|
-
export interface AuthSessionAudienceOptions {
|
|
8
|
-
readonly audience?: AuthSessionAudience
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function isValidAuthSessionAudience(value: string): value is AuthSessionAudience {
|
|
12
|
-
return value === "atlas" || value === "app"
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function resolveAuthSessionAudience(
|
|
16
|
-
value: AuthSessionAudience | undefined
|
|
17
|
-
): AuthSessionAudience {
|
|
18
|
-
const audience = value ?? DEFAULT_AUTH_SESSION_AUDIENCE
|
|
19
|
-
|
|
20
|
-
if (!isValidAuthSessionAudience(audience)) {
|
|
21
|
-
throw new AuthRuntimeError(
|
|
22
|
-
"invalid_auth_config",
|
|
23
|
-
`[Sixb] Auth session audience '${audience}' is invalid. Expected 'atlas' or 'app'.`
|
|
24
|
-
)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return audience
|
|
28
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { AuthSessionAudience } from "../auth/audience"
|
|
2
|
-
import { isAllowed } from "./decision"
|
|
3
|
-
import type { AuthorizationContext, ResolvedRole } from "./types"
|
|
4
|
-
|
|
5
|
-
/** Whether declaring roles has enabled an allowlist for an application. */
|
|
6
|
-
export function isApplicationAccessControlled(
|
|
7
|
-
roles: readonly ResolvedRole[],
|
|
8
|
-
audience: AuthSessionAudience
|
|
9
|
-
): boolean {
|
|
10
|
-
return roles.some((role) => role.grants["access:application"].has(audience))
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Whether this principal may open this application.
|
|
15
|
-
*
|
|
16
|
-
* KNOWN LIMITATION (0.1.x): application access is the one capability that is **not** deny-by-default.
|
|
17
|
-
* While no role mentions an application, every authenticated principal may open it; the allowlist only
|
|
18
|
-
* switches on once some role grants it. Every other capability — `view`, `apply`, `run`, `observe` —
|
|
19
|
-
* denies unless granted, so this is the single asymmetry in the model.
|
|
20
|
-
*
|
|
21
|
-
* It is deliberate for now: flipping it would lock every project out of Atlas until it declares a role,
|
|
22
|
-
* including projects with no security definitions at all. Closing it means shipping a default grant with
|
|
23
|
-
* the scaffold first, and it is a breaking change for any project relying on the open default.
|
|
24
|
-
*/
|
|
25
|
-
export function canAccessApplication(
|
|
26
|
-
authorization: AuthorizationContext,
|
|
27
|
-
roles: readonly ResolvedRole[],
|
|
28
|
-
audience: AuthSessionAudience
|
|
29
|
-
): boolean {
|
|
30
|
-
return (
|
|
31
|
-
!isApplicationAccessControlled(roles, audience) ||
|
|
32
|
-
isAllowed(authorization, { kind: "application.access", audience })
|
|
33
|
-
)
|
|
34
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { ActionSubject } from "../../actions"
|
|
2
|
-
import type { ActionRunFailure } from "../../storage"
|
|
3
|
-
import type { EventEnvelope } from "../envelope"
|
|
4
|
-
|
|
5
|
-
export interface ActionRequestedEvent extends EventEnvelope {
|
|
6
|
-
type: "action.requested"
|
|
7
|
-
topic: "actions"
|
|
8
|
-
partitionKey: string
|
|
9
|
-
payload: {
|
|
10
|
-
actionId: string
|
|
11
|
-
subject: ActionSubject
|
|
12
|
-
params: Record<string, unknown>
|
|
13
|
-
runId: string
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface ActionCompletedEvent extends EventEnvelope {
|
|
18
|
-
type: "action.completed"
|
|
19
|
-
topic: "actions"
|
|
20
|
-
partitionKey: string
|
|
21
|
-
payload: {
|
|
22
|
-
actionId: string
|
|
23
|
-
runId: string
|
|
24
|
-
subject: ActionSubject
|
|
25
|
-
finishedAt: string
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface ActionFailedEvent extends EventEnvelope {
|
|
30
|
-
type: "action.failed"
|
|
31
|
-
topic: "actions"
|
|
32
|
-
partitionKey: string
|
|
33
|
-
payload: {
|
|
34
|
-
actionId: string
|
|
35
|
-
runId: string
|
|
36
|
-
subject: ActionSubject
|
|
37
|
-
error: ActionRunFailure
|
|
38
|
-
finishedAt: string
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export type ActionEvent = ActionRequestedEvent | ActionCompletedEvent | ActionFailedEvent
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Service layer for action operations.
|
|
3
|
-
*
|
|
4
|
-
* Resolves objectTypeId to a typed context and delegates to the leaf function.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { RequestActionResult } from "../../actions/request"
|
|
8
|
-
import type { ExecutionContext } from "../../execution"
|
|
9
|
-
import type { SixbRuntimeContext } from "../../runtime/types"
|
|
10
|
-
import type { ActionRunRecord } from "../../storage"
|
|
11
|
-
import {
|
|
12
|
-
type RequestActionAndWaitOptions,
|
|
13
|
-
type RequestActionOptions,
|
|
14
|
-
requestActionAndWait as requestActionAndWaitLeaf,
|
|
15
|
-
requestAction as requestActionLeaf,
|
|
16
|
-
} from "../action"
|
|
17
|
-
import { resolveObjectContext } from "../context"
|
|
18
|
-
|
|
19
|
-
export async function requestAction(
|
|
20
|
-
runtime: SixbRuntimeContext,
|
|
21
|
-
execution: ExecutionContext,
|
|
22
|
-
objectTypeId: string,
|
|
23
|
-
primaryId: string,
|
|
24
|
-
actionId: string,
|
|
25
|
-
params?: Record<string, unknown>,
|
|
26
|
-
options?: RequestActionOptions
|
|
27
|
-
): Promise<RequestActionResult> {
|
|
28
|
-
const ctx = { ...resolveObjectContext(runtime, objectTypeId), execution }
|
|
29
|
-
return requestActionLeaf(ctx, { primaryId, actionId, params, options })
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export async function requestActionAndWait(
|
|
33
|
-
runtime: SixbRuntimeContext,
|
|
34
|
-
execution: ExecutionContext,
|
|
35
|
-
objectTypeId: string,
|
|
36
|
-
primaryId: string,
|
|
37
|
-
actionId: string,
|
|
38
|
-
params?: Record<string, unknown>,
|
|
39
|
-
options?: RequestActionAndWaitOptions
|
|
40
|
-
): Promise<ActionRunRecord> {
|
|
41
|
-
const ctx = { ...resolveObjectContext(runtime, objectTypeId), execution }
|
|
42
|
-
return requestActionAndWaitLeaf(ctx, { primaryId, actionId, params, options })
|
|
43
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ApplicationDefinition } from "./types"
|
|
2
|
-
|
|
3
|
-
/** Browser applications that can be protected by role grants. */
|
|
4
|
-
export const applications = {
|
|
5
|
-
atlas: { kind: "application", id: "atlas", label: "Atlas" },
|
|
6
|
-
app: { kind: "application", id: "app", label: "Custom app" },
|
|
7
|
-
} as const satisfies Readonly<Record<string, ApplicationDefinition>>
|
|
8
|
-
|
|
9
|
-
export const APPLICATION_IDS: ReadonlySet<string> = new Set(
|
|
10
|
-
Object.values(applications).map((application) => application.id)
|
|
11
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|