@sixb/core 0.1.17 → 0.1.19
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 +56 -52
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +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/actions/validation.d.ts.map +1 -1
- package/dist/agents/adapters.d.ts +7 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +7 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context/entries.d.ts +10 -1
- package/dist/agents/context/entries.d.ts.map +1 -1
- package/dist/agents/context/index.d.ts +1 -1
- package/dist/agents/context/index.d.ts.map +1 -1
- package/dist/agents/context/index.js +4 -2
- package/dist/agents/context/index.js.map +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +63 -59
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +8 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/request.d.ts +19 -5
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts +41 -0
- package/dist/agents/skills.d.ts.map +1 -0
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/agents/types.d.ts +33 -4
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/index.js +12 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/types.d.ts +6 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/event-visibility.d.ts.map +1 -1
- package/dist/authorization/index.js +6 -4
- 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/authorization/types.d.ts +7 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/file-content.d.ts +18 -0
- package/dist/blob-storage/file-content.d.ts.map +1 -0
- package/dist/blob-storage/index.d.ts +1 -1
- package/dist/blob-storage/index.d.ts.map +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +2 -0
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +16 -4
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +8 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -0
- package/dist/blob-storage/types.d.ts +12 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/blob-storage/validation.d.ts +6 -0
- package/dist/blob-storage/validation.d.ts.map +1 -1
- package/dist/bootstrap/agent-context.d.ts +33 -0
- package/dist/bootstrap/agent-context.d.ts.map +1 -0
- package/dist/bootstrap/discovery.d.ts +23 -3
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +285 -77
- package/dist/bootstrap/index.js.map +4 -3
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-t9shqx3w.js → chunk-1f7wpmyp.js} +143 -7
- package/dist/chunk-1f7wpmyp.js.map +14 -0
- package/dist/{chunk-jjrn5v0p.js → chunk-1k89ecfr.js} +1 -1
- package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
- package/dist/chunk-1sr8ryzk.js.map +11 -0
- package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
- package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
- package/dist/{chunk-svabwqdq.js → chunk-3gnrh4ve.js} +44 -420
- package/dist/{chunk-svabwqdq.js.map → chunk-3gnrh4ve.js.map} +9 -13
- package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
- package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
- package/dist/{chunk-pja9jfz6.js → chunk-4tcx876c.js} +126 -64
- package/dist/chunk-4tcx876c.js.map +19 -0
- package/dist/{chunk-vre348sb.js → chunk-52bk93x8.js} +2 -2
- package/dist/{chunk-4gmng3vf.js → chunk-5e43w60z.js} +2 -2
- package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
- package/dist/chunk-6gmfggss.js.map +10 -0
- package/dist/{chunk-33saed7g.js → chunk-7kg3k1m9.js} +1 -1
- package/dist/{chunk-7ecp4v7a.js → chunk-7mbzgd9m.js} +10 -4
- package/dist/{chunk-7ecp4v7a.js.map → chunk-7mbzgd9m.js.map} +3 -3
- 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-xcy5ddha.js → chunk-80mc0971.js} +356 -301
- package/dist/chunk-80mc0971.js.map +15 -0
- package/dist/{chunk-gf7yht60.js → chunk-85yvv5n0.js} +27 -10
- package/dist/chunk-85yvv5n0.js.map +12 -0
- 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-2am3db31.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-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-dam456ve.js → chunk-aff7cyea.js} +431 -70
- package/dist/{chunk-dam456ve.js.map → chunk-aff7cyea.js.map} +10 -7
- 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-xyvy73tj.js → chunk-bpgy64fw.js} +8 -3
- package/dist/chunk-bpgy64fw.js.map +12 -0
- package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
- package/dist/{chunk-5thzcb8g.js → chunk-c85m1hyj.js} +2 -2
- package/dist/{chunk-e67ynxcr.js → chunk-d2ync1v3.js} +5 -5
- package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
- package/dist/chunk-enpsx8k5.js +127 -0
- package/dist/chunk-enpsx8k5.js.map +10 -0
- package/dist/chunk-ey3pyej1.js +8807 -0
- package/dist/chunk-ey3pyej1.js.map +106 -0
- package/dist/{chunk-vjcd8d27.js → chunk-fa02jy15.js} +1 -1
- package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
- package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
- package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
- package/dist/chunk-hkc3jct7.js.map +10 -0
- package/dist/{chunk-rpxz486p.js → chunk-hvsb78a1.js} +24 -8
- package/dist/{chunk-rpxz486p.js.map → chunk-hvsb78a1.js.map} +3 -3
- package/dist/{chunk-5yd8cchh.js → chunk-j2bp5ryw.js} +55 -246
- package/dist/{chunk-5yd8cchh.js.map → chunk-j2bp5ryw.js.map} +4 -4
- package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
- package/dist/chunk-jhm3zsa7.js.map +12 -0
- package/dist/{chunk-w9yycd3t.js → chunk-kg5j6fct.js} +4 -8
- package/dist/{chunk-w9yycd3t.js.map → chunk-kg5j6fct.js.map} +3 -3
- package/dist/{chunk-vp3z1ckh.js → chunk-kyzq4wy9.js} +7 -7
- 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-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
- 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-a7er86jd.js → chunk-nre82s12.js} +1 -1
- 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-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
- package/dist/chunk-pfp1txq2.js.map +11 -0
- package/dist/chunk-pqajwytd.js.map +2 -2
- package/dist/{chunk-f1xh7a32.js → chunk-q1vkr2ys.js} +4 -4
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-23xs4qp9.js → chunk-rhg02hxq.js} +4 -4
- package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
- package/dist/chunk-rz53yb4v.js.map +14 -0
- package/dist/{chunk-aq39q04r.js → chunk-s16apyk9.js} +104 -18
- package/dist/chunk-s16apyk9.js.map +16 -0
- package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
- package/dist/chunk-s54c868q.js.map +12 -0
- package/dist/{chunk-k4g51s47.js → chunk-t6vq7bff.js} +5 -5
- package/dist/{chunk-sk0hcjsz.js → chunk-tjb1mk5t.js} +3 -3
- package/dist/{chunk-cnb5kv05.js → chunk-tpn40322.js} +23 -8
- package/dist/chunk-tpn40322.js.map +19 -0
- package/dist/{chunk-rx7h5fdx.js → chunk-v9xd5wzd.js} +1 -1
- package/dist/{chunk-2vhg6ysa.js → chunk-vyf9kfqf.js} +1 -1
- package/dist/chunk-wwdfe68s.js +128 -0
- package/dist/chunk-wwdfe68s.js.map +11 -0
- package/dist/{chunk-jnfxmr3f.js → chunk-wz0xs816.js} +6 -6
- package/dist/{chunk-jnfxmr3f.js.map → chunk-wz0xs816.js.map} +1 -1
- package/dist/chunk-xt1zt7gv.js +471 -0
- package/dist/chunk-xt1zt7gv.js.map +13 -0
- package/dist/chunk-y0c4e6ex.js +16 -0
- package/dist/chunk-y0c4e6ex.js.map +10 -0
- package/dist/{chunk-5be2ath4.js → chunk-y7rqfrgg.js} +20 -138
- package/dist/{chunk-5be2ath4.js.map → chunk-y7rqfrgg.js.map} +8 -9
- package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
- package/dist/chunk-yw9pyg66.js.map +11 -0
- 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-fggq3d9k.js → chunk-zrmy8zvw.js} +66 -47
- package/dist/{chunk-fggq3d9k.js.map → chunk-zrmy8zvw.js.map} +4 -4
- package/dist/datasets/builders.d.ts +12 -1
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +27 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -1
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/types.d.ts +2 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +5 -0
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +10 -5
- package/dist/datasets/write.js.map +1 -1
- package/dist/deploy/index.d.ts +1 -1
- package/dist/deploy/index.d.ts.map +1 -1
- package/dist/deploy/internal.js +10 -8
- 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 +6 -5
- 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/edits/properties.d.ts.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/execution.d.ts +2 -1
- package/dist/events/execution.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/events/types/objects.d.ts +5 -0
- package/dist/events/types/objects.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +10 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +50 -48
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +6 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +60 -88
- package/dist/execution/primitive.js.map +3 -4
- package/dist/execution/request.js +46 -46
- package/dist/execution/request.js.map +1 -1
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +120 -124
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +8 -5
- package/dist/lake-storage/index.js.map +1 -1
- 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 +35 -32
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/catalog.d.ts +1 -1
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +6 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.js +26 -23
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +4 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/language-model.d.ts +6 -0
- package/dist/models/language-model.d.ts.map +1 -1
- 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/context/index.d.ts +1 -1
- package/dist/objects/context/index.d.ts.map +1 -1
- package/dist/objects/context/types.d.ts +6 -0
- package/dist/objects/context/types.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +2 -3
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +49 -30
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +41 -0
- package/dist/objects/property-clearance.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +34 -31
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/validate.d.ts +10 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/file-handle.d.ts +6 -0
- package/dist/objects/sdk/file-handle.d.ts.map +1 -0
- package/dist/objects/sdk/object-handle.d.ts +2 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -0
- 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/ontology/builders.d.ts +12 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +35 -0
- package/dist/ontology/docs-markdown.d.ts.map +1 -0
- package/dist/ontology/docs.d.ts +50 -0
- package/dist/ontology/docs.d.ts.map +1 -0
- package/dist/ontology/index.js +7 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +19 -0
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +3 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +276 -3
- package/dist/ontology/internal.js.map +4 -3
- package/dist/ontology/tokens.d.ts +8 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +5 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +7 -0
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +34 -31
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +27 -24
- 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/create.d.ts +11 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +3 -1
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +13 -2
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.js +30 -28
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/locale.d.ts +9 -0
- package/dist/runtime/locale.d.ts.map +1 -0
- package/dist/runtime/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +46 -39
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +7 -6
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/runtime.d.ts +3 -0
- package/dist/scheduler/runtime.d.ts.map +1 -1
- 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 +11 -2
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/every.d.ts +1 -1
- package/dist/security/index.d.ts +4 -4
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/markings.d.ts +19 -0
- package/dist/security/markings.d.ts.map +1 -0
- package/dist/security/redactions.d.ts +4 -0
- package/dist/security/redactions.d.ts.map +1 -0
- package/dist/security/registry.d.ts +7 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +25 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -21
- package/dist/shares/internal.js.map +2 -2
- 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/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +5 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +15 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/file-upload-sessions/provider.js +12 -9
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/index.d.ts +3 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +36 -34
- 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 +11 -13
- 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/objects/types.d.ts +7 -0
- package/dist/storage/objects/types.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 +12 -9
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +35 -32
- package/dist/syncs/index.js.map +1 -1
- 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/index.d.ts +2 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3213 -2869
- package/dist/testing/index.js.map +7 -6
- 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 +29 -26
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +1 -1
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +55 -55
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +6 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +2 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +1 -7
- 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/read-facade.ts +2 -1
- 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/actions/validation.ts +4 -1
- package/src/agents/adapters.ts +15 -0
- package/src/agents/authority.ts +15 -0
- package/src/agents/context/entries.ts +48 -4
- package/src/agents/context/index.ts +1 -0
- package/src/agents/context-compaction.ts +6 -0
- package/src/agents/errors.ts +3 -0
- package/src/agents/index.ts +13 -1
- package/src/agents/message.ts +9 -0
- package/src/agents/request.ts +178 -22
- package/src/agents/skills.ts +63 -0
- package/src/agents/types.ts +35 -5
- package/src/auth/runtime.ts +14 -0
- package/src/auth/types.ts +6 -0
- package/src/authorization/event-visibility.ts +0 -12
- package/src/authorization/resolve.ts +6 -1
- package/src/authorization/types.ts +7 -0
- package/src/blob-storage/execution.ts +12 -0
- package/src/blob-storage/file-content.ts +106 -0
- package/src/blob-storage/index.ts +1 -0
- package/src/blob-storage/internal.ts +7 -0
- package/src/blob-storage/media-type.ts +29 -0
- package/src/blob-storage/types.ts +13 -1
- package/src/blob-storage/validation.ts +13 -0
- package/src/bootstrap/agent-context.ts +356 -0
- package/src/bootstrap/discovery.ts +100 -33
- package/src/bootstrap/index.ts +1 -1
- package/src/bootstrap/ontology-type-manifest.ts +3 -38
- package/src/datasets/builders.ts +17 -1
- package/src/datasets/execution.ts +110 -2
- package/src/datasets/index.ts +7 -1
- package/src/datasets/types.ts +2 -0
- package/src/datasets/write.ts +21 -2
- package/src/deploy/index.ts +0 -1
- package/src/deploy/services.ts +2 -11
- package/src/deploy/types.ts +6 -6
- package/src/deploy/validation.ts +12 -6
- package/src/edits/properties.ts +3 -0
- 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/execution.ts +15 -16
- 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/events/types/objects.ts +5 -0
- package/src/execution/agent.ts +27 -0
- package/src/execution/authorization.ts +1 -0
- package/src/execution/authorized-object-reader.ts +96 -34
- package/src/execution/scopes.ts +2 -6
- package/src/http/api-routes.ts +4 -3
- package/src/index.ts +28 -21
- 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/catalog.ts +26 -2
- package/src/models/execution/README.md +4 -3
- package/src/models/execution/binding.ts +6 -0
- package/src/models/execution/model-call-recorder.ts +10 -0
- package/src/models/execution/session.ts +2 -2
- package/src/models/execution.ts +6 -2
- package/src/models/language-model.ts +6 -0
- 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/context/index.ts +1 -0
- package/src/objects/context/types.ts +7 -0
- package/src/objects/execution.ts +6 -3
- package/src/objects/materializer-adapter.ts +3 -0
- package/src/objects/object/upsert-batch.ts +4 -1
- package/src/objects/object/upsert.ts +3 -1
- package/src/objects/property-clearance.ts +209 -0
- package/src/objects/query/executor.ts +43 -36
- package/src/objects/query/validate.ts +133 -14
- package/src/objects/sdk/file-handle.ts +77 -0
- package/src/objects/sdk/object-handle.ts +11 -33
- package/src/objects/sdk/object-set.ts +10 -32
- package/src/objects/service/index.ts +0 -1
- package/src/ontology/builders.ts +18 -2
- package/src/ontology/docs-markdown.ts +394 -0
- package/src/ontology/docs.ts +196 -0
- package/src/ontology/inference/index.ts +25 -0
- package/src/ontology/internal.ts +7 -0
- package/src/ontology/tokens.ts +13 -2
- package/src/ontology/types.ts +5 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/schema.ts +26 -1
- 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/create.ts +34 -4
- package/src/runtime/definitions.ts +3 -1
- package/src/runtime/host.ts +50 -1
- package/src/runtime/index.ts +3 -0
- package/src/runtime/locale.ts +26 -0
- package/src/runtime/resolve-definitions.ts +28 -2
- package/src/runtime/sixb.ts +1 -1
- package/src/runtime/types.ts +55 -48
- package/src/scheduler/runtime.ts +11 -2
- 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 +49 -5
- package/src/security/every.ts +1 -1
- package/src/security/index.ts +6 -1
- package/src/security/markings.ts +313 -0
- package/src/security/redactions.ts +6 -0
- package/src/security/registry.ts +21 -1
- package/src/security/types.ts +26 -0
- package/src/security/validation.ts +59 -2
- 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/provider.ts +11 -0
- package/src/storage/agents/types.ts +15 -7
- package/src/storage/index.ts +2 -9
- package/src/storage/internal.ts +1 -7
- package/src/storage/objects/execution-limits.ts +3 -2
- package/src/storage/objects/types.ts +7 -0
- 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/index.ts +8 -1
- package/src/testing/materializer-storage-contract.ts +174 -18
- package/src/testing/queues-contract.ts +0 -18
- package/src/workflows/builders.ts +24 -1
- package/src/workflows/request.ts +3 -0
- package/src/workflows/types.ts +6 -3
- package/src/workflows/validation.ts +32 -4
- 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 -321
- package/dist/actions/worker.js.map +0 -11
- package/dist/chunk-10styjgk.js +0 -1572
- package/dist/chunk-10styjgk.js.map +0 -20
- package/dist/chunk-1hqwggsn.js.map +0 -12
- package/dist/chunk-52c5zb0z.js +0 -81
- package/dist/chunk-52c5zb0z.js.map +0 -10
- package/dist/chunk-69266efg.js.map +0 -12
- package/dist/chunk-6wbm6ymz.js +0 -4399
- package/dist/chunk-6wbm6ymz.js.map +0 -48
- package/dist/chunk-85cd7e8c.js +0 -51
- package/dist/chunk-85cd7e8c.js.map +0 -10
- package/dist/chunk-91kcnbf0.js.map +0 -10
- package/dist/chunk-98cw09sw.js.map +0 -10
- package/dist/chunk-9g6jz9kk.js +0 -592
- package/dist/chunk-9g6jz9kk.js.map +0 -15
- package/dist/chunk-9vx5e9g1.js.map +0 -11
- package/dist/chunk-aq39q04r.js.map +0 -15
- package/dist/chunk-cd234ba4.js.map +0 -14
- package/dist/chunk-cnb5kv05.js.map +0 -19
- package/dist/chunk-dfm066qg.js.map +0 -11
- package/dist/chunk-dmn70ztd.js.map +0 -11
- package/dist/chunk-fc5zfxy1.js.map +0 -11
- package/dist/chunk-gf7yht60.js.map +0 -12
- package/dist/chunk-h3v76ams.js.map +0 -11
- package/dist/chunk-pja9jfz6.js.map +0 -19
- package/dist/chunk-r2y23egw.js.map +0 -10
- package/dist/chunk-t9shqx3w.js.map +0 -12
- package/dist/chunk-tjjgy3z4.js +0 -1277
- package/dist/chunk-tjjgy3z4.js.map +0 -35
- package/dist/chunk-xcy5ddha.js.map +0 -15
- package/dist/chunk-xyvy73tj.js.map +0 -12
- package/dist/chunk-y2aq6ag9.js.map +0 -11
- package/dist/chunk-z5rnrmz1.js.map +0 -11
- 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/src/actions/run-dispatch.ts +0 -282
- package/src/actions/worker.ts +0 -2
- package/src/events/types/actions.ts +0 -42
- package/src/objects/service/action-service.ts +0 -43
- /package/dist/{chunk-jjrn5v0p.js.map → chunk-1k89ecfr.js.map} +0 -0
- /package/dist/{chunk-vre348sb.js.map → chunk-52bk93x8.js.map} +0 -0
- /package/dist/{chunk-4gmng3vf.js.map → chunk-5e43w60z.js.map} +0 -0
- /package/dist/{chunk-33saed7g.js.map → chunk-7kg3k1m9.js.map} +0 -0
- /package/dist/{chunk-kkqwzy6h.js.map → chunk-7t429e3f.js.map} +0 -0
- /package/dist/{chunk-2am3db31.js.map → chunk-9gyp8hg1.js.map} +0 -0
- /package/dist/{chunk-4wn7bxxa.js.map → chunk-9ybhtmg4.js.map} +0 -0
- /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
- /package/dist/{chunk-5thzcb8g.js.map → chunk-c85m1hyj.js.map} +0 -0
- /package/dist/{chunk-e67ynxcr.js.map → chunk-d2ync1v3.js.map} +0 -0
- /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
- /package/dist/{chunk-vjcd8d27.js.map → chunk-fa02jy15.js.map} +0 -0
- /package/dist/{chunk-vp3z1ckh.js.map → chunk-kyzq4wy9.js.map} +0 -0
- /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
- /package/dist/{chunk-a7er86jd.js.map → chunk-nre82s12.js.map} +0 -0
- /package/dist/{chunk-f1xh7a32.js.map → chunk-q1vkr2ys.js.map} +0 -0
- /package/dist/{chunk-23xs4qp9.js.map → chunk-rhg02hxq.js.map} +0 -0
- /package/dist/{chunk-k4g51s47.js.map → chunk-t6vq7bff.js.map} +0 -0
- /package/dist/{chunk-sk0hcjsz.js.map → chunk-tjb1mk5t.js.map} +0 -0
- /package/dist/{chunk-rx7h5fdx.js.map → chunk-v9xd5wzd.js.map} +0 -0
- /package/dist/{chunk-2vhg6ysa.js.map → chunk-vyf9kfqf.js.map} +0 -0
package/src/actions/errors.ts
CHANGED
|
@@ -2,10 +2,6 @@ export class ActionDefinitionError extends Error {
|
|
|
2
2
|
readonly name = "ActionDefinitionError"
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
export class ActionEditCommitError extends Error {
|
|
6
|
-
readonly name = "ActionEditCommitError"
|
|
7
|
-
}
|
|
8
|
-
|
|
9
5
|
export function missingActionMutationMessage(actionId: string): string {
|
|
10
6
|
return `Action "${actionId}" must declare .writeback(...) or .edits(...).`
|
|
11
7
|
}
|
package/src/actions/execution.ts
CHANGED
|
@@ -14,13 +14,7 @@ import type {
|
|
|
14
14
|
} from "../storage/action-runs"
|
|
15
15
|
import { assertObjectReadOutputWithinLimit } from "../storage/objects/execution-limits"
|
|
16
16
|
import { type ActionDescriptor, snapshotActionDescriptor } from "./descriptor"
|
|
17
|
-
import {
|
|
18
|
-
type RequestActionAndWaitInput,
|
|
19
|
-
type RequestActionInput,
|
|
20
|
-
type RequestActionResult,
|
|
21
|
-
requestAction,
|
|
22
|
-
requestActionAndWait,
|
|
23
|
-
} from "./request"
|
|
17
|
+
import { type RequestActionInput, requestAction } from "./request"
|
|
24
18
|
import { canDelegationAccessActionRun } from "./run-authorization"
|
|
25
19
|
import type { ActionDefinition } from "./types"
|
|
26
20
|
|
|
@@ -36,8 +30,15 @@ export interface ActionsRuntime {
|
|
|
36
30
|
getById(actionId: string): ActionDescriptor | null
|
|
37
31
|
listGlobal(): readonly ActionDescriptor[]
|
|
38
32
|
listForType(objectType: ObjectType): readonly ActionDescriptor[]
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Run an Action in this process and return its terminal record, without waiting for its effects.
|
|
35
|
+
* A run that fails resolves with status `failed`. The call rejects when the request itself is
|
|
36
|
+
* refused (unknown action, invalid params, missing authority, a run id this process is still
|
|
37
|
+
* running, a stopping runtime), and with `internal.unexpected` when a run that started could not
|
|
38
|
+
* be recorded: requesting it again with the same run id returns its record if it was recorded, and
|
|
39
|
+
* runs it again otherwise.
|
|
40
|
+
*/
|
|
41
|
+
request(input: RequestActionInput): Promise<ActionRunRecord>
|
|
41
42
|
readonly runs: ActionRunsRuntime
|
|
42
43
|
}
|
|
43
44
|
|
|
@@ -107,7 +108,6 @@ export function createActionsRuntime(
|
|
|
107
108
|
)
|
|
108
109
|
),
|
|
109
110
|
request: (input) => requestAction(runtime, execution, input),
|
|
110
|
-
requestAndWait: (input) => requestActionAndWait(runtime, execution, input),
|
|
111
111
|
runs: {
|
|
112
112
|
getById: async (runId) => {
|
|
113
113
|
if (
|
package/src/actions/index.ts
CHANGED
|
@@ -1,28 +1,11 @@
|
|
|
1
1
|
export { defineAction, optional, param } from "./builders"
|
|
2
|
-
export
|
|
3
|
-
ActionEditCommitResult,
|
|
4
|
-
ActionReadDependencies,
|
|
5
|
-
CommitActionEditsInput,
|
|
6
|
-
FindActionEditCommitInput,
|
|
7
|
-
} from "./commit-edits"
|
|
8
|
-
export { commitActionEdits, findActionEditCommit } from "./commit-edits"
|
|
9
|
-
export { ActionDefinitionError, ActionEditCommitError } from "./errors"
|
|
10
|
-
export type {
|
|
11
|
-
ActionReadFacadeOptions,
|
|
12
|
-
ActionTelemetryReadSource,
|
|
13
|
-
} from "./read-facade"
|
|
14
|
-
export { ActionReadRecorder, createActionReadFacade } from "./read-facade"
|
|
2
|
+
export { ActionDefinitionError } from "./errors"
|
|
15
3
|
export type { ActionDefinitionCatalog, ActionRegistryOptions } from "./registry"
|
|
16
4
|
export { ActionRegistry } from "./registry"
|
|
17
|
-
export type {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
RequestActionOptions,
|
|
22
|
-
RequestActionResult,
|
|
23
|
-
WaitForActionRunInput,
|
|
24
|
-
} from "./request"
|
|
25
|
-
export { requestAction, requestActionAndWait, waitForActionRun } from "./request"
|
|
5
|
+
export type { RequestActionInput, RequestActionOptions } from "./request"
|
|
6
|
+
export { requestAction } from "./request"
|
|
7
|
+
export { drainActionRuns } from "./run/executor"
|
|
8
|
+
export { ACTION_RUN_DRAIN_TIMEOUT_MS } from "./run/signals"
|
|
26
9
|
export type {
|
|
27
10
|
ActionBinding,
|
|
28
11
|
ActionBlobContext,
|
|
@@ -73,9 +56,7 @@ export type {
|
|
|
73
56
|
ObjectActionPhaseBuilder,
|
|
74
57
|
} from "./types"
|
|
75
58
|
export {
|
|
76
|
-
coerceActionParamsToTyped,
|
|
77
59
|
isActionDefinition,
|
|
78
60
|
isGlobalActionDefinition,
|
|
79
61
|
isObjectActionDefinition,
|
|
80
62
|
} from "./validation"
|
|
81
|
-
export { runActionValidators } from "./validators"
|
|
@@ -49,7 +49,7 @@ export interface ActionTelemetryReadSource {
|
|
|
49
49
|
* reflect the handler's own intent. Objects returned by `list()` and `query()` are fenced like
|
|
50
50
|
* concrete reads, but query membership is not yet: an object that starts matching a query after the
|
|
51
51
|
* read, and aggregate results (`count()`, `exists()`, `facets()`), stay unfenced. Telemetry history
|
|
52
|
-
*
|
|
52
|
+
* and file content are also call-level snapshots, not edit dependencies.
|
|
53
53
|
*/
|
|
54
54
|
export class ActionReadRecorder {
|
|
55
55
|
private readonly objects = new Map<string, ExpectedObjectRevision>()
|
|
@@ -320,6 +320,7 @@ function recordObjectReads<TObjectType extends ObjectTypeWithPropertyTokens>(
|
|
|
320
320
|
)
|
|
321
321
|
return rows
|
|
322
322
|
},
|
|
323
|
+
file: handle.file,
|
|
323
324
|
}
|
|
324
325
|
},
|
|
325
326
|
}
|
package/src/actions/request.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AuthorizationError, assertAuthorized, canViewActionRun } from "../authorization"
|
|
2
2
|
import {
|
|
3
3
|
getAuthorizationRef,
|
|
4
|
+
type ResolvedRuntimeAuthorization,
|
|
4
5
|
resolveExecutionScopeAuthorization,
|
|
5
|
-
resolveRuntimeAuthorizationForProject,
|
|
6
6
|
} from "../execution/authorization"
|
|
7
7
|
import {
|
|
8
8
|
createPrimitiveExecutionRecord,
|
|
@@ -10,22 +10,20 @@ import {
|
|
|
10
10
|
executionRecordInputFromRuntime,
|
|
11
11
|
} from "../execution/durable"
|
|
12
12
|
import type { ExecutionContext } from "../execution/types"
|
|
13
|
-
import { ActionRunTimeoutError } from "../objects/action/errors"
|
|
14
13
|
import { OntologyValidationError } from "../ontology/errors"
|
|
15
14
|
import type { ObjectTypeWithPropertyTokens } from "../ontology/tokens"
|
|
16
15
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
17
16
|
import { assertParamUsersActive } from "../shared/params/user-refs"
|
|
17
|
+
import type { ActionRunRecord } from "../storage"
|
|
18
18
|
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
isTerminalActionRun,
|
|
23
|
-
} from "../storage"
|
|
24
|
-
import { assertObjectReadOutputWithinLimit } from "../storage/objects/execution-limits"
|
|
19
|
+
assertObjectReadOutputWithinLimit,
|
|
20
|
+
ObjectReadLimitExceededError,
|
|
21
|
+
} from "../storage/objects/execution-limits"
|
|
25
22
|
import { admitDelegatedObjectAction, assertDelegatedActionTarget } from "./delegated-admission"
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
23
|
+
import { getActionRunExecutor } from "./run/executor"
|
|
24
|
+
import { actionRunBelongsToShareGrant } from "./run-authorization"
|
|
28
25
|
import { createActionRunId } from "./run-id"
|
|
26
|
+
import { type ExistingActionRun, persistActionRun } from "./run-persistence"
|
|
29
27
|
import type { ActionDefinition, ActionSubject } from "./types"
|
|
30
28
|
import {
|
|
31
29
|
isObjectActionDefinition,
|
|
@@ -34,51 +32,23 @@ import {
|
|
|
34
32
|
validateActionSubject,
|
|
35
33
|
} from "./validation"
|
|
36
34
|
|
|
37
|
-
export interface RequestActionResult {
|
|
38
|
-
readonly runId: string
|
|
39
|
-
readonly queuedAt: string
|
|
40
|
-
readonly jobId?: string
|
|
41
|
-
readonly created: boolean
|
|
42
|
-
}
|
|
43
|
-
|
|
44
35
|
export interface RequestActionOptions {
|
|
45
36
|
readonly runId?: string
|
|
37
|
+
/**
|
|
38
|
+
* Cancels the run before its irreversible boundary: a succeeded writeback, or the commit of an
|
|
39
|
+
* Action without one. Past it, the run finishes whatever this signal does.
|
|
40
|
+
*/
|
|
46
41
|
readonly signal?: AbortSignal
|
|
47
42
|
}
|
|
48
43
|
|
|
49
|
-
export interface
|
|
50
|
-
readonly timeoutMs?: number
|
|
51
|
-
readonly onRequested?: (runId: string) => void | Promise<void>
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export interface RequestActionInput {
|
|
44
|
+
export interface RequestActionInput extends RequestActionOptions {
|
|
55
45
|
readonly actionId: string
|
|
56
46
|
readonly subject?: ActionSubject
|
|
57
47
|
readonly params?: Record<string, unknown>
|
|
58
|
-
|
|
59
|
-
readonly signal?: AbortSignal
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export interface RequestActionAndWaitInput extends RequestActionInput {
|
|
63
|
-
readonly timeoutMs?: number
|
|
48
|
+
/** Called once the run's execution exists, before the run executes. A throw starts nothing. */
|
|
64
49
|
readonly onRequested?: (runId: string) => void | Promise<void>
|
|
65
50
|
}
|
|
66
51
|
|
|
67
|
-
export interface WaitForActionRunInput {
|
|
68
|
-
readonly runId: string
|
|
69
|
-
readonly timeoutMs?: number
|
|
70
|
-
readonly signal?: AbortSignal
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const DEFAULT_ACTION_WAIT_TIMEOUT_MS = 60_000
|
|
74
|
-
const DEFAULT_ACTION_WAIT_POLL_MS = 1_000
|
|
75
|
-
|
|
76
|
-
function clearTimer(timer: ReturnType<typeof setTimeout> | undefined): void {
|
|
77
|
-
if (timer) {
|
|
78
|
-
clearTimeout(timer)
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
52
|
function getActionDefinition(runtime: SixbRuntimeContext, actionId: string): ActionDefinition {
|
|
83
53
|
const action = runtime.actionRegistry.getById(actionId)
|
|
84
54
|
if (!action) {
|
|
@@ -87,11 +57,17 @@ function getActionDefinition(runtime: SixbRuntimeContext, actionId: string): Act
|
|
|
87
57
|
return action
|
|
88
58
|
}
|
|
89
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Request an Action run and execute it in this process, returning its terminal record.
|
|
62
|
+
*
|
|
63
|
+
* Admission, authorization and params are checked before anything is persisted. A run id that is
|
|
64
|
+
* already recorded returns that run's record, without running it again.
|
|
65
|
+
*/
|
|
90
66
|
export async function requestAction(
|
|
91
67
|
runtime: SixbRuntimeContext,
|
|
92
68
|
execution: ExecutionContext,
|
|
93
69
|
input: RequestActionInput
|
|
94
|
-
): Promise<
|
|
70
|
+
): Promise<ActionRunRecord> {
|
|
95
71
|
// Capture the three process-local capabilities before caller-owned request getters can run.
|
|
96
72
|
const projectId = runtime.projectId
|
|
97
73
|
const runtimeAuthorization = runtime.runtimeAuthorization
|
|
@@ -127,7 +103,7 @@ export async function requestAction(
|
|
|
127
103
|
assertAuthorized({ projectId, runtimeAuthorization }, { kind: "action.apply", actionId })
|
|
128
104
|
}
|
|
129
105
|
if (authorization.type !== "delegated" && action.binding.kind === "object") {
|
|
130
|
-
// Object actions
|
|
106
|
+
// Object actions require visibility of the type they are bound to, as listing them does.
|
|
131
107
|
assertAuthorized(
|
|
132
108
|
{ projectId, runtimeAuthorization },
|
|
133
109
|
{ kind: "object.view", objectTypeId: action.binding.objectType.id }
|
|
@@ -142,74 +118,136 @@ export async function requestAction(
|
|
|
142
118
|
if (isObjectActionDefinition(action)) {
|
|
143
119
|
objectType = resolveObjectActionSubject({ runtime, action, subject })
|
|
144
120
|
pathPrefix = `${objectType.id}.${action.id}`
|
|
121
|
+
if (authorization.type !== "delegated") {
|
|
122
|
+
// A run is visible to whoever may view its subject's type (`canViewActionRun`). A subtype
|
|
123
|
+
// excluded from a broad grant is not visible through its parent, so admitting the request on
|
|
124
|
+
// the bound type alone would run what its caller can never read back.
|
|
125
|
+
assertAuthorized(
|
|
126
|
+
{ projectId, runtimeAuthorization },
|
|
127
|
+
{ kind: "object.view", objectTypeId: objectType.id }
|
|
128
|
+
)
|
|
129
|
+
}
|
|
145
130
|
}
|
|
146
131
|
|
|
147
132
|
const actionParams = normalizeActionParams(runtime, action.params, rawParams, pathPrefix)
|
|
133
|
+
const runId = createActionRunId(request.runId)
|
|
148
134
|
|
|
149
|
-
// `
|
|
135
|
+
// `persistActionRun` checks an existing run id before creating its durable execution. Keep
|
|
150
136
|
// process-local delegation outside that oracle unless it carries durable grant provenance.
|
|
151
137
|
void getAuthorizationRef(runtimeAuthorization)
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
throw new AuthorizationError(
|
|
191
|
-
`apply:action:${actionId}`,
|
|
192
|
-
"[Sixb] Delegated authority cannot reuse this Action run."
|
|
193
|
-
)
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
}
|
|
197
|
-
: {}),
|
|
198
|
-
createExecution: async (executionId, runId) => {
|
|
199
|
-
const caller = await ensureExecutionRecord(
|
|
200
|
-
runtime.storage.executions,
|
|
201
|
-
executionRecordInputFromRuntime({
|
|
202
|
-
execution,
|
|
203
|
-
runtimeAuthorization,
|
|
138
|
+
// A run starts only while its caller still waits for it; an aborted caller gets its abort.
|
|
139
|
+
const executor = getActionRunExecutor(runtime)
|
|
140
|
+
request.signal?.throwIfAborted()
|
|
141
|
+
|
|
142
|
+
const payload = { actionId, subject, params: actionParams }
|
|
143
|
+
const assertCanReuse = (run: ExistingActionRun) =>
|
|
144
|
+
assertCallerMayHaveRun({ storage: runtime.storage, projectId, authorization, run })
|
|
145
|
+
const persist = () =>
|
|
146
|
+
persistActionRun({
|
|
147
|
+
projectId,
|
|
148
|
+
storage: runtime.storage,
|
|
149
|
+
runId,
|
|
150
|
+
payload,
|
|
151
|
+
assertCanReuse,
|
|
152
|
+
assertNewRun: () =>
|
|
153
|
+
assertParamUsersActive({
|
|
154
|
+
auth: runtime.storage.auth,
|
|
155
|
+
projectId,
|
|
156
|
+
schemas: Object.fromEntries(
|
|
157
|
+
Object.entries(action.params).map(([paramId, param]) => [paramId, param.schema])
|
|
158
|
+
),
|
|
159
|
+
values: actionParams,
|
|
160
|
+
valueTypesById: runtime.ontology.getValueTypesById(),
|
|
161
|
+
describe: (paramId) => `Action param '${pathPrefix}.${paramId}'`,
|
|
162
|
+
invalid: (message) => new OntologyValidationError(message),
|
|
163
|
+
}),
|
|
164
|
+
createExecution: async (executionId, runId) => {
|
|
165
|
+
const caller = await ensureExecutionRecord(
|
|
166
|
+
runtime.storage.executions,
|
|
167
|
+
executionRecordInputFromRuntime({
|
|
168
|
+
execution,
|
|
169
|
+
runtimeAuthorization,
|
|
170
|
+
})
|
|
171
|
+
)
|
|
172
|
+
return createPrimitiveExecutionRecord({
|
|
173
|
+
id: executionId,
|
|
174
|
+
primitive: { kind: "action", id: actionId, runId },
|
|
175
|
+
origin: { type: "execution", parent: caller },
|
|
204
176
|
})
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
177
|
+
},
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
const run = await executor.request({
|
|
181
|
+
runId,
|
|
182
|
+
payload,
|
|
183
|
+
persist,
|
|
184
|
+
assertCanReuse,
|
|
185
|
+
signal: request.signal,
|
|
186
|
+
onRequested: request.onRequested,
|
|
212
187
|
})
|
|
188
|
+
return enforceDelegatedOutputBudget(authorization, run)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* A run that already exists under the requested run id, recorded or executing, answers this request
|
|
193
|
+
* only under the rules that would let its caller read it.
|
|
194
|
+
*
|
|
195
|
+
* A principal gets it under the visibility rules `actions.runs.getById` applies; admission already
|
|
196
|
+
* requires the grants those rules check for the request's own Action and subject, and this keeps a
|
|
197
|
+
* run that carries another request from depending on it. A delegated caller gets it only when it was
|
|
198
|
+
* requested under the same Share grant.
|
|
199
|
+
*/
|
|
200
|
+
async function assertCallerMayHaveRun(input: {
|
|
201
|
+
readonly storage: SixbRuntimeContext["storage"]
|
|
202
|
+
readonly projectId: string
|
|
203
|
+
readonly authorization: ResolvedRuntimeAuthorization
|
|
204
|
+
readonly run: ExistingActionRun
|
|
205
|
+
}): Promise<void> {
|
|
206
|
+
const { authorization, run } = input
|
|
207
|
+
const visible =
|
|
208
|
+
authorization.type === "delegated"
|
|
209
|
+
? authorization.delegation !== undefined &&
|
|
210
|
+
(await actionRunBelongsToShareGrant({
|
|
211
|
+
storage: input.storage,
|
|
212
|
+
projectId: input.projectId,
|
|
213
|
+
run,
|
|
214
|
+
grantId: authorization.delegation.grantId,
|
|
215
|
+
}))
|
|
216
|
+
: authorization.type !== "principal" || canViewActionRun(authorization.context, run)
|
|
217
|
+
if (!visible) {
|
|
218
|
+
throw new AuthorizationError(
|
|
219
|
+
`apply:action:${run.actionId}`,
|
|
220
|
+
authorization.type === "delegated"
|
|
221
|
+
? "[Sixb] Delegated authority cannot reuse this Action run."
|
|
222
|
+
: `[Sixb] Action run '${run.id}' is not visible to this principal.`
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* A delegated caller receives the record only within its output budget, like any read.
|
|
229
|
+
*
|
|
230
|
+
* The run already ran by then, and its record does not change: requesting the same run id again
|
|
231
|
+
* is refused the same way.
|
|
232
|
+
*/
|
|
233
|
+
function enforceDelegatedOutputBudget(
|
|
234
|
+
authorization: ResolvedRuntimeAuthorization,
|
|
235
|
+
run: ActionRunRecord
|
|
236
|
+
): ActionRunRecord {
|
|
237
|
+
if (authorization.type !== "delegated") return run
|
|
238
|
+
try {
|
|
239
|
+
assertObjectReadOutputWithinLimit(run, authorization.objectRead.limits)
|
|
240
|
+
} catch (error) {
|
|
241
|
+
if (!(error instanceof ObjectReadLimitExceededError)) throw error
|
|
242
|
+
throw new ObjectReadLimitExceededError(
|
|
243
|
+
error.metric,
|
|
244
|
+
error.limit,
|
|
245
|
+
`[Sixb] Action run '${run.id}' finished with status '${run.status}', but its record exceeds ` +
|
|
246
|
+
`this caller's ${error.metric} limit (${error.limit}). Requesting it again returns the ` +
|
|
247
|
+
"same record."
|
|
248
|
+
)
|
|
249
|
+
}
|
|
250
|
+
return run
|
|
213
251
|
}
|
|
214
252
|
|
|
215
253
|
function snapshotActionRequest(input: RequestActionInput): {
|
|
@@ -217,199 +255,23 @@ function snapshotActionRequest(input: RequestActionInput): {
|
|
|
217
255
|
readonly subject: ActionSubject
|
|
218
256
|
readonly params: Record<string, unknown>
|
|
219
257
|
readonly runId?: string
|
|
258
|
+
readonly signal?: AbortSignal
|
|
259
|
+
readonly onRequested?: (runId: string) => void | Promise<void>
|
|
220
260
|
} {
|
|
221
261
|
const actionId = input.actionId
|
|
222
262
|
const subject = input.subject
|
|
223
263
|
const params = input.params
|
|
224
264
|
const runId = input.runId
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
input: RequestActionAndWaitInput
|
|
237
|
-
): Promise<ActionRunRecord> {
|
|
238
|
-
const runId = createActionRunId(input.runId)
|
|
239
|
-
|
|
240
|
-
await requestAction(runtime, execution, {
|
|
241
|
-
...input,
|
|
242
|
-
runId,
|
|
243
|
-
})
|
|
244
|
-
await input.onRequested?.(runId)
|
|
245
|
-
|
|
246
|
-
return waitForActionRun(runtime, {
|
|
247
|
-
runId,
|
|
248
|
-
timeoutMs: input.timeoutMs,
|
|
249
|
-
signal: input.signal,
|
|
250
|
-
})
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export async function waitForActionRun(
|
|
254
|
-
runtime: SixbRuntimeContext,
|
|
255
|
-
input: WaitForActionRunInput
|
|
256
|
-
): Promise<ActionRunRecord> {
|
|
257
|
-
const projectId = runtime.projectId
|
|
258
|
-
const runtimeAuthorization = runtime.runtimeAuthorization
|
|
259
|
-
const request = {
|
|
260
|
-
runId: input.runId,
|
|
261
|
-
timeoutMs: input.timeoutMs,
|
|
262
|
-
signal: input.signal,
|
|
263
|
-
}
|
|
264
|
-
const authorization = resolveRuntimeAuthorizationForProject({
|
|
265
|
-
projectId,
|
|
266
|
-
runtimeAuthorization,
|
|
267
|
-
})
|
|
268
|
-
if (authorization.type === "denied") {
|
|
269
|
-
throw new AuthorizationError(
|
|
270
|
-
"runtime:unbound",
|
|
271
|
-
"[Sixb] Protected operations require registered runtime authorization for this project."
|
|
272
|
-
)
|
|
273
|
-
}
|
|
274
|
-
// Process-local delegation cannot poll durable runs without originating grant provenance.
|
|
275
|
-
if (authorization.type === "delegated") void getAuthorizationRef(runtimeAuthorization)
|
|
276
|
-
const actionRuns = requireActionRunStorage(runtime)
|
|
277
|
-
const timeoutMs = request.timeoutMs ?? DEFAULT_ACTION_WAIT_TIMEOUT_MS
|
|
278
|
-
const signal = request.signal
|
|
279
|
-
const startedAt = Date.now()
|
|
280
|
-
|
|
281
|
-
if (signal?.aborted) {
|
|
282
|
-
throw signal.reason ?? new Error("aborted")
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
return new Promise<ActionRunRecord>((resolve, reject) => {
|
|
286
|
-
let timer: ReturnType<typeof setTimeout> | undefined
|
|
287
|
-
let pollTimer: ReturnType<typeof setTimeout> | undefined
|
|
288
|
-
let unsubscribe: (() => void) | undefined
|
|
289
|
-
let settled = false
|
|
290
|
-
let checking = false
|
|
291
|
-
|
|
292
|
-
const releaseSubscription = (release: (() => void) | undefined) => {
|
|
293
|
-
if (!release) return
|
|
294
|
-
try {
|
|
295
|
-
release()
|
|
296
|
-
} catch (error) {
|
|
297
|
-
console.error("[Sixb] Failed to release action run wait subscription:", error)
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
const cleanup = () => {
|
|
302
|
-
if (settled) return
|
|
303
|
-
settled = true
|
|
304
|
-
clearTimer(timer)
|
|
305
|
-
clearTimer(pollTimer)
|
|
306
|
-
signal?.removeEventListener("abort", onAbort)
|
|
307
|
-
releaseSubscription(unsubscribe)
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
const rejectWith = (error: unknown) => {
|
|
311
|
-
cleanup()
|
|
312
|
-
reject(error)
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
const schedulePoll = () => {
|
|
316
|
-
if (!settled && !pollTimer) {
|
|
317
|
-
pollTimer = setTimeout(() => {
|
|
318
|
-
pollTimer = undefined
|
|
319
|
-
void check()
|
|
320
|
-
}, DEFAULT_ACTION_WAIT_POLL_MS)
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
const check = async () => {
|
|
325
|
-
if (settled || checking) {
|
|
326
|
-
return
|
|
327
|
-
}
|
|
328
|
-
checking = true
|
|
329
|
-
try {
|
|
330
|
-
const record = await actionRuns.getById({
|
|
331
|
-
projectId,
|
|
332
|
-
id: request.runId,
|
|
333
|
-
})
|
|
334
|
-
const visible =
|
|
335
|
-
record &&
|
|
336
|
-
(authorization.type === "unrestricted" ||
|
|
337
|
-
(authorization.type === "principal" &&
|
|
338
|
-
canViewActionRun(authorization.context, record)) ||
|
|
339
|
-
(authorization.type === "delegated" &&
|
|
340
|
-
(await canDelegationAccessActionRun({
|
|
341
|
-
storage: runtime.storage,
|
|
342
|
-
projectId,
|
|
343
|
-
authority: authorization,
|
|
344
|
-
run: record,
|
|
345
|
-
}))))
|
|
346
|
-
if (visible && isTerminalActionRun(record)) {
|
|
347
|
-
if (authorization.type === "delegated") {
|
|
348
|
-
assertObjectReadOutputWithinLimit(record, authorization.objectRead.limits)
|
|
349
|
-
}
|
|
350
|
-
cleanup()
|
|
351
|
-
resolve(record)
|
|
352
|
-
return
|
|
353
|
-
}
|
|
354
|
-
schedulePoll()
|
|
355
|
-
} catch (error) {
|
|
356
|
-
rejectWith(error)
|
|
357
|
-
} finally {
|
|
358
|
-
checking = false
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
const onAbort = () => {
|
|
363
|
-
rejectWith(signal?.reason ?? new Error("aborted"))
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
timer = setTimeout(
|
|
367
|
-
() => {
|
|
368
|
-
rejectWith(new ActionRunTimeoutError({ runId: request.runId, timeoutMs }))
|
|
369
|
-
},
|
|
370
|
-
Math.max(0, timeoutMs - (Date.now() - startedAt))
|
|
371
|
-
)
|
|
372
|
-
|
|
373
|
-
if (signal) {
|
|
374
|
-
signal.addEventListener("abort", onAbort, { once: true })
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
runtime.events
|
|
378
|
-
.subscribe({ types: ["action.completed", "action.failed"] }, (events) => {
|
|
379
|
-
if (
|
|
380
|
-
events.some(
|
|
381
|
-
(event) =>
|
|
382
|
-
(event.type === "action.completed" || event.type === "action.failed") &&
|
|
383
|
-
event.payload.runId === request.runId
|
|
384
|
-
)
|
|
385
|
-
) {
|
|
386
|
-
void check()
|
|
387
|
-
}
|
|
388
|
-
})
|
|
389
|
-
.then((unsubscribeEvents) => {
|
|
390
|
-
// Timeout or abort can settle the wait before the asynchronous subscription resolves.
|
|
391
|
-
// `cleanup()` had no handle to release in that case, so release the late handle here.
|
|
392
|
-
if (settled) {
|
|
393
|
-
releaseSubscription(unsubscribeEvents)
|
|
394
|
-
return
|
|
395
|
-
}
|
|
396
|
-
unsubscribe = unsubscribeEvents
|
|
397
|
-
void check()
|
|
398
|
-
})
|
|
399
|
-
.catch((error: unknown) => {
|
|
400
|
-
if (settled) {
|
|
401
|
-
console.error("[Sixb] Action run wait subscription failed after the wait settled:", error)
|
|
402
|
-
return
|
|
403
|
-
}
|
|
404
|
-
rejectWith(error)
|
|
405
|
-
})
|
|
406
|
-
})
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
function requireActionRunStorage(runtime: SixbRuntimeContext): ActionRunStorage {
|
|
410
|
-
const actionRuns = runtime.storage.actionRuns
|
|
411
|
-
if (!actionRuns) {
|
|
412
|
-
throw new ActionRunError("[Sixb] Action run storage is not configured.")
|
|
265
|
+
const signal = input.signal
|
|
266
|
+
const onRequested = input.onRequested
|
|
267
|
+
return {
|
|
268
|
+
...structuredClone({
|
|
269
|
+
actionId,
|
|
270
|
+
subject: subject ?? { kind: "none" },
|
|
271
|
+
params: params ?? {},
|
|
272
|
+
...(runId === undefined ? {} : { runId }),
|
|
273
|
+
}),
|
|
274
|
+
...(signal === undefined ? {} : { signal }),
|
|
275
|
+
...(onRequested === undefined ? {} : { onRequested }),
|
|
413
276
|
}
|
|
414
|
-
return actionRuns
|
|
415
277
|
}
|