@sixb/core 0.1.7 → 0.1.8
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/dist/actions/delegated-admission.d.ts +24 -0
- package/dist/actions/delegated-admission.d.ts.map +1 -0
- package/dist/actions/descriptor.d.ts +29 -0
- package/dist/actions/descriptor.d.ts.map +1 -0
- package/dist/actions/execution.d.ts +5 -5
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.js +36 -30
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +20 -0
- package/dist/actions/run-authorization.d.ts.map +1 -0
- package/dist/actions/run-dispatch.d.ts +3 -1
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/worker.js +3 -3
- package/dist/actions/worker.js.map +1 -1
- package/dist/agents/adapters.d.ts +5 -122
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +1 -1
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context-resolution.d.ts.map +1 -1
- package/dist/agents/context.js +1 -1
- package/dist/agents/errors.d.ts +0 -9
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/identity.d.ts +3 -0
- package/dist/agents/identity.d.ts.map +1 -0
- package/dist/agents/index.d.ts +3 -3
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +43 -43
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +4 -5
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +2 -0
- package/dist/agents/model-loop.d.ts.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/tool-definition.d.ts +0 -1
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +0 -4
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/ai-usage/execution.d.ts.map +1 -1
- package/dist/auth/index.js +8 -5
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/decision.d.ts +10 -2
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +2 -1
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +7 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/bootstrap/discovery.d.ts +7 -1
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.js +46 -39
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/chunk-19jp6g9d.js +131 -0
- package/dist/chunk-19jp6g9d.js.map +11 -0
- package/dist/{chunk-x0qhkqje.js → chunk-2dw777qw.js} +50 -5
- package/dist/{chunk-x0qhkqje.js.map → chunk-2dw777qw.js.map} +4 -3
- package/dist/chunk-359jm1jw.js +147 -0
- package/dist/chunk-359jm1jw.js.map +10 -0
- package/dist/{chunk-2b5qtban.js → chunk-3xep5cjx.js} +56 -21
- package/dist/chunk-3xep5cjx.js.map +15 -0
- package/dist/{chunk-qjycjdj6.js → chunk-3z1qec12.js} +6 -8
- package/dist/{chunk-qjycjdj6.js.map → chunk-3z1qec12.js.map} +2 -2
- package/dist/{chunk-5jcdmjam.js → chunk-4jjp5k14.js} +1 -1
- package/dist/{chunk-n2arzn6e.js → chunk-4qfkag59.js} +44 -221
- package/dist/chunk-4qfkag59.js.map +20 -0
- package/dist/{chunk-rre42skh.js → chunk-4sm0aznx.js} +515 -80
- package/dist/{chunk-rre42skh.js.map → chunk-4sm0aznx.js.map} +11 -7
- package/dist/chunk-4yqmp43v.js +159 -0
- package/dist/chunk-4yqmp43v.js.map +11 -0
- package/dist/{chunk-atmkaf60.js → chunk-5e3pq99w.js} +2 -6
- package/dist/{chunk-atmkaf60.js.map → chunk-5e3pq99w.js.map} +3 -3
- package/dist/{chunk-agsvg9ar.js → chunk-5ntny1qx.js} +1 -1
- package/dist/{chunk-z2sery1b.js → chunk-9nbmsvn5.js} +60 -20
- package/dist/chunk-9nbmsvn5.js.map +11 -0
- package/dist/{chunk-e4rvtvpw.js → chunk-aa2pen2v.js} +250 -78
- package/dist/chunk-aa2pen2v.js.map +34 -0
- package/dist/{chunk-64sr682n.js → chunk-ajnan18g.js} +11 -8
- package/dist/chunk-ajnan18g.js.map +12 -0
- package/dist/{chunk-9aehf39w.js → chunk-f26bck4t.js} +4 -4
- package/dist/{chunk-7ds9620f.js → chunk-fvt9rjsa.js} +23 -7
- package/dist/chunk-fvt9rjsa.js.map +10 -0
- package/dist/{chunk-kt81c11h.js → chunk-gbejpkex.js} +5 -5
- package/dist/{chunk-kt81c11h.js.map → chunk-gbejpkex.js.map} +1 -1
- package/dist/{chunk-vjjv9mrb.js → chunk-gzasd5b6.js} +5 -5
- package/dist/{chunk-vjjv9mrb.js.map → chunk-gzasd5b6.js.map} +3 -3
- package/dist/{chunk-d63tybny.js → chunk-h0k55pc7.js} +4 -4
- package/dist/{chunk-d63tybny.js.map → chunk-h0k55pc7.js.map} +1 -1
- package/dist/chunk-h5vqbfmd.js +1537 -0
- package/dist/chunk-h5vqbfmd.js.map +19 -0
- package/dist/{chunk-3kv70xwp.js → chunk-j1sbhm7p.js} +18 -2
- package/dist/chunk-j1sbhm7p.js.map +10 -0
- package/dist/{chunk-hdz94br2.js → chunk-k522z7v6.js} +10 -5
- package/dist/chunk-k522z7v6.js.map +10 -0
- package/dist/{chunk-wjgm6jjt.js → chunk-mth82m8t.js} +128 -94
- package/dist/chunk-mth82m8t.js.map +14 -0
- package/dist/{chunk-qv38twt8.js → chunk-mwsxn98e.js} +46 -25
- package/dist/{chunk-qv38twt8.js.map → chunk-mwsxn98e.js.map} +6 -6
- package/dist/chunk-n4khvw9n.js +111 -0
- package/dist/chunk-n4khvw9n.js.map +11 -0
- package/dist/{chunk-qjzp9xyb.js → chunk-nn0tekr1.js} +6 -8
- package/dist/chunk-nn0tekr1.js.map +12 -0
- package/dist/chunk-nx7k8tpr.js +436 -0
- package/dist/chunk-nx7k8tpr.js.map +12 -0
- package/dist/{chunk-08twe8m6.js → chunk-p1rzczbt.js} +1 -1
- package/dist/{chunk-37wk412q.js → chunk-p1x242ad.js} +587 -70
- package/dist/chunk-p1x242ad.js.map +25 -0
- package/dist/{chunk-tn7xcs2n.js → chunk-pc7ys28c.js} +68 -5
- package/dist/chunk-pc7ys28c.js.map +14 -0
- package/dist/{chunk-3fqt22c4.js → chunk-q0k9nc5a.js} +280 -88
- package/dist/chunk-q0k9nc5a.js.map +14 -0
- package/dist/chunk-r8jrnexe.js +403 -0
- package/dist/chunk-r8jrnexe.js.map +10 -0
- package/dist/{chunk-gbrpsx4m.js → chunk-rafagrwr.js} +30 -2
- package/dist/chunk-rafagrwr.js.map +11 -0
- package/dist/{chunk-xdpwpkha.js → chunk-rv2hkwwa.js} +1 -1
- package/dist/{chunk-6ed5bwnd.js → chunk-sbzzr4kx.js} +1203 -691
- package/dist/{chunk-6ed5bwnd.js.map → chunk-sbzzr4kx.js.map} +15 -9
- package/dist/{chunk-d2ndstdf.js → chunk-v1xppd0y.js} +13 -11
- package/dist/{chunk-d2ndstdf.js.map → chunk-v1xppd0y.js.map} +2 -2
- package/dist/chunk-v4en4jc2.js +252 -0
- package/dist/chunk-v4en4jc2.js.map +10 -0
- package/dist/{chunk-1kamz6j0.js → chunk-w1tvjszy.js} +1 -1
- package/dist/{chunk-rp1mvzb4.js → chunk-w9tg6yyb.js} +11 -6
- package/dist/{chunk-rp1mvzb4.js.map → chunk-w9tg6yyb.js.map} +3 -3
- package/dist/{chunk-4nxeacx7.js → chunk-wdage1eb.js} +1 -1
- package/dist/{chunk-ha58tjtt.js → chunk-wtf06et8.js} +9 -5
- package/dist/{chunk-ha58tjtt.js.map → chunk-wtf06et8.js.map} +3 -3
- package/dist/{chunk-h0knpbz5.js → chunk-xajtptbw.js} +782 -211
- package/dist/chunk-xajtptbw.js.map +40 -0
- package/dist/{chunk-xc7hq65b.js → chunk-yp8ee62z.js} +49 -2
- package/dist/chunk-yp8ee62z.js.map +11 -0
- package/dist/chunk-z4ccwbkz.js +139 -0
- package/dist/chunk-z4ccwbkz.js.map +10 -0
- package/dist/datasets/builders.d.ts +11 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/changes.d.ts +14 -4
- package/dist/datasets/changes.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +15 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -0
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/sequence.d.ts +7 -0
- package/dist/datasets/sequence.d.ts.map +1 -0
- package/dist/datasets/types.d.ts +1 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +37 -0
- package/dist/datasets/write.d.ts.map +1 -0
- package/dist/datasets/write.js +17 -0
- package/dist/datasets/write.js.map +9 -0
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/types/datasets.d.ts +2 -6
- package/dist/events/types/datasets.d.ts.map +1 -1
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +39 -32
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts +58 -20
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +69 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -0
- package/dist/execution/durable.d.ts.map +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/primitive.js +39 -32
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.d.ts +11 -0
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +76 -40
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/scopes.d.ts +16 -0
- package/dist/execution/scopes.d.ts.map +1 -1
- package/dist/execution/types.d.ts +9 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/http/api-routes.d.ts +2 -0
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -78
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/definition-updates.d.ts.map +1 -1
- package/dist/lake-storage/errors.d.ts +5 -1
- package/dist/lake-storage/errors.d.ts.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +24 -7
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/merge-validation.d.ts.map +1 -1
- package/dist/lake-storage/merge.d.ts +13 -2
- package/dist/lake-storage/merge.d.ts.map +1 -1
- package/dist/lake-storage/source-ordering.d.ts +19 -0
- package/dist/lake-storage/source-ordering.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +2 -1
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +10 -5
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +4 -0
- package/dist/lake-storage/version-inputs.d.ts.map +1 -0
- package/dist/materializer/index.js +25 -22
- package/dist/materializer/index.js.map +1 -1
- package/dist/objects/authorized-ontology-view.d.ts +25 -0
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
- package/dist/objects/execution.d.ts +1 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +29 -26
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +2 -7
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/query/executor.d.ts +4 -2
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +24 -21
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/links.d.ts +22 -1
- package/dist/objects/query/links.d.ts.map +1 -1
- package/dist/objects/query/selected-read-admission.d.ts +27 -0
- package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts +60 -2
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/service/list-service.d.ts +2 -3
- package/dist/objects/service/list-service.d.ts.map +1 -1
- package/dist/objects/telemetry/history.d.ts +8 -6
- package/dist/objects/telemetry/history.d.ts.map +1 -1
- package/dist/objects/telemetry/index.d.ts +2 -2
- package/dist/objects/telemetry/index.d.ts.map +1 -1
- package/dist/objects/telemetry/workload.d.ts +11 -0
- package/dist/objects/telemetry/workload.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +2 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +13 -12
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +2 -1
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +0 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +5 -10
- package/dist/ontology/internal.js.map +3 -3
- package/dist/ontology/json-schema.d.ts +10 -6
- package/dist/ontology/json-schema.d.ts.map +1 -1
- package/dist/ontology/link-path-selection.d.ts +35 -0
- package/dist/ontology/link-path-selection.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +2 -0
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +2 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/pipelines/execution.d.ts.map +1 -1
- package/dist/pipelines/index.js +27 -24
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/request.d.ts.map +1 -1
- package/dist/projections/execution.d.ts.map +1 -1
- package/dist/projections/internal.js +25 -22
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/rules/execution.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +4 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +2 -0
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +2 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts +2 -0
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +4 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +3 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schedules/execution.d.ts +2 -1
- package/dist/schedules/execution.d.ts.map +1 -1
- package/dist/security/every.d.ts +4 -1
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +7 -2
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/registry.d.ts +1 -0
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +7 -1
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +2 -0
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/access-plan.d.ts +22 -0
- package/dist/shares/access-plan.d.ts.map +1 -0
- package/dist/shares/builders.d.ts +14 -0
- package/dist/shares/builders.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts +14 -0
- package/dist/shares/compiler.d.ts.map +1 -0
- package/dist/shares/errors.d.ts +4 -0
- package/dist/shares/errors.d.ts.map +1 -0
- package/dist/shares/execution.d.ts +57 -0
- package/dist/shares/execution.d.ts.map +1 -0
- package/dist/shares/index.d.ts +10 -0
- package/dist/shares/index.d.ts.map +1 -0
- package/dist/shares/internal.d.ts +3 -0
- package/dist/shares/internal.d.ts.map +1 -0
- package/dist/shares/internal.js +239 -0
- package/dist/shares/internal.js.map +10 -0
- package/dist/shares/intersection.d.ts +9 -0
- package/dist/shares/intersection.d.ts.map +1 -0
- package/dist/shares/session-protocol.d.ts +41 -0
- package/dist/shares/session-protocol.d.ts.map +1 -0
- package/dist/shares/types.d.ts +51 -0
- package/dist/shares/types.d.ts.map +1 -0
- package/dist/shares/validation.d.ts +11 -0
- package/dist/shares/validation.d.ts.map +1 -0
- package/dist/storage/action-runs/provider.js +2 -2
- package/dist/storage/agents/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +3 -0
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +4 -1
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +23 -3
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/run-link.d.ts +7 -0
- package/dist/storage/executions/run-link.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts +6 -0
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +8 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +65 -36
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +25 -0
- package/dist/storage/objects/execution-limits.d.ts.map +1 -0
- package/dist/storage/objects/guard.d.ts +16 -0
- package/dist/storage/objects/guard.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/index.d.ts +3 -0
- package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/keys.d.ts +10 -0
- package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/query.d.ts +31 -0
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
- package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
- package/dist/storage/objects/index.d.ts +4 -1
- package/dist/storage/objects/index.d.ts.map +1 -1
- package/dist/storage/objects/keys.d.ts +1 -1
- package/dist/storage/objects/keys.d.ts.map +1 -1
- package/dist/storage/objects/read-scope.d.ts +25 -0
- package/dist/storage/objects/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +114 -22
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/operation-scope.d.ts +3 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +4 -2
- package/dist/storage/operation-scope.js.map +1 -1
- package/dist/storage/pipeline-runs/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/share-grants/errors.d.ts +8 -0
- package/dist/storage/share-grants/errors.d.ts.map +1 -0
- package/dist/storage/share-grants/in-memory.d.ts +11 -0
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/share-grants/index.d.ts +5 -0
- package/dist/storage/share-grants/index.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.d.ts +4 -0
- package/dist/storage/share-grants/provider.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.js +24 -0
- package/dist/storage/share-grants/provider.js.map +9 -0
- package/dist/storage/share-grants/record.d.ts +11 -0
- package/dist/storage/share-grants/record.d.ts.map +1 -0
- package/dist/storage/share-grants/types.d.ts +97 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -0
- package/dist/storage/share-sessions/errors.d.ts +8 -0
- package/dist/storage/share-sessions/errors.d.ts.map +1 -0
- package/dist/storage/share-sessions/in-memory.d.ts +14 -0
- package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
- package/dist/storage/share-sessions/index.d.ts +5 -0
- package/dist/storage/share-sessions/index.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.d.ts +3 -0
- package/dist/storage/share-sessions/provider.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.js +20 -0
- package/dist/storage/share-sessions/provider.js.map +9 -0
- package/dist/storage/share-sessions/record.d.ts +8 -0
- package/dist/storage/share-sessions/record.d.ts.map +1 -0
- package/dist/storage/share-sessions/types.d.ts +50 -0
- package/dist/storage/share-sessions/types.d.ts.map +1 -0
- package/dist/storage/sync-runs/provider.js +2 -2
- package/dist/storage/transaction.d.ts +2 -1
- package/dist/storage/transaction.d.ts.map +1 -1
- package/dist/storage/types.d.ts +8 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/webhook-runs/provider.js +2 -2
- package/dist/storage/workflow-runs/provider.js +10 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/execution.d.ts.map +1 -1
- package/dist/syncs/index.js +27 -24
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/request.d.ts.map +1 -1
- package/dist/testing/dataset-sequence-contract.d.ts +4 -0
- package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
- package/dist/testing/effective-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts +4 -0
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2555 -908
- package/dist/testing/index.js.map +11 -7
- package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts +22 -0
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
- package/dist/testing/share-grant-storage-contract.d.ts +10 -0
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/share-session-storage-contract.d.ts +9 -0
- package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +24 -21
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workflows/execution.d.ts.map +1 -1
- package/dist/workflows/index.js +42 -35
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/package.json +25 -1
- package/src/actions/delegated-admission.ts +72 -0
- package/src/actions/descriptor.ts +58 -0
- package/src/actions/execution.ts +99 -24
- package/src/actions/request.ts +136 -19
- package/src/actions/run-authorization.ts +53 -0
- package/src/actions/run-dispatch.ts +8 -1
- package/src/agents/adapters.ts +30 -420
- package/src/agents/authority.ts +3 -4
- package/src/agents/context-resolution.ts +1 -4
- package/src/agents/errors.ts +0 -10
- package/src/agents/execution.ts +13 -5
- package/src/agents/identity.ts +4 -0
- package/src/agents/index.ts +1 -20
- package/src/agents/message.ts +4 -5
- package/src/agents/model-loop.ts +54 -6
- package/src/agents/request.ts +16 -3
- package/src/agents/tool-definition.ts +0 -19
- package/src/agents/validation.ts +6 -65
- package/src/ai-usage/execution.ts +4 -11
- package/src/authorization/decision.ts +29 -14
- package/src/authorization/grant-kinds.ts +10 -0
- package/src/authorization/index.ts +1 -0
- package/src/bootstrap/discovery.ts +3 -0
- package/src/bootstrap/ontology-type-manifest.ts +12 -6
- package/src/datasets/builders.ts +23 -2
- package/src/datasets/changes.ts +16 -4
- package/src/datasets/execution.ts +76 -5
- package/src/datasets/index.ts +1 -0
- package/src/datasets/sequence.ts +77 -0
- package/src/datasets/types.ts +1 -0
- package/src/datasets/validation.ts +26 -0
- package/src/datasets/write.ts +240 -0
- package/src/events/execution.ts +57 -7
- package/src/events/types/datasets.ts +2 -6
- package/src/execution/agent.ts +1 -4
- package/src/execution/authorization.ts +470 -90
- package/src/execution/authorized-object-reader.ts +695 -0
- package/src/execution/durable.ts +10 -2
- package/src/execution/index.ts +1 -0
- package/src/execution/request.ts +63 -13
- package/src/execution/scopes.ts +36 -6
- package/src/execution/types.ts +8 -0
- package/src/http/api-routes.ts +45 -0
- package/src/index.ts +36 -15
- package/src/lake-storage/definition-updates.ts +9 -0
- package/src/lake-storage/errors.ts +6 -1
- package/src/lake-storage/in-memory.ts +53 -17
- package/src/lake-storage/index.ts +10 -1
- package/src/lake-storage/merge-validation.ts +12 -2
- package/src/lake-storage/merge.ts +40 -2
- package/src/lake-storage/source-ordering.ts +95 -0
- package/src/lake-storage/sql-transforms.ts +2 -1
- package/src/lake-storage/types.ts +10 -5
- package/src/lake-storage/version-inputs.ts +14 -0
- package/src/objects/authorized-ontology-view.ts +512 -0
- package/src/objects/execution.ts +98 -143
- package/src/objects/link/authorization.ts +3 -2
- package/src/objects/query/executor.ts +45 -34
- package/src/objects/query/links.ts +84 -25
- package/src/objects/query/selected-read-admission.ts +310 -0
- package/src/objects/query/validate.ts +353 -36
- package/src/objects/sdk/object-handle.ts +2 -8
- package/src/objects/sdk/object-set.ts +10 -11
- package/src/objects/sdk/runtime-query-executor.ts +8 -28
- package/src/objects/sdk/telemetry-channel.ts +11 -7
- package/src/objects/service/list-service.ts +15 -29
- package/src/objects/telemetry/history.ts +297 -17
- package/src/objects/telemetry/index.ts +2 -2
- package/src/objects/telemetry/workload.ts +79 -0
- package/src/ontology/index.ts +7 -1
- package/src/ontology/inference/index.ts +4 -1
- package/src/ontology/internal.ts +0 -1
- package/src/ontology/json-schema.ts +13 -12
- package/src/ontology/link-path-selection.ts +193 -0
- package/src/ontology/refs.ts +19 -0
- package/src/ontology/tokens.ts +15 -8
- package/src/pipelines/execution.ts +30 -7
- package/src/pipelines/request.ts +5 -0
- package/src/projections/execution.ts +72 -11
- package/src/projections/run-dispatch.ts +6 -12
- package/src/rules/execution.ts +20 -8
- package/src/runtime/create.ts +5 -1
- package/src/runtime/definitions.ts +2 -0
- package/src/runtime/host.ts +25 -6
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/resolve-definitions.ts +9 -0
- package/src/runtime/sixb.ts +23 -2
- package/src/runtime/types.ts +3 -0
- package/src/schedules/execution.ts +24 -2
- package/src/security/every.ts +4 -0
- package/src/security/grants.ts +45 -3
- package/src/security/index.ts +1 -0
- package/src/security/registry.ts +3 -0
- package/src/security/types.ts +8 -0
- package/src/security/validation.ts +3 -0
- package/src/shares/access-plan.ts +225 -0
- package/src/shares/builders.ts +381 -0
- package/src/shares/compiler.ts +359 -0
- package/src/shares/errors.ts +3 -0
- package/src/shares/execution.ts +394 -0
- package/src/shares/index.ts +28 -0
- package/src/shares/internal.ts +9 -0
- package/src/shares/intersection.ts +178 -0
- package/src/shares/session-protocol.ts +258 -0
- package/src/shares/types.ts +76 -0
- package/src/shares/validation.ts +40 -0
- package/src/storage/executions/in-memory.ts +9 -1
- package/src/storage/executions/provider.ts +30 -1
- package/src/storage/executions/run-link.ts +29 -0
- package/src/storage/executions/validation.ts +46 -1
- package/src/storage/in-memory/index.ts +21 -2
- package/src/storage/index.ts +51 -0
- package/src/storage/objects/execution-limits.ts +283 -0
- package/src/storage/objects/guard.ts +55 -0
- package/src/storage/objects/in-memory/index.ts +2 -0
- package/src/storage/objects/in-memory/keys.ts +46 -0
- package/src/storage/objects/in-memory/query.ts +754 -0
- package/src/storage/objects/in-memory/read-scope.ts +211 -0
- package/src/storage/objects/in-memory/read-source.ts +10 -0
- package/src/storage/objects/in-memory/selected-reader.ts +252 -0
- package/src/storage/objects/in-memory/storage.ts +589 -0
- package/src/storage/objects/index.ts +21 -0
- package/src/storage/objects/keys.ts +1 -1
- package/src/storage/objects/read-scope.ts +672 -0
- package/src/storage/objects/types.ts +123 -19
- package/src/storage/operation-scope.ts +16 -0
- package/src/storage/share-grants/errors.ts +14 -0
- package/src/storage/share-grants/in-memory.ts +107 -0
- package/src/storage/share-grants/index.ts +14 -0
- package/src/storage/share-grants/provider.ts +11 -0
- package/src/storage/share-grants/record.ts +347 -0
- package/src/storage/share-grants/types.ts +112 -0
- package/src/storage/share-sessions/errors.ts +14 -0
- package/src/storage/share-sessions/in-memory.ts +105 -0
- package/src/storage/share-sessions/index.ts +11 -0
- package/src/storage/share-sessions/provider.ts +9 -0
- package/src/storage/share-sessions/record.ts +176 -0
- package/src/storage/share-sessions/types.ts +57 -0
- package/src/storage/transaction.ts +14 -2
- package/src/storage/types.ts +27 -0
- package/src/syncs/execution.ts +25 -5
- package/src/syncs/request.ts +5 -0
- package/src/testing/dataset-sequence-contract.ts +373 -0
- package/src/testing/effective-storage-contract.ts +34 -0
- package/src/testing/execution-storage-contract.ts +79 -0
- package/src/testing/index.ts +16 -0
- package/src/testing/lake-merge-storage-contract.ts +3 -0
- package/src/testing/lake-storage-contract.ts +58 -0
- package/src/testing/object-read-scope-contract.ts +939 -0
- package/src/testing/share-grant-storage-contract.ts +325 -0
- package/src/testing/share-session-storage-contract.ts +235 -0
- package/src/workflows/execution.ts +53 -14
- package/src/workflows/request.ts +5 -0
- package/dist/chunk-2b5qtban.js.map +0 -14
- package/dist/chunk-37wk412q.js.map +0 -23
- package/dist/chunk-3fqt22c4.js.map +0 -14
- package/dist/chunk-3kv70xwp.js.map +0 -10
- package/dist/chunk-64sr682n.js.map +0 -12
- package/dist/chunk-7ds9620f.js.map +0 -10
- package/dist/chunk-dqn23610.js +0 -72
- package/dist/chunk-dqn23610.js.map +0 -11
- package/dist/chunk-e4rvtvpw.js.map +0 -34
- package/dist/chunk-gbrpsx4m.js.map +0 -11
- package/dist/chunk-h0knpbz5.js.map +0 -38
- package/dist/chunk-hdz94br2.js.map +0 -10
- package/dist/chunk-n2arzn6e.js.map +0 -20
- package/dist/chunk-qjzp9xyb.js.map +0 -12
- package/dist/chunk-tn7xcs2n.js.map +0 -13
- package/dist/chunk-wjgm6jjt.js.map +0 -13
- package/dist/chunk-xc7hq65b.js.map +0 -10
- package/dist/chunk-y35ma3mj.js +0 -551
- package/dist/chunk-y35ma3mj.js.map +0 -15
- package/dist/chunk-z2sery1b.js.map +0 -11
- package/dist/storage/objects/in-memory.d.ts.map +0 -1
- package/src/storage/objects/in-memory.ts +0 -1241
- /package/dist/{chunk-5jcdmjam.js.map → chunk-4jjp5k14.js.map} +0 -0
- /package/dist/{chunk-agsvg9ar.js.map → chunk-5ntny1qx.js.map} +0 -0
- /package/dist/{chunk-9aehf39w.js.map → chunk-f26bck4t.js.map} +0 -0
- /package/dist/{chunk-08twe8m6.js.map → chunk-p1rzczbt.js.map} +0 -0
- /package/dist/{chunk-xdpwpkha.js.map → chunk-rv2hkwwa.js.map} +0 -0
- /package/dist/{chunk-1kamz6j0.js.map → chunk-w1tvjszy.js.map} +0 -0
- /package/dist/{chunk-4nxeacx7.js.map → chunk-wdage1eb.js.map} +0 -0
package/src/agents/execution.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { principalsEqual, SYSTEM_PRINCIPAL } from "../auth"
|
|
2
|
-
import { assertAuthorized,
|
|
2
|
+
import { assertAuthorized, isRuntimeAllowed } from "../authorization"
|
|
3
3
|
import type { AuthorizablePrincipal, ExecutionContext } from "../execution"
|
|
4
|
+
import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
|
|
4
5
|
import type { ModelCatalog } from "../models"
|
|
5
6
|
import { resolveExecutionCosts } from "../runtime/ai-cost"
|
|
6
7
|
import { resolveExecutionUsage } from "../runtime/ai-usage"
|
|
@@ -82,22 +83,25 @@ export function createAgentRuntime(
|
|
|
82
83
|
execution: ExecutionContext,
|
|
83
84
|
models?: ModelCatalog
|
|
84
85
|
): AgentRuntime {
|
|
85
|
-
const
|
|
86
|
-
const
|
|
86
|
+
const authority = resolveRuntimeAuthorizationForProject(runtime)
|
|
87
|
+
const principal = authority.type === "principal" ? authority.context.principal : SYSTEM_PRINCIPAL
|
|
88
|
+
const allowed = () => isRuntimeAllowed(runtime, { kind: "agent.run" })
|
|
87
89
|
|
|
88
90
|
const getVisibleThreadRecord = async (threadId: string): Promise<AgentThreadRecord | null> => {
|
|
91
|
+
if (authority.type === "denied" || authority.type === "delegated") return null
|
|
89
92
|
const thread =
|
|
90
93
|
(await runtime.storage.agents?.threads.getById({
|
|
91
94
|
projectId: runtime.projectId,
|
|
92
95
|
id: threadId,
|
|
93
96
|
})) ?? null
|
|
94
97
|
if (!thread || !allowed()) return null
|
|
95
|
-
return
|
|
98
|
+
return authority.type === "principal" && !principalsEqual(principal, thread.ownerPrincipal)
|
|
96
99
|
? null
|
|
97
100
|
: thread
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
const getAgent = (): AgentDescriptor | null => {
|
|
104
|
+
if (authority.type === "denied" || authority.type === "delegated") return null
|
|
101
105
|
const model = models?.language.default
|
|
102
106
|
if (!model || !allowed()) return null
|
|
103
107
|
return {
|
|
@@ -107,6 +111,7 @@ export function createAgentRuntime(
|
|
|
107
111
|
}
|
|
108
112
|
|
|
109
113
|
const getVisibleRunRecord = async (runId: string): Promise<ConversationAgentRunRecord | null> => {
|
|
114
|
+
if (authority.type === "denied" || authority.type === "delegated") return null
|
|
110
115
|
const run =
|
|
111
116
|
(await runtime.storage.agents?.runs.getById({
|
|
112
117
|
projectId: runtime.projectId,
|
|
@@ -148,12 +153,15 @@ export function createAgentRuntime(
|
|
|
148
153
|
getById: getVisibleThreadRecord,
|
|
149
154
|
list: async (input = {}) => {
|
|
150
155
|
assertNoAgentSelector(input)
|
|
156
|
+
if (authority.type === "denied" || authority.type === "delegated") {
|
|
157
|
+
return { threads: [], hasMore: false, total: 0 }
|
|
158
|
+
}
|
|
151
159
|
const storage = runtime.storage.agents
|
|
152
160
|
if (!storage || !allowed()) return { threads: [], hasMore: false, total: 0 }
|
|
153
161
|
return storage.threads.list({
|
|
154
162
|
...input,
|
|
155
163
|
projectId: runtime.projectId,
|
|
156
|
-
ownerPrincipal:
|
|
164
|
+
ownerPrincipal: authority.type === "principal" ? principal : undefined,
|
|
157
165
|
})
|
|
158
166
|
},
|
|
159
167
|
},
|
package/src/agents/index.ts
CHANGED
|
@@ -1,28 +1,10 @@
|
|
|
1
1
|
export type {
|
|
2
2
|
AgentFileDataProjection,
|
|
3
3
|
AgentFileDataResolverInput,
|
|
4
|
-
AgentInboundUiMessage,
|
|
5
|
-
AgentInboundUiMessagePart,
|
|
6
|
-
AgentModelAssistantPart,
|
|
7
|
-
AgentModelFilePart,
|
|
8
|
-
AgentModelMessage,
|
|
9
|
-
AgentModelReasoningPart,
|
|
10
|
-
AgentModelTextPart,
|
|
11
|
-
AgentModelToolCallPart,
|
|
12
|
-
AgentModelToolOutput,
|
|
13
|
-
AgentModelToolResultPart,
|
|
14
4
|
AgentToolResultFileResolverInput,
|
|
15
|
-
AgentUiMessage,
|
|
16
|
-
AgentUiMessagePart,
|
|
17
|
-
AgentUiToolPart,
|
|
18
5
|
ToModelMessagesOptions,
|
|
19
6
|
} from "./adapters"
|
|
20
|
-
export {
|
|
21
|
-
fromUiMessage,
|
|
22
|
-
omitUndefinedObjectProperties,
|
|
23
|
-
toModelMessages,
|
|
24
|
-
toUiMessage,
|
|
25
|
-
} from "./adapters"
|
|
7
|
+
export { toModelMessages } from "./adapters"
|
|
26
8
|
export type { AgentApiGatewayCapabilityInput, AgentApiRoute } from "./api-gateway"
|
|
27
9
|
export {
|
|
28
10
|
AGENT_API_GATEWAY_PREFIX,
|
|
@@ -85,7 +67,6 @@ export {
|
|
|
85
67
|
} from "./dispatch"
|
|
86
68
|
export {
|
|
87
69
|
AgentDefinitionError,
|
|
88
|
-
AgentMessageAdapterError,
|
|
89
70
|
AgentRequestError,
|
|
90
71
|
type AgentRequestErrorCode,
|
|
91
72
|
AgentToolPublicError,
|
package/src/agents/message.ts
CHANGED
|
@@ -10,9 +10,8 @@ import type { AgentContextPart } from "./context"
|
|
|
10
10
|
* column) versions the parts shape so it can be migrated.
|
|
11
11
|
*
|
|
12
12
|
* The part union is intentionally focused on what agent runs actually produce (text, reasoning, step
|
|
13
|
-
* boundaries, tool calls).
|
|
14
|
-
*
|
|
15
|
-
* which both prevents data loss and signals exactly when the union must grow.
|
|
13
|
+
* boundaries, tool calls). The model loop validates and normalizes output before its steps are
|
|
14
|
+
* projected into this union; storage validates the durable write contract independently.
|
|
16
15
|
*/
|
|
17
16
|
export const AGENT_MESSAGE_CONTENT_VERSION = 2 as const
|
|
18
17
|
|
|
@@ -53,7 +52,7 @@ interface AgentToolCallBase {
|
|
|
53
52
|
readonly type: "tool-call"
|
|
54
53
|
readonly toolCallId: string
|
|
55
54
|
readonly toolName: string
|
|
56
|
-
/** `true` when
|
|
55
|
+
/** `true` when the model identifies the call as a dynamic tool. */
|
|
57
56
|
readonly dynamic?: boolean
|
|
58
57
|
/** `true` when the provider executed the tool inline (steers model projection). */
|
|
59
58
|
readonly providerExecuted?: boolean
|
|
@@ -95,6 +94,6 @@ export type AgentToolCallState = AgentToolCallPart["state"]
|
|
|
95
94
|
export interface AgentMessage {
|
|
96
95
|
readonly role: AgentMessageRole
|
|
97
96
|
readonly parts: readonly AgentMessagePart[]
|
|
98
|
-
/**
|
|
97
|
+
/** Optional JSON metadata associated with the message. */
|
|
99
98
|
readonly metadata?: JsonValue
|
|
100
99
|
}
|
package/src/agents/model-loop.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto"
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
assertJsonObject,
|
|
4
|
+
assertJsonValue,
|
|
5
|
+
isJsonValue,
|
|
6
|
+
isPlainRecord,
|
|
7
|
+
type JsonValue,
|
|
8
|
+
} from "../json"
|
|
3
9
|
import { ModelProviderError, ModelStreamError, StructuredOutputError } from "../models/errors"
|
|
4
10
|
import type {
|
|
5
11
|
LanguageModelStreamEvent,
|
|
@@ -110,6 +116,8 @@ interface ParsedToolCall {
|
|
|
110
116
|
*
|
|
111
117
|
* One step is exactly one provider call. Lifecycle and stream callbacks are awaited so the caller
|
|
112
118
|
* controls backpressure and can fail closed before another billable call starts.
|
|
119
|
+
* Completed steps and partial content contain validated JSON payloads and normalized provider
|
|
120
|
+
* metadata. Trace adapters may project these results directly; storage owns write validation.
|
|
113
121
|
*/
|
|
114
122
|
export function runModelLoop<TOutput = string>(
|
|
115
123
|
input: RunModelLoopInput<TOutput>
|
|
@@ -523,6 +531,11 @@ function validateModelToolOutput(output: ModelToolOutput, toolName: string): voi
|
|
|
523
531
|
}
|
|
524
532
|
return
|
|
525
533
|
}
|
|
534
|
+
if (output.type !== "json" && output.type !== "error-json") {
|
|
535
|
+
throw new TypeError(
|
|
536
|
+
`[SixbModels] Tool '${toolName}' returned an unsupported model output type.`
|
|
537
|
+
)
|
|
538
|
+
}
|
|
526
539
|
assertJsonValue(output.value, `tool '${toolName}' model output`)
|
|
527
540
|
}
|
|
528
541
|
|
|
@@ -537,6 +550,9 @@ function modelToolOutput(value: JsonValue): ModelToolOutput {
|
|
|
537
550
|
}
|
|
538
551
|
|
|
539
552
|
function toolErrorResult(part: ModelToolCallPart, errorText: string): ModelToolResultPart {
|
|
553
|
+
if (typeof errorText !== "string") {
|
|
554
|
+
throw new TypeError(`[SixbModels] Tool '${part.toolName}' error text must be a string.`)
|
|
555
|
+
}
|
|
540
556
|
return {
|
|
541
557
|
type: "tool-result",
|
|
542
558
|
toolCallId: part.toolCallId,
|
|
@@ -645,6 +661,12 @@ class StreamAccumulator {
|
|
|
645
661
|
this.addProviderToolResult(event)
|
|
646
662
|
return
|
|
647
663
|
case "provider-state":
|
|
664
|
+
if (typeof event.providerId !== "string" || event.providerId.length === 0) {
|
|
665
|
+
this.captureProjectionError(
|
|
666
|
+
new ModelStreamError("[SixbModels] Provider state requires a nonempty provider ID.")
|
|
667
|
+
)
|
|
668
|
+
return
|
|
669
|
+
}
|
|
648
670
|
if (this.captureProviderState(event.data)) {
|
|
649
671
|
this.parts.push({
|
|
650
672
|
type: "provider-state",
|
|
@@ -836,7 +858,12 @@ class StreamAccumulator {
|
|
|
836
858
|
event: Extract<LanguageModelStreamEvent, { type: "tool-input-start" }>
|
|
837
859
|
): Promise<void> {
|
|
838
860
|
this.requireStarted(event.type)
|
|
839
|
-
if (
|
|
861
|
+
if (
|
|
862
|
+
typeof event.id !== "string" ||
|
|
863
|
+
!event.id ||
|
|
864
|
+
typeof event.toolName !== "string" ||
|
|
865
|
+
!event.toolName
|
|
866
|
+
) {
|
|
840
867
|
throw new ModelStreamError("[SixbModels] Tool calls require nonempty IDs and names.")
|
|
841
868
|
}
|
|
842
869
|
if (this.toolCalls.has(event.id)) {
|
|
@@ -932,8 +959,7 @@ class StreamAccumulator {
|
|
|
932
959
|
private captureProviderData(data: ProviderData | undefined): ProviderData | undefined {
|
|
933
960
|
if (data === undefined) return undefined
|
|
934
961
|
try {
|
|
935
|
-
|
|
936
|
-
return data
|
|
962
|
+
return normalizeProviderData(data)
|
|
937
963
|
} catch (error) {
|
|
938
964
|
this.captureProjectionError(error)
|
|
939
965
|
return undefined
|
|
@@ -993,8 +1019,8 @@ function validateUsage(usage: ModelUsage): void {
|
|
|
993
1019
|
}
|
|
994
1020
|
}
|
|
995
1021
|
|
|
996
|
-
function
|
|
997
|
-
|
|
1022
|
+
function normalizeProviderData(value: ProviderData): ProviderData {
|
|
1023
|
+
const data = omitUndefinedObjectProperties(value)
|
|
998
1024
|
assertJsonValue(data, "provider data")
|
|
999
1025
|
if (typeof data !== "object" || data === null || Array.isArray(data)) {
|
|
1000
1026
|
throw new TypeError("[SixbModels] provider data must be a JSON object.")
|
|
@@ -1004,6 +1030,28 @@ function validateProviderData(data: ProviderData | undefined): void {
|
|
|
1004
1030
|
`[SixbModels] Provider data exceeds the ${MAX_PROVIDER_DATA_BYTES}-byte response limit.`
|
|
1005
1031
|
)
|
|
1006
1032
|
}
|
|
1033
|
+
return data
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
/** Normalize absent metadata fields at ingestion, leaving non-JSON values for validation. */
|
|
1037
|
+
function omitUndefinedObjectProperties(value: unknown, seen = new Set<object>()): unknown {
|
|
1038
|
+
if (typeof value !== "object" || value === null || seen.has(value)) return value
|
|
1039
|
+
seen.add(value)
|
|
1040
|
+
try {
|
|
1041
|
+
if (Array.isArray(value)) {
|
|
1042
|
+
return value.map((entry) => omitUndefinedObjectProperties(entry, seen))
|
|
1043
|
+
}
|
|
1044
|
+
if (!isPlainRecord(value)) return value
|
|
1045
|
+
return Object.fromEntries(
|
|
1046
|
+
Reflect.ownKeys(value)
|
|
1047
|
+
.filter((key) => Object.prototype.propertyIsEnumerable.call(value, key))
|
|
1048
|
+
.map((key) => [key, Reflect.get(value, key)] as const)
|
|
1049
|
+
.filter(([, entry]) => entry !== undefined)
|
|
1050
|
+
.map(([key, entry]) => [key, omitUndefinedObjectProperties(entry, seen)])
|
|
1051
|
+
)
|
|
1052
|
+
} finally {
|
|
1053
|
+
seen.delete(value)
|
|
1054
|
+
}
|
|
1007
1055
|
}
|
|
1008
1056
|
|
|
1009
1057
|
function mergeProviderData(
|
package/src/agents/request.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
canInheritAgentRequestAuthorization,
|
|
9
9
|
createInheritedAgentExecutionRecord,
|
|
10
10
|
} from "../execution/agent"
|
|
11
|
+
import { resolveExecutionScopeAuthorization } from "../execution/authorization"
|
|
11
12
|
import { ensureExecutionRecord, executionRecordInputFromRuntime } from "../execution/durable"
|
|
12
13
|
import type { ExecutionContext } from "../execution/types"
|
|
13
14
|
import type { LanguageModelCatalog, LanguageModelRef } from "../models"
|
|
@@ -81,6 +82,10 @@ export async function requestAgentRun(
|
|
|
81
82
|
models: LanguageModelCatalog | undefined,
|
|
82
83
|
input: RequestAgentRunInput
|
|
83
84
|
): Promise<RequestAgentRunResult> {
|
|
85
|
+
const authority = resolveExecutionScopeAuthorization(runtime.projectId, {
|
|
86
|
+
execution,
|
|
87
|
+
authorization: runtime.runtimeAuthorization,
|
|
88
|
+
})
|
|
84
89
|
assertNoAgentSelector(input)
|
|
85
90
|
assertAuthorized(runtime, { kind: "agent.run" })
|
|
86
91
|
assertRequestAuthorityCanRunAgent(runtime)
|
|
@@ -92,9 +97,13 @@ export async function requestAgentRun(
|
|
|
92
97
|
|
|
93
98
|
const agents = requireAgentStorage(runtime)
|
|
94
99
|
const projectId = runtime.projectId
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
|
|
100
|
+
// Attribution comes from the exact capability/execution pair, never the optional context cache
|
|
101
|
+
// on the runtime. `input.principal` remains available to unrestricted server integrations that
|
|
102
|
+
// have already authenticated their request.
|
|
103
|
+
const principal =
|
|
104
|
+
authority.type === "principal"
|
|
105
|
+
? authority.context.principal
|
|
106
|
+
: (input.principal ?? SYSTEM_PRINCIPAL)
|
|
98
107
|
const runId = createAgentRunId()
|
|
99
108
|
const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)
|
|
100
109
|
const requesterGroupIds = durableExecution.requestedBy
|
|
@@ -179,6 +188,10 @@ export async function retryAgentRun(
|
|
|
179
188
|
models: LanguageModelCatalog | undefined,
|
|
180
189
|
failedRun: ConversationAgentRunRecord
|
|
181
190
|
): Promise<RequestAgentRunResult> {
|
|
191
|
+
resolveExecutionScopeAuthorization(runtime.projectId, {
|
|
192
|
+
execution,
|
|
193
|
+
authorization: runtime.runtimeAuthorization,
|
|
194
|
+
})
|
|
182
195
|
assertAuthorized(runtime, { kind: "agent.run" })
|
|
183
196
|
assertRequestAuthorityCanRunAgent(runtime)
|
|
184
197
|
if (failedRun.status !== "failed") {
|
|
@@ -13,7 +13,6 @@ import type {
|
|
|
13
13
|
InferAgentToolInputSchema,
|
|
14
14
|
} from "./types"
|
|
15
15
|
import {
|
|
16
|
-
assertValidAgentToolDefinitions,
|
|
17
16
|
assertValidAgentToolDescription,
|
|
18
17
|
assertValidAgentToolName,
|
|
19
18
|
assertValidProjectAgentToolDefinitions,
|
|
@@ -73,24 +72,6 @@ export function createAgentToolDefinition<
|
|
|
73
72
|
return Object.freeze(tool)
|
|
74
73
|
}
|
|
75
74
|
|
|
76
|
-
export function toolsFromDefinitions(
|
|
77
|
-
agentId: string,
|
|
78
|
-
tools: readonly AgentToolDefinition[] | undefined
|
|
79
|
-
): readonly AgentToolDefinition[] {
|
|
80
|
-
if (tools === undefined) {
|
|
81
|
-
return EMPTY_AGENT_TOOLS
|
|
82
|
-
}
|
|
83
|
-
if (!Array.isArray(tools)) {
|
|
84
|
-
throw new AgentDefinitionError(
|
|
85
|
-
`[Sixb] Agent '${agentId}' tools must be an array of agent tool definitions.`
|
|
86
|
-
)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
assertValidAgentToolDefinitions(agentId, tools)
|
|
90
|
-
|
|
91
|
-
return normalizeAgentToolDefinitions(tools)
|
|
92
|
-
}
|
|
93
|
-
|
|
94
75
|
export function toolsFromProjectConfig(
|
|
95
76
|
tools: readonly AgentToolDefinition[] | undefined
|
|
96
77
|
): readonly AgentToolDefinition[] {
|
package/src/agents/validation.ts
CHANGED
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
type ValueType,
|
|
7
7
|
validateSchemaValue,
|
|
8
8
|
} from "../ontology"
|
|
9
|
-
import type { GroupDefinition } from "../security"
|
|
10
9
|
import { AgentDefinitionError } from "./errors"
|
|
11
10
|
import type { AgentToolDefinition, AgentToolInputSchema } from "./types"
|
|
12
11
|
|
|
@@ -31,12 +30,6 @@ export const AGENT_RESERVED_TOOL_NAMES = [
|
|
|
31
30
|
"wait_agent",
|
|
32
31
|
] as const
|
|
33
32
|
|
|
34
|
-
export function assertNonEmpty(value: string, field: string): void {
|
|
35
|
-
if (!value.trim()) {
|
|
36
|
-
throw new AgentDefinitionError(`[Sixb] Agent ${field} must not be empty.`)
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
33
|
export function isAgentToolDefinition(value: unknown): value is AgentToolDefinition {
|
|
41
34
|
return (
|
|
42
35
|
isRecord(value) &&
|
|
@@ -126,38 +119,6 @@ export function validateAndNormalizeAgentToolInput(
|
|
|
126
119
|
)
|
|
127
120
|
}
|
|
128
121
|
|
|
129
|
-
export function groupIdsFromDefinitions(
|
|
130
|
-
agentId: string,
|
|
131
|
-
groups: readonly GroupDefinition[] | undefined
|
|
132
|
-
): readonly string[] {
|
|
133
|
-
const groupIds = (groups ?? []).map((group) => {
|
|
134
|
-
if (!isRecord(group) || group.kind !== "group") {
|
|
135
|
-
throw new AgentDefinitionError(
|
|
136
|
-
`[Sixb] Agent '${agentId}' groups must contain only group definitions.`
|
|
137
|
-
)
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
assertNonEmpty(group.id, `Agent '${agentId}' group id`)
|
|
141
|
-
return group.id
|
|
142
|
-
})
|
|
143
|
-
|
|
144
|
-
assertNoDuplicateGroupIds(agentId, groupIds)
|
|
145
|
-
return Object.freeze(groupIds)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
function assertNoDuplicateGroupIds(agentId: string, groupIds: readonly string[]): void {
|
|
149
|
-
const seen = new Set<string>()
|
|
150
|
-
for (const groupId of groupIds) {
|
|
151
|
-
assertNonEmpty(groupId, `Agent '${agentId}' group id`)
|
|
152
|
-
if (seen.has(groupId)) {
|
|
153
|
-
throw new AgentDefinitionError(
|
|
154
|
-
`[Sixb] Agent '${agentId}' groups contains duplicate group id '${groupId}'.`
|
|
155
|
-
)
|
|
156
|
-
}
|
|
157
|
-
seen.add(groupId)
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
122
|
function assertValidAgentToolSchema(
|
|
162
123
|
toolName: string,
|
|
163
124
|
schema: unknown,
|
|
@@ -238,45 +199,25 @@ function invalidAgentToolSchema(toolName: string, path: string): AgentDefinition
|
|
|
238
199
|
)
|
|
239
200
|
}
|
|
240
201
|
|
|
241
|
-
export function assertValidAgentToolDefinitions(
|
|
242
|
-
agentId: string,
|
|
243
|
-
tools: readonly AgentToolDefinition[]
|
|
244
|
-
): void {
|
|
245
|
-
assertValidAgentToolDefinitionList(tools, {
|
|
246
|
-
invalidDefinitions: `[Sixb] Agent '${agentId}' tools must contain only agent tool definitions.`,
|
|
247
|
-
duplicateName: (name) =>
|
|
248
|
-
`[Sixb] Agent '${agentId}' tools contains duplicate tool name '${name}'.`,
|
|
249
|
-
})
|
|
250
|
-
}
|
|
251
|
-
|
|
252
202
|
export function assertValidProjectAgentToolDefinitions(
|
|
253
203
|
tools: readonly AgentToolDefinition[]
|
|
254
|
-
): void {
|
|
255
|
-
assertValidAgentToolDefinitionList(tools, {
|
|
256
|
-
invalidDefinitions: "[Sixb] Project tools must contain only agent tool definitions.",
|
|
257
|
-
duplicateName: (name) => `[Sixb] Project tools contain duplicate tool name '${name}'.`,
|
|
258
|
-
})
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
function assertValidAgentToolDefinitionList(
|
|
262
|
-
tools: readonly AgentToolDefinition[],
|
|
263
|
-
messages: {
|
|
264
|
-
readonly invalidDefinitions: string
|
|
265
|
-
readonly duplicateName: (name: string) => string
|
|
266
|
-
}
|
|
267
204
|
): void {
|
|
268
205
|
const seen = new Set<string>()
|
|
269
206
|
for (let index = 0; index < tools.length; index += 1) {
|
|
270
207
|
const tool = tools[index]
|
|
271
208
|
if (!Object.hasOwn(tools, index) || !isAgentToolDefinition(tool)) {
|
|
272
|
-
throw new AgentDefinitionError(
|
|
209
|
+
throw new AgentDefinitionError(
|
|
210
|
+
"[Sixb] Project tools must contain only agent tool definitions."
|
|
211
|
+
)
|
|
273
212
|
}
|
|
274
213
|
|
|
275
214
|
assertValidAgentToolName(tool.name)
|
|
276
215
|
assertValidAgentToolDescription(tool.name, tool.description)
|
|
277
216
|
assertValidAgentToolInput(tool.name, tool.input)
|
|
278
217
|
if (seen.has(tool.name)) {
|
|
279
|
-
throw new AgentDefinitionError(
|
|
218
|
+
throw new AgentDefinitionError(
|
|
219
|
+
`[Sixb] Project tools contain duplicate tool name '${tool.name}'.`
|
|
220
|
+
)
|
|
280
221
|
}
|
|
281
222
|
seen.add(tool.name)
|
|
282
223
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto"
|
|
2
|
-
import { assertAuthorized,
|
|
2
|
+
import { assertAuthorized, isRuntimeAllowed } from "../authorization"
|
|
3
3
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
4
4
|
import type { SecurityDefinitionCatalog } from "../security"
|
|
5
5
|
import type {
|
|
@@ -87,11 +87,9 @@ export function createAiUsageRuntime(
|
|
|
87
87
|
const assertObservable = () => assertAuthorized(runtime, { kind: "aiUsage.observe" })
|
|
88
88
|
const assertManageable = () => assertAuthorized(runtime, { kind: "aiUsage.manage" })
|
|
89
89
|
const assertPolicyReadable = () => {
|
|
90
|
-
const resolved = assertRuntimeAuthorizationBound(runtime)
|
|
91
90
|
if (
|
|
92
|
-
|
|
93
|
-
!
|
|
94
|
-
!isAllowed(resolved.context, { kind: "aiUsage.manage" })
|
|
91
|
+
!isRuntimeAllowed(runtime, { kind: "aiUsage.observe" }) &&
|
|
92
|
+
!isRuntimeAllowed(runtime, { kind: "aiUsage.manage" })
|
|
95
93
|
) {
|
|
96
94
|
assertObservable()
|
|
97
95
|
}
|
|
@@ -114,12 +112,7 @@ export function createAiUsageRuntime(
|
|
|
114
112
|
limitsConfigured: runtime.storage.aiLimits !== undefined,
|
|
115
113
|
assertObservable,
|
|
116
114
|
assertManageable,
|
|
117
|
-
canManageLimits: () => {
|
|
118
|
-
const resolved = assertRuntimeAuthorizationBound(runtime)
|
|
119
|
-
return (
|
|
120
|
-
resolved.type !== "principal" || isAllowed(resolved.context, { kind: "aiUsage.manage" })
|
|
121
|
-
)
|
|
122
|
-
},
|
|
115
|
+
canManageLimits: () => isRuntimeAllowed(runtime, { kind: "aiUsage.manage" }),
|
|
123
116
|
queryOverview: (input) => {
|
|
124
117
|
assertObservable()
|
|
125
118
|
return requireCosts().queryProjectOverview({ ...input, projectId: runtime.projectId })
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
import type { AuthSessionAudience } from "../auth/audience"
|
|
14
14
|
import {
|
|
15
15
|
type ResolvedRuntimeAuthorization,
|
|
16
|
-
|
|
16
|
+
resolveExecutionScopeAuthorization,
|
|
17
|
+
resolveRuntimeAuthorizationForProject,
|
|
17
18
|
} from "../execution/authorization"
|
|
18
19
|
import type { ExecutionContext, RuntimeAuthorization } from "../execution/types"
|
|
19
20
|
import { AuthorizationError } from "./errors"
|
|
@@ -28,6 +29,7 @@ export type AuthzRequest =
|
|
|
28
29
|
| { readonly kind: "object.edit"; readonly objectTypeId: string }
|
|
29
30
|
| { readonly kind: "telemetry.append"; readonly objectTypeId: string }
|
|
30
31
|
| { readonly kind: "action.apply"; readonly actionId: string }
|
|
32
|
+
| { readonly kind: "share.manage"; readonly shareId: string }
|
|
31
33
|
| { readonly kind: "workflow.run"; readonly workflowId: string }
|
|
32
34
|
| { readonly kind: "sync.run"; readonly syncId: string }
|
|
33
35
|
| { readonly kind: "pipeline.run"; readonly pipelineId: string }
|
|
@@ -47,6 +49,7 @@ export interface AuthzDecision {
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
interface AuthorizedRuntime {
|
|
52
|
+
readonly projectId: string
|
|
50
53
|
readonly runtimeAuthorization?: RuntimeAuthorization
|
|
51
54
|
readonly authorization?: AuthorizationContext
|
|
52
55
|
}
|
|
@@ -73,6 +76,8 @@ function atomsFor(request: AuthzRequest): readonly Atom[] {
|
|
|
73
76
|
return [{ kind: "append:telemetry", id: request.objectTypeId }]
|
|
74
77
|
case "action.apply":
|
|
75
78
|
return [{ kind: "apply:action", id: request.actionId }]
|
|
79
|
+
case "share.manage":
|
|
80
|
+
return [{ kind: "share:share", id: request.shareId }]
|
|
76
81
|
case "workflow.run":
|
|
77
82
|
return [{ kind: "run:workflow", id: request.workflowId }]
|
|
78
83
|
case "sync.run":
|
|
@@ -133,6 +138,12 @@ export function isAllowed(
|
|
|
133
138
|
|
|
134
139
|
export function assertAuthorized(runtime: AuthorizedRuntime, request: AuthzRequest): void {
|
|
135
140
|
const resolved = assertRuntimeAuthorizationBound(runtime)
|
|
141
|
+
if (resolved.type === "delegated") {
|
|
142
|
+
throw new AuthorizationError(
|
|
143
|
+
`delegated:${request.kind}`,
|
|
144
|
+
`[Sixb] Operation '${request.kind}' is not covered by delegated authorization.`
|
|
145
|
+
)
|
|
146
|
+
}
|
|
136
147
|
const authorization = resolved.type === "principal" ? resolved.context : undefined
|
|
137
148
|
const decision = evaluate(authorization, request)
|
|
138
149
|
if (decision.allowed) {
|
|
@@ -145,11 +156,18 @@ export function assertAuthorized(runtime: AuthorizedRuntime, request: AuthzReque
|
|
|
145
156
|
)
|
|
146
157
|
}
|
|
147
158
|
|
|
159
|
+
/** Runtime catalogs never infer unrestricted access from an absent principal context. */
|
|
160
|
+
export function isRuntimeAllowed(runtime: AuthorizedRuntime, request: AuthzRequest): boolean {
|
|
161
|
+
const authority = resolveRuntimeAuthorizationForProject(runtime)
|
|
162
|
+
if (authority.type === "denied" || authority.type === "delegated") return false
|
|
163
|
+
return authority.type === "unrestricted" || isAllowed(authority.context, request)
|
|
164
|
+
}
|
|
165
|
+
|
|
148
166
|
/** Resolve registered process-local authority before a protected leaf makes a decision. */
|
|
149
167
|
export function assertRuntimeAuthorizationBound(
|
|
150
168
|
runtime: AuthorizedRuntime
|
|
151
169
|
): Exclude<ResolvedRuntimeAuthorization, { readonly type: "denied" }> {
|
|
152
|
-
const resolved =
|
|
170
|
+
const resolved = resolveRuntimeAuthorizationForProject(runtime)
|
|
153
171
|
if (resolved.type === "denied") {
|
|
154
172
|
throw new AuthorizationError(
|
|
155
173
|
"runtime:unbound",
|
|
@@ -218,27 +236,22 @@ export function assertPrivileged(runtime: AuthorizedRuntime, operation: string):
|
|
|
218
236
|
* Assert access to process providers that trusted executions and genuine agent runs may use.
|
|
219
237
|
*
|
|
220
238
|
* Agent provenance alone is not authority: the registered capability must be bound to the exact
|
|
221
|
-
* same execution
|
|
239
|
+
* same immutable execution before this check succeeds.
|
|
222
240
|
*/
|
|
223
241
|
export function assertProviderAccess(
|
|
224
|
-
runtime: AuthorizedRuntime,
|
|
242
|
+
runtime: AuthorizedRuntime & { readonly runtimeAuthorization: RuntimeAuthorization },
|
|
225
243
|
execution: ExecutionContext,
|
|
226
244
|
operation: string
|
|
227
245
|
): void {
|
|
228
|
-
const resolved =
|
|
246
|
+
const resolved = resolveExecutionScopeAuthorization(runtime.projectId, {
|
|
247
|
+
execution,
|
|
248
|
+
authorization: runtime.runtimeAuthorization,
|
|
249
|
+
})
|
|
229
250
|
if (resolved.type === "unrestricted") {
|
|
230
251
|
return
|
|
231
252
|
}
|
|
232
253
|
|
|
233
|
-
|
|
234
|
-
const executor = execution.executor
|
|
235
|
-
if (
|
|
236
|
-
binding?.type === "agent" &&
|
|
237
|
-
executor.type === "agent" &&
|
|
238
|
-
binding.executionId === execution.id &&
|
|
239
|
-
binding.actorId === executor.actorId &&
|
|
240
|
-
binding.runId === executor.runId
|
|
241
|
-
) {
|
|
254
|
+
if (execution.executor.type === "agent") {
|
|
242
255
|
return
|
|
243
256
|
}
|
|
244
257
|
|
|
@@ -266,6 +279,8 @@ function deniedMessage(
|
|
|
266
279
|
return `[Sixb] Principal '${principalId}' is not allowed to append telemetry for object type '${request.objectTypeId}'.`
|
|
267
280
|
case "action.apply":
|
|
268
281
|
return `[Sixb] Principal '${principalId}' is not allowed to apply action '${request.actionId}'.`
|
|
282
|
+
case "share.manage":
|
|
283
|
+
return `[Sixb] Principal '${principalId}' is not allowed to manage Share '${request.shareId}'.`
|
|
269
284
|
case "workflow.run":
|
|
270
285
|
return `[Sixb] Principal '${principalId}' is not allowed to run workflow '${request.workflowId}'.`
|
|
271
286
|
case "sync.run":
|
|
@@ -17,6 +17,7 @@ export type GrantKind =
|
|
|
17
17
|
| "edit:object"
|
|
18
18
|
| "append:telemetry"
|
|
19
19
|
| "apply:action"
|
|
20
|
+
| "share:share"
|
|
20
21
|
| "run:workflow"
|
|
21
22
|
| "run:sync"
|
|
22
23
|
| "run:pipeline"
|
|
@@ -35,6 +36,7 @@ export interface GrantUniverse {
|
|
|
35
36
|
readonly objectTypeIds: ReadonlySet<string>
|
|
36
37
|
readonly datasetIds: ReadonlySet<string>
|
|
37
38
|
readonly actionIds: ReadonlySet<string>
|
|
39
|
+
readonly shareIds: ReadonlySet<string>
|
|
38
40
|
readonly workflowIds: ReadonlySet<string>
|
|
39
41
|
readonly syncIds: ReadonlySet<string>
|
|
40
42
|
readonly pipelineIds: ReadonlySet<string>
|
|
@@ -108,6 +110,11 @@ export const GRANT_KINDS: {
|
|
|
108
110
|
subject: "action",
|
|
109
111
|
fix: "Add it to 'actions/' or pass it to createSixb({ actions }).",
|
|
110
112
|
},
|
|
113
|
+
"share:share": {
|
|
114
|
+
universeKey: "shareIds",
|
|
115
|
+
subject: "share",
|
|
116
|
+
fix: "Add it to 'shares/' or pass it to createSixb({ shares }).",
|
|
117
|
+
},
|
|
111
118
|
"run:workflow": {
|
|
112
119
|
universeKey: "workflowIds",
|
|
113
120
|
subject: "workflow",
|
|
@@ -171,6 +178,8 @@ export function grantKindOf(grant: GrantDefinition): GrantKind {
|
|
|
171
178
|
return "append:telemetry"
|
|
172
179
|
case "apply":
|
|
173
180
|
return "apply:action"
|
|
181
|
+
case "share":
|
|
182
|
+
return "share:share"
|
|
174
183
|
case "run":
|
|
175
184
|
return `run:${grant.target}`
|
|
176
185
|
case "observe":
|
|
@@ -193,6 +202,7 @@ export function emptyGrantSets(): MutableGrantIndex {
|
|
|
193
202
|
"edit:object": new Set(),
|
|
194
203
|
"append:telemetry": new Set(),
|
|
195
204
|
"apply:action": new Set(),
|
|
205
|
+
"share:share": new Set(),
|
|
196
206
|
"run:workflow": new Set(),
|
|
197
207
|
"run:sync": new Set(),
|
|
198
208
|
"run:pipeline": new Set(),
|
|
@@ -21,6 +21,7 @@ import { isRuleDefinition } from "../rules"
|
|
|
21
21
|
import { RuntimeError } from "../runtime/errors"
|
|
22
22
|
import { isScheduleDefinition } from "../schedules"
|
|
23
23
|
import { isGroupDefinition, isMembershipPolicyDefinition, isRoleDefinition } from "../security"
|
|
24
|
+
import { isShareDefinition } from "../shares"
|
|
24
25
|
import { isSyncDefinition } from "../syncs"
|
|
25
26
|
import { isWorkflowDefinition } from "../workflows"
|
|
26
27
|
|
|
@@ -82,6 +83,7 @@ type DiscoveryModuleKind =
|
|
|
82
83
|
| "role"
|
|
83
84
|
| "rule"
|
|
84
85
|
| "schedule"
|
|
86
|
+
| "share"
|
|
85
87
|
| "sync"
|
|
86
88
|
| "workflow"
|
|
87
89
|
|
|
@@ -136,6 +138,7 @@ const definitionDiscoveryRegistry = {
|
|
|
136
138
|
kind: "membershipPolicy",
|
|
137
139
|
isDefinition: isMembershipPolicyDefinition,
|
|
138
140
|
},
|
|
141
|
+
shares: { directory: ["shares"], kind: "share", isDefinition: isShareDefinition },
|
|
139
142
|
} as const satisfies Record<string, DefinitionDiscoveryFamily<unknown>>
|
|
140
143
|
|
|
141
144
|
type DefinitionFromFamily<TFamily> =
|