@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
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
* entry in `GRANT_KINDS` plus the compile errors that forces at every consumer.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type { GrantDefinition } from "../security/types"
|
|
12
12
|
|
|
13
13
|
export type GrantKind =
|
|
14
|
-
| "access:application"
|
|
15
14
|
| "view:object"
|
|
16
15
|
| "view:dataset"
|
|
17
16
|
| "edit:object"
|
|
@@ -27,12 +26,12 @@ export type GrantKind =
|
|
|
27
26
|
| "manage:connector"
|
|
28
27
|
| "manage:aiUsage"
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
/** Capabilities over one project-wide surface: held or not, with no ids to select. */
|
|
30
|
+
export type SingletonGrantKind = "run:agent" | "observe:logs" | "observe:aiUsage" | "manage:aiUsage"
|
|
31
31
|
export type TargetedGrantKind = Exclude<GrantKind, SingletonGrantKind>
|
|
32
32
|
|
|
33
33
|
/** Registered id universes a grant kind ranges over, plus subtype expansion. */
|
|
34
34
|
export interface GrantUniverse {
|
|
35
|
-
readonly applicationIds: ReadonlySet<string>
|
|
36
35
|
readonly objectTypeIds: ReadonlySet<string>
|
|
37
36
|
readonly datasetIds: ReadonlySet<string>
|
|
38
37
|
readonly actionIds: ReadonlySet<string>
|
|
@@ -40,9 +39,7 @@ export interface GrantUniverse {
|
|
|
40
39
|
readonly workflowIds: ReadonlySet<string>
|
|
41
40
|
readonly syncIds: ReadonlySet<string>
|
|
42
41
|
readonly pipelineIds: ReadonlySet<string>
|
|
43
|
-
readonly observableIds: ReadonlySet<string>
|
|
44
42
|
readonly connectorIds: ReadonlySet<string>
|
|
45
|
-
readonly manageableIds: ReadonlySet<string>
|
|
46
43
|
readonly getSubTypes: (objectTypeId: string) => readonly string[]
|
|
47
44
|
}
|
|
48
45
|
|
|
@@ -76,11 +73,6 @@ export const GRANT_KINDS: {
|
|
|
76
73
|
? SingletonGrantKindSpec
|
|
77
74
|
: TargetedGrantKindSpec
|
|
78
75
|
} = {
|
|
79
|
-
"access:application": {
|
|
80
|
-
universeKey: "applicationIds",
|
|
81
|
-
subject: "application",
|
|
82
|
-
fix: "Use an application exported from '@sixb/core'.",
|
|
83
|
-
},
|
|
84
76
|
"view:object": {
|
|
85
77
|
universeKey: "objectTypeIds",
|
|
86
78
|
subject: "object type",
|
|
@@ -136,13 +128,13 @@ export const GRANT_KINDS: {
|
|
|
136
128
|
fix: "Configure models.language and use the exported agent reference in can.run(agent).",
|
|
137
129
|
},
|
|
138
130
|
"observe:logs": {
|
|
139
|
-
|
|
140
|
-
subject: "
|
|
131
|
+
singleton: true,
|
|
132
|
+
subject: "logs",
|
|
141
133
|
fix: 'Use can.observe("logs").',
|
|
142
134
|
},
|
|
143
135
|
"observe:aiUsage": {
|
|
144
|
-
|
|
145
|
-
subject: "
|
|
136
|
+
singleton: true,
|
|
137
|
+
subject: "AI usage",
|
|
146
138
|
fix: "Use can.observe(agent.usage).",
|
|
147
139
|
},
|
|
148
140
|
"manage:connector": {
|
|
@@ -151,25 +143,27 @@ export const GRANT_KINDS: {
|
|
|
151
143
|
fix: "Add it to 'connectors/' or pass it to createSixb({ connectors }).",
|
|
152
144
|
},
|
|
153
145
|
"manage:aiUsage": {
|
|
154
|
-
|
|
155
|
-
subject: "
|
|
146
|
+
singleton: true,
|
|
147
|
+
subject: "AI usage",
|
|
156
148
|
fix: "Use can.manage(agent.usage).",
|
|
157
149
|
},
|
|
158
150
|
}
|
|
159
151
|
|
|
160
152
|
export const GRANT_KIND_KEYS = Object.keys(GRANT_KINDS) as readonly GrantKind[]
|
|
153
|
+
export const SINGLETON_GRANT_KIND_KEYS = GRANT_KIND_KEYS.filter(
|
|
154
|
+
(kind): kind is SingletonGrantKind => "singleton" in GRANT_KINDS[kind]
|
|
155
|
+
)
|
|
161
156
|
export const TARGETED_GRANT_KIND_KEYS = GRANT_KIND_KEYS.filter(
|
|
162
|
-
(kind): kind is TargetedGrantKind =>
|
|
157
|
+
(kind): kind is TargetedGrantKind => !("singleton" in GRANT_KINDS[kind])
|
|
163
158
|
)
|
|
164
159
|
|
|
160
|
+
export function isSingletonGrantKind(kind: GrantKind): kind is SingletonGrantKind {
|
|
161
|
+
return "singleton" in GRANT_KINDS[kind]
|
|
162
|
+
}
|
|
163
|
+
|
|
165
164
|
/** The grant kind a stored grant resolves to. */
|
|
166
|
-
export function grantKindOf(grant: AgentRunGrant): SingletonGrantKind
|
|
167
|
-
export function grantKindOf(grant: Exclude<GrantDefinition, AgentRunGrant>): TargetedGrantKind
|
|
168
|
-
export function grantKindOf(grant: GrantDefinition): GrantKind
|
|
169
165
|
export function grantKindOf(grant: GrantDefinition): GrantKind {
|
|
170
166
|
switch (grant.capability) {
|
|
171
|
-
case "access":
|
|
172
|
-
return "access:application"
|
|
173
167
|
case "view":
|
|
174
168
|
return `view:${grant.target}`
|
|
175
169
|
case "edit":
|
|
@@ -196,7 +190,6 @@ export type MutableGrantIndex = {
|
|
|
196
190
|
|
|
197
191
|
export function emptyGrantSets(): MutableGrantIndex {
|
|
198
192
|
return {
|
|
199
|
-
"access:application": new Set(),
|
|
200
193
|
"view:object": new Set(),
|
|
201
194
|
"view:dataset": new Set(),
|
|
202
195
|
"edit:object": new Set(),
|
|
@@ -207,9 +200,9 @@ export function emptyGrantSets(): MutableGrantIndex {
|
|
|
207
200
|
"run:sync": new Set(),
|
|
208
201
|
"run:pipeline": new Set(),
|
|
209
202
|
"run:agent": false,
|
|
210
|
-
"observe:logs":
|
|
211
|
-
"observe:aiUsage":
|
|
203
|
+
"observe:logs": false,
|
|
204
|
+
"observe:aiUsage": false,
|
|
212
205
|
"manage:connector": new Set(),
|
|
213
|
-
"manage:aiUsage":
|
|
206
|
+
"manage:aiUsage": false,
|
|
214
207
|
}
|
|
215
208
|
}
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
GRANT_KINDS,
|
|
6
6
|
type GrantUniverse,
|
|
7
7
|
grantKindOf,
|
|
8
|
+
isSingletonGrantKind,
|
|
9
|
+
SINGLETON_GRANT_KIND_KEYS,
|
|
8
10
|
TARGETED_GRANT_KIND_KEYS,
|
|
9
11
|
} from "./grant-kinds"
|
|
10
12
|
import type { AuthorizationContext, GrantIndex, ResolvedRole } from "./types"
|
|
@@ -14,7 +16,7 @@ import type { AuthorizationContext, GrantIndex, ResolvedRole } from "./types"
|
|
|
14
16
|
*
|
|
15
17
|
* Broad grants (`every.object().except([...])`) expand against the registered
|
|
16
18
|
* universe; object-type grants also expand to subtypes. Resource grants become
|
|
17
|
-
* id sets;
|
|
19
|
+
* id sets; grants on one project-wide surface (the Agent, logs, AI usage) become booleans.
|
|
18
20
|
* The per-kind universe and subtype rules come from the `GRANT_KINDS` table, so
|
|
19
21
|
* this loop never enumerates targets by hand.
|
|
20
22
|
*/
|
|
@@ -22,11 +24,13 @@ export function resolveRoleGrants(role: RoleDefinition, universe: GrantUniverse)
|
|
|
22
24
|
const grants = emptyGrantSets()
|
|
23
25
|
|
|
24
26
|
for (const grant of role.grants) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
const kind = grantKindOf(grant)
|
|
28
|
+
if (isSingletonGrantKind(kind)) {
|
|
29
|
+
grants[kind] = true
|
|
27
30
|
continue
|
|
28
31
|
}
|
|
29
|
-
|
|
32
|
+
// Every other kind carries a selection; this narrows the grant's type to say so.
|
|
33
|
+
if (!("selection" in grant)) continue
|
|
30
34
|
const spec = GRANT_KINDS[kind]
|
|
31
35
|
expandSelection(
|
|
32
36
|
grant.selection,
|
|
@@ -89,8 +93,8 @@ export function resolveAuthorizationContext(input: {
|
|
|
89
93
|
}
|
|
90
94
|
|
|
91
95
|
roleIds.push(role.id)
|
|
92
|
-
|
|
93
|
-
grants[
|
|
96
|
+
for (const kind of SINGLETON_GRANT_KIND_KEYS) {
|
|
97
|
+
if (role.grants[kind]) grants[kind] = true
|
|
94
98
|
}
|
|
95
99
|
for (const kind of TARGETED_GRANT_KIND_KEYS) {
|
|
96
100
|
for (const id of role.grants[kind]) {
|
package/src/deploy/index.ts
CHANGED
package/src/deploy/services.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
DeployConfigurableWorkerType,
|
|
3
2
|
DeployHttpServiceName,
|
|
4
3
|
DeployServiceName,
|
|
5
4
|
DeploySingletonServiceName,
|
|
@@ -11,7 +10,6 @@ import type {
|
|
|
11
10
|
|
|
12
11
|
const SERVICES = {
|
|
13
12
|
api: "http",
|
|
14
|
-
atlas: "http",
|
|
15
13
|
app: "http",
|
|
16
14
|
orchestrator: "singleton",
|
|
17
15
|
scheduler: "singleton",
|
|
@@ -19,27 +17,19 @@ const SERVICES = {
|
|
|
19
17
|
workers: "workers",
|
|
20
18
|
} as const satisfies Record<DeployServiceName, "http" | "singleton" | "workers">
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
const WORKER_TYPES: {
|
|
24
|
-
readonly [Type in DeployWorkerType]: Type extends DeployConfigurableWorkerType ? true : false
|
|
25
|
-
} = {
|
|
20
|
+
const WORKER_TYPES = {
|
|
26
21
|
sync: true,
|
|
27
|
-
action: false,
|
|
28
22
|
agent: true,
|
|
29
23
|
pipeline: true,
|
|
30
24
|
projection: true,
|
|
31
25
|
workflow: true,
|
|
32
|
-
}
|
|
26
|
+
} as const satisfies Record<DeployWorkerType, true>
|
|
33
27
|
|
|
34
28
|
/** Every service, in the order a deployment lists them. */
|
|
35
29
|
export const DEPLOY_SERVICES = Object.keys(SERVICES) as DeployServiceName[]
|
|
36
30
|
|
|
37
31
|
export const DEPLOY_WORKER_TYPES = Object.keys(WORKER_TYPES) as DeployWorkerType[]
|
|
38
32
|
|
|
39
|
-
export const DEPLOY_CONFIGURABLE_WORKER_TYPES = DEPLOY_WORKER_TYPES.filter(
|
|
40
|
-
(workerType): workerType is DeployConfigurableWorkerType => WORKER_TYPES[workerType]
|
|
41
|
-
)
|
|
42
|
-
|
|
43
33
|
export function isDeployHttpService(service: DeployServiceName): service is DeployHttpServiceName {
|
|
44
34
|
return SERVICES[service] === "http"
|
|
45
35
|
}
|
package/src/deploy/types.ts
CHANGED
|
@@ -29,21 +29,17 @@ export interface DeployConfig {
|
|
|
29
29
|
export type DeployEnv = Readonly<Record<string, string>>
|
|
30
30
|
|
|
31
31
|
/** The services a browser or client reaches through a public domain. */
|
|
32
|
-
export type DeployHttpServiceName = "api" | "
|
|
32
|
+
export type DeployHttpServiceName = "api" | "app"
|
|
33
33
|
|
|
34
34
|
/** The services that must run as exactly one process: a second would duplicate their work. */
|
|
35
35
|
export type DeploySingletonServiceName = "orchestrator" | "scheduler" | "rules"
|
|
36
36
|
|
|
37
37
|
export type DeployServiceName = DeployHttpServiceName | DeploySingletonServiceName | "workers"
|
|
38
38
|
|
|
39
|
-
export type DeployWorkerType = "sync" | "
|
|
40
|
-
|
|
41
|
-
/** Action jobs run one at a time, so their concurrency is fixed. */
|
|
42
|
-
export type DeployConfigurableWorkerType = Exclude<DeployWorkerType, "action">
|
|
39
|
+
export type DeployWorkerType = "sync" | "agent" | "pipeline" | "projection" | "workflow"
|
|
43
40
|
|
|
44
41
|
export interface DeployServicesConfig {
|
|
45
42
|
readonly api?: boolean | DeployHttpServiceConfig
|
|
46
|
-
readonly atlas?: boolean | DeployHttpServiceConfig
|
|
47
43
|
readonly app?: boolean | DeployHttpServiceConfig
|
|
48
44
|
readonly orchestrator?: boolean | DeploySingletonServiceConfig
|
|
49
45
|
readonly scheduler?: boolean | DeploySingletonServiceConfig
|
|
@@ -74,7 +70,7 @@ export interface DeployWorkersConfig {
|
|
|
74
70
|
/** Wall-clock budget for one agent turn, such as `"30s"`, `"10m"`, or `"1h"`. */
|
|
75
71
|
readonly agentTurnTimeout?: string
|
|
76
72
|
/** Jobs each worker type runs at once inside one process. */
|
|
77
|
-
readonly concurrency?: Readonly<Partial<Record<
|
|
73
|
+
readonly concurrency?: Readonly<Partial<Record<DeployWorkerType, number>>>
|
|
78
74
|
/** Added to the deployment's `env` for the workers only. */
|
|
79
75
|
readonly env?: DeployEnv
|
|
80
76
|
readonly process?: DeployScalableProcessOptions
|
|
@@ -90,7 +86,10 @@ export interface DeployProcessDefinition {
|
|
|
90
86
|
}
|
|
91
87
|
|
|
92
88
|
export interface DeployProcessOptions {
|
|
93
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
* How long a stopping process may take before it is killed. Defaults to 10000, and to 70000 for
|
|
91
|
+
* the API, which first lets the Actions it is running and their effects finish.
|
|
92
|
+
*/
|
|
94
93
|
readonly killTimeoutMs?: number
|
|
95
94
|
/** Wait before restarting a process that exited, growing with each restart. Defaults to 1000. */
|
|
96
95
|
readonly restartDelayMs?: number
|
package/src/deploy/validation.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
DEPLOY_CONFIGURABLE_WORKER_TYPES,
|
|
3
2
|
DEPLOY_SERVICES,
|
|
4
3
|
DEPLOY_WORKER_TYPES,
|
|
5
4
|
isDeployHttpService,
|
|
@@ -56,7 +55,9 @@ function target(value: unknown): void {
|
|
|
56
55
|
|
|
57
56
|
function services(value: unknown): void {
|
|
58
57
|
const config = record(value, "services")
|
|
59
|
-
knownKeys(config, DEPLOY_SERVICES, "services"
|
|
58
|
+
knownKeys(config, DEPLOY_SERVICES, "services", {
|
|
59
|
+
atlas: "Atlas's pages are part of the app now; remove the setting and configure `app`.",
|
|
60
|
+
})
|
|
60
61
|
|
|
61
62
|
for (const service of DEPLOY_SERVICES) {
|
|
62
63
|
const override = config[service]
|
|
@@ -131,6 +132,7 @@ function workerTypes(value: unknown, path: string): void {
|
|
|
131
132
|
}
|
|
132
133
|
const seen = new Set<string>()
|
|
133
134
|
for (const workerType of value) {
|
|
135
|
+
if (workerType === "action") throw removedActionWorker(path)
|
|
134
136
|
if (!(DEPLOY_WORKER_TYPES as readonly unknown[]).includes(workerType)) {
|
|
135
137
|
throw new Error(
|
|
136
138
|
`[SixbDeploy] ${path} has unknown worker type ${JSON.stringify(workerType)}. ` +
|
|
@@ -147,19 +149,25 @@ function workerTypes(value: unknown, path: string): void {
|
|
|
147
149
|
function workerConcurrency(value: unknown, path: string): void {
|
|
148
150
|
const config = record(value, path)
|
|
149
151
|
for (const [workerType, concurrency] of Object.entries(config)) {
|
|
150
|
-
if (workerType === "action")
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
if (!(DEPLOY_CONFIGURABLE_WORKER_TYPES as readonly string[]).includes(workerType)) {
|
|
152
|
+
if (workerType === "action") throw removedActionWorker(path)
|
|
153
|
+
if (!(DEPLOY_WORKER_TYPES as readonly string[]).includes(workerType)) {
|
|
154
154
|
throw new Error(
|
|
155
155
|
`[SixbDeploy] ${path} has unknown worker type "${workerType}". ` +
|
|
156
|
-
`Available: ${
|
|
156
|
+
`Available: ${DEPLOY_WORKER_TYPES.join(", ")}.`
|
|
157
157
|
)
|
|
158
158
|
}
|
|
159
159
|
positiveInteger(concurrency, `${path}.${workerType}`)
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
+
/** `"action"` was a worker type until Actions ran in the process that requests them. */
|
|
164
|
+
function removedActionWorker(path: string): Error {
|
|
165
|
+
return new Error(
|
|
166
|
+
`[SixbDeploy] ${path} names "action", which is no longer a worker type: Actions run in the ` +
|
|
167
|
+
"process that requests them (API, workflows, syncs). Remove it."
|
|
168
|
+
)
|
|
169
|
+
}
|
|
170
|
+
|
|
163
171
|
function processOptions(
|
|
164
172
|
value: unknown,
|
|
165
173
|
path: string,
|
|
@@ -93,19 +93,11 @@ export type SixbRunFailedContext = SixbFailureContext<"run.failed"> &
|
|
|
93
93
|
readonly attempt?: number
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
/** A post-commit Action effects phase failed without changing the committed Action outcome. */
|
|
97
|
-
export interface SixbActionPhaseFailedContext extends SixbFailureContext<"action.phase.failed"> {
|
|
98
|
-
readonly actionId: string
|
|
99
|
-
readonly runId: string
|
|
100
|
-
readonly phase: "effects"
|
|
101
|
-
readonly failure: ActionRunFailure<"effects">
|
|
102
|
-
}
|
|
103
|
-
|
|
104
96
|
/**
|
|
105
97
|
* A post-commit Action phase failed without changing the committed Action outcome.
|
|
106
98
|
*
|
|
107
|
-
* Effects run after the
|
|
108
|
-
* context exposes the exact phase failure
|
|
99
|
+
* Effects run after the run is recorded with its commit, so the run remains succeeded while this
|
|
100
|
+
* context exposes the exact phase failure recorded on it.
|
|
109
101
|
*/
|
|
110
102
|
export interface SixbActionPhaseFailedContext extends SixbFailureContext<"action.phase.failed"> {
|
|
111
103
|
readonly actionId: string
|
package/src/errors/catalog.ts
CHANGED
|
@@ -18,6 +18,15 @@ export const SIXB_ERROR_DEFINITIONS = {
|
|
|
18
18
|
publicMessage: "Data the Action read changed before its commit.",
|
|
19
19
|
retryable: true,
|
|
20
20
|
},
|
|
21
|
+
"action.run_in_progress": {
|
|
22
|
+
publicMessage: "The Action run is already in progress.",
|
|
23
|
+
retryable: true,
|
|
24
|
+
},
|
|
25
|
+
// Not retryable: the deadline aborts a writeback whose external call may still have landed.
|
|
26
|
+
"action.timeout": {
|
|
27
|
+
publicMessage: "The Action exceeded its 30-second time limit.",
|
|
28
|
+
retryable: false,
|
|
29
|
+
},
|
|
21
30
|
"agent.execution_failed": {
|
|
22
31
|
publicMessage: "Agent execution failed.",
|
|
23
32
|
retryable: false,
|
|
@@ -134,6 +143,10 @@ export const SIXB_ERROR_DEFINITIONS = {
|
|
|
134
143
|
publicMessage: "Execution was cancelled.",
|
|
135
144
|
retryable: false,
|
|
136
145
|
},
|
|
146
|
+
"runtime.stopping": {
|
|
147
|
+
publicMessage: "The runtime is stopping; retry the request.",
|
|
148
|
+
retryable: true,
|
|
149
|
+
},
|
|
137
150
|
"vector.model_unavailable": {
|
|
138
151
|
publicMessage: "The embedding model configured for this vector profile is unavailable.",
|
|
139
152
|
retryable: false,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { EventsError } from "./errors"
|
|
2
|
-
import type { ActionEvent } from "./types/actions"
|
|
3
2
|
import type { DatasetEvent } from "./types/datasets"
|
|
4
3
|
import type { DomainEvent, DomainEventDraft } from "./types/index"
|
|
5
4
|
import type { LinkEvent } from "./types/links"
|
|
@@ -67,21 +66,6 @@ export const LINK_EVENT_DEFINITIONS = defineEventGroup<LinkEvent>({
|
|
|
67
66
|
},
|
|
68
67
|
})
|
|
69
68
|
|
|
70
|
-
export const ACTION_EVENT_DEFINITIONS = defineEventGroup<ActionEvent>({
|
|
71
|
-
"action.requested": {
|
|
72
|
-
topic: "actions",
|
|
73
|
-
partitionKey: (payload) => payload.actionId,
|
|
74
|
-
},
|
|
75
|
-
"action.completed": {
|
|
76
|
-
topic: "actions",
|
|
77
|
-
partitionKey: (payload) => payload.actionId,
|
|
78
|
-
},
|
|
79
|
-
"action.failed": {
|
|
80
|
-
topic: "actions",
|
|
81
|
-
partitionKey: (payload) => payload.actionId,
|
|
82
|
-
},
|
|
83
|
-
})
|
|
84
|
-
|
|
85
69
|
export const SCHEDULE_EVENT_DEFINITIONS = defineEventGroup<ScheduleEvent>({
|
|
86
70
|
"schedule.triggered": {
|
|
87
71
|
topic: "schedules",
|
|
@@ -190,7 +174,6 @@ export const EVENT_DEFINITIONS = {
|
|
|
190
174
|
...OBJECT_EVENT_DEFINITIONS,
|
|
191
175
|
...TELEMETRY_EVENT_DEFINITIONS,
|
|
192
176
|
...LINK_EVENT_DEFINITIONS,
|
|
193
|
-
...ACTION_EVENT_DEFINITIONS,
|
|
194
177
|
...SCHEDULE_EVENT_DEFINITIONS,
|
|
195
178
|
...SYNC_EVENT_DEFINITIONS,
|
|
196
179
|
...PIPELINE_EVENT_DEFINITIONS,
|
package/src/events/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type { ErrorReporter } from "../error-reporting/reporter"
|
|
2
2
|
export type { EventDefinition, EventDefinitionGroup, EventDefinitionMap } from "./definitions"
|
|
3
3
|
export {
|
|
4
|
-
ACTION_EVENT_DEFINITIONS,
|
|
5
4
|
DATASET_EVENT_DEFINITIONS,
|
|
6
5
|
EVENT_DEFINITIONS,
|
|
7
6
|
EVENT_TOPICS,
|
|
@@ -26,12 +25,6 @@ export {
|
|
|
26
25
|
export type { EventScopeKeys } from "./scope"
|
|
27
26
|
export { scopeKeysForEvent } from "./scope"
|
|
28
27
|
export {
|
|
29
|
-
type ActionEventSelectorBuilder,
|
|
30
|
-
type ActionEventSelectorContext,
|
|
31
|
-
type ActionEventSelectorEvent,
|
|
32
|
-
type ActionEventSelectorOperation,
|
|
33
|
-
type ActionEventToken,
|
|
34
|
-
type ActionEventTokenOf,
|
|
35
28
|
buildEventSelectorPredicate,
|
|
36
29
|
type DatasetEventSelectorBuilder,
|
|
37
30
|
type DatasetEventSelectorContext,
|
|
@@ -82,11 +75,7 @@ export {
|
|
|
82
75
|
} from "./service"
|
|
83
76
|
export { toStoredEvent } from "./toStoredEvent"
|
|
84
77
|
export type {
|
|
85
|
-
ActionCompletedEvent,
|
|
86
|
-
ActionEvent,
|
|
87
78
|
ActionEventOrigin,
|
|
88
|
-
ActionFailedEvent,
|
|
89
|
-
ActionRequestedEvent,
|
|
90
79
|
AuthorableDomainEvent,
|
|
91
80
|
AuthorableEventDraft,
|
|
92
81
|
DatasetEvent,
|
|
@@ -122,9 +111,6 @@ export type {
|
|
|
122
111
|
RuntimeMutationEventOrigin,
|
|
123
112
|
ScheduleEvent,
|
|
124
113
|
ScheduleTriggeredEvent,
|
|
125
|
-
StoredActionCompletedEvent,
|
|
126
|
-
StoredActionFailedEvent,
|
|
127
|
-
StoredActionRequestedEvent,
|
|
128
114
|
StoredAuthorableEvent,
|
|
129
115
|
StoredDatasetVersionCommittedEvent,
|
|
130
116
|
StoredDomainEvent,
|
package/src/events/scope.ts
CHANGED
|
@@ -17,7 +17,6 @@ export interface EventScopeKeys {
|
|
|
17
17
|
readonly linkId?: string
|
|
18
18
|
readonly ruleId?: string
|
|
19
19
|
readonly runId?: string
|
|
20
|
-
readonly actionId?: string
|
|
21
20
|
readonly datasetId?: string
|
|
22
21
|
readonly syncId?: string
|
|
23
22
|
readonly pipelineId?: string
|
|
@@ -45,17 +44,6 @@ export function scopeKeysForEvent(event: DomainEvent): EventScopeKeys {
|
|
|
45
44
|
return { pipelineId: event.payload.pipelineId, runId: event.payload.runId }
|
|
46
45
|
case "syncs":
|
|
47
46
|
return { syncId: event.payload.syncId, runId: event.payload.runId }
|
|
48
|
-
case "actions":
|
|
49
|
-
return {
|
|
50
|
-
actionId: event.payload.actionId,
|
|
51
|
-
runId: event.payload.runId,
|
|
52
|
-
...(event.payload.subject.kind === "object"
|
|
53
|
-
? {
|
|
54
|
-
objectTypeId: event.payload.subject.objectTypeId,
|
|
55
|
-
primaryId: event.payload.subject.primaryId,
|
|
56
|
-
}
|
|
57
|
-
: {}),
|
|
58
|
-
}
|
|
59
47
|
case "rules":
|
|
60
48
|
return { ruleId: event.payload.ruleId }
|
|
61
49
|
case "schedules":
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import type { ActionDefinition } from "../../actions"
|
|
2
1
|
import type { LinkToken, ObjectTypeWithTokens, Property, PropertyToken } from "../../ontology"
|
|
3
2
|
import type { RuleDefinition } from "../../rules"
|
|
4
3
|
import type { DomainEvent } from "../types"
|
|
5
4
|
import type {
|
|
6
|
-
ActionEventSelectorContext,
|
|
7
|
-
ActionEventToken,
|
|
8
|
-
ActionEventTokenOf,
|
|
9
5
|
DatasetEventSelectorContext,
|
|
10
6
|
DatasetEventToken,
|
|
11
7
|
EventSelectorSpec,
|
|
@@ -79,13 +75,6 @@ export interface RuleEventSelectorBuilder<TRule extends RuleDefinition>
|
|
|
79
75
|
resolved(): EventSelectorSpec<RuleEventSelectorContext<TRule, "resolved">>
|
|
80
76
|
}
|
|
81
77
|
|
|
82
|
-
export interface ActionEventSelectorBuilder<TAction extends ActionEventToken>
|
|
83
|
-
extends EventSelectorSpec<ActionEventSelectorContext<TAction>> {
|
|
84
|
-
requested(): EventSelectorSpec<ActionEventSelectorContext<TAction, "requested">>
|
|
85
|
-
completed(): EventSelectorSpec<ActionEventSelectorContext<TAction, "completed">>
|
|
86
|
-
failed(): EventSelectorSpec<ActionEventSelectorContext<TAction, "failed">>
|
|
87
|
-
}
|
|
88
|
-
|
|
89
78
|
export interface DatasetEventSelectorBuilder<TDataset extends DatasetEventToken>
|
|
90
79
|
extends EventSelectorSpec<DatasetEventSelectorContext<TDataset>> {
|
|
91
80
|
updated(): EventSelectorSpec<DatasetEventSelectorContext<TDataset>>
|
|
@@ -140,10 +129,6 @@ abstract class EventSelectorSpecView<TContext> implements EventSelectorSpec<TCon
|
|
|
140
129
|
return this.spec.ruleId
|
|
141
130
|
}
|
|
142
131
|
|
|
143
|
-
get actionId(): EventSelectorSpec["actionId"] {
|
|
144
|
-
return this.spec.actionId
|
|
145
|
-
}
|
|
146
|
-
|
|
147
132
|
get datasetId(): EventSelectorSpec["datasetId"] {
|
|
148
133
|
return this.spec.datasetId
|
|
149
134
|
}
|
|
@@ -344,31 +329,6 @@ class RuleEventSelectorBuilderImpl<TRule extends RuleDefinition>
|
|
|
344
329
|
}
|
|
345
330
|
}
|
|
346
331
|
|
|
347
|
-
class ActionEventSelectorBuilderImpl<TAction extends ActionEventToken>
|
|
348
|
-
extends EventSelectorSpecView<ActionEventSelectorContext<TAction>>
|
|
349
|
-
implements ActionEventSelectorBuilder<TAction>
|
|
350
|
-
{
|
|
351
|
-
requested(): EventSelectorSpec<ActionEventSelectorContext<TAction, "requested">> {
|
|
352
|
-
return this.withType("action.requested")
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
completed(): EventSelectorSpec<ActionEventSelectorContext<TAction, "completed">> {
|
|
356
|
-
return this.withType("action.completed")
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
failed(): EventSelectorSpec<ActionEventSelectorContext<TAction, "failed">> {
|
|
360
|
-
return this.withType("action.failed")
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
private withType<TOperation extends "requested" | "completed" | "failed">(
|
|
364
|
-
type: `action.${TOperation}`
|
|
365
|
-
): EventSelectorSpec<ActionEventSelectorContext<TAction, TOperation>> {
|
|
366
|
-
return { ...this.spec, types: [type] } as EventSelectorSpec<
|
|
367
|
-
ActionEventSelectorContext<TAction, TOperation>
|
|
368
|
-
>
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
|
|
372
332
|
class DatasetEventSelectorBuilderImpl<TDataset extends DatasetEventToken>
|
|
373
333
|
extends EventSelectorSpecView<DatasetEventSelectorContext<TDataset>>
|
|
374
334
|
implements DatasetEventSelectorBuilder<TDataset>
|
|
@@ -437,9 +397,6 @@ export interface EventSelectors {
|
|
|
437
397
|
objectType: TObjectType
|
|
438
398
|
): ObjectEventSelectorBuilder<TObjectType>
|
|
439
399
|
rule<TRule extends RuleDefinition>(rule: TRule): RuleEventSelectorBuilder<TRule>
|
|
440
|
-
action<TAction extends ActionDefinition>(
|
|
441
|
-
action: TAction
|
|
442
|
-
): ActionEventSelectorBuilder<ActionEventTokenOf<TAction>>
|
|
443
400
|
dataset<TDataset extends DatasetEventToken>(
|
|
444
401
|
dataset: TDataset
|
|
445
402
|
): DatasetEventSelectorBuilder<TDataset>
|
|
@@ -461,14 +418,6 @@ export const events: EventSelectors = {
|
|
|
461
418
|
ruleId: rule.id,
|
|
462
419
|
} as EventSelectorSpec<RuleEventSelectorContext<TRule>>)
|
|
463
420
|
},
|
|
464
|
-
action<TAction extends ActionDefinition>(
|
|
465
|
-
action: TAction
|
|
466
|
-
): ActionEventSelectorBuilder<ActionEventTokenOf<TAction>> {
|
|
467
|
-
return new ActionEventSelectorBuilderImpl({
|
|
468
|
-
topic: "actions",
|
|
469
|
-
actionId: action.id,
|
|
470
|
-
} as EventSelectorSpec<ActionEventSelectorContext<ActionEventTokenOf<TAction>>>)
|
|
471
|
-
},
|
|
472
421
|
dataset<TDataset extends DatasetEventToken>(
|
|
473
422
|
dataset: TDataset
|
|
474
423
|
): DatasetEventSelectorBuilder<TDataset> {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export type {
|
|
2
|
-
ActionEventSelectorBuilder,
|
|
3
2
|
DatasetEventSelectorBuilder,
|
|
4
3
|
EventPropertySelector,
|
|
5
4
|
EventSelectors,
|
|
@@ -12,11 +11,6 @@ export type {
|
|
|
12
11
|
export { events } from "./builder"
|
|
13
12
|
export { buildEventSelectorPredicate, eventSelectorSpec } from "./predicate"
|
|
14
13
|
export type {
|
|
15
|
-
ActionEventSelectorContext,
|
|
16
|
-
ActionEventSelectorEvent,
|
|
17
|
-
ActionEventSelectorOperation,
|
|
18
|
-
ActionEventToken,
|
|
19
|
-
ActionEventTokenOf,
|
|
20
14
|
DatasetEventSelectorContext,
|
|
21
15
|
DatasetEventSelectorEvent,
|
|
22
16
|
DatasetEventToken,
|
|
@@ -14,7 +14,6 @@ export function eventSelectorSpec(selector: EventSelectorSpec<unknown>): EventSe
|
|
|
14
14
|
: {}),
|
|
15
15
|
...(selector.linkId !== undefined ? { linkId: selector.linkId } : {}),
|
|
16
16
|
...(selector.ruleId !== undefined ? { ruleId: selector.ruleId } : {}),
|
|
17
|
-
...(selector.actionId !== undefined ? { actionId: selector.actionId } : {}),
|
|
18
17
|
...(selector.datasetId !== undefined ? { datasetId: selector.datasetId } : {}),
|
|
19
18
|
...(selector.syncId !== undefined ? { syncId: selector.syncId } : {}),
|
|
20
19
|
...(selector.pipelineId !== undefined ? { pipelineId: selector.pipelineId } : {}),
|
|
@@ -40,7 +39,6 @@ export function buildEventSelectorPredicate(
|
|
|
40
39
|
if (filter.linkId !== undefined && scope.linkId !== filter.linkId) return false
|
|
41
40
|
if (filter.ruleId !== undefined && scope.ruleId !== filter.ruleId) return false
|
|
42
41
|
if (filter.runId !== undefined && scope.runId !== filter.runId) return false
|
|
43
|
-
if (filter.actionId !== undefined && scope.actionId !== filter.actionId) return false
|
|
44
42
|
if (filter.datasetId !== undefined && scope.datasetId !== filter.datasetId) return false
|
|
45
43
|
if (filter.syncId !== undefined && scope.syncId !== filter.syncId) return false
|
|
46
44
|
if (filter.pipelineId !== undefined && scope.pipelineId !== filter.pipelineId) return false
|