@sixb/core 0.1.6 → 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 +50 -40
- 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 +5 -5
- package/dist/actions/worker.js.map +1 -1
- package/dist/agents/adapters.d.ts +6 -166
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +22 -6
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/builders.d.ts +3 -11
- package/dist/agents/builders.d.ts.map +1 -1
- package/dist/agents/context-resolution.d.ts.map +1 -1
- package/dist/agents/context.js +2 -2
- package/dist/agents/dispatch.d.ts +9 -1
- package/dist/agents/dispatch.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -10
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts +9 -10
- 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/ids.d.ts +4 -0
- package/dist/agents/ids.d.ts.map +1 -1
- package/dist/agents/index.d.ts +15 -11
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +90 -78
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +19 -13
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +58 -0
- package/dist/agents/model-loop.d.ts.map +1 -0
- package/dist/agents/reference.d.ts +4 -0
- package/dist/agents/reference.d.ts.map +1 -0
- package/dist/agents/request.d.ts +10 -8
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/retired-config.d.ts +4 -0
- package/dist/agents/retired-config.d.ts.map +1 -0
- package/dist/agents/streams.d.ts +13 -8
- package/dist/agents/streams.d.ts.map +1 -1
- package/dist/agents/streams.js +7 -5
- package/dist/agents/streams.js.map +1 -1
- package/dist/agents/tool-catalog.d.ts +9 -0
- package/dist/agents/tool-catalog.d.ts.map +1 -0
- package/dist/agents/tool-definition.d.ts +1 -1
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/types.d.ts +31 -68
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +3 -13
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/ai-usage/execution.d.ts +53 -0
- package/dist/ai-usage/execution.d.ts.map +1 -0
- package/dist/ai-usage/index.d.ts +3 -0
- package/dist/ai-usage/index.d.ts.map +1 -0
- package/dist/auth/index.js +12 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/decision.d.ts +14 -3
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +25 -8
- 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 +12 -7
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +3 -3
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -5
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +2 -2
- package/dist/blob-storage/index.js +3 -3
- package/dist/bootstrap/discovery.d.ts +6 -6
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.js +62 -51
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/broker/index.js +2 -2
- package/dist/{chunk-zqysyfjt.js → chunk-08m3b6w8.js} +1 -1
- package/dist/chunk-19jp6g9d.js +131 -0
- package/dist/chunk-19jp6g9d.js.map +11 -0
- package/dist/{chunk-3j7573mj.js → chunk-2dw777qw.js} +50 -5
- package/dist/{chunk-3j7573mj.js.map → chunk-2dw777qw.js.map} +4 -3
- package/dist/{chunk-0172wgm9.js → chunk-2xns679x.js} +10 -2
- package/dist/{chunk-0172wgm9.js.map → chunk-2xns679x.js.map} +3 -3
- package/dist/chunk-359jm1jw.js +147 -0
- package/dist/chunk-359jm1jw.js.map +10 -0
- package/dist/{chunk-dy311asx.js → chunk-3xep5cjx.js} +58 -23
- package/dist/chunk-3xep5cjx.js.map +15 -0
- package/dist/{chunk-n4spznws.js → chunk-3z1qec12.js} +83 -12
- package/dist/chunk-3z1qec12.js.map +12 -0
- package/dist/{chunk-z3zp0bj1.js → chunk-407j3msh.js} +1 -1
- package/dist/{chunk-rhrbz7d4.js → chunk-4a849fr1.js} +1 -1
- package/dist/{chunk-cy0n5dms.js → chunk-4jjp5k14.js} +1 -1
- package/dist/chunk-4qfkag59.js +1568 -0
- package/dist/chunk-4qfkag59.js.map +20 -0
- package/dist/{chunk-1e8m6yn3.js → chunk-4sm0aznx.js} +685 -86
- package/dist/chunk-4sm0aznx.js.map +43 -0
- package/dist/chunk-4yqmp43v.js +159 -0
- package/dist/chunk-4yqmp43v.js.map +11 -0
- package/dist/{chunk-rdeagz6b.js → chunk-5e3pq99w.js} +3 -7
- package/dist/{chunk-rdeagz6b.js.map → chunk-5e3pq99w.js.map} +3 -3
- package/dist/{chunk-ezake7g1.js → chunk-5ntny1qx.js} +1 -1
- package/dist/{chunk-dm72y8wt.js → chunk-7y0f6rf1.js} +29 -16
- package/dist/chunk-7y0f6rf1.js.map +10 -0
- package/dist/{chunk-72q2y8hn.js → chunk-8tsf6dmc.js} +2 -2
- package/dist/{chunk-qewtks41.js → chunk-9nbmsvn5.js} +123 -20
- package/dist/chunk-9nbmsvn5.js.map +11 -0
- package/dist/{chunk-5sxb1168.js → chunk-aa2pen2v.js} +256 -82
- package/dist/chunk-aa2pen2v.js.map +34 -0
- package/dist/{chunk-819wnjz8.js → chunk-ajnan18g.js} +13 -10
- package/dist/chunk-ajnan18g.js.map +12 -0
- package/dist/chunk-c15dr03f.js +43 -0
- package/dist/chunk-c15dr03f.js.map +10 -0
- package/dist/{chunk-t0jjkep3.js → chunk-d8qkxt2v.js} +4 -2
- package/dist/chunk-d8qkxt2v.js.map +10 -0
- package/dist/{chunk-vybf6pkp.js → chunk-dbc80ad7.js} +1 -1
- package/dist/{chunk-nkbfrt0c.js → chunk-f26bck4t.js} +7 -7
- package/dist/{chunk-x2yw73hy.js → chunk-fvt9rjsa.js} +23 -7
- package/dist/chunk-fvt9rjsa.js.map +10 -0
- package/dist/{chunk-znagycq7.js → chunk-gbejpkex.js} +5 -5
- package/dist/{chunk-znagycq7.js.map → chunk-gbejpkex.js.map} +1 -1
- package/dist/{chunk-e42bc6m3.js → chunk-gzasd5b6.js} +5 -5
- package/dist/{chunk-e42bc6m3.js.map → chunk-gzasd5b6.js.map} +3 -3
- package/dist/{chunk-rnshztfq.js → chunk-h0k55pc7.js} +6 -6
- package/dist/{chunk-rnshztfq.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-j1sbhm7p.js +45 -0
- package/dist/chunk-j1sbhm7p.js.map +10 -0
- package/dist/chunk-jecn6t54.js +307 -0
- package/dist/chunk-jecn6t54.js.map +12 -0
- package/dist/{chunk-dsrkgtnh.js → chunk-jq43kdvk.js} +1 -1
- package/dist/{chunk-wtmzkcht.js → chunk-k34z5rvh.js} +1 -1
- package/dist/{chunk-f6erf2vv.js → chunk-k522z7v6.js} +10 -5
- package/dist/chunk-k522z7v6.js.map +10 -0
- package/dist/{chunk-htq0qh7z.js → chunk-ka3a2ft3.js} +2 -2
- package/dist/{chunk-ckxfnx7f.js → chunk-mth82m8t.js} +129 -95
- package/dist/chunk-mth82m8t.js.map +14 -0
- package/dist/{chunk-5gynx4xn.js → chunk-mwsxn98e.js} +79 -77
- package/dist/{chunk-5gynx4xn.js.map → chunk-mwsxn98e.js.map} +8 -8
- package/dist/{chunk-f2rt4vkh.js → chunk-n2w475r0.js} +3 -3
- package/dist/chunk-n4khvw9n.js +111 -0
- package/dist/chunk-n4khvw9n.js.map +11 -0
- package/dist/{chunk-t8t39h7v.js → chunk-n6jxh8sw.js} +10 -2
- package/dist/chunk-n6jxh8sw.js.map +10 -0
- package/dist/chunk-nn0tekr1.js +284 -0
- 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-drjqm1aa.js → chunk-p03r0h5s.js} +310 -28
- package/dist/chunk-p03r0h5s.js.map +16 -0
- package/dist/{chunk-1g8negke.js → chunk-p1rzczbt.js} +93 -8
- package/dist/chunk-p1rzczbt.js.map +12 -0
- package/dist/{chunk-f83ka50g.js → chunk-p1x242ad.js} +652 -77
- package/dist/chunk-p1x242ad.js.map +25 -0
- package/dist/chunk-p2vqaxkc.js +528 -0
- package/dist/chunk-p2vqaxkc.js.map +15 -0
- package/dist/{chunk-a31h57d5.js → chunk-pc7ys28c.js} +70 -7
- package/dist/chunk-pc7ys28c.js.map +14 -0
- package/dist/{chunk-md8k0r54.js → chunk-q0k9nc5a.js} +281 -89
- package/dist/chunk-q0k9nc5a.js.map +14 -0
- package/dist/{chunk-bhxaq2nn.js → chunk-qw9gvjv5.js} +1 -1
- package/dist/chunk-r8jrnexe.js +403 -0
- package/dist/chunk-r8jrnexe.js.map +10 -0
- package/dist/{chunk-h9kxd41f.js → chunk-rafagrwr.js} +48 -7
- package/dist/chunk-rafagrwr.js.map +11 -0
- package/dist/{chunk-dysw7nsm.js → chunk-rv2hkwwa.js} +2 -2
- package/dist/{chunk-ghteq96b.js → chunk-s5y30bc9.js} +2 -2
- package/dist/{chunk-t624af60.js → chunk-sbzzr4kx.js} +1848 -757
- package/dist/chunk-sbzzr4kx.js.map +63 -0
- package/dist/{chunk-6gjqgd3d.js → chunk-tpnd31c1.js} +2 -1
- package/dist/chunk-tpnd31c1.js.map +11 -0
- package/dist/chunk-trxxmgnf.js +68 -0
- package/dist/chunk-trxxmgnf.js.map +11 -0
- package/dist/{chunk-0hc5j867.js → chunk-v1xppd0y.js} +17 -13
- package/dist/{chunk-0hc5j867.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-xkthy56g.js → chunk-w1tvjszy.js} +1 -1
- package/dist/{chunk-8b55ygje.js → chunk-w3e09qqk.js} +1 -1
- package/dist/{chunk-8gv5z0zm.js → chunk-w9tg6yyb.js} +13 -8
- package/dist/{chunk-8gv5z0zm.js.map → chunk-w9tg6yyb.js.map} +3 -3
- package/dist/{chunk-62c7t4jc.js → chunk-wdage1eb.js} +1 -1
- package/dist/{chunk-tg5mee00.js → chunk-wtf06et8.js} +11 -7
- package/dist/{chunk-tg5mee00.js.map → chunk-wtf06et8.js.map} +3 -3
- package/dist/{chunk-nva1xkjz.js → chunk-xajtptbw.js} +1237 -1434
- 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/error-reporting/internal.js +4 -4
- package/dist/error-reporting/types.d.ts +7 -2
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +8 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +2 -2
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.js +4 -4
- 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 +18 -9
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +62 -46
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts +68 -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 +55 -46
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.d.ts +14 -1
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +92 -54
- 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 +10 -1
- 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 +15 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +128 -109
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +2 -0
- package/dist/json.d.ts.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 +27 -10
- 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/logging/index.js +3 -3
- package/dist/logging/types.js +2 -2
- package/dist/materialization/index.js +2 -2
- package/dist/materializer/index.js +38 -31
- package/dist/materializer/index.js.map +1 -1
- package/dist/models/catalog.d.ts +40 -0
- package/dist/models/catalog.d.ts.map +1 -0
- package/dist/models/definitions.d.ts +25 -0
- package/dist/models/definitions.d.ts.map +1 -0
- package/dist/models/errors.d.ts +52 -0
- package/dist/models/errors.d.ts.map +1 -0
- package/dist/models/events.d.ts +192 -0
- package/dist/models/events.d.ts.map +1 -0
- package/dist/models/index.d.ts +17 -39
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +50 -0
- package/dist/models/index.js.map +9 -0
- package/dist/models/language-model.d.ts +90 -0
- package/dist/models/language-model.d.ts.map +1 -0
- package/dist/models/messages.d.ts +74 -0
- package/dist/models/messages.d.ts.map +1 -0
- package/dist/models/pricing.d.ts +69 -0
- package/dist/models/pricing.d.ts.map +1 -0
- package/dist/models/rate-card.d.ts +24 -0
- package/dist/models/rate-card.d.ts.map +1 -0
- package/dist/models/tools.d.ts +24 -0
- package/dist/models/tools.d.ts.map +1 -0
- 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 +43 -36
- 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 +36 -29
- 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 +15 -14
- 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 +41 -36
- 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 +39 -32
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/queues/in-memory.d.ts +3 -2
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +3 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +15 -3
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/rules/execution.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +7 -4
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +4 -2
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +5 -2
- 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 +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +8 -2
- 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 -4
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +12 -6
- 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 +2 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +19 -5
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +6 -2
- 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/failure.js +3 -3
- package/dist/storage/action-runs/provider.js +2 -2
- package/dist/storage/agents/errors.d.ts +1 -1
- package/dist/storage/agents/errors.d.ts.map +1 -1
- package/dist/storage/agents/in-memory.d.ts +3 -2
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/index.d.ts +1 -1
- package/dist/storage/agents/index.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts +11 -4
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +18 -15
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +65 -17
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +2 -1
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/codec.d.ts +3 -2
- package/dist/storage/ai-cost/codec.d.ts.map +1 -1
- package/dist/storage/ai-cost/groups.d.ts +51 -0
- package/dist/storage/ai-cost/groups.d.ts.map +1 -0
- package/dist/storage/ai-cost/in-memory.d.ts +11 -1
- package/dist/storage/ai-cost/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-cost/index.d.ts +1 -1
- package/dist/storage/ai-cost/index.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.d.ts +2 -0
- package/dist/storage/ai-cost/provider.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +29 -13
- package/dist/storage/ai-cost/provider.js.map +3 -3
- package/dist/storage/ai-cost/types.d.ts +64 -15
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/validation.d.ts +2 -1
- package/dist/storage/ai-cost/validation.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.d.ts +14 -0
- package/dist/storage/ai-limits/enforcement.d.ts.map +1 -0
- package/dist/storage/ai-limits/enforcement.js +21 -0
- package/dist/storage/ai-limits/enforcement.js.map +9 -0
- package/dist/storage/ai-limits/errors.d.ts +8 -0
- package/dist/storage/ai-limits/errors.d.ts.map +1 -0
- package/dist/storage/ai-limits/in-memory.d.ts +78 -0
- package/dist/storage/ai-limits/in-memory.d.ts.map +1 -0
- package/dist/storage/ai-limits/index.d.ts +7 -0
- package/dist/storage/ai-limits/index.d.ts.map +1 -0
- package/dist/storage/ai-limits/period.d.ts +4 -0
- package/dist/storage/ai-limits/period.d.ts.map +1 -0
- package/dist/storage/ai-limits/provider.d.ts +85 -0
- package/dist/storage/ai-limits/provider.d.ts.map +1 -0
- package/dist/storage/ai-limits/provider.js +62 -0
- package/dist/storage/ai-limits/provider.js.map +9 -0
- package/dist/storage/ai-limits/types.d.ts +175 -0
- package/dist/storage/ai-limits/types.d.ts.map +1 -0
- package/dist/storage/ai-usage/in-memory.d.ts +4 -0
- package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-usage/record.d.ts.map +1 -1
- package/dist/storage/ai-usage/types.d.ts +6 -2
- package/dist/storage/ai-usage/types.d.ts.map +1 -1
- package/dist/storage/auth/errors.d.ts +1 -1
- package/dist/storage/auth/errors.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts +4 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/device-authorizations.d.ts +29 -0
- package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -0
- package/dist/storage/auth/in-memory/shared.d.ts +3 -1
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +2 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +66 -0
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/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 +14 -2
- 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 +12 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +15 -6
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +78 -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/ontology/provider.js +3 -3
- 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 +4 -4
- 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 +13 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/webhook-runs/provider.js +2 -2
- package/dist/storage/workflow-runs/provider.d.ts +1 -1
- package/dist/storage/workflow-runs/provider.js +14 -12
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +5 -4
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/execution.d.ts.map +1 -1
- package/dist/syncs/index.js +41 -36
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/request.d.ts.map +1 -1
- package/dist/testing/agent-execution.d.ts +3 -1
- package/dist/testing/agent-execution.d.ts.map +1 -1
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-limit-storage-contract.d.ts +18 -0
- package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -0
- package/dist/testing/ai-model-call-groups-contract.d.ts +6 -0
- package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -0
- package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
- package/dist/testing/auth-storage-contract.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 +5 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +5392 -2070
- package/dist/testing/index.js.map +21 -15
- 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/queues-contract.d.ts.map +1 -1
- 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 +36 -29
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +2 -2
- package/dist/workflows/agent-step-identity.d.ts +3 -0
- package/dist/workflows/agent-step-identity.d.ts.map +1 -0
- package/dist/workflows/builders.d.ts +2 -3
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/execution.d.ts +1 -1
- package/dist/workflows/execution.d.ts.map +1 -1
- package/dist/workflows/failure.d.ts +1 -1
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.d.ts +3 -2
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +63 -48
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +26 -11
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +7 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +43 -4
- 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 +60 -456
- package/src/agents/authority.ts +215 -34
- package/src/agents/builders.ts +3 -50
- package/src/agents/context-compaction.ts +4 -0
- package/src/agents/context-resolution.ts +1 -4
- package/src/agents/dispatch.ts +59 -2
- package/src/agents/errors.ts +4 -11
- package/src/agents/execution.ts +65 -56
- package/src/agents/identity.ts +4 -0
- package/src/agents/ids.ts +16 -1
- package/src/agents/index.ts +23 -30
- package/src/agents/message.ts +20 -12
- package/src/agents/model-loop.ts +1071 -0
- package/src/agents/reference.ts +7 -0
- package/src/agents/request.ts +157 -77
- package/src/agents/retired-config.ts +20 -0
- package/src/agents/streams.ts +45 -19
- package/src/agents/tool-catalog.ts +21 -0
- package/src/agents/tool-definition.ts +9 -5
- package/src/agents/types.ts +39 -81
- package/src/agents/validation.ts +11 -216
- package/src/ai-usage/execution.ts +189 -0
- package/src/ai-usage/index.ts +15 -0
- package/src/authorization/decision.ts +54 -22
- package/src/authorization/grant-kinds.ts +72 -15
- package/src/authorization/index.ts +2 -0
- package/src/authorization/resolve.ts +12 -5
- package/src/authorization/types.ts +7 -5
- package/src/bootstrap/discovery.ts +3 -3
- 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/error-reporting/types.ts +4 -2
- package/src/errors/catalog.ts +8 -0
- package/src/events/execution.ts +57 -7
- package/src/events/types/datasets.ts +2 -6
- package/src/execution/agent.ts +129 -25
- package/src/execution/authorization.ts +493 -83
- 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 +67 -14
- package/src/execution/scopes.ts +36 -6
- package/src/execution/types.ts +9 -1
- package/src/http/api-routes.ts +108 -0
- package/src/index.ts +72 -22
- package/src/json.ts +9 -0
- 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/models/catalog.ts +137 -0
- package/src/models/definitions.ts +202 -0
- package/src/models/errors.ts +83 -0
- package/src/models/events.ts +198 -0
- package/src/models/index.ts +89 -71
- package/src/models/language-model.ts +143 -0
- package/src/models/messages.ts +78 -0
- package/src/models/pricing.ts +390 -0
- package/src/models/rate-card.ts +101 -0
- package/src/models/tools.ts +29 -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/queues/in-memory.ts +5 -0
- package/src/queues/index.ts +11 -0
- package/src/queues/types.ts +20 -3
- package/src/rules/execution.ts +20 -8
- package/src/runtime/create.ts +11 -5
- package/src/runtime/definitions.ts +4 -2
- package/src/runtime/host.ts +28 -8
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/resolve-definitions.ts +22 -36
- package/src/runtime/sixb.ts +29 -10
- package/src/runtime/types.ts +3 -0
- package/src/schedules/execution.ts +24 -2
- package/src/security/every.ts +4 -4
- package/src/security/grants.ts +100 -14
- package/src/security/index.ts +3 -0
- package/src/security/registry.ts +9 -5
- package/src/security/types.ts +23 -4
- package/src/security/validation.ts +33 -9
- 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/agents/errors.ts +1 -0
- package/src/storage/agents/in-memory.ts +121 -11
- package/src/storage/agents/index.ts +7 -0
- package/src/storage/agents/provider.ts +150 -6
- package/src/storage/agents/types.ts +73 -16
- package/src/storage/ai-cost/analytics.ts +63 -6
- package/src/storage/ai-cost/codec.ts +37 -12
- package/src/storage/ai-cost/groups.ts +248 -0
- package/src/storage/ai-cost/in-memory.ts +42 -0
- package/src/storage/ai-cost/index.ts +6 -0
- package/src/storage/ai-cost/provider.ts +7 -0
- package/src/storage/ai-cost/types.ts +76 -14
- package/src/storage/ai-cost/validation.ts +147 -17
- package/src/storage/ai-limits/enforcement.ts +68 -0
- package/src/storage/ai-limits/errors.ts +23 -0
- package/src/storage/ai-limits/in-memory.ts +671 -0
- package/src/storage/ai-limits/index.ts +31 -0
- package/src/storage/ai-limits/period.ts +11 -0
- package/src/storage/ai-limits/provider.ts +430 -0
- package/src/storage/ai-limits/types.ts +195 -0
- package/src/storage/ai-usage/in-memory.ts +13 -0
- package/src/storage/ai-usage/record.ts +17 -0
- package/src/storage/ai-usage/types.ts +6 -2
- package/src/storage/auth/errors.ts +6 -0
- package/src/storage/auth/in-memory/auth-storage.ts +69 -0
- package/src/storage/auth/in-memory/device-authorizations.ts +145 -0
- package/src/storage/auth/in-memory/shared.ts +7 -0
- package/src/storage/auth/index.ts +7 -0
- package/src/storage/auth/types.ts +73 -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 +45 -6
- package/src/storage/executions/validation.ts +82 -7
- package/src/storage/in-memory/index.ts +69 -6
- package/src/storage/index.ts +102 -1
- 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 +64 -0
- package/src/storage/workflow-runs/in-memory.ts +3 -3
- package/src/storage/workflow-runs/provider.ts +2 -2
- package/src/storage/workflow-runs/types.ts +6 -3
- package/src/syncs/execution.ts +25 -5
- package/src/syncs/request.ts +5 -0
- package/src/testing/agent-execution.ts +40 -28
- package/src/testing/agent-storage-contract.ts +249 -28
- package/src/testing/ai-cost-storage-contract.ts +96 -8
- package/src/testing/ai-limit-storage-contract.ts +1134 -0
- package/src/testing/ai-model-call-groups-contract.ts +353 -0
- package/src/testing/ai-usage-storage-contract.ts +31 -0
- package/src/testing/auth-storage-contract.ts +85 -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 +81 -2
- package/src/testing/index.ts +26 -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/queues-contract.ts +36 -1
- package/src/testing/share-grant-storage-contract.ts +325 -0
- package/src/testing/share-session-storage-contract.ts +235 -0
- package/src/workflows/agent-step-identity.ts +4 -0
- package/src/workflows/builders.ts +95 -9
- package/src/workflows/execution.ts +55 -16
- package/src/workflows/failure.ts +2 -2
- package/src/workflows/index.ts +3 -0
- package/src/workflows/request.ts +5 -0
- package/src/workflows/types.ts +23 -11
- package/src/workflows/validation.ts +100 -7
- package/dist/chunk-1e8m6yn3.js.map +0 -37
- package/dist/chunk-1g8negke.js.map +0 -11
- package/dist/chunk-4gz41why.js +0 -72
- package/dist/chunk-4gz41why.js.map +0 -11
- package/dist/chunk-5sxb1168.js.map +0 -34
- package/dist/chunk-6gjqgd3d.js.map +0 -11
- package/dist/chunk-819wnjz8.js.map +0 -12
- package/dist/chunk-a31h57d5.js.map +0 -13
- package/dist/chunk-a44d5zgd.js +0 -556
- package/dist/chunk-a44d5zgd.js.map +0 -16
- package/dist/chunk-ckxfnx7f.js.map +0 -13
- package/dist/chunk-dm72y8wt.js.map +0 -10
- package/dist/chunk-drjqm1aa.js.map +0 -15
- package/dist/chunk-dy311asx.js.map +0 -14
- package/dist/chunk-f6erf2vv.js.map +0 -10
- package/dist/chunk-f83ka50g.js.map +0 -23
- package/dist/chunk-fe5ev6mr.js +0 -55
- package/dist/chunk-fe5ev6mr.js.map +0 -11
- package/dist/chunk-h9kxd41f.js.map +0 -11
- package/dist/chunk-hceck7dq.js +0 -137
- package/dist/chunk-hceck7dq.js.map +0 -10
- package/dist/chunk-md8k0r54.js.map +0 -14
- package/dist/chunk-n4spznws.js.map +0 -11
- package/dist/chunk-nva1xkjz.js.map +0 -46
- package/dist/chunk-qewtks41.js.map +0 -11
- package/dist/chunk-t0jjkep3.js.map +0 -10
- package/dist/chunk-t624af60.js.map +0 -56
- package/dist/chunk-t8t39h7v.js.map +0 -10
- package/dist/chunk-t9xghkva.js +0 -28
- package/dist/chunk-t9xghkva.js.map +0 -10
- package/dist/chunk-x2yw73hy.js.map +0 -10
- package/dist/chunk-xc7hq65b.js.map +0 -10
- package/dist/storage/objects/in-memory.d.ts.map +0 -1
- package/src/storage/objects/in-memory.ts +0 -1241
- /package/dist/{chunk-zqysyfjt.js.map → chunk-08m3b6w8.js.map} +0 -0
- /package/dist/{chunk-z3zp0bj1.js.map → chunk-407j3msh.js.map} +0 -0
- /package/dist/{chunk-rhrbz7d4.js.map → chunk-4a849fr1.js.map} +0 -0
- /package/dist/{chunk-cy0n5dms.js.map → chunk-4jjp5k14.js.map} +0 -0
- /package/dist/{chunk-ezake7g1.js.map → chunk-5ntny1qx.js.map} +0 -0
- /package/dist/{chunk-72q2y8hn.js.map → chunk-8tsf6dmc.js.map} +0 -0
- /package/dist/{chunk-vybf6pkp.js.map → chunk-dbc80ad7.js.map} +0 -0
- /package/dist/{chunk-nkbfrt0c.js.map → chunk-f26bck4t.js.map} +0 -0
- /package/dist/{chunk-dsrkgtnh.js.map → chunk-jq43kdvk.js.map} +0 -0
- /package/dist/{chunk-wtmzkcht.js.map → chunk-k34z5rvh.js.map} +0 -0
- /package/dist/{chunk-htq0qh7z.js.map → chunk-ka3a2ft3.js.map} +0 -0
- /package/dist/{chunk-f2rt4vkh.js.map → chunk-n2w475r0.js.map} +0 -0
- /package/dist/{chunk-bhxaq2nn.js.map → chunk-qw9gvjv5.js.map} +0 -0
- /package/dist/{chunk-dysw7nsm.js.map → chunk-rv2hkwwa.js.map} +0 -0
- /package/dist/{chunk-ghteq96b.js.map → chunk-s5y30bc9.js.map} +0 -0
- /package/dist/{chunk-xkthy56g.js.map → chunk-w1tvjszy.js.map} +0 -0
- /package/dist/{chunk-8b55ygje.js.map → chunk-w3e09qqk.js.map} +0 -0
- /package/dist/{chunk-62c7t4jc.js.map → chunk-wdage1eb.js.map} +0 -0
|
@@ -1,11 +1,24 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from "node:util"
|
|
2
|
+
import { agentServiceAccountId } from "../agents/identity"
|
|
1
3
|
import type { Principal } from "../auth"
|
|
2
|
-
import {
|
|
4
|
+
import { TARGETED_GRANT_KIND_KEYS, type TargetedGrantKind } from "../authorization/grant-kinds"
|
|
3
5
|
import type { AuthorizationContext, GrantIndex } from "../authorization/types"
|
|
4
6
|
import { createSixbError } from "../errors/internal"
|
|
7
|
+
import type { ObjectRef } from "../ontology"
|
|
8
|
+
import {
|
|
9
|
+
type ObjectReadExecutionLimits,
|
|
10
|
+
snapshotObjectReadExecutionLimits,
|
|
11
|
+
} from "../storage/objects/execution-limits"
|
|
12
|
+
import { compileSelectedObjectReadScope } from "../storage/objects/read-scope"
|
|
13
|
+
import type {
|
|
14
|
+
CompiledSelectedObjectReadScope,
|
|
15
|
+
SelectedObjectReadScope,
|
|
16
|
+
} from "../storage/objects/types"
|
|
5
17
|
import {
|
|
6
18
|
type AuthorizablePrincipal,
|
|
7
19
|
type AuthorizationRef,
|
|
8
20
|
createRuntimeAuthorizationCapability,
|
|
21
|
+
type ExecutionContext,
|
|
9
22
|
type ExecutionScope,
|
|
10
23
|
isRuntimeAuthorizationCapability,
|
|
11
24
|
type KernelOperation,
|
|
@@ -20,16 +33,33 @@ export type ResolvedRuntimeAuthorization =
|
|
|
20
33
|
readonly projectId: string
|
|
21
34
|
readonly context: AuthorizationContext
|
|
22
35
|
readonly ref: Extract<AuthorizationRef, { readonly type: "principal" }>
|
|
23
|
-
/** Process-local binding used by provider façades that explicitly support agent runs. */
|
|
24
|
-
readonly executionBinding?: AgentExecutionBinding
|
|
25
36
|
}
|
|
26
37
|
| {
|
|
27
38
|
readonly type: "unrestricted"
|
|
28
39
|
readonly projectId: string
|
|
29
|
-
readonly ref: Exclude<AuthorizationRef, { readonly type: "principal" }>
|
|
40
|
+
readonly ref: Exclude<AuthorizationRef, { readonly type: "principal" | "delegated" }>
|
|
41
|
+
}
|
|
42
|
+
| {
|
|
43
|
+
readonly type: "delegated"
|
|
44
|
+
readonly projectId: string
|
|
45
|
+
readonly objectRead: DelegatedObjectReadAuthorization
|
|
46
|
+
readonly actionApply: readonly DelegatedActionApplyTarget[]
|
|
47
|
+
readonly delegation?: Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"]
|
|
30
48
|
}
|
|
31
49
|
| { readonly type: "denied" }
|
|
32
50
|
|
|
51
|
+
/** Immutable process-local object-read authority. It has no durable representation. */
|
|
52
|
+
export interface DelegatedObjectReadAuthorization {
|
|
53
|
+
readonly scope: CompiledSelectedObjectReadScope
|
|
54
|
+
readonly limits: ObjectReadExecutionLimits
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** One exact object-bound Action target carried by process-local delegated authority. */
|
|
58
|
+
export interface DelegatedActionApplyTarget {
|
|
59
|
+
readonly actionId: string
|
|
60
|
+
readonly subject: ObjectRef
|
|
61
|
+
}
|
|
62
|
+
|
|
33
63
|
type RegisteredRuntimeAuthorization = Exclude<
|
|
34
64
|
ResolvedRuntimeAuthorization,
|
|
35
65
|
{ readonly type: "denied" }
|
|
@@ -39,53 +69,70 @@ type PrincipalAuthorizationContext = Omit<AuthorizationContext, "principal"> & {
|
|
|
39
69
|
readonly principal: AuthorizablePrincipal
|
|
40
70
|
}
|
|
41
71
|
|
|
42
|
-
interface
|
|
43
|
-
readonly
|
|
44
|
-
readonly
|
|
45
|
-
readonly agentId: string
|
|
46
|
-
readonly runId: string
|
|
72
|
+
interface RuntimeAuthorizationRegistration {
|
|
73
|
+
readonly resolved: RegisteredRuntimeAuthorization
|
|
74
|
+
readonly execution: ExecutionContext
|
|
47
75
|
}
|
|
48
76
|
|
|
49
|
-
const registeredAuthorizations = new WeakMap<
|
|
77
|
+
const registeredAuthorizations = new WeakMap<
|
|
78
|
+
RuntimeAuthorization,
|
|
79
|
+
RuntimeAuthorizationRegistration
|
|
80
|
+
>()
|
|
81
|
+
|
|
82
|
+
const MAX_DELEGATED_ACTION_APPLY_TARGETS = 4_096
|
|
83
|
+
const MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS = 1_000_000
|
|
50
84
|
|
|
51
85
|
export function createPrincipalRuntimeAuthorization(input: {
|
|
52
|
-
readonly
|
|
86
|
+
readonly execution: ExecutionContext
|
|
53
87
|
readonly context: AuthorizationContext
|
|
54
88
|
readonly credential?: Extract<AuthorizationRef, { readonly type: "principal" }>["credential"]
|
|
55
89
|
}): RuntimeAuthorization {
|
|
90
|
+
if (input.execution.executor.type !== "request") {
|
|
91
|
+
throw new Error("[Sixb] Principal runtime authorization requires a request execution.")
|
|
92
|
+
}
|
|
56
93
|
return createRegisteredPrincipalAuthorization(input)
|
|
57
94
|
}
|
|
58
95
|
|
|
59
|
-
/** Register
|
|
96
|
+
/** Register restored authority bound to one exact agent run. */
|
|
60
97
|
export function createAgentRuntimeAuthorization(input: {
|
|
61
|
-
readonly
|
|
62
|
-
readonly
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
98
|
+
readonly execution: ExecutionContext
|
|
99
|
+
readonly authority:
|
|
100
|
+
| {
|
|
101
|
+
readonly type: "principal"
|
|
102
|
+
readonly context: AuthorizationContext
|
|
103
|
+
readonly credential?: Extract<
|
|
104
|
+
AuthorizationRef,
|
|
105
|
+
{ readonly type: "principal" }
|
|
106
|
+
>["credential"]
|
|
107
|
+
}
|
|
108
|
+
| { readonly type: "disabled" }
|
|
66
109
|
}): RuntimeAuthorization {
|
|
67
|
-
if (input.
|
|
68
|
-
throw new Error("[Sixb] Agent
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
110
|
+
if (input.execution.executor.type !== "agent") {
|
|
111
|
+
throw new Error("[Sixb] Agent runtime authorization requires an Agent execution.")
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (input.authority.type === "principal") {
|
|
115
|
+
return createRegisteredPrincipalAuthorization({
|
|
116
|
+
execution: input.execution,
|
|
117
|
+
context: input.authority.context,
|
|
118
|
+
...(input.authority.credential === undefined
|
|
119
|
+
? {}
|
|
120
|
+
: { credential: input.authority.credential }),
|
|
121
|
+
})
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return register(input.execution, {
|
|
125
|
+
type: "unrestricted",
|
|
126
|
+
projectId: input.execution.projectId,
|
|
127
|
+
ref: Object.freeze({ type: "disabled" }),
|
|
78
128
|
})
|
|
79
129
|
}
|
|
80
130
|
|
|
81
|
-
function createRegisteredPrincipalAuthorization(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
},
|
|
87
|
-
executionBinding?: AgentExecutionBinding
|
|
88
|
-
): RuntimeAuthorization {
|
|
131
|
+
function createRegisteredPrincipalAuthorization(input: {
|
|
132
|
+
readonly execution: ExecutionContext
|
|
133
|
+
readonly context: AuthorizationContext
|
|
134
|
+
readonly credential?: Extract<AuthorizationRef, { readonly type: "principal" }>["credential"]
|
|
135
|
+
}): RuntimeAuthorization {
|
|
89
136
|
const context = snapshotAuthorizationContext(input.context)
|
|
90
137
|
const credential = input.credential ? snapshotCredential(input.credential) : undefined
|
|
91
138
|
assertCredentialMatchesContext(context, credential)
|
|
@@ -94,41 +141,79 @@ function createRegisteredPrincipalAuthorization(
|
|
|
94
141
|
principal: context.principal,
|
|
95
142
|
...(credential === undefined ? {} : { credential }),
|
|
96
143
|
})
|
|
97
|
-
return register({
|
|
144
|
+
return register(input.execution, {
|
|
98
145
|
type: "principal",
|
|
99
|
-
projectId: input.projectId,
|
|
146
|
+
projectId: input.execution.projectId,
|
|
100
147
|
context,
|
|
101
148
|
ref,
|
|
102
|
-
...(executionBinding === undefined
|
|
103
|
-
? {}
|
|
104
|
-
: { executionBinding: Object.freeze({ ...executionBinding }) }),
|
|
105
149
|
})
|
|
106
150
|
}
|
|
107
151
|
|
|
108
|
-
export function createDisabledRuntimeAuthorization(
|
|
109
|
-
|
|
152
|
+
export function createDisabledRuntimeAuthorization(
|
|
153
|
+
execution: ExecutionContext
|
|
154
|
+
): RuntimeAuthorization {
|
|
155
|
+
return register(execution, {
|
|
156
|
+
type: "unrestricted",
|
|
157
|
+
projectId: execution.projectId,
|
|
158
|
+
ref: Object.freeze({ type: "disabled" }),
|
|
159
|
+
})
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** Register exact object-read authority without fabricating a principal identity. */
|
|
163
|
+
export function createDelegatedRuntimeAuthorization(input: {
|
|
164
|
+
readonly execution: ExecutionContext
|
|
165
|
+
readonly objectRead: {
|
|
166
|
+
readonly selection: SelectedObjectReadScope
|
|
167
|
+
readonly limits: ObjectReadExecutionLimits
|
|
168
|
+
}
|
|
169
|
+
readonly actionApply?: readonly DelegatedActionApplyTarget[]
|
|
170
|
+
readonly delegation?: Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"]
|
|
171
|
+
}): RuntimeAuthorization {
|
|
172
|
+
const execution = input.execution
|
|
173
|
+
const objectReadInput = input.objectRead
|
|
174
|
+
const actionApplyInput = input.actionApply
|
|
175
|
+
const delegationInput = input.delegation
|
|
176
|
+
const delegation =
|
|
177
|
+
delegationInput === undefined ? undefined : snapshotSharedDelegation(delegationInput)
|
|
178
|
+
if (execution.executor.type !== "request" || execution.requestedBy !== undefined) {
|
|
179
|
+
throw new Error(
|
|
180
|
+
"[Sixb] Delegated runtime authorization requires a request execution without a principal."
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const objectRead = Object.freeze({
|
|
185
|
+
scope: compileSelectedObjectReadScope(objectReadInput.selection),
|
|
186
|
+
limits: snapshotObjectReadExecutionLimits(objectReadInput.limits),
|
|
187
|
+
})
|
|
188
|
+
return register(execution, {
|
|
189
|
+
type: "delegated",
|
|
190
|
+
projectId: execution.projectId,
|
|
191
|
+
objectRead,
|
|
192
|
+
actionApply: snapshotDelegatedActionApply(actionApplyInput ?? []),
|
|
193
|
+
...(delegation === undefined ? {} : { delegation }),
|
|
194
|
+
})
|
|
110
195
|
}
|
|
111
196
|
|
|
112
197
|
export function createTrustedPrimitiveRuntimeAuthorization(input: {
|
|
113
|
-
readonly
|
|
198
|
+
readonly execution: ExecutionContext
|
|
114
199
|
readonly primitive: TrustedPrimitiveRef
|
|
115
200
|
}): RuntimeAuthorization {
|
|
116
201
|
const primitive = snapshotTrustedPrimitive(input.primitive)
|
|
117
|
-
return register({
|
|
202
|
+
return register(input.execution, {
|
|
118
203
|
type: "unrestricted",
|
|
119
|
-
projectId: input.projectId,
|
|
204
|
+
projectId: input.execution.projectId,
|
|
120
205
|
ref: Object.freeze({ type: "trustedPrimitive", primitive }),
|
|
121
206
|
})
|
|
122
207
|
}
|
|
123
208
|
|
|
124
209
|
export function createKernelRuntimeAuthorization(input: {
|
|
125
|
-
readonly
|
|
210
|
+
readonly execution: ExecutionContext
|
|
126
211
|
readonly operation: KernelOperation
|
|
127
212
|
}): RuntimeAuthorization {
|
|
128
213
|
const operation = snapshotKernelOperation(input.operation)
|
|
129
|
-
return register({
|
|
214
|
+
return register(input.execution, {
|
|
130
215
|
type: "unrestricted",
|
|
131
|
-
projectId: input.projectId,
|
|
216
|
+
projectId: input.execution.projectId,
|
|
132
217
|
ref: Object.freeze({ type: "kernel", operation }),
|
|
133
218
|
})
|
|
134
219
|
}
|
|
@@ -137,7 +222,28 @@ export function resolveRuntimeAuthorization(authorization: unknown): ResolvedRun
|
|
|
137
222
|
if (!isRuntimeAuthorizationCapability(authorization)) {
|
|
138
223
|
return { type: "denied" }
|
|
139
224
|
}
|
|
140
|
-
return registeredAuthorizations.get(authorization) ?? { type: "denied" }
|
|
225
|
+
return registeredAuthorizations.get(authorization)?.resolved ?? { type: "denied" }
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Resolve authority from a runtime already admitted by `SixbHost.withScope`.
|
|
230
|
+
*
|
|
231
|
+
* Bound runtime facades carry no second execution value to recombine. Any lower-level boundary
|
|
232
|
+
* that receives an `ExecutionContext` separately must use `resolveExecutionScopeAuthorization`.
|
|
233
|
+
*/
|
|
234
|
+
export function resolveRuntimeAuthorizationForProject(input: {
|
|
235
|
+
readonly projectId: unknown
|
|
236
|
+
readonly runtimeAuthorization?: unknown
|
|
237
|
+
}): ResolvedRuntimeAuthorization {
|
|
238
|
+
const resolved = resolveRuntimeAuthorization(input.runtimeAuthorization)
|
|
239
|
+
if (
|
|
240
|
+
resolved.type === "denied" ||
|
|
241
|
+
typeof input.projectId !== "string" ||
|
|
242
|
+
resolved.projectId !== input.projectId
|
|
243
|
+
) {
|
|
244
|
+
return { type: "denied" }
|
|
245
|
+
}
|
|
246
|
+
return resolved
|
|
141
247
|
}
|
|
142
248
|
|
|
143
249
|
export function getAuthorizationRef(authorization: RuntimeAuthorization): AuthorizationRef {
|
|
@@ -145,9 +251,29 @@ export function getAuthorizationRef(authorization: RuntimeAuthorization): Author
|
|
|
145
251
|
if (resolved.type === "denied") {
|
|
146
252
|
throw new Error("[Sixb] Runtime authorization is not a registered Core capability.")
|
|
147
253
|
}
|
|
254
|
+
if (resolved.type === "delegated") {
|
|
255
|
+
if (resolved.delegation) {
|
|
256
|
+
return { type: "delegated", delegation: { ...resolved.delegation } }
|
|
257
|
+
}
|
|
258
|
+
throw new Error(
|
|
259
|
+
"[Sixb] Delegated runtime authorization cannot cross a durable execution boundary."
|
|
260
|
+
)
|
|
261
|
+
}
|
|
148
262
|
return cloneAuthorizationRef(resolved.ref)
|
|
149
263
|
}
|
|
150
264
|
|
|
265
|
+
function snapshotSharedDelegation(
|
|
266
|
+
input: Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"]
|
|
267
|
+
): Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"] {
|
|
268
|
+
const kind = input.kind
|
|
269
|
+
const grantId = input.grantId
|
|
270
|
+
const sessionId = input.sessionId
|
|
271
|
+
if (kind !== "share") throw new Error("[Sixb] Unknown delegated authority provenance.")
|
|
272
|
+
assertNonEmpty(grantId, "Share grant id")
|
|
273
|
+
assertNonEmpty(sessionId, "Share session id")
|
|
274
|
+
return Object.freeze({ kind, grantId, sessionId })
|
|
275
|
+
}
|
|
276
|
+
|
|
151
277
|
export function assertExecutionScopeProject(projectId: string, scope: ExecutionScope): void {
|
|
152
278
|
assertNonEmpty(projectId, "Project id")
|
|
153
279
|
if (scope.execution.projectId !== projectId) {
|
|
@@ -187,22 +313,51 @@ export function assertExecutionScopeProject(projectId: string, scope: ExecutionS
|
|
|
187
313
|
}
|
|
188
314
|
}
|
|
189
315
|
|
|
316
|
+
/**
|
|
317
|
+
* Capture the two opaque capabilities carried by a scope exactly once.
|
|
318
|
+
*
|
|
319
|
+
* Security-sensitive boundaries must not resolve a caller-owned wrapper and then read it again:
|
|
320
|
+
* accessor-backed inputs could otherwise substitute a different execution or authority between
|
|
321
|
+
* those operations.
|
|
322
|
+
*/
|
|
323
|
+
export function captureExecutionScope(scope: ExecutionScope): ExecutionScope {
|
|
324
|
+
const execution = scope.execution
|
|
325
|
+
const authorization = scope.authorization
|
|
326
|
+
return Object.freeze({ execution, authorization })
|
|
327
|
+
}
|
|
328
|
+
|
|
190
329
|
/** Validate that one registered authority belongs to the exact execution it accompanies. */
|
|
191
330
|
export function resolveExecutionScopeAuthorization(
|
|
192
331
|
projectId: string,
|
|
193
332
|
scope: ExecutionScope
|
|
194
333
|
): RegisteredRuntimeAuthorization {
|
|
195
|
-
|
|
196
|
-
|
|
334
|
+
const capturedScope = captureExecutionScope(scope)
|
|
335
|
+
assertExecutionScopeProject(projectId, capturedScope)
|
|
336
|
+
const resolved = resolveRuntimeAuthorization(capturedScope.authorization)
|
|
197
337
|
if (resolved.type === "denied") {
|
|
198
338
|
throw createSixbError(
|
|
199
339
|
"internal.unexpected",
|
|
200
340
|
"[Sixb] Execution scope carries unregistered runtime authorization.",
|
|
201
|
-
{ details: { executionId:
|
|
341
|
+
{ details: { executionId: capturedScope.execution.id, projectId } }
|
|
202
342
|
)
|
|
203
343
|
}
|
|
204
344
|
|
|
205
|
-
const
|
|
345
|
+
const registration = registeredAuthorizations.get(capturedScope.authorization)
|
|
346
|
+
if (!registration || !executionMatchesBinding(registration.execution, capturedScope.execution)) {
|
|
347
|
+
throw invalidExecutionAuthority(
|
|
348
|
+
capturedScope.execution.id,
|
|
349
|
+
"authority is bound to different execution provenance"
|
|
350
|
+
)
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
assertResolvedAuthorizationMatchesExecution(resolved, capturedScope.execution)
|
|
354
|
+
return resolved
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
function assertResolvedAuthorizationMatchesExecution(
|
|
358
|
+
resolved: RegisteredRuntimeAuthorization,
|
|
359
|
+
execution: ExecutionContext
|
|
360
|
+
): void {
|
|
206
361
|
switch (execution.executor.type) {
|
|
207
362
|
case "request":
|
|
208
363
|
if (
|
|
@@ -211,27 +366,31 @@ export function resolveExecutionScopeAuthorization(
|
|
|
211
366
|
) {
|
|
212
367
|
throw invalidExecutionAuthority(execution.id, "request source does not match its executor")
|
|
213
368
|
}
|
|
214
|
-
if (resolved.
|
|
215
|
-
if (
|
|
216
|
-
resolved.type !== "principal" ||
|
|
217
|
-
resolved.executionBinding !== undefined ||
|
|
218
|
-
!principalsEqual(execution.requestedBy, resolved.ref.principal)
|
|
219
|
-
) {
|
|
369
|
+
if (resolved.type === "principal") {
|
|
370
|
+
if (!principalsEqual(execution.requestedBy, resolved.ref.principal)) {
|
|
220
371
|
throw invalidExecutionAuthority(
|
|
221
372
|
execution.id,
|
|
222
373
|
"request authority does not match its requested-by principal"
|
|
223
374
|
)
|
|
224
375
|
}
|
|
225
|
-
return
|
|
376
|
+
return
|
|
377
|
+
}
|
|
378
|
+
if (
|
|
379
|
+
resolved.type === "unrestricted" &&
|
|
380
|
+
resolved.ref.type === "disabled" &&
|
|
381
|
+
execution.requestedBy === undefined
|
|
382
|
+
) {
|
|
383
|
+
return
|
|
226
384
|
}
|
|
227
|
-
if (resolved.
|
|
385
|
+
if (resolved.type === "delegated" && execution.requestedBy === undefined) return
|
|
228
386
|
throw invalidExecutionAuthority(
|
|
229
387
|
execution.id,
|
|
230
|
-
"request execution requires principal or explicitly disabled authority"
|
|
388
|
+
"request execution requires principal, delegated, or explicitly disabled authority"
|
|
231
389
|
)
|
|
232
390
|
|
|
233
391
|
case "primitive":
|
|
234
392
|
if (
|
|
393
|
+
resolved.type !== "unrestricted" ||
|
|
235
394
|
resolved.ref.type !== "trustedPrimitive" ||
|
|
236
395
|
resolved.ref.primitive.kind !== execution.executor.kind ||
|
|
237
396
|
resolved.ref.primitive.id !== execution.executor.id ||
|
|
@@ -242,28 +401,45 @@ export function resolveExecutionScopeAuthorization(
|
|
|
242
401
|
"trusted primitive authority does not match its executor"
|
|
243
402
|
)
|
|
244
403
|
}
|
|
245
|
-
return
|
|
404
|
+
return
|
|
246
405
|
|
|
247
406
|
case "agent":
|
|
248
|
-
if (
|
|
249
|
-
resolved.type !== "principal" ||
|
|
250
|
-
resolved.ref.type !== "principal" ||
|
|
251
|
-
resolved.ref.principal.type !== "serviceAccount" ||
|
|
252
|
-
resolved.ref.credential !== undefined ||
|
|
253
|
-
resolved.executionBinding?.type !== "agent" ||
|
|
254
|
-
resolved.executionBinding.executionId !== execution.id ||
|
|
255
|
-
resolved.executionBinding.agentId !== execution.executor.agentId ||
|
|
256
|
-
resolved.executionBinding.runId !== execution.executor.runId
|
|
257
|
-
) {
|
|
407
|
+
if (execution.source.type !== "execution") {
|
|
258
408
|
throw invalidExecutionAuthority(
|
|
259
409
|
execution.id,
|
|
260
|
-
"agent
|
|
410
|
+
"agent execution requires an execution source"
|
|
261
411
|
)
|
|
262
412
|
}
|
|
263
|
-
|
|
413
|
+
if (resolved.type === "principal" && resolved.ref.type === "principal") {
|
|
414
|
+
if (resolved.ref.principal.type === "serviceAccount") {
|
|
415
|
+
const actorId = execution.executor.actorId
|
|
416
|
+
if (
|
|
417
|
+
actorId === undefined ||
|
|
418
|
+
resolved.ref.principal.id !== agentServiceAccountId(actorId) ||
|
|
419
|
+
resolved.ref.credential !== undefined
|
|
420
|
+
) {
|
|
421
|
+
throw invalidExecutionAuthority(
|
|
422
|
+
execution.id,
|
|
423
|
+
"agent authority must reference its managed service account"
|
|
424
|
+
)
|
|
425
|
+
}
|
|
426
|
+
} else if (resolved.ref.credential === undefined) {
|
|
427
|
+
throw invalidExecutionAuthority(
|
|
428
|
+
execution.id,
|
|
429
|
+
"inherited user agent authority requires a credential"
|
|
430
|
+
)
|
|
431
|
+
}
|
|
432
|
+
return
|
|
433
|
+
}
|
|
434
|
+
if (resolved.type === "unrestricted" && resolved.ref.type === "disabled") return
|
|
435
|
+
throw invalidExecutionAuthority(
|
|
436
|
+
execution.id,
|
|
437
|
+
"agent authority must be principal or explicitly disabled"
|
|
438
|
+
)
|
|
264
439
|
|
|
265
440
|
case "kernel":
|
|
266
441
|
if (
|
|
442
|
+
resolved.type !== "unrestricted" ||
|
|
267
443
|
resolved.ref.type !== "kernel" ||
|
|
268
444
|
execution.requestedBy !== undefined ||
|
|
269
445
|
resolved.ref.operation.type !== execution.executor.operation.type ||
|
|
@@ -274,7 +450,7 @@ export function resolveExecutionScopeAuthorization(
|
|
|
274
450
|
"kernel authority does not match its executor"
|
|
275
451
|
)
|
|
276
452
|
}
|
|
277
|
-
return
|
|
453
|
+
return
|
|
278
454
|
}
|
|
279
455
|
}
|
|
280
456
|
|
|
@@ -293,22 +469,122 @@ function invalidExecutionAuthority(executionId: string, reason: string): Error {
|
|
|
293
469
|
)
|
|
294
470
|
}
|
|
295
471
|
|
|
296
|
-
function register(
|
|
472
|
+
function register(
|
|
473
|
+
execution: ExecutionContext,
|
|
474
|
+
input: RegisteredRuntimeAuthorization
|
|
475
|
+
): RuntimeAuthorization {
|
|
297
476
|
assertNonEmpty(input.projectId, "Authorization project id")
|
|
477
|
+
const executionBinding = snapshotExecutionContext(execution)
|
|
478
|
+
if (input.projectId !== executionBinding.projectId) {
|
|
479
|
+
throw new Error(
|
|
480
|
+
`[Sixb] Runtime authorization belongs to project '${input.projectId}', not execution project '${executionBinding.projectId}'.`
|
|
481
|
+
)
|
|
482
|
+
}
|
|
483
|
+
assertResolvedAuthorizationMatchesExecution(input, executionBinding)
|
|
298
484
|
const authorization = createRuntimeAuthorizationCapability()
|
|
299
|
-
registeredAuthorizations.set(
|
|
485
|
+
registeredAuthorizations.set(
|
|
486
|
+
authorization,
|
|
487
|
+
Object.freeze({ resolved: Object.freeze(input), execution: executionBinding })
|
|
488
|
+
)
|
|
300
489
|
return authorization
|
|
301
490
|
}
|
|
302
491
|
|
|
492
|
+
function executionMatchesBinding(binding: ExecutionContext, execution: ExecutionContext): boolean {
|
|
493
|
+
try {
|
|
494
|
+
return isDeepStrictEqual(binding, snapshotExecutionContext(execution))
|
|
495
|
+
} catch {
|
|
496
|
+
return false
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
function snapshotExecutionContext(execution: ExecutionContext): ExecutionContext {
|
|
501
|
+
assertNonEmpty(execution.id, "Execution id")
|
|
502
|
+
assertNonEmpty(execution.projectId, "Execution project id")
|
|
503
|
+
assertNonEmpty(execution.correlationId, "Execution correlation id")
|
|
504
|
+
return Object.freeze({
|
|
505
|
+
id: execution.id,
|
|
506
|
+
projectId: execution.projectId,
|
|
507
|
+
...(execution.requestedBy === undefined
|
|
508
|
+
? {}
|
|
509
|
+
: { requestedBy: snapshotAuthorizablePrincipal(execution.requestedBy) }),
|
|
510
|
+
executor: snapshotExecutionExecutor(execution.executor),
|
|
511
|
+
source: snapshotExecutionSource(execution.source),
|
|
512
|
+
correlationId: execution.correlationId,
|
|
513
|
+
})
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
function snapshotExecutionExecutor(
|
|
517
|
+
executor: ExecutionContext["executor"]
|
|
518
|
+
): ExecutionContext["executor"] {
|
|
519
|
+
switch (executor.type) {
|
|
520
|
+
case "request":
|
|
521
|
+
assertNonEmpty(executor.requestId, "Execution request id")
|
|
522
|
+
return Object.freeze({ type: "request", requestId: executor.requestId })
|
|
523
|
+
case "primitive": {
|
|
524
|
+
const primitive = snapshotTrustedPrimitive(executor)
|
|
525
|
+
return Object.freeze({ type: "primitive", ...primitive })
|
|
526
|
+
}
|
|
527
|
+
case "agent":
|
|
528
|
+
if (executor.actorId !== undefined)
|
|
529
|
+
assertNonEmpty(executor.actorId, "Execution Agent actor id")
|
|
530
|
+
assertNonEmpty(executor.runId, "Execution Agent run id")
|
|
531
|
+
return Object.freeze({
|
|
532
|
+
type: "agent",
|
|
533
|
+
...(executor.actorId === undefined ? {} : { actorId: executor.actorId }),
|
|
534
|
+
runId: executor.runId,
|
|
535
|
+
})
|
|
536
|
+
case "kernel":
|
|
537
|
+
return Object.freeze({
|
|
538
|
+
type: "kernel",
|
|
539
|
+
operation: snapshotKernelOperation(executor.operation),
|
|
540
|
+
})
|
|
541
|
+
}
|
|
542
|
+
throw new Error(
|
|
543
|
+
`[Sixb] Unknown execution executor type '${String((executor as { type?: unknown }).type)}'.`
|
|
544
|
+
)
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
function snapshotExecutionSource(source: ExecutionContext["source"]): ExecutionContext["source"] {
|
|
548
|
+
switch (source.type) {
|
|
549
|
+
case "http":
|
|
550
|
+
assertNonEmpty(source.requestId, "Execution source request id")
|
|
551
|
+
return Object.freeze({ type: "http", requestId: source.requestId })
|
|
552
|
+
case "webhook":
|
|
553
|
+
assertNonEmpty(source.deliveryId, "Execution source delivery id")
|
|
554
|
+
return Object.freeze({ type: "webhook", deliveryId: source.deliveryId })
|
|
555
|
+
case "schedule":
|
|
556
|
+
case "event":
|
|
557
|
+
assertNonEmpty(source.eventId, "Execution source event id")
|
|
558
|
+
return Object.freeze({ type: source.type, eventId: source.eventId })
|
|
559
|
+
case "datasetVersion":
|
|
560
|
+
assertNonEmpty(source.datasetId, "Execution source dataset id")
|
|
561
|
+
assertNonEmpty(source.versionId, "Execution source dataset version id")
|
|
562
|
+
return Object.freeze({
|
|
563
|
+
type: "datasetVersion",
|
|
564
|
+
datasetId: source.datasetId,
|
|
565
|
+
versionId: source.versionId,
|
|
566
|
+
})
|
|
567
|
+
case "execution":
|
|
568
|
+
assertNonEmpty(source.executionId, "Execution source execution id")
|
|
569
|
+
return Object.freeze({ type: "execution", executionId: source.executionId })
|
|
570
|
+
}
|
|
571
|
+
throw new Error(
|
|
572
|
+
`[Sixb] Unknown execution source type '${String((source as { type?: unknown }).type)}'.`
|
|
573
|
+
)
|
|
574
|
+
}
|
|
575
|
+
|
|
303
576
|
function snapshotAuthorizationContext(
|
|
304
577
|
context: AuthorizationContext
|
|
305
578
|
): PrincipalAuthorizationContext {
|
|
306
579
|
const principal = snapshotAuthorizablePrincipal(context.principal)
|
|
307
|
-
const grants =
|
|
308
|
-
for (const kind of
|
|
309
|
-
grants[kind] = new
|
|
580
|
+
const grants = {} as Record<TargetedGrantKind, ReadonlySet<string>>
|
|
581
|
+
for (const kind of TARGETED_GRANT_KIND_KEYS) {
|
|
582
|
+
grants[kind] = new ImmutableGrantSet(context.grants[kind])
|
|
310
583
|
}
|
|
311
|
-
const frozenGrants: GrantIndex = Object.freeze(
|
|
584
|
+
const frozenGrants: GrantIndex = Object.freeze({
|
|
585
|
+
...grants,
|
|
586
|
+
"run:agent": context.grants["run:agent"],
|
|
587
|
+
})
|
|
312
588
|
return Object.freeze({
|
|
313
589
|
principal,
|
|
314
590
|
...(context.sessionId === undefined ? {} : { sessionId: context.sessionId }),
|
|
@@ -318,6 +594,68 @@ function snapshotAuthorizationContext(
|
|
|
318
594
|
})
|
|
319
595
|
}
|
|
320
596
|
|
|
597
|
+
/** Read-only Set semantics with no mutable handle hidden behind the TypeScript interface. */
|
|
598
|
+
class ImmutableGrantSet implements ReadonlySet<string> {
|
|
599
|
+
readonly #values: Set<string>
|
|
600
|
+
readonly [Symbol.toStringTag] = "Set"
|
|
601
|
+
|
|
602
|
+
constructor(values: Iterable<string>) {
|
|
603
|
+
this.#values = new Set(values)
|
|
604
|
+
Object.freeze(this)
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
get size(): number {
|
|
608
|
+
return this.#values.size
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
has(value: string): boolean {
|
|
612
|
+
return this.#values.has(value)
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
entries(): ReturnType<Set<string>["entries"]> {
|
|
616
|
+
return this.#values.entries()
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
keys(): ReturnType<Set<string>["keys"]> {
|
|
620
|
+
return this.#values.keys()
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
values(): ReturnType<Set<string>["values"]> {
|
|
624
|
+
return this.#values.values()
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
[Symbol.iterator](): ReturnType<Set<string>[typeof Symbol.iterator]> {
|
|
628
|
+
return this.#values[Symbol.iterator]()
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
forEach(
|
|
632
|
+
callback: (value: string, valueAgain: string, set: ReadonlySet<string>) => void,
|
|
633
|
+
thisArg?: unknown
|
|
634
|
+
): void {
|
|
635
|
+
for (const value of this.#values) {
|
|
636
|
+
callback.call(thisArg, value, value, this)
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
add(_value: string): never {
|
|
641
|
+
throw immutableGrantSetMutation()
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
delete(_value: string): never {
|
|
645
|
+
throw immutableGrantSetMutation()
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
clear(): never {
|
|
649
|
+
throw immutableGrantSetMutation()
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
Object.freeze(ImmutableGrantSet.prototype)
|
|
654
|
+
|
|
655
|
+
function immutableGrantSetMutation(): Error {
|
|
656
|
+
return new Error("[Sixb] Runtime authorization grants are immutable.")
|
|
657
|
+
}
|
|
658
|
+
|
|
321
659
|
function snapshotAuthorizablePrincipal(principal: Principal): AuthorizablePrincipal {
|
|
322
660
|
if (principal.type !== "user" && principal.type !== "serviceAccount") {
|
|
323
661
|
throw new Error(`[Sixb] Principal type '${principal.type}' cannot hold runtime authorization.`)
|
|
@@ -373,6 +711,76 @@ function snapshotKernelOperation(operation: KernelOperation): KernelOperation {
|
|
|
373
711
|
return Object.freeze({ type: operation.type, recoveryId: operation.recoveryId })
|
|
374
712
|
}
|
|
375
713
|
|
|
714
|
+
/** Validate, bound, and detach exact delegated Action targets before registering authority. */
|
|
715
|
+
function snapshotDelegatedActionApply(
|
|
716
|
+
input: readonly DelegatedActionApplyTarget[]
|
|
717
|
+
): readonly DelegatedActionApplyTarget[] {
|
|
718
|
+
if (!Array.isArray(input)) {
|
|
719
|
+
throw new Error("[Sixb] Delegated Action targets must be an array.")
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
const targetCount = input.length
|
|
723
|
+
if (targetCount > MAX_DELEGATED_ACTION_APPLY_TARGETS) {
|
|
724
|
+
throw new Error(
|
|
725
|
+
`[Sixb] Delegated authority exceeds the maximum of ${MAX_DELEGATED_ACTION_APPLY_TARGETS} Action targets.`
|
|
726
|
+
)
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
let identifierCharacters = 0
|
|
730
|
+
const targets: DelegatedActionApplyTarget[] = []
|
|
731
|
+
for (let index = 0; index < targetCount; index += 1) {
|
|
732
|
+
const authoredTarget = input[index]
|
|
733
|
+
if (!isRecord(authoredTarget)) {
|
|
734
|
+
throw new Error(`[Sixb] Delegated Action target ${index} must be an object.`)
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
const authoredActionId = authoredTarget.actionId
|
|
738
|
+
const authoredSubject = authoredTarget.subject
|
|
739
|
+
if (!isRecord(authoredSubject)) {
|
|
740
|
+
throw new Error(`[Sixb] Delegated Action target ${index} subject must be an ObjectRef.`)
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
const actionId = delegatedActionIdentifier(
|
|
744
|
+
authoredActionId,
|
|
745
|
+
`Delegated Action target ${index} action id`
|
|
746
|
+
)
|
|
747
|
+
const objectTypeId = delegatedActionIdentifier(
|
|
748
|
+
authoredSubject.objectTypeId,
|
|
749
|
+
`Delegated Action target ${index} subject object type id`
|
|
750
|
+
)
|
|
751
|
+
const primaryId = delegatedActionIdentifier(
|
|
752
|
+
authoredSubject.primaryId,
|
|
753
|
+
`Delegated Action target ${index} subject primary id`
|
|
754
|
+
)
|
|
755
|
+
identifierCharacters += actionId.length + objectTypeId.length + primaryId.length
|
|
756
|
+
if (identifierCharacters > MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS) {
|
|
757
|
+
throw new Error(
|
|
758
|
+
`[Sixb] Delegated authority exceeds the maximum of ${MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS} Action identifier characters.`
|
|
759
|
+
)
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
targets.push(
|
|
763
|
+
Object.freeze({
|
|
764
|
+
actionId,
|
|
765
|
+
subject: Object.freeze({ objectTypeId, primaryId }),
|
|
766
|
+
})
|
|
767
|
+
)
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
return Object.freeze(targets)
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
function delegatedActionIdentifier(value: unknown, label: string): string {
|
|
774
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
775
|
+
throw new Error(`[Sixb] ${label} must not be empty.`)
|
|
776
|
+
}
|
|
777
|
+
return value
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
781
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
782
|
+
}
|
|
783
|
+
|
|
376
784
|
function cloneAuthorizationRef(ref: AuthorizationRef): AuthorizationRef {
|
|
377
785
|
switch (ref.type) {
|
|
378
786
|
case "principal":
|
|
@@ -383,6 +791,8 @@ function cloneAuthorizationRef(ref: AuthorizationRef): AuthorizationRef {
|
|
|
383
791
|
}
|
|
384
792
|
case "trustedPrimitive":
|
|
385
793
|
return { type: "trustedPrimitive", primitive: { ...ref.primitive } }
|
|
794
|
+
case "delegated":
|
|
795
|
+
return { type: "delegated", delegation: { ...ref.delegation } }
|
|
386
796
|
case "kernel":
|
|
387
797
|
return { type: "kernel", operation: { ...ref.operation } }
|
|
388
798
|
case "disabled":
|