@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
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
|
-
GRANT_KINDS,
|
|
4
|
-
grantKindOf,
|
|
5
3
|
canAccessApplication2,
|
|
6
4
|
resolveRoleGrants2,
|
|
7
5
|
resolveAuthorizationContext2
|
|
8
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-y7rqfrgg.js";
|
|
7
|
+
import {
|
|
8
|
+
assertValidFileRefs2
|
|
9
|
+
} from "./chunk-hvsb78a1.js";
|
|
10
|
+
import {
|
|
11
|
+
SecurityValidationError2,
|
|
12
|
+
resolveMembershipPolicyScope,
|
|
13
|
+
canPerformMembershipOperation,
|
|
14
|
+
missingMembershipGroupIds,
|
|
15
|
+
validateSecurityDefinitionsAtStartup
|
|
16
|
+
} from "./chunk-xt1zt7gv.js";
|
|
9
17
|
import {
|
|
10
18
|
AuthRuntimeError2,
|
|
11
19
|
DEFAULT_AUTH_SESSION_AUDIENCE2,
|
|
@@ -21,7 +29,7 @@ import {
|
|
|
21
29
|
import {
|
|
22
30
|
normalizeParams,
|
|
23
31
|
coerceParamsToTyped
|
|
24
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-c85m1hyj.js";
|
|
25
33
|
import {
|
|
26
34
|
snapshotLinkPathSelection
|
|
27
35
|
} from "./chunk-t6f3tdnr.js";
|
|
@@ -160,405 +168,6 @@ var applications2 = {
|
|
|
160
168
|
app: { kind: "application", id: "app", label: "Custom app" }
|
|
161
169
|
};
|
|
162
170
|
var APPLICATION_IDS = new Set(Object.values(applications2).map((application) => application.id));
|
|
163
|
-
// src/security/errors.ts
|
|
164
|
-
class SecurityValidationError2 extends Error {
|
|
165
|
-
name = "SecurityValidationError";
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// src/security/membership-policies.ts
|
|
169
|
-
var MEMBERSHIP_OPERATIONS = ["invite", "assignGroups", "suspend"];
|
|
170
|
-
function resolveMembershipPolicyScope(input) {
|
|
171
|
-
const callerGroups = new Set(input.callerGroupIds);
|
|
172
|
-
const policyIds = [];
|
|
173
|
-
const operations = createEmptyOperationScopes();
|
|
174
|
-
for (const policy of input.membershipPolicies) {
|
|
175
|
-
if (!policy.grantedToGroupIds.some((groupId) => callerGroups.has(groupId))) {
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
policyIds.push(policy.id);
|
|
179
|
-
for (const operation of policy.can) {
|
|
180
|
-
operations[operation].policyIds.push(policy.id);
|
|
181
|
-
for (const groupId of policy.scopeGroupIds) {
|
|
182
|
-
operations[operation].groupIds.add(groupId);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return {
|
|
187
|
-
policyIds,
|
|
188
|
-
operations: {
|
|
189
|
-
invite: freezeOperationScope(operations.invite),
|
|
190
|
-
assignGroups: freezeOperationScope(operations.assignGroups),
|
|
191
|
-
suspend: freezeOperationScope(operations.suspend)
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
function canPerformMembershipOperation(scope, operation, groupIds) {
|
|
196
|
-
const operationScope = scope.operations[operation];
|
|
197
|
-
if (operationScope.policyIds.length === 0) {
|
|
198
|
-
return false;
|
|
199
|
-
}
|
|
200
|
-
if (groupIds.length === 0) {
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
return groupIds.every((groupId) => operationScope.groupIds.has(groupId));
|
|
204
|
-
}
|
|
205
|
-
function missingMembershipGroupIds(scope, operation, groupIds) {
|
|
206
|
-
if (groupIds.length === 0) {
|
|
207
|
-
return [];
|
|
208
|
-
}
|
|
209
|
-
const operationScope = scope.operations[operation];
|
|
210
|
-
return groupIds.filter((groupId) => !operationScope.groupIds.has(groupId));
|
|
211
|
-
}
|
|
212
|
-
function createEmptyOperationScopes() {
|
|
213
|
-
return {
|
|
214
|
-
invite: { policyIds: [], groupIds: new Set },
|
|
215
|
-
assignGroups: { policyIds: [], groupIds: new Set },
|
|
216
|
-
suspend: { policyIds: [], groupIds: new Set }
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
function freezeOperationScope(input) {
|
|
220
|
-
return {
|
|
221
|
-
policyIds: [...input.policyIds],
|
|
222
|
-
groupIds: new Set(input.groupIds)
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
function isMembershipOperation(value) {
|
|
226
|
-
return MEMBERSHIP_OPERATIONS.includes(value);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// src/security/validation.ts
|
|
230
|
-
var GRANT_CAPABILITIES = Object.keys({
|
|
231
|
-
access: true,
|
|
232
|
-
view: true,
|
|
233
|
-
edit: true,
|
|
234
|
-
append: true,
|
|
235
|
-
apply: true,
|
|
236
|
-
share: true,
|
|
237
|
-
run: true,
|
|
238
|
-
observe: true,
|
|
239
|
-
manage: true
|
|
240
|
-
});
|
|
241
|
-
function formatAlternatives(values) {
|
|
242
|
-
const quoted = values.map((value) => `'${value}'`);
|
|
243
|
-
const last = quoted.at(-1);
|
|
244
|
-
return quoted.length < 2 ? last ?? "" : `${quoted.slice(0, -1).join(", ")}, or ${last}`;
|
|
245
|
-
}
|
|
246
|
-
function isRecord(value) {
|
|
247
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
248
|
-
}
|
|
249
|
-
function assertNonEmptyString(value, field, createError = (message) => new SecurityValidationError2(message)) {
|
|
250
|
-
if (typeof value !== "string" || value.trim().length === 0) {
|
|
251
|
-
throw createError(`[Sixb] ${field} must not be empty.`);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
function assertOptionalString(value, field, createError = (message) => new SecurityValidationError2(message)) {
|
|
255
|
-
if (value === undefined) {
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
if (typeof value !== "string") {
|
|
259
|
-
throw createError(`[Sixb] ${field} must be a string.`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
function assertStringArray(value, field, createError) {
|
|
263
|
-
if (!Array.isArray(value)) {
|
|
264
|
-
throw createError(`[Sixb] ${field} must be an array of group ids.`);
|
|
265
|
-
}
|
|
266
|
-
for (const item of value) {
|
|
267
|
-
assertNonEmptyString(item, `${field} item`, createError);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
function assertMembershipOperationArray(value, field, createError) {
|
|
271
|
-
if (!Array.isArray(value)) {
|
|
272
|
-
throw createError(`[Sixb] ${field} must be an array of membership operations.`);
|
|
273
|
-
}
|
|
274
|
-
for (const item of value) {
|
|
275
|
-
if (!isMembershipOperation(item)) {
|
|
276
|
-
throw createError(`[Sixb] ${field} must contain only membership operations: invite, assignGroups, suspend.`);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
function assertNoDuplicateIds(ids, field) {
|
|
281
|
-
const seen = new Set;
|
|
282
|
-
for (const id of ids) {
|
|
283
|
-
if (seen.has(id)) {
|
|
284
|
-
throw new SecurityValidationError2(`[Sixb] ${field} contains duplicate group id '${id}'.`);
|
|
285
|
-
}
|
|
286
|
-
seen.add(id);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
function assertNoDuplicateOperations(operations, field) {
|
|
290
|
-
const seen = new Set;
|
|
291
|
-
for (const operation of operations) {
|
|
292
|
-
if (seen.has(operation)) {
|
|
293
|
-
throw new SecurityValidationError2(`[Sixb] ${field} contains duplicate operation '${operation}'.`);
|
|
294
|
-
}
|
|
295
|
-
seen.add(operation);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
function assertGroupDefinition(value, createError = (message) => new SecurityValidationError2(message)) {
|
|
299
|
-
if (!isRecord(value)) {
|
|
300
|
-
throw createError("[Sixb] Group definition must be an object.");
|
|
301
|
-
}
|
|
302
|
-
if (value.kind !== "group") {
|
|
303
|
-
throw createError("[Sixb] Group definition kind must be 'group'.");
|
|
304
|
-
}
|
|
305
|
-
assertNonEmptyString(value.id, "Group id", createError);
|
|
306
|
-
assertOptionalString(value.label, `Group '${value.id}' label`, createError);
|
|
307
|
-
assertOptionalString(value.description, `Group '${value.id}' description`, createError);
|
|
308
|
-
}
|
|
309
|
-
function isGroupDefinition(value) {
|
|
310
|
-
try {
|
|
311
|
-
assertGroupDefinition(value, (message) => new Error(message));
|
|
312
|
-
return true;
|
|
313
|
-
} catch {
|
|
314
|
-
return false;
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
function assertMembershipPolicyDefinition(value, createError = (message) => new SecurityValidationError2(message)) {
|
|
318
|
-
if (!isRecord(value)) {
|
|
319
|
-
throw createError("[Sixb] Membership policy definition must be an object.");
|
|
320
|
-
}
|
|
321
|
-
if (value.kind !== "membershipPolicy") {
|
|
322
|
-
throw createError("[Sixb] Membership policy definition kind must be 'membershipPolicy'.");
|
|
323
|
-
}
|
|
324
|
-
assertNonEmptyString(value.id, "Membership policy id", createError);
|
|
325
|
-
assertStringArray(value.grantedToGroupIds, `Membership policy '${value.id}' grantedTo`, createError);
|
|
326
|
-
assertStringArray(value.scopeGroupIds, `Membership policy '${value.id}' scope`, createError);
|
|
327
|
-
assertMembershipOperationArray(value.can, `Membership policy '${value.id}' can`, createError);
|
|
328
|
-
}
|
|
329
|
-
function isMembershipPolicyDefinition(value) {
|
|
330
|
-
try {
|
|
331
|
-
assertMembershipPolicyDefinition(value, (message) => new Error(message));
|
|
332
|
-
return true;
|
|
333
|
-
} catch {
|
|
334
|
-
return false;
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
function assertGrantDefinition(value, field, createError = (message) => new SecurityValidationError2(message)) {
|
|
338
|
-
if (!isRecord(value) || value.kind !== "grant") {
|
|
339
|
-
throw createError(`[Sixb] ${field} must contain only grant definitions from 'can'.`);
|
|
340
|
-
}
|
|
341
|
-
if (!GRANT_CAPABILITIES.includes(value.capability)) {
|
|
342
|
-
throw createError(`[Sixb] ${field} grant capability must be ${formatAlternatives(GRANT_CAPABILITIES)}.`);
|
|
343
|
-
}
|
|
344
|
-
if (value.capability === "access" && value.target !== "application") {
|
|
345
|
-
throw createError(`[Sixb] ${field} access grant target must be 'application'.`);
|
|
346
|
-
}
|
|
347
|
-
if (value.capability === "view" && value.target !== "object" && value.target !== "dataset") {
|
|
348
|
-
throw createError(`[Sixb] ${field} view grant target must be 'object' or 'dataset'.`);
|
|
349
|
-
}
|
|
350
|
-
if (value.capability === "run" && value.target !== "workflow" && value.target !== "sync" && value.target !== "pipeline" && value.target !== "agent") {
|
|
351
|
-
throw createError(`[Sixb] ${field} run grant target must be 'workflow', 'sync', 'pipeline', or 'agent'.`);
|
|
352
|
-
}
|
|
353
|
-
if (value.capability === "observe" && value.target !== "logs" && value.target !== "aiUsage") {
|
|
354
|
-
throw createError(`[Sixb] ${field} observe grant target must be 'logs' or 'aiUsage'.`);
|
|
355
|
-
}
|
|
356
|
-
if (value.capability === "manage" && value.target !== "connector" && value.target !== "aiUsage") {
|
|
357
|
-
throw createError(`[Sixb] ${field} manage grant target must be 'connector' or 'aiUsage'.`);
|
|
358
|
-
}
|
|
359
|
-
if (value.capability === "run" && value.target === "agent") {
|
|
360
|
-
if (value.selection !== undefined) {
|
|
361
|
-
throw createError(`[Sixb] ${field} agent run grant must not declare a selection.`);
|
|
362
|
-
}
|
|
363
|
-
return;
|
|
364
|
-
}
|
|
365
|
-
assertSelection(value.selection, field, createError);
|
|
366
|
-
}
|
|
367
|
-
function assertSelection(value, field, createError) {
|
|
368
|
-
if (!isRecord(value) || typeof value.all !== "boolean") {
|
|
369
|
-
throw createError(`[Sixb] ${field} grant must carry a selection from 'can' or a scope.`);
|
|
370
|
-
}
|
|
371
|
-
const ids = value.all ? value.except : value.ids;
|
|
372
|
-
if (!Array.isArray(ids)) {
|
|
373
|
-
throw createError(`[Sixb] ${field} grant selection must list ids.`);
|
|
374
|
-
}
|
|
375
|
-
for (const id of ids) {
|
|
376
|
-
assertNonEmptyString(id, `${field} grant selection id`, createError);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
function assertRoleDefinition(value, createError = (message) => new SecurityValidationError2(message)) {
|
|
380
|
-
if (!isRecord(value)) {
|
|
381
|
-
throw createError("[Sixb] Role definition must be an object.");
|
|
382
|
-
}
|
|
383
|
-
if (value.kind !== "role") {
|
|
384
|
-
throw createError("[Sixb] Role definition kind must be 'role'.");
|
|
385
|
-
}
|
|
386
|
-
assertNonEmptyString(value.id, "Role id", createError);
|
|
387
|
-
assertOptionalString(value.label, `Role '${value.id}' label`, createError);
|
|
388
|
-
assertOptionalString(value.description, `Role '${value.id}' description`, createError);
|
|
389
|
-
assertStringArray(value.grantedToGroupIds, `Role '${value.id}' grantedTo`, createError);
|
|
390
|
-
if (!Array.isArray(value.grants)) {
|
|
391
|
-
throw createError(`[Sixb] Role '${value.id}' grants must be an array.`);
|
|
392
|
-
}
|
|
393
|
-
for (const grant of value.grants) {
|
|
394
|
-
assertGrantDefinition(grant, `Role '${value.id}' grants`, createError);
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
function isRoleDefinition(value) {
|
|
398
|
-
try {
|
|
399
|
-
assertRoleDefinition(value, (message) => new Error(message));
|
|
400
|
-
return true;
|
|
401
|
-
} catch {
|
|
402
|
-
return false;
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
function validateSecurityDefinitionsAtStartup(input) {
|
|
406
|
-
const groupsById = new Map;
|
|
407
|
-
const rolesById = new Map;
|
|
408
|
-
const membershipPoliciesById = new Map;
|
|
409
|
-
for (const group of input.groups) {
|
|
410
|
-
assertGroupDefinition(group);
|
|
411
|
-
if (groupsById.has(group.id)) {
|
|
412
|
-
throw new SecurityValidationError2(`[Sixb] Duplicate group id: ${group.id}`);
|
|
413
|
-
}
|
|
414
|
-
groupsById.set(group.id, group);
|
|
415
|
-
}
|
|
416
|
-
for (const role of input.roles ?? []) {
|
|
417
|
-
assertRoleDefinition(role);
|
|
418
|
-
if (rolesById.has(role.id)) {
|
|
419
|
-
throw new SecurityValidationError2(`[Sixb] Duplicate role id: ${role.id}`);
|
|
420
|
-
}
|
|
421
|
-
if (role.grantedToGroupIds.length === 0) {
|
|
422
|
-
throw new SecurityValidationError2(`[Sixb] Role '${role.id}' must be granted to at least one group.`);
|
|
423
|
-
}
|
|
424
|
-
if (role.grants.length === 0) {
|
|
425
|
-
throw new SecurityValidationError2(`[Sixb] Role '${role.id}' must declare at least one grant.`);
|
|
426
|
-
}
|
|
427
|
-
assertNoDuplicateIds(role.grantedToGroupIds, `Role '${role.id}' grantedTo`);
|
|
428
|
-
for (const groupId of role.grantedToGroupIds) {
|
|
429
|
-
if (!groupsById.has(groupId)) {
|
|
430
|
-
throw new SecurityValidationError2(`[Sixb] Role '${role.id}' grantedTo references unknown group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`);
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
for (const grant of role.grants) {
|
|
434
|
-
assertGrantReferences(role.id, grant, input);
|
|
435
|
-
}
|
|
436
|
-
rolesById.set(role.id, role);
|
|
437
|
-
}
|
|
438
|
-
for (const policy of input.membershipPolicies) {
|
|
439
|
-
assertMembershipPolicyDefinition(policy);
|
|
440
|
-
if (membershipPoliciesById.has(policy.id)) {
|
|
441
|
-
throw new SecurityValidationError2(`[Sixb] Duplicate membership policy id: ${policy.id}`);
|
|
442
|
-
}
|
|
443
|
-
if (policy.grantedToGroupIds.length === 0) {
|
|
444
|
-
throw new SecurityValidationError2(`[Sixb] Membership policy '${policy.id}' must grant membership authority to at least one group.`);
|
|
445
|
-
}
|
|
446
|
-
if (policy.can.length === 0) {
|
|
447
|
-
throw new SecurityValidationError2(`[Sixb] Membership policy '${policy.id}' must declare at least one operation.`);
|
|
448
|
-
}
|
|
449
|
-
assertNoDuplicateIds(policy.grantedToGroupIds, `Membership policy '${policy.id}' grantedTo`);
|
|
450
|
-
assertNoDuplicateIds(policy.scopeGroupIds, `Membership policy '${policy.id}' scope`);
|
|
451
|
-
assertNoDuplicateOperations(policy.can, `Membership policy '${policy.id}' can`);
|
|
452
|
-
for (const groupId of policy.grantedToGroupIds) {
|
|
453
|
-
if (!groupsById.has(groupId)) {
|
|
454
|
-
throw new SecurityValidationError2(`[Sixb] Membership policy '${policy.id}' grantedTo references unknown group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`);
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
for (const groupId of policy.scopeGroupIds) {
|
|
458
|
-
if (!groupsById.has(groupId)) {
|
|
459
|
-
throw new SecurityValidationError2(`[Sixb] Membership policy '${policy.id}' scope references unknown group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`);
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
membershipPoliciesById.set(policy.id, policy);
|
|
463
|
-
}
|
|
464
|
-
return {
|
|
465
|
-
groups: [...groupsById.values()],
|
|
466
|
-
groupsById,
|
|
467
|
-
roles: [...rolesById.values()],
|
|
468
|
-
rolesById,
|
|
469
|
-
membershipPolicies: [...membershipPoliciesById.values()],
|
|
470
|
-
membershipPoliciesById
|
|
471
|
-
};
|
|
472
|
-
}
|
|
473
|
-
function assertGrantReferences(roleId, grant, registered) {
|
|
474
|
-
if (grant.capability === "run" && grant.target === "agent") {
|
|
475
|
-
const spec = GRANT_KINDS[grantKindOf(grant)];
|
|
476
|
-
if (!registered.agentAvailable) {
|
|
477
|
-
throw new SecurityValidationError2(`[Sixb] Role '${roleId}' grants ${grant.capability} on the project Agent, but it is unavailable. ${spec.fix}`);
|
|
478
|
-
}
|
|
479
|
-
return;
|
|
480
|
-
}
|
|
481
|
-
const spec = GRANT_KINDS[grantKindOf(grant)];
|
|
482
|
-
const universe = registered[spec.universeKey];
|
|
483
|
-
if (!universe) {
|
|
484
|
-
return;
|
|
485
|
-
}
|
|
486
|
-
const ids = grant.selection.all ? grant.selection.except : grant.selection.ids;
|
|
487
|
-
for (const id of ids) {
|
|
488
|
-
if (!universe.has(id)) {
|
|
489
|
-
throw new SecurityValidationError2(`[Sixb] Role '${roleId}' grants ${grant.capability} on unknown ${spec.subject} '${id}'. ${spec.fix}`);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
// src/security/builders.ts
|
|
495
|
-
var MEMBERSHIP_OPERATIONS2 = new Set(["invite", "assignGroups", "suspend"]);
|
|
496
|
-
function assertNonEmptyArray(value, field) {
|
|
497
|
-
if (value.length === 0) {
|
|
498
|
-
throw new SecurityValidationError2(`[Sixb] ${field} must not be empty.`);
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
function groupIdsFrom(groups, field) {
|
|
502
|
-
return groups.map((group) => {
|
|
503
|
-
if (!isRecord(group) || group.kind !== "group") {
|
|
504
|
-
throw new SecurityValidationError2(`[Sixb] ${field} must contain only group definitions.`);
|
|
505
|
-
}
|
|
506
|
-
assertNonEmptyString(group.id, `${field} group id`);
|
|
507
|
-
return group.id;
|
|
508
|
-
});
|
|
509
|
-
}
|
|
510
|
-
function membershipOperationsFrom(operations, field) {
|
|
511
|
-
return operations.map((operation) => {
|
|
512
|
-
if (!MEMBERSHIP_OPERATIONS2.has(operation)) {
|
|
513
|
-
throw new SecurityValidationError2(`[Sixb] ${field} must contain only membership operations: invite, assignGroups, suspend.`);
|
|
514
|
-
}
|
|
515
|
-
return operation;
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
function defineGroup2(id, options = {}) {
|
|
519
|
-
assertNonEmptyString(id, "Group id");
|
|
520
|
-
assertOptionalString(options.label, `Group '${id}' label`);
|
|
521
|
-
assertOptionalString(options.description, `Group '${id}' description`);
|
|
522
|
-
return {
|
|
523
|
-
kind: "group",
|
|
524
|
-
id,
|
|
525
|
-
...options.label !== undefined ? { label: options.label } : {},
|
|
526
|
-
...options.description !== undefined ? { description: options.description } : {}
|
|
527
|
-
};
|
|
528
|
-
}
|
|
529
|
-
function defineRole2(id, options) {
|
|
530
|
-
assertNonEmptyString(id, "Role id");
|
|
531
|
-
assertOptionalString(options.label, `Role '${id}' label`);
|
|
532
|
-
assertOptionalString(options.description, `Role '${id}' description`);
|
|
533
|
-
assertNonEmptyArray(options.grantedTo, `Role '${id}' grantedTo`);
|
|
534
|
-
const grantedToGroupIds = groupIdsFrom(options.grantedTo, `Role '${id}' grantedTo`);
|
|
535
|
-
for (const grant of options.grants) {
|
|
536
|
-
assertGrantDefinition(grant, `Role '${id}' grants`);
|
|
537
|
-
}
|
|
538
|
-
if (options.grants.length === 0) {
|
|
539
|
-
throw new SecurityValidationError2(`[Sixb] Role '${id}' grants must not be empty.`);
|
|
540
|
-
}
|
|
541
|
-
return {
|
|
542
|
-
kind: "role",
|
|
543
|
-
id,
|
|
544
|
-
...options.label !== undefined ? { label: options.label } : {},
|
|
545
|
-
...options.description !== undefined ? { description: options.description } : {},
|
|
546
|
-
grantedToGroupIds,
|
|
547
|
-
grants: options.grants
|
|
548
|
-
};
|
|
549
|
-
}
|
|
550
|
-
function defineMembershipPolicy2(id, options) {
|
|
551
|
-
assertNonEmptyString(id, "Membership policy id");
|
|
552
|
-
assertNonEmptyArray(options.grantedTo, `Membership policy '${id}' grantedTo`);
|
|
553
|
-
assertNonEmptyArray(options.can, `Membership policy '${id}' can`);
|
|
554
|
-
return {
|
|
555
|
-
kind: "membershipPolicy",
|
|
556
|
-
id,
|
|
557
|
-
grantedToGroupIds: groupIdsFrom(options.grantedTo, `Membership policy '${id}' grantedTo`),
|
|
558
|
-
scopeGroupIds: groupIdsFrom(options.scope, `Membership policy '${id}' scope`),
|
|
559
|
-
can: membershipOperationsFrom(options.can, `Membership policy '${id}' can`)
|
|
560
|
-
};
|
|
561
|
-
}
|
|
562
171
|
// src/security/every.ts
|
|
563
172
|
var BREADTH_TARGETS = [
|
|
564
173
|
"object",
|
|
@@ -610,10 +219,6 @@ var every2 = {
|
|
|
610
219
|
class ActionDefinitionError2 extends Error {
|
|
611
220
|
name = "ActionDefinitionError";
|
|
612
221
|
}
|
|
613
|
-
|
|
614
|
-
class ActionEditCommitError2 extends Error {
|
|
615
|
-
name = "ActionEditCommitError";
|
|
616
|
-
}
|
|
617
222
|
function missingActionMutationMessage(actionId) {
|
|
618
223
|
return `Action "${actionId}" must declare .writeback(...) or .edits(...).`;
|
|
619
224
|
}
|
|
@@ -638,12 +243,14 @@ function isObjectActionDefinition2(value) {
|
|
|
638
243
|
return value.binding.kind === "object";
|
|
639
244
|
}
|
|
640
245
|
function normalizeActionParams(runtime, paramsConfig, params, pathPrefix) {
|
|
641
|
-
|
|
246
|
+
const normalized = normalizeParams(runtime.ontology.getValueTypesById(), paramsConfig, params, {
|
|
642
247
|
kind: "action",
|
|
643
248
|
id: pathPrefix
|
|
644
249
|
});
|
|
250
|
+
assertValidFileRefs2(normalized, pathPrefix);
|
|
251
|
+
return normalized;
|
|
645
252
|
}
|
|
646
|
-
function
|
|
253
|
+
function coerceActionParamsToTyped(paramsConfig, params, valueTypesById) {
|
|
647
254
|
return coerceParamsToTyped(paramsConfig, params, valueTypesById);
|
|
648
255
|
}
|
|
649
256
|
function validateActionSubject(action, subject) {
|
|
@@ -707,16 +314,16 @@ function defineShare2(id, options) {
|
|
|
707
314
|
});
|
|
708
315
|
}
|
|
709
316
|
function isShareDefinition(value) {
|
|
710
|
-
if (!
|
|
317
|
+
if (!isRecord(value) || value.kind !== "share" || !isNonEmpty(value.id))
|
|
711
318
|
return false;
|
|
712
|
-
if (!
|
|
319
|
+
if (!isRecord(value.target) || value.target.kind !== "object" || !isNonEmpty(value.target.objectTypeId)) {
|
|
713
320
|
return false;
|
|
714
321
|
}
|
|
715
322
|
return Array.isArray(value.grants);
|
|
716
323
|
}
|
|
717
324
|
function snapshotShareDefinition(value) {
|
|
718
325
|
try {
|
|
719
|
-
if (!
|
|
326
|
+
if (!isRecord(value)) {
|
|
720
327
|
throw invalid("Share definition kind must be 'share'.");
|
|
721
328
|
}
|
|
722
329
|
const kind = value.kind;
|
|
@@ -728,7 +335,7 @@ function snapshotShareDefinition(value) {
|
|
|
728
335
|
throw invalid("Share definition kind must be 'share'.");
|
|
729
336
|
}
|
|
730
337
|
const id = nonEmpty(authoredId, "Share id");
|
|
731
|
-
if (!
|
|
338
|
+
if (!isRecord(target)) {
|
|
732
339
|
throw invalid(`Share '${id}' target must be an object type.`);
|
|
733
340
|
}
|
|
734
341
|
const targetKind = target.kind;
|
|
@@ -816,7 +423,7 @@ function snapshotShareGrants(shareId, targetObjectTypeId, authored) {
|
|
|
816
423
|
let viewCount = 0;
|
|
817
424
|
for (let index = 0;index < authored.length; index += 1) {
|
|
818
425
|
const grant = authored[index];
|
|
819
|
-
if (!
|
|
426
|
+
if (!isRecord(grant)) {
|
|
820
427
|
throw invalid(`Share '${shareId}' grant ${index} must come from 'can'.`);
|
|
821
428
|
}
|
|
822
429
|
const kind = grant.kind;
|
|
@@ -862,7 +469,7 @@ function snapshotShareGrants(shareId, targetObjectTypeId, authored) {
|
|
|
862
469
|
return Object.freeze(grants);
|
|
863
470
|
}
|
|
864
471
|
function snapshotLinkMode(value) {
|
|
865
|
-
if (!
|
|
472
|
+
if (!isRecord(value))
|
|
866
473
|
throw invalid("Share link selection must be an object.");
|
|
867
474
|
const kind = value.kind;
|
|
868
475
|
const links = value.links;
|
|
@@ -939,9 +546,9 @@ function assertShareTarget(value) {
|
|
|
939
546
|
}
|
|
940
547
|
}
|
|
941
548
|
function isObjectType(value) {
|
|
942
|
-
return
|
|
549
|
+
return isRecord(value) && isNonEmpty(value.id) && Array.isArray(value.properties) && Array.isArray(value.links);
|
|
943
550
|
}
|
|
944
|
-
function
|
|
551
|
+
function isRecord(value) {
|
|
945
552
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
946
553
|
}
|
|
947
554
|
function isNonEmpty(value) {
|
|
@@ -1117,12 +724,14 @@ var can2 = {
|
|
|
1117
724
|
};
|
|
1118
725
|
// src/security/registry.ts
|
|
1119
726
|
class SecurityRegistry {
|
|
727
|
+
markingsById;
|
|
1120
728
|
groupsById;
|
|
1121
729
|
rolesById;
|
|
1122
730
|
membershipPoliciesById;
|
|
1123
731
|
resolvedRoles;
|
|
1124
732
|
constructor(input) {
|
|
1125
733
|
const definitions = validateSecurityDefinitionsAtStartup({
|
|
734
|
+
markings: input.markings ?? [],
|
|
1126
735
|
groups: input.groups ?? [],
|
|
1127
736
|
roles: input.roles ?? [],
|
|
1128
737
|
membershipPolicies: input.membershipPolicies ?? [],
|
|
@@ -1153,15 +762,23 @@ class SecurityRegistry {
|
|
|
1153
762
|
shareIds: input.shareIds ?? new Set,
|
|
1154
763
|
getSubTypes: input.getSubTypes ?? (() => [])
|
|
1155
764
|
};
|
|
765
|
+
this.markingsById = definitions.markingsById;
|
|
1156
766
|
this.groupsById = definitions.groupsById;
|
|
1157
767
|
this.rolesById = definitions.rolesById;
|
|
1158
768
|
this.membershipPoliciesById = definitions.membershipPoliciesById;
|
|
1159
769
|
this.resolvedRoles = definitions.roles.map((role) => ({
|
|
1160
770
|
id: role.id,
|
|
1161
771
|
grantedToGroupIds: role.grantedToGroupIds,
|
|
1162
|
-
grants: resolveRoleGrants2(role, universe)
|
|
772
|
+
grants: resolveRoleGrants2(role, universe),
|
|
773
|
+
clearances: new Set(role.clearances ?? [])
|
|
1163
774
|
}));
|
|
1164
775
|
}
|
|
776
|
+
listMarkings() {
|
|
777
|
+
return [...this.markingsById.values()];
|
|
778
|
+
}
|
|
779
|
+
getMarkingById(markingId) {
|
|
780
|
+
return this.markingsById.get(markingId) ?? null;
|
|
781
|
+
}
|
|
1165
782
|
listGroups() {
|
|
1166
783
|
return [...this.groupsById.values()];
|
|
1167
784
|
}
|
|
@@ -3093,6 +2710,7 @@ class AuthRuntime2 {
|
|
|
3093
2710
|
return { accessTokens: result.accessTokens };
|
|
3094
2711
|
}
|
|
3095
2712
|
async createPersonalAccessToken(caller, input) {
|
|
2713
|
+
assertSessionCaller(caller);
|
|
3096
2714
|
const storage = this.requireAuthStorage();
|
|
3097
2715
|
const groupIds = constrainRequestedGroupIds(input.groupIds, caller.groupIds, {
|
|
3098
2716
|
subject: "personal access token"
|
|
@@ -3197,6 +2815,7 @@ class AuthRuntime2 {
|
|
|
3197
2815
|
return { serviceAccount, accessTokens: result.accessTokens };
|
|
3198
2816
|
}
|
|
3199
2817
|
async createServiceAccountAccessToken(caller, input) {
|
|
2818
|
+
assertSessionCaller(caller);
|
|
3200
2819
|
const storage = this.requireAuthStorage();
|
|
3201
2820
|
const { serviceAccount, groupIds: serviceAccountGroupIds } = await this.requireManageableServiceAccount(storage, caller.groupIds, input.serviceAccountId);
|
|
3202
2821
|
if (serviceAccount.status === "suspended") {
|
|
@@ -3625,6 +3244,11 @@ function memberGroups(memberships) {
|
|
|
3625
3244
|
function callerSessionId(caller) {
|
|
3626
3245
|
return caller.credentialSource === "session" ? caller.session.id : undefined;
|
|
3627
3246
|
}
|
|
3247
|
+
function assertSessionCaller(caller) {
|
|
3248
|
+
if (caller.credentialSource !== "session") {
|
|
3249
|
+
throw new AuthRuntimeError2("authorization_denied", "[Sixb] Access tokens can only be created from a signed-in session, not with another access token.");
|
|
3250
|
+
}
|
|
3251
|
+
}
|
|
3628
3252
|
function constrainTokenGroupIds(principalGroupIds, accessToken) {
|
|
3629
3253
|
if (accessToken.groupIds === undefined) {
|
|
3630
3254
|
return principalGroupIds;
|
|
@@ -3699,6 +3323,6 @@ var SYSTEM_PRINCIPAL2 = { type: "system", id: "system" };
|
|
|
3699
3323
|
function principalsEqual2(left, right) {
|
|
3700
3324
|
return left.type === right.type && left.id === right.id;
|
|
3701
3325
|
}
|
|
3702
|
-
export { ActionDefinitionError2,
|
|
3326
|
+
export { ActionDefinitionError2, missingActionMutationMessage, effectsWithoutEditsMessage, assertNonEmpty2, isActionDefinition2, isGlobalActionDefinition2, isObjectActionDefinition2, normalizeActionParams, coerceActionParamsToTyped, validateActionSubject, resolveObjectActionSubject, PERSONAL_ACCESS_TOKEN_PREFIX2, SERVICE_ACCOUNT_ACCESS_TOKEN_PREFIX2, generateAccessTokenSecret2, hashAccessTokenSecret2, formatAccessTokenValue2, parseAccessTokenValue2, getBearerAccessTokenValue2, createAccessTokenCredential2, setRequestClientAddress2, getRequestClientAddress2, CSRF_HEADER_NAME2, generateCsrfToken2, isCsrfExemptMethod2, verifyDoubleSubmitCsrf2, verifyCsrfToken2, applications2, every2, ShareDefinitionError2, defineShare2, isShareDefinition, snapshotShareDefinition, can2, SecurityRegistry, AuthStorageError2, MAX_PENDING_DEVICE_AUTHORIZATIONS2, paginate, InMemoryAuthStorage2, generateSessionSecret2, hashSessionSecret2, formatSessionCookieValue2, parseSessionCookieValue2, createSessionCredential2, AuthRuntime2, SYSTEM_PRINCIPAL2, principalsEqual2 };
|
|
3703
3327
|
|
|
3704
|
-
//# debugId=
|
|
3328
|
+
//# debugId=910D62C713AA4DF964756E2164756E21
|