@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
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
captureSelectedObjectReadScope,
|
|
4
|
+
compileSelectedObjectReadScope
|
|
5
|
+
} from "./chunk-r8jrnexe.js";
|
|
6
|
+
import {
|
|
7
|
+
stableJsonStringify
|
|
8
|
+
} from "./chunk-n6jxh8sw.js";
|
|
9
|
+
|
|
10
|
+
// src/storage/share-grants/errors.ts
|
|
11
|
+
class ShareGrantStorageError extends Error {
|
|
12
|
+
code;
|
|
13
|
+
name = "ShareGrantStorageError";
|
|
14
|
+
constructor(code, message, options) {
|
|
15
|
+
super(message, options);
|
|
16
|
+
this.code = code;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/shares/access-plan.ts
|
|
21
|
+
var MAX_SCOPED_GRANTS = 1024;
|
|
22
|
+
var MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION = 1024;
|
|
23
|
+
var MAX_SCOPED_ACTION_SUBJECTS = 4096;
|
|
24
|
+
var MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS = 1e6;
|
|
25
|
+
function snapshotShareAccessPlan(input) {
|
|
26
|
+
const captured = captureAccessPlanGrants(input);
|
|
27
|
+
const selection = validateMergedViewSelection(captured.viewRoots);
|
|
28
|
+
return assembleAccessPlanSnapshot(captured.grants, selection);
|
|
29
|
+
}
|
|
30
|
+
function captureAccessPlanGrants(input) {
|
|
31
|
+
if (!isRecord(input)) {
|
|
32
|
+
throw new Error("[Sixb] Share access plan must contain scoped grants.");
|
|
33
|
+
}
|
|
34
|
+
const authoredGrants = input.grants;
|
|
35
|
+
if (!Array.isArray(authoredGrants)) {
|
|
36
|
+
throw new Error("[Sixb] Share access plan must contain scoped grants.");
|
|
37
|
+
}
|
|
38
|
+
const grantCount = authoredGrants.length;
|
|
39
|
+
if (grantCount > MAX_SCOPED_GRANTS) {
|
|
40
|
+
throw new Error(`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_GRANTS} scoped grants.`);
|
|
41
|
+
}
|
|
42
|
+
const budget = { subjectCount: 0, identifierCharacters: 0 };
|
|
43
|
+
const viewRoots = [];
|
|
44
|
+
const grants = [];
|
|
45
|
+
for (let index = 0;index < grantCount; index += 1) {
|
|
46
|
+
const grant = authoredGrants[index];
|
|
47
|
+
if (!isRecord(grant)) {
|
|
48
|
+
throw new Error(`[Sixb] Scoped grant ${index} must be an object.`);
|
|
49
|
+
}
|
|
50
|
+
const kind = grant.kind;
|
|
51
|
+
switch (kind) {
|
|
52
|
+
case "object.view":
|
|
53
|
+
grants.push(captureViewGrant(grant, index, viewRoots));
|
|
54
|
+
break;
|
|
55
|
+
case "action.apply":
|
|
56
|
+
grants.push(captureActionGrant(grant, index, budget));
|
|
57
|
+
break;
|
|
58
|
+
default:
|
|
59
|
+
throw new Error(`[Sixb] Unknown scoped grant kind '${String(kind)}'.`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return { grants, viewRoots };
|
|
63
|
+
}
|
|
64
|
+
function captureViewGrant(grant, index, viewRoots) {
|
|
65
|
+
const selection = grant.selection;
|
|
66
|
+
if (!isRecord(selection)) {
|
|
67
|
+
throw new Error(`[Sixb] Scoped grant ${index} requires a selected object read scope.`);
|
|
68
|
+
}
|
|
69
|
+
const selectionKind = selection.kind;
|
|
70
|
+
const roots = selection.roots;
|
|
71
|
+
if (selectionKind !== "selected" || !Array.isArray(roots)) {
|
|
72
|
+
throw new Error(`[Sixb] Scoped grant ${index} requires a selected object read scope.`);
|
|
73
|
+
}
|
|
74
|
+
const rootCount = roots.length;
|
|
75
|
+
if (rootCount > MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION - viewRoots.length) {
|
|
76
|
+
throw new Error(`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION} raw scoped view roots.`);
|
|
77
|
+
}
|
|
78
|
+
const rootStart = viewRoots.length;
|
|
79
|
+
for (let rootIndex = 0;rootIndex < rootCount; rootIndex += 1) {
|
|
80
|
+
viewRoots.push(roots[rootIndex]);
|
|
81
|
+
}
|
|
82
|
+
return { kind: "object.view", rootStart, rootCount };
|
|
83
|
+
}
|
|
84
|
+
function captureActionGrant(grant, index, budget) {
|
|
85
|
+
const authoredActionId = grant.actionId;
|
|
86
|
+
const authoredSubjects = grant.subjects;
|
|
87
|
+
const actionId = nonEmpty(authoredActionId, `Scoped grant ${index} action id`);
|
|
88
|
+
addActionIdentifierCharacters(budget, actionId.length);
|
|
89
|
+
if (!Array.isArray(authoredSubjects)) {
|
|
90
|
+
throw new Error(`[Sixb] Scoped grant ${index} action subjects must be an array.`);
|
|
91
|
+
}
|
|
92
|
+
const subjectCount = authoredSubjects.length;
|
|
93
|
+
budget.subjectCount += subjectCount;
|
|
94
|
+
if (budget.subjectCount > MAX_SCOPED_ACTION_SUBJECTS) {
|
|
95
|
+
throw new Error(`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_ACTION_SUBJECTS} scoped action subjects.`);
|
|
96
|
+
}
|
|
97
|
+
const subjects = [];
|
|
98
|
+
for (let subjectIndex = 0;subjectIndex < subjectCount; subjectIndex += 1) {
|
|
99
|
+
const subject = captureActionSubject(authoredSubjects[subjectIndex], index, subjectIndex);
|
|
100
|
+
addActionIdentifierCharacters(budget, subject.objectTypeId.length + subject.primaryId.length);
|
|
101
|
+
subjects.push(subject);
|
|
102
|
+
}
|
|
103
|
+
return Object.freeze({ kind: "action.apply", actionId, subjects: Object.freeze(subjects) });
|
|
104
|
+
}
|
|
105
|
+
function captureActionSubject(subject, grantIndex, subjectIndex) {
|
|
106
|
+
if (!isRecord(subject)) {
|
|
107
|
+
throw new Error(`[Sixb] Scoped grant ${grantIndex} subject ${subjectIndex} must be an object.`);
|
|
108
|
+
}
|
|
109
|
+
const authoredObjectTypeId = subject.objectTypeId;
|
|
110
|
+
const authoredPrimaryId = subject.primaryId;
|
|
111
|
+
const objectTypeId = nonEmpty(authoredObjectTypeId, `Scoped grant ${grantIndex} subject ${subjectIndex} object type id`);
|
|
112
|
+
const primaryId = nonEmpty(authoredPrimaryId, `Scoped grant ${grantIndex} subject ${subjectIndex} primary id`);
|
|
113
|
+
return Object.freeze({ objectTypeId, primaryId });
|
|
114
|
+
}
|
|
115
|
+
function addActionIdentifierCharacters(budget, count) {
|
|
116
|
+
budget.identifierCharacters += count;
|
|
117
|
+
if (budget.identifierCharacters > MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS) {
|
|
118
|
+
throw new Error(`[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS} scoped action identifier characters.`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function validateMergedViewSelection(roots) {
|
|
122
|
+
const selection = captureSelectedObjectReadScope({ kind: "selected", roots });
|
|
123
|
+
compileSelectedObjectReadScope(selection);
|
|
124
|
+
return selection;
|
|
125
|
+
}
|
|
126
|
+
function assembleAccessPlanSnapshot(capturedGrants, selection) {
|
|
127
|
+
const grants = capturedGrants.map((grant) => {
|
|
128
|
+
if (grant.kind === "action.apply")
|
|
129
|
+
return grant;
|
|
130
|
+
const roots = Object.freeze(selection.roots.slice(grant.rootStart, grant.rootStart + grant.rootCount));
|
|
131
|
+
return Object.freeze({
|
|
132
|
+
kind: "object.view",
|
|
133
|
+
selection: Object.freeze({ kind: "selected", roots })
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
return Object.freeze({ grants: Object.freeze(grants) });
|
|
137
|
+
}
|
|
138
|
+
function objectReadScopeForAccessPlan(plan) {
|
|
139
|
+
return Object.freeze({
|
|
140
|
+
kind: "selected",
|
|
141
|
+
roots: Object.freeze(plan.grants.flatMap((grant) => grant.kind === "object.view" ? [...grant.selection.roots] : []))
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
function nonEmpty(value, label) {
|
|
145
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
146
|
+
throw new Error(`[Sixb] ${label} must not be empty.`);
|
|
147
|
+
}
|
|
148
|
+
return value;
|
|
149
|
+
}
|
|
150
|
+
function isRecord(value) {
|
|
151
|
+
return typeof value === "object" && value !== null;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// src/storage/share-grants/record.ts
|
|
155
|
+
import { createHash } from "crypto";
|
|
156
|
+
var DEFAULT_LIST_LIMIT = 50;
|
|
157
|
+
var MAX_LIST_LIMIT = 200;
|
|
158
|
+
var MAX_DESTINATION_PATH_LENGTH = 4096;
|
|
159
|
+
var SHA256_HEX = /^[0-9a-f]{64}$/;
|
|
160
|
+
var SHARED_APP_PATH_PREFIX = "/shared";
|
|
161
|
+
function normalizeShareGrantCreate(input) {
|
|
162
|
+
if (!isRecord2(input))
|
|
163
|
+
throw invalidInput("Share grant create input must be an object.");
|
|
164
|
+
const projectId = identifier(input.projectId, "Project id");
|
|
165
|
+
const id = identifier(input.id, "Share grant id");
|
|
166
|
+
const definitionId = identifier(input.definitionId, "Share definition id");
|
|
167
|
+
const target = normalizeObjectRef(input.target, "Share target");
|
|
168
|
+
const issuedBy = normalizeAuthorizablePrincipal(input.issuedBy, "Share issuer");
|
|
169
|
+
const authoritySnapshot = normalizeAuthoritySnapshot(input.authoritySnapshot, target);
|
|
170
|
+
const tokenHash = sha256(input.tokenHash, "Share token hash");
|
|
171
|
+
const destinationPath = normalizeDestinationPath(input.destinationPath);
|
|
172
|
+
const createdAt = inputDate(input.createdAt, "Share creation time");
|
|
173
|
+
const expiresAt = inputDate(input.expiresAt, "Share expiry time");
|
|
174
|
+
if (expiresAt.getTime() <= createdAt.getTime()) {
|
|
175
|
+
throw invalidInput("Share expiry time must be later than creation time.");
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
id,
|
|
179
|
+
projectId,
|
|
180
|
+
definitionId,
|
|
181
|
+
target,
|
|
182
|
+
issuedBy,
|
|
183
|
+
authoritySnapshot,
|
|
184
|
+
authorityDigest: shareAuthorityDigest(authoritySnapshot),
|
|
185
|
+
tokenHash,
|
|
186
|
+
destinationPath,
|
|
187
|
+
createdAt,
|
|
188
|
+
expiresAt
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function parseShareGrantRecord(input) {
|
|
192
|
+
if (!isRecord2(input))
|
|
193
|
+
throw invalidRecord("Share grant row must be an object.");
|
|
194
|
+
try {
|
|
195
|
+
const projectId = identifier(input.projectId, "Project id");
|
|
196
|
+
const id = identifier(input.id, "Share grant id");
|
|
197
|
+
const definitionId = identifier(input.definitionId, "Share definition id");
|
|
198
|
+
const target = normalizeObjectRef(input.target, "Share target");
|
|
199
|
+
const issuedBy = normalizeAuthorizablePrincipal(input.issuedBy, "Share issuer");
|
|
200
|
+
const authoritySnapshot = normalizeAuthoritySnapshot(input.authoritySnapshot, target);
|
|
201
|
+
const authorityDigest = sha256(input.authorityDigest, "Share authority digest");
|
|
202
|
+
const expectedDigest = shareAuthorityDigest(authoritySnapshot);
|
|
203
|
+
if (authorityDigest !== expectedDigest) {
|
|
204
|
+
throw invalidRecord("Share authority digest does not match its snapshot.");
|
|
205
|
+
}
|
|
206
|
+
const tokenHash = sha256(input.tokenHash, "Share token hash");
|
|
207
|
+
const destinationPath = normalizeDestinationPath(input.destinationPath);
|
|
208
|
+
const createdAt = storedDate(input.createdAt, "Share creation time");
|
|
209
|
+
const expiresAt = storedDate(input.expiresAt, "Share expiry time");
|
|
210
|
+
if (expiresAt.getTime() <= createdAt.getTime()) {
|
|
211
|
+
throw invalidRecord("Share expiry time must be later than creation time.");
|
|
212
|
+
}
|
|
213
|
+
const revokedAtValue = input.revokedAt;
|
|
214
|
+
const revokedByValue = input.revokedBy;
|
|
215
|
+
if (revokedAtValue === undefined !== (revokedByValue === undefined)) {
|
|
216
|
+
throw invalidRecord("Share revocation time and actor must be stored together.");
|
|
217
|
+
}
|
|
218
|
+
if (revokedAtValue === null || revokedByValue === null) {
|
|
219
|
+
throw invalidRecord("Share revocation fields must be omitted rather than null.");
|
|
220
|
+
}
|
|
221
|
+
const revokedAt = revokedAtValue === undefined ? undefined : storedDate(revokedAtValue, "Share revocation time");
|
|
222
|
+
const revokedBy = revokedByValue === undefined ? undefined : normalizePrincipal(revokedByValue, "Share revocation actor");
|
|
223
|
+
if (revokedAt && revokedAt.getTime() < createdAt.getTime()) {
|
|
224
|
+
throw invalidRecord("Share revocation time must not precede creation time.");
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
id,
|
|
228
|
+
projectId,
|
|
229
|
+
definitionId,
|
|
230
|
+
target,
|
|
231
|
+
issuedBy,
|
|
232
|
+
authoritySnapshot,
|
|
233
|
+
authorityDigest,
|
|
234
|
+
tokenHash,
|
|
235
|
+
destinationPath,
|
|
236
|
+
createdAt,
|
|
237
|
+
expiresAt,
|
|
238
|
+
...revokedAt === undefined ? {} : { revokedAt },
|
|
239
|
+
...revokedBy === undefined ? {} : { revokedBy }
|
|
240
|
+
};
|
|
241
|
+
} catch (error) {
|
|
242
|
+
if (error instanceof ShareGrantStorageError) {
|
|
243
|
+
if (error.code === "invalid_record")
|
|
244
|
+
throw error;
|
|
245
|
+
throw invalidRecord(error.message.replace(/^\[Sixb\] /, ""), error);
|
|
246
|
+
}
|
|
247
|
+
throw error;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
function normalizeGetShareGrantByIdInput(input) {
|
|
251
|
+
if (!isRecord2(input))
|
|
252
|
+
throw invalidInput("Share grant lookup input must be an object.");
|
|
253
|
+
return {
|
|
254
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
255
|
+
id: identifier(input.id, "Share grant id")
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function normalizeListShareGrantsInput(input) {
|
|
259
|
+
if (!isRecord2(input))
|
|
260
|
+
throw invalidInput("Share grant list input must be an object.");
|
|
261
|
+
const projectId = identifier(input.projectId, "Project id");
|
|
262
|
+
const definitionId = input.definitionId === undefined ? undefined : identifier(input.definitionId, "Share definition id");
|
|
263
|
+
const target = input.target === undefined ? undefined : normalizeObjectRef(input.target, "Share target");
|
|
264
|
+
const includeRevoked = optionalBoolean(input.includeRevoked, "includeRevoked");
|
|
265
|
+
const includeExpired = optionalBoolean(input.includeExpired, "includeExpired");
|
|
266
|
+
const now = inputDate(input.now, "Share grant list time");
|
|
267
|
+
const limit = safeInteger(input.limit ?? DEFAULT_LIST_LIMIT, "Share grant list limit", 1);
|
|
268
|
+
const offset = safeInteger(input.offset ?? 0, "Share grant list offset", 0);
|
|
269
|
+
if (limit > MAX_LIST_LIMIT) {
|
|
270
|
+
throw invalidInput(`Share grant list limit must not exceed ${MAX_LIST_LIMIT}.`);
|
|
271
|
+
}
|
|
272
|
+
return {
|
|
273
|
+
projectId,
|
|
274
|
+
...definitionId === undefined ? {} : { definitionId },
|
|
275
|
+
...target === undefined ? {} : { target },
|
|
276
|
+
includeRevoked,
|
|
277
|
+
includeExpired,
|
|
278
|
+
now,
|
|
279
|
+
limit,
|
|
280
|
+
offset
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
function normalizeRevokeShareGrantInput(input, createdAt) {
|
|
284
|
+
if (!isRecord2(input))
|
|
285
|
+
throw invalidInput("Share grant revocation input must be an object.");
|
|
286
|
+
const normalized = {
|
|
287
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
288
|
+
id: identifier(input.id, "Share grant id"),
|
|
289
|
+
revokedAt: inputDate(input.revokedAt, "Share revocation time"),
|
|
290
|
+
revokedBy: normalizePrincipal(input.revokedBy, "Share revocation actor")
|
|
291
|
+
};
|
|
292
|
+
if (createdAt && normalized.revokedAt.getTime() < createdAt.getTime()) {
|
|
293
|
+
throw invalidInput("Share revocation time must not precede creation time.");
|
|
294
|
+
}
|
|
295
|
+
return normalized;
|
|
296
|
+
}
|
|
297
|
+
function cloneShareGrantRecord(input) {
|
|
298
|
+
return structuredClone(input);
|
|
299
|
+
}
|
|
300
|
+
function shareAuthorityDigest(snapshot) {
|
|
301
|
+
return createHash("sha256").update(stableJsonStringify(snapshot)).digest("hex");
|
|
302
|
+
}
|
|
303
|
+
function normalizeAuthoritySnapshot(value, target) {
|
|
304
|
+
if (!isRecord2(value) || value.version !== 1 || !isRecord2(value.access)) {
|
|
305
|
+
throw invalidInput("Share authority snapshot version is unsupported.");
|
|
306
|
+
}
|
|
307
|
+
let access;
|
|
308
|
+
try {
|
|
309
|
+
access = snapshotShareAccessPlan(value.access);
|
|
310
|
+
} catch (error) {
|
|
311
|
+
if (error instanceof ShareGrantStorageError)
|
|
312
|
+
throw error;
|
|
313
|
+
const reason = error instanceof Error ? error.message.replace(/^\[Sixb\] /, "") : String(error);
|
|
314
|
+
throw invalidInput(`Share authority snapshot is invalid: ${reason}`, error);
|
|
315
|
+
}
|
|
316
|
+
assertAccessTargets(access, target);
|
|
317
|
+
return Object.freeze({ version: 1, access });
|
|
318
|
+
}
|
|
319
|
+
function assertAccessTargets(access, target) {
|
|
320
|
+
for (const grant of access.grants) {
|
|
321
|
+
if (grant.kind === "object.view") {
|
|
322
|
+
for (const root of grant.selection.roots) {
|
|
323
|
+
if (!sameObjectRef(root.anchor, target)) {
|
|
324
|
+
throw invalidInput("Every Share view root must match the exact Share target.");
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
for (const subject of grant.subjects) {
|
|
330
|
+
if (!sameObjectRef(subject, target)) {
|
|
331
|
+
throw invalidInput("Every shared Action subject must match the exact Share target.");
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
function sameObjectRef(left, right) {
|
|
337
|
+
return left.objectTypeId === right.objectTypeId && left.primaryId === right.primaryId;
|
|
338
|
+
}
|
|
339
|
+
function normalizeObjectRef(value, label) {
|
|
340
|
+
if (!isRecord2(value))
|
|
341
|
+
throw invalidInput(`${label} must be an exact object reference.`);
|
|
342
|
+
return Object.freeze({
|
|
343
|
+
objectTypeId: identifier(value.objectTypeId, `${label} object type id`),
|
|
344
|
+
primaryId: identifier(value.primaryId, `${label} primary id`)
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
function normalizeAuthorizablePrincipal(value, label) {
|
|
348
|
+
const principal = normalizePrincipal(value, label);
|
|
349
|
+
if (principal.type === "system") {
|
|
350
|
+
throw invalidInput(`${label} must be a user or service account.`);
|
|
351
|
+
}
|
|
352
|
+
return principal;
|
|
353
|
+
}
|
|
354
|
+
function normalizePrincipal(value, label) {
|
|
355
|
+
if (!isRecord2(value))
|
|
356
|
+
throw invalidInput(`${label} must be a principal.`);
|
|
357
|
+
if (value.type !== "user" && value.type !== "serviceAccount" && value.type !== "system") {
|
|
358
|
+
throw invalidInput(`${label} has an unsupported type.`);
|
|
359
|
+
}
|
|
360
|
+
return Object.freeze({ type: value.type, id: identifier(value.id, `${label} id`) });
|
|
361
|
+
}
|
|
362
|
+
function normalizeDestinationPath(value) {
|
|
363
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
364
|
+
throw invalidInput("Share destination path must not be empty.");
|
|
365
|
+
}
|
|
366
|
+
if (value.length > MAX_DESTINATION_PATH_LENGTH) {
|
|
367
|
+
throw invalidInput(`Share destination path must not exceed ${MAX_DESTINATION_PATH_LENGTH} characters.`);
|
|
368
|
+
}
|
|
369
|
+
if (!value.startsWith("/") || value.includes("//") || value.includes("?") || value.includes("#") || value.includes("\\") || value.includes("\x00")) {
|
|
370
|
+
throw invalidInput("Share destination path must be an absolute same-origin pathname without query or fragment.");
|
|
371
|
+
}
|
|
372
|
+
const normalized = new URL(value, "https://sixb.invalid").pathname;
|
|
373
|
+
if (normalized !== value) {
|
|
374
|
+
throw invalidInput("Share destination path must already be canonical.");
|
|
375
|
+
}
|
|
376
|
+
let decoded;
|
|
377
|
+
try {
|
|
378
|
+
decoded = decodeURIComponent(value).replaceAll("\\", "/");
|
|
379
|
+
} catch {
|
|
380
|
+
throw invalidInput("Share destination path must contain valid percent-encoding.");
|
|
381
|
+
}
|
|
382
|
+
if (decoded === SHARED_APP_PATH_PREFIX || decoded.startsWith(`${SHARED_APP_PATH_PREFIX}/`)) {
|
|
383
|
+
throw invalidInput("Share destination path must not use the framework-owned '/shared' namespace.");
|
|
384
|
+
}
|
|
385
|
+
return value;
|
|
386
|
+
}
|
|
387
|
+
function identifier(value, label) {
|
|
388
|
+
if (typeof value !== "string" || value.trim().length === 0 || value.includes("\x00")) {
|
|
389
|
+
throw invalidInput(`${label} must be a non-empty string without NUL bytes.`);
|
|
390
|
+
}
|
|
391
|
+
return value;
|
|
392
|
+
}
|
|
393
|
+
function sha256(value, label) {
|
|
394
|
+
if (typeof value !== "string" || !SHA256_HEX.test(value)) {
|
|
395
|
+
throw invalidInput(`${label} must be a lowercase SHA-256 hex digest.`);
|
|
396
|
+
}
|
|
397
|
+
return value;
|
|
398
|
+
}
|
|
399
|
+
function inputDate(value, label) {
|
|
400
|
+
if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {
|
|
401
|
+
throw invalidInput(`${label} must be a valid Date.`);
|
|
402
|
+
}
|
|
403
|
+
return new Date(value);
|
|
404
|
+
}
|
|
405
|
+
function storedDate(value, label) {
|
|
406
|
+
const parsed = value instanceof Date ? new Date(value) : typeof value === "string" ? new Date(value) : new Date(Number.NaN);
|
|
407
|
+
if (!Number.isFinite(parsed.getTime()))
|
|
408
|
+
throw invalidRecord(`${label} is invalid.`);
|
|
409
|
+
return parsed;
|
|
410
|
+
}
|
|
411
|
+
function optionalBoolean(value, label) {
|
|
412
|
+
if (value === undefined)
|
|
413
|
+
return false;
|
|
414
|
+
if (typeof value !== "boolean")
|
|
415
|
+
throw invalidInput(`${label} must be a boolean.`);
|
|
416
|
+
return value;
|
|
417
|
+
}
|
|
418
|
+
function safeInteger(value, label, minimum) {
|
|
419
|
+
if (!Number.isSafeInteger(value) || value < minimum) {
|
|
420
|
+
throw invalidInput(`${label} must be a safe integer greater than or equal to ${minimum}.`);
|
|
421
|
+
}
|
|
422
|
+
return value;
|
|
423
|
+
}
|
|
424
|
+
function isRecord2(value) {
|
|
425
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
426
|
+
}
|
|
427
|
+
function invalidInput(message, cause) {
|
|
428
|
+
return new ShareGrantStorageError("invalid_input", `[Sixb] ${message}`, { cause });
|
|
429
|
+
}
|
|
430
|
+
function invalidRecord(message, cause) {
|
|
431
|
+
return new ShareGrantStorageError("invalid_record", `[Sixb] ${message}`, { cause });
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
export { ShareGrantStorageError, snapshotShareAccessPlan, objectReadScopeForAccessPlan, normalizeShareGrantCreate, parseShareGrantRecord, normalizeGetShareGrantByIdInput, normalizeListShareGrantsInput, normalizeRevokeShareGrantInput, cloneShareGrantRecord, shareAuthorityDigest };
|
|
435
|
+
|
|
436
|
+
//# debugId=0F41D81FEC343F9E64756E2164756E21
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/storage/share-grants/errors.ts", "../src/shares/access-plan.ts", "../src/storage/share-grants/record.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export type ShareGrantStorageErrorCode = \"duplicate\" | \"invalid_input\" | \"invalid_record\"\n\n/** Provider-level control signal; Core maps it to the public Share lifecycle error vocabulary. */\nexport class ShareGrantStorageError extends Error {\n readonly name = \"ShareGrantStorageError\"\n\n constructor(\n readonly code: ShareGrantStorageErrorCode,\n message: string,\n options?: ErrorOptions\n ) {\n super(message, options)\n }\n}\n",
|
|
6
|
+
"import type { ObjectRef } from \"../ontology\"\nimport {\n captureSelectedObjectReadScope,\n compileSelectedObjectReadScope,\n} from \"../storage/objects/read-scope\"\nimport type { ObjectReadRoot, SelectedObjectReadScope } from \"../storage/objects/types\"\n\nconst MAX_SCOPED_GRANTS = 1_024\nconst MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION = 1_024\nconst MAX_SCOPED_ACTION_SUBJECTS = 4_096\nconst MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS = 1_000_000\n\n/** One capability paired with the exact resources it authorizes. */\nexport type ShareScopedGrant = ShareScopedViewGrant | ShareScopedActionGrant\n\nexport interface ShareScopedViewGrant {\n readonly kind: \"object.view\"\n readonly selection: SelectedObjectReadScope\n}\n\nexport interface ShareScopedActionGrant {\n readonly kind: \"action.apply\"\n readonly actionId: string\n readonly subjects: readonly ObjectRef[]\n}\n\n/** Internal authority compiled from a delegation such as a shared-access grant. */\nexport interface ShareAccessPlan {\n readonly grants: readonly ShareScopedGrant[]\n}\n\ninterface CapturedViewGrant {\n readonly kind: \"object.view\"\n readonly rootStart: number\n readonly rootCount: number\n}\n\ntype CapturedGrant = CapturedViewGrant | ShareScopedActionGrant\n\ninterface ActionCaptureBudget {\n subjectCount: number\n identifierCharacters: number\n}\n\n/** Validate and detach an access plan before registering process-local authority. */\nexport function snapshotShareAccessPlan(input: ShareAccessPlan): ShareAccessPlan {\n const captured = captureAccessPlanGrants(input)\n const selection = validateMergedViewSelection(captured.viewRoots)\n return assembleAccessPlanSnapshot(captured.grants, selection)\n}\n\nfunction captureAccessPlanGrants(input: ShareAccessPlan): {\n readonly grants: readonly CapturedGrant[]\n readonly viewRoots: readonly ObjectReadRoot[]\n} {\n if (!isRecord(input)) {\n throw new Error(\"[Sixb] Share access plan must contain scoped grants.\")\n }\n const authoredGrants = input.grants\n if (!Array.isArray(authoredGrants)) {\n throw new Error(\"[Sixb] Share access plan must contain scoped grants.\")\n }\n const grantCount = authoredGrants.length\n if (grantCount > MAX_SCOPED_GRANTS) {\n throw new Error(\n `[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_GRANTS} scoped grants.`\n )\n }\n\n // Share budgets across grants and capture caller-controlled fields exactly once.\n const budget: ActionCaptureBudget = { subjectCount: 0, identifierCharacters: 0 }\n const viewRoots: ObjectReadRoot[] = []\n const grants: CapturedGrant[] = []\n for (let index = 0; index < grantCount; index += 1) {\n const grant = authoredGrants[index]\n if (!isRecord(grant)) {\n throw new Error(`[Sixb] Scoped grant ${index} must be an object.`)\n }\n const kind = grant.kind\n switch (kind) {\n case \"object.view\":\n grants.push(captureViewGrant(grant, index, viewRoots))\n break\n case \"action.apply\":\n grants.push(captureActionGrant(grant, index, budget))\n break\n default:\n throw new Error(`[Sixb] Unknown scoped grant kind '${String(kind)}'.`)\n }\n }\n return { grants, viewRoots }\n}\n\nfunction captureViewGrant(\n grant: Record<string, unknown>,\n index: number,\n viewRoots: ObjectReadRoot[]\n): CapturedViewGrant {\n const selection = grant.selection\n if (!isRecord(selection)) {\n throw new Error(`[Sixb] Scoped grant ${index} requires a selected object read scope.`)\n }\n const selectionKind = selection.kind\n const roots = selection.roots\n if (selectionKind !== \"selected\" || !Array.isArray(roots)) {\n throw new Error(`[Sixb] Scoped grant ${index} requires a selected object read scope.`)\n }\n const rootCount = roots.length\n if (rootCount > MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION - viewRoots.length) {\n throw new Error(\n `[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_VIEW_ROOTS_BEFORE_COMPILATION} raw scoped view roots.`\n )\n }\n const rootStart = viewRoots.length\n for (let rootIndex = 0; rootIndex < rootCount; rootIndex += 1) {\n viewRoots.push(roots[rootIndex] as ObjectReadRoot)\n }\n return { kind: \"object.view\", rootStart, rootCount }\n}\n\nfunction captureActionGrant(\n grant: Record<string, unknown>,\n index: number,\n budget: ActionCaptureBudget\n): ShareScopedActionGrant {\n const authoredActionId = grant.actionId\n const authoredSubjects = grant.subjects\n const actionId = nonEmpty(authoredActionId, `Scoped grant ${index} action id`)\n addActionIdentifierCharacters(budget, actionId.length)\n if (!Array.isArray(authoredSubjects)) {\n throw new Error(`[Sixb] Scoped grant ${index} action subjects must be an array.`)\n }\n const subjectCount = authoredSubjects.length\n budget.subjectCount += subjectCount\n if (budget.subjectCount > MAX_SCOPED_ACTION_SUBJECTS) {\n throw new Error(\n `[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_ACTION_SUBJECTS} scoped action subjects.`\n )\n }\n const subjects: ObjectRef[] = []\n for (let subjectIndex = 0; subjectIndex < subjectCount; subjectIndex += 1) {\n const subject = captureActionSubject(authoredSubjects[subjectIndex], index, subjectIndex)\n addActionIdentifierCharacters(budget, subject.objectTypeId.length + subject.primaryId.length)\n subjects.push(subject)\n }\n return Object.freeze({ kind: \"action.apply\", actionId, subjects: Object.freeze(subjects) })\n}\n\nfunction captureActionSubject(\n subject: unknown,\n grantIndex: number,\n subjectIndex: number\n): ObjectRef {\n if (!isRecord(subject)) {\n throw new Error(`[Sixb] Scoped grant ${grantIndex} subject ${subjectIndex} must be an object.`)\n }\n const authoredObjectTypeId = subject.objectTypeId\n const authoredPrimaryId = subject.primaryId\n const objectTypeId = nonEmpty(\n authoredObjectTypeId,\n `Scoped grant ${grantIndex} subject ${subjectIndex} object type id`\n )\n const primaryId = nonEmpty(\n authoredPrimaryId,\n `Scoped grant ${grantIndex} subject ${subjectIndex} primary id`\n )\n return Object.freeze({ objectTypeId, primaryId })\n}\n\nfunction addActionIdentifierCharacters(budget: ActionCaptureBudget, count: number): void {\n budget.identifierCharacters += count\n if (budget.identifierCharacters > MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS) {\n throw new Error(\n `[Sixb] Share access plan exceeds the maximum of ${MAX_SCOPED_ACTION_IDENTIFIER_CHARACTERS} scoped action identifier characters.`\n )\n }\n}\n\nfunction validateMergedViewSelection(roots: readonly ObjectReadRoot[]): SelectedObjectReadScope {\n // Snapshot all roots together so the provider's limits apply globally across view grants.\n const selection = captureSelectedObjectReadScope({ kind: \"selected\", roots })\n // Compile the exact immutable snapshot, without rereading caller-controlled data.\n compileSelectedObjectReadScope(selection)\n return selection\n}\n\nfunction assembleAccessPlanSnapshot(\n capturedGrants: readonly CapturedGrant[],\n selection: SelectedObjectReadScope\n): ShareAccessPlan {\n const grants = capturedGrants.map((grant): ShareScopedGrant => {\n if (grant.kind === \"action.apply\") return grant\n const roots = Object.freeze(\n selection.roots.slice(grant.rootStart, grant.rootStart + grant.rootCount)\n )\n return Object.freeze({\n kind: \"object.view\",\n selection: Object.freeze({ kind: \"selected\", roots }),\n })\n })\n return Object.freeze({ grants: Object.freeze(grants) })\n}\n\n/** Merge view grants only; capability/resource pairing remains intact for every other grant. */\nexport function objectReadScopeForAccessPlan(plan: ShareAccessPlan): SelectedObjectReadScope {\n return Object.freeze({\n kind: \"selected\",\n roots: Object.freeze(\n plan.grants.flatMap((grant) =>\n grant.kind === \"object.view\" ? [...grant.selection.roots] : []\n )\n ),\n })\n}\n\nfunction nonEmpty(value: unknown, label: string): string {\n if (typeof value !== \"string\" || !value.trim()) {\n throw new Error(`[Sixb] ${label} must not be empty.`)\n }\n return value\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null\n}\n",
|
|
7
|
+
"import { createHash } from \"node:crypto\"\nimport type { Principal } from \"../../auth\"\nimport type { AuthorizablePrincipal } from \"../../execution/types\"\nimport { stableJsonStringify } from \"../../json\"\nimport type { ObjectRef } from \"../../ontology\"\nimport { snapshotShareAccessPlan } from \"../../shares/access-plan\"\nimport { ShareGrantStorageError } from \"./errors\"\nimport type {\n CreateShareGrantInput,\n GetShareGrantByIdInput,\n ListShareGrantsInput,\n NormalizedListShareGrantsInput,\n RevokeShareGrantInput,\n ShareAuthoritySnapshot,\n ShareGrantRecord,\n} from \"./types\"\n\nconst DEFAULT_LIST_LIMIT = 50\nconst MAX_LIST_LIMIT = 200\nconst MAX_DESTINATION_PATH_LENGTH = 4_096\nconst SHA256_HEX = /^[0-9a-f]{64}$/\nconst SHARED_APP_PATH_PREFIX = \"/shared\"\n\n/** Normalize, detach, and derive every persisted field owned by Share grant storage. */\nexport function normalizeShareGrantCreate(input: CreateShareGrantInput): ShareGrantRecord {\n if (!isRecord(input)) throw invalidInput(\"Share grant create input must be an object.\")\n const projectId = identifier(input.projectId, \"Project id\")\n const id = identifier(input.id, \"Share grant id\")\n const definitionId = identifier(input.definitionId, \"Share definition id\")\n const target = normalizeObjectRef(input.target, \"Share target\")\n const issuedBy = normalizeAuthorizablePrincipal(input.issuedBy, \"Share issuer\")\n const authoritySnapshot = normalizeAuthoritySnapshot(input.authoritySnapshot, target)\n const tokenHash = sha256(input.tokenHash, \"Share token hash\")\n const destinationPath = normalizeDestinationPath(input.destinationPath)\n const createdAt = inputDate(input.createdAt, \"Share creation time\")\n const expiresAt = inputDate(input.expiresAt, \"Share expiry time\")\n\n if (expiresAt.getTime() <= createdAt.getTime()) {\n throw invalidInput(\"Share expiry time must be later than creation time.\")\n }\n\n return {\n id,\n projectId,\n definitionId,\n target,\n issuedBy,\n authoritySnapshot,\n authorityDigest: shareAuthorityDigest(authoritySnapshot),\n tokenHash,\n destinationPath,\n createdAt,\n expiresAt,\n }\n}\n\n/** Parse a provider row and reject unknown/corrupt durable authority instead of widening it. */\nexport function parseShareGrantRecord(input: unknown): ShareGrantRecord {\n if (!isRecord(input)) throw invalidRecord(\"Share grant row must be an object.\")\n\n try {\n const projectId = identifier(input.projectId, \"Project id\")\n const id = identifier(input.id, \"Share grant id\")\n const definitionId = identifier(input.definitionId, \"Share definition id\")\n const target = normalizeObjectRef(input.target, \"Share target\")\n const issuedBy = normalizeAuthorizablePrincipal(input.issuedBy, \"Share issuer\")\n const authoritySnapshot = normalizeAuthoritySnapshot(input.authoritySnapshot, target)\n const authorityDigest = sha256(input.authorityDigest, \"Share authority digest\")\n const expectedDigest = shareAuthorityDigest(authoritySnapshot)\n if (authorityDigest !== expectedDigest) {\n throw invalidRecord(\"Share authority digest does not match its snapshot.\")\n }\n const tokenHash = sha256(input.tokenHash, \"Share token hash\")\n const destinationPath = normalizeDestinationPath(input.destinationPath)\n const createdAt = storedDate(input.createdAt, \"Share creation time\")\n const expiresAt = storedDate(input.expiresAt, \"Share expiry time\")\n if (expiresAt.getTime() <= createdAt.getTime()) {\n throw invalidRecord(\"Share expiry time must be later than creation time.\")\n }\n\n const revokedAtValue = input.revokedAt\n const revokedByValue = input.revokedBy\n if ((revokedAtValue === undefined) !== (revokedByValue === undefined)) {\n throw invalidRecord(\"Share revocation time and actor must be stored together.\")\n }\n if (revokedAtValue === null || revokedByValue === null) {\n throw invalidRecord(\"Share revocation fields must be omitted rather than null.\")\n }\n\n const revokedAt =\n revokedAtValue === undefined ? undefined : storedDate(revokedAtValue, \"Share revocation time\")\n const revokedBy =\n revokedByValue === undefined\n ? undefined\n : normalizePrincipal(revokedByValue, \"Share revocation actor\")\n if (revokedAt && revokedAt.getTime() < createdAt.getTime()) {\n throw invalidRecord(\"Share revocation time must not precede creation time.\")\n }\n\n return {\n id,\n projectId,\n definitionId,\n target,\n issuedBy,\n authoritySnapshot,\n authorityDigest,\n tokenHash,\n destinationPath,\n createdAt,\n expiresAt,\n ...(revokedAt === undefined ? {} : { revokedAt }),\n ...(revokedBy === undefined ? {} : { revokedBy }),\n }\n } catch (error) {\n if (error instanceof ShareGrantStorageError) {\n if (error.code === \"invalid_record\") throw error\n throw invalidRecord(error.message.replace(/^\\[Sixb\\] /, \"\"), error)\n }\n throw error\n }\n}\n\nexport function normalizeGetShareGrantByIdInput(\n input: GetShareGrantByIdInput\n): GetShareGrantByIdInput {\n if (!isRecord(input)) throw invalidInput(\"Share grant lookup input must be an object.\")\n return {\n projectId: identifier(input.projectId, \"Project id\"),\n id: identifier(input.id, \"Share grant id\"),\n }\n}\n\nexport function normalizeListShareGrantsInput(\n input: ListShareGrantsInput\n): NormalizedListShareGrantsInput {\n if (!isRecord(input)) throw invalidInput(\"Share grant list input must be an object.\")\n const projectId = identifier(input.projectId, \"Project id\")\n const definitionId =\n input.definitionId === undefined\n ? undefined\n : identifier(input.definitionId, \"Share definition id\")\n const target =\n input.target === undefined ? undefined : normalizeObjectRef(input.target, \"Share target\")\n const includeRevoked = optionalBoolean(input.includeRevoked, \"includeRevoked\")\n const includeExpired = optionalBoolean(input.includeExpired, \"includeExpired\")\n const now = inputDate(input.now, \"Share grant list time\")\n const limit = safeInteger(input.limit ?? DEFAULT_LIST_LIMIT, \"Share grant list limit\", 1)\n const offset = safeInteger(input.offset ?? 0, \"Share grant list offset\", 0)\n if (limit > MAX_LIST_LIMIT) {\n throw invalidInput(`Share grant list limit must not exceed ${MAX_LIST_LIMIT}.`)\n }\n\n return {\n projectId,\n ...(definitionId === undefined ? {} : { definitionId }),\n ...(target === undefined ? {} : { target }),\n includeRevoked,\n includeExpired,\n now,\n limit,\n offset,\n }\n}\n\nexport function normalizeRevokeShareGrantInput(\n input: RevokeShareGrantInput,\n createdAt?: Date\n): RevokeShareGrantInput {\n if (!isRecord(input)) throw invalidInput(\"Share grant revocation input must be an object.\")\n const normalized = {\n projectId: identifier(input.projectId, \"Project id\"),\n id: identifier(input.id, \"Share grant id\"),\n revokedAt: inputDate(input.revokedAt, \"Share revocation time\"),\n revokedBy: normalizePrincipal(input.revokedBy, \"Share revocation actor\"),\n }\n if (createdAt && normalized.revokedAt.getTime() < createdAt.getTime()) {\n throw invalidInput(\"Share revocation time must not precede creation time.\")\n }\n return normalized\n}\n\nexport function cloneShareGrantRecord(input: ShareGrantRecord): ShareGrantRecord {\n return structuredClone(input)\n}\n\nexport function shareAuthorityDigest(snapshot: ShareAuthoritySnapshot): string {\n return createHash(\"sha256\").update(stableJsonStringify(snapshot)).digest(\"hex\")\n}\n\nfunction normalizeAuthoritySnapshot(value: unknown, target: ObjectRef): ShareAuthoritySnapshot {\n if (!isRecord(value) || value.version !== 1 || !isRecord(value.access)) {\n throw invalidInput(\"Share authority snapshot version is unsupported.\")\n }\n let access: ShareAuthoritySnapshot[\"access\"]\n try {\n access = snapshotShareAccessPlan(value.access as never)\n } catch (error) {\n if (error instanceof ShareGrantStorageError) throw error\n const reason = error instanceof Error ? error.message.replace(/^\\[Sixb\\] /, \"\") : String(error)\n throw invalidInput(`Share authority snapshot is invalid: ${reason}`, error)\n }\n assertAccessTargets(access, target)\n return Object.freeze({ version: 1, access })\n}\n\nfunction assertAccessTargets(access: ShareAuthoritySnapshot[\"access\"], target: ObjectRef): void {\n for (const grant of access.grants) {\n if (grant.kind === \"object.view\") {\n for (const root of grant.selection.roots) {\n if (!sameObjectRef(root.anchor, target)) {\n throw invalidInput(\"Every Share view root must match the exact Share target.\")\n }\n }\n continue\n }\n for (const subject of grant.subjects) {\n if (!sameObjectRef(subject, target)) {\n throw invalidInput(\"Every shared Action subject must match the exact Share target.\")\n }\n }\n }\n}\n\nfunction sameObjectRef(left: ObjectRef, right: ObjectRef): boolean {\n return left.objectTypeId === right.objectTypeId && left.primaryId === right.primaryId\n}\n\nfunction normalizeObjectRef(value: unknown, label: string): ObjectRef {\n if (!isRecord(value)) throw invalidInput(`${label} must be an exact object reference.`)\n return Object.freeze({\n objectTypeId: identifier(value.objectTypeId, `${label} object type id`),\n primaryId: identifier(value.primaryId, `${label} primary id`),\n })\n}\n\nfunction normalizeAuthorizablePrincipal(value: unknown, label: string): AuthorizablePrincipal {\n const principal = normalizePrincipal(value, label)\n if (principal.type === \"system\") {\n throw invalidInput(`${label} must be a user or service account.`)\n }\n return principal\n}\n\nfunction normalizePrincipal(value: unknown, label: string): Principal {\n if (!isRecord(value)) throw invalidInput(`${label} must be a principal.`)\n if (value.type !== \"user\" && value.type !== \"serviceAccount\" && value.type !== \"system\") {\n throw invalidInput(`${label} has an unsupported type.`)\n }\n return Object.freeze({ type: value.type, id: identifier(value.id, `${label} id`) })\n}\n\nfunction normalizeDestinationPath(value: unknown): string {\n if (typeof value !== \"string\" || value.length === 0) {\n throw invalidInput(\"Share destination path must not be empty.\")\n }\n if (value.length > MAX_DESTINATION_PATH_LENGTH) {\n throw invalidInput(\n `Share destination path must not exceed ${MAX_DESTINATION_PATH_LENGTH} characters.`\n )\n }\n if (\n !value.startsWith(\"/\") ||\n value.includes(\"//\") ||\n value.includes(\"?\") ||\n value.includes(\"#\") ||\n value.includes(\"\\\\\") ||\n value.includes(\"\\0\")\n ) {\n throw invalidInput(\n \"Share destination path must be an absolute same-origin pathname without query or fragment.\"\n )\n }\n const normalized = new URL(value, \"https://sixb.invalid\").pathname\n if (normalized !== value) {\n throw invalidInput(\"Share destination path must already be canonical.\")\n }\n let decoded: string\n try {\n decoded = decodeURIComponent(value).replaceAll(\"\\\\\", \"/\")\n } catch {\n throw invalidInput(\"Share destination path must contain valid percent-encoding.\")\n }\n if (decoded === SHARED_APP_PATH_PREFIX || decoded.startsWith(`${SHARED_APP_PATH_PREFIX}/`)) {\n throw invalidInput(\n \"Share destination path must not use the framework-owned '/shared' namespace.\"\n )\n }\n return value\n}\n\nfunction identifier(value: unknown, label: string): string {\n if (typeof value !== \"string\" || value.trim().length === 0 || value.includes(\"\\0\")) {\n throw invalidInput(`${label} must be a non-empty string without NUL bytes.`)\n }\n return value\n}\n\nfunction sha256(value: unknown, label: string): string {\n if (typeof value !== \"string\" || !SHA256_HEX.test(value)) {\n throw invalidInput(`${label} must be a lowercase SHA-256 hex digest.`)\n }\n return value\n}\n\nfunction inputDate(value: unknown, label: string): Date {\n if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {\n throw invalidInput(`${label} must be a valid Date.`)\n }\n return new Date(value)\n}\n\nfunction storedDate(value: unknown, label: string): Date {\n const parsed =\n value instanceof Date\n ? new Date(value)\n : typeof value === \"string\"\n ? new Date(value)\n : new Date(Number.NaN)\n if (!Number.isFinite(parsed.getTime())) throw invalidRecord(`${label} is invalid.`)\n return parsed\n}\n\nfunction optionalBoolean(value: unknown, label: string): boolean {\n if (value === undefined) return false\n if (typeof value !== \"boolean\") throw invalidInput(`${label} must be a boolean.`)\n return value\n}\n\nfunction safeInteger(value: unknown, label: string, minimum: number): number {\n if (!Number.isSafeInteger(value) || (value as number) < minimum) {\n throw invalidInput(`${label} must be a safe integer greater than or equal to ${minimum}.`)\n }\n return value as number\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction invalidInput(message: string, cause?: unknown): ShareGrantStorageError {\n return new ShareGrantStorageError(\"invalid_input\", `[Sixb] ${message}`, { cause })\n}\n\nfunction invalidRecord(message: string, cause?: unknown): ShareGrantStorageError {\n return new ShareGrantStorageError(\"invalid_record\", `[Sixb] ${message}`, { cause })\n}\n"
|
|
8
|
+
],
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "0F41D81FEC343F9E64756E2164756E21",
|
|
11
|
+
"names": []
|
|
12
|
+
}
|