@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
|
@@ -2,32 +2,26 @@ import type { ActionSubject } from "../../actions"
|
|
|
2
2
|
import type { SixbErrorCode, SixbFailure } from "../../errors/types"
|
|
3
3
|
import type { JsonValue } from "../../json"
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"commit",
|
|
14
|
-
"effects",
|
|
15
|
-
"cancelled",
|
|
16
|
-
] as const
|
|
5
|
+
/**
|
|
6
|
+
* How a run ended. A run is recorded once, when it ends: while it executes, the request that runs
|
|
7
|
+
* it is its only state.
|
|
8
|
+
*/
|
|
9
|
+
export type ActionRunStatus = "succeeded" | "failed"
|
|
10
|
+
|
|
11
|
+
/** The phases of a run, in the order it reaches them. */
|
|
12
|
+
export const ACTION_RUN_PHASES = ["validation", "writeback", "edits", "commit", "effects"] as const
|
|
17
13
|
|
|
18
14
|
export type ActionRunPhase = (typeof ACTION_RUN_PHASES)[number]
|
|
19
15
|
|
|
20
16
|
export type ActionRunParams = Readonly<Record<string, JsonValue>>
|
|
21
17
|
|
|
22
|
-
export type ActionRunPhaseStatus = "succeeded" | "failed"
|
|
23
|
-
|
|
24
18
|
/** Error codes an action run or phase record can persist and expose. */
|
|
25
19
|
export const ACTION_RUN_FAILURE_CODES = [
|
|
26
20
|
"internal.unexpected",
|
|
27
21
|
"runtime.cancelled",
|
|
28
|
-
"queue.enqueue_failed",
|
|
29
22
|
"action.phase_failed",
|
|
30
23
|
"action.read_conflict",
|
|
24
|
+
"action.timeout",
|
|
31
25
|
] as const satisfies readonly [SixbErrorCode, ...SixbErrorCode[]]
|
|
32
26
|
|
|
33
27
|
export type ActionRunFailureCode = (typeof ACTION_RUN_FAILURE_CODES)[number]
|
|
@@ -70,67 +64,34 @@ export type ActionRunEffectsRecord =
|
|
|
70
64
|
readonly error: ActionRunFailure<"effects">
|
|
71
65
|
}
|
|
72
66
|
|
|
73
|
-
|
|
67
|
+
interface ActionRunRecordFields {
|
|
74
68
|
readonly id: string
|
|
75
69
|
readonly projectId: string
|
|
76
70
|
readonly executionId: string
|
|
77
71
|
readonly actionId: string
|
|
78
72
|
readonly subject: ActionSubject
|
|
79
|
-
|
|
80
|
-
readonly phase
|
|
81
|
-
readonly
|
|
82
|
-
readonly
|
|
83
|
-
readonly finishedAt?: Date
|
|
73
|
+
/** The last phase the run reached. */
|
|
74
|
+
readonly phase: ActionRunPhase
|
|
75
|
+
readonly startedAt: Date
|
|
76
|
+
readonly finishedAt: Date
|
|
84
77
|
readonly params: ActionRunParams
|
|
85
78
|
readonly idempotencyKey: string
|
|
86
79
|
readonly writeback?: ActionRunWritebackRecord
|
|
87
|
-
readonly effects?: ActionRunEffectsRecord
|
|
88
|
-
readonly error?: ActionRunFailure
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface QueueActionRunInput {
|
|
92
|
-
readonly id: string
|
|
93
|
-
readonly projectId: string
|
|
94
|
-
readonly executionId: string
|
|
95
|
-
readonly actionId: string
|
|
96
|
-
readonly subject: ActionSubject
|
|
97
|
-
readonly params: ActionRunParams
|
|
98
|
-
readonly idempotencyKey: string
|
|
99
|
-
readonly queuedAt?: Date
|
|
100
80
|
}
|
|
101
81
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
readonly
|
|
105
|
-
readonly
|
|
106
|
-
readonly phase?: Extract<ActionRunPhase, "validation">
|
|
107
|
-
}
|
|
82
|
+
/** A run's terminal record, as it is written once when the run ends. */
|
|
83
|
+
export type RecordActionRunInput =
|
|
84
|
+
| (ActionRunRecordFields & { readonly status: "succeeded"; readonly error?: never })
|
|
85
|
+
| (ActionRunRecordFields & { readonly status: "failed"; readonly error: ActionRunFailure })
|
|
108
86
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
>
|
|
87
|
+
/**
|
|
88
|
+
* A recorded run. Its effects run after its record is written, so their outcome is the one part
|
|
89
|
+
* recorded later, on a succeeded run that committed edits.
|
|
90
|
+
*/
|
|
91
|
+
export type ActionRunRecord = RecordActionRunInput & {
|
|
92
|
+
readonly effects?: ActionRunEffectsRecord
|
|
116
93
|
}
|
|
117
94
|
|
|
118
|
-
export type RecordActionWritebackInput =
|
|
119
|
-
| {
|
|
120
|
-
readonly id: string
|
|
121
|
-
readonly projectId: string
|
|
122
|
-
readonly status: "succeeded"
|
|
123
|
-
readonly completedAt?: Date
|
|
124
|
-
readonly result: JsonValue
|
|
125
|
-
}
|
|
126
|
-
| {
|
|
127
|
-
readonly id: string
|
|
128
|
-
readonly projectId: string
|
|
129
|
-
readonly status: "failed"
|
|
130
|
-
readonly completedAt?: Date
|
|
131
|
-
readonly error: ActionRunFailure<"writeback">
|
|
132
|
-
}
|
|
133
|
-
|
|
134
95
|
export type RecordActionEffectsInput =
|
|
135
96
|
| {
|
|
136
97
|
readonly id: string
|
|
@@ -146,22 +107,6 @@ export type RecordActionEffectsInput =
|
|
|
146
107
|
readonly error: ActionRunFailure<"effects">
|
|
147
108
|
}
|
|
148
109
|
|
|
149
|
-
export type FinishActionRunInput =
|
|
150
|
-
| {
|
|
151
|
-
readonly id: string
|
|
152
|
-
readonly projectId: string
|
|
153
|
-
readonly status: "succeeded"
|
|
154
|
-
readonly finishedAt?: Date
|
|
155
|
-
readonly phase?: ActionRunPhase
|
|
156
|
-
}
|
|
157
|
-
| {
|
|
158
|
-
readonly id: string
|
|
159
|
-
readonly projectId: string
|
|
160
|
-
readonly status: "failed" | "cancelled"
|
|
161
|
-
readonly finishedAt?: Date
|
|
162
|
-
readonly error: ActionRunFailure
|
|
163
|
-
}
|
|
164
|
-
|
|
165
110
|
export interface ListActionRunsInput {
|
|
166
111
|
readonly projectId: string
|
|
167
112
|
readonly actionId?: string
|
|
@@ -184,21 +129,21 @@ export interface ListActionRunsResult {
|
|
|
184
129
|
readonly total: number
|
|
185
130
|
}
|
|
186
131
|
|
|
187
|
-
export interface LockActionMaterializationRunInput {
|
|
188
|
-
readonly projectId: string
|
|
189
|
-
readonly actionId: string
|
|
190
|
-
readonly runId: string
|
|
191
|
-
}
|
|
192
|
-
|
|
193
132
|
export interface ActionRunStorage {
|
|
194
|
-
/**
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
133
|
+
/**
|
|
134
|
+
* Insert a run's terminal record.
|
|
135
|
+
*
|
|
136
|
+
* A run is recorded once: a run id that already has a record is refused with an
|
|
137
|
+
* `ActionRunError`, and so is an execution that already recorded another run. The execution must
|
|
138
|
+
* be the trusted primitive execution created for this run.
|
|
139
|
+
*/
|
|
140
|
+
record(input: RecordActionRunInput): Promise<ActionRunRecord>
|
|
141
|
+
/**
|
|
142
|
+
* Record the outcome of the effects of a succeeded run that committed edits, once. Recording an
|
|
143
|
+
* equal outcome again returns the run unchanged.
|
|
144
|
+
*/
|
|
200
145
|
recordEffects(input: RecordActionEffectsInput): Promise<ActionRunRecord>
|
|
201
|
-
finish(input: FinishActionRunInput): Promise<ActionRunRecord>
|
|
202
146
|
getById(params: { projectId: string; id: string }): Promise<ActionRunRecord | null>
|
|
147
|
+
/** Runs ordered by `startedAt`, then id. */
|
|
203
148
|
list(input: ListActionRunsInput): Promise<ListActionRunsResult>
|
|
204
149
|
}
|
|
@@ -172,7 +172,7 @@ export const AGENT_RUN_DIAGNOSTIC_CODES = [
|
|
|
172
172
|
*
|
|
173
173
|
* Sixb writes these codes and the generated client is what reads them, so an open union would only
|
|
174
174
|
* be honest if the HTTP schema were open too — and that costs the OpenAPI enum, the client's
|
|
175
|
-
* autocompletion, and
|
|
175
|
+
* autocompletion, and the app's exhaustive `switch`. Sixb owns both ends, so a new code is a minor
|
|
176
176
|
* version bump: cheap here, and a broken `switch` is better than a 500 from `z.enum`.
|
|
177
177
|
*/
|
|
178
178
|
export type AgentRunDiagnosticCode = (typeof AGENT_RUN_DIAGNOSTIC_CODES)[number]
|
|
@@ -222,7 +222,6 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
validateCompleteSessionInput(this.state, projectId, input.session)
|
|
225
|
-
assertSignInSessionAudience(projectId, input.session.audience, magicLink.audience)
|
|
226
225
|
|
|
227
226
|
let newUserId: string | undefined
|
|
228
227
|
if (shouldCreateUser) {
|
|
@@ -353,7 +352,6 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
353
352
|
}
|
|
354
353
|
|
|
355
354
|
validateCompleteSessionInput(this.state, projectId, input.session)
|
|
356
|
-
assertSignInSessionAudience(projectId, input.session.audience, attempt.audience)
|
|
357
355
|
|
|
358
356
|
let newUserId: string | undefined
|
|
359
357
|
if (shouldCreateUser) {
|
|
@@ -555,7 +553,6 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
555
553
|
projectId: input.projectId,
|
|
556
554
|
userId: input.userId,
|
|
557
555
|
strategyId: input.strategyId,
|
|
558
|
-
audience: input.session.audience,
|
|
559
556
|
tokenHash: input.session.tokenHash,
|
|
560
557
|
createdAt: input.session.createdAt,
|
|
561
558
|
expiresAt: input.session.expiresAt,
|
|
@@ -587,18 +584,3 @@ function restoreMap<TKey, TValue>(target: Map<TKey, TValue>, snapshot: Map<TKey,
|
|
|
587
584
|
target.set(key, value)
|
|
588
585
|
}
|
|
589
586
|
}
|
|
590
|
-
|
|
591
|
-
function assertSignInSessionAudience(
|
|
592
|
-
projectId: string,
|
|
593
|
-
sessionAudience: string,
|
|
594
|
-
storedAudience: string
|
|
595
|
-
): void {
|
|
596
|
-
if (sessionAudience === storedAudience) {
|
|
597
|
-
return
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
throw new AuthStorageError(
|
|
601
|
-
"invalid_input",
|
|
602
|
-
`[Sixb] Sign-in session audience '${sessionAudience}' does not match stored auth audience '${storedAudience}' for project '${projectId}'.`
|
|
603
|
-
)
|
|
604
|
-
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { resolveAuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type { AuthMagicLinkStore, CreateAuthMagicLinkInput, MagicLinkRecord } from "../types"
|
|
4
3
|
import type { AuthStorageState } from "./shared"
|
|
@@ -22,7 +21,6 @@ export class InMemoryAuthMagicLinkStore implements AuthMagicLinkStore {
|
|
|
22
21
|
const id = assertNonEmpty(input.id, "Magic link id")
|
|
23
22
|
const projectId = assertNonEmpty(input.projectId, "Project id")
|
|
24
23
|
const strategyId = assertNonEmpty(input.strategyId, "Strategy id")
|
|
25
|
-
const audience = resolveAuthSessionAudience(input.audience)
|
|
26
24
|
const email = normalizeEmail(input.email)
|
|
27
25
|
const tokenHash = assertNonEmpty(input.tokenHash, "Magic link token hash")
|
|
28
26
|
const key = magicLinkKey(projectId, id)
|
|
@@ -40,7 +38,6 @@ export class InMemoryAuthMagicLinkStore implements AuthMagicLinkStore {
|
|
|
40
38
|
id,
|
|
41
39
|
projectId,
|
|
42
40
|
strategyId,
|
|
43
|
-
audience,
|
|
44
41
|
email,
|
|
45
42
|
tokenHash,
|
|
46
43
|
returnTo: input.returnTo,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { resolveAuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type {
|
|
4
3
|
AuthOidcAuthorizationAttemptStore,
|
|
@@ -26,7 +25,6 @@ export class InMemoryAuthOidcAuthorizationAttemptStore
|
|
|
26
25
|
const id = assertNonEmpty(input.id, "OIDC authorization attempt id")
|
|
27
26
|
const projectId = assertNonEmpty(input.projectId, "Project id")
|
|
28
27
|
const strategyId = assertNonEmpty(input.strategyId, "Strategy id")
|
|
29
|
-
const audience = resolveAuthSessionAudience(input.audience)
|
|
30
28
|
const stateHash = assertNonEmpty(input.stateHash, "OIDC state hash")
|
|
31
29
|
const nonceHash = assertNonEmpty(input.nonceHash, "OIDC nonce hash")
|
|
32
30
|
const codeVerifier = assertNonEmpty(input.codeVerifier, "OIDC code verifier")
|
|
@@ -43,7 +41,6 @@ export class InMemoryAuthOidcAuthorizationAttemptStore
|
|
|
43
41
|
id,
|
|
44
42
|
projectId,
|
|
45
43
|
strategyId,
|
|
46
|
-
audience,
|
|
47
44
|
stateHash,
|
|
48
45
|
nonceHash,
|
|
49
46
|
codeVerifier,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { AuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type {
|
|
4
3
|
AuthSessionStore,
|
|
@@ -11,7 +10,6 @@ import {
|
|
|
11
10
|
cloneDate,
|
|
12
11
|
cloneOptionalRecord,
|
|
13
12
|
cloneRecord,
|
|
14
|
-
compareByCreatedAt,
|
|
15
13
|
createSessionRecord,
|
|
16
14
|
isActiveSession,
|
|
17
15
|
revokeActiveSessionsForUser,
|
|
@@ -33,22 +31,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
33
31
|
return cloneOptionalRecord(record)
|
|
34
32
|
}
|
|
35
33
|
|
|
36
|
-
async getActiveByUserId(params: {
|
|
37
|
-
readonly projectId: string
|
|
38
|
-
readonly userId: string
|
|
39
|
-
readonly audience: AuthSessionAudience
|
|
40
|
-
readonly now: Date
|
|
41
|
-
}): Promise<SessionRecord | null> {
|
|
42
|
-
const sessions = [...this.state.sessions.values()]
|
|
43
|
-
.filter((session) => session.projectId === params.projectId)
|
|
44
|
-
.filter((session) => session.userId === params.userId)
|
|
45
|
-
.filter((session) => session.audience === params.audience)
|
|
46
|
-
.filter((session) => isActiveSession(session, params.now))
|
|
47
|
-
.sort((a, b) => compareByCreatedAt(a, b, "desc"))
|
|
48
|
-
|
|
49
|
-
return cloneOptionalRecord(sessions[0] ?? null)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
34
|
async listActiveByUserId(params: {
|
|
53
35
|
readonly projectId: string
|
|
54
36
|
readonly userId: string
|
|
@@ -71,7 +53,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
71
53
|
async findValidByTokenHash(params: {
|
|
72
54
|
readonly projectId: string
|
|
73
55
|
readonly id: string
|
|
74
|
-
readonly audience: AuthSessionAudience
|
|
75
56
|
readonly tokenHash: string
|
|
76
57
|
readonly now: Date
|
|
77
58
|
}): Promise<SessionRecord | null> {
|
|
@@ -79,7 +60,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
79
60
|
if (
|
|
80
61
|
!session ||
|
|
81
62
|
session.bearer ||
|
|
82
|
-
session.audience !== params.audience ||
|
|
83
63
|
session.tokenHash !== params.tokenHash ||
|
|
84
64
|
!isActiveSession(session, params.now)
|
|
85
65
|
) {
|
|
@@ -153,7 +133,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
153
133
|
async renewIfValid(params: {
|
|
154
134
|
readonly projectId: string
|
|
155
135
|
readonly id: string
|
|
156
|
-
readonly audience: AuthSessionAudience
|
|
157
136
|
readonly tokenHash: string
|
|
158
137
|
readonly now: Date
|
|
159
138
|
readonly expiresAt: Date
|
|
@@ -163,7 +142,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
163
142
|
if (
|
|
164
143
|
!session ||
|
|
165
144
|
session.bearer ||
|
|
166
|
-
session.audience !== params.audience ||
|
|
167
145
|
session.tokenHash !== params.tokenHash ||
|
|
168
146
|
!isActiveSession(session, params.now)
|
|
169
147
|
) {
|
|
@@ -208,15 +186,13 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
208
186
|
async revokeActiveForUser(params: {
|
|
209
187
|
readonly projectId: string
|
|
210
188
|
readonly userId: string
|
|
211
|
-
readonly audience?: AuthSessionAudience
|
|
212
189
|
readonly revokedAt: Date
|
|
213
190
|
}): Promise<readonly SessionRecord[]> {
|
|
214
191
|
return revokeActiveSessionsForUser(
|
|
215
192
|
this.state,
|
|
216
193
|
params.projectId,
|
|
217
194
|
params.userId,
|
|
218
|
-
params.revokedAt
|
|
219
|
-
params.audience
|
|
195
|
+
params.revokedAt
|
|
220
196
|
).map(cloneRecord)
|
|
221
197
|
}
|
|
222
198
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type AuthSessionAudience, resolveAuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type {
|
|
4
3
|
AccessTokenRecord,
|
|
@@ -213,8 +212,7 @@ export function revokeActiveSessionsForUser(
|
|
|
213
212
|
state: AuthStorageState,
|
|
214
213
|
projectId: string,
|
|
215
214
|
userId: string,
|
|
216
|
-
revokedAt: Date
|
|
217
|
-
audience?: AuthSessionAudience
|
|
215
|
+
revokedAt: Date
|
|
218
216
|
): readonly SessionRecord[] {
|
|
219
217
|
const revoked: SessionRecord[] = []
|
|
220
218
|
|
|
@@ -223,10 +221,6 @@ export function revokeActiveSessionsForUser(
|
|
|
223
221
|
continue
|
|
224
222
|
}
|
|
225
223
|
|
|
226
|
-
if (audience !== undefined && session.audience !== audience) {
|
|
227
|
-
continue
|
|
228
|
-
}
|
|
229
|
-
|
|
230
224
|
if (!isActiveSession(session, revokedAt)) {
|
|
231
225
|
continue
|
|
232
226
|
}
|
|
@@ -290,7 +284,6 @@ export function validateCompleteSessionInput(
|
|
|
290
284
|
session: CompleteAuthSessionInput
|
|
291
285
|
): void {
|
|
292
286
|
const sessionId = assertNonEmpty(session.id, "Session id")
|
|
293
|
-
assertNonEmpty(session.audience, "Session audience")
|
|
294
287
|
assertNonEmpty(session.tokenHash, "Session token hash")
|
|
295
288
|
assertSessionIdAvailable(state, projectId, sessionId)
|
|
296
289
|
}
|
|
@@ -303,7 +296,6 @@ export function createSessionRecord(
|
|
|
303
296
|
const projectId = assertNonEmpty(input.projectId, "Project id")
|
|
304
297
|
const userId = assertNonEmpty(input.userId, "User id")
|
|
305
298
|
const strategyId = assertNonEmpty(input.strategyId, "Strategy id")
|
|
306
|
-
const audience = resolveAuthSessionAudience(input.audience)
|
|
307
299
|
const tokenHash = assertNonEmpty(input.tokenHash, "Session token hash")
|
|
308
300
|
|
|
309
301
|
assertSessionIdAvailable(state, projectId, id)
|
|
@@ -313,7 +305,6 @@ export function createSessionRecord(
|
|
|
313
305
|
projectId,
|
|
314
306
|
userId,
|
|
315
307
|
strategyId,
|
|
316
|
-
audience,
|
|
317
308
|
tokenHash,
|
|
318
309
|
createdAt: cloneDate(input.createdAt),
|
|
319
310
|
expiresAt: cloneDate(input.expiresAt),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AccessTokenKind,
|
|
1
|
+
import type { AccessTokenKind, Principal } from "../../auth"
|
|
2
2
|
import type { AuthorizablePrincipal } from "../../execution/types"
|
|
3
3
|
|
|
4
4
|
export type UserStatus = "active" | "suspended"
|
|
@@ -57,7 +57,6 @@ export interface SessionRecord {
|
|
|
57
57
|
readonly userId: string
|
|
58
58
|
readonly strategyId: string
|
|
59
59
|
/** The web app a browser session belongs to. A bearer session belongs to none and ignores it. */
|
|
60
|
-
readonly audience: AuthSessionAudience
|
|
61
60
|
readonly tokenHash: string
|
|
62
61
|
readonly createdAt: Date
|
|
63
62
|
readonly expiresAt: Date
|
|
@@ -142,7 +141,6 @@ export interface MagicLinkRecord {
|
|
|
142
141
|
readonly id: string
|
|
143
142
|
readonly projectId: string
|
|
144
143
|
readonly strategyId: string
|
|
145
|
-
readonly audience: AuthSessionAudience
|
|
146
144
|
readonly email: string
|
|
147
145
|
readonly tokenHash: string
|
|
148
146
|
readonly returnTo?: string
|
|
@@ -156,7 +154,6 @@ export interface OidcAuthorizationAttemptRecord {
|
|
|
156
154
|
readonly id: string
|
|
157
155
|
readonly projectId: string
|
|
158
156
|
readonly strategyId: string
|
|
159
|
-
readonly audience: AuthSessionAudience
|
|
160
157
|
readonly stateHash: string
|
|
161
158
|
readonly nonceHash: string
|
|
162
159
|
readonly codeVerifier: string
|
|
@@ -288,7 +285,6 @@ export interface CreateAuthSessionInput {
|
|
|
288
285
|
readonly projectId: string
|
|
289
286
|
readonly userId: string
|
|
290
287
|
readonly strategyId: string
|
|
291
|
-
readonly audience: AuthSessionAudience
|
|
292
288
|
readonly tokenHash: string
|
|
293
289
|
readonly createdAt: Date
|
|
294
290
|
readonly expiresAt: Date
|
|
@@ -330,7 +326,6 @@ export interface ListAuthAccessTokensResult {
|
|
|
330
326
|
|
|
331
327
|
export interface CompleteAuthSessionInput {
|
|
332
328
|
readonly id: string
|
|
333
|
-
readonly audience: AuthSessionAudience
|
|
334
329
|
readonly tokenHash: string
|
|
335
330
|
readonly createdAt: Date
|
|
336
331
|
readonly expiresAt: Date
|
|
@@ -379,7 +374,6 @@ export interface CreateAuthMagicLinkInput {
|
|
|
379
374
|
readonly id: string
|
|
380
375
|
readonly projectId: string
|
|
381
376
|
readonly strategyId: string
|
|
382
|
-
readonly audience: AuthSessionAudience
|
|
383
377
|
readonly email: string
|
|
384
378
|
readonly tokenHash: string
|
|
385
379
|
readonly returnTo?: string
|
|
@@ -391,7 +385,6 @@ export interface CreateOidcAuthorizationAttemptInput {
|
|
|
391
385
|
readonly id: string
|
|
392
386
|
readonly projectId: string
|
|
393
387
|
readonly strategyId: string
|
|
394
|
-
readonly audience: AuthSessionAudience
|
|
395
388
|
readonly stateHash: string
|
|
396
389
|
readonly nonceHash: string
|
|
397
390
|
readonly codeVerifier: string
|
|
@@ -536,13 +529,7 @@ export interface AuthSessionStore {
|
|
|
536
529
|
readonly projectId: string
|
|
537
530
|
readonly id: string
|
|
538
531
|
}): Promise<SessionRecord | null>
|
|
539
|
-
|
|
540
|
-
readonly projectId: string
|
|
541
|
-
readonly userId: string
|
|
542
|
-
readonly audience: AuthSessionAudience
|
|
543
|
-
readonly now: Date
|
|
544
|
-
}): Promise<SessionRecord | null>
|
|
545
|
-
// All active sessions for a user across every audience, most-recently-active
|
|
532
|
+
// All active sessions for a user, most-recently-active
|
|
546
533
|
// first. Backs the active-sessions view.
|
|
547
534
|
listActiveByUserId(params: {
|
|
548
535
|
readonly projectId: string
|
|
@@ -553,7 +540,6 @@ export interface AuthSessionStore {
|
|
|
553
540
|
findValidByTokenHash(params: {
|
|
554
541
|
readonly projectId: string
|
|
555
542
|
readonly id: string
|
|
556
|
-
readonly audience: AuthSessionAudience
|
|
557
543
|
readonly tokenHash: string
|
|
558
544
|
readonly now: Date
|
|
559
545
|
}): Promise<SessionRecord | null>
|
|
@@ -585,7 +571,6 @@ export interface AuthSessionStore {
|
|
|
585
571
|
renewIfValid(params: {
|
|
586
572
|
readonly projectId: string
|
|
587
573
|
readonly id: string
|
|
588
|
-
readonly audience: AuthSessionAudience
|
|
589
574
|
readonly tokenHash: string
|
|
590
575
|
readonly now: Date
|
|
591
576
|
readonly expiresAt: Date
|
|
@@ -598,7 +583,6 @@ export interface AuthSessionStore {
|
|
|
598
583
|
revokeActiveForUser(params: {
|
|
599
584
|
readonly projectId: string
|
|
600
585
|
readonly userId: string
|
|
601
|
-
readonly audience?: AuthSessionAudience
|
|
602
586
|
readonly revokedAt: Date
|
|
603
587
|
}): Promise<readonly SessionRecord[]>
|
|
604
588
|
touch(params: {
|
package/src/storage/index.ts
CHANGED
|
@@ -35,28 +35,20 @@ export type {
|
|
|
35
35
|
ActionRunFailureDetails,
|
|
36
36
|
ActionRunParams,
|
|
37
37
|
ActionRunPhase,
|
|
38
|
-
ActionRunPhaseRecord,
|
|
39
|
-
ActionRunPhaseStatus,
|
|
40
38
|
ActionRunRecord,
|
|
41
39
|
ActionRunStatus,
|
|
42
40
|
ActionRunStorage,
|
|
43
41
|
ActionRunWritebackRecord,
|
|
44
|
-
EnterActionRunPhaseInput,
|
|
45
|
-
FinishActionRunInput,
|
|
46
42
|
ListActionRunsInput,
|
|
47
43
|
ListActionRunsResult,
|
|
48
|
-
LockActionMaterializationRunInput,
|
|
49
|
-
QueueActionRunInput,
|
|
50
44
|
RecordActionEffectsInput,
|
|
51
|
-
|
|
52
|
-
StartActionRunInput,
|
|
45
|
+
RecordActionRunInput,
|
|
53
46
|
} from "./action-runs"
|
|
54
47
|
export {
|
|
55
48
|
ACTION_RUN_FAILURE_CODES,
|
|
56
49
|
ACTION_RUN_PHASES,
|
|
57
50
|
ActionRunError,
|
|
58
51
|
InMemoryActionRunStorage,
|
|
59
|
-
isTerminalActionRun,
|
|
60
52
|
} from "./action-runs"
|
|
61
53
|
export type {
|
|
62
54
|
AgentContextCheckpointReason,
|
package/src/storage/internal.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
/** Implementation exports for Sixb packages only. */
|
|
2
2
|
|
|
3
|
-
export {
|
|
4
|
-
actionRunParamsEqual,
|
|
5
|
-
actionRunPhaseRecordsEqual,
|
|
6
|
-
actionSubjectsEqual,
|
|
7
|
-
canRequeueActionRunAfterEnqueueFailure,
|
|
8
|
-
finishActionRunPhase,
|
|
9
|
-
} from "./action-runs/idempotency"
|
|
3
|
+
export { normalizeRecordActionRunInput, resolveActionRunEffects } from "./action-runs/record"
|
|
10
4
|
export { assertAiUsageExecutionId, normalizeAiModelCallRecord } from "./ai-usage/record"
|
|
11
5
|
export { normalizeAiModelCallUsage } from "./ai-usage/usage"
|
|
12
6
|
export { parseFileDownloadGrantRow } from "./file-download-grants/record"
|
|
@@ -20,9 +20,10 @@ export class ObjectReadLimitExceededError extends Error {
|
|
|
20
20
|
|
|
21
21
|
constructor(
|
|
22
22
|
readonly metric: ObjectReadLimitMetric,
|
|
23
|
-
readonly limit: number
|
|
23
|
+
readonly limit: number,
|
|
24
|
+
message = `[Sixb] Object read exceeded its ${metric} limit (${limit}).`
|
|
24
25
|
) {
|
|
25
|
-
super(
|
|
26
|
+
super(message)
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
|
package/src/storage/types.ts
CHANGED
|
@@ -35,12 +35,10 @@ export type {
|
|
|
35
35
|
ActionRunRecord,
|
|
36
36
|
ActionRunStatus,
|
|
37
37
|
ActionRunStorage,
|
|
38
|
-
FinishActionRunInput,
|
|
39
38
|
ListActionRunsInput,
|
|
40
39
|
ListActionRunsResult,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
StartActionRunInput,
|
|
40
|
+
RecordActionEffectsInput,
|
|
41
|
+
RecordActionRunInput,
|
|
44
42
|
} from "./action-runs"
|
|
45
43
|
export { ACTION_RUN_FAILURE_CODES, ACTION_RUN_PHASES, ActionRunError } from "./action-runs"
|
|
46
44
|
export type {
|