@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
package/src/security/grants.ts
CHANGED
|
@@ -7,12 +7,20 @@
|
|
|
7
7
|
* checks stay simple `set.has(id)` lookups.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { ActionDefinition } from "../actions/types"
|
|
11
|
-
import
|
|
10
|
+
import type { ActionDefinition, ObjectActionDefinition } from "../actions/types"
|
|
11
|
+
import { isObjectActionDefinition } from "../actions/validation"
|
|
12
|
+
import type { AgentReference, AgentUsageReference } from "../agents/types"
|
|
12
13
|
import type { ConnectorDefinition } from "../connectors"
|
|
13
14
|
import type { DatasetDefinition } from "../datasets"
|
|
14
15
|
import type { ObjectType } from "../ontology"
|
|
15
16
|
import type { PipelineDefinition } from "../pipelines"
|
|
17
|
+
import { createShareActionGrant, createShareViewGrant, isShareTarget } from "../shares/builders"
|
|
18
|
+
import type {
|
|
19
|
+
ShareActionGrantBuilder,
|
|
20
|
+
ShareDefinition,
|
|
21
|
+
ShareTarget,
|
|
22
|
+
ShareViewGrantBuilder,
|
|
23
|
+
} from "../shares/types"
|
|
16
24
|
import type { SyncDefinition } from "../syncs"
|
|
17
25
|
import type { WorkflowDefinition } from "../workflows/types"
|
|
18
26
|
import { SecurityValidationError } from "./errors"
|
|
@@ -24,6 +32,7 @@ import {
|
|
|
24
32
|
} from "./every"
|
|
25
33
|
import type {
|
|
26
34
|
AccessGrant,
|
|
35
|
+
AgentRunGrant,
|
|
27
36
|
AppendGrant,
|
|
28
37
|
ApplicationDefinition,
|
|
29
38
|
ApplyGrant,
|
|
@@ -32,6 +41,7 @@ import type {
|
|
|
32
41
|
ObserveGrant,
|
|
33
42
|
RunGrant,
|
|
34
43
|
Selection,
|
|
44
|
+
ShareGrant,
|
|
35
45
|
ViewGrant,
|
|
36
46
|
} from "./types"
|
|
37
47
|
|
|
@@ -41,7 +51,7 @@ type GrantInput<TDefinition, TTarget extends BreadthTarget> =
|
|
|
41
51
|
| BreadthSelector<TTarget>
|
|
42
52
|
|
|
43
53
|
const VIEW_TARGETS = ["object", "dataset"] as const
|
|
44
|
-
const RUN_TARGETS = ["workflow", "sync", "pipeline"
|
|
54
|
+
const RUN_TARGETS = ["workflow", "sync", "pipeline"] as const
|
|
45
55
|
|
|
46
56
|
/**
|
|
47
57
|
* Seven of the nine targets carry a `kind` discriminant naming themselves. The other two — an
|
|
@@ -52,10 +62,10 @@ const TARGET_BY_DEFINITION_KIND: Readonly<Partial<Record<string, BreadthTarget>>
|
|
|
52
62
|
dataset: "dataset",
|
|
53
63
|
sync: "sync",
|
|
54
64
|
pipeline: "pipeline",
|
|
55
|
-
agent: "agent",
|
|
56
65
|
workflow: "workflow",
|
|
57
66
|
application: "application",
|
|
58
67
|
connector: "connector",
|
|
68
|
+
share: "share",
|
|
59
69
|
}
|
|
60
70
|
|
|
61
71
|
const UNDISCRIMINATED_TARGETS: readonly BreadthTarget[] = ["object", "action"]
|
|
@@ -153,9 +163,15 @@ function access(input: GrantInput<ApplicationDefinition, "application">): Access
|
|
|
153
163
|
return { kind: "grant", capability: "access", target: "application", selection }
|
|
154
164
|
}
|
|
155
165
|
|
|
166
|
+
function view<const TObjectTypeId extends string>(
|
|
167
|
+
input: ShareTarget<TObjectTypeId>
|
|
168
|
+
): ShareViewGrantBuilder<TObjectTypeId>
|
|
156
169
|
function view(input: GrantInput<ObjectType, "object">): ViewGrant<"object">
|
|
157
170
|
function view(input: GrantInput<DatasetDefinition, "dataset">): ViewGrant<"dataset">
|
|
158
|
-
function view(
|
|
171
|
+
function view(
|
|
172
|
+
input: ShareTarget | GrantInput<ObjectType | DatasetDefinition, "object" | "dataset">
|
|
173
|
+
): ViewGrant | ShareViewGrantBuilder {
|
|
174
|
+
if (isShareTarget(input)) return createShareViewGrant(input)
|
|
159
175
|
const { target, selection } = resolveGrant(input, "can.view", VIEW_TARGETS)
|
|
160
176
|
return { kind: "grant", capability: "view", target, selection }
|
|
161
177
|
}
|
|
@@ -176,29 +192,85 @@ function append(input: GrantInput<ObjectType, "object">): AppendGrant {
|
|
|
176
192
|
}
|
|
177
193
|
}
|
|
178
194
|
|
|
195
|
+
function apply<const TAction extends ObjectActionDefinition>(
|
|
196
|
+
input: TAction
|
|
197
|
+
): ApplyGrant & ShareActionGrantBuilder<TAction>
|
|
198
|
+
function apply(input: GrantInput<ActionDefinition, "action">): ApplyGrant
|
|
179
199
|
function apply(input: GrantInput<ActionDefinition, "action">): ApplyGrant {
|
|
180
|
-
|
|
200
|
+
const grant: ApplyGrant = {
|
|
181
201
|
kind: "grant",
|
|
182
202
|
capability: "apply",
|
|
183
203
|
selection: resolveGrant(input, "can.apply", ["action"]).selection,
|
|
184
204
|
}
|
|
205
|
+
// `Array.isArray` does not narrow a readonly array. This cast restores the branch already proved
|
|
206
|
+
// above; every non-selector, non-array GrantInput is one Action definition.
|
|
207
|
+
const one: ActionDefinition | undefined =
|
|
208
|
+
Array.isArray(input) || isBreadthSelector(input) ? undefined : (input as ActionDefinition)
|
|
209
|
+
if (one && isObjectActionDefinition(one)) {
|
|
210
|
+
Object.defineProperty(grant, "on", {
|
|
211
|
+
configurable: false,
|
|
212
|
+
enumerable: false,
|
|
213
|
+
writable: false,
|
|
214
|
+
value: (target: ShareTarget) => createShareActionGrant(one, target),
|
|
215
|
+
})
|
|
216
|
+
}
|
|
217
|
+
return grant
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function share(input: GrantInput<ShareDefinition, "share">): ShareGrant {
|
|
221
|
+
return {
|
|
222
|
+
kind: "grant",
|
|
223
|
+
capability: "share",
|
|
224
|
+
selection: resolveGrant(input, "can.share", ["share"]).selection,
|
|
225
|
+
}
|
|
185
226
|
}
|
|
186
227
|
|
|
187
228
|
function run(input: GrantInput<WorkflowDefinition, "workflow">): RunGrant<"workflow">
|
|
188
229
|
function run(input: GrantInput<SyncDefinition, "sync">): RunGrant<"sync">
|
|
189
230
|
function run(input: GrantInput<PipelineDefinition, "pipeline">): RunGrant<"pipeline">
|
|
190
|
-
function run(input:
|
|
231
|
+
function run(input: AgentReference): AgentRunGrant
|
|
191
232
|
function run(
|
|
192
|
-
input:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
233
|
+
input:
|
|
234
|
+
| AgentReference
|
|
235
|
+
| GrantInput<
|
|
236
|
+
WorkflowDefinition | SyncDefinition | PipelineDefinition,
|
|
237
|
+
"workflow" | "sync" | "pipeline"
|
|
238
|
+
>
|
|
239
|
+
): RunGrant | AgentRunGrant {
|
|
240
|
+
if (isAgentReference(input)) {
|
|
241
|
+
return { kind: "grant", capability: "run", target: "agent" }
|
|
242
|
+
}
|
|
197
243
|
const { target, selection } = resolveGrant(input, "can.run", RUN_TARGETS)
|
|
198
244
|
return { kind: "grant", capability: "run", target, selection }
|
|
199
245
|
}
|
|
200
246
|
|
|
201
|
-
function
|
|
247
|
+
function isAgentReference(input: unknown): input is AgentReference {
|
|
248
|
+
return (
|
|
249
|
+
typeof input === "object" &&
|
|
250
|
+
input !== null &&
|
|
251
|
+
!Array.isArray(input) &&
|
|
252
|
+
!isBreadthSelector(input) &&
|
|
253
|
+
"kind" in input &&
|
|
254
|
+
input.kind === "agent"
|
|
255
|
+
)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
function isAgentUsageReference(input: unknown): input is AgentUsageReference {
|
|
259
|
+
return (
|
|
260
|
+
typeof input === "object" &&
|
|
261
|
+
input !== null &&
|
|
262
|
+
!Array.isArray(input) &&
|
|
263
|
+
!isBreadthSelector(input) &&
|
|
264
|
+
"kind" in input &&
|
|
265
|
+
input.kind === "aiUsage"
|
|
266
|
+
)
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
function observe(input: "logs" | AgentUsageReference): ObserveGrant {
|
|
270
|
+
if (input !== "logs" && !isAgentUsageReference(input)) {
|
|
271
|
+
throw new SecurityValidationError('[Sixb] can.observe accepts "logs" or agent.usage.')
|
|
272
|
+
}
|
|
273
|
+
const target = input === "logs" ? "logs" : "aiUsage"
|
|
202
274
|
return {
|
|
203
275
|
kind: "grant",
|
|
204
276
|
capability: "observe",
|
|
@@ -207,10 +279,23 @@ function observe(target: "logs"): ObserveGrant {
|
|
|
207
279
|
}
|
|
208
280
|
}
|
|
209
281
|
|
|
210
|
-
function manage(input: GrantInput<ConnectorDefinition, "connector">): ManageGrant
|
|
282
|
+
function manage(input: GrantInput<ConnectorDefinition, "connector">): ManageGrant<"connector">
|
|
283
|
+
function manage(input: AgentUsageReference): ManageGrant<"aiUsage">
|
|
284
|
+
function manage(
|
|
285
|
+
input: GrantInput<ConnectorDefinition, "connector"> | AgentUsageReference
|
|
286
|
+
): ManageGrant {
|
|
287
|
+
if (isAgentUsageReference(input)) {
|
|
288
|
+
return {
|
|
289
|
+
kind: "grant",
|
|
290
|
+
capability: "manage",
|
|
291
|
+
target: "aiUsage",
|
|
292
|
+
selection: { all: false, ids: ["aiUsage"] },
|
|
293
|
+
}
|
|
294
|
+
}
|
|
211
295
|
return {
|
|
212
296
|
kind: "grant",
|
|
213
297
|
capability: "manage",
|
|
298
|
+
target: "connector",
|
|
214
299
|
selection: resolveGrant(input, "can.manage", ["connector"]).selection,
|
|
215
300
|
}
|
|
216
301
|
}
|
|
@@ -221,6 +306,7 @@ export const can = {
|
|
|
221
306
|
edit,
|
|
222
307
|
append,
|
|
223
308
|
apply,
|
|
309
|
+
share,
|
|
224
310
|
run,
|
|
225
311
|
observe,
|
|
226
312
|
manage,
|
package/src/security/index.ts
CHANGED
|
@@ -20,6 +20,7 @@ export type { SecurityDefinitionCatalog, SecurityRegistryOptions } from "./regis
|
|
|
20
20
|
export { SecurityRegistry } from "./registry"
|
|
21
21
|
export type {
|
|
22
22
|
AccessGrant,
|
|
23
|
+
AgentRunGrant,
|
|
23
24
|
AppendGrant,
|
|
24
25
|
ApplicationDefinition,
|
|
25
26
|
ApplyGrant,
|
|
@@ -29,6 +30,7 @@ export type {
|
|
|
29
30
|
GroupDefinition,
|
|
30
31
|
GroupReference,
|
|
31
32
|
ManageGrant,
|
|
33
|
+
ManageGrantTarget,
|
|
32
34
|
MembershipOperation,
|
|
33
35
|
MembershipPolicyDefinition,
|
|
34
36
|
ObserveGrant,
|
|
@@ -38,6 +40,7 @@ export type {
|
|
|
38
40
|
RunGrant,
|
|
39
41
|
RunGrantTarget,
|
|
40
42
|
Selection,
|
|
43
|
+
ShareGrant,
|
|
41
44
|
ViewGrant,
|
|
42
45
|
ViewGrantTarget,
|
|
43
46
|
} from "./types"
|
package/src/security/registry.ts
CHANGED
|
@@ -25,8 +25,9 @@ export interface SecurityRegistryOptions {
|
|
|
25
25
|
readonly workflowIds?: ReadonlySet<string>
|
|
26
26
|
readonly syncIds?: ReadonlySet<string>
|
|
27
27
|
readonly pipelineIds?: ReadonlySet<string>
|
|
28
|
-
readonly
|
|
28
|
+
readonly agentAvailable?: boolean
|
|
29
29
|
readonly connectorIds?: ReadonlySet<string>
|
|
30
|
+
readonly shareIds?: ReadonlySet<string>
|
|
30
31
|
readonly getSubTypes?: (objectTypeId: string) => readonly string[]
|
|
31
32
|
}
|
|
32
33
|
|
|
@@ -48,9 +49,11 @@ export class SecurityRegistry implements SecurityDefinitionCatalog {
|
|
|
48
49
|
workflowIds: input.workflowIds,
|
|
49
50
|
syncIds: input.syncIds,
|
|
50
51
|
pipelineIds: input.pipelineIds,
|
|
51
|
-
|
|
52
|
+
agentAvailable: input.agentAvailable,
|
|
52
53
|
connectorIds: input.connectorIds,
|
|
53
|
-
observableIds: new Set(["logs"]),
|
|
54
|
+
observableIds: new Set(["logs", "aiUsage"]),
|
|
55
|
+
manageableIds: new Set(["aiUsage"]),
|
|
56
|
+
shareIds: input.shareIds,
|
|
54
57
|
})
|
|
55
58
|
|
|
56
59
|
const universe = {
|
|
@@ -61,9 +64,10 @@ export class SecurityRegistry implements SecurityDefinitionCatalog {
|
|
|
61
64
|
workflowIds: input.workflowIds ?? new Set<string>(),
|
|
62
65
|
syncIds: input.syncIds ?? new Set<string>(),
|
|
63
66
|
pipelineIds: input.pipelineIds ?? new Set<string>(),
|
|
64
|
-
agentIds: input.agentIds ?? new Set<string>(),
|
|
65
67
|
connectorIds: input.connectorIds ?? new Set<string>(),
|
|
66
|
-
observableIds: new Set(["logs"]),
|
|
68
|
+
observableIds: new Set(["logs", "aiUsage"]),
|
|
69
|
+
manageableIds: new Set(["aiUsage"]),
|
|
70
|
+
shareIds: input.shareIds ?? new Set<string>(),
|
|
67
71
|
getSubTypes: input.getSubTypes ?? (() => []),
|
|
68
72
|
}
|
|
69
73
|
|
package/src/security/types.ts
CHANGED
|
@@ -86,7 +86,14 @@ export interface ApplyGrant {
|
|
|
86
86
|
readonly selection: Selection
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
/** Issue, list, and revoke grants created from the selected Share definitions. */
|
|
90
|
+
export interface ShareGrant {
|
|
91
|
+
readonly kind: "grant"
|
|
92
|
+
readonly capability: "share"
|
|
93
|
+
readonly selection: Selection
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export type RunGrantTarget = "workflow" | "sync" | "pipeline"
|
|
90
97
|
|
|
91
98
|
export interface RunGrant<TTarget extends RunGrantTarget = RunGrantTarget> {
|
|
92
99
|
readonly kind: "grant"
|
|
@@ -95,7 +102,14 @@ export interface RunGrant<TTarget extends RunGrantTarget = RunGrantTarget> {
|
|
|
95
102
|
readonly selection: Selection
|
|
96
103
|
}
|
|
97
104
|
|
|
98
|
-
|
|
105
|
+
/** Run the project's single conversational Agent. */
|
|
106
|
+
export interface AgentRunGrant {
|
|
107
|
+
readonly kind: "grant"
|
|
108
|
+
readonly capability: "run"
|
|
109
|
+
readonly target: "agent"
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export type ObserveGrantTarget = "logs" | "aiUsage"
|
|
99
113
|
|
|
100
114
|
export interface ObserveGrant {
|
|
101
115
|
readonly kind: "grant"
|
|
@@ -104,10 +118,13 @@ export interface ObserveGrant {
|
|
|
104
118
|
readonly selection: Selection
|
|
105
119
|
}
|
|
106
120
|
|
|
107
|
-
|
|
108
|
-
|
|
121
|
+
export type ManageGrantTarget = "connector" | "aiUsage"
|
|
122
|
+
|
|
123
|
+
/** Manage a selected connector or the project's AI usage-limit policies. */
|
|
124
|
+
export interface ManageGrant<TTarget extends ManageGrantTarget = ManageGrantTarget> {
|
|
109
125
|
readonly kind: "grant"
|
|
110
126
|
readonly capability: "manage"
|
|
127
|
+
readonly target: TTarget
|
|
111
128
|
readonly selection: Selection
|
|
112
129
|
}
|
|
113
130
|
|
|
@@ -117,7 +134,9 @@ export type GrantDefinition =
|
|
|
117
134
|
| EditGrant
|
|
118
135
|
| AppendGrant
|
|
119
136
|
| ApplyGrant
|
|
137
|
+
| ShareGrant
|
|
120
138
|
| RunGrant
|
|
139
|
+
| AgentRunGrant
|
|
121
140
|
| ObserveGrant
|
|
122
141
|
| ManageGrant
|
|
123
142
|
|
|
@@ -8,10 +8,13 @@ import type {
|
|
|
8
8
|
MembershipPolicyDefinition,
|
|
9
9
|
RegisteredSecurityDefinitions,
|
|
10
10
|
RoleDefinition,
|
|
11
|
+
Selection,
|
|
11
12
|
} from "./types"
|
|
12
13
|
|
|
13
|
-
/** Registered id universes
|
|
14
|
-
type RegisteredUniverses = Partial<Record<GrantUniverseKey, ReadonlySet<string>>>
|
|
14
|
+
/** Registered id universes and singleton capabilities available to role grants. */
|
|
15
|
+
type RegisteredUniverses = Partial<Record<GrantUniverseKey, ReadonlySet<string>>> & {
|
|
16
|
+
readonly agentAvailable?: boolean
|
|
17
|
+
}
|
|
15
18
|
|
|
16
19
|
/**
|
|
17
20
|
* Every grant capability, for validating grants that arrive from untyped code.
|
|
@@ -27,6 +30,7 @@ const GRANT_CAPABILITIES = Object.keys({
|
|
|
27
30
|
edit: true,
|
|
28
31
|
append: true,
|
|
29
32
|
apply: true,
|
|
33
|
+
share: true,
|
|
30
34
|
run: true,
|
|
31
35
|
observe: true,
|
|
32
36
|
manage: true,
|
|
@@ -220,12 +224,19 @@ export function assertGrantDefinition(
|
|
|
220
224
|
)
|
|
221
225
|
}
|
|
222
226
|
|
|
223
|
-
if (value.capability === "observe" && value.target !== "logs") {
|
|
224
|
-
throw createError(`[Sixb] ${field} observe grant target must be 'logs'.`)
|
|
227
|
+
if (value.capability === "observe" && value.target !== "logs" && value.target !== "aiUsage") {
|
|
228
|
+
throw createError(`[Sixb] ${field} observe grant target must be 'logs' or 'aiUsage'.`)
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
if (value.capability === "manage" && value.target !== "connector" && value.target !== "aiUsage") {
|
|
232
|
+
throw createError(`[Sixb] ${field} manage grant target must be 'connector' or 'aiUsage'.`)
|
|
225
233
|
}
|
|
226
234
|
|
|
227
|
-
if (value.capability === "
|
|
228
|
-
|
|
235
|
+
if (value.capability === "run" && value.target === "agent") {
|
|
236
|
+
if (value.selection !== undefined) {
|
|
237
|
+
throw createError(`[Sixb] ${field} agent run grant must not declare a selection.`)
|
|
238
|
+
}
|
|
239
|
+
return
|
|
229
240
|
}
|
|
230
241
|
|
|
231
242
|
assertSelection(value.selection, field, createError)
|
|
@@ -235,7 +246,7 @@ function assertSelection(
|
|
|
235
246
|
value: unknown,
|
|
236
247
|
field: string,
|
|
237
248
|
createError: CreateSecurityError
|
|
238
|
-
): asserts value is
|
|
249
|
+
): asserts value is Selection {
|
|
239
250
|
if (!isRecord(value) || typeof value.all !== "boolean") {
|
|
240
251
|
throw createError(`[Sixb] ${field} grant must carry a selection from 'can' or a scope.`)
|
|
241
252
|
}
|
|
@@ -303,12 +314,16 @@ export function validateSecurityDefinitionsAtStartup(input: {
|
|
|
303
314
|
readonly syncIds?: ReadonlySet<string>
|
|
304
315
|
/** Registered pipeline ids — when provided, pipeline run grants must reference them. */
|
|
305
316
|
readonly pipelineIds?: ReadonlySet<string>
|
|
306
|
-
/**
|
|
307
|
-
readonly
|
|
317
|
+
/** Whether the project's single conversational Agent is configured. */
|
|
318
|
+
readonly agentAvailable?: boolean
|
|
308
319
|
/** Registered observability surfaces. */
|
|
309
320
|
readonly observableIds?: ReadonlySet<string>
|
|
321
|
+
/** Registered singleton management surfaces. */
|
|
322
|
+
readonly manageableIds?: ReadonlySet<string>
|
|
310
323
|
/** Registered connector ids — when provided, manage grants must reference them. */
|
|
311
324
|
readonly connectorIds?: ReadonlySet<string>
|
|
325
|
+
/** Registered Share ids — when provided, share grants must reference them. */
|
|
326
|
+
readonly shareIds?: ReadonlySet<string>
|
|
312
327
|
}): RegisteredSecurityDefinitions {
|
|
313
328
|
const groupsById = new Map<string, GroupDefinition>()
|
|
314
329
|
const rolesById = new Map<string, RoleDefinition>()
|
|
@@ -415,6 +430,15 @@ function assertGrantReferences(
|
|
|
415
430
|
grant: GrantDefinition,
|
|
416
431
|
registered: RegisteredUniverses
|
|
417
432
|
): void {
|
|
433
|
+
if (grant.capability === "run" && grant.target === "agent") {
|
|
434
|
+
const spec = GRANT_KINDS[grantKindOf(grant)]
|
|
435
|
+
if (!registered.agentAvailable) {
|
|
436
|
+
throw new SecurityValidationError(
|
|
437
|
+
`[Sixb] Role '${roleId}' grants ${grant.capability} on the project Agent, but it is unavailable. ${spec.fix}`
|
|
438
|
+
)
|
|
439
|
+
}
|
|
440
|
+
return
|
|
441
|
+
}
|
|
418
442
|
const spec = GRANT_KINDS[grantKindOf(grant)]
|
|
419
443
|
const universe = registered[spec.universeKey]
|
|
420
444
|
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { ObjectRef } from "../ontology"
|
|
2
|
+
import {
|
|
3
|
+
captureSelectedObjectReadScope,
|
|
4
|
+
compileSelectedObjectReadScope,
|
|
5
|
+
} from "../storage/objects/read-scope"
|
|
6
|
+
import type { ObjectReadRoot, SelectedObjectReadScope } from "../storage/objects/types"
|
|
7
|
+
|
|
8
|
+
const MAX_SCOPED_GRANTS = 1_024
|
|
9
|
+
const MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION = 1_024
|
|
10
|
+
const MAX_SCOPED_ACTION_SUBJECTS = 4_096
|
|
11
|
+
const MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS = 1_000_000
|
|
12
|
+
|
|
13
|
+
/** One capability paired with the exact resources it authorizes. */
|
|
14
|
+
export type ShareScopedGrant = ShareScopedViewGrant | ShareScopedActionGrant
|
|
15
|
+
|
|
16
|
+
export interface ShareScopedViewGrant {
|
|
17
|
+
readonly kind: "object.view"
|
|
18
|
+
readonly selection: SelectedObjectReadScope
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ShareScopedActionGrant {
|
|
22
|
+
readonly kind: "action.apply"
|
|
23
|
+
readonly actionId: string
|
|
24
|
+
readonly subjects: readonly ObjectRef[]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Internal authority compiled from a delegation such as a shared-access grant. */
|
|
28
|
+
export interface ShareAccessPlan {
|
|
29
|
+
readonly grants: readonly ShareScopedGrant[]
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface CapturedViewGrant {
|
|
33
|
+
readonly kind: "object.view"
|
|
34
|
+
readonly rootStart: number
|
|
35
|
+
readonly rootCount: number
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
type CapturedGrant = CapturedViewGrant | ShareScopedActionGrant
|
|
39
|
+
|
|
40
|
+
interface ActionCaptureBudget {
|
|
41
|
+
subjectCount: number
|
|
42
|
+
identifierCharacters: number
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Validate and detach an access plan before registering process-local authority. */
|
|
46
|
+
export function snapshotShareAccessPlan(input: ShareAccessPlan): ShareAccessPlan {
|
|
47
|
+
const captured = captureAccessPlanGrants(input)
|
|
48
|
+
const selection = validateMergedViewSelection(captured.viewRoots)
|
|
49
|
+
return assembleAccessPlanSnapshot(captured.grants, selection)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function captureAccessPlanGrants(input: ShareAccessPlan): {
|
|
53
|
+
readonly grants: readonly CapturedGrant[]
|
|
54
|
+
readonly viewRoots: readonly ObjectReadRoot[]
|
|
55
|
+
} {
|
|
56
|
+
if (!isRecord(input)) {
|
|
57
|
+
throw new Error("[Sixb] Share access plan must contain scoped grants.")
|
|
58
|
+
}
|
|
59
|
+
const authoredGrants = input.grants
|
|
60
|
+
if (!Array.isArray(authoredGrants)) {
|
|
61
|
+
throw new Error("[Sixb] Share access plan must contain scoped grants.")
|
|
62
|
+
}
|
|
63
|
+
const grantCount = authoredGrants.length
|
|
64
|
+
if (grantCount > MAX_SCOPED_GRANTS) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_GRANTS} scoped grants.`
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Share budgets across grants and capture caller-controlled fields exactly once.
|
|
71
|
+
const budget: ActionCaptureBudget = { subjectCount: 0, identifierCharacters: 0 }
|
|
72
|
+
const viewRoots: ObjectReadRoot[] = []
|
|
73
|
+
const grants: CapturedGrant[] = []
|
|
74
|
+
for (let index = 0; index < grantCount; index += 1) {
|
|
75
|
+
const grant = authoredGrants[index]
|
|
76
|
+
if (!isRecord(grant)) {
|
|
77
|
+
throw new Error(`[Sixb] Scoped grant ${index} must be an object.`)
|
|
78
|
+
}
|
|
79
|
+
const kind = grant.kind
|
|
80
|
+
switch (kind) {
|
|
81
|
+
case "object.view":
|
|
82
|
+
grants.push(captureViewGrant(grant, index, viewRoots))
|
|
83
|
+
break
|
|
84
|
+
case "action.apply":
|
|
85
|
+
grants.push(captureActionGrant(grant, index, budget))
|
|
86
|
+
break
|
|
87
|
+
default:
|
|
88
|
+
throw new Error(`[Sixb] Unknown scoped grant kind '${String(kind)}'.`)
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return { grants, viewRoots }
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function captureViewGrant(
|
|
95
|
+
grant: Record<string, unknown>,
|
|
96
|
+
index: number,
|
|
97
|
+
viewRoots: ObjectReadRoot[]
|
|
98
|
+
): CapturedViewGrant {
|
|
99
|
+
const selection = grant.selection
|
|
100
|
+
if (!isRecord(selection)) {
|
|
101
|
+
throw new Error(`[Sixb] Scoped grant ${index} requires a selected object read scope.`)
|
|
102
|
+
}
|
|
103
|
+
const selectionKind = selection.kind
|
|
104
|
+
const roots = selection.roots
|
|
105
|
+
if (selectionKind !== "selected" || !Array.isArray(roots)) {
|
|
106
|
+
throw new Error(`[Sixb] Scoped grant ${index} requires a selected object read scope.`)
|
|
107
|
+
}
|
|
108
|
+
const rootCount = roots.length
|
|
109
|
+
if (rootCount > MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION - viewRoots.length) {
|
|
110
|
+
throw new Error(
|
|
111
|
+
`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION} raw scoped view roots.`
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
const rootStart = viewRoots.length
|
|
115
|
+
for (let rootIndex = 0; rootIndex < rootCount; rootIndex += 1) {
|
|
116
|
+
viewRoots.push(roots[rootIndex] as ObjectReadRoot)
|
|
117
|
+
}
|
|
118
|
+
return { kind: "object.view", rootStart, rootCount }
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function captureActionGrant(
|
|
122
|
+
grant: Record<string, unknown>,
|
|
123
|
+
index: number,
|
|
124
|
+
budget: ActionCaptureBudget
|
|
125
|
+
): ShareScopedActionGrant {
|
|
126
|
+
const authoredActionId = grant.actionId
|
|
127
|
+
const authoredSubjects = grant.subjects
|
|
128
|
+
const actionId = nonEmpty(authoredActionId, `Scoped grant ${index} action id`)
|
|
129
|
+
addActionIdentifierCharacters(budget, actionId.length)
|
|
130
|
+
if (!Array.isArray(authoredSubjects)) {
|
|
131
|
+
throw new Error(`[Sixb] Scoped grant ${index} action subjects must be an array.`)
|
|
132
|
+
}
|
|
133
|
+
const subjectCount = authoredSubjects.length
|
|
134
|
+
budget.subjectCount += subjectCount
|
|
135
|
+
if (budget.subjectCount > MAX_SCOPED_ACTION_SUBJECTS) {
|
|
136
|
+
throw new Error(
|
|
137
|
+
`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_ACTION_SUBJECTS} scoped action subjects.`
|
|
138
|
+
)
|
|
139
|
+
}
|
|
140
|
+
const subjects: ObjectRef[] = []
|
|
141
|
+
for (let subjectIndex = 0; subjectIndex < subjectCount; subjectIndex += 1) {
|
|
142
|
+
const subject = captureActionSubject(authoredSubjects[subjectIndex], index, subjectIndex)
|
|
143
|
+
addActionIdentifierCharacters(budget, subject.objectTypeId.length + subject.primaryId.length)
|
|
144
|
+
subjects.push(subject)
|
|
145
|
+
}
|
|
146
|
+
return Object.freeze({ kind: "action.apply", actionId, subjects: Object.freeze(subjects) })
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function captureActionSubject(
|
|
150
|
+
subject: unknown,
|
|
151
|
+
grantIndex: number,
|
|
152
|
+
subjectIndex: number
|
|
153
|
+
): ObjectRef {
|
|
154
|
+
if (!isRecord(subject)) {
|
|
155
|
+
throw new Error(`[Sixb] Scoped grant ${grantIndex} subject ${subjectIndex} must be an object.`)
|
|
156
|
+
}
|
|
157
|
+
const authoredObjectTypeId = subject.objectTypeId
|
|
158
|
+
const authoredPrimaryId = subject.primaryId
|
|
159
|
+
const objectTypeId = nonEmpty(
|
|
160
|
+
authoredObjectTypeId,
|
|
161
|
+
`Scoped grant ${grantIndex} subject ${subjectIndex} object type id`
|
|
162
|
+
)
|
|
163
|
+
const primaryId = nonEmpty(
|
|
164
|
+
authoredPrimaryId,
|
|
165
|
+
`Scoped grant ${grantIndex} subject ${subjectIndex} primary id`
|
|
166
|
+
)
|
|
167
|
+
return Object.freeze({ objectTypeId, primaryId })
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function addActionIdentifierCharacters(budget: ActionCaptureBudget, count: number): void {
|
|
171
|
+
budget.identifierCharacters += count
|
|
172
|
+
if (budget.identifierCharacters > MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS) {
|
|
173
|
+
throw new Error(
|
|
174
|
+
`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS} scoped action identifier characters.`
|
|
175
|
+
)
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function validateMergedViewSelection(roots: readonly ObjectReadRoot[]): SelectedObjectReadScope {
|
|
180
|
+
// Snapshot all roots together so the provider's limits apply globally across view grants.
|
|
181
|
+
const selection = captureSelectedObjectReadScope({ kind: "selected", roots })
|
|
182
|
+
// Compile the exact immutable snapshot, without rereading caller-controlled data.
|
|
183
|
+
compileSelectedObjectReadScope(selection)
|
|
184
|
+
return selection
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function assembleAccessPlanSnapshot(
|
|
188
|
+
capturedGrants: readonly CapturedGrant[],
|
|
189
|
+
selection: SelectedObjectReadScope
|
|
190
|
+
): ShareAccessPlan {
|
|
191
|
+
const grants = capturedGrants.map((grant): ShareScopedGrant => {
|
|
192
|
+
if (grant.kind === "action.apply") return grant
|
|
193
|
+
const roots = Object.freeze(
|
|
194
|
+
selection.roots.slice(grant.rootStart, grant.rootStart + grant.rootCount)
|
|
195
|
+
)
|
|
196
|
+
return Object.freeze({
|
|
197
|
+
kind: "object.view",
|
|
198
|
+
selection: Object.freeze({ kind: "selected", roots }),
|
|
199
|
+
})
|
|
200
|
+
})
|
|
201
|
+
return Object.freeze({ grants: Object.freeze(grants) })
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/** Merge view grants only; capability/resource pairing remains intact for every other grant. */
|
|
205
|
+
export function objectReadScopeForAccessPlan(plan: ShareAccessPlan): SelectedObjectReadScope {
|
|
206
|
+
return Object.freeze({
|
|
207
|
+
kind: "selected",
|
|
208
|
+
roots: Object.freeze(
|
|
209
|
+
plan.grants.flatMap((grant) =>
|
|
210
|
+
grant.kind === "object.view" ? [...grant.selection.roots] : []
|
|
211
|
+
)
|
|
212
|
+
),
|
|
213
|
+
})
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
function nonEmpty(value: unknown, label: string): string {
|
|
217
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
218
|
+
throw new Error(`[Sixb] ${label} must not be empty.`)
|
|
219
|
+
}
|
|
220
|
+
return value
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
224
|
+
return typeof value === "object" && value !== null
|
|
225
|
+
}
|