@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,4 +1,5 @@
|
|
|
1
1
|
import type { ReadonlyJsonObject } from "../../json"
|
|
2
|
+
import type { ModelReasoning } from "../../models/language-model"
|
|
2
3
|
|
|
3
4
|
/** How much normalized token usage a provider reported for one model call. */
|
|
4
5
|
export type AiUsageReportingStatus = "complete" | "partial" | "unavailable"
|
|
@@ -31,22 +32,25 @@ export interface AiUsageExecutionSummary {
|
|
|
31
32
|
|
|
32
33
|
/** Input for an idempotent model-call ledger append. */
|
|
33
34
|
export interface RecordAiModelCallInput {
|
|
35
|
+
readonly providerIds?: import("../../models/events").ModelProviderIds
|
|
34
36
|
readonly id: string
|
|
35
37
|
readonly projectId: string
|
|
36
38
|
/** Immutable execution-ledger record that owns this provider call. */
|
|
37
39
|
readonly executionId: string
|
|
38
40
|
/** Queue delivery attempt that made the provider call. */
|
|
39
41
|
readonly attempt: number
|
|
40
|
-
/**
|
|
42
|
+
/** Stable call ID generated by the owned model loop. */
|
|
41
43
|
readonly callId: string
|
|
42
44
|
/**
|
|
43
45
|
* Durable group memberships snapshotted when the parent run was admitted. The requester itself
|
|
44
46
|
* is read from the immutable execution record.
|
|
45
47
|
*/
|
|
46
48
|
readonly requesterGroupIds: readonly string[]
|
|
47
|
-
/**
|
|
49
|
+
/** Provider contract that handled the call, such as `anthropic` or `vercel-ai-gateway`. */
|
|
48
50
|
readonly providerId: string
|
|
49
51
|
readonly requestedModelId: string
|
|
52
|
+
/** Provider-neutral reasoning preference used for this call, when explicitly configured. */
|
|
53
|
+
readonly requestedReasoning?: ModelReasoning
|
|
50
54
|
/** Provider-returned model identity when the capture path exposes it. */
|
|
51
55
|
readonly responseModelId?: string
|
|
52
56
|
/** Provider-returned response ID used for later usage and cost reconciliation. */
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export type AuthStorageErrorCode =
|
|
2
|
+
| "device_authorization_denied"
|
|
3
|
+
| "device_authorization_limit_exceeded"
|
|
4
|
+
| "duplicate_device_authorization"
|
|
2
5
|
| "duplicate_access_token"
|
|
3
6
|
| "duplicate_identity"
|
|
4
7
|
| "duplicate_invitation"
|
|
@@ -13,10 +16,13 @@ export type AuthStorageErrorCode =
|
|
|
13
16
|
| "invalid_input"
|
|
14
17
|
| "invalid_magic_link"
|
|
15
18
|
| "invalid_oidc_attempt"
|
|
19
|
+
| "invalid_device_authorization"
|
|
16
20
|
| "missing_identity"
|
|
17
21
|
| "missing_invitation"
|
|
18
22
|
| "missing_magic_link"
|
|
19
23
|
| "missing_oidc_attempt"
|
|
24
|
+
| "missing_device_authorization"
|
|
25
|
+
| "pending_device_authorization"
|
|
20
26
|
| "missing_access_token"
|
|
21
27
|
| "missing_service_account"
|
|
22
28
|
| "missing_session"
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AuthStorageError } from "../errors"
|
|
2
2
|
import type {
|
|
3
3
|
AuthStorage,
|
|
4
|
+
CompleteDeviceAuthorizationInput,
|
|
5
|
+
CompleteDeviceAuthorizationResult,
|
|
4
6
|
CompleteMagicLinkSignInInput,
|
|
5
7
|
CompleteOidcSignInInput,
|
|
6
8
|
CompleteSignInResult,
|
|
@@ -12,6 +14,7 @@ import type {
|
|
|
12
14
|
UserRecord,
|
|
13
15
|
} from "../types"
|
|
14
16
|
import { InMemoryAuthAccessTokenStore } from "./access-tokens"
|
|
17
|
+
import { InMemoryAuthDeviceAuthorizationStore } from "./device-authorizations"
|
|
15
18
|
import { InMemoryAuthGroupMembershipStore } from "./group-memberships"
|
|
16
19
|
import { InMemoryAuthUserIdentityStore } from "./identities"
|
|
17
20
|
import { InMemoryAuthInvitationStore } from "./invitations"
|
|
@@ -27,8 +30,10 @@ import {
|
|
|
27
30
|
cloneRecord,
|
|
28
31
|
consumeMagicLinkRecord,
|
|
29
32
|
consumeOidcAttemptRecord,
|
|
33
|
+
createAccessTokenRecord,
|
|
30
34
|
createAuthStorageState,
|
|
31
35
|
createSessionRecord,
|
|
36
|
+
deviceAuthorizationKey,
|
|
32
37
|
getActiveInvitationByEmail,
|
|
33
38
|
getUserByEmail,
|
|
34
39
|
identityKey,
|
|
@@ -60,6 +65,7 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
60
65
|
readonly groupMemberships = new InMemoryAuthGroupMembershipStore(this.state)
|
|
61
66
|
readonly magicLinks = new InMemoryAuthMagicLinkStore(this.state)
|
|
62
67
|
readonly oidcAuthorizationAttempts = new InMemoryAuthOidcAuthorizationAttemptStore(this.state)
|
|
68
|
+
readonly deviceAuthorizations = new InMemoryAuthDeviceAuthorizationStore(this.state)
|
|
63
69
|
|
|
64
70
|
snapshot(): InMemoryAuthStorageSnapshot {
|
|
65
71
|
return {
|
|
@@ -73,6 +79,7 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
73
79
|
groupMemberships: structuredClone(this.state.groupMemberships),
|
|
74
80
|
magicLinks: structuredClone(this.state.magicLinks),
|
|
75
81
|
oidcAuthorizationAttempts: structuredClone(this.state.oidcAuthorizationAttempts),
|
|
82
|
+
deviceAuthorizations: structuredClone(this.state.deviceAuthorizations),
|
|
76
83
|
}
|
|
77
84
|
}
|
|
78
85
|
|
|
@@ -87,6 +94,68 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
87
94
|
restoreMap(this.state.groupMemberships, snapshot.groupMemberships)
|
|
88
95
|
restoreMap(this.state.magicLinks, snapshot.magicLinks)
|
|
89
96
|
restoreMap(this.state.oidcAuthorizationAttempts, snapshot.oidcAuthorizationAttempts)
|
|
97
|
+
restoreMap(this.state.deviceAuthorizations, snapshot.deviceAuthorizations)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async completeDeviceAuthorization(
|
|
101
|
+
input: CompleteDeviceAuthorizationInput
|
|
102
|
+
): Promise<CompleteDeviceAuthorizationResult> {
|
|
103
|
+
const key = deviceAuthorizationKey(input.projectId, input.id)
|
|
104
|
+
const authorization = this.state.deviceAuthorizations.get(key)
|
|
105
|
+
if (!authorization) {
|
|
106
|
+
throw new AuthStorageError(
|
|
107
|
+
"missing_device_authorization",
|
|
108
|
+
`[Sixb] Device authorization '${input.id}' not found for project '${input.projectId}'.`
|
|
109
|
+
)
|
|
110
|
+
}
|
|
111
|
+
if (authorization.deviceCodeHash !== input.deviceCodeHash) {
|
|
112
|
+
throw new AuthStorageError(
|
|
113
|
+
"invalid_device_authorization",
|
|
114
|
+
"[Sixb] Invalid device authorization."
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
if (authorization.status === "pending") {
|
|
118
|
+
throw new AuthStorageError(
|
|
119
|
+
"pending_device_authorization",
|
|
120
|
+
"[Sixb] Device authorization is pending."
|
|
121
|
+
)
|
|
122
|
+
}
|
|
123
|
+
if (authorization.status === "denied") {
|
|
124
|
+
throw new AuthStorageError(
|
|
125
|
+
"device_authorization_denied",
|
|
126
|
+
"[Sixb] Device authorization was denied."
|
|
127
|
+
)
|
|
128
|
+
}
|
|
129
|
+
if (
|
|
130
|
+
authorization.status !== "approved" ||
|
|
131
|
+
!authorization.approvedUserId ||
|
|
132
|
+
!authorization.approvedSessionId ||
|
|
133
|
+
authorization.expiresAt <= input.completedAt
|
|
134
|
+
) {
|
|
135
|
+
throw new AuthStorageError(
|
|
136
|
+
"invalid_device_authorization",
|
|
137
|
+
"[Sixb] Device authorization is invalid."
|
|
138
|
+
)
|
|
139
|
+
}
|
|
140
|
+
if (
|
|
141
|
+
input.accessToken.projectId !== input.projectId ||
|
|
142
|
+
input.accessToken.subjectType !== "user" ||
|
|
143
|
+
input.accessToken.subjectId !== authorization.approvedUserId ||
|
|
144
|
+
input.accessToken.createdBySessionId !== authorization.approvedSessionId
|
|
145
|
+
) {
|
|
146
|
+
throw new AuthStorageError(
|
|
147
|
+
"invalid_device_authorization",
|
|
148
|
+
"[Sixb] Device access token is invalid."
|
|
149
|
+
)
|
|
150
|
+
}
|
|
151
|
+
const accessToken = createAccessTokenRecord(this.state, input.accessToken)
|
|
152
|
+
const consumed = {
|
|
153
|
+
...authorization,
|
|
154
|
+
status: "consumed" as const,
|
|
155
|
+
consumedAt: new Date(input.completedAt),
|
|
156
|
+
}
|
|
157
|
+
this.state.deviceAuthorizations.set(key, cloneRecord(consumed))
|
|
158
|
+
return { authorization: cloneRecord(consumed), accessToken: cloneRecord(accessToken) }
|
|
90
159
|
}
|
|
91
160
|
|
|
92
161
|
async completeMagicLinkSignIn(
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { AuthStorageError } from "../errors"
|
|
2
|
+
import type {
|
|
3
|
+
AuthDeviceAuthorizationStore,
|
|
4
|
+
CreateDeviceAuthorizationInput,
|
|
5
|
+
DeviceAuthorizationRecord,
|
|
6
|
+
} from "../types"
|
|
7
|
+
import { MAX_PENDING_DEVICE_AUTHORIZATIONS } from "../types"
|
|
8
|
+
import type { AuthStorageState } from "./shared"
|
|
9
|
+
import {
|
|
10
|
+
assertNonEmpty,
|
|
11
|
+
cloneRecord,
|
|
12
|
+
deviceAuthorizationKey,
|
|
13
|
+
isActiveSession,
|
|
14
|
+
sessionKey,
|
|
15
|
+
userKey,
|
|
16
|
+
} from "./shared"
|
|
17
|
+
|
|
18
|
+
export class InMemoryAuthDeviceAuthorizationStore implements AuthDeviceAuthorizationStore {
|
|
19
|
+
constructor(private readonly state: AuthStorageState) {}
|
|
20
|
+
|
|
21
|
+
async create(input: CreateDeviceAuthorizationInput): Promise<DeviceAuthorizationRecord> {
|
|
22
|
+
const id = assertNonEmpty(input.id, "Device authorization id")
|
|
23
|
+
const projectId = assertNonEmpty(input.projectId, "Project id")
|
|
24
|
+
for (const [key, authorization] of this.state.deviceAuthorizations) {
|
|
25
|
+
if (authorization.projectId === projectId && authorization.expiresAt <= input.createdAt) {
|
|
26
|
+
this.state.deviceAuthorizations.delete(key)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const pending = [...this.state.deviceAuthorizations.values()].filter(
|
|
30
|
+
(authorization) => authorization.projectId === projectId && authorization.status === "pending"
|
|
31
|
+
).length
|
|
32
|
+
if (pending >= MAX_PENDING_DEVICE_AUTHORIZATIONS) {
|
|
33
|
+
throw new AuthStorageError(
|
|
34
|
+
"device_authorization_limit_exceeded",
|
|
35
|
+
`[Sixb] Project '${projectId}' has too many pending device authorizations.`
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
const key = deviceAuthorizationKey(projectId, id)
|
|
39
|
+
if (this.state.deviceAuthorizations.has(key)) {
|
|
40
|
+
throw duplicateAuthorization(id, projectId)
|
|
41
|
+
}
|
|
42
|
+
const record: DeviceAuthorizationRecord = {
|
|
43
|
+
id,
|
|
44
|
+
projectId,
|
|
45
|
+
deviceCodeHash: assertNonEmpty(input.deviceCodeHash, "Device code hash"),
|
|
46
|
+
userCode: assertNonEmpty(input.userCode, "User code"),
|
|
47
|
+
clientName: assertNonEmpty(input.clientName, "Client name"),
|
|
48
|
+
tokenName: assertNonEmpty(input.tokenName, "Token name"),
|
|
49
|
+
tokenExpiresAt: new Date(input.tokenExpiresAt),
|
|
50
|
+
status: "pending",
|
|
51
|
+
createdAt: new Date(input.createdAt),
|
|
52
|
+
expiresAt: new Date(input.expiresAt),
|
|
53
|
+
}
|
|
54
|
+
this.state.deviceAuthorizations.set(key, cloneRecord(record))
|
|
55
|
+
return cloneRecord(record)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async getById(params: { readonly projectId: string; readonly id: string }) {
|
|
59
|
+
const record = this.state.deviceAuthorizations.get(
|
|
60
|
+
deviceAuthorizationKey(params.projectId, params.id)
|
|
61
|
+
)
|
|
62
|
+
return record ? cloneRecord(record) : null
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async getByUserCode(params: { readonly projectId: string; readonly userCode: string }) {
|
|
66
|
+
for (const record of this.state.deviceAuthorizations.values()) {
|
|
67
|
+
if (record.projectId === params.projectId && record.userCode === params.userCode) {
|
|
68
|
+
return cloneRecord(record)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return null
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async approve(params: {
|
|
75
|
+
readonly projectId: string
|
|
76
|
+
readonly id: string
|
|
77
|
+
readonly userId: string
|
|
78
|
+
readonly sessionId: string
|
|
79
|
+
readonly approvedAt: Date
|
|
80
|
+
}): Promise<DeviceAuthorizationRecord> {
|
|
81
|
+
const record = this.requirePending(params.projectId, params.id, params.approvedAt)
|
|
82
|
+
const user = this.state.users.get(userKey(params.projectId, params.userId))
|
|
83
|
+
const session = this.state.sessions.get(sessionKey(params.projectId, params.sessionId))
|
|
84
|
+
if (
|
|
85
|
+
!user ||
|
|
86
|
+
user.status !== "active" ||
|
|
87
|
+
!session ||
|
|
88
|
+
session.userId !== user.id ||
|
|
89
|
+
!isActiveSession(session, params.approvedAt)
|
|
90
|
+
) {
|
|
91
|
+
throw new AuthStorageError(
|
|
92
|
+
"invalid_device_authorization",
|
|
93
|
+
"[Sixb] Device authorization requires an active user session."
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
const next: DeviceAuthorizationRecord = {
|
|
97
|
+
...record,
|
|
98
|
+
status: "approved",
|
|
99
|
+
approvedUserId: assertNonEmpty(params.userId, "Approved user id"),
|
|
100
|
+
approvedSessionId: assertNonEmpty(params.sessionId, "Approved session id"),
|
|
101
|
+
approvedAt: new Date(params.approvedAt),
|
|
102
|
+
}
|
|
103
|
+
this.state.deviceAuthorizations.set(deviceAuthorizationKey(params.projectId, params.id), next)
|
|
104
|
+
return cloneRecord(next)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
async deny(params: {
|
|
108
|
+
readonly projectId: string
|
|
109
|
+
readonly id: string
|
|
110
|
+
readonly deniedAt: Date
|
|
111
|
+
}): Promise<DeviceAuthorizationRecord> {
|
|
112
|
+
const record = this.requirePending(params.projectId, params.id, params.deniedAt)
|
|
113
|
+
const next: DeviceAuthorizationRecord = {
|
|
114
|
+
...record,
|
|
115
|
+
status: "denied",
|
|
116
|
+
deniedAt: new Date(params.deniedAt),
|
|
117
|
+
}
|
|
118
|
+
this.state.deviceAuthorizations.set(deviceAuthorizationKey(params.projectId, params.id), next)
|
|
119
|
+
return cloneRecord(next)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
private requirePending(projectId: string, id: string, now: Date): DeviceAuthorizationRecord {
|
|
123
|
+
const record = this.state.deviceAuthorizations.get(deviceAuthorizationKey(projectId, id))
|
|
124
|
+
if (!record) {
|
|
125
|
+
throw new AuthStorageError(
|
|
126
|
+
"missing_device_authorization",
|
|
127
|
+
`[Sixb] Device authorization '${id}' not found for project '${projectId}'.`
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
if (record.status !== "pending" || record.expiresAt <= now) {
|
|
131
|
+
throw new AuthStorageError(
|
|
132
|
+
"invalid_device_authorization",
|
|
133
|
+
`[Sixb] Device authorization '${id}' is no longer pending for project '${projectId}'.`
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
return record
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function duplicateAuthorization(id: string, projectId: string): AuthStorageError {
|
|
141
|
+
return new AuthStorageError(
|
|
142
|
+
"duplicate_device_authorization",
|
|
143
|
+
`[Sixb] Device authorization '${id}' already exists for project '${projectId}'.`
|
|
144
|
+
)
|
|
145
|
+
}
|
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
CreateAuthAccessTokenInput,
|
|
7
7
|
CreateAuthServiceAccountInput,
|
|
8
8
|
CreateAuthSessionInput,
|
|
9
|
+
DeviceAuthorizationRecord,
|
|
9
10
|
GroupMembershipRecord,
|
|
10
11
|
InvitationRecord,
|
|
11
12
|
MagicLinkRecord,
|
|
@@ -30,6 +31,7 @@ export interface AuthStorageState {
|
|
|
30
31
|
readonly groupMemberships: Map<string, GroupMembershipRecord>
|
|
31
32
|
readonly magicLinks: Map<string, MagicLinkRecord>
|
|
32
33
|
readonly oidcAuthorizationAttempts: Map<string, OidcAuthorizationAttemptRecord>
|
|
34
|
+
readonly deviceAuthorizations: Map<string, DeviceAuthorizationRecord>
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
export function createAuthStorageState(): AuthStorageState {
|
|
@@ -44,6 +46,7 @@ export function createAuthStorageState(): AuthStorageState {
|
|
|
44
46
|
groupMemberships: new Map(),
|
|
45
47
|
magicLinks: new Map(),
|
|
46
48
|
oidcAuthorizationAttempts: new Map(),
|
|
49
|
+
deviceAuthorizations: new Map(),
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
|
|
@@ -75,6 +78,10 @@ export function sessionKey(projectId: string, id: string): string {
|
|
|
75
78
|
return scopedKey(projectId, id)
|
|
76
79
|
}
|
|
77
80
|
|
|
81
|
+
export function deviceAuthorizationKey(projectId: string, id: string): string {
|
|
82
|
+
return scopedKey(projectId, id)
|
|
83
|
+
}
|
|
84
|
+
|
|
78
85
|
export function accessTokenKey(projectId: string, id: string): string {
|
|
79
86
|
return scopedKey(projectId, id)
|
|
80
87
|
}
|
|
@@ -5,6 +5,7 @@ export type {
|
|
|
5
5
|
AccessTokenRecord,
|
|
6
6
|
AccessTokenSubjectType,
|
|
7
7
|
AuthAccessTokenStore,
|
|
8
|
+
AuthDeviceAuthorizationStore,
|
|
8
9
|
AuthGroupMembershipStore,
|
|
9
10
|
AuthInvitationStore,
|
|
10
11
|
AuthMagicLinkStore,
|
|
@@ -16,6 +17,8 @@ export type {
|
|
|
16
17
|
AuthUserIdentityStore,
|
|
17
18
|
AuthUserStore,
|
|
18
19
|
CompleteAuthSessionInput,
|
|
20
|
+
CompleteDeviceAuthorizationInput,
|
|
21
|
+
CompleteDeviceAuthorizationResult,
|
|
19
22
|
CompleteMagicLinkSignInInput,
|
|
20
23
|
CompleteOidcSignInInput,
|
|
21
24
|
CompleteSignInResult,
|
|
@@ -24,8 +27,11 @@ export type {
|
|
|
24
27
|
CreateAuthServiceAccountInput,
|
|
25
28
|
CreateAuthSessionInput,
|
|
26
29
|
CreateAuthUserInput,
|
|
30
|
+
CreateDeviceAuthorizationInput,
|
|
27
31
|
CreateOidcAuthorizationAttemptInput,
|
|
28
32
|
CreateOrUpdateAuthInvitationInput,
|
|
33
|
+
DeviceAuthorizationRecord,
|
|
34
|
+
DeviceAuthorizationStatus,
|
|
29
35
|
GroupMembershipRecord,
|
|
30
36
|
GroupMembershipSource,
|
|
31
37
|
InvitationRecord,
|
|
@@ -56,3 +62,4 @@ export type {
|
|
|
56
62
|
UserRecord,
|
|
57
63
|
UserStatus,
|
|
58
64
|
} from "./types"
|
|
65
|
+
export { MAX_PENDING_DEVICE_AUTHORIZATIONS } from "./types"
|
|
@@ -5,6 +5,8 @@ export type ServiceAccountStatus = "active" | "suspended"
|
|
|
5
5
|
export type InvitationStatus = "pending" | "accepted" | "revoked"
|
|
6
6
|
export type GroupMembershipSource = "invitation" | "manual" | "agent"
|
|
7
7
|
export type AccessTokenSubjectType = "user" | "serviceAccount"
|
|
8
|
+
export type DeviceAuthorizationStatus = "pending" | "approved" | "denied" | "consumed"
|
|
9
|
+
export const MAX_PENDING_DEVICE_AUTHORIZATIONS = 100
|
|
8
10
|
|
|
9
11
|
export interface UserRecord {
|
|
10
12
|
readonly id: string
|
|
@@ -140,6 +142,24 @@ export interface OidcAuthorizationAttemptRecord {
|
|
|
140
142
|
readonly consumedAt?: Date
|
|
141
143
|
}
|
|
142
144
|
|
|
145
|
+
export interface DeviceAuthorizationRecord {
|
|
146
|
+
readonly id: string
|
|
147
|
+
readonly projectId: string
|
|
148
|
+
readonly deviceCodeHash: string
|
|
149
|
+
readonly userCode: string
|
|
150
|
+
readonly clientName: string
|
|
151
|
+
readonly tokenName: string
|
|
152
|
+
readonly tokenExpiresAt: Date
|
|
153
|
+
readonly status: DeviceAuthorizationStatus
|
|
154
|
+
readonly approvedUserId?: string
|
|
155
|
+
readonly approvedSessionId?: string
|
|
156
|
+
readonly createdAt: Date
|
|
157
|
+
readonly expiresAt: Date
|
|
158
|
+
readonly approvedAt?: Date
|
|
159
|
+
readonly deniedAt?: Date
|
|
160
|
+
readonly consumedAt?: Date
|
|
161
|
+
}
|
|
162
|
+
|
|
143
163
|
export interface CreateAuthUserInput {
|
|
144
164
|
readonly id: string
|
|
145
165
|
readonly projectId: string
|
|
@@ -359,6 +379,31 @@ export interface CreateOidcAuthorizationAttemptInput {
|
|
|
359
379
|
readonly expiresAt: Date
|
|
360
380
|
}
|
|
361
381
|
|
|
382
|
+
export interface CreateDeviceAuthorizationInput {
|
|
383
|
+
readonly id: string
|
|
384
|
+
readonly projectId: string
|
|
385
|
+
readonly deviceCodeHash: string
|
|
386
|
+
readonly userCode: string
|
|
387
|
+
readonly clientName: string
|
|
388
|
+
readonly tokenName: string
|
|
389
|
+
readonly tokenExpiresAt: Date
|
|
390
|
+
readonly createdAt: Date
|
|
391
|
+
readonly expiresAt: Date
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
export interface CompleteDeviceAuthorizationInput {
|
|
395
|
+
readonly projectId: string
|
|
396
|
+
readonly id: string
|
|
397
|
+
readonly deviceCodeHash: string
|
|
398
|
+
readonly accessToken: CreateAuthAccessTokenInput
|
|
399
|
+
readonly completedAt: Date
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
export interface CompleteDeviceAuthorizationResult {
|
|
403
|
+
readonly authorization: DeviceAuthorizationRecord
|
|
404
|
+
readonly accessToken: AccessTokenRecord
|
|
405
|
+
}
|
|
406
|
+
|
|
362
407
|
export interface CompleteMagicLinkSignInInput {
|
|
363
408
|
readonly projectId: string
|
|
364
409
|
readonly magicLinkId: string
|
|
@@ -622,6 +667,30 @@ export interface AuthOidcAuthorizationAttemptStore {
|
|
|
622
667
|
}): Promise<OidcAuthorizationAttemptRecord>
|
|
623
668
|
}
|
|
624
669
|
|
|
670
|
+
export interface AuthDeviceAuthorizationStore {
|
|
671
|
+
create(input: CreateDeviceAuthorizationInput): Promise<DeviceAuthorizationRecord>
|
|
672
|
+
getById(params: {
|
|
673
|
+
readonly projectId: string
|
|
674
|
+
readonly id: string
|
|
675
|
+
}): Promise<DeviceAuthorizationRecord | null>
|
|
676
|
+
getByUserCode(params: {
|
|
677
|
+
readonly projectId: string
|
|
678
|
+
readonly userCode: string
|
|
679
|
+
}): Promise<DeviceAuthorizationRecord | null>
|
|
680
|
+
approve(params: {
|
|
681
|
+
readonly projectId: string
|
|
682
|
+
readonly id: string
|
|
683
|
+
readonly userId: string
|
|
684
|
+
readonly sessionId: string
|
|
685
|
+
readonly approvedAt: Date
|
|
686
|
+
}): Promise<DeviceAuthorizationRecord>
|
|
687
|
+
deny(params: {
|
|
688
|
+
readonly projectId: string
|
|
689
|
+
readonly id: string
|
|
690
|
+
readonly deniedAt: Date
|
|
691
|
+
}): Promise<DeviceAuthorizationRecord>
|
|
692
|
+
}
|
|
693
|
+
|
|
625
694
|
export interface AuthStorage {
|
|
626
695
|
readonly users: AuthUserStore
|
|
627
696
|
readonly identities: AuthUserIdentityStore
|
|
@@ -633,8 +702,12 @@ export interface AuthStorage {
|
|
|
633
702
|
readonly groupMemberships: AuthGroupMembershipStore
|
|
634
703
|
readonly magicLinks: AuthMagicLinkStore
|
|
635
704
|
readonly oidcAuthorizationAttempts: AuthOidcAuthorizationAttemptStore
|
|
705
|
+
readonly deviceAuthorizations: AuthDeviceAuthorizationStore
|
|
636
706
|
|
|
637
707
|
completeMagicLinkSignIn(input: CompleteMagicLinkSignInInput): Promise<CompleteSignInResult>
|
|
638
708
|
completeOidcSignIn(input: CompleteOidcSignInInput): Promise<CompleteSignInResult>
|
|
709
|
+
completeDeviceAuthorization(
|
|
710
|
+
input: CompleteDeviceAuthorizationInput
|
|
711
|
+
): Promise<CompleteDeviceAuthorizationResult>
|
|
639
712
|
suspendUserAndRevokeSessions(input: SuspendUserAndRevokeSessionsInput): Promise<UserRecord>
|
|
640
713
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AuthStorage } from "../auth"
|
|
2
|
+
import type { ShareSessionStorage } from "../share-sessions"
|
|
2
3
|
import { ExecutionStorageError } from "./errors"
|
|
3
4
|
import type { CreateExecutionInput, ExecutionRecord, ExecutionStorage } from "./types"
|
|
4
5
|
import {
|
|
@@ -18,12 +19,17 @@ function executionKey(projectId: string, id: string): string {
|
|
|
18
19
|
export class InMemoryExecutionStorage implements ExecutionStorage {
|
|
19
20
|
private readonly rows = new Map<string, ExecutionRecord>()
|
|
20
21
|
private readonly runRootOperation: RunRootOperation
|
|
22
|
+
private readonly shareSessions?: Pick<ShareSessionStorage, "getById">
|
|
21
23
|
|
|
22
24
|
constructor(
|
|
23
25
|
private readonly auth: AuthStorage,
|
|
24
|
-
input: {
|
|
26
|
+
input: {
|
|
27
|
+
readonly runRootOperation?: RunRootOperation
|
|
28
|
+
readonly shareSessions?: Pick<ShareSessionStorage, "getById">
|
|
29
|
+
} = {}
|
|
25
30
|
) {
|
|
26
31
|
this.runRootOperation = input.runRootOperation ?? runDirectly
|
|
32
|
+
this.shareSessions = input.shareSessions
|
|
27
33
|
}
|
|
28
34
|
|
|
29
35
|
snapshot(): InMemoryExecutionStorageSnapshot {
|
|
@@ -54,6 +60,8 @@ export class InMemoryExecutionStorage implements ExecutionStorage {
|
|
|
54
60
|
const existing = this.rows.get(executionKey(projectId, id))
|
|
55
61
|
return existing ? cloneExecutionRecord(existing) : null
|
|
56
62
|
},
|
|
63
|
+
getShareSession: async ({ projectId, id }) =>
|
|
64
|
+
(await this.shareSessions?.getById({ projectId, id })) ?? null,
|
|
57
65
|
})
|
|
58
66
|
|
|
59
67
|
this.rows.set(key, cloneExecutionRecord(record))
|
|
@@ -22,7 +22,7 @@ export interface ExecutionStorageRow {
|
|
|
22
22
|
readonly correlationId: string
|
|
23
23
|
/** SQL-only projection of an execution source, used to enforce the parent foreign key. */
|
|
24
24
|
readonly parentExecutionId: string | null
|
|
25
|
-
readonly authorityKind: "disabled" | "kernel" | "principal" | "trustedPrimitive"
|
|
25
|
+
readonly authorityKind: "delegated" | "disabled" | "kernel" | "principal" | "trustedPrimitive"
|
|
26
26
|
readonly authorityUserId: string | null
|
|
27
27
|
readonly authorityServiceAccountId: string | null
|
|
28
28
|
readonly authoritySessionId: string | null
|
|
@@ -30,6 +30,9 @@ export interface ExecutionStorageRow {
|
|
|
30
30
|
readonly authorityPrimitiveKind: TrustedPrimitiveKind | null
|
|
31
31
|
readonly authorityPrimitiveId: string | null
|
|
32
32
|
readonly authorityKernelOperation: "ontology.recover" | null
|
|
33
|
+
readonly authorityDelegationKind: "share" | null
|
|
34
|
+
readonly authorityDelegationId: string | null
|
|
35
|
+
readonly authorityDelegationSessionId: string | null
|
|
33
36
|
readonly createdAt: Date
|
|
34
37
|
}
|
|
35
38
|
|
|
@@ -132,6 +135,9 @@ function flattenAuthority(
|
|
|
132
135
|
ExecutionStorageRow,
|
|
133
136
|
| "authorityAccessTokenId"
|
|
134
137
|
| "authorityKernelOperation"
|
|
138
|
+
| "authorityDelegationKind"
|
|
139
|
+
| "authorityDelegationId"
|
|
140
|
+
| "authorityDelegationSessionId"
|
|
135
141
|
| "authorityKind"
|
|
136
142
|
| "authorityPrimitiveId"
|
|
137
143
|
| "authorityPrimitiveKind"
|
|
@@ -147,6 +153,9 @@ function flattenAuthority(
|
|
|
147
153
|
authorityPrimitiveKind: null,
|
|
148
154
|
authorityPrimitiveId: null,
|
|
149
155
|
authorityKernelOperation: null,
|
|
156
|
+
authorityDelegationKind: null,
|
|
157
|
+
authorityDelegationId: null,
|
|
158
|
+
authorityDelegationSessionId: null,
|
|
150
159
|
}
|
|
151
160
|
|
|
152
161
|
switch (record.authorizationRef.type) {
|
|
@@ -178,6 +187,14 @@ function flattenAuthority(
|
|
|
178
187
|
authorityPrimitiveKind: record.authorizationRef.primitive.kind,
|
|
179
188
|
authorityPrimitiveId: record.authorizationRef.primitive.id,
|
|
180
189
|
}
|
|
190
|
+
case "delegated":
|
|
191
|
+
return {
|
|
192
|
+
...empty,
|
|
193
|
+
authorityKind: "delegated",
|
|
194
|
+
authorityDelegationKind: record.authorizationRef.delegation.kind,
|
|
195
|
+
authorityDelegationId: record.authorizationRef.delegation.grantId,
|
|
196
|
+
authorityDelegationSessionId: record.authorizationRef.delegation.sessionId,
|
|
197
|
+
}
|
|
181
198
|
case "kernel":
|
|
182
199
|
return {
|
|
183
200
|
...empty,
|
|
@@ -271,6 +288,18 @@ function inflateAuthority(row: ExecutionStorageRow): CreateExecutionInput["autho
|
|
|
271
288
|
runId: row.executorId,
|
|
272
289
|
},
|
|
273
290
|
}
|
|
291
|
+
case "delegated":
|
|
292
|
+
return {
|
|
293
|
+
type: "delegated",
|
|
294
|
+
delegation: {
|
|
295
|
+
kind: requireValue(row.authorityDelegationKind, "authority delegation kind"),
|
|
296
|
+
grantId: requireValue(row.authorityDelegationId, "authority delegation id"),
|
|
297
|
+
sessionId: requireValue(
|
|
298
|
+
row.authorityDelegationSessionId,
|
|
299
|
+
"authority delegation session id"
|
|
300
|
+
),
|
|
301
|
+
},
|
|
302
|
+
}
|
|
274
303
|
case "kernel":
|
|
275
304
|
return {
|
|
276
305
|
type: "kernel",
|
|
@@ -41,28 +41,67 @@ export async function findPrimitiveRunExecution(input: {
|
|
|
41
41
|
return execution
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
/**
|
|
44
|
+
/** Resolve the request execution that directly initiated one provider-validated primitive run. */
|
|
45
|
+
export async function findPrimitiveParentRequestExecution(input: {
|
|
46
|
+
readonly executions: ExecutionStorage
|
|
47
|
+
readonly projectId: string
|
|
48
|
+
readonly executionId: string
|
|
49
|
+
readonly primitive: TrustedPrimitiveRef
|
|
50
|
+
}): Promise<ExecutionRecord | null> {
|
|
51
|
+
const child = await findPrimitiveRunExecution({
|
|
52
|
+
...input,
|
|
53
|
+
sourceTypes: ["execution"],
|
|
54
|
+
})
|
|
55
|
+
if (!child || child.source.type !== "execution") return null
|
|
56
|
+
|
|
57
|
+
const parent = await input.executions.getById({
|
|
58
|
+
projectId: input.projectId,
|
|
59
|
+
id: child.source.executionId,
|
|
60
|
+
})
|
|
61
|
+
if (
|
|
62
|
+
!parent ||
|
|
63
|
+
parent.executor.type !== "request" ||
|
|
64
|
+
parent.source.type !== "http" ||
|
|
65
|
+
parent.executor.requestId !== parent.source.requestId ||
|
|
66
|
+
parent.correlationId !== child.correlationId
|
|
67
|
+
) {
|
|
68
|
+
return null
|
|
69
|
+
}
|
|
70
|
+
return parent
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Find the immutable execution and authority owned by one Agent run. */
|
|
45
74
|
export async function findAgentRunExecution(input: {
|
|
46
75
|
readonly executions: ExecutionStorage
|
|
47
76
|
readonly projectId: string
|
|
48
77
|
readonly executionId: string
|
|
49
78
|
readonly runId: string
|
|
50
|
-
readonly
|
|
79
|
+
readonly authority:
|
|
80
|
+
| { readonly type: "managed"; readonly serviceAccountId: string }
|
|
81
|
+
| { readonly type: "inherited" }
|
|
51
82
|
}): Promise<ExecutionRecord | null> {
|
|
52
83
|
const execution = await input.executions.getById({
|
|
53
84
|
projectId: input.projectId,
|
|
54
85
|
id: input.executionId,
|
|
55
86
|
})
|
|
56
87
|
const authority = execution?.authorizationRef
|
|
88
|
+
const validAuthority =
|
|
89
|
+
input.authority.type === "managed"
|
|
90
|
+
? authority?.type === "principal" &&
|
|
91
|
+
authority.principal.type === "serviceAccount" &&
|
|
92
|
+
authority.principal.id === input.authority.serviceAccountId &&
|
|
93
|
+
authority.credential === undefined
|
|
94
|
+
: authority?.type === "disabled" ||
|
|
95
|
+
(authority?.type === "principal" &&
|
|
96
|
+
authority.principal.type === "user" &&
|
|
97
|
+
authority.credential !== undefined)
|
|
98
|
+
|
|
57
99
|
if (
|
|
58
100
|
!execution ||
|
|
59
101
|
execution.source.type !== "execution" ||
|
|
60
102
|
execution.executor.type !== "agent" ||
|
|
61
103
|
execution.executor.runId !== input.runId ||
|
|
62
|
-
|
|
63
|
-
authority.principal.type !== "serviceAccount" ||
|
|
64
|
-
authority.principal.id !== input.serviceAccountId ||
|
|
65
|
-
authority.credential !== undefined
|
|
104
|
+
!validAuthority
|
|
66
105
|
) {
|
|
67
106
|
return null
|
|
68
107
|
}
|