@sixb/core 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/delegated-admission.d.ts +24 -0
- package/dist/actions/delegated-admission.d.ts.map +1 -0
- package/dist/actions/descriptor.d.ts +29 -0
- package/dist/actions/descriptor.d.ts.map +1 -0
- package/dist/actions/execution.d.ts +5 -5
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.js +36 -30
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +20 -0
- package/dist/actions/run-authorization.d.ts.map +1 -0
- package/dist/actions/run-dispatch.d.ts +3 -1
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/worker.js +3 -3
- package/dist/actions/worker.js.map +1 -1
- package/dist/agents/adapters.d.ts +5 -122
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +1 -1
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context-resolution.d.ts.map +1 -1
- package/dist/agents/context.js +1 -1
- package/dist/agents/errors.d.ts +0 -9
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/identity.d.ts +3 -0
- package/dist/agents/identity.d.ts.map +1 -0
- package/dist/agents/index.d.ts +3 -3
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +43 -43
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +4 -5
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +2 -0
- package/dist/agents/model-loop.d.ts.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/tool-definition.d.ts +0 -1
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +0 -4
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/ai-usage/execution.d.ts.map +1 -1
- package/dist/auth/index.js +8 -5
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/decision.d.ts +10 -2
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +2 -1
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +7 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/bootstrap/discovery.d.ts +7 -1
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.js +46 -39
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/chunk-19jp6g9d.js +131 -0
- package/dist/chunk-19jp6g9d.js.map +11 -0
- package/dist/{chunk-x0qhkqje.js → chunk-2dw777qw.js} +50 -5
- package/dist/{chunk-x0qhkqje.js.map → chunk-2dw777qw.js.map} +4 -3
- package/dist/chunk-359jm1jw.js +147 -0
- package/dist/chunk-359jm1jw.js.map +10 -0
- package/dist/{chunk-2b5qtban.js → chunk-3xep5cjx.js} +56 -21
- package/dist/chunk-3xep5cjx.js.map +15 -0
- package/dist/{chunk-qjycjdj6.js → chunk-3z1qec12.js} +6 -8
- package/dist/{chunk-qjycjdj6.js.map → chunk-3z1qec12.js.map} +2 -2
- package/dist/{chunk-5jcdmjam.js → chunk-4jjp5k14.js} +1 -1
- package/dist/{chunk-n2arzn6e.js → chunk-4qfkag59.js} +44 -221
- package/dist/chunk-4qfkag59.js.map +20 -0
- package/dist/{chunk-rre42skh.js → chunk-4sm0aznx.js} +515 -80
- package/dist/{chunk-rre42skh.js.map → chunk-4sm0aznx.js.map} +11 -7
- package/dist/chunk-4yqmp43v.js +159 -0
- package/dist/chunk-4yqmp43v.js.map +11 -0
- package/dist/{chunk-atmkaf60.js → chunk-5e3pq99w.js} +2 -6
- package/dist/{chunk-atmkaf60.js.map → chunk-5e3pq99w.js.map} +3 -3
- package/dist/{chunk-agsvg9ar.js → chunk-5ntny1qx.js} +1 -1
- package/dist/{chunk-z2sery1b.js → chunk-9nbmsvn5.js} +60 -20
- package/dist/chunk-9nbmsvn5.js.map +11 -0
- package/dist/{chunk-e4rvtvpw.js → chunk-aa2pen2v.js} +250 -78
- package/dist/chunk-aa2pen2v.js.map +34 -0
- package/dist/{chunk-64sr682n.js → chunk-ajnan18g.js} +11 -8
- package/dist/chunk-ajnan18g.js.map +12 -0
- package/dist/{chunk-9aehf39w.js → chunk-f26bck4t.js} +4 -4
- package/dist/{chunk-7ds9620f.js → chunk-fvt9rjsa.js} +23 -7
- package/dist/chunk-fvt9rjsa.js.map +10 -0
- package/dist/{chunk-kt81c11h.js → chunk-gbejpkex.js} +5 -5
- package/dist/{chunk-kt81c11h.js.map → chunk-gbejpkex.js.map} +1 -1
- package/dist/{chunk-vjjv9mrb.js → chunk-gzasd5b6.js} +5 -5
- package/dist/{chunk-vjjv9mrb.js.map → chunk-gzasd5b6.js.map} +3 -3
- package/dist/{chunk-d63tybny.js → chunk-h0k55pc7.js} +4 -4
- package/dist/{chunk-d63tybny.js.map → chunk-h0k55pc7.js.map} +1 -1
- package/dist/chunk-h5vqbfmd.js +1537 -0
- package/dist/chunk-h5vqbfmd.js.map +19 -0
- package/dist/{chunk-3kv70xwp.js → chunk-j1sbhm7p.js} +18 -2
- package/dist/chunk-j1sbhm7p.js.map +10 -0
- package/dist/{chunk-hdz94br2.js → chunk-k522z7v6.js} +10 -5
- package/dist/chunk-k522z7v6.js.map +10 -0
- package/dist/{chunk-wjgm6jjt.js → chunk-mth82m8t.js} +128 -94
- package/dist/chunk-mth82m8t.js.map +14 -0
- package/dist/{chunk-qv38twt8.js → chunk-mwsxn98e.js} +46 -25
- package/dist/{chunk-qv38twt8.js.map → chunk-mwsxn98e.js.map} +6 -6
- package/dist/chunk-n4khvw9n.js +111 -0
- package/dist/chunk-n4khvw9n.js.map +11 -0
- package/dist/{chunk-qjzp9xyb.js → chunk-nn0tekr1.js} +6 -8
- package/dist/chunk-nn0tekr1.js.map +12 -0
- package/dist/chunk-nx7k8tpr.js +436 -0
- package/dist/chunk-nx7k8tpr.js.map +12 -0
- package/dist/{chunk-08twe8m6.js → chunk-p1rzczbt.js} +1 -1
- package/dist/{chunk-37wk412q.js → chunk-p1x242ad.js} +587 -70
- package/dist/chunk-p1x242ad.js.map +25 -0
- package/dist/{chunk-tn7xcs2n.js → chunk-pc7ys28c.js} +68 -5
- package/dist/chunk-pc7ys28c.js.map +14 -0
- package/dist/{chunk-3fqt22c4.js → chunk-q0k9nc5a.js} +280 -88
- package/dist/chunk-q0k9nc5a.js.map +14 -0
- package/dist/chunk-r8jrnexe.js +403 -0
- package/dist/chunk-r8jrnexe.js.map +10 -0
- package/dist/{chunk-gbrpsx4m.js → chunk-rafagrwr.js} +30 -2
- package/dist/chunk-rafagrwr.js.map +11 -0
- package/dist/{chunk-xdpwpkha.js → chunk-rv2hkwwa.js} +1 -1
- package/dist/{chunk-6ed5bwnd.js → chunk-sbzzr4kx.js} +1203 -691
- package/dist/{chunk-6ed5bwnd.js.map → chunk-sbzzr4kx.js.map} +15 -9
- package/dist/{chunk-d2ndstdf.js → chunk-v1xppd0y.js} +13 -11
- package/dist/{chunk-d2ndstdf.js.map → chunk-v1xppd0y.js.map} +2 -2
- package/dist/chunk-v4en4jc2.js +252 -0
- package/dist/chunk-v4en4jc2.js.map +10 -0
- package/dist/{chunk-1kamz6j0.js → chunk-w1tvjszy.js} +1 -1
- package/dist/{chunk-rp1mvzb4.js → chunk-w9tg6yyb.js} +11 -6
- package/dist/{chunk-rp1mvzb4.js.map → chunk-w9tg6yyb.js.map} +3 -3
- package/dist/{chunk-4nxeacx7.js → chunk-wdage1eb.js} +1 -1
- package/dist/{chunk-ha58tjtt.js → chunk-wtf06et8.js} +9 -5
- package/dist/{chunk-ha58tjtt.js.map → chunk-wtf06et8.js.map} +3 -3
- package/dist/{chunk-h0knpbz5.js → chunk-xajtptbw.js} +782 -211
- package/dist/chunk-xajtptbw.js.map +40 -0
- package/dist/{chunk-xc7hq65b.js → chunk-yp8ee62z.js} +49 -2
- package/dist/chunk-yp8ee62z.js.map +11 -0
- package/dist/chunk-z4ccwbkz.js +139 -0
- package/dist/chunk-z4ccwbkz.js.map +10 -0
- package/dist/datasets/builders.d.ts +11 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/changes.d.ts +14 -4
- package/dist/datasets/changes.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +15 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -0
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/sequence.d.ts +7 -0
- package/dist/datasets/sequence.d.ts.map +1 -0
- package/dist/datasets/types.d.ts +1 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +37 -0
- package/dist/datasets/write.d.ts.map +1 -0
- package/dist/datasets/write.js +17 -0
- package/dist/datasets/write.js.map +9 -0
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/types/datasets.d.ts +2 -6
- package/dist/events/types/datasets.d.ts.map +1 -1
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +39 -32
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts +58 -20
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +69 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -0
- package/dist/execution/durable.d.ts.map +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/primitive.js +39 -32
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.d.ts +11 -0
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +76 -40
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/scopes.d.ts +16 -0
- package/dist/execution/scopes.d.ts.map +1 -1
- package/dist/execution/types.d.ts +9 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/http/api-routes.d.ts +2 -0
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -78
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/definition-updates.d.ts.map +1 -1
- package/dist/lake-storage/errors.d.ts +5 -1
- package/dist/lake-storage/errors.d.ts.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +24 -7
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/merge-validation.d.ts.map +1 -1
- package/dist/lake-storage/merge.d.ts +13 -2
- package/dist/lake-storage/merge.d.ts.map +1 -1
- package/dist/lake-storage/source-ordering.d.ts +19 -0
- package/dist/lake-storage/source-ordering.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +2 -1
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +10 -5
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +4 -0
- package/dist/lake-storage/version-inputs.d.ts.map +1 -0
- package/dist/materializer/index.js +25 -22
- package/dist/materializer/index.js.map +1 -1
- package/dist/objects/authorized-ontology-view.d.ts +25 -0
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
- package/dist/objects/execution.d.ts +1 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +29 -26
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +2 -7
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/query/executor.d.ts +4 -2
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +24 -21
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/links.d.ts +22 -1
- package/dist/objects/query/links.d.ts.map +1 -1
- package/dist/objects/query/selected-read-admission.d.ts +27 -0
- package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts +60 -2
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/service/list-service.d.ts +2 -3
- package/dist/objects/service/list-service.d.ts.map +1 -1
- package/dist/objects/telemetry/history.d.ts +8 -6
- package/dist/objects/telemetry/history.d.ts.map +1 -1
- package/dist/objects/telemetry/index.d.ts +2 -2
- package/dist/objects/telemetry/index.d.ts.map +1 -1
- package/dist/objects/telemetry/workload.d.ts +11 -0
- package/dist/objects/telemetry/workload.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +2 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +13 -12
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +2 -1
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +0 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +5 -10
- package/dist/ontology/internal.js.map +3 -3
- package/dist/ontology/json-schema.d.ts +10 -6
- package/dist/ontology/json-schema.d.ts.map +1 -1
- package/dist/ontology/link-path-selection.d.ts +35 -0
- package/dist/ontology/link-path-selection.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +2 -0
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +2 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/pipelines/execution.d.ts.map +1 -1
- package/dist/pipelines/index.js +27 -24
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/request.d.ts.map +1 -1
- package/dist/projections/execution.d.ts.map +1 -1
- package/dist/projections/internal.js +25 -22
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/rules/execution.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +4 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +2 -0
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +2 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts +2 -0
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +4 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +3 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schedules/execution.d.ts +2 -1
- package/dist/schedules/execution.d.ts.map +1 -1
- package/dist/security/every.d.ts +4 -1
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +7 -2
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/registry.d.ts +1 -0
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +7 -1
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +2 -0
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/access-plan.d.ts +22 -0
- package/dist/shares/access-plan.d.ts.map +1 -0
- package/dist/shares/builders.d.ts +14 -0
- package/dist/shares/builders.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts +14 -0
- package/dist/shares/compiler.d.ts.map +1 -0
- package/dist/shares/errors.d.ts +4 -0
- package/dist/shares/errors.d.ts.map +1 -0
- package/dist/shares/execution.d.ts +57 -0
- package/dist/shares/execution.d.ts.map +1 -0
- package/dist/shares/index.d.ts +10 -0
- package/dist/shares/index.d.ts.map +1 -0
- package/dist/shares/internal.d.ts +3 -0
- package/dist/shares/internal.d.ts.map +1 -0
- package/dist/shares/internal.js +239 -0
- package/dist/shares/internal.js.map +10 -0
- package/dist/shares/intersection.d.ts +9 -0
- package/dist/shares/intersection.d.ts.map +1 -0
- package/dist/shares/session-protocol.d.ts +41 -0
- package/dist/shares/session-protocol.d.ts.map +1 -0
- package/dist/shares/types.d.ts +51 -0
- package/dist/shares/types.d.ts.map +1 -0
- package/dist/shares/validation.d.ts +11 -0
- package/dist/shares/validation.d.ts.map +1 -0
- package/dist/storage/action-runs/provider.js +2 -2
- package/dist/storage/agents/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +3 -0
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +4 -1
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +23 -3
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/run-link.d.ts +7 -0
- package/dist/storage/executions/run-link.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts +6 -0
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +8 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +65 -36
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +25 -0
- package/dist/storage/objects/execution-limits.d.ts.map +1 -0
- package/dist/storage/objects/guard.d.ts +16 -0
- package/dist/storage/objects/guard.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/index.d.ts +3 -0
- package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/keys.d.ts +10 -0
- package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/query.d.ts +31 -0
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
- package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
- package/dist/storage/objects/index.d.ts +4 -1
- package/dist/storage/objects/index.d.ts.map +1 -1
- package/dist/storage/objects/keys.d.ts +1 -1
- package/dist/storage/objects/keys.d.ts.map +1 -1
- package/dist/storage/objects/read-scope.d.ts +25 -0
- package/dist/storage/objects/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +114 -22
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/operation-scope.d.ts +3 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +4 -2
- package/dist/storage/operation-scope.js.map +1 -1
- package/dist/storage/pipeline-runs/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/share-grants/errors.d.ts +8 -0
- package/dist/storage/share-grants/errors.d.ts.map +1 -0
- package/dist/storage/share-grants/in-memory.d.ts +11 -0
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/share-grants/index.d.ts +5 -0
- package/dist/storage/share-grants/index.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.d.ts +4 -0
- package/dist/storage/share-grants/provider.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.js +24 -0
- package/dist/storage/share-grants/provider.js.map +9 -0
- package/dist/storage/share-grants/record.d.ts +11 -0
- package/dist/storage/share-grants/record.d.ts.map +1 -0
- package/dist/storage/share-grants/types.d.ts +97 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -0
- package/dist/storage/share-sessions/errors.d.ts +8 -0
- package/dist/storage/share-sessions/errors.d.ts.map +1 -0
- package/dist/storage/share-sessions/in-memory.d.ts +14 -0
- package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
- package/dist/storage/share-sessions/index.d.ts +5 -0
- package/dist/storage/share-sessions/index.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.d.ts +3 -0
- package/dist/storage/share-sessions/provider.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.js +20 -0
- package/dist/storage/share-sessions/provider.js.map +9 -0
- package/dist/storage/share-sessions/record.d.ts +8 -0
- package/dist/storage/share-sessions/record.d.ts.map +1 -0
- package/dist/storage/share-sessions/types.d.ts +50 -0
- package/dist/storage/share-sessions/types.d.ts.map +1 -0
- package/dist/storage/sync-runs/provider.js +2 -2
- package/dist/storage/transaction.d.ts +2 -1
- package/dist/storage/transaction.d.ts.map +1 -1
- package/dist/storage/types.d.ts +8 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/webhook-runs/provider.js +2 -2
- package/dist/storage/workflow-runs/provider.js +10 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/execution.d.ts.map +1 -1
- package/dist/syncs/index.js +27 -24
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/request.d.ts.map +1 -1
- package/dist/testing/dataset-sequence-contract.d.ts +4 -0
- package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
- package/dist/testing/effective-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts +4 -0
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2555 -908
- package/dist/testing/index.js.map +11 -7
- package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts +22 -0
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
- package/dist/testing/share-grant-storage-contract.d.ts +10 -0
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/share-session-storage-contract.d.ts +9 -0
- package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +24 -21
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workflows/execution.d.ts.map +1 -1
- package/dist/workflows/index.js +42 -35
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/package.json +25 -1
- package/src/actions/delegated-admission.ts +72 -0
- package/src/actions/descriptor.ts +58 -0
- package/src/actions/execution.ts +99 -24
- package/src/actions/request.ts +136 -19
- package/src/actions/run-authorization.ts +53 -0
- package/src/actions/run-dispatch.ts +8 -1
- package/src/agents/adapters.ts +30 -420
- package/src/agents/authority.ts +3 -4
- package/src/agents/context-resolution.ts +1 -4
- package/src/agents/errors.ts +0 -10
- package/src/agents/execution.ts +13 -5
- package/src/agents/identity.ts +4 -0
- package/src/agents/index.ts +1 -20
- package/src/agents/message.ts +4 -5
- package/src/agents/model-loop.ts +54 -6
- package/src/agents/request.ts +16 -3
- package/src/agents/tool-definition.ts +0 -19
- package/src/agents/validation.ts +6 -65
- package/src/ai-usage/execution.ts +4 -11
- package/src/authorization/decision.ts +29 -14
- package/src/authorization/grant-kinds.ts +10 -0
- package/src/authorization/index.ts +1 -0
- package/src/bootstrap/discovery.ts +3 -0
- package/src/bootstrap/ontology-type-manifest.ts +12 -6
- package/src/datasets/builders.ts +23 -2
- package/src/datasets/changes.ts +16 -4
- package/src/datasets/execution.ts +76 -5
- package/src/datasets/index.ts +1 -0
- package/src/datasets/sequence.ts +77 -0
- package/src/datasets/types.ts +1 -0
- package/src/datasets/validation.ts +26 -0
- package/src/datasets/write.ts +240 -0
- package/src/events/execution.ts +57 -7
- package/src/events/types/datasets.ts +2 -6
- package/src/execution/agent.ts +1 -4
- package/src/execution/authorization.ts +470 -90
- package/src/execution/authorized-object-reader.ts +695 -0
- package/src/execution/durable.ts +10 -2
- package/src/execution/index.ts +1 -0
- package/src/execution/request.ts +63 -13
- package/src/execution/scopes.ts +36 -6
- package/src/execution/types.ts +8 -0
- package/src/http/api-routes.ts +45 -0
- package/src/index.ts +36 -15
- package/src/lake-storage/definition-updates.ts +9 -0
- package/src/lake-storage/errors.ts +6 -1
- package/src/lake-storage/in-memory.ts +53 -17
- package/src/lake-storage/index.ts +10 -1
- package/src/lake-storage/merge-validation.ts +12 -2
- package/src/lake-storage/merge.ts +40 -2
- package/src/lake-storage/source-ordering.ts +95 -0
- package/src/lake-storage/sql-transforms.ts +2 -1
- package/src/lake-storage/types.ts +10 -5
- package/src/lake-storage/version-inputs.ts +14 -0
- package/src/objects/authorized-ontology-view.ts +512 -0
- package/src/objects/execution.ts +98 -143
- package/src/objects/link/authorization.ts +3 -2
- package/src/objects/query/executor.ts +45 -34
- package/src/objects/query/links.ts +84 -25
- package/src/objects/query/selected-read-admission.ts +310 -0
- package/src/objects/query/validate.ts +353 -36
- package/src/objects/sdk/object-handle.ts +2 -8
- package/src/objects/sdk/object-set.ts +10 -11
- package/src/objects/sdk/runtime-query-executor.ts +8 -28
- package/src/objects/sdk/telemetry-channel.ts +11 -7
- package/src/objects/service/list-service.ts +15 -29
- package/src/objects/telemetry/history.ts +297 -17
- package/src/objects/telemetry/index.ts +2 -2
- package/src/objects/telemetry/workload.ts +79 -0
- package/src/ontology/index.ts +7 -1
- package/src/ontology/inference/index.ts +4 -1
- package/src/ontology/internal.ts +0 -1
- package/src/ontology/json-schema.ts +13 -12
- package/src/ontology/link-path-selection.ts +193 -0
- package/src/ontology/refs.ts +19 -0
- package/src/ontology/tokens.ts +15 -8
- package/src/pipelines/execution.ts +30 -7
- package/src/pipelines/request.ts +5 -0
- package/src/projections/execution.ts +72 -11
- package/src/projections/run-dispatch.ts +6 -12
- package/src/rules/execution.ts +20 -8
- package/src/runtime/create.ts +5 -1
- package/src/runtime/definitions.ts +2 -0
- package/src/runtime/host.ts +25 -6
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/resolve-definitions.ts +9 -0
- package/src/runtime/sixb.ts +23 -2
- package/src/runtime/types.ts +3 -0
- package/src/schedules/execution.ts +24 -2
- package/src/security/every.ts +4 -0
- package/src/security/grants.ts +45 -3
- package/src/security/index.ts +1 -0
- package/src/security/registry.ts +3 -0
- package/src/security/types.ts +8 -0
- package/src/security/validation.ts +3 -0
- package/src/shares/access-plan.ts +225 -0
- package/src/shares/builders.ts +381 -0
- package/src/shares/compiler.ts +359 -0
- package/src/shares/errors.ts +3 -0
- package/src/shares/execution.ts +394 -0
- package/src/shares/index.ts +28 -0
- package/src/shares/internal.ts +9 -0
- package/src/shares/intersection.ts +178 -0
- package/src/shares/session-protocol.ts +258 -0
- package/src/shares/types.ts +76 -0
- package/src/shares/validation.ts +40 -0
- package/src/storage/executions/in-memory.ts +9 -1
- package/src/storage/executions/provider.ts +30 -1
- package/src/storage/executions/run-link.ts +29 -0
- package/src/storage/executions/validation.ts +46 -1
- package/src/storage/in-memory/index.ts +21 -2
- package/src/storage/index.ts +51 -0
- package/src/storage/objects/execution-limits.ts +283 -0
- package/src/storage/objects/guard.ts +55 -0
- package/src/storage/objects/in-memory/index.ts +2 -0
- package/src/storage/objects/in-memory/keys.ts +46 -0
- package/src/storage/objects/in-memory/query.ts +754 -0
- package/src/storage/objects/in-memory/read-scope.ts +211 -0
- package/src/storage/objects/in-memory/read-source.ts +10 -0
- package/src/storage/objects/in-memory/selected-reader.ts +252 -0
- package/src/storage/objects/in-memory/storage.ts +589 -0
- package/src/storage/objects/index.ts +21 -0
- package/src/storage/objects/keys.ts +1 -1
- package/src/storage/objects/read-scope.ts +672 -0
- package/src/storage/objects/types.ts +123 -19
- package/src/storage/operation-scope.ts +16 -0
- package/src/storage/share-grants/errors.ts +14 -0
- package/src/storage/share-grants/in-memory.ts +107 -0
- package/src/storage/share-grants/index.ts +14 -0
- package/src/storage/share-grants/provider.ts +11 -0
- package/src/storage/share-grants/record.ts +347 -0
- package/src/storage/share-grants/types.ts +112 -0
- package/src/storage/share-sessions/errors.ts +14 -0
- package/src/storage/share-sessions/in-memory.ts +105 -0
- package/src/storage/share-sessions/index.ts +11 -0
- package/src/storage/share-sessions/provider.ts +9 -0
- package/src/storage/share-sessions/record.ts +176 -0
- package/src/storage/share-sessions/types.ts +57 -0
- package/src/storage/transaction.ts +14 -2
- package/src/storage/types.ts +27 -0
- package/src/syncs/execution.ts +25 -5
- package/src/syncs/request.ts +5 -0
- package/src/testing/dataset-sequence-contract.ts +373 -0
- package/src/testing/effective-storage-contract.ts +34 -0
- package/src/testing/execution-storage-contract.ts +79 -0
- package/src/testing/index.ts +16 -0
- package/src/testing/lake-merge-storage-contract.ts +3 -0
- package/src/testing/lake-storage-contract.ts +58 -0
- package/src/testing/object-read-scope-contract.ts +939 -0
- package/src/testing/share-grant-storage-contract.ts +325 -0
- package/src/testing/share-session-storage-contract.ts +235 -0
- package/src/workflows/execution.ts +53 -14
- package/src/workflows/request.ts +5 -0
- package/dist/chunk-2b5qtban.js.map +0 -14
- package/dist/chunk-37wk412q.js.map +0 -23
- package/dist/chunk-3fqt22c4.js.map +0 -14
- package/dist/chunk-3kv70xwp.js.map +0 -10
- package/dist/chunk-64sr682n.js.map +0 -12
- package/dist/chunk-7ds9620f.js.map +0 -10
- package/dist/chunk-dqn23610.js +0 -72
- package/dist/chunk-dqn23610.js.map +0 -11
- package/dist/chunk-e4rvtvpw.js.map +0 -34
- package/dist/chunk-gbrpsx4m.js.map +0 -11
- package/dist/chunk-h0knpbz5.js.map +0 -38
- package/dist/chunk-hdz94br2.js.map +0 -10
- package/dist/chunk-n2arzn6e.js.map +0 -20
- package/dist/chunk-qjzp9xyb.js.map +0 -12
- package/dist/chunk-tn7xcs2n.js.map +0 -13
- package/dist/chunk-wjgm6jjt.js.map +0 -13
- package/dist/chunk-xc7hq65b.js.map +0 -10
- package/dist/chunk-y35ma3mj.js +0 -551
- package/dist/chunk-y35ma3mj.js.map +0 -15
- package/dist/chunk-z2sery1b.js.map +0 -11
- package/dist/storage/objects/in-memory.d.ts.map +0 -1
- package/src/storage/objects/in-memory.ts +0 -1241
- /package/dist/{chunk-5jcdmjam.js.map → chunk-4jjp5k14.js.map} +0 -0
- /package/dist/{chunk-agsvg9ar.js.map → chunk-5ntny1qx.js.map} +0 -0
- /package/dist/{chunk-9aehf39w.js.map → chunk-f26bck4t.js.map} +0 -0
- /package/dist/{chunk-08twe8m6.js.map → chunk-p1rzczbt.js.map} +0 -0
- /package/dist/{chunk-xdpwpkha.js.map → chunk-rv2hkwwa.js.map} +0 -0
- /package/dist/{chunk-1kamz6j0.js.map → chunk-w1tvjszy.js.map} +0 -0
- /package/dist/{chunk-4nxeacx7.js.map → chunk-wdage1eb.js.map} +0 -0
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"import type { ConnectorAdapter } from \"../connectors/types\"\nimport type { WebhookDefinition } from \"./types\"\n\nexport interface WebhookConnectorClient {\n readonly kind: \"webhook\"\n}\n\n/** Connector adapter for inbound-only integrations that expose no outbound client. */\nexport function webhookConnector(options: {\n readonly webhooks: readonly WebhookDefinition<unknown, WebhookConnectorClient>[]\n}): ConnectorAdapter<\"webhook\", WebhookConnectorClient> {\n return {\n type: \"webhook\",\n webhooks: options.webhooks,\n connect() {\n return { kind: \"webhook\" }\n },\n }\n}\n",
|
|
8
8
|
"import { type ConnectorDefinition, isStaticConnectorDefinition } from \"../connectors/types\"\nimport { WebhookValidationError } from \"./errors\"\nimport type { RegisteredWebhook, WebhookDefinition } from \"./types\"\n\n/** Read-only access to connector webhooks registered by a host. */\nexport interface WebhookCatalog {\n list(): readonly RegisteredWebhook[]\n getByRoute(route: string): RegisteredWebhook | null\n getById(connectorId: string, webhookId: string): RegisteredWebhook | null\n}\n\nexport interface WebhookRegistryOptions {\n readonly connectors: readonly ConnectorDefinition[]\n}\n\nexport class WebhookRegistry implements WebhookCatalog {\n private readonly webhooks: readonly RegisteredWebhook[]\n private readonly byRoute = new Map<string, RegisteredWebhook>()\n\n constructor(options: WebhookRegistryOptions) {\n const registered: RegisteredWebhook[] = []\n\n for (const connector of options.connectors) {\n if (!isStaticConnectorDefinition(connector)) continue\n const webhooks = connector.adapter.webhooks ?? []\n if (!Array.isArray(webhooks)) {\n throw new WebhookValidationError(\n `[Sixb] Connector '${connector.id}' webhooks must be an array when provided.`\n )\n }\n\n const ids = new Set<string>()\n for (const webhook of webhooks) {\n assertValidWebhook(connector.id, webhook)\n\n if (ids.has(webhook.id)) {\n throw new WebhookValidationError(\n `[Sixb] Duplicate webhook id '${webhook.id}' for connector '${connector.id}'.`\n )\n }\n ids.add(webhook.id)\n\n const route = webhookRoute(connector.id, webhook.id)\n const duplicate = this.byRoute.get(route)\n if (duplicate) {\n throw new WebhookValidationError(\n `[Sixb] Duplicate webhook route '${route}' for connectors '${duplicate.connector.id}' and '${connector.id}'.`\n )\n }\n\n const registeredWebhook = {\n connector,\n webhook,\n route,\n } satisfies RegisteredWebhook\n\n this.byRoute.set(route, registeredWebhook)\n registered.push(registeredWebhook)\n }\n }\n\n this.webhooks = Object.freeze(registered)\n }\n\n list(): readonly RegisteredWebhook[] {\n return this.webhooks\n }\n\n getByRoute(route: string): RegisteredWebhook | null {\n return this.byRoute.get(route) ?? null\n }\n\n getById(connectorId: string, webhookId: string): RegisteredWebhook | null {\n return this.getByRoute(webhookRoute(connectorId, webhookId))\n }\n}\n\nexport function webhookRoute(connectorId: string, webhookId: string): string {\n return `/api/webhooks/${connectorId}/${webhookId}`\n}\n\nfunction assertValidWebhook(\n connectorId: string,\n webhook: unknown\n): asserts webhook is WebhookDefinition {\n if (!isRecord(webhook)) {\n throw new WebhookValidationError(`[Sixb] Connector '${connectorId}' has an invalid webhook.`)\n }\n\n if (webhook.kind !== \"webhook\") {\n throw new WebhookValidationError(\n `[Sixb] Connector '${connectorId}' webhook must be created with defineWebhook(...).`\n )\n }\n\n if (typeof webhook.id !== \"string\" || !webhook.id.trim()) {\n throw new WebhookValidationError(\n `[Sixb] Connector '${connectorId}' webhook id must not be empty.`\n )\n }\n\n if (webhook.method !== \"POST\") {\n throw new WebhookValidationError(\n `[Sixb] Webhook '${connectorId}/${webhook.id}' must use method POST.`\n )\n }\n\n if (!isRecord(webhook.body)) {\n throw new WebhookValidationError(\n `[Sixb] Webhook '${connectorId}/${webhook.id}' body is required.`\n )\n }\n\n if (\n webhook.body.format !== \"json\" &&\n webhook.body.format !== \"text\" &&\n webhook.body.format !== \"raw\"\n ) {\n throw new WebhookValidationError(\n `[Sixb] Webhook '${connectorId}/${webhook.id}' body format must be json, text, or raw.`\n )\n }\n\n if (typeof webhook.body.parse !== \"function\") {\n throw new WebhookValidationError(\n `[Sixb] Webhook '${connectorId}/${webhook.id}' body parser must provide parse(value).`\n )\n }\n\n if (webhook.verify !== undefined && typeof webhook.verify !== \"function\") {\n throw new WebhookValidationError(\n `[Sixb] Webhook '${connectorId}/${webhook.id}' verify must be a function.`\n )\n }\n\n if (webhook.idempotencyKey !== undefined && typeof webhook.idempotencyKey !== \"function\") {\n throw new WebhookValidationError(\n `[Sixb] Webhook '${connectorId}/${webhook.id}' idempotencyKey must be a function.`\n )\n }\n\n if (typeof webhook.handle !== \"function\") {\n throw new WebhookValidationError(\n `[Sixb] Webhook '${connectorId}/${webhook.id}' handle must be a function.`\n )\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n",
|
|
9
9
|
"/**\n * How a webhook is allowed to treat the credential its provider sends.\n *\n * A union, so no value carries neither branch. `resolveWebhookVerification` covers the path\n * where the credential arrives as `TCredential | undefined` from the environment, which no type\n * can narrow. Generic because a credential is not always a signing secret: PandaDoc resolves a\n * shared key, Pipedrive compares a username and password.\n */\nexport type WebhookVerification<TCredential = string> =\n | { readonly credential: TCredential; readonly allowUnverified?: never }\n | {\n readonly credential?: never\n /**\n * Accept deliveries this webhook cannot verify. Without a credential the route accepts\n * requests from anyone who can reach it, so it has to be asked for.\n */\n readonly allowUnverified: true\n }\n\n/**\n * How to name a webhook, and its options, in a message about its verification.\n *\n * The options are part of the subject because a connector has two entry points with different\n * names for the same thing: a message fixed to one sends half the callers to an option their\n * API does not have.\n */\nexport interface WebhookVerificationSubject {\n /** The connector, as it appears in its own message prefix — `SixbGitHub`, `SixbMercury`. */\n readonly connector: string\n /** What this webhook checks when a credential is configured, as a noun phrase. */\n readonly verifies: string\n /** The option carrying the credential, written as the caller would type it. */\n readonly credentialOption: string\n /** The option that accepts unverified deliveries, written as the caller would type it. */\n readonly allowOption: string\n}\n\nexport class UnverifiedWebhookError extends Error {\n readonly name = \"UnverifiedWebhookError\"\n}\n\n/**\n * Narrows a credential that may be absent into a {@link WebhookVerification}, or refuses.\n *\n * Returns the union so a caller spreads the result into the builder instead of deciding again.\n * Refusing is the point: a missing credential used to mean `.verify()` returned early and the\n * route accepted anything that reached it. Throwing here fails `createSixb()` instead, so the\n * API role never starts open.\n */\nexport function resolveWebhookVerification<TCredential>(\n subject: WebhookVerificationSubject,\n options: { readonly credential?: TCredential; readonly allowUnverified?: boolean }\n): WebhookVerification<TCredential> {\n if (options.credential) return { credential: options.credential }\n\n if (!options.allowUnverified) {\n throw new UnverifiedWebhookError(\n `[${subject.connector}] This webhook has no credential, so ${subject.verifies} cannot be ` +\n `checked and the route would accept unverified requests from anyone who can reach it. ` +\n `Set ${subject.credentialOption}, or pass ${subject.allowOption} to accept that.`\n )\n }\n\n return { allowUnverified: true }\n}\n\n/**\n * Announces a webhook whose author chose to accept unverified deliveries. Called where the\n * webhook is defined, not inside `verify()`: once per boot is a fact, once per request is noise.\n */\nexport function warnUnverifiedWebhook<TCredential>(\n subject: WebhookVerificationSubject,\n verification: WebhookVerification<TCredential>\n): void {\n if (verification.credential) return\n\n console.warn(\n `[${subject.connector}] ${subject.allowOption}, so ${subject.verifies} is not checked ` +\n `and this route accepts unverified requests from anyone who can reach it. ` +\n `Set ${subject.credentialOption} before exposing it.`\n )\n}\n",
|
|
10
|
-
"import { resolve } from \"node:path\"\nimport type { ActionDefinition } from \"../actions\"\nimport type { AgentToolDefinition } from \"../agents\"\nimport { assertNoAgentDefinitions } from \"../agents/retired-config\"\nimport type { SixbAuthConfig } from \"../auth\"\nimport type { BlobStorage } from \"../blob-storage\"\nimport { discoverOntologySources, discoverProjectDefinitions } from \"../bootstrap\"\nimport type { Broker } from \"../broker\"\nimport type { ConnectorConnectionOptions, ConnectorDefinition } from \"../connectors/types\"\nimport type { DatasetDefinition } from \"../datasets\"\nimport type { SixbErrorHandler } from \"../error-reporting/types\"\nimport type { LakeStorage } from \"../lake-storage\"\nimport type { LoggerProvider, ObservabilityOptions } from \"../logging\"\nimport type { OntologyMaintenanceOptions } from \"../maintenance\"\nimport type { ModelCatalogInput } from \"../models\"\nimport type { PipelineDefinition } from \"../pipelines/types\"\nimport type { ProjectionDefinition } from \"../projections/types\"\nimport type { Queues } from \"../queues\"\nimport type { RuleDefinition } from \"../rules\"\nimport type { SandboxFactory } from \"../sandboxes\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type { GroupDefinition, MembershipPolicyDefinition, RoleDefinition } from \"../security\"\nimport type { Storage } from \"../storage\"\nimport type { SyncDefinition } from \"../syncs\"\nimport type { WorkflowDefinition } from \"../workflows\"\nimport { RuntimeError } from \"./errors\"\nimport { SixbHost } from \"./host\"\nimport type { OntologySource } from \"./types\"\n\nexport interface CreateSixbOptions {\n id?: string\n broker: Broker\n storage: Storage\n lakeStorage: LakeStorage\n blobStorage: BlobStorage\n queues: Queues\n sandboxes?: SandboxFactory\n /** Optional process-level output provider. Omit for broker-only logging. */\n logger?: LoggerProvider\n /** Broker capture controls, independent from the output provider. */\n observability?: ObservabilityOptions\n /** Observes runtime failures without changing their outcome. */\n onError?: SixbErrorHandler\n /** Recovery and retention settings. The runtime constructor never starts maintenance timers. */\n ontologyMaintenance?: OntologyMaintenanceOptions\n ontologies?: readonly OntologySource[]\n actions?: readonly ActionDefinition[]\n /** Models this project allows Sixb to use. The first of each kind is the default. */\n models?: ModelCatalogInput\n /** Project tools available to Agent runtimes. */\n tools?: readonly AgentToolDefinition[]\n datasets?: readonly DatasetDefinition[]\n /** Connector definitions to register in addition to auto-discovered `connectors/` exports. */\n connectors?: readonly ConnectorDefinition[]\n /** Required to protect OAuth credentials when connector connection storage is durable. */\n connectorConnections?: ConnectorConnectionOptions\n schedules?: readonly ScheduleDefinition[]\n syncs?: readonly SyncDefinition[]\n pipelines?: readonly PipelineDefinition[]\n projections?: readonly ProjectionDefinition[]\n rules?: readonly RuleDefinition[]\n workflows?: readonly WorkflowDefinition[]\n groups?: readonly GroupDefinition[]\n roles?: readonly RoleDefinition[]\n membershipPolicies?: readonly MembershipPolicyDefinition[]\n auth?: SixbAuthConfig\n projectRoot?: string\n}\n\n/**\n * Create a SixbHost using convention-based discovery.\n *\n * The host auto-discovers exported definitions from `ontology/`, `actions/`, `datasets/`,\n * `connectors/`, `syncs/`, `schedules/`, `pipelines/`, `projections/`,\n * `rules/`, `workflows/`, and `security/{groups,roles,policies}/`\n * relative to `projectRoot`.\n */\nexport async function createSixb(\n options: CreateSixbOptions\n): Promise<SixbHost<readonly OntologySource[]>> {\n assertNoAgentDefinitions(options)\n const projectRoot = resolve(options.projectRoot ?? process.cwd())\n\n const discoveredOntology = await discoverOntologySources(projectRoot)\n const allSources = [...(options.ontologies ?? []), ...discoveredOntology]\n\n if (allSources.length === 0) {\n throw new RuntimeError(\n \"No ontology found. Create an 'ontology/' folder or pass 'ontologies' to createSixb().\"\n )\n }\n\n const definitions = await discoverProjectDefinitions(projectRoot)\n\n // Explicit definitions come first so local setup can override ordering while duplicate ids are\n // still rejected by the SixbHost constructor. Every family merges — `actions` and `projections`\n // used to *replace* discovery instead, silently and undocumented.\n return new SixbHost<readonly OntologySource[]>({\n id: options.id,\n ontology: allSources,\n broker: options.broker,\n storage: options.storage,\n lakeStorage: options.lakeStorage,\n blobStorage: options.blobStorage,\n queues: options.queues,\n sandboxes: options.sandboxes,\n logger: options.logger,\n observability: options.observability,\n onError: options.onError,\n ontologyMaintenance: options.ontologyMaintenance,\n projectRoot,\n actions: [...(options.actions ?? []), ...definitions.actions],\n datasets: [...(options.datasets ?? []), ...definitions.datasets],\n connectors: [...(options.connectors ?? []), ...definitions.connectors],\n connectorConnections: options.connectorConnections,\n schedules: [...(options.schedules ?? []), ...definitions.schedules],\n syncs: [...(options.syncs ?? []), ...definitions.syncs],\n pipelines: [...(options.pipelines ?? []), ...definitions.pipelines],\n projections: [...(options.projections ?? []), ...definitions.projections],\n rules: [...(options.rules ?? []), ...definitions.rules],\n workflows: [...(options.workflows ?? []), ...definitions.workflows],\n groups: [...(options.groups ?? []), ...definitions.groups],\n roles: [...(options.roles ?? []), ...definitions.roles],\n membershipPolicies: [...(options.membershipPolicies ?? []), ...definitions.membershipPolicies],\n models: options.models,\n tools: options.tools,\n auth: options.auth,\n })\n}\n",
|
|
11
|
-
"/**\n * SixbHost is the configured composition root.\n *\n * It owns providers, registered definitions, and process lifecycle. Domain operations live on a\n * {@link Sixb} SDK bound to one execution through {@link SixbHost.withScope}.\n */\n\nimport { resolve } from \"node:path\"\nimport type { ActionDefinition } from \"../actions/types\"\nimport type { AgentToolDefinition } from \"../agents\"\nimport {\n AuthRuntime,\n AuthRuntimeError,\n isMagicLinkAuthStrategy,\n isOidcAuthStrategy,\n type SixbAuthConfig,\n} from \"../auth\"\nimport type { BlobStorage } from \"../blob-storage\"\nimport type { Broker } from \"../broker\"\nimport { registerConnectorConnectionCallbackProcess } from \"../connectors/connections/capability\"\nimport { createConnectorCredentialProtectorFromKey } from \"../connectors/credentials\"\nimport { createConnectorCodedError } from \"../connectors/errors\"\nimport { ConnectorService } from \"../connectors/service\"\nimport {\n type ConnectorConnectionOptions,\n type ConnectorDefinition,\n isOAuthConnectorDefinition,\n} from \"../connectors/types\"\nimport type { DatasetDefinition } from \"../datasets/types\"\nimport { attachSixbErrorReporter, shareSixbErrorReporter } from \"../error-reporting/capability\"\nimport { reportEventDeliveryFailure } from \"../error-reporting/reports\"\nimport type { SixbErrorHandler } from \"../error-reporting/types\"\nimport {\n createDomainEventService,\n type DomainEventLog,\n type DomainEventService,\n OntologyOutboxDispatcher,\n} from \"../events\"\nimport { resolveExecutionScopeAuthorization } from \"../execution/authorization\"\nimport type { ExecutionScope } from \"../execution/types\"\nimport type { LakeStorage } from \"../lake-storage\"\nimport { type LoggerProvider, LoggingService, type ObservabilityOptions } from \"../logging\"\nimport {\n OntologyMaintenance,\n type OntologyMaintenanceHandle,\n type OntologyMaintenanceOptions,\n type OntologyOperationalStatus,\n type SixbReadiness,\n} from \"../maintenance\"\nimport { createOntologyMaterializer, type OntologyMaterializerContract } from \"../materializer\"\nimport type { ModelCatalogInput } from \"../models\"\nimport type { PipelineDefinition } from \"../pipelines/types\"\nimport { registerProjectionRegistry } from \"../projections/internal\"\nimport type { ProjectionDefinition } from \"../projections/types\"\nimport type { Queues } from \"../queues\"\nimport type { RuleDefinition } from \"../rules\"\nimport type { SandboxFactory } from \"../sandboxes\"\nimport { type SchedulerController, SchedulerRuntime } from \"../scheduler\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type {\n GroupDefinition,\n MembershipPolicyDefinition,\n RoleDefinition,\n SecurityDefinitionCatalog,\n} from \"../security\"\nimport type { Storage } from \"../storage\"\nimport type { SyncDefinition } from \"../syncs\"\nimport type { RegisteredWebhook } from \"../webhooks\"\nimport { WebhookRegistry, WebhookValidationError } from \"../webhooks\"\nimport type { WorkflowDefinition } from \"../workflows\"\nimport type { SixbDefinitions } from \"./definitions\"\nimport {\n createOntologyMutationRuntime,\n registerOntologyMutationRuntime,\n} from \"./ontology-mutations\"\nimport { resolveDefinitions } from \"./resolve-definitions\"\nimport { createBoundSixb, type Sixb, type SixbDependencies } from \"./sixb\"\nimport { StorageReadiness } from \"./storage-readiness\"\nimport type { OntologySource, SixbHostContext, SixbRuntimeContext } from \"./types\"\n\nexport interface SixbHostOptions<TOntologySources extends readonly OntologySource[]> {\n id?: string\n ontology: TOntologySources\n broker: Broker\n storage: Storage\n lakeStorage: LakeStorage\n blobStorage: BlobStorage\n queues: Queues\n sandboxes?: SandboxFactory\n /** Optional process-level output provider. Omit for broker-only logging. */\n logger?: LoggerProvider\n /** Broker capture controls, independent from the output provider. */\n observability?: ObservabilityOptions\n /** Observes runtime failures without changing their outcome. */\n onError?: SixbErrorHandler\n /** Recovery and retention settings. The runtime constructor never starts maintenance timers. */\n ontologyMaintenance?: OntologyMaintenanceOptions\n projectRoot?: string\n actions?: readonly ActionDefinition[]\n datasets?: readonly DatasetDefinition[]\n /** Connector definitions registered with this host. */\n connectors?: readonly ConnectorDefinition[]\n /** Persistent connector connection settings. Required for OAuth with durable storage. */\n connectorConnections?: ConnectorConnectionOptions\n schedules?: readonly ScheduleDefinition[]\n syncs?: readonly SyncDefinition[]\n pipelines?: readonly PipelineDefinition[]\n projections?: readonly ProjectionDefinition[]\n rules?: readonly RuleDefinition[]\n workflows?: readonly WorkflowDefinition[]\n models?: ModelCatalogInput\n /** Project tools available to Agent runtimes. */\n tools?: readonly AgentToolDefinition[]\n groups?: readonly GroupDefinition[]\n roles?: readonly RoleDefinition[]\n membershipPolicies?: readonly MembershipPolicyDefinition[]\n auth?: SixbAuthConfig\n}\n\nexport class SixbHost<\n TOntologySources extends readonly OntologySource[] = readonly OntologySource[],\n> {\n readonly projectId: string\n private readonly webhookRegistry: WebhookRegistry\n private readonly hostContext: SixbHostContext\n private readonly committedFacts: OntologyOutboxDispatcher\n private readonly eventService: DomainEventService\n private readonly ontologyMaintenance: OntologyMaintenance\n private readonly storageReadiness: StorageReadiness\n private readonly connectorService: ConnectorService\n private readonly materializer: OntologyMaterializerContract\n readonly definitions: SixbDefinitions\n readonly broker: Broker\n readonly events: DomainEventLog\n readonly logging: LoggingService\n readonly storage: Storage\n readonly lakeStorage: LakeStorage\n readonly blobStorage: BlobStorage\n readonly queues: Queues\n readonly sandboxes?: SandboxFactory\n readonly projectRoot: string\n readonly scheduler: SchedulerController\n readonly auth: AuthRuntime\n\n constructor(options: SixbHostOptions<TOntologySources>) {\n const errorReporter = attachSixbErrorReporter(this, options.onError)\n this.projectId = options.id ?? \"default\"\n this.broker = options.broker\n this.eventService = createDomainEventService({\n projectId: this.projectId,\n broker: this.broker,\n errorReporter,\n })\n this.events = this.eventService\n this.logging = new LoggingService({\n projectId: this.projectId,\n broker: this.broker,\n logger: options.logger,\n observability: options.observability?.logs,\n })\n this.storage = options.storage\n this.storageReadiness = new StorageReadiness(this.storage)\n this.lakeStorage = options.lakeStorage\n this.blobStorage = options.blobStorage\n this.queues = options.queues\n this.sandboxes = options.sandboxes\n this.projectRoot = resolve(options.projectRoot ?? process.cwd())\n\n const definitions = resolveDefinitions(options)\n this.definitions = definitions\n registerProjectionRegistry(this, definitions.projections)\n\n this.auth = new AuthRuntime({\n projectId: this.projectId,\n storage: this.storage,\n security: definitions.security,\n config: options.auth,\n })\n validateAuthStrategySecurityReferences(this.auth.getStrategy(), definitions.security)\n const connectors = definitions.connectors.list()\n assertConnectorConnectionSurfaces(connectors)\n const hasOAuthConnectors = connectors.some(isOAuthConnectorDefinition)\n const credentialProtector =\n hasOAuthConnectors && options.connectorConnections?.encryptionKey !== undefined\n ? createConnectorCredentialProtectorFromKey(options.connectorConnections.encryptionKey)\n : undefined\n this.connectorService = new ConnectorService(this.projectId, connectors, {\n storage: this.storage,\n credentialProtector,\n })\n if (this.connectorService.connectionProcess) {\n registerConnectorConnectionCallbackProcess(\n this,\n this.connectorService.connectionProcess.callbackProcess\n )\n }\n assertWebhookRunStorage(connectors, this.storage)\n this.webhookRegistry = new WebhookRegistry({ connectors })\n\n this.materializer = createOntologyMaterializer({\n projectId: this.projectId,\n ontology: definitions.ontology,\n projections: definitions.projections,\n storage: this.storage,\n })\n this.committedFacts = new OntologyOutboxDispatcher({\n projectId: this.projectId,\n storage: this.storage,\n events: this.eventService,\n onDeliveryFailure: (error, failure) =>\n reportEventDeliveryFailure(errorReporter, error, {\n projectId: this.projectId,\n ...failure,\n }),\n })\n this.ontologyMaintenance = new OntologyMaintenance({\n projectId: this.projectId,\n storage: this.storage,\n dispatcher: this.committedFacts,\n options: options.ontologyMaintenance,\n })\n\n this.hostContext = {\n projectId: this.projectId,\n broker: this.broker,\n ontology: definitions.ontology,\n actionRegistry: definitions.actions,\n events: this.events,\n storage: this.storage,\n queues: this.queues,\n }\n registerProjectionRegistry(this.hostContext, definitions.projections)\n shareSixbErrorReporter(this, this.hostContext)\n this.scheduler = new SchedulerRuntime({\n schedules: definitions.schedules.list(),\n events: this.eventService,\n })\n }\n\n /** Bind an existing opaque scope. This method never creates or escalates authority. */\n withScope(scope: ExecutionScope): Sixb<TOntologySources> {\n const authorization = resolveExecutionScopeAuthorization(this.projectId, scope)\n if (authorization.ref.type === \"kernel\") {\n throw new Error(\"[Sixb] Kernel authority cannot be bound to the domain SDK.\")\n }\n\n const runtime: SixbRuntimeContext = {\n ...this.hostContext,\n runtimeAuthorization: scope.authorization,\n ...(authorization.type === \"principal\" ? { authorization: authorization.context } : {}),\n }\n registerOntologyMutationRuntime(\n runtime,\n createOntologyMutationRuntime({\n materializer: this.materializer.withScope(scope),\n notifyCommittedFacts: () => this.committedFacts.notify(),\n })\n )\n return createBoundSixb<TOntologySources>(runtime, this.sixbDependencies(), scope.execution)\n }\n\n get id(): string {\n return this.projectId\n }\n\n /** All webhook endpoints registered through connector adapters. */\n listWebhooks(): readonly RegisteredWebhook[] {\n return this.webhookRegistry.list()\n }\n\n /** Lookup a registered connector webhook by connector id and webhook id. */\n getWebhookById(connectorId: string, webhookId: string): RegisteredWebhook | null {\n return this.webhookRegistry.getById(connectorId, webhookId)\n }\n\n /** Start the API-owned recovery and retention loop. Embedded runtimes opt in explicitly. */\n startOntologyMaintenance(): Promise<OntologyMaintenanceHandle> {\n this.storageReadiness.startSchemaValidation()\n return this.ontologyMaintenance.start()\n }\n\n getOntologyOperationalStatus(): OntologyOperationalStatus {\n return this.ontologyMaintenance.getOperationalStatus()\n }\n\n async checkReadiness(): Promise<SixbReadiness> {\n return this.storageReadiness.check()\n }\n\n /** Flush and close the configured process logger provider. */\n async closeLogger(): Promise<void> {\n await this.logging.close()\n }\n\n /** Disconnect every lazily created connector client. */\n async closeConnectors(): Promise<void> {\n await this.connectorService.close()\n }\n\n /** Close blob-provider resources owned by this host. */\n async closeBlobs(): Promise<void> {\n await this.blobStorage.close?.()\n }\n\n /** Close the runtime broker provider if it owns external resources. */\n async closeBroker(): Promise<void> {\n await this.committedFacts.stop()\n await this.ontologyMaintenance.stop()\n await this.broker.close?.()\n }\n\n private sixbDependencies(): SixbDependencies {\n return {\n definitions: this.definitions,\n logging: this.logging,\n connectorService: this.connectorService,\n ...(this.connectorService.connectionProcess === undefined\n ? {}\n : { connectorConnections: this.connectorService.connectionProcess }),\n blobStorage: this.blobStorage,\n }\n }\n}\n\n/**\n * Ontology-agnostic host view for infrastructure that only composes providers and execution\n * boundaries. Authoring code should retain {@link SixbHost}'s inferred ontology parameter; CLI,\n * server, and worker infrastructure deliberately do not depend on it.\n */\nexport type SixbHostView = Omit<SixbHost, \"withScope\"> & {\n withScope(scope: ExecutionScope): object\n}\n\nfunction validateAuthStrategySecurityReferences(\n strategy: ReturnType<AuthRuntime[\"getStrategy\"]>,\n security: SecurityDefinitionCatalog\n): void {\n if (!isMagicLinkAuthStrategy(strategy) && !isOidcAuthStrategy(strategy)) {\n return\n }\n\n for (const groupId of strategy.bootstrapGroupIds ?? []) {\n if (!security.getGroupById(groupId)) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n `[Sixb] Auth bootstrapGroups references unknown group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`\n )\n }\n }\n}\n\nfunction assertWebhookRunStorage(\n connectors: readonly ConnectorDefinition[],\n storage: Storage\n): void {\n if (storage.webhookRuns !== undefined) {\n return\n }\n\n for (const connector of connectors) {\n const webhooks = connector.adapter.webhooks\n if (Array.isArray(webhooks) && webhooks.length > 0) {\n throw new WebhookValidationError(\n \"[Sixb] Webhooks require storage.webhookRuns to be configured.\"\n )\n }\n }\n}\n\nfunction assertConnectorConnectionSurfaces(connectors: readonly ConnectorDefinition[]): void {\n for (const connector of connectors) {\n if (!isOAuthConnectorDefinition(connector)) continue\n if (connector.adapter.webhooks !== undefined) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n `OAuth connector '${connector.id}' cannot register webhooks until connection routing is defined.`\n )\n }\n }\n}\n",
|
|
10
|
+
"import { resolve } from \"node:path\"\nimport type { ActionDefinition } from \"../actions\"\nimport type { AgentToolDefinition } from \"../agents\"\nimport { assertNoAgentDefinitions } from \"../agents/retired-config\"\nimport type { SixbAuthConfig } from \"../auth\"\nimport type { BlobStorage } from \"../blob-storage\"\nimport { discoverOntologySources, discoverProjectDefinitions } from \"../bootstrap\"\nimport type { Broker } from \"../broker\"\nimport type { ConnectorConnectionOptions, ConnectorDefinition } from \"../connectors/types\"\nimport type { DatasetDefinition } from \"../datasets\"\nimport type { SixbErrorHandler } from \"../error-reporting/types\"\nimport type { LakeStorage } from \"../lake-storage\"\nimport type { LoggerProvider, ObservabilityOptions } from \"../logging\"\nimport type { OntologyMaintenanceOptions } from \"../maintenance\"\nimport type { ModelCatalogInput } from \"../models\"\nimport type { PipelineDefinition } from \"../pipelines/types\"\nimport type { ProjectionDefinition } from \"../projections/types\"\nimport type { Queues } from \"../queues\"\nimport type { RuleDefinition } from \"../rules\"\nimport type { SandboxFactory } from \"../sandboxes\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type { GroupDefinition, MembershipPolicyDefinition, RoleDefinition } from \"../security\"\nimport type { ShareDefinition } from \"../shares\"\nimport type { Storage } from \"../storage\"\nimport type { SyncDefinition } from \"../syncs\"\nimport type { WorkflowDefinition } from \"../workflows\"\nimport { RuntimeError } from \"./errors\"\nimport { SixbHost } from \"./host\"\nimport type { OntologySource } from \"./types\"\n\nexport interface CreateSixbOptions {\n id?: string\n broker: Broker\n storage: Storage\n lakeStorage: LakeStorage\n blobStorage: BlobStorage\n queues: Queues\n sandboxes?: SandboxFactory\n /** Optional process-level output provider. Omit for broker-only logging. */\n logger?: LoggerProvider\n /** Broker capture controls, independent from the output provider. */\n observability?: ObservabilityOptions\n /** Observes runtime failures without changing their outcome. */\n onError?: SixbErrorHandler\n /** Recovery and retention settings. The runtime constructor never starts maintenance timers. */\n ontologyMaintenance?: OntologyMaintenanceOptions\n ontologies?: readonly OntologySource[]\n actions?: readonly ActionDefinition[]\n /** Models this project allows Sixb to use. The first of each kind is the default. */\n models?: ModelCatalogInput\n /** Project tools available to Agent runtimes. */\n tools?: readonly AgentToolDefinition[]\n datasets?: readonly DatasetDefinition[]\n /** Connector definitions to register in addition to auto-discovered `connectors/` exports. */\n connectors?: readonly ConnectorDefinition[]\n /** Required to protect OAuth credentials when connector connection storage is durable. */\n connectorConnections?: ConnectorConnectionOptions\n schedules?: readonly ScheduleDefinition[]\n syncs?: readonly SyncDefinition[]\n pipelines?: readonly PipelineDefinition[]\n projections?: readonly ProjectionDefinition[]\n rules?: readonly RuleDefinition[]\n workflows?: readonly WorkflowDefinition[]\n groups?: readonly GroupDefinition[]\n roles?: readonly RoleDefinition[]\n membershipPolicies?: readonly MembershipPolicyDefinition[]\n /** Share definitions to register in addition to auto-discovered `shares/` exports. */\n shares?: readonly ShareDefinition[]\n auth?: SixbAuthConfig\n projectRoot?: string\n}\n\n/**\n * Create a SixbHost using convention-based discovery.\n *\n * The host auto-discovers exported definitions from `ontology/`, `actions/`, `datasets/`,\n * `connectors/`, `syncs/`, `schedules/`, `pipelines/`, `projections/`,\n * `rules/`, `workflows/`, `shares/`, and `security/{groups,roles,policies}/`\n * relative to `projectRoot`.\n */\nexport async function createSixb(\n options: CreateSixbOptions\n): Promise<SixbHost<readonly OntologySource[]>> {\n assertNoAgentDefinitions(options)\n const projectRoot = resolve(options.projectRoot ?? process.cwd())\n\n const discoveredOntology = await discoverOntologySources(projectRoot)\n const allSources = [...(options.ontologies ?? []), ...discoveredOntology]\n\n if (allSources.length === 0) {\n throw new RuntimeError(\n \"No ontology found. Create an 'ontology/' folder or pass 'ontologies' to createSixb().\"\n )\n }\n\n const definitions = await discoverProjectDefinitions(projectRoot)\n\n // Explicit definitions come first so local setup can override ordering while duplicate ids are\n // still rejected by the SixbHost constructor. Every family merges — `actions` and `projections`\n // used to *replace* discovery instead, silently and undocumented.\n return new SixbHost<readonly OntologySource[]>({\n id: options.id,\n ontology: allSources,\n broker: options.broker,\n storage: options.storage,\n lakeStorage: options.lakeStorage,\n blobStorage: options.blobStorage,\n queues: options.queues,\n sandboxes: options.sandboxes,\n logger: options.logger,\n observability: options.observability,\n onError: options.onError,\n ontologyMaintenance: options.ontologyMaintenance,\n projectRoot,\n actions: [...(options.actions ?? []), ...definitions.actions],\n datasets: [...(options.datasets ?? []), ...definitions.datasets],\n connectors: [...(options.connectors ?? []), ...definitions.connectors],\n connectorConnections: options.connectorConnections,\n schedules: [...(options.schedules ?? []), ...definitions.schedules],\n syncs: [...(options.syncs ?? []), ...definitions.syncs],\n pipelines: [...(options.pipelines ?? []), ...definitions.pipelines],\n projections: [...(options.projections ?? []), ...definitions.projections],\n rules: [...(options.rules ?? []), ...definitions.rules],\n workflows: [...(options.workflows ?? []), ...definitions.workflows],\n groups: [...(options.groups ?? []), ...definitions.groups],\n roles: [...(options.roles ?? []), ...definitions.roles],\n membershipPolicies: [...(options.membershipPolicies ?? []), ...definitions.membershipPolicies],\n models: options.models,\n tools: options.tools,\n shares: [...(options.shares ?? []), ...definitions.shares],\n auth: options.auth,\n })\n}\n",
|
|
11
|
+
"/**\n * SixbHost is the configured composition root.\n *\n * It owns providers, registered definitions, and process lifecycle. Domain operations live on a\n * {@link Sixb} SDK bound to one execution through {@link SixbHost.withScope}.\n */\n\nimport { resolve } from \"node:path\"\nimport type { ActionDefinition } from \"../actions/types\"\nimport type { AgentToolDefinition } from \"../agents\"\nimport {\n AuthRuntime,\n AuthRuntimeError,\n isMagicLinkAuthStrategy,\n isOidcAuthStrategy,\n type SixbAuthConfig,\n} from \"../auth\"\nimport type { BlobStorage } from \"../blob-storage\"\nimport type { Broker } from \"../broker\"\nimport { registerConnectorConnectionCallbackProcess } from \"../connectors/connections/capability\"\nimport { createConnectorCredentialProtectorFromKey } from \"../connectors/credentials\"\nimport { createConnectorCodedError } from \"../connectors/errors\"\nimport { ConnectorService } from \"../connectors/service\"\nimport {\n type ConnectorConnectionOptions,\n type ConnectorDefinition,\n isOAuthConnectorDefinition,\n} from \"../connectors/types\"\nimport type { DatasetDefinition } from \"../datasets/types\"\nimport { attachSixbErrorReporter, shareSixbErrorReporter } from \"../error-reporting/capability\"\nimport { reportEventDeliveryFailure } from \"../error-reporting/reports\"\nimport type { SixbErrorHandler } from \"../error-reporting/types\"\nimport {\n createDomainEventService,\n type DomainEventLog,\n type DomainEventService,\n OntologyOutboxDispatcher,\n} from \"../events\"\nimport {\n captureExecutionScope,\n resolveExecutionScopeAuthorization,\n} from \"../execution/authorization\"\nimport { createAuthorizedObjectReader } from \"../execution/authorized-object-reader\"\nimport type { ExecutionScope } from \"../execution/types\"\nimport type { LakeStorage } from \"../lake-storage\"\nimport { type LoggerProvider, LoggingService, type ObservabilityOptions } from \"../logging\"\nimport {\n OntologyMaintenance,\n type OntologyMaintenanceHandle,\n type OntologyMaintenanceOptions,\n type OntologyOperationalStatus,\n type SixbReadiness,\n} from \"../maintenance\"\nimport { createOntologyMaterializer, type OntologyMaterializerContract } from \"../materializer\"\nimport type { ModelCatalogInput } from \"../models\"\nimport type { PipelineDefinition } from \"../pipelines/types\"\nimport { registerProjectionRegistry } from \"../projections/internal\"\nimport type { ProjectionDefinition } from \"../projections/types\"\nimport type { Queues } from \"../queues\"\nimport type { RuleDefinition } from \"../rules\"\nimport type { SandboxFactory } from \"../sandboxes\"\nimport { type SchedulerController, SchedulerRuntime } from \"../scheduler\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type {\n GroupDefinition,\n MembershipPolicyDefinition,\n RoleDefinition,\n SecurityDefinitionCatalog,\n} from \"../security\"\nimport type { ShareDefinition } from \"../shares\"\nimport type { Storage } from \"../storage\"\nimport type { SyncDefinition } from \"../syncs\"\nimport type { RegisteredWebhook } from \"../webhooks\"\nimport { WebhookRegistry, WebhookValidationError } from \"../webhooks\"\nimport type { WorkflowDefinition } from \"../workflows\"\nimport type { SixbDefinitions } from \"./definitions\"\nimport {\n createOntologyMutationRuntime,\n registerOntologyMutationRuntime,\n} from \"./ontology-mutations\"\nimport { resolveDefinitions } from \"./resolve-definitions\"\nimport { createBoundSixb, type Sixb, type SixbDependencies } from \"./sixb\"\nimport { StorageReadiness } from \"./storage-readiness\"\nimport type { OntologySource, SixbHostContext, SixbRuntimeContext } from \"./types\"\n\nexport interface SixbHostOptions<TOntologySources extends readonly OntologySource[]> {\n id?: string\n ontology: TOntologySources\n broker: Broker\n storage: Storage\n lakeStorage: LakeStorage\n blobStorage: BlobStorage\n queues: Queues\n sandboxes?: SandboxFactory\n /** Optional process-level output provider. Omit for broker-only logging. */\n logger?: LoggerProvider\n /** Broker capture controls, independent from the output provider. */\n observability?: ObservabilityOptions\n /** Observes runtime failures without changing their outcome. */\n onError?: SixbErrorHandler\n /** Recovery and retention settings. The runtime constructor never starts maintenance timers. */\n ontologyMaintenance?: OntologyMaintenanceOptions\n projectRoot?: string\n actions?: readonly ActionDefinition[]\n datasets?: readonly DatasetDefinition[]\n /** Connector definitions registered with this host. */\n connectors?: readonly ConnectorDefinition[]\n /** Persistent connector connection settings. Required for OAuth with durable storage. */\n connectorConnections?: ConnectorConnectionOptions\n schedules?: readonly ScheduleDefinition[]\n syncs?: readonly SyncDefinition[]\n pipelines?: readonly PipelineDefinition[]\n projections?: readonly ProjectionDefinition[]\n rules?: readonly RuleDefinition[]\n workflows?: readonly WorkflowDefinition[]\n models?: ModelCatalogInput\n /** Project tools available to Agent runtimes. */\n tools?: readonly AgentToolDefinition[]\n groups?: readonly GroupDefinition[]\n roles?: readonly RoleDefinition[]\n membershipPolicies?: readonly MembershipPolicyDefinition[]\n shares?: readonly ShareDefinition[]\n auth?: SixbAuthConfig\n}\n\nexport class SixbHost<\n TOntologySources extends readonly OntologySource[] = readonly OntologySource[],\n> {\n readonly projectId: string\n private readonly webhookRegistry: WebhookRegistry\n private readonly hostContext: SixbHostContext\n private readonly committedFacts: OntologyOutboxDispatcher\n private readonly eventService: DomainEventService\n private readonly ontologyMaintenance: OntologyMaintenance\n private readonly storageReadiness: StorageReadiness\n private readonly connectorService: ConnectorService\n private readonly materializer: OntologyMaterializerContract\n readonly definitions: SixbDefinitions\n readonly broker: Broker\n readonly events: DomainEventLog\n readonly logging: LoggingService\n readonly storage: Storage\n readonly lakeStorage: LakeStorage\n readonly blobStorage: BlobStorage\n readonly queues: Queues\n readonly sandboxes?: SandboxFactory\n readonly projectRoot: string\n readonly scheduler: SchedulerController\n readonly auth: AuthRuntime\n\n constructor(options: SixbHostOptions<TOntologySources>) {\n const errorReporter = attachSixbErrorReporter(this, options.onError)\n this.projectId = options.id ?? \"default\"\n this.broker = options.broker\n this.eventService = createDomainEventService({\n projectId: this.projectId,\n broker: this.broker,\n errorReporter,\n })\n this.events = this.eventService\n this.logging = new LoggingService({\n projectId: this.projectId,\n broker: this.broker,\n logger: options.logger,\n observability: options.observability?.logs,\n })\n this.storage = options.storage\n this.storageReadiness = new StorageReadiness(this.storage)\n this.lakeStorage = options.lakeStorage\n this.blobStorage = options.blobStorage\n this.queues = options.queues\n this.sandboxes = options.sandboxes\n this.projectRoot = resolve(options.projectRoot ?? process.cwd())\n\n const definitions = resolveDefinitions(options)\n this.definitions = definitions\n registerProjectionRegistry(this, definitions.projections)\n\n this.auth = new AuthRuntime({\n projectId: this.projectId,\n storage: this.storage,\n security: definitions.security,\n config: options.auth,\n })\n validateAuthStrategySecurityReferences(this.auth.getStrategy(), definitions.security)\n const connectors = definitions.connectors.list()\n assertConnectorConnectionSurfaces(connectors)\n const hasOAuthConnectors = connectors.some(isOAuthConnectorDefinition)\n const credentialProtector =\n hasOAuthConnectors && options.connectorConnections?.encryptionKey !== undefined\n ? createConnectorCredentialProtectorFromKey(options.connectorConnections.encryptionKey)\n : undefined\n this.connectorService = new ConnectorService(this.projectId, connectors, {\n storage: this.storage,\n credentialProtector,\n })\n if (this.connectorService.connectionProcess) {\n registerConnectorConnectionCallbackProcess(\n this,\n this.connectorService.connectionProcess.callbackProcess\n )\n }\n assertWebhookRunStorage(connectors, this.storage)\n this.webhookRegistry = new WebhookRegistry({ connectors })\n\n this.materializer = createOntologyMaterializer({\n projectId: this.projectId,\n ontology: definitions.ontology,\n projections: definitions.projections,\n storage: this.storage,\n })\n this.committedFacts = new OntologyOutboxDispatcher({\n projectId: this.projectId,\n storage: this.storage,\n events: this.eventService,\n onDeliveryFailure: (error, failure) =>\n reportEventDeliveryFailure(errorReporter, error, {\n projectId: this.projectId,\n ...failure,\n }),\n })\n this.ontologyMaintenance = new OntologyMaintenance({\n projectId: this.projectId,\n storage: this.storage,\n dispatcher: this.committedFacts,\n options: options.ontologyMaintenance,\n })\n\n this.hostContext = {\n projectId: this.projectId,\n broker: this.broker,\n ontology: definitions.ontology,\n actionRegistry: definitions.actions,\n events: this.events,\n storage: this.storage,\n queues: this.queues,\n }\n registerProjectionRegistry(this.hostContext, definitions.projections)\n shareSixbErrorReporter(this, this.hostContext)\n this.scheduler = new SchedulerRuntime({\n schedules: definitions.schedules.list(),\n events: this.eventService,\n })\n }\n\n /** Bind an existing opaque scope. This method never creates or escalates authority. */\n withScope(scope: ExecutionScope): Sixb<TOntologySources> {\n const capturedScope = captureExecutionScope(scope)\n const authorization = resolveExecutionScopeAuthorization(this.projectId, capturedScope)\n if (authorization.type === \"unrestricted\" && authorization.ref.type === \"kernel\") {\n throw new Error(\"[Sixb] Kernel authority cannot be bound to the domain SDK.\")\n }\n\n const objectReader = createAuthorizedObjectReader({\n scope: capturedScope,\n ontology: this.hostContext.ontology,\n objectStorage: this.storage.objects,\n })\n\n const runtime: SixbRuntimeContext = {\n ...this.hostContext,\n runtimeAuthorization: capturedScope.authorization,\n objectReader,\n ...(authorization.type === \"principal\" ? { authorization: authorization.context } : {}),\n }\n registerOntologyMutationRuntime(\n runtime,\n createOntologyMutationRuntime({\n materializer: this.materializer.withScope(capturedScope),\n notifyCommittedFacts: () => this.committedFacts.notify(),\n })\n )\n return createBoundSixb<TOntologySources>(\n runtime,\n this.sixbDependencies(),\n capturedScope.execution\n )\n }\n\n get id(): string {\n return this.projectId\n }\n\n /** All webhook endpoints registered through connector adapters. */\n listWebhooks(): readonly RegisteredWebhook[] {\n return this.webhookRegistry.list()\n }\n\n /** Lookup a registered connector webhook by connector id and webhook id. */\n getWebhookById(connectorId: string, webhookId: string): RegisteredWebhook | null {\n return this.webhookRegistry.getById(connectorId, webhookId)\n }\n\n /** Start the API-owned recovery and retention loop. Embedded runtimes opt in explicitly. */\n startOntologyMaintenance(): Promise<OntologyMaintenanceHandle> {\n this.storageReadiness.startSchemaValidation()\n return this.ontologyMaintenance.start()\n }\n\n getOntologyOperationalStatus(): OntologyOperationalStatus {\n return this.ontologyMaintenance.getOperationalStatus()\n }\n\n async checkReadiness(): Promise<SixbReadiness> {\n return this.storageReadiness.check()\n }\n\n /** Flush and close the configured process logger provider. */\n async closeLogger(): Promise<void> {\n await this.logging.close()\n }\n\n /** Disconnect every lazily created connector client. */\n async closeConnectors(): Promise<void> {\n await this.connectorService.close()\n }\n\n /** Close blob-provider resources owned by this host. */\n async closeBlobs(): Promise<void> {\n await this.blobStorage.close?.()\n }\n\n /** Close the runtime broker provider if it owns external resources. */\n async closeBroker(): Promise<void> {\n await this.committedFacts.stop()\n await this.ontologyMaintenance.stop()\n await this.broker.close?.()\n }\n\n private sixbDependencies(): SixbDependencies {\n return {\n definitions: this.definitions,\n logging: this.logging,\n connectorService: this.connectorService,\n ...(this.connectorService.connectionProcess === undefined\n ? {}\n : { connectorConnections: this.connectorService.connectionProcess }),\n blobStorage: this.blobStorage,\n lakeStorage: this.lakeStorage,\n }\n }\n}\n\n/**\n * Ontology-agnostic host view for infrastructure that only composes providers and execution\n * boundaries. Authoring code should retain {@link SixbHost}'s inferred ontology parameter; CLI,\n * server, and worker infrastructure deliberately do not depend on it.\n */\nexport type SixbHostView = Omit<SixbHost, \"withScope\"> & {\n withScope(scope: ExecutionScope): object\n}\n\nfunction validateAuthStrategySecurityReferences(\n strategy: ReturnType<AuthRuntime[\"getStrategy\"]>,\n security: SecurityDefinitionCatalog\n): void {\n if (!isMagicLinkAuthStrategy(strategy) && !isOidcAuthStrategy(strategy)) {\n return\n }\n\n for (const groupId of strategy.bootstrapGroupIds ?? []) {\n if (!security.getGroupById(groupId)) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n `[Sixb] Auth bootstrapGroups references unknown group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`\n )\n }\n }\n}\n\nfunction assertWebhookRunStorage(\n connectors: readonly ConnectorDefinition[],\n storage: Storage\n): void {\n if (storage.webhookRuns !== undefined) {\n return\n }\n\n for (const connector of connectors) {\n const webhooks = connector.adapter.webhooks\n if (Array.isArray(webhooks) && webhooks.length > 0) {\n throw new WebhookValidationError(\n \"[Sixb] Webhooks require storage.webhookRuns to be configured.\"\n )\n }\n }\n}\n\nfunction assertConnectorConnectionSurfaces(connectors: readonly ConnectorDefinition[]): void {\n for (const connector of connectors) {\n if (!isOAuthConnectorDefinition(connector)) continue\n if (connector.adapter.webhooks !== undefined) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n `OAuth connector '${connector.id}' cannot register webhooks until connection routing is defined.`\n )\n }\n }\n}\n",
|
|
12
12
|
"import { createCipheriv, createDecipheriv, randomBytes } from \"node:crypto\"\nimport { createConnectorCodedError } from \"./errors\"\n\nexport type ConnectorCredentialPurpose = \"oauth-authorization\" | \"pkce-verifier\"\n\n/** Immutable identity authenticated alongside one sealed connector credential. */\nexport interface ConnectorCredentialContext {\n readonly projectId: string\n readonly connectorId: string\n readonly recordId: string\n readonly purpose: ConnectorCredentialPurpose\n}\n\n/** Versioned AEAD envelope safe to persist. */\nexport interface SealedConnectorCredential {\n readonly version: 1\n readonly algorithm: \"A256GCM\"\n readonly nonce: string\n readonly ciphertext: string\n readonly tag: string\n}\n\n/** Pluggable at-rest protection for connector OAuth credentials and transient PKCE secrets. */\nexport interface ConnectorCredentialProtector {\n seal(\n plaintext: Uint8Array,\n context: ConnectorCredentialContext\n ): Promise<SealedConnectorCredential>\n open(\n envelope: SealedConnectorCredential,\n context: ConnectorCredentialContext\n ): Promise<Uint8Array>\n}\n\n/** Create credential protection from the base64url key exposed by Sixb configuration. */\nexport function createConnectorCredentialProtectorFromKey(\n encodedKey: string\n): ConnectorCredentialProtector {\n let key: Buffer\n try {\n key = decodeBase64Url(encodedKey)\n } catch (error) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n \"connectorConnections.encryptionKey must be canonical base64url encoding.\",\n { cause: error }\n )\n }\n if (key.byteLength !== 32) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n \"connectorConnections.encryptionKey must encode exactly 32 random bytes.\"\n )\n }\n return createAesGcmConnectorCredentialProtector(key)\n}\n\nfunction createAesGcmConnectorCredentialProtector(\n encryptionKey: Uint8Array\n): ConnectorCredentialProtector {\n if (encryptionKey.byteLength !== 32) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n \"Connector credential encryption key must contain exactly 32 bytes.\"\n )\n }\n const key = Buffer.from(encryptionKey)\n\n return {\n async seal(plaintext, context) {\n assertCredentialContext(context)\n const nonce = randomBytes(12)\n const cipher = createCipheriv(\"aes-256-gcm\", key, nonce)\n cipher.setAAD(credentialAad(context))\n const ciphertext = Buffer.concat([cipher.update(plaintext), cipher.final()])\n return {\n version: 1,\n algorithm: \"A256GCM\",\n nonce: nonce.toString(\"base64url\"),\n ciphertext: ciphertext.toString(\"base64url\"),\n tag: cipher.getAuthTag().toString(\"base64url\"),\n }\n },\n async open(envelope, context) {\n assertCredentialContext(context)\n if (envelope.version !== 1 || envelope.algorithm !== \"A256GCM\") {\n throw createConnectorCodedError(\n \"connector.credentials_unavailable\",\n \"Connector credential envelope format is not supported.\"\n )\n }\n try {\n const nonce = decodeBase64Url(envelope.nonce)\n const ciphertext = decodeBase64Url(envelope.ciphertext)\n const tag = decodeBase64Url(envelope.tag)\n if (nonce.byteLength !== 12 || tag.byteLength !== 16) throw new Error(\"invalid envelope\")\n const decipher = createDecipheriv(\"aes-256-gcm\", key, nonce)\n decipher.setAAD(credentialAad(context))\n decipher.setAuthTag(tag)\n return Buffer.concat([decipher.update(ciphertext), decipher.final()])\n } catch (error) {\n throw createConnectorCodedError(\n \"connector.credentials_unavailable\",\n \"Connector credential envelope authentication failed.\",\n { cause: error }\n )\n }\n },\n }\n}\n\nfunction decodeBase64Url(value: string): Buffer {\n if (!/^[A-Za-z0-9_-]*$/.test(value)) throw new Error(\"invalid base64url\")\n const decoded = Buffer.from(value, \"base64url\")\n if (decoded.toString(\"base64url\") !== value) throw new Error(\"non-canonical base64url\")\n return decoded\n}\n\nexport function createEphemeralConnectorCredentialProtector(): ConnectorCredentialProtector {\n return createAesGcmConnectorCredentialProtector(randomBytes(32))\n}\n\nfunction credentialAad(context: ConnectorCredentialContext): Buffer {\n return Buffer.from(\n JSON.stringify({\n version: 1,\n projectId: context.projectId,\n connectorId: context.connectorId,\n recordId: context.recordId,\n purpose: context.purpose,\n })\n )\n}\n\nfunction assertCredentialContext(context: ConnectorCredentialContext): void {\n assertNonblank(context.projectId, \"context projectId\")\n assertNonblank(context.connectorId, \"context connectorId\")\n assertNonblank(context.recordId, \"context recordId\")\n}\n\nfunction assertNonblank(value: string, field: string): string {\n if (!value.trim()) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n `Connector credential ${field} must not be empty.`\n )\n }\n return value\n}\n",
|
|
13
13
|
"import { randomUUID } from \"node:crypto\"\nimport { isSixbError } from \"../../errors/internal\"\nimport type {\n ConnectorConnectionRecord,\n ConnectorConnectionStorage,\n PutConnectorConnectionResult,\n Storage,\n} from \"../../storage\"\nimport {\n type ConnectorCredentialProtector,\n createEphemeralConnectorCredentialProtector,\n} from \"../credentials\"\nimport {\n createConnectorCodedError,\n isConnectorStorageError,\n providerBoundaryError,\n providerFailureCode,\n storageBoundaryError,\n} from \"../errors\"\nimport type {\n ConnectorClient,\n ConnectorConnectionSelector,\n ConnectorDefinition,\n OAuthConnectorAdapter,\n} from \"../types\"\nimport { isOAuthConnectorDefinition } from \"../types\"\nimport {\n assertConnectorAuthorizationActor,\n DefaultConnectorAuthorizationLifecycle,\n} from \"./authorizations\"\nimport { requireConnectorConnectionCommandActor } from \"./command-context\"\nimport type {\n AddConnectorConnectionInput,\n CompleteConnectorAuthorizationInput,\n CompleteConnectorAuthorizationResult,\n CompleteConnectorConnectionRunInput,\n CompleteConnectorConnectionRunResult,\n ConnectorConnectionCallbackProcess,\n ConnectorConnectionCommandContext,\n ConnectorConnectionProcess,\n ConnectorConnectionRunView,\n ConnectorConnectionView,\n RevokeConnectorAuthorizationResult,\n SelectConnectorAccountInput,\n SelectConnectorConnectionRunAccountInput,\n StartConnectorAuthorizationInput,\n StartConnectorAuthorizationResult,\n StartConnectorConnectionRunInput,\n StartConnectorConnectionRunResult,\n} from \"./contracts\"\nimport { connectorAuthorizationStatusError } from \"./credential-mutations\"\nimport { runBoundedConnectorProviderOperation } from \"./provider-operation\"\nimport { ConnectorAuthorizationRequestHandler } from \"./request\"\nimport { ConnectorConnectionRunService } from \"./runs\"\nimport { withConnectorStorageBoundary } from \"./storage-boundary\"\nimport { nonblank, positiveDuration } from \"./validation\"\nimport { assertConnectorConnectionSelector, connectorConnectionView } from \"./views\"\n\nconst DEFAULT_ATTEMPT_TTL_MS = 10 * 60_000\nconst DEFAULT_SELECTION_TTL_MS = 15 * 60_000\nconst DEFAULT_CREDENTIAL_MUTATION_LEASE_MS = 30_000\nconst DEFAULT_PROVIDER_OPERATION_TIMEOUT_MS = 2 * 60_000\nconst DEFAULT_REFRESH_SKEW_MS = 60_000\n\nexport interface ConnectorConnectionServiceOptions {\n readonly storage?: Storage\n readonly credentialProtector?: ConnectorCredentialProtector\n readonly authorizationAttemptTtlMs?: number\n readonly accountSelectionTtlMs?: number\n readonly credentialMutationLeaseMs?: number\n readonly providerOperationTimeoutMs?: number\n readonly connectionRunProcessingTtlMs?: number\n readonly refreshSkewMs?: number\n readonly now?: () => Date\n}\n\n/** Process-owned composition of connector connection lookup and OAuth lifecycle state. */\nexport class ConnectorConnectionService implements ConnectorConnectionProcess {\n private readonly definitionsById: ReadonlyMap<string, ConnectorDefinition>\n private abortController = new AbortController()\n private readonly connectionStorage: ConnectorConnectionStorage\n private readonly providerOperationTimeoutMs: number\n private readonly authorizations: DefaultConnectorAuthorizationLifecycle\n private readonly requests: ConnectorAuthorizationRequestHandler\n private readonly runs: ConnectorConnectionRunService\n readonly callbackProcess: ConnectorConnectionCallbackProcess\n\n constructor(\n private readonly projectId: string,\n definitions: readonly ConnectorDefinition[],\n options: ConnectorConnectionServiceOptions = {}\n ) {\n this.definitionsById = new Map(definitions.map((definition) => [definition.id, definition]))\n const storage = requireConnectionStorage(options.storage)\n this.connectionStorage = storage.connectorConnections\n const credentialProtector = credentialProtectorFor(storage.connectorConnections, options)\n const resolveDefinition = (connectorId: string) => this.requireOAuthDefinition(connectorId)\n const hostSignal = () => this.abortController.signal\n const now = options.now ?? (() => new Date())\n const accountSelectionTtlMs = options.accountSelectionTtlMs ?? DEFAULT_SELECTION_TTL_MS\n const providerOperationTimeoutMs = positiveDuration(\n options.providerOperationTimeoutMs ?? DEFAULT_PROVIDER_OPERATION_TIMEOUT_MS,\n \"provider operation timeout\"\n )\n this.providerOperationTimeoutMs = providerOperationTimeoutMs\n\n this.authorizations = new DefaultConnectorAuthorizationLifecycle({\n projectId,\n storage: storage.connectorConnections,\n credentialProtector,\n resolveDefinition,\n hostSignal,\n accountSelectionTtlMs,\n credentialMutationLeaseMs:\n options.credentialMutationLeaseMs ?? DEFAULT_CREDENTIAL_MUTATION_LEASE_MS,\n providerOperationTimeoutMs,\n refreshSkewMs: options.refreshSkewMs ?? DEFAULT_REFRESH_SKEW_MS,\n now,\n })\n this.requests = new ConnectorAuthorizationRequestHandler({\n projectId,\n storage: storage.root,\n credentialProtector,\n authorizationAttemptTtlMs: options.authorizationAttemptTtlMs ?? DEFAULT_ATTEMPT_TTL_MS,\n providerOperationTimeoutMs,\n resolveDefinition,\n lifecycle: this.authorizations,\n hostSignal,\n })\n this.runs = new ConnectorConnectionRunService({\n projectId,\n storage: storage.root,\n requestHandler: this.requests,\n authorizations: this.authorizations,\n resolveDefinition,\n processingTtlMs:\n options.connectionRunProcessingTtlMs ?? providerOperationTimeoutMs * 2 + 30_000,\n selectionTtlMs: accountSelectionTtlMs,\n now,\n })\n this.callbackProcess = Object.freeze({\n completeConnectionRun: (input: CompleteConnectorConnectionRunInput) =>\n this.completeConnectionRun(input),\n })\n }\n\n async connectConnection<TAdapter extends OAuthConnectorAdapter>(\n definition: ConnectorDefinition<string, TAdapter>,\n selector: ConnectorConnectionSelector\n ): Promise<ConnectorClient<TAdapter>> {\n this.assertOAuthRegistered(definition)\n assertConnectorConnectionSelector(selector)\n const connection = await withConnectorStorageBoundary(\n \"Connector connection could not be read.\",\n () =>\n this.connectionStorage.getConnection({\n projectId: this.projectId,\n connectorId: definition.id,\n ...selector,\n })\n )\n if (!connection) {\n throw createConnectorCodedError(\n \"connector.not_found\",\n `Connector '${definition.id}' has no connection for project slot '${selector.slot}'.`\n )\n }\n\n return this.connectExecutionConnection(definition, connection)\n }\n\n /** Snapshot the connected records that one trusted primitive execution may consume. */\n async listExecutionConnections<TAdapter extends OAuthConnectorAdapter>(\n definition: ConnectorDefinition<string, TAdapter>\n ): Promise<readonly ConnectorConnectionRecord[]> {\n this.assertOAuthRegistered(definition)\n const connections = await withConnectorStorageBoundary(\n \"Connector connections could not be listed.\",\n () =>\n this.connectionStorage.listConnections({\n projectId: this.projectId,\n connectorId: definition.id,\n })\n )\n return connections\n .filter((connection) => connection.status === \"connected\")\n .sort((left, right) => left.id.localeCompare(right.id))\n }\n\n /** Resolve a client from an immutable connection snapshot captured for one execution. */\n async connectExecutionConnection<TAdapter extends OAuthConnectorAdapter>(\n definition: ConnectorDefinition<string, TAdapter>,\n connection: ConnectorConnectionRecord,\n signal: AbortSignal = this.abortController.signal\n ): Promise<ConnectorClient<TAdapter>> {\n this.assertOAuthRegistered(definition)\n if (\n connection.projectId !== this.projectId ||\n connection.connectorId !== definition.id ||\n connection.status !== \"connected\"\n ) {\n throw createConnectorCodedError(\n \"connector.not_found\",\n `Connector '${definition.id}' connection '${connection.id}' is not active in this project.`\n )\n }\n\n const authorization = await this.authorizations.requireStableActiveAuthorization(\n definition,\n connection.authorizationId\n )\n const hostSignal = this.abortController.signal\n const operationSignal =\n signal === hostSignal ? hostSignal : AbortSignal.any([hostSignal, signal])\n try {\n return (await runBoundedConnectorProviderOperation(\n {\n hostSignal: operationSignal,\n timeoutMs: this.providerOperationTimeoutMs,\n },\n (providerSignal) => {\n const clientSignal = AbortSignal.any([operationSignal, providerSignal])\n return definition.adapter.connect({\n projectId: this.projectId,\n connectorId: definition.id,\n connectionId: connection.id,\n account: connection.account,\n tokenSource: this.authorizations.createTokenSource(definition, authorization.id),\n signal: clientSignal,\n })\n },\n () => connectorClientInterruptionError(operationSignal)\n )) as ConnectorClient<TAdapter>\n } catch (error) {\n if (operationSignal.aborted) throw error\n throw providerBoundaryError(\n error,\n providerFailureCode(error),\n \"Connector connection client creation failed.\"\n )\n }\n }\n\n async listConnections(\n command: ConnectorConnectionCommandContext,\n connectorId: string\n ): Promise<readonly ConnectorConnectionView[]> {\n const definition = this.requireOAuthDefinition(connectorId)\n requireConnectorConnectionCommandActor(command.execution, this.projectId)\n let connections: readonly ConnectorConnectionRecord[]\n try {\n connections = await this.connectionStorage.listConnections({\n projectId: this.projectId,\n connectorId: definition.id,\n })\n } catch (error) {\n throw storageBoundaryError(error, \"Connector connections could not be listed.\")\n }\n return withConnectorStorageBoundary(\"Connector authorizations could not be read.\", () =>\n Promise.all(\n connections.map(async (connection) => {\n const authorization = await this.connectionStorage.getAuthorization({\n projectId: this.projectId,\n connectorId: definition.id,\n authorizationId: connection.authorizationId,\n })\n if (!authorization) {\n throw createConnectorCodedError(\n \"internal.unexpected\",\n \"Connector connection references an unavailable authorization.\"\n )\n }\n return connectorConnectionView(connection, authorization.status)\n })\n )\n )\n }\n\n startConnectionRun(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n input: StartConnectorConnectionRunInput\n ): Promise<StartConnectorConnectionRunResult> {\n return this.runs.start(command, connectorId, input)\n }\n\n async addConnection(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n input: AddConnectorConnectionInput\n ): Promise<ConnectorConnectionRunView> {\n const definition = this.requireOAuthDefinition(connectorId)\n const actor = requireConnectorConnectionCommandActor(command.execution, this.projectId)\n assertConnectorConnectionSelector(input)\n const source = await withConnectorStorageBoundary(\n \"Source connector connection could not be read.\",\n () =>\n this.connectionStorage.getConnectionById({\n projectId: this.projectId,\n connectorId: definition.id,\n connectionId: nonblank(input.fromConnectionId, \"source connection id\"),\n })\n )\n if (!source) {\n throw createConnectorCodedError(\"connector.not_found\", \"Source connection was not found.\")\n }\n if (source.status !== \"connected\") {\n throw createConnectorCodedError(\n \"connector.authorization_required\",\n \"Source connection is disconnected.\"\n )\n }\n const authorization = await this.authorizations.requireStableActiveAuthorization(\n definition,\n source.authorizationId\n )\n assertConnectorAuthorizationActor(authorization, actor.principal)\n return this.runs.startSelection(command, definition.id, {\n owner: input.owner,\n slot: input.slot,\n authorizationId: authorization.id,\n })\n }\n\n getConnectionRun(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n runId: string\n ): Promise<ConnectorConnectionRunView | null> {\n this.requireOAuthDefinition(connectorId)\n return this.runs.get(command, connectorId, runId)\n }\n\n selectConnectionRunAccount(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n input: SelectConnectorConnectionRunAccountInput\n ): Promise<ConnectorConnectionRunView> {\n return this.runs.selectAccount(command, connectorId, input)\n }\n\n async startReauthorization(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n connectionId: string,\n input: Pick<StartConnectorConnectionRunInput, \"redirectUri\" | \"returnTo\">\n ): Promise<StartConnectorConnectionRunResult> {\n const definition = this.requireOAuthDefinition(connectorId)\n requireConnectorConnectionCommandActor(command.execution, this.projectId)\n const connection = await withConnectorStorageBoundary(\n \"Connector connection could not be read.\",\n () =>\n this.connectionStorage.getConnectionById({\n projectId: this.projectId,\n connectorId: definition.id,\n connectionId: nonblank(connectionId, \"connection id\"),\n })\n )\n if (!connection) {\n throw createConnectorCodedError(\"connector.not_found\", \"Connector connection was not found.\")\n }\n if (connection.status !== \"connected\") {\n throw createConnectorCodedError(\n \"connector.authorization_required\",\n \"Disconnected connector connections cannot be reauthorized; start a new connection.\"\n )\n }\n return this.runs.start(command, definition.id, {\n owner: connection.owner,\n slot: connection.slot,\n redirectUri: input.redirectUri,\n returnTo: input.returnTo,\n reauthorizationId: connection.authorizationId,\n })\n }\n\n async revokeConnection(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n connectionId: string\n ): Promise<RevokeConnectorAuthorizationResult> {\n const definition = this.requireOAuthDefinition(connectorId)\n requireConnectorConnectionCommandActor(command.execution, this.projectId)\n const authorization = await withConnectorStorageBoundary(\n \"Connector authorization could not be resolved from its connection.\",\n () =>\n this.connectionStorage.getAuthorizationByConnectionId({\n projectId: this.projectId,\n connectorId: definition.id,\n connectionId: nonblank(connectionId, \"connection id\"),\n })\n )\n if (!authorization) {\n throw createConnectorCodedError(\"connector.not_found\", \"Connector connection was not found.\")\n }\n return this.revokeAuthorization(command, definition.id, authorization.id)\n }\n\n completeConnectionRun(\n input: CompleteConnectorConnectionRunInput\n ): Promise<CompleteConnectorConnectionRunResult> {\n return this.runs.complete(input)\n }\n\n startAuthorization(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n input: StartConnectorAuthorizationInput\n ): Promise<StartConnectorAuthorizationResult> {\n return this.requests.startAuthorization(command, connectorId, input)\n }\n\n completeAuthorization(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n input: CompleteConnectorAuthorizationInput\n ): Promise<CompleteConnectorAuthorizationResult> {\n return this.requests.completeAuthorization(command, connectorId, input)\n }\n\n async selectAccount(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n input: SelectConnectorAccountInput\n ): Promise<ConnectorConnectionView> {\n const definition = this.requireOAuthDefinition(connectorId)\n const actor = requireConnectorConnectionCommandActor(command.execution, this.projectId)\n assertConnectorConnectionSelector(input)\n const authorization = await this.authorizations.requireAuthorization(\n definition.id,\n input.authorizationId\n )\n if (authorization.status !== \"pending_selection\" && authorization.status !== \"active\") {\n throw connectorAuthorizationStatusError(authorization.status)\n }\n assertConnectorAuthorizationActor(authorization, actor.principal)\n const account = authorization.accounts.find((candidate) => candidate.id === input.accountId)\n if (!account) {\n throw createConnectorCodedError(\n \"connector.not_found\",\n `Account '${input.accountId}' is not exposed by this connector authorization.`\n )\n }\n\n let result: PutConnectorConnectionResult\n try {\n result = await this.connectionStorage.putConnection({\n id: `ccn_${randomUUID()}`,\n projectId: this.projectId,\n connectorId: definition.id,\n owner: input.owner,\n slot: input.slot,\n authorizationId: authorization.id,\n account,\n replace: input.replace === true,\n })\n } catch (error) {\n if (isConnectorStorageError(error, \"authorization_conflict\")) {\n await this.continueRevocationIfPending(definition, authorization.id)\n throw createConnectorCodedError(\n \"connector.operation_conflict\",\n \"Connector authorization cannot be selected in its current state.\",\n { cause: error }\n )\n }\n if (isConnectorStorageError(error, \"connection_conflict\")) {\n throw createConnectorCodedError(\n \"connector.operation_conflict\",\n \"Connector slot is already occupied; explicit replacement is required.\",\n { cause: error }\n )\n }\n throw storageBoundaryError(error, \"Connector account selection could not be persisted.\")\n }\n if (result.revocationPendingAuthorizationId) {\n await this.continuePendingRevocation(definition, result.revocationPendingAuthorizationId)\n }\n return connectorConnectionView(result.connection, result.authorization.status)\n }\n\n async disconnect(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n connectionId: string\n ): Promise<ConnectorConnectionView | null> {\n const definition = this.requireOAuthDefinition(connectorId)\n requireConnectorConnectionCommandActor(command.execution, this.projectId)\n const normalizedConnectionId = nonblank(connectionId, \"connection id\")\n try {\n const disconnected = await this.connectionStorage.disconnectConnection({\n projectId: this.projectId,\n connectorId: definition.id,\n connectionId: normalizedConnectionId,\n })\n if (!disconnected) return null\n if (disconnected.revocationPendingAuthorizationId) {\n await this.continuePendingRevocation(\n definition,\n disconnected.revocationPendingAuthorizationId\n )\n }\n return connectorConnectionView(disconnected.connection, disconnected.authorization.status)\n } catch (error) {\n if (isConnectorStorageError(error, \"authorization_conflict\")) {\n throw createConnectorCodedError(\n \"connector.operation_conflict\",\n \"Connector connection cannot be disconnected while its authorization is changing.\",\n { cause: error }\n )\n }\n throw storageBoundaryError(error, \"Connector disconnection could not be persisted.\")\n }\n }\n\n async revokeAuthorization(\n command: ConnectorConnectionCommandContext,\n connectorId: string,\n authorizationId: string\n ): Promise<RevokeConnectorAuthorizationResult> {\n const definition = this.requireOAuthDefinition(connectorId)\n const actor = requireConnectorConnectionCommandActor(command.execution, this.projectId)\n const revoked = await this.authorizations.revokeAuthorization({\n definition,\n authorizationId: nonblank(\n authorizationId,\n \"authorization id\",\n \"connector.authorization_invalid\"\n ),\n principal: actor.principal,\n })\n return {\n affectedConnections: revoked.disconnected.map((connection) =>\n connectorConnectionView(connection, \"revoked\")\n ),\n }\n }\n\n async close(): Promise<void> {\n this.runs.close()\n this.abortController.abort()\n this.abortController = new AbortController()\n }\n\n private assertOAuthRegistered(\n definition: ConnectorDefinition\n ): asserts definition is ConnectorDefinition<string, OAuthConnectorAdapter> {\n const registered = this.requireOAuthDefinition(definition.id)\n if (registered !== definition) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n `Connector '${definition.id}' is not the registered definition instance.`\n )\n }\n }\n\n private requireOAuthDefinition(\n connectorId: string\n ): ConnectorDefinition<string, OAuthConnectorAdapter> {\n const definition = this.definitionsById.get(nonblank(connectorId, \"connector id\"))\n if (!definition) {\n throw createConnectorCodedError(\"connector.not_found\", `Unknown connector '${connectorId}'.`)\n }\n if (!isOAuthConnectorDefinition(definition)) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n `Connector '${connectorId}' does not use OAuth authentication.`\n )\n }\n return definition\n }\n\n private async continueRevocationIfPending(\n definition: ConnectorDefinition<string, OAuthConnectorAdapter>,\n authorizationId: string\n ): Promise<void> {\n const authorization = await this.authorizations.requireAuthorization(\n definition.id,\n authorizationId\n )\n if (authorization.status !== \"revocation_pending\") return\n await this.continuePendingRevocation(definition, authorization.id)\n }\n\n private async continuePendingRevocation(\n definition: ConnectorDefinition<string, OAuthConnectorAdapter>,\n authorizationId: string\n ): Promise<void> {\n try {\n await this.authorizations.continuePendingRevocation(definition, authorizationId)\n } catch (error) {\n if (isSixbError(error) && error.code === \"connector.revocation_pending\") return\n throw error\n }\n }\n}\n\nfunction connectorClientInterruptionError(signal: AbortSignal): Error {\n if (signal.aborted) {\n if (signal.reason instanceof Error) return signal.reason\n const error = new Error(\"[Sixb] Connector client creation was cancelled.\")\n error.name = \"AbortError\"\n return error\n }\n return createConnectorCodedError(\n \"connector.provider_unavailable\",\n \"Connector client creation timed out.\"\n )\n}\n\nfunction requireConnectionStorage(storage: Storage | undefined): {\n readonly root: Storage\n readonly connectorConnections: ConnectorConnectionStorage\n} {\n const connectorConnections = storage?.connectorConnections\n if (!storage || !connectorConnections) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n \"OAuth connectors require storage.connectorConnections to be configured.\"\n )\n }\n if (\n connectorConnections.durability !== \"ephemeral\" &&\n connectorConnections.durability !== \"durable\"\n ) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n \"Connector connection storage must declare 'ephemeral' or 'durable' durability.\"\n )\n }\n return { root: storage, connectorConnections }\n}\n\nfunction credentialProtectorFor(\n storage: ConnectorConnectionStorage,\n options: ConnectorConnectionServiceOptions\n): ConnectorCredentialProtector {\n if (storage.durability === \"durable\" && !options.credentialProtector) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n \"Durable connector connection storage requires connectorConnections.encryptionKey to be configured.\"\n )\n }\n return options.credentialProtector ?? createEphemeralConnectorCredentialProtector()\n}\n",
|
|
14
14
|
"import { randomUUID } from \"node:crypto\"\nimport { AuthorizationError } from \"../../authorization\"\nimport { isSixbError } from \"../../errors/internal\"\nimport type { AuthorizablePrincipal } from \"../../execution\"\nimport type {\n ConnectorAuthorizationRecord,\n ConnectorConnectionRecord,\n ConnectorConnectionStorage,\n} from \"../../storage\"\nimport type { ConnectorCredentialProtector } from \"../credentials\"\nimport {\n createConnectorCodedError,\n oauthErrorKind,\n providerBoundaryError,\n recoverConnectorFailure,\n storageBoundaryError,\n} from \"../errors\"\nimport type {\n ConnectorAccountCandidate,\n ConnectorDefinition,\n ConnectorOAuthCredentials,\n ConnectorTokenSource,\n OAuthConnectorAdapter,\n} from \"../types\"\nimport { ConnectorCredentialCodec } from \"./credential-codec\"\nimport {\n assertCredentialMutationOperationActive,\n ConnectorCredentialMutationCoordinator,\n} from \"./credential-mutations\"\nimport type {\n CompleteConnectorReauthorizationInput,\n CompleteNewConnectorAuthorizationInput,\n ConnectorAuthorizationLifecycle,\n PrepareConnectorReauthorizationInput,\n PreparedConnectorReauthorization,\n} from \"./request\"\nimport { withConnectorStorageBoundary } from \"./storage-boundary\"\nimport { ConnectorTokenAccess } from \"./tokens\"\nimport { positiveDuration, validateAccounts, validateCredentials } from \"./validation\"\n\nexport type OAuthConnectorDefinition = ConnectorDefinition<string, OAuthConnectorAdapter>\n\nexport interface ConnectorAuthorizationLifecycleOptions {\n readonly projectId: string\n readonly storage: ConnectorConnectionStorage\n readonly credentialProtector: ConnectorCredentialProtector\n readonly resolveDefinition: (connectorId: string) => OAuthConnectorDefinition\n readonly hostSignal: () => AbortSignal\n readonly accountSelectionTtlMs: number\n readonly credentialMutationLeaseMs: number\n readonly providerOperationTimeoutMs: number\n readonly refreshSkewMs: number\n readonly now: () => Date\n}\n\nexport interface RevokeConnectorAuthorizationInput {\n readonly definition: OAuthConnectorDefinition\n readonly authorizationId: string\n readonly principal: AuthorizablePrincipal\n}\n\nexport interface ConnectorAuthorizationRevocation {\n readonly disconnected: readonly ConnectorConnectionRecord[]\n}\n\n/**\n * Owns OAuth grants and their encrypted credentials.\n *\n * Request authorization and attempt persistence stay in `request.ts`; provider-side mutations are\n * fenced here through one shared coordinator. The host owns cancellation and exposes its current\n * signal through a callback, so closing and restarting a host never leaves this lifecycle attached\n * to a stale controller.\n */\nexport class DefaultConnectorAuthorizationLifecycle implements ConnectorAuthorizationLifecycle {\n private readonly projectId: string\n private readonly storage: ConnectorConnectionStorage\n private readonly resolveDefinition: (connectorId: string) => OAuthConnectorDefinition\n private readonly accountSelectionTtlMs: number\n private readonly mutations: ConnectorCredentialMutationCoordinator\n private readonly credentials: ConnectorCredentialCodec\n private readonly tokens: ConnectorTokenAccess\n\n constructor(options: ConnectorAuthorizationLifecycleOptions) {\n this.projectId = options.projectId\n this.storage = options.storage\n this.resolveDefinition = options.resolveDefinition\n this.accountSelectionTtlMs = positiveDuration(\n options.accountSelectionTtlMs,\n \"account selection TTL\"\n )\n this.credentials = new ConnectorCredentialCodec({\n projectId: options.projectId,\n protector: options.credentialProtector,\n })\n this.mutations = new ConnectorCredentialMutationCoordinator({\n projectId: options.projectId,\n storage: options.storage,\n leaseDurationMs: options.credentialMutationLeaseMs,\n operationTimeoutMs: options.providerOperationTimeoutMs,\n hostSignal: options.hostSignal,\n discoverReauthorizationAccounts: async (authorization, staged) => {\n const definition = this.definitionFor(authorization.connectorId)\n const credentials = await this.credentials.open(\n definition.id,\n authorization.id,\n staged.credentials\n )\n return this.discoverAccounts(definition, credentials)\n },\n })\n this.tokens = new ConnectorTokenAccess({\n projectId: options.projectId,\n storage: options.storage,\n credentials: this.credentials,\n mutations: this.mutations,\n refreshSkewMs: options.refreshSkewMs,\n now: options.now,\n })\n }\n\n async prepareReauthorization(\n input: PrepareConnectorReauthorizationInput\n ): Promise<PreparedConnectorReauthorization> {\n this.assertRegistered(input.definition)\n const authorization = await this.requireAuthorization(\n input.definition.id,\n input.authorizationId\n )\n if (authorization.status === \"pending_selection\") {\n throw createConnectorCodedError(\n \"connector.authorization_invalid\",\n \"Pending connector credentials cannot be reauthorized; restart authorization or select an account.\"\n )\n }\n if (authorization.status === \"revoked\" || authorization.status === \"revocation_pending\") {\n throw createConnectorCodedError(\n \"connector.authorization_invalid\",\n \"Revoked connector credentials cannot be reauthorized.\"\n )\n }\n assertConnectorAuthorizationActor(authorization, input.principal)\n const connections = await withConnectorStorageBoundary(\n \"Connector authorization connections could not be read.\",\n () =>\n this.storage.listConnectionsByAuthorization({\n projectId: this.projectId,\n connectorId: input.definition.id,\n authorizationId: authorization.id,\n })\n )\n return { authorization, connections }\n }\n\n async completeNewAuthorization(\n input: CompleteNewConnectorAuthorizationInput\n ): Promise<ConnectorAuthorizationRecord> {\n this.assertRegistered(input.definition)\n const authorizationId = `cau_${randomUUID()}`\n const credentials = await this.exchangeAuthorizationCode(\n input.definition,\n input.code,\n input.codeVerifier,\n input.redirectUri\n )\n const credentialsEnvelope = await this.credentials.seal(\n input.definition.id,\n authorizationId,\n credentials\n )\n\n let pending: ConnectorAuthorizationRecord\n try {\n pending = await this.storage.createAuthorization({\n id: authorizationId,\n projectId: this.projectId,\n connectorId: input.definition.id,\n authorizedBy: input.principal,\n credentials: credentialsEnvelope,\n ...(credentials.expiresAt === undefined\n ? {}\n : { credentialExpiresAt: credentials.expiresAt }),\n scopes: credentials.scopes ?? [],\n accounts: [],\n selectionTtlMs: this.accountSelectionTtlMs,\n })\n } catch (error) {\n throw storageBoundaryError(error, \"Connector authorization could not be persisted.\")\n }\n\n if (input.onAuthorizationPersisted) {\n try {\n await input.onAuthorizationPersisted(pending)\n } catch (error) {\n await this.revokeAbandonedAuthorization(\n input.definition,\n authorizationId,\n input.principal,\n error\n )\n throw error\n }\n }\n\n let accounts: readonly ConnectorAccountCandidate[]\n try {\n accounts = await this.discoverAccounts(input.definition, credentials)\n } catch (error) {\n const discoveryError = providerBoundaryError(\n error,\n \"connector.provider_failed\",\n \"Connector account discovery failed; the unused authorization is being revoked.\"\n )\n await this.revokeAbandonedAuthorization(\n input.definition,\n authorizationId,\n input.principal,\n discoveryError\n )\n throw discoveryError\n }\n const initialized = await withConnectorStorageBoundary(\n \"Connector authorization accounts could not be persisted.\",\n () =>\n this.storage.initializeAuthorizationAccounts({\n projectId: this.projectId,\n connectorId: input.definition.id,\n authorizationId,\n expectedRevision: pending.revision,\n accounts,\n })\n )\n if (!initialized) {\n throw createConnectorCodedError(\n \"connector.operation_conflict\",\n \"Connector authorization changed while accounts were discovered.\"\n )\n }\n return initialized\n }\n\n async completeReauthorization(\n input: CompleteConnectorReauthorizationInput\n ): Promise<ConnectorAuthorizationRecord> {\n this.assertRegistered(input.definition)\n return this.mutations.runLocallySerialized(input.authorizationId, () =>\n this.completeReauthorizationMutation(input)\n )\n }\n\n async revokeAuthorization(\n input: RevokeConnectorAuthorizationInput\n ): Promise<ConnectorAuthorizationRevocation> {\n this.assertRegistered(input.definition)\n return this.mutations.runLocallySerialized(input.authorizationId, async () => {\n const authorization = await this.requireAuthorization(\n input.definition.id,\n input.authorizationId\n )\n assertConnectorAuthorizationActor(authorization, input.principal)\n return this.revokeAuthorizationRecord(input.definition, authorization)\n })\n }\n\n /** Continues cleanup only after storage has already fenced the authorization from new usage. */\n async continuePendingRevocation(\n definition: OAuthConnectorDefinition,\n authorizationId: string\n ): Promise<ConnectorAuthorizationRevocation> {\n this.assertRegistered(definition)\n return this.mutations.runLocallySerialized(authorizationId, async () => {\n const authorization = await this.requireAuthorization(definition.id, authorizationId)\n if (authorization.status !== \"revocation_pending\" && authorization.status !== \"revoked\") {\n throw createConnectorCodedError(\n \"internal.unexpected\",\n \"Connector cleanup requires an authorization already pending revocation.\"\n )\n }\n return this.revokeAuthorizationRecord(definition, authorization)\n })\n }\n\n async requireStableActiveAuthorization(\n definition: OAuthConnectorDefinition,\n authorizationId: string\n ): Promise<ConnectorAuthorizationRecord> {\n this.assertRegistered(definition)\n return this.tokens.requireStableActiveAuthorization(definition, authorizationId)\n }\n\n createTokenSource(\n definition: OAuthConnectorDefinition,\n authorizationId: string\n ): ConnectorTokenSource {\n this.assertRegistered(definition)\n return this.tokens.createTokenSource(definition, authorizationId)\n }\n\n async requireAuthorization(\n connectorId: string,\n authorizationId: string\n ): Promise<ConnectorAuthorizationRecord> {\n const authorization = await withConnectorStorageBoundary(\n \"Connector authorization could not be read.\",\n () =>\n this.storage.getAuthorization({\n projectId: this.projectId,\n connectorId,\n authorizationId,\n })\n )\n if (!authorization) {\n throw createConnectorCodedError(\n \"connector.not_found\",\n \"Connector authorization was not found.\"\n )\n }\n return authorization\n }\n\n private async revokeAuthorizationRecord(\n definition: OAuthConnectorDefinition,\n initial: ConnectorAuthorizationRecord\n ): Promise<ConnectorAuthorizationRevocation> {\n if (initial.status === \"revoked\") return { disconnected: [] }\n\n const authorization = await this.mutations.prepareAuthorizationForMutation(\n definition.id,\n initial,\n \"revocation\"\n )\n if (authorization.status === \"revoked\") return { disconnected: [] }\n\n const claimOutcome = await this.mutations.claimCredentialMutation(\n definition.id,\n authorization,\n \"revocation\"\n )\n if (claimOutcome.type === \"superseded\") return { disconnected: [] }\n const { claim } = claimOutcome\n\n let credentials: ConnectorOAuthCredentials | undefined\n if (definition.adapter.authentication.revoke) {\n try {\n if (!claim.authorization.credentials) {\n throw createConnectorCodedError(\n \"connector.credentials_unavailable\",\n \"Stored connector credentials are unavailable.\"\n )\n }\n credentials = await this.credentials.open(\n definition.id,\n claim.authorization.id,\n claim.authorization.credentials\n )\n } catch (error) {\n await recoverConnectorFailure(\n error,\n \"Connector credential mutation could not be released after credential decryption failed.\",\n () => this.mutations.releaseCredentialMutation(claim.authorization)\n )\n throw createConnectorCodedError(\n \"connector.credentials_unavailable\",\n \"Connector revocation is pending, but stored credentials could not be opened.\",\n { cause: error }\n )\n }\n }\n\n try {\n await this.mutations.executeCredentialMutation(\n claim.authorization,\n async (executing, signal) => {\n if (definition.adapter.authentication.revoke && credentials) {\n await definition.adapter.authentication.revoke(\n this.adapterContext(definition.id, signal),\n credentials\n )\n }\n return this.mutations.stageCredentialMutationRevocation(executing, signal)\n }\n )\n } catch (error) {\n const latest = await recoverConnectorFailure(\n error,\n \"Connector revocation outcome could not be recovered from storage.\",\n () => this.requireAuthorization(definition.id, authorization.id)\n )\n if (this.mutations.isStagedMutation(latest, claim.authorization, \"revocation\")) {\n await recoverConnectorFailure(\n error,\n \"Staged connector revocation could not be finalized during recovery.\",\n () => this.mutations.finalizeStagedMutation(latest)\n )\n return { disconnected: claim.disconnected }\n }\n await recoverConnectorFailure(\n error,\n \"Connector revocation mutation could not be released for retry.\",\n () => this.mutations.releaseCredentialMutation(claim.authorization)\n )\n throw createConnectorCodedError(\n \"connector.revocation_pending\",\n \"Connector revocation is pending; provider revocation can be retried safely.\",\n { cause: error }\n )\n }\n\n const staged = await this.requireAuthorization(definition.id, authorization.id)\n await this.mutations.finalizeStagedMutation(staged)\n return { disconnected: claim.disconnected }\n }\n\n private async revokeAbandonedAuthorization(\n definition: OAuthConnectorDefinition,\n authorizationId: string,\n principal: AuthorizablePrincipal,\n primaryError: unknown\n ): Promise<void> {\n try {\n await this.revokeAuthorization({ definition, authorizationId, principal })\n } catch (cleanupError) {\n if (isSixbError(cleanupError) && cleanupError.code === \"connector.revocation_pending\") return\n throw createConnectorCodedError(\n \"internal.unexpected\",\n \"Unused connector credentials could not be scheduled for revocation.\",\n {\n cause: new AggregateError(\n [primaryError, cleanupError],\n \"Connector authorization failed and cleanup could not be secured.\"\n ),\n }\n )\n }\n }\n\n private async completeReauthorizationMutation(\n input: CompleteConnectorReauthorizationInput\n ): Promise<ConnectorAuthorizationRecord> {\n let authorization = await this.requireAuthorization(input.definition.id, input.authorizationId)\n assertReauthorizationRevision(authorization, input.expectedRevision)\n if (authorization.status === \"revoked\" || authorization.status === \"revocation_pending\") {\n throw createConnectorCodedError(\n \"connector.authorization_invalid\",\n \"Revoked connector credentials cannot be reauthorized.\"\n )\n }\n assertConnectorAuthorizationActor(authorization, input.principal)\n await this.mutations.assertAttachedConnections(\n input.definition.id,\n authorization.id,\n input.expectedConnectionIds\n )\n authorization = await this.mutations.prepareAuthorizationForMutation(\n input.definition.id,\n authorization,\n \"reauthorization\"\n )\n assertReauthorizationRevision(authorization, input.expectedRevision)\n await this.mutations.assertAttachedConnections(\n input.definition.id,\n authorization.id,\n input.expectedConnectionIds\n )\n const claimOutcome = await this.mutations.claimCredentialMutation(\n input.definition.id,\n authorization,\n \"reauthorization\",\n input.expectedConnectionIds\n )\n if (claimOutcome.type === \"superseded\") {\n throw createConnectorCodedError(\n \"internal.unexpected\",\n \"Connector reauthorization was superseded unexpectedly.\"\n )\n }\n const { claim } = claimOutcome\n\n try {\n await this.mutations.executeCredentialMutation(\n claim.authorization,\n async (executing, signal) => {\n const credentials = validateCredentials(\n await input.definition.adapter.authentication.exchangeCode(\n this.authorizationAdapterContext(input.definition.id, input.redirectUri, signal),\n { code: input.code, codeVerifier: input.codeVerifier }\n )\n )\n assertCredentialMutationOperationActive(signal)\n const envelope = await this.credentials.seal(\n input.definition.id,\n input.authorizationId,\n credentials\n )\n return this.mutations.stageCredentialMutationCredentials(executing, signal, {\n credentials: envelope,\n ...(credentials.expiresAt === undefined\n ? {}\n : { credentialExpiresAt: credentials.expiresAt }),\n scopes: credentials.scopes ?? [],\n })\n }\n )\n } catch (error) {\n const latest = await recoverConnectorFailure(\n error,\n \"Connector reauthorization outcome could not be recovered from storage.\",\n () => this.requireAuthorization(input.definition.id, input.authorizationId)\n )\n if (this.mutations.isStagedMutation(latest, claim.authorization, \"reauthorization\")) {\n return recoverConnectorFailure(\n error,\n \"Staged connector reauthorization could not be finalized during recovery.\",\n () => this.mutations.finalizeStagedMutation(latest)\n )\n }\n if (oauthErrorKind(error) === \"retryable\" || oauthErrorKind(error) === \"terminal\") {\n await recoverConnectorFailure(\n error,\n \"Connector reauthorization mutation could not be released after provider failure.\",\n () => this.mutations.releaseCredentialMutation(claim.authorization)\n )\n throw createConnectorCodedError(\n \"connector.provider_failed\",\n \"Connector authorization code exchange failed; restart authorization.\",\n { cause: error }\n )\n }\n await recoverConnectorFailure(\n error,\n \"Connector authorization could not be failed closed after an ambiguous code exchange.\",\n () => this.mutations.markNeedsReauthorization(claim.authorization)\n )\n throw createConnectorCodedError(\n \"connector.authorization_required\",\n \"Connector authorization code exchange had an ambiguous outcome; reauthorization is required.\",\n { cause: error }\n )\n }\n\n const staged = await this.requireAuthorization(input.definition.id, input.authorizationId)\n return this.mutations.finalizeStagedMutation(staged)\n }\n\n private async exchangeAuthorizationCode(\n definition: OAuthConnectorDefinition,\n code: string,\n codeVerifier: string,\n redirectUri: string\n ): Promise<ConnectorOAuthCredentials> {\n try {\n return validateCredentials(\n await this.mutations.withBoundedProviderSignal((signal) =>\n definition.adapter.authentication.exchangeCode(\n this.authorizationAdapterContext(definition.id, redirectUri, signal),\n { code, codeVerifier }\n )\n )\n )\n } catch (error) {\n throw providerBoundaryError(\n error,\n \"connector.provider_failed\",\n \"Connector authorization code exchange failed.\"\n )\n }\n }\n\n private async discoverAccounts(\n definition: OAuthConnectorDefinition,\n credentials: ConnectorOAuthCredentials\n ): Promise<readonly ConnectorAccountCandidate[]> {\n return validateAccounts(\n await this.mutations.withBoundedProviderSignal(\n (signal) =>\n definition.adapter.discoverAccounts(\n this.adapterContext(definition.id, signal),\n credentials\n ),\n () =>\n createConnectorCodedError(\n \"connector.provider_failed\",\n \"Connector account discovery did not complete.\"\n )\n )\n )\n }\n\n private adapterContext(connectorId: string, signal: AbortSignal) {\n return { projectId: this.projectId, connectorId, signal }\n }\n\n private authorizationAdapterContext(\n connectorId: string,\n redirectUri: string,\n signal: AbortSignal\n ) {\n return { ...this.adapterContext(connectorId, signal), redirectUri }\n }\n\n private definitionFor(connectorId: string): OAuthConnectorDefinition {\n const definition = this.resolveDefinition(connectorId)\n if (definition.id !== connectorId) {\n throw createConnectorCodedError(\n \"internal.unexpected\",\n \"Connector definition resolver returned a mismatched definition.\"\n )\n }\n return definition\n }\n\n private assertRegistered(definition: OAuthConnectorDefinition): void {\n if (this.definitionFor(definition.id) !== definition) {\n throw createConnectorCodedError(\n \"connector.configuration_invalid\",\n `Connector '${definition.id}' is not the registered definition instance.`\n )\n }\n }\n}\n\nexport function assertConnectorAuthorizationActor(\n authorization: ConnectorAuthorizationRecord,\n principal: AuthorizablePrincipal\n): void {\n if (\n authorization.authorizedBy.type !== principal.type ||\n authorization.authorizedBy.id !== principal.id\n ) {\n throw new AuthorizationError(\n `authorization:connector:${authorization.connectorId}`,\n \"[Sixb] This connector authorization can only be changed by its authorizing principal.\"\n )\n }\n}\n\nfunction assertReauthorizationRevision(\n authorization: ConnectorAuthorizationRecord,\n expectedRevision: number\n): void {\n if (authorization.revision !== expectedRevision) {\n throw createConnectorCodedError(\n \"connector.authorization_invalid\",\n \"Connector reauthorization attempt is stale; restart authorization.\"\n )\n }\n}\n",
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"import type { OntologyOutboxDispatcher } from \"../events\"\nimport type { Storage } from \"../storage\"\nimport type {\n OntologyMaintenanceCleanupSnapshot,\n OntologyMaintenanceHandle,\n OntologyMaintenanceOptions,\n OntologyMaintenanceSnapshot,\n OntologyOperationalStatus,\n} from \"./types\"\n\nconst DEFAULT_INTERVAL_MS = 60_000\nconst DEFAULT_RETENTION_MS = 24 * 60 * 60_000\nconst DEFAULT_CLEANUP_LIMIT = 1_000\nconst DEFAULT_SHUTDOWN_TIMEOUT_MS = 30_000\nconst DEGRADED_ATTEMPT_THRESHOLD = 3\nconst DEGRADED_FAILURE_THRESHOLD = 2\n\ninterface OntologyMaintenanceDependencies {\n readonly projectId: string\n readonly storage: Storage\n readonly dispatcher: OntologyOutboxDispatcher\n readonly options?: OntologyMaintenanceOptions\n readonly now?: () => Date\n readonly onError?: (error: unknown) => void\n}\n\n/** API-owned catch-up, retention, and operational snapshot lifecycle. */\nexport class OntologyMaintenance {\n private readonly projectId: string\n private readonly storage: Storage\n private readonly dispatcher: OntologyOutboxDispatcher\n private readonly intervalMs: number\n private readonly publishedOutboxRetentionMs: number\n private readonly terminalSourceRetentionMs: number\n private readonly cleanupLimit: number\n private readonly shutdownTimeoutMs: number\n private readonly now: () => Date\n private readonly onError: (error: unknown) => void\n private readonly owners = new Set<symbol>()\n private timer: ReturnType<typeof setTimeout> | null = null\n private pass: Promise<void> | null = null\n private stopping: Promise<void> | null = null\n private snapshot: OntologyMaintenanceSnapshot\n\n constructor(dependencies: OntologyMaintenanceDependencies) {\n assertNonblank(dependencies.projectId, \"projectId\")\n const options = dependencies.options ?? {}\n this.projectId = dependencies.projectId\n this.storage = dependencies.storage\n this.dispatcher = dependencies.dispatcher\n this.intervalMs = positiveInteger(options.intervalMs ?? DEFAULT_INTERVAL_MS, \"intervalMs\")\n this.publishedOutboxRetentionMs = nonnegativeInteger(\n options.publishedOutboxRetentionMs ?? DEFAULT_RETENTION_MS,\n \"publishedOutboxRetentionMs\"\n )\n this.terminalSourceRetentionMs = nonnegativeInteger(\n options.terminalSourceRetentionMs ?? DEFAULT_RETENTION_MS,\n \"terminalSourceRetentionMs\"\n )\n this.cleanupLimit = positiveInteger(\n options.cleanupLimit ?? DEFAULT_CLEANUP_LIMIT,\n \"cleanupLimit\"\n )\n this.shutdownTimeoutMs = nonnegativeInteger(\n options.shutdownTimeoutMs ?? DEFAULT_SHUTDOWN_TIMEOUT_MS,\n \"shutdownTimeoutMs\"\n )\n this.now = dependencies.now ?? (() => new Date())\n this.onError =\n dependencies.onError ??\n ((error) => console.error(\"[Sixb] Ontology maintenance error:\", error))\n this.snapshot = emptySnapshot(this.intervalMs)\n }\n\n /** Acquires maintenance ownership and starts catch-up without blocking the host from listening. */\n async start(): Promise<OntologyMaintenanceHandle> {\n if (this.stopping) await this.stopping\n const owner = Symbol(\"ontology-maintenance-owner\")\n const startsHosting = this.owners.size === 0\n this.owners.add(owner)\n if (startsHosting) this.startHostedPass()\n\n let released = false\n return {\n stop: async () => {\n if (released) return\n released = true\n this.owners.delete(owner)\n if (this.owners.size === 0) await this.stopLoop()\n },\n }\n }\n\n /** Runs one coalesced pass. Exposed for deterministic hosting and tests. */\n runNow(): Promise<void> {\n this.pass ??= this.runPass().finally(() => {\n this.pass = null\n })\n return this.pass\n }\n\n /** Force-stops every owner; used during provider shutdown. */\n async stop(): Promise<void> {\n this.owners.clear()\n await this.stopLoop()\n }\n\n getSnapshot(): OntologyMaintenanceSnapshot {\n return structuredClone(this.snapshot)\n }\n\n getOperationalStatus(): OntologyOperationalStatus {\n const snapshot = this.getSnapshot()\n const lastActivityAt = latestTimestamp(snapshot.lastStartedAt, snapshot.lastCompletedAt)\n const overdue =\n lastActivityAt !== null &&\n this.now().getTime() - Date.parse(lastActivityAt) > this.intervalMs * 2\n const oldestPendingAt = snapshot.outbox?.oldestPendingAt ?? null\n const pendingTooLong =\n oldestPendingAt !== null &&\n this.now().getTime() - Date.parse(oldestPendingAt) > this.intervalMs * 2\n const repeatedlyFailing = (snapshot.outbox?.maxAttempts ?? 0) >= DEGRADED_ATTEMPT_THRESHOLD\n const degraded =\n snapshot.consecutiveFailures >= DEGRADED_FAILURE_THRESHOLD ||\n repeatedlyFailing ||\n pendingTooLong ||\n overdue\n return { status: degraded ? \"degraded\" : \"ok\", maintenance: snapshot }\n }\n\n private startHostedPass(): void {\n void this.runNow()\n .catch((error) => this.reportError(error))\n .finally(() => this.scheduleNextPass())\n }\n\n private async runPass(): Promise<void> {\n const started = this.now()\n this.snapshot = { ...this.snapshot, running: true, lastStartedAt: started.toISOString() }\n\n const failures: unknown[] = []\n await captureFailure(() => this.dispatcher.drain(), failures)\n const cleanup = await this.cleanupExpiredRows(started, failures)\n const { outbox, terminalSources } = await this.readOperationalSummaries(failures)\n this.completePass({ started, failures, cleanup, outbox, terminalSources })\n }\n\n private async cleanupExpiredRows(\n started: Date,\n failures: unknown[]\n ): Promise<OntologyMaintenanceCleanupSnapshot> {\n const publishedOutboxRowsDeleted = await captureFailure(\n () =>\n this.storage.ontology.outbox.purgePublished({\n projectId: this.projectId,\n publishedBefore: new Date(\n started.getTime() - this.publishedOutboxRetentionMs\n ).toISOString(),\n limit: this.cleanupLimit,\n }),\n failures,\n 0\n )\n const terminalSources = await captureFailure(\n () =>\n this.storage.ontology.sources.cleanupTerminal({\n projectId: this.projectId,\n terminalBefore: new Date(\n started.getTime() - this.terminalSourceRetentionMs\n ).toISOString(),\n limit: this.cleanupLimit,\n }),\n failures,\n { rowsDeleted: 0, materializationsDeleted: 0 }\n )\n\n return {\n publishedOutboxRowsDeleted,\n terminalSourceRowsDeleted: terminalSources.rowsDeleted,\n terminalSourceMaterializationsDeleted: terminalSources.materializationsDeleted,\n }\n }\n\n private async readOperationalSummaries(failures: unknown[]): Promise<{\n readonly outbox: OntologyMaintenanceSnapshot[\"outbox\"]\n readonly terminalSources: OntologyMaintenanceSnapshot[\"terminalSources\"]\n }> {\n const outbox = await captureFailure(\n () => this.storage.ontology.outbox.summarize({ projectId: this.projectId }),\n failures,\n this.snapshot.outbox\n )\n const terminalSummary = await captureFailure(\n () => this.storage.ontology.sources.summarizeTerminal({ projectId: this.projectId }),\n failures,\n this.snapshot.terminalSources\n )\n return { outbox, terminalSources: terminalSummary }\n }\n\n private completePass(input: {\n readonly started: Date\n readonly failures: readonly unknown[]\n readonly cleanup: OntologyMaintenanceCleanupSnapshot\n readonly outbox: OntologyMaintenanceSnapshot[\"outbox\"]\n readonly terminalSources: OntologyMaintenanceSnapshot[\"terminalSources\"]\n }): void {\n const completed = this.now()\n const failure =\n input.failures.length > 0\n ? new AggregateError(input.failures, \"Maintenance pass failed.\")\n : null\n this.snapshot = {\n running: false,\n intervalMs: this.intervalMs,\n lastStartedAt: input.started.toISOString(),\n lastCompletedAt: completed.toISOString(),\n lastDurationMs: Math.max(0, completed.getTime() - input.started.getTime()),\n consecutiveFailures: failure ? this.snapshot.consecutiveFailures + 1 : 0,\n lastError: failure ? errorMessage(failure) : null,\n outbox: input.outbox,\n terminalSources: input.terminalSources,\n cleanup: input.cleanup,\n }\n if (failure) this.reportError(failure)\n }\n\n private scheduleNextPass(): void {\n if (this.owners.size === 0 || this.timer !== null) return\n this.timer = setTimeout(() => {\n this.timer = null\n if (this.owners.size === 0) return\n void this.runNow()\n .catch((error) => this.reportError(error))\n .finally(() => this.scheduleNextPass())\n }, this.intervalMs)\n this.timer.unref?.()\n }\n\n private stopLoop(): Promise<void> {\n if (this.stopping) return this.stopping\n if (this.timer !== null) {\n clearTimeout(this.timer)\n this.timer = null\n }\n const activePass = this.pass ?? Promise.resolve()\n const stopping = settlesWithin(activePass, this.shutdownTimeoutMs).then((settled) => {\n if (!settled) {\n this.reportError(\n new Error(`[Sixb] Ontology maintenance did not stop within ${this.shutdownTimeoutMs}ms.`)\n )\n }\n })\n this.stopping = stopping.finally(() => {\n this.stopping = null\n })\n return this.stopping\n }\n\n private reportError(error: unknown): void {\n try {\n this.onError(error)\n } catch {\n // Maintenance failures stay observable without escaping into runtime lifecycle code.\n }\n }\n}\n\nfunction emptySnapshot(intervalMs: number): OntologyMaintenanceSnapshot {\n return {\n running: false,\n intervalMs,\n lastStartedAt: null,\n lastCompletedAt: null,\n lastDurationMs: null,\n consecutiveFailures: 0,\n lastError: null,\n outbox: null,\n terminalSources: null,\n cleanup: null,\n }\n}\n\nfunction positiveInteger(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new Error(`[Sixb] Ontology maintenance ${name} must be a positive integer.`)\n }\n return value\n}\n\nfunction nonnegativeInteger(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new Error(`[Sixb] Ontology maintenance ${name} must be a nonnegative integer.`)\n }\n return value\n}\n\nfunction assertNonblank(value: string, name: string): void {\n if (value.trim().length === 0) {\n throw new Error(`[Sixb] Ontology maintenance ${name} must not be blank.`)\n }\n}\n\nfunction errorMessage(error: unknown): string {\n if (error instanceof AggregateError) {\n return [...error.errors].map(errorMessage).join(\" | \").slice(0, 2_000)\n }\n const message = error instanceof Error ? `${error.name}: ${error.message}` : String(error)\n return message.slice(0, 2_000)\n}\n\nfunction latestTimestamp(left: string | null, right: string | null): string | null {\n if (left === null) return right\n if (right === null) return left\n return Date.parse(left) >= Date.parse(right) ? left : right\n}\n\nasync function settlesWithin(promise: Promise<void>, timeoutMs: number): Promise<boolean> {\n let timer: ReturnType<typeof setTimeout> | undefined\n const timedOut = new Promise<false>((resolve) => {\n timer = setTimeout(() => resolve(false), timeoutMs)\n })\n const result = await Promise.race([\n promise.then(\n () => true as const,\n () => true as const\n ),\n timedOut,\n ])\n if (timer !== undefined) clearTimeout(timer)\n return result\n}\n\nasync function captureFailure(run: () => Promise<void>, failures: unknown[]): Promise<void>\nasync function captureFailure<T>(\n run: () => Promise<T>,\n failures: unknown[],\n fallback: T\n): Promise<T>\nasync function captureFailure<T>(\n run: () => Promise<T>,\n failures: unknown[],\n fallback?: T\n): Promise<T | undefined> {\n try {\n return await run()\n } catch (error) {\n failures.push(error)\n return fallback\n }\n}\n",
|
|
27
27
|
"import { toolsFromProjectConfig } from \"./tool-definition\"\nimport type { AgentToolDefinition } from \"./types\"\n\n/** Immutable catalog of project tools registered with a Sixb host. */\nexport interface AgentToolCatalog {\n list(): readonly AgentToolDefinition[]\n getByName(name: string): AgentToolDefinition | null\n}\n\n/** Validate, normalize, and index the tools supplied through `createSixb({ tools })`. */\nexport function createAgentToolCatalog(\n definitions: readonly AgentToolDefinition[] | undefined\n): AgentToolCatalog {\n const tools = toolsFromProjectConfig(definitions)\n const toolsByName = new Map(tools.map((tool) => [tool.name, tool]))\n\n return Object.freeze({\n list: () => tools,\n getByName: (name: string) => toolsByName.get(name) ?? null,\n })\n}\n",
|
|
28
28
|
"import type { DatasetDefinition } from \"../datasets\"\nimport type { PipelineDefinition } from \"../pipelines\"\nimport type { TelemetryProjectionDefinition } from \"../projections\"\nimport { SyncValidationError } from \"./errors\"\nimport type { SyncDefinition } from \"./types\"\n\ninterface DatasetWriter {\n readonly datasetId: string\n readonly label: string\n}\n\nexport function validateKeyedDatasetWriterTopology(input: {\n readonly datasetsById: ReadonlyMap<string, DatasetDefinition>\n readonly syncs: readonly SyncDefinition[]\n readonly pipelines: readonly PipelineDefinition[]\n}): void {\n for (const sync of input.syncs) {\n const dataset = input.datasetsById.get(sync.target.dataset.id)\n if (sync.config.mode === \"merge\" && dataset?.primaryKey === undefined) {\n throw new SyncValidationError(\n `[Sixb] Merge sync '${sync.id}' targets dataset '${sync.target.dataset.id}', which must define a primaryKey.`\n )\n }\n }\n\n const firstWriterByDataset = new Map<string, DatasetWriter>()\n for (const writer of datasetWriters(input.syncs, input.pipelines)) {\n const dataset = input.datasetsById.get(writer.datasetId)\n if (dataset?.primaryKey === undefined) continue\n\n const first = firstWriterByDataset.get(writer.datasetId)\n if (!first) {\n firstWriterByDataset.set(writer.datasetId, writer)\n continue\n }\n\n throw new SyncValidationError(\n `[Sixb] Keyed dataset '${writer.datasetId}' has multiple registered writers: ${first.label} and ${writer.label}. V1 allows one writer per keyed dataset.`\n )\n }\n}\n\nexport function validateMergeSyncProjectionSafety(input: {\n readonly syncs: readonly SyncDefinition[]\n readonly telemetryProjections: readonly TelemetryProjectionDefinition[]\n}): void {\n const mergeSyncByDataset = new Map(\n input.syncs\n .filter((sync) => sync.config.mode === \"merge\")\n .map((sync) => [sync.target.dataset.id, sync] as const)\n )\n\n for (const projection of input.telemetryProjections) {\n const sync = mergeSyncByDataset.get(projection.datasetId)\n if (!sync) continue\n throw new SyncValidationError(\n `[Sixb] Telemetry projection '${projection.id}' cannot read merge-written dataset '${projection.datasetId}' from sync '${sync.id}'. V1 merge syncs support object and link replacement projections only.`\n )\n }\n}\n\nfunction* datasetWriters(\n syncs: readonly SyncDefinition[],\n pipelines: readonly PipelineDefinition[]\n): Iterable<DatasetWriter> {\n for (const sync of syncs) {\n yield { datasetId: sync.target.dataset.id, label: `sync '${sync.id}'` }\n }\n for (const pipeline of pipelines) {\n for (const node of pipeline.graph.nodes) {\n yield {\n datasetId: node.step.output.id,\n label: `pipeline '${pipeline.id}' step '${node.step.id}'`,\n }\n }\n }\n}\n",
|
|
29
|
-
"import type { ActionDefinitionCatalog } from \"../actions\"\nimport type { AgentToolCatalog } from \"../agents\"\nimport type { ConnectorDefinition } from \"../connectors\"\nimport type { DatasetDefinition } from \"../datasets\"\nimport type { ModelCatalog } from \"../models\"\nimport type { OntologyDefinitionCatalog } from \"../ontology\"\nimport type { PipelineDefinition } from \"../pipelines\"\nimport type { ProjectionDefinitionCatalog } from \"../projections\"\nimport type { RuleDefinition } from \"../rules\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type { SecurityDefinitionCatalog } from \"../security\"\nimport type { SyncDefinition } from \"../syncs\"\nimport type { WorkflowDefinition } from \"../workflows\"\n\n/** Immutable, host-owned catalog of validated project definitions. */\nexport interface DefinitionCatalog<TDefinition> {\n list(): readonly TDefinition[]\n getById(id: string): TDefinition | null\n}\n\n/** Definitions resolved and cross-validated while composing a {@link SixbHost}. */\nexport interface SixbDefinitions {\n readonly ontology: OntologyDefinitionCatalog\n readonly actions: ActionDefinitionCatalog\n readonly tools: AgentToolCatalog\n readonly connectors: DefinitionCatalog<ConnectorDefinition>\n readonly datasets: DefinitionCatalog<DatasetDefinition>\n /** Absent until a project configures `models` in createSixb(). */\n readonly models?: ModelCatalog\n readonly pipelines: DefinitionCatalog<PipelineDefinition>\n readonly projections: ProjectionDefinitionCatalog\n readonly rules: DefinitionCatalog<RuleDefinition>\n readonly schedules: DefinitionCatalog<ScheduleDefinition>\n readonly security: SecurityDefinitionCatalog\n readonly syncs: DefinitionCatalog<SyncDefinition>\n readonly workflows: DefinitionCatalog<WorkflowDefinition>\n}\n\n/** Build a read-only catalog over an already validated definition index. */\nexport function createDefinitionCatalog<TDefinition>(\n definitionsById: ReadonlyMap<string, TDefinition>\n): DefinitionCatalog<TDefinition> {\n return Object.freeze({\n list: () => [...definitionsById.values()],\n getById: (id: string) => definitionsById.get(id) ?? null,\n })\n}\n",
|
|
30
|
-
"import { ActionRegistry } from \"../actions\"\nimport type { ActionDefinition } from \"../actions/types\"\nimport type { AgentToolDefinition } from \"../agents\"\nimport { assertNoAgentDefinitions } from \"../agents/retired-config\"\nimport { createAgentToolCatalog } from \"../agents/tool-catalog\"\nimport type { ConnectorDefinition } from \"../connectors\"\nimport type { DatasetDefinition } from \"../datasets/types\"\nimport { assertDatasetDefinition } from \"../datasets/validation\"\nimport { createModelCatalog, type ModelCatalogInput } from \"../models\"\nimport { OntologyRegistry } from \"../ontology\"\nimport type { PipelineDefinition } from \"../pipelines/types\"\nimport { ProjectionRegistry } from \"../projections\"\nimport type { ProjectionDefinition } from \"../projections/types\"\nimport { type RuleDefinition, validateRulesAtStartup } from \"../rules\"\nimport { type ScheduleDefinition, validateSchedulesAtStartup } from \"../schedules\"\nimport {\n type GroupDefinition,\n type MembershipPolicyDefinition,\n type RoleDefinition,\n SecurityRegistry,\n} from \"../security\"\nimport type { SyncDefinition } from \"../syncs\"\nimport {\n validateKeyedDatasetWriterTopology,\n validateMergeSyncProjectionSafety,\n} from \"../syncs/validation\"\nimport type { WorkflowDefinition } from \"../workflows\"\nimport { validateWorkflowAgentStepGroupReferences, validateWorkflowsAtStartup } from \"../workflows\"\nimport { createDefinitionCatalog, type SixbDefinitions } from \"./definitions\"\nimport { RuntimeError } from \"./errors\"\nimport type { OntologySource } from \"./types\"\n\ninterface DefinitionOptions {\n readonly ontology: readonly OntologySource[]\n readonly actions?: readonly ActionDefinition[]\n readonly connectors?: readonly ConnectorDefinition[]\n readonly datasets?: readonly DatasetDefinition[]\n readonly schedules?: readonly ScheduleDefinition[]\n readonly syncs?: readonly SyncDefinition[]\n readonly pipelines?: readonly PipelineDefinition[]\n readonly projections?: readonly ProjectionDefinition[]\n readonly rules?: readonly RuleDefinition[]\n readonly workflows?: readonly WorkflowDefinition[]\n readonly tools?: readonly AgentToolDefinition[]\n readonly models?: ModelCatalogInput\n readonly groups?: readonly GroupDefinition[]\n readonly roles?: readonly RoleDefinition[]\n readonly membershipPolicies?: readonly MembershipPolicyDefinition[]\n}\n\ninterface ResolvedDefinitions extends SixbDefinitions {\n readonly ontology: OntologyRegistry\n readonly actions: ActionRegistry\n readonly projections: ProjectionRegistry\n readonly security: SecurityRegistry\n}\n\n/** Resolve and cross-validate every registered definition before runtime services are composed. */\nexport function resolveDefinitions(options: DefinitionOptions): ResolvedDefinitions {\n assertNoAgentDefinitions(options)\n const ontology = new OntologyRegistry({ sources: options.ontology })\n const actionRegistry = new ActionRegistry({ actions: options.actions ?? [], ontology })\n const registeredActionIds = new Set(actionRegistry.list().map((action) => action.id))\n\n const models = options.models === undefined ? undefined : createModelCatalog(options.models)\n const tools = createAgentToolCatalog(options.tools)\n const connectorsById = indexUniqueDefinitions(\"connector\", options.connectors ?? [])\n\n // Datasets resolve first because syncs, pipelines, projections, and security depend on them.\n const datasetsById = new Map<string, DatasetDefinition>()\n for (const dataset of options.datasets ?? []) {\n assertDatasetDefinition(dataset, (message) => new RuntimeError(message))\n assertUniqueDefinitionId(\"dataset\", dataset.id, datasetsById)\n datasetsById.set(dataset.id, dataset)\n }\n\n const schedulesById = indexUniqueDefinitions(\"schedule\", options.schedules ?? [])\n\n const syncsById = new Map<string, SyncDefinition>()\n for (const sync of options.syncs ?? []) {\n assertUniqueDefinitionId(\"sync\", sync.id, syncsById)\n\n if (!datasetsById.has(sync.target.dataset.id)) {\n throw new RuntimeError(\n `Sync '${sync.id}' targets unknown dataset '${sync.target.dataset.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`\n )\n }\n\n syncsById.set(sync.id, sync)\n }\n\n const pipelinesById = new Map<string, PipelineDefinition>()\n for (const pipeline of options.pipelines ?? []) {\n assertUniqueDefinitionId(\"pipeline\", pipeline.id, pipelinesById)\n validatePipelineDatasets(pipeline, datasetsById)\n pipelinesById.set(pipeline.id, pipeline)\n }\n\n const schedules = [...schedulesById.values()]\n const syncs = [...syncsById.values()]\n const pipelines = [...pipelinesById.values()]\n\n validateKeyedDatasetWriterTopology({ datasetsById, syncs, pipelines })\n\n // Rules resolve against the complete ontology so inherited properties and links are available.\n const rules = options.rules ?? []\n validateRulesAtStartup(rules, ontology)\n const rulesById = indexUniqueDefinitions(\"rule\", rules)\n\n validateSchedulesAtStartup(schedules, ontology, {\n registeredRuleIds: new Set(rulesById.keys()),\n registeredActionIds,\n registeredDatasetIds: new Set(datasetsById.keys()),\n registeredSyncIds: new Set(syncsById.keys()),\n registeredPipelineIds: new Set(pipelinesById.keys()),\n })\n for (const sync of syncs) {\n validateScheduleReferences(\"Sync\", sync.id, sync.triggers, schedulesById)\n }\n for (const pipeline of pipelines) {\n validateScheduleReferences(\"Pipeline\", pipeline.id, pipeline.triggers, schedulesById)\n }\n\n const workflows = validateWorkflowsAtStartup({\n workflows: options.workflows ?? [],\n registeredSchedules: schedulesById,\n registeredActionIds,\n ...(models === undefined ? {} : { models }),\n tools,\n })\n const workflowsById = indexUniqueDefinitions(\"workflow\", workflows)\n\n const security = new SecurityRegistry({\n groups: options.groups ?? [],\n roles: options.roles ?? [],\n membershipPolicies: options.membershipPolicies ?? [],\n objectTypeIds: new Set(ontology.getObjectTypesById().keys()),\n datasetIds: new Set(datasetsById.keys()),\n actionIds: registeredActionIds,\n workflowIds: new Set(workflowsById.keys()),\n syncIds: new Set(syncsById.keys()),\n pipelineIds: new Set(pipelinesById.keys()),\n agentAvailable: models !== undefined,\n connectorIds: new Set(connectorsById.keys()),\n getSubTypes: (objectTypeId) => ontology.listSubTypes(objectTypeId),\n })\n validateWorkflowAgentStepGroupReferences(workflows, security)\n\n const projectionRegistry = new ProjectionRegistry({\n projections: options.projections ?? [],\n ontology,\n datasetsById,\n })\n validateMergeSyncProjectionSafety({\n syncs,\n telemetryProjections: projectionRegistry.listTelemetry(),\n })\n\n return Object.freeze({\n ontology,\n actions: actionRegistry,\n tools,\n connectors: createDefinitionCatalog(connectorsById),\n datasets: createDefinitionCatalog(datasetsById),\n ...(models === undefined ? {} : { models }),\n pipelines: createDefinitionCatalog(pipelinesById),\n projections: projectionRegistry,\n rules: createDefinitionCatalog(rulesById),\n schedules: createDefinitionCatalog(schedulesById),\n security,\n syncs: createDefinitionCatalog(syncsById),\n workflows: createDefinitionCatalog(workflowsById),\n })\n}\n\nfunction indexUniqueDefinitions<TDefinition extends { readonly id: string }>(\n kind: \"schedule\" | \"workflow\" | \"agent\" | \"connector\" | \"rule\",\n definitions: readonly TDefinition[]\n): ReadonlyMap<string, TDefinition> {\n const definitionsById = new Map<string, TDefinition>()\n for (const definition of definitions) {\n assertUniqueDefinitionId(kind, definition.id, definitionsById)\n definitionsById.set(definition.id, definition)\n }\n return definitionsById\n}\n\nfunction assertUniqueDefinitionId(\n kind: \"dataset\" | \"schedule\" | \"sync\" | \"pipeline\" | \"workflow\" | \"agent\" | \"connector\" | \"rule\",\n id: string,\n definitionsById: ReadonlyMap<string, unknown>\n): void {\n if (definitionsById.has(id)) {\n throw new RuntimeError(`Duplicate ${kind} id: ${id}`)\n }\n}\n\nfunction validatePipelineDatasets(\n pipeline: PipelineDefinition,\n datasetsById: ReadonlyMap<string, DatasetDefinition>\n): void {\n if (pipeline.graph.nodes.length === 0) {\n throw new RuntimeError(`Pipeline '${pipeline.id}' must contain at least one step.`)\n }\n\n const stepIds = new Set<string>()\n for (const node of pipeline.graph.nodes) {\n const { step } = node\n if (stepIds.has(step.id)) {\n throw new RuntimeError(`Pipeline '${pipeline.id}' contains duplicate step id '${step.id}'.`)\n }\n stepIds.add(step.id)\n\n for (const [inputName, dataset] of Object.entries(step.inputs)) {\n if (!datasetsById.has(dataset.id)) {\n throw new RuntimeError(\n `Pipeline '${pipeline.id}' step '${step.id}' input '${inputName}' references unknown dataset '${dataset.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`\n )\n }\n }\n\n if (!datasetsById.has(step.output.id)) {\n throw new RuntimeError(\n `Pipeline '${pipeline.id}' step '${step.id}' outputs unknown dataset '${step.output.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`\n )\n }\n }\n}\n\nfunction validateScheduleReferences(\n consumerKind: \"Sync\" | \"Pipeline\",\n consumerId: string,\n references: readonly { readonly scheduleId: string }[],\n schedulesById: ReadonlyMap<string, ScheduleDefinition>\n): void {\n for (const reference of references) {\n if (!schedulesById.has(reference.scheduleId)) {\n throw new RuntimeError(\n `${consumerKind} '${consumerId}' references unknown schedule '${reference.scheduleId}'. Add it to 'schedules' in createSixb() or export it from 'schedules/'.`\n )\n }\n }\n}\n",
|
|
29
|
+
"import type { ActionDefinitionCatalog } from \"../actions\"\nimport type { AgentToolCatalog } from \"../agents\"\nimport type { ConnectorDefinition } from \"../connectors\"\nimport type { DatasetDefinition } from \"../datasets\"\nimport type { ModelCatalog } from \"../models\"\nimport type { OntologyDefinitionCatalog } from \"../ontology\"\nimport type { PipelineDefinition } from \"../pipelines\"\nimport type { ProjectionDefinitionCatalog } from \"../projections\"\nimport type { RuleDefinition } from \"../rules\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type { SecurityDefinitionCatalog } from \"../security\"\nimport type { ShareDefinition } from \"../shares\"\nimport type { SyncDefinition } from \"../syncs\"\nimport type { WorkflowDefinition } from \"../workflows\"\n\n/** Immutable, host-owned catalog of validated project definitions. */\nexport interface DefinitionCatalog<TDefinition> {\n list(): readonly TDefinition[]\n getById(id: string): TDefinition | null\n}\n\n/** Definitions resolved and cross-validated while composing a {@link SixbHost}. */\nexport interface SixbDefinitions {\n readonly ontology: OntologyDefinitionCatalog\n readonly actions: ActionDefinitionCatalog\n readonly tools: AgentToolCatalog\n readonly connectors: DefinitionCatalog<ConnectorDefinition>\n readonly datasets: DefinitionCatalog<DatasetDefinition>\n /** Absent until a project configures `models` in createSixb(). */\n readonly models?: ModelCatalog\n readonly pipelines: DefinitionCatalog<PipelineDefinition>\n readonly projections: ProjectionDefinitionCatalog\n readonly rules: DefinitionCatalog<RuleDefinition>\n readonly schedules: DefinitionCatalog<ScheduleDefinition>\n readonly security: SecurityDefinitionCatalog\n readonly shares: DefinitionCatalog<ShareDefinition>\n readonly syncs: DefinitionCatalog<SyncDefinition>\n readonly workflows: DefinitionCatalog<WorkflowDefinition>\n}\n\n/** Build a read-only catalog over an already validated definition index. */\nexport function createDefinitionCatalog<TDefinition>(\n definitionsById: ReadonlyMap<string, TDefinition>\n): DefinitionCatalog<TDefinition> {\n return Object.freeze({\n list: () => [...definitionsById.values()],\n getById: (id: string) => definitionsById.get(id) ?? null,\n })\n}\n",
|
|
30
|
+
"import { ActionRegistry } from \"../actions\"\nimport type { ActionDefinition } from \"../actions/types\"\nimport type { AgentToolDefinition } from \"../agents\"\nimport { assertNoAgentDefinitions } from \"../agents/retired-config\"\nimport { createAgentToolCatalog } from \"../agents/tool-catalog\"\nimport type { ConnectorDefinition } from \"../connectors\"\nimport type { DatasetDefinition } from \"../datasets/types\"\nimport { assertDatasetDefinition } from \"../datasets/validation\"\nimport { createModelCatalog, type ModelCatalogInput } from \"../models\"\nimport { OntologyRegistry } from \"../ontology\"\nimport type { PipelineDefinition } from \"../pipelines/types\"\nimport { ProjectionRegistry } from \"../projections\"\nimport type { ProjectionDefinition } from \"../projections/types\"\nimport { type RuleDefinition, validateRulesAtStartup } from \"../rules\"\nimport { type ScheduleDefinition, validateSchedulesAtStartup } from \"../schedules\"\nimport {\n type GroupDefinition,\n type MembershipPolicyDefinition,\n type RoleDefinition,\n SecurityRegistry,\n} from \"../security\"\nimport { type ShareDefinition, validateSharesAtStartup } from \"../shares\"\nimport type { SyncDefinition } from \"../syncs\"\nimport {\n validateKeyedDatasetWriterTopology,\n validateMergeSyncProjectionSafety,\n} from \"../syncs/validation\"\nimport type { WorkflowDefinition } from \"../workflows\"\nimport { validateWorkflowAgentStepGroupReferences, validateWorkflowsAtStartup } from \"../workflows\"\nimport { createDefinitionCatalog, type SixbDefinitions } from \"./definitions\"\nimport { RuntimeError } from \"./errors\"\nimport type { OntologySource } from \"./types\"\n\ninterface DefinitionOptions {\n readonly ontology: readonly OntologySource[]\n readonly actions?: readonly ActionDefinition[]\n readonly connectors?: readonly ConnectorDefinition[]\n readonly datasets?: readonly DatasetDefinition[]\n readonly schedules?: readonly ScheduleDefinition[]\n readonly syncs?: readonly SyncDefinition[]\n readonly pipelines?: readonly PipelineDefinition[]\n readonly projections?: readonly ProjectionDefinition[]\n readonly rules?: readonly RuleDefinition[]\n readonly workflows?: readonly WorkflowDefinition[]\n readonly tools?: readonly AgentToolDefinition[]\n readonly models?: ModelCatalogInput\n readonly shares?: readonly ShareDefinition[]\n readonly groups?: readonly GroupDefinition[]\n readonly roles?: readonly RoleDefinition[]\n readonly membershipPolicies?: readonly MembershipPolicyDefinition[]\n}\n\ninterface ResolvedDefinitions extends SixbDefinitions {\n readonly ontology: OntologyRegistry\n readonly actions: ActionRegistry\n readonly projections: ProjectionRegistry\n readonly security: SecurityRegistry\n}\n\n/** Resolve and cross-validate every registered definition before runtime services are composed. */\nexport function resolveDefinitions(options: DefinitionOptions): ResolvedDefinitions {\n assertNoAgentDefinitions(options)\n const ontology = new OntologyRegistry({ sources: options.ontology })\n const actionRegistry = new ActionRegistry({ actions: options.actions ?? [], ontology })\n const registeredActionIds = new Set(actionRegistry.list().map((action) => action.id))\n const sharesById = validateSharesAtStartup({\n shares: options.shares ?? [],\n ontology,\n actions: actionRegistry,\n })\n\n const models = options.models === undefined ? undefined : createModelCatalog(options.models)\n const tools = createAgentToolCatalog(options.tools)\n const connectorsById = indexUniqueDefinitions(\"connector\", options.connectors ?? [])\n\n // Datasets resolve first because syncs, pipelines, projections, and security depend on them.\n const datasetsById = new Map<string, DatasetDefinition>()\n for (const dataset of options.datasets ?? []) {\n assertDatasetDefinition(dataset, (message) => new RuntimeError(message))\n assertUniqueDefinitionId(\"dataset\", dataset.id, datasetsById)\n datasetsById.set(dataset.id, dataset)\n }\n\n const schedulesById = indexUniqueDefinitions(\"schedule\", options.schedules ?? [])\n\n const syncsById = new Map<string, SyncDefinition>()\n for (const sync of options.syncs ?? []) {\n assertUniqueDefinitionId(\"sync\", sync.id, syncsById)\n\n if (!datasetsById.has(sync.target.dataset.id)) {\n throw new RuntimeError(\n `Sync '${sync.id}' targets unknown dataset '${sync.target.dataset.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`\n )\n }\n\n syncsById.set(sync.id, sync)\n }\n\n const pipelinesById = new Map<string, PipelineDefinition>()\n for (const pipeline of options.pipelines ?? []) {\n assertUniqueDefinitionId(\"pipeline\", pipeline.id, pipelinesById)\n validatePipelineDatasets(pipeline, datasetsById)\n pipelinesById.set(pipeline.id, pipeline)\n }\n\n const schedules = [...schedulesById.values()]\n const syncs = [...syncsById.values()]\n const pipelines = [...pipelinesById.values()]\n\n validateKeyedDatasetWriterTopology({ datasetsById, syncs, pipelines })\n\n // Rules resolve against the complete ontology so inherited properties and links are available.\n const rules = options.rules ?? []\n validateRulesAtStartup(rules, ontology)\n const rulesById = indexUniqueDefinitions(\"rule\", rules)\n\n validateSchedulesAtStartup(schedules, ontology, {\n registeredRuleIds: new Set(rulesById.keys()),\n registeredActionIds,\n registeredDatasetIds: new Set(datasetsById.keys()),\n registeredSyncIds: new Set(syncsById.keys()),\n registeredPipelineIds: new Set(pipelinesById.keys()),\n })\n for (const sync of syncs) {\n validateScheduleReferences(\"Sync\", sync.id, sync.triggers, schedulesById)\n }\n for (const pipeline of pipelines) {\n validateScheduleReferences(\"Pipeline\", pipeline.id, pipeline.triggers, schedulesById)\n }\n\n const workflows = validateWorkflowsAtStartup({\n workflows: options.workflows ?? [],\n registeredSchedules: schedulesById,\n registeredActionIds,\n ...(models === undefined ? {} : { models }),\n tools,\n })\n const workflowsById = indexUniqueDefinitions(\"workflow\", workflows)\n\n const security = new SecurityRegistry({\n groups: options.groups ?? [],\n roles: options.roles ?? [],\n membershipPolicies: options.membershipPolicies ?? [],\n objectTypeIds: new Set(ontology.getObjectTypesById().keys()),\n datasetIds: new Set(datasetsById.keys()),\n actionIds: registeredActionIds,\n workflowIds: new Set(workflowsById.keys()),\n syncIds: new Set(syncsById.keys()),\n pipelineIds: new Set(pipelinesById.keys()),\n agentAvailable: models !== undefined,\n connectorIds: new Set(connectorsById.keys()),\n shareIds: new Set(sharesById.keys()),\n getSubTypes: (objectTypeId) => ontology.listSubTypes(objectTypeId),\n })\n validateWorkflowAgentStepGroupReferences(workflows, security)\n\n const projectionRegistry = new ProjectionRegistry({\n projections: options.projections ?? [],\n ontology,\n datasetsById,\n })\n validateMergeSyncProjectionSafety({\n syncs,\n telemetryProjections: projectionRegistry.listTelemetry(),\n })\n\n return Object.freeze({\n ontology,\n actions: actionRegistry,\n tools,\n connectors: createDefinitionCatalog(connectorsById),\n datasets: createDefinitionCatalog(datasetsById),\n ...(models === undefined ? {} : { models }),\n pipelines: createDefinitionCatalog(pipelinesById),\n projections: projectionRegistry,\n rules: createDefinitionCatalog(rulesById),\n schedules: createDefinitionCatalog(schedulesById),\n security,\n shares: createDefinitionCatalog(sharesById),\n syncs: createDefinitionCatalog(syncsById),\n workflows: createDefinitionCatalog(workflowsById),\n })\n}\n\nfunction indexUniqueDefinitions<TDefinition extends { readonly id: string }>(\n kind: \"schedule\" | \"workflow\" | \"agent\" | \"connector\" | \"rule\",\n definitions: readonly TDefinition[]\n): ReadonlyMap<string, TDefinition> {\n const definitionsById = new Map<string, TDefinition>()\n for (const definition of definitions) {\n assertUniqueDefinitionId(kind, definition.id, definitionsById)\n definitionsById.set(definition.id, definition)\n }\n return definitionsById\n}\n\nfunction assertUniqueDefinitionId(\n kind: \"dataset\" | \"schedule\" | \"sync\" | \"pipeline\" | \"workflow\" | \"agent\" | \"connector\" | \"rule\",\n id: string,\n definitionsById: ReadonlyMap<string, unknown>\n): void {\n if (definitionsById.has(id)) {\n throw new RuntimeError(`Duplicate ${kind} id: ${id}`)\n }\n}\n\nfunction validatePipelineDatasets(\n pipeline: PipelineDefinition,\n datasetsById: ReadonlyMap<string, DatasetDefinition>\n): void {\n if (pipeline.graph.nodes.length === 0) {\n throw new RuntimeError(`Pipeline '${pipeline.id}' must contain at least one step.`)\n }\n\n const stepIds = new Set<string>()\n for (const node of pipeline.graph.nodes) {\n const { step } = node\n if (stepIds.has(step.id)) {\n throw new RuntimeError(`Pipeline '${pipeline.id}' contains duplicate step id '${step.id}'.`)\n }\n stepIds.add(step.id)\n\n for (const [inputName, dataset] of Object.entries(step.inputs)) {\n if (!datasetsById.has(dataset.id)) {\n throw new RuntimeError(\n `Pipeline '${pipeline.id}' step '${step.id}' input '${inputName}' references unknown dataset '${dataset.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`\n )\n }\n }\n\n if (!datasetsById.has(step.output.id)) {\n throw new RuntimeError(\n `Pipeline '${pipeline.id}' step '${step.id}' outputs unknown dataset '${step.output.id}'. Add it to 'datasets' in createSixb() or export it from 'datasets/'.`\n )\n }\n }\n}\n\nfunction validateScheduleReferences(\n consumerKind: \"Sync\" | \"Pipeline\",\n consumerId: string,\n references: readonly { readonly scheduleId: string }[],\n schedulesById: ReadonlyMap<string, ScheduleDefinition>\n): void {\n for (const reference of references) {\n if (!schedulesById.has(reference.scheduleId)) {\n throw new RuntimeError(\n `${consumerKind} '${consumerId}' references unknown schedule '${reference.scheduleId}'. Add it to 'schedules' in createSixb() or export it from 'schedules/'.`\n )\n }\n }\n}\n",
|
|
31
31
|
"import type { SixbReadiness } from \"../maintenance\"\nimport { checkStorageSchema, isMigrationCapableStorage, type Storage } from \"../storage\"\n\nconst DEFAULT_SCHEMA_RETRY_DELAY_MS = 60_000\n\ntype SchemaReadiness =\n | { readonly status: \"unchecked\" | \"checking\" }\n | { readonly status: \"valid\" }\n | { readonly status: \"invalid\"; readonly reason: string; readonly retryAt: number }\n\ninterface StorageReadinessOptions {\n readonly schemaRetryDelayMs?: number\n readonly now?: () => Date\n}\n\n/** Caches the process schema invariant while keeping each readiness probe lock-free. */\nexport class StorageReadiness {\n private schema: SchemaReadiness\n private readonly schemaRetryDelayMs: number\n private readonly now: () => Date\n\n constructor(\n private readonly storage: Storage,\n options: StorageReadinessOptions = {}\n ) {\n this.schemaRetryDelayMs = positiveInteger(\n options.schemaRetryDelayMs ?? DEFAULT_SCHEMA_RETRY_DELAY_MS,\n \"schemaRetryDelayMs\"\n )\n this.now = options.now ?? (() => new Date())\n this.schema = isMigrationCapableStorage(storage) ? { status: \"unchecked\" } : { status: \"valid\" }\n }\n\n startSchemaValidation(): void {\n if (this.schema.status === \"checking\" || this.schema.status === \"valid\") return\n if (this.schema.status === \"invalid\" && this.now().getTime() < this.schema.retryAt) return\n this.schema = { status: \"checking\" }\n void this.validateSchema()\n }\n\n async check(): Promise<SixbReadiness> {\n try {\n await this.storage.ping()\n } catch {\n return {\n status: \"unready\",\n storage: { reachable: false, schemaValid: false },\n reason: \"Storage is unreachable.\",\n }\n }\n\n this.startSchemaValidation()\n if (this.schema.status === \"valid\") {\n return { status: \"ready\", storage: { reachable: true, schemaValid: true } }\n }\n\n return {\n status: \"unready\",\n storage: { reachable: true, schemaValid: false },\n reason:\n this.schema.status === \"invalid\"\n ? this.schema.reason\n : \"Storage schema validation is in progress.\",\n }\n }\n\n private async validateSchema(): Promise<void> {\n // Shared with `sixb check`, so the panel an author reads before deploying and the\n // `/ready` a load balancer polls after cannot disagree about what \"usable\" means.\n const result = await checkStorageSchema(this.storage)\n\n this.schema = result.ok\n ? { status: \"valid\" }\n : this.invalidSchema(result.reason ?? \"Storage schema is not usable.\")\n }\n\n private invalidSchema(reason: string): SchemaReadiness {\n return {\n status: \"invalid\",\n reason,\n retryAt: this.now().getTime() + this.schemaRetryDelayMs,\n }\n }\n}\n\nfunction positiveInteger(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new Error(`[Sixb] Storage readiness ${name} must be a positive integer.`)\n }\n return value\n}\n"
|
|
32
32
|
],
|
|
33
|
-
"mappings": "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",
|
|
34
|
-
"debugId": "
|
|
33
|
+
"mappings": "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",
|
|
34
|
+
"debugId": "34CB5AA96E2012A064756E2164756E21",
|
|
35
35
|
"names": []
|
|
36
36
|
}
|