@sixb/core 0.1.17 → 0.1.18
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/index.js +22 -19
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +6 -2
- package/dist/actions/worker.js.map +3 -3
- package/dist/agents/adapters.d.ts +7 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +7 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context/entries.d.ts +10 -1
- package/dist/agents/context/entries.d.ts.map +1 -1
- package/dist/agents/context/index.d.ts +1 -1
- package/dist/agents/context/index.d.ts.map +1 -1
- package/dist/agents/context/index.js +4 -2
- package/dist/agents/context/index.js.map +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +44 -37
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +8 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/request.d.ts +19 -5
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts +41 -0
- package/dist/agents/skills.d.ts.map +1 -0
- package/dist/agents/streams/index.js +1 -1
- package/dist/agents/streams/internal.js +1 -1
- package/dist/agents/types.d.ts +33 -4
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/index.js +9 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/types.d.ts +6 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +5 -3
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/file-content.d.ts +18 -0
- package/dist/blob-storage/file-content.d.ts.map +1 -0
- package/dist/blob-storage/index.d.ts +1 -1
- package/dist/blob-storage/index.d.ts.map +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +2 -0
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +16 -4
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +8 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -0
- package/dist/blob-storage/types.d.ts +12 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/blob-storage/validation.d.ts +6 -0
- package/dist/blob-storage/validation.d.ts.map +1 -1
- package/dist/bootstrap/agent-context.d.ts +33 -0
- package/dist/bootstrap/agent-context.d.ts.map +1 -0
- package/dist/bootstrap/discovery.d.ts +23 -3
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +284 -73
- package/dist/bootstrap/index.js.map +4 -3
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-gf7yht60.js → chunk-1b1f2d5f.js} +23 -6
- package/dist/chunk-1b1f2d5f.js.map +12 -0
- package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
- package/dist/chunk-1sr8ryzk.js.map +11 -0
- package/dist/{chunk-4gmng3vf.js → chunk-22v5bpz3.js} +1 -1
- package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
- package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
- package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
- package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
- package/dist/{chunk-2am3db31.js → chunk-48e3cn2d.js} +2 -2
- package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
- package/dist/chunk-6gmfggss.js.map +10 -0
- package/dist/{chunk-svabwqdq.js → chunk-6h5m9xjx.js} +43 -415
- package/dist/{chunk-svabwqdq.js.map → chunk-6h5m9xjx.js.map} +7 -11
- package/dist/{chunk-f1xh7a32.js → chunk-7hpdd6r9.js} +2 -2
- package/dist/{chunk-xyvy73tj.js → chunk-bs7sqkre.js} +8 -3
- package/dist/chunk-bs7sqkre.js.map +12 -0
- package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
- package/dist/{chunk-t9shqx3w.js → chunk-d0eb5yy6.js} +143 -7
- package/dist/chunk-d0eb5yy6.js.map +14 -0
- package/dist/{chunk-vp3z1ckh.js → chunk-de4z2bj6.js} +5 -5
- package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
- package/dist/chunk-enpsx8k5.js +127 -0
- package/dist/chunk-enpsx8k5.js.map +10 -0
- package/dist/{chunk-a7er86jd.js → chunk-ex496vct.js} +1 -1
- package/dist/{chunk-jnfxmr3f.js → chunk-f1zxad2t.js} +1 -1
- package/dist/{chunk-6wbm6ymz.js → chunk-fe52eczz.js} +271 -83
- package/dist/chunk-fe52eczz.js.map +49 -0
- package/dist/{chunk-10styjgk.js → chunk-fx93hd2n.js} +71 -29
- package/dist/chunk-fx93hd2n.js.map +20 -0
- package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
- package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
- package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
- package/dist/chunk-hkc3jct7.js.map +10 -0
- package/dist/{chunk-pja9jfz6.js → chunk-htr6wjmv.js} +115 -53
- package/dist/chunk-htr6wjmv.js.map +19 -0
- package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
- package/dist/chunk-jhm3zsa7.js.map +12 -0
- package/dist/{chunk-52c5zb0z.js → chunk-k6hrnf35.js} +5 -5
- package/dist/chunk-k6hrnf35.js.map +10 -0
- package/dist/{chunk-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
- package/dist/{chunk-7ecp4v7a.js → chunk-ny3xyvcn.js} +8 -2
- package/dist/{chunk-7ecp4v7a.js.map → chunk-ny3xyvcn.js.map} +3 -3
- package/dist/{chunk-fggq3d9k.js → chunk-p0dqwj3n.js} +5 -5
- package/dist/{chunk-cnb5kv05.js → chunk-p844e0rn.js} +23 -8
- package/dist/chunk-p844e0rn.js.map +19 -0
- package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
- package/dist/chunk-pfp1txq2.js.map +11 -0
- package/dist/chunk-pqajwytd.js.map +2 -2
- package/dist/{chunk-5be2ath4.js → chunk-qkbx3tf6.js} +17 -128
- package/dist/{chunk-5be2ath4.js.map → chunk-qkbx3tf6.js.map} +6 -7
- package/dist/{chunk-sk0hcjsz.js → chunk-qkvz64nd.js} +2 -2
- package/dist/{chunk-w9yycd3t.js → chunk-qmnnhde6.js} +4 -8
- package/dist/{chunk-w9yycd3t.js.map → chunk-qmnnhde6.js.map} +3 -3
- package/dist/{chunk-5yd8cchh.js → chunk-qq90g05n.js} +8 -8
- package/dist/{chunk-5yd8cchh.js.map → chunk-qq90g05n.js.map} +1 -1
- package/dist/{chunk-tjjgy3z4.js → chunk-qxvp5epv.js} +66 -14
- package/dist/{chunk-tjjgy3z4.js.map → chunk-qxvp5epv.js.map} +9 -8
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-rx7h5fdx.js → chunk-rt9p8m9t.js} +1 -1
- package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
- package/dist/chunk-rz53yb4v.js.map +14 -0
- package/dist/{chunk-xcy5ddha.js → chunk-s4jhg8a3.js} +351 -296
- package/dist/chunk-s4jhg8a3.js.map +15 -0
- package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
- package/dist/chunk-s54c868q.js.map +12 -0
- package/dist/{chunk-9g6jz9kk.js → chunk-tffvfy6s.js} +6 -5
- package/dist/{chunk-9g6jz9kk.js.map → chunk-tffvfy6s.js.map} +3 -3
- package/dist/{chunk-e67ynxcr.js → chunk-v6xpd60t.js} +3 -3
- package/dist/{chunk-jjrn5v0p.js → chunk-vgk3hknm.js} +1 -1
- package/dist/{chunk-5thzcb8g.js → chunk-vx2yp45y.js} +2 -2
- package/dist/{chunk-dam456ve.js → chunk-vz3gc1tm.js} +394 -31
- package/dist/{chunk-dam456ve.js.map → chunk-vz3gc1tm.js.map} +10 -7
- package/dist/chunk-xt1zt7gv.js +471 -0
- package/dist/chunk-xt1zt7gv.js.map +13 -0
- package/dist/{chunk-rpxz486p.js → chunk-y05543x6.js} +21 -5
- package/dist/{chunk-rpxz486p.js.map → chunk-y05543x6.js.map} +3 -3
- package/dist/{chunk-aq39q04r.js → chunk-y9jmd7e5.js} +4 -4
- package/dist/{chunk-aq39q04r.js.map → chunk-y9jmd7e5.js.map} +1 -1
- package/dist/{chunk-k4g51s47.js → chunk-yv9czyfr.js} +3 -3
- package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
- package/dist/chunk-yw9pyg66.js.map +11 -0
- package/dist/{chunk-vre348sb.js → chunk-za5yd58j.js} +2 -2
- package/dist/{chunk-23xs4qp9.js → chunk-zb77kjth.js} +3 -3
- package/dist/{chunk-33saed7g.js → chunk-zxawp1n2.js} +1 -1
- package/dist/datasets/builders.d.ts +12 -1
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +27 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -1
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/types.d.ts +2 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +5 -0
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +10 -5
- package/dist/datasets/write.js.map +1 -1
- package/dist/edits/properties.d.ts.map +1 -1
- package/dist/events/execution.d.ts +2 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/types/objects.d.ts +5 -0
- package/dist/events/types/objects.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +10 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +39 -34
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +6 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +37 -34
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +38 -35
- package/dist/execution/request.js.map +2 -2
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -52
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +8 -5
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/materializer/index.js +19 -16
- package/dist/materializer/index.js.map +1 -1
- package/dist/models/catalog.d.ts +1 -1
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +6 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.js +19 -16
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +4 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/language-model.d.ts +6 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/objects/context/index.d.ts +1 -1
- package/dist/objects/context/index.d.ts.map +1 -1
- package/dist/objects/context/types.d.ts +6 -0
- package/dist/objects/context/types.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +2 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +23 -19
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +41 -0
- package/dist/objects/property-clearance.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +18 -15
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/validate.d.ts +10 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/file-handle.d.ts +6 -0
- package/dist/objects/sdk/file-handle.d.ts.map +1 -0
- package/dist/objects/sdk/object-handle.d.ts +2 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -0
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +12 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +35 -0
- package/dist/ontology/docs-markdown.d.ts.map +1 -0
- package/dist/ontology/docs.d.ts +50 -0
- package/dist/ontology/docs.d.ts.map +1 -0
- package/dist/ontology/index.js +7 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +19 -0
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +3 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +276 -3
- package/dist/ontology/internal.js.map +4 -3
- package/dist/ontology/tokens.d.ts +8 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +5 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +7 -0
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +21 -18
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +19 -16
- package/dist/projections/internal.js.map +1 -1
- package/dist/runtime/create.d.ts +11 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +3 -1
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +13 -2
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.js +21 -18
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/locale.d.ts +9 -0
- package/dist/runtime/locale.d.ts.map +1 -0
- package/dist/runtime/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +30 -3
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +7 -6
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/runtime.d.ts +3 -0
- package/dist/scheduler/runtime.d.ts.map +1 -1
- package/dist/security/builders.d.ts +11 -2
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/index.d.ts +4 -4
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/markings.d.ts +19 -0
- package/dist/security/markings.d.ts.map +1 -0
- package/dist/security/redactions.d.ts +4 -0
- package/dist/security/redactions.d.ts.map +1 -0
- package/dist/security/registry.d.ts +7 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +25 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +18 -15
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +5 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +15 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.js +10 -7
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +18 -15
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +4 -3
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/types.d.ts +7 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +10 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +22 -19
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/index.js +55 -53
- package/dist/testing/index.js.map +2 -2
- package/dist/webhooks/internal.js +19 -16
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +41 -38
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +6 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +2 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/actions/read-facade.ts +2 -1
- package/src/actions/validation.ts +4 -1
- package/src/agents/adapters.ts +15 -0
- package/src/agents/authority.ts +15 -0
- package/src/agents/context/entries.ts +48 -4
- package/src/agents/context/index.ts +1 -0
- package/src/agents/context-compaction.ts +6 -0
- package/src/agents/errors.ts +3 -0
- package/src/agents/index.ts +13 -1
- package/src/agents/message.ts +9 -0
- package/src/agents/request.ts +178 -22
- package/src/agents/skills.ts +63 -0
- package/src/agents/types.ts +35 -5
- package/src/auth/runtime.ts +14 -0
- package/src/auth/types.ts +6 -0
- package/src/authorization/resolve.ts +6 -1
- package/src/authorization/types.ts +7 -0
- package/src/blob-storage/execution.ts +12 -0
- package/src/blob-storage/file-content.ts +106 -0
- package/src/blob-storage/index.ts +1 -0
- package/src/blob-storage/internal.ts +7 -0
- package/src/blob-storage/media-type.ts +29 -0
- package/src/blob-storage/types.ts +13 -1
- package/src/blob-storage/validation.ts +13 -0
- package/src/bootstrap/agent-context.ts +356 -0
- package/src/bootstrap/discovery.ts +100 -33
- package/src/bootstrap/index.ts +1 -1
- package/src/bootstrap/ontology-type-manifest.ts +3 -38
- package/src/datasets/builders.ts +17 -1
- package/src/datasets/execution.ts +110 -2
- package/src/datasets/index.ts +7 -1
- package/src/datasets/types.ts +2 -0
- package/src/datasets/write.ts +21 -2
- package/src/edits/properties.ts +3 -0
- package/src/events/execution.ts +15 -16
- package/src/events/types/objects.ts +5 -0
- package/src/execution/agent.ts +27 -0
- package/src/execution/authorization.ts +1 -0
- package/src/execution/authorized-object-reader.ts +96 -34
- package/src/execution/scopes.ts +2 -6
- package/src/http/api-routes.ts +4 -3
- package/src/index.ts +27 -2
- package/src/models/catalog.ts +26 -2
- package/src/models/execution/README.md +4 -3
- package/src/models/execution/binding.ts +6 -0
- package/src/models/execution/model-call-recorder.ts +10 -0
- package/src/models/execution/session.ts +2 -2
- package/src/models/execution.ts +6 -2
- package/src/models/language-model.ts +6 -0
- package/src/objects/context/index.ts +1 -0
- package/src/objects/context/types.ts +7 -0
- package/src/objects/execution.ts +4 -1
- package/src/objects/materializer-adapter.ts +3 -0
- package/src/objects/object/upsert-batch.ts +4 -1
- package/src/objects/object/upsert.ts +3 -1
- package/src/objects/property-clearance.ts +209 -0
- package/src/objects/query/executor.ts +43 -36
- package/src/objects/query/validate.ts +133 -14
- package/src/objects/sdk/file-handle.ts +77 -0
- package/src/objects/sdk/object-handle.ts +8 -4
- package/src/objects/sdk/object-set.ts +5 -2
- package/src/ontology/builders.ts +18 -2
- package/src/ontology/docs-markdown.ts +394 -0
- package/src/ontology/docs.ts +196 -0
- package/src/ontology/inference/index.ts +25 -0
- package/src/ontology/internal.ts +7 -0
- package/src/ontology/tokens.ts +13 -2
- package/src/ontology/types.ts +5 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/schema.ts +26 -1
- package/src/runtime/create.ts +34 -4
- package/src/runtime/definitions.ts +3 -1
- package/src/runtime/host.ts +45 -1
- package/src/runtime/index.ts +3 -0
- package/src/runtime/locale.ts +26 -0
- package/src/runtime/resolve-definitions.ts +28 -1
- package/src/runtime/sixb.ts +1 -1
- package/src/runtime/types.ts +39 -3
- package/src/scheduler/runtime.ts +11 -2
- package/src/security/builders.ts +49 -5
- package/src/security/index.ts +6 -1
- package/src/security/markings.ts +313 -0
- package/src/security/redactions.ts +6 -0
- package/src/security/registry.ts +21 -1
- package/src/security/types.ts +26 -0
- package/src/security/validation.ts +59 -2
- package/src/storage/agents/provider.ts +11 -0
- package/src/storage/agents/types.ts +15 -7
- package/src/storage/index.ts +1 -0
- package/src/storage/objects/types.ts +7 -0
- package/src/workflows/builders.ts +24 -1
- package/src/workflows/request.ts +3 -0
- package/src/workflows/types.ts +6 -3
- package/src/workflows/validation.ts +32 -4
- package/dist/chunk-10styjgk.js.map +0 -20
- package/dist/chunk-52c5zb0z.js.map +0 -10
- package/dist/chunk-69266efg.js.map +0 -12
- package/dist/chunk-6wbm6ymz.js.map +0 -48
- package/dist/chunk-91kcnbf0.js.map +0 -10
- package/dist/chunk-98cw09sw.js.map +0 -10
- package/dist/chunk-9vx5e9g1.js.map +0 -11
- package/dist/chunk-cd234ba4.js.map +0 -14
- package/dist/chunk-cnb5kv05.js.map +0 -19
- package/dist/chunk-dmn70ztd.js.map +0 -11
- package/dist/chunk-gf7yht60.js.map +0 -12
- package/dist/chunk-h3v76ams.js.map +0 -11
- package/dist/chunk-pja9jfz6.js.map +0 -19
- package/dist/chunk-t9shqx3w.js.map +0 -12
- package/dist/chunk-xcy5ddha.js.map +0 -15
- package/dist/chunk-xyvy73tj.js.map +0 -12
- package/dist/chunk-z5rnrmz1.js.map +0 -11
- /package/dist/{chunk-4gmng3vf.js.map → chunk-22v5bpz3.js.map} +0 -0
- /package/dist/{chunk-2am3db31.js.map → chunk-48e3cn2d.js.map} +0 -0
- /package/dist/{chunk-f1xh7a32.js.map → chunk-7hpdd6r9.js.map} +0 -0
- /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
- /package/dist/{chunk-vp3z1ckh.js.map → chunk-de4z2bj6.js.map} +0 -0
- /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
- /package/dist/{chunk-a7er86jd.js.map → chunk-ex496vct.js.map} +0 -0
- /package/dist/{chunk-jnfxmr3f.js.map → chunk-f1zxad2t.js.map} +0 -0
- /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
- /package/dist/{chunk-fggq3d9k.js.map → chunk-p0dqwj3n.js.map} +0 -0
- /package/dist/{chunk-sk0hcjsz.js.map → chunk-qkvz64nd.js.map} +0 -0
- /package/dist/{chunk-rx7h5fdx.js.map → chunk-rt9p8m9t.js.map} +0 -0
- /package/dist/{chunk-e67ynxcr.js.map → chunk-v6xpd60t.js.map} +0 -0
- /package/dist/{chunk-jjrn5v0p.js.map → chunk-vgk3hknm.js.map} +0 -0
- /package/dist/{chunk-5thzcb8g.js.map → chunk-vx2yp45y.js.map} +0 -0
- /package/dist/{chunk-k4g51s47.js.map → chunk-yv9czyfr.js.map} +0 -0
- /package/dist/{chunk-vre348sb.js.map → chunk-za5yd58j.js.map} +0 -0
- /package/dist/{chunk-23xs4qp9.js.map → chunk-zb77kjth.js.map} +0 -0
- /package/dist/{chunk-33saed7g.js.map → chunk-zxawp1n2.js.map} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/webhooks/errors.ts", "../src/webhooks/builders.ts", "../src/webhooks/connector.ts", "../src/webhooks/registry.ts", "../src/webhooks/unverified.ts", "../src/runtime/create.ts", "../src/runtime/host.ts", "../src/connectors/credentials.ts", "../src/connectors/connections/service.ts", "../src/connectors/connections/authorizations.ts", "../src/connectors/connections/validation.ts", "../src/connectors/connections/credential-codec.ts", "../src/connectors/connections/credential-mutations.ts", "../src/connectors/connections/provider-operation.ts", "../src/connectors/connections/storage-boundary.ts", "../src/connectors/connections/tokens.ts", "../src/connectors/connections/command-context.ts", "../src/connectors/connections/request.ts", "../src/connectors/connections/views.ts", "../src/connectors/connections/runs.ts", "../src/connectors/service.ts", "../src/maintenance/ontology-maintenance.ts", "../src/models/execution/reranking.ts", "../src/objects/vectors/indexing-dispatch.ts", "../src/agents/tool-catalog.ts", "../src/syncs/validation.ts", "../src/runtime/definitions.ts", "../src/runtime/resolve-definitions.ts", "../src/runtime/storage-readiness.ts"],
|
|
3
|
+
"sources": ["../src/webhooks/errors.ts", "../src/webhooks/builders.ts", "../src/webhooks/connector.ts", "../src/webhooks/registry.ts", "../src/webhooks/unverified.ts", "../src/runtime/create.ts", "../src/runtime/host.ts", "../src/connectors/credentials.ts", "../src/connectors/connections/service.ts", "../src/connectors/connections/authorizations.ts", "../src/connectors/connections/validation.ts", "../src/connectors/connections/credential-codec.ts", "../src/connectors/connections/credential-mutations.ts", "../src/connectors/connections/provider-operation.ts", "../src/connectors/connections/storage-boundary.ts", "../src/connectors/connections/tokens.ts", "../src/connectors/connections/command-context.ts", "../src/connectors/connections/request.ts", "../src/connectors/connections/views.ts", "../src/connectors/connections/runs.ts", "../src/connectors/service.ts", "../src/maintenance/ontology-maintenance.ts", "../src/models/execution/reranking.ts", "../src/objects/vectors/indexing-dispatch.ts", "../src/agents/skills.ts", "../src/agents/tool-catalog.ts", "../src/ontology/docs.ts", "../src/security/markings.ts", "../src/syncs/validation.ts", "../src/runtime/definitions.ts", "../src/runtime/resolve-definitions.ts", "../src/runtime/storage-readiness.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"export class WebhookValidationError extends Error {\n readonly name = \"WebhookValidationError\"\n}\n",
|
|
6
6
|
"import { WebhookValidationError } from \"./errors\"\nimport type {\n WebhookBodyParser,\n WebhookBodySchema,\n WebhookDefinition,\n WebhookHandlerContext,\n WebhookHandlerResult,\n WebhookIdempotencyKeyResolver,\n WebhookVerifyContext,\n} from \"./types\"\n\ntype WebhookHandler<TBody, TClient> = (\n ctx: WebhookHandlerContext<TBody, TClient>\n) => Promise<WebhookHandlerResult> | WebhookHandlerResult\n\ntype WebhookVerifyHandler = (ctx: WebhookVerifyContext) => Promise<void> | void\n\ninterface WebhookDraft<TBody> {\n readonly id: string\n readonly method: \"POST\"\n readonly body: WebhookBodyParser<TBody>\n readonly verify?: WebhookVerifyHandler\n readonly idempotencyKey?: WebhookIdempotencyKeyResolver<TBody>\n}\n\n/** Define an inbound webhook owned by a connector adapter. */\nexport function defineWebhook(id: string): WebhookMethodBuilder {\n assertNonEmpty(id, \"Webhook id\")\n return new WebhookMethodBuilder(id)\n}\n\nexport class WebhookMethodBuilder<TClient = unknown> {\n constructor(private readonly id: string) {}\n\n post(): WebhookBodyBuilder<TClient> {\n return new WebhookBodyBuilder(this.id, \"POST\")\n }\n}\n\nexport class WebhookBodyBuilder<TClient = unknown> {\n constructor(\n private readonly id: string,\n private readonly method: \"POST\"\n ) {}\n\n /**\n * Decode JSON and keep the handler body as unknown.\n *\n * Prefer `.json(schema)` for provider payloads that have a known shape.\n */\n json(): WebhookBuilder<unknown, TClient>\n /** Decode JSON, validate or normalize it at runtime, and infer the handler body. */\n json<TBody>(schema: WebhookBodySchema<TBody>): WebhookBuilder<TBody, TClient>\n json<TBody>(schema?: WebhookBodySchema<TBody>): WebhookBuilder<TBody | unknown, TClient> {\n if (schema !== undefined && typeof schema.parse !== \"function\") {\n throw new WebhookValidationError(\"[Sixb] Webhook JSON schema must provide parse(value).\")\n }\n\n return new WebhookBuilder({\n id: this.id,\n method: this.method,\n body: {\n format: \"json\",\n parse(value: unknown) {\n return schema ? schema.parse(value) : value\n },\n },\n })\n }\n\n text(): WebhookBuilder<string, TClient> {\n return new WebhookBuilder({\n id: this.id,\n method: this.method,\n body: {\n format: \"text\",\n parse(value: unknown) {\n if (typeof value !== \"string\") {\n throw new Error(\"Expected webhook body to be text.\")\n }\n\n return value\n },\n },\n })\n }\n\n raw(): WebhookBuilder<Uint8Array, TClient> {\n return new WebhookBuilder({\n id: this.id,\n method: this.method,\n body: {\n format: \"raw\",\n parse(value: unknown) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(\"Expected webhook body to be raw bytes.\")\n }\n\n return value\n },\n },\n })\n }\n}\n\nexport class WebhookBuilder<TBody, TClient = unknown> {\n constructor(private readonly draft: WebhookDraft<TBody>) {}\n\n verify(verify: WebhookVerifyHandler): WebhookBuilder<TBody, TClient> {\n if (typeof verify !== \"function\") {\n throw new WebhookValidationError(\"[Sixb] Webhook verify must be a function.\")\n }\n\n return new WebhookBuilder({\n ...this.draft,\n verify,\n })\n }\n\n idempotencyKey(resolver: WebhookIdempotencyKeyResolver<TBody>): WebhookBuilder<TBody, TClient> {\n if (typeof resolver !== \"function\") {\n throw new WebhookValidationError(\"[Sixb] Webhook idempotencyKey must be a function.\")\n }\n\n return new WebhookBuilder({\n ...this.draft,\n idempotencyKey: resolver,\n })\n }\n\n handle<TNextClient = TClient>(\n handle: WebhookHandler<TBody, TNextClient>\n ): WebhookDefinition<TBody, TNextClient> {\n if (typeof handle !== \"function\") {\n throw new WebhookValidationError(\"[Sixb] Webhook handle must be a function.\")\n }\n\n return {\n kind: \"webhook\",\n id: this.draft.id,\n method: this.draft.method,\n body: this.draft.body,\n idempotencyKey: this.draft.idempotencyKey,\n verify: this.draft.verify,\n handle,\n }\n }\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (!value.trim()) {\n throw new WebhookValidationError(`[Sixb] ${field} must not be empty.`)\n }\n}\n",
|
|
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 } from \"../connectors/types\"\nimport { WebhookValidationError } from \"./errors\"\nimport type { RegisteredWebhook } 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 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 RegisteredWebhook[\"webhook\"] {\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 } from \"../logging\"\nimport type { ObservabilityOptions } from \"../logging/service\"\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 {
|
|
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 { 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 } from \"../logging\"\nimport { LoggingService, type ObservabilityOptions } from \"../logging/service\"\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 { bindEmbeddingModels } from \"../models/execution/embedding\"\nimport { bindRerankingModels } from \"../models/execution/reranking\"\nimport { ModelExecutionSession } from \"../models/execution/session\"\nimport { createVectorIndexingRuntime } from \"../objects/vectors/indexing\"\nimport { VectorIndexingDispatcher } from \"../objects/vectors/indexing-dispatch\"\nimport { registerVectorIndexingRuntime } from \"../objects/vectors/indexing-runtime\"\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 {\n createSandboxDefinition,\n type InferSandboxParams,\n type SandboxDefinition,\n} from \"../sandboxes/configuration\"\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 { ParamsConfig } from \"../shared/params/types\"\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 { getApiPublicOrigin } from \"./public-origin\"\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<in out TParams extends ParamsConfig = ParamsConfig> {\n id?: string\n ontology: readonly OntologySource[]\n broker: Broker\n storage: Storage\n lakeStorage: LakeStorage\n blobStorage: BlobStorage\n queues: Queues\n sandboxes?: SandboxFactory<TParams>\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\n// Invariant by declaration, like `SixbHostOptions`: left to measurement, TypeScript probes `TParams`\n// through the whole bound SDK and overflows (TS2589) on code as ordinary as a function typed to\n// return `SixbHost` that returns `new SixbHost(options)`.\nexport class SixbHost<in out TParams extends ParamsConfig = ParamsConfig> {\n readonly projectId: string\n private readonly webhookRegistry: WebhookRegistry\n private readonly hostContext: SixbHostContext\n private readonly committedFacts: OntologyOutboxDispatcher\n private readonly vectorIndexing?: VectorIndexingDispatcher\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 sandboxDefinition?: SandboxDefinition\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?: Pick<SandboxFactory, \"create\" | \"resume\">\n readonly projectRoot: string\n readonly scheduler: SchedulerController\n readonly auth: AuthRuntime\n\n constructor(options: SixbHostOptions<TParams>) {\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 this.sandboxDefinition =\n options.sandboxes?.configuration === undefined\n ? undefined\n : createSandboxDefinition(options.sandboxes.configuration, definitions.ontology)\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 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 const vectorIndexing = this.storage.ontology.vectorIndexing\n if (\n vectorIndexing &&\n definitions.ontology\n .listObjectTypes()\n .some((type) => Object.keys(type.search?.vectors ?? {}).length > 0)\n ) {\n this.vectorIndexing = new VectorIndexingDispatcher(\n this.projectId,\n vectorIndexing,\n this.queues.vectorIndexing\n )\n }\n this.ontologyMaintenance = new OntologyMaintenance({\n projectId: this.projectId,\n storage: this.storage,\n dispatcher: this.committedFacts,\n vectorIndexing: this.vectorIndexing,\n blobStorage: this.blobStorage,\n options: options.ontologyMaintenance,\n })\n\n this.hostContext = {\n embeddingModels: definitions.models?.embedding,\n rerankingModels: definitions.models?.reranking,\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 registerVectorIndexingRuntime(\n this,\n createVectorIndexingRuntime(this.hostContext, this.materializer)\n )\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<InferSandboxParams<TParams>> {\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 modelExecution = new ModelExecutionSession(\n { ...this.hostContext, runtimeAuthorization: capturedScope.authorization },\n capturedScope.execution\n )\n const embeddingModels = bindEmbeddingModels(this.hostContext.embeddingModels, modelExecution)\n const rerankingModels = bindRerankingModels(this.hostContext.rerankingModels, modelExecution)\n const objectReader = createAuthorizedObjectReader({\n scope: capturedScope,\n ontology: this.hostContext.ontology,\n objectStorage: this.storage.objects,\n embeddingModels,\n rerankingModels,\n })\n\n const runtime: SixbRuntimeContext = {\n ...this.hostContext,\n embeddingModels,\n rerankingModels,\n modelExecution,\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: () => {\n this.committedFacts.notify()\n this.vectorIndexing?.notify()\n },\n })\n )\n return createBoundSixb<InferSandboxParams<TParams>>(\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.vectorIndexing?.stop()\n await this.ontologyMaintenance.stop()\n await this.broker.close?.()\n }\n\n private sixbDependencies(): SixbDependencies {\n return {\n definitions: this.definitions,\n sandbox: this.sandboxDefinition && {\n definition: this.sandboxDefinition,\n supportsPersistence: typeof this.sandboxes?.resume === \"function\",\n },\n logging: this.logging,\n connectorService: this.connectorService,\n ...(this.connectorService.connectionProcess === undefined\n ? {}\n : { connectorConnections: this.connectorService.connectionProcess }),\n blobStorage: this.blobStorage,\n apiPublicOrigin: () => getApiPublicOrigin(this),\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",
|
|
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 {\n discoverAgentSkills,\n discoverOntologyFiles,\n discoverProjectInstructions,\n} from \"../bootstrap/agent-context\"\nimport { discoverOntologySources, discoverProjectDefinitions } from \"../bootstrap/discovery\"\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 } from \"../logging\"\nimport type { ObservabilityOptions } from \"../logging/service\"\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 {\n GroupDefinition,\n MarkingDefinition,\n MembershipPolicyDefinition,\n RoleDefinition,\n} from \"../security\"\nimport type { ParamsConfig } from \"../shared/params/types\"\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<in out TParams extends ParamsConfig = ParamsConfig> {\n id?: string\n /** BCP 47 language of the project, such as `\"fr-FR\"`. Defaults to `\"en\"`. */\n locale?: string\n /**\n * IANA time zone of the project, such as `\"Europe/Paris\"`. Defaults to `\"UTC\"`. Cron schedules\n * without their own time zone and agent runs use it.\n */\n timeZone?: string\n broker: Broker\n storage: Storage\n lakeStorage: LakeStorage\n blobStorage: BlobStorage\n queues: Queues\n sandboxes?: SandboxFactory<TParams>\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 markings?: readonly MarkingDefinition[]\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`, along with the Agent's `skills/`, `SIXB.md`, and the docs and scripts\n * under `ontology/`.\n */\nexport async function createSixb<const TParams extends ParamsConfig = ParamsConfig>(\n options: CreateSixbOptions<TParams>\n): Promise<SixbHost<TParams>> {\n assertNoAgentDefinitions(options)\n const projectRoot = resolve(options.projectRoot ?? process.cwd())\n\n const discoveredOntology = await discoverOntologySources(projectRoot)\n const allSources = [...(options.ontologies ?? []), ...discoveredOntology.sources]\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 const skills = await discoverAgentSkills(projectRoot)\n const instructions = await discoverProjectInstructions(projectRoot)\n const ontologyFiles = await discoverOntologyFiles(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<TParams>({\n id: options.id,\n locale: options.locale,\n timeZone: options.timeZone,\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 markings: [...(options.markings ?? []), ...definitions.markings],\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 agent: {\n skills,\n ...(instructions === undefined ? {} : { instructions }),\n ontologyDocs: { modules: discoveredOntology.modules, ...ontologyFiles },\n },\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 { AgentDefinitionsInput, 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 { 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 } from \"../logging\"\nimport { LoggingService, type ObservabilityOptions } from \"../logging/service\"\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 { bindEmbeddingModels } from \"../models/execution/embedding\"\nimport { bindRerankingModels } from \"../models/execution/reranking\"\nimport { ModelExecutionSession } from \"../models/execution/session\"\nimport { createVectorIndexingRuntime } from \"../objects/vectors/indexing\"\nimport { VectorIndexingDispatcher } from \"../objects/vectors/indexing-dispatch\"\nimport { registerVectorIndexingRuntime } from \"../objects/vectors/indexing-runtime\"\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 {\n createSandboxDefinition,\n type InferSandboxParams,\n type SandboxDefinition,\n} from \"../sandboxes/configuration\"\nimport { type SchedulerController, SchedulerRuntime } from \"../scheduler\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type {\n GroupDefinition,\n MarkingDefinition,\n MembershipPolicyDefinition,\n RoleDefinition,\n SecurityDefinitionCatalog,\n} from \"../security\"\nimport type { ParamsConfig } from \"../shared/params/types\"\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 { RuntimeError } from \"./errors\"\nimport {\n canonicalLocale,\n canonicalTimeZone,\n DEFAULT_PROJECT_LOCALE,\n DEFAULT_PROJECT_TIME_ZONE,\n} from \"./locale\"\nimport {\n createOntologyMutationRuntime,\n registerOntologyMutationRuntime,\n} from \"./ontology-mutations\"\nimport { getApiPublicOrigin } from \"./public-origin\"\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<in out TParams extends ParamsConfig = ParamsConfig> {\n id?: string\n /** BCP 47 language of the project. Defaults to `\"en\"`. */\n locale?: string\n /** IANA time zone of the project. Defaults to `\"UTC\"`. */\n timeZone?: string\n ontology: readonly OntologySource[]\n broker: Broker\n storage: Storage\n lakeStorage: LakeStorage\n blobStorage: BlobStorage\n queues: Queues\n sandboxes?: SandboxFactory<TParams>\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 /** The project files the Agent reads. createSixb() discovers them. */\n agent?: AgentDefinitionsInput\n markings?: readonly MarkingDefinition[]\n groups?: readonly GroupDefinition[]\n roles?: readonly RoleDefinition[]\n membershipPolicies?: readonly MembershipPolicyDefinition[]\n shares?: readonly ShareDefinition[]\n auth?: SixbAuthConfig\n}\n\n// Invariant by declaration, like `SixbHostOptions`: left to measurement, TypeScript probes `TParams`\n// through the whole bound SDK and overflows (TS2589) on code as ordinary as a function typed to\n// return `SixbHost` that returns `new SixbHost(options)`.\nexport class SixbHost<in out TParams extends ParamsConfig = ParamsConfig> {\n readonly projectId: string\n /** Canonical BCP 47 language of the project. */\n readonly locale: string\n /** Canonical IANA time zone of the project. */\n readonly timeZone: string\n private readonly webhookRegistry: WebhookRegistry\n private readonly hostContext: SixbHostContext\n private readonly committedFacts: OntologyOutboxDispatcher\n private readonly vectorIndexing?: VectorIndexingDispatcher\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 sandboxDefinition?: SandboxDefinition\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?: Pick<SandboxFactory, \"create\" | \"resume\">\n readonly projectRoot: string\n readonly scheduler: SchedulerController\n readonly auth: AuthRuntime\n\n constructor(options: SixbHostOptions<TParams>) {\n const errorReporter = attachSixbErrorReporter(this, options.onError)\n this.projectId = options.id ?? \"default\"\n this.locale = resolveProjectLocale(options.locale)\n this.timeZone = resolveProjectTimeZone(options.timeZone)\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 this.sandboxDefinition =\n options.sandboxes?.configuration === undefined\n ? undefined\n : createSandboxDefinition(options.sandboxes.configuration, definitions.ontology)\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 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 const vectorIndexing = this.storage.ontology.vectorIndexing\n if (\n vectorIndexing &&\n definitions.ontology\n .listObjectTypes()\n .some((type) => Object.keys(type.search?.vectors ?? {}).length > 0)\n ) {\n this.vectorIndexing = new VectorIndexingDispatcher(\n this.projectId,\n vectorIndexing,\n this.queues.vectorIndexing\n )\n }\n this.ontologyMaintenance = new OntologyMaintenance({\n projectId: this.projectId,\n storage: this.storage,\n dispatcher: this.committedFacts,\n vectorIndexing: this.vectorIndexing,\n blobStorage: this.blobStorage,\n options: options.ontologyMaintenance,\n })\n\n this.hostContext = {\n embeddingModels: definitions.models?.embedding,\n rerankingModels: definitions.models?.reranking,\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 registerVectorIndexingRuntime(\n this,\n createVectorIndexingRuntime(this.hostContext, this.materializer)\n )\n this.scheduler = new SchedulerRuntime({\n schedules: definitions.schedules.list(),\n events: this.eventService,\n timeZone: this.timeZone,\n })\n }\n\n /** Bind an existing opaque scope. This method never creates or escalates authority. */\n withScope(scope: ExecutionScope): Sixb<InferSandboxParams<TParams>> {\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 modelExecution = new ModelExecutionSession(\n { ...this.hostContext, runtimeAuthorization: capturedScope.authorization },\n capturedScope.execution\n )\n const embeddingModels = bindEmbeddingModels(this.hostContext.embeddingModels, modelExecution)\n const rerankingModels = bindRerankingModels(this.hostContext.rerankingModels, modelExecution)\n const objectReader = createAuthorizedObjectReader({\n scope: capturedScope,\n ontology: this.hostContext.ontology,\n objectStorage: this.storage.objects,\n embeddingModels,\n rerankingModels,\n })\n\n const runtime: SixbRuntimeContext = {\n ...this.hostContext,\n embeddingModels,\n rerankingModels,\n modelExecution,\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: () => {\n this.committedFacts.notify()\n this.vectorIndexing?.notify()\n },\n })\n )\n return createBoundSixb<InferSandboxParams<TParams>>(\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.vectorIndexing?.stop()\n await this.ontologyMaintenance.stop()\n await this.broker.close?.()\n }\n\n private sixbDependencies(): SixbDependencies {\n return {\n definitions: this.definitions,\n sandbox: this.sandboxDefinition && {\n definition: this.sandboxDefinition,\n supportsPersistence: typeof this.sandboxes?.resume === \"function\",\n },\n logging: this.logging,\n connectorService: this.connectorService,\n ...(this.connectorService.connectionProcess === undefined\n ? {}\n : { connectorConnections: this.connectorService.connectionProcess }),\n blobStorage: this.blobStorage,\n apiPublicOrigin: () => getApiPublicOrigin(this),\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 resolveProjectLocale(locale: unknown): string {\n if (locale === undefined) return DEFAULT_PROJECT_LOCALE\n const canonical = canonicalLocale(locale)\n if (canonical === undefined) {\n throw new RuntimeError(\n `[Sixb] 'locale' must be a BCP 47 language tag such as \"fr-FR\"; received ${JSON.stringify(locale)}.`\n )\n }\n return canonical\n}\n\nfunction resolveProjectTimeZone(timeZone: unknown): string {\n if (timeZone === undefined) return DEFAULT_PROJECT_TIME_ZONE\n const canonical = canonicalTimeZone(timeZone)\n if (canonical === undefined) {\n throw new RuntimeError(\n `[Sixb] 'timeZone' must be an IANA time zone such as \"Europe/Paris\"; received ${JSON.stringify(timeZone)}.`\n )\n }\n return canonical\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",
|
|
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 /** @deprecated Selection no longer expires; retained for legacy storage metadata only. */\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 listPendingConnectionRuns(command: ConnectorConnectionCommandContext, connectorId: string) {\n this.requireOAuthDefinition(connectorId)\n return this.runs.listPending(command, connectorId)\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 input.callbackParameters\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 {\n code: input.code,\n ...(input.codeVerifier === undefined ? {} : { codeVerifier: input.codeVerifier }),\n callbackParameters: input.callbackParameters,\n }\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 | undefined,\n redirectUri: string,\n callbackParameters: Readonly<Record<string, string>> | undefined\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 === undefined ? {} : { codeVerifier }), callbackParameters }\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,13 +26,16 @@
|
|
|
26
26
|
"import { type BlobStorage, supportsDirectUpload } from \"../blob-storage\"\nimport type { OntologyOutboxDispatcher } from \"../events\"\nimport type { VectorIndexingDispatcher } from \"../objects/vectors/indexing-dispatch\"\nimport {\n type FileUploadSession,\n FileUploadSessionError,\n type FileUploadSessionStore,\n type Storage,\n} 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// A request that passed the expiry gate may still be finishing blob I/O, and the API clock may\n// run ahead of the database's; the sweep leaves sessions alone until this long past expiry.\nconst ABANDONED_UPLOAD_SWEEP_DELAY_MS = 5 * 60_000\nconst ABANDONED_UPLOAD_ABORT_GRACE_MS = 15 * 60_000\n// One abandoned candidate of a large projection holds hundreds of thousands of rows. Batches this\n// size keep each delete short while clearing such a candidate within a pass.\nconst ABANDONED_SOURCE_PURGE_BATCH = 50_000\n// An expired download URL serves nothing, but its grant records which execution exposed which\n// file. It stays this long for that audit trail.\nconst EXPIRED_FILE_DOWNLOAD_RETENTION_MS = 7 * 24 * 60 * 60_000\n\ninterface OntologyMaintenanceDependencies {\n readonly projectId: string\n readonly storage: Storage\n readonly dispatcher: OntologyOutboxDispatcher\n readonly vectorIndexing?: VectorIndexingDispatcher\n /** Aborts the provider side of abandoned staged uploads. */\n readonly blobStorage?: BlobStorage\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 vectorIndexing: VectorIndexingDispatcher | undefined\n private readonly blobStorage: BlobStorage | undefined\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.vectorIndexing = dependencies.vectorIndexing\n this.blobStorage = dependencies.blobStorage\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 if (this.stopping) return this.stopping\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 vectorIndexing = this.vectorIndexing\n if (vectorIndexing) await captureFailure(() => vectorIndexing.drain(), failures)\n const cleanup = await this.cleanupExpiredRows(started, failures)\n const outbox = await captureFailure(\n () => this.storage.ontology.outbox.summarize({ projectId: this.projectId }),\n failures,\n this.snapshot.outbox\n )\n this.completePass({ started, failures, cleanup, outbox })\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 // Plans go first: a source version is cleaned only once its plan is gone.\n const spentPlanRows = await captureFailure(() => this.purgeSpentPlans(started), failures, 0)\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 const abandonedSources = await captureFailure(\n () => this.purgeAbandonedSources(started),\n failures,\n { rowsDeleted: 0, materializationsDeleted: 0 }\n )\n const uploads = this.storage.fileUploadSessions\n if (uploads) {\n // Retire abandoned uploads first: the store never reaps one that is still pending.\n await captureFailure(() => this.retireAbandonedUploads(uploads, started, failures), failures)\n await captureFailure(() => uploads.cleanupExpired(started), failures, 0)\n }\n const downloads = this.storage.fileDownloadGrants\n if (downloads) {\n await captureFailure(\n () =>\n downloads.deleteExpired({\n projectId: this.projectId,\n expiredBefore: new Date(started.getTime() - EXPIRED_FILE_DOWNLOAD_RETENTION_MS),\n limit: this.cleanupLimit,\n }),\n failures,\n 0\n )\n }\n\n return {\n publishedOutboxRowsDeleted,\n terminalSourceRowsDeleted:\n terminalSources.rowsDeleted + abandonedSources.rowsDeleted + spentPlanRows,\n terminalSourceMaterializationsDeleted:\n terminalSources.materializationsDeleted + abandonedSources.materializationsDeleted,\n }\n }\n\n /** Deletes abandoned candidates batch after batch, until none is left or the pass runs long. */\n private async purgeAbandonedSources(\n started: Date\n ): Promise<{ readonly rowsDeleted: number; readonly materializationsDeleted: number }> {\n let rowsDeleted = 0\n let materializationsDeleted = 0\n while (true) {\n const purged = await this.storage.ontology.sources.purgeAbandoned({\n projectId: this.projectId,\n limit: ABANDONED_SOURCE_PURGE_BATCH,\n })\n rowsDeleted += purged.rowsDeleted\n materializationsDeleted += purged.materializationsDeleted\n const exhausted =\n purged.rowsDeleted + purged.materializationsDeleted < ABANDONED_SOURCE_PURGE_BATCH\n if (exhausted || this.now().getTime() - started.getTime() >= this.intervalMs) {\n return { rowsDeleted, materializationsDeleted }\n }\n }\n }\n\n /** Deletes the plans of candidates that left `ready`, batch after batch, like candidates. */\n private async purgeSpentPlans(started: Date): Promise<number> {\n let rowsDeleted = 0\n while (true) {\n const purged = await this.storage.ontology.replacementPlans.purge({\n projectId: this.projectId,\n limit: ABANDONED_SOURCE_PURGE_BATCH,\n })\n rowsDeleted += purged\n if (\n purged < ABANDONED_SOURCE_PURGE_BATCH ||\n this.now().getTime() - started.getTime() >= this.intervalMs\n ) {\n return rowsDeleted\n }\n }\n }\n\n private async retireAbandonedUploads(\n uploads: FileUploadSessionStore,\n now: Date,\n failures: unknown[]\n ): Promise<void> {\n const abandoned = await uploads.listAbandoned({\n projectId: this.projectId,\n now: new Date(now.getTime() - ABANDONED_UPLOAD_SWEEP_DELAY_MS),\n limit: this.cleanupLimit,\n })\n for (const session of abandoned) {\n await captureFailure(() => this.retireAbandonedUpload(uploads, session, now), failures)\n }\n }\n\n /**\n * Releases one abandoned upload's provider-side parts, then makes its row terminal so\n * `cleanupExpired` can reap it. Throwing records a pass failure and moves on to the next.\n */\n private async retireAbandonedUpload(\n uploads: FileUploadSessionStore,\n session: FileUploadSession,\n now: Date\n ): Promise<void> {\n const blobStorage = this.blobStorage\n const providerUpload = session.providerUpload\n let abortFailure: unknown\n if (providerUpload && blobStorage && supportsDirectUpload(blobStorage)) {\n try {\n await blobStorage.abortUpload({\n uploadId: session.id,\n stagingKey: providerUpload.stagingKey,\n ...(providerUpload.providerUploadId === undefined\n ? {}\n : { providerUploadId: providerUpload.providerUploadId }),\n })\n } catch (error) {\n // Retry on later passes for a bounded time. After that the bucket lifecycle rule owns\n // the parts: a row that can never be aborted would hold a slot in every pass's limit.\n if (now.getTime() - session.expiresAt.getTime() < ABANDONED_UPLOAD_ABORT_GRACE_MS)\n throw error\n abortFailure = error\n }\n }\n\n try {\n await uploads.abort(session.id)\n } catch (error) {\n // Another API instance's pass retired it first.\n if (!(error instanceof FileUploadSessionError && error.reason === \"already_aborted\")) {\n throw error\n }\n }\n if (abortFailure !== undefined) throw abortFailure\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 }): 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 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(async (settled) => {\n if (!settled) {\n this.reportError(\n new Error(\n `[Sixb] Ontology maintenance is still stopping after ${this.shutdownTimeoutMs}ms; waiting for active storage operations.`\n )\n )\n }\n await activePass\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 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 { randomUUID } from \"node:crypto\"\nimport type { RerankingModelCatalog } from \"../catalog\"\nimport { indexModelBindings } from \"../catalog-index\"\nimport { estimateModelCall } from \"../pricing\"\nimport {\n assertRerankingModel,\n type RerankingModel,\n type RerankingModelRequest,\n RerankingModelResponseError,\n type RerankingModelResponseMetadata,\n type RerankingModelResult,\n validateRerankingResults,\n} from \"../reranking-model\"\nimport type { AiModelCallRecorder } from \"./model-call-recorder\"\nimport type { ModelExecutionSession } from \"./session\"\n\nexport function bindRerankingModels(\n catalog: RerankingModelCatalog | undefined,\n session: ModelExecutionSession\n): RerankingModelCatalog | undefined {\n if (!catalog) return undefined\n return indexModelBindings(\n catalog.list().map(({ model }) =>\n Object.freeze({\n providerId: model.providerId,\n modelId: model.modelId,\n definition: model.definition,\n rerank: (input: RerankingModelRequest) => executeReranking(session, model, input),\n })\n ),\n \"reranking\",\n assertRerankingModel\n )\n}\n\nasync function executeReranking(\n session: ModelExecutionSession,\n binding: RerankingModel,\n input: RerankingModelRequest\n): Promise<RerankingModelResult> {\n const query = input.query\n if (\n typeof query !== \"string\" ||\n !query.trim() ||\n !Array.isArray(input.documents) ||\n input.documents.some((text) => typeof text !== \"string\" || !text.trim())\n ) {\n throw new TypeError(\"[SixbModels] Reranking requires a query and nonempty document strings.\")\n }\n const documents = [...input.documents]\n const signal = AbortSignal.any([session.signal(input.signal), AbortSignal.timeout(30_000)])\n signal.throwIfAborted()\n if (documents.length === 0) return { results: [] }\n\n const accounting = await session.accounting()\n accounting.assertHealthy()\n const model = (await binding.resolve?.()) ?? binding\n assertRerankingModel(model)\n if (model.providerId !== binding.providerId || model.modelId !== binding.modelId) {\n throw new TypeError(\n \"[SixbModels] Resolved reranking model identity does not match its binding.\"\n )\n }\n signal.throwIfAborted()\n\n // Rerankers compare each document with the query. Count the query for each pair;\n // this is the shared admission heuristic, never a substitute for reported usage.\n const encoder = new TextEncoder()\n const queryBytes = encoder.encode(query).byteLength\n const tokens = documents.reduce(\n (sum, text) => sum + Math.ceil((queryBytes + encoder.encode(text).byteLength) / 4),\n 0\n )\n const callId = `call_${randomUUID()}`\n await accounting.admitCall({\n callId,\n providerId: model.providerId,\n modelId: model.modelId,\n modelKind: \"reranking\",\n costEstimator: model.costEstimator,\n inputTokens: { status: \"estimated\", tokens, method: \"utf8BytesDividedByFour\" },\n outputTokenAllowance: 0,\n estimatedTotalTokens: tokens,\n })\n\n let result: RerankingModelResult\n try {\n signal.throwIfAborted()\n result = await model.rerank({ query, documents, signal })\n } catch (error) {\n const metadata = error instanceof RerankingModelResponseError ? error.metadata : {}\n await recordReranking(accounting, model, callId, metadata)\n throw error\n }\n\n // A malformed or cancelled response can still be billable.\n await recordReranking(accounting, model, callId, result ?? {})\n signal.throwIfAborted()\n try {\n return { ...result, results: validateRerankingResults(result?.results, documents.length) }\n } catch (cause) {\n throw new RerankingModelResponseError(\n \"[SixbModels] Invalid reranking response.\",\n model.providerId,\n model.modelId,\n result ?? {},\n { cause }\n )\n }\n}\n\nasync function recordReranking(\n accounting: AiModelCallRecorder,\n model: RerankingModel,\n callId: string,\n metadata: RerankingModelResponseMetadata\n): Promise<void> {\n const usage = { ...metadata.usage, outputTokens: metadata.usage?.outputTokens ?? 0 }\n const estimate = estimateModelCall(model, {\n usage,\n route: metadata.route,\n responseModelId: metadata.responseModelId,\n })\n await accounting.onModelCallEnd({\n callId,\n modelKind: \"reranking\",\n providerId: model.providerId,\n modelId: model.modelId,\n responseId: metadata.providerIds?.responseId ?? callId,\n responseModelId: metadata.responseModelId,\n providerIds: metadata.providerIds,\n usage,\n cost: metadata.reportedCost ? { status: \"reported\", ...metadata.reportedCost } : estimate,\n ...(metadata.reportedCost ? { estimate } : {}),\n route: metadata.route,\n })\n}\n",
|
|
28
28
|
"import type { Queues } from \"../../queues\"\nimport type { OntologyVectorIndexingStorage } from \"../../storage/ontology/vector-indexing\"\n\nconst PAGE_SIZE = 100\n/** A dispatched request becomes due again only if its job has not completed it by then. */\nconst REDISPATCH_DELAY_MS = 30_000\n\n/**\n * Hands durable indexing intent to the vector queue. Each commit wakes it in the committing\n * process; ontology maintenance drains it as the repair path for a wake-up that never finished.\n */\nexport class VectorIndexingDispatcher {\n private running: Promise<void> | null = null\n private next: Promise<void> | null = null\n private stopped = false\n\n constructor(\n private readonly projectId: string,\n private readonly indexing: OntologyVectorIndexingStorage,\n private readonly queue: Queues[\"vectorIndexing\"]\n ) {}\n\n notify(): void {\n this.drain().catch((error) =>\n console.error(\"[Sixb] Could not dispatch vector indexing; maintenance will retry:\", error)\n )\n }\n\n /** Callers share one pass plus at most one follow-up, which sees every earlier commit. */\n drain(): Promise<void> {\n this.next ??= settled(this.running).then(() => {\n this.next = null\n if (this.stopped) return\n this.running = this.pass().finally(() => {\n this.running = null\n })\n return this.running\n })\n return this.next\n }\n\n async stop(): Promise<void> {\n this.stopped = true\n await settled(this.next)\n await settled(this.running)\n }\n\n private async pass(): Promise<void> {\n for (;;) {\n const now = new Date()\n const work = await this.indexing.listDue({\n projectId: this.projectId,\n now: now.toISOString(),\n limit: PAGE_SIZE,\n })\n if (work.length) {\n const jobs = [...new Map(work.map((item) => [item.batchId ?? item.id, item])).entries()]\n await this.queue.enqueue({\n projectId: this.projectId,\n jobs: jobs.map(([id, item]) => ({\n id,\n type: \"vector.index.requested\",\n payload: { indexingId: id },\n availableAt: item.availableAt,\n })),\n })\n await this.indexing.dispatched({\n projectId: this.projectId,\n ids: work.map((item) => item.id),\n nextDispatchAt: new Date(now.getTime() + REDISPATCH_DELAY_MS).toISOString(),\n })\n }\n if (work.length < PAGE_SIZE || this.stopped) return\n }\n }\n}\n\nfunction settled(promise: Promise<void> | null): Promise<void> {\n return (promise ?? Promise.resolve()).then(\n () => undefined,\n () => undefined\n )\n}\n",
|
|
29
|
+
"import type { OntologyDocsCatalog, OntologyDocsInput } from \"../ontology/docs\"\nimport { RuntimeError } from \"../runtime/errors\"\n\n/** A project file the Agent receives byte-for-byte in its sandbox. */\nexport interface AgentProjectFile {\n /** POSIX path, relative to the directory the file is installed in. */\n readonly path: string\n readonly contents: string | Uint8Array\n /** Permission bits, kept only for executable files. */\n readonly mode?: number\n}\n\n/** An Agent Skill read from `skills/<name>/SKILL.md` and the files next to it. */\nexport interface AgentSkillDefinition {\n readonly name: string\n readonly description: string\n /** Every file of the skill directory, `SKILL.md` included. */\n readonly files: readonly AgentProjectFile[]\n}\n\n/** Immutable catalog of the Agent Skills registered with a Sixb host. */\nexport interface AgentSkillCatalog {\n list(): readonly AgentSkillDefinition[]\n getByName(name: string): AgentSkillDefinition | null\n}\n\n/** The project files the Agent reads. createSixb() discovers them; tests may pass them directly. */\nexport interface AgentDefinitionsInput {\n /** Agent Skills, from `skills/`. */\n readonly skills?: readonly AgentSkillDefinition[]\n /** The conversational Agent's instructions, from `SIXB.md`. */\n readonly instructions?: string\n /** The modules, docs, and scripts of `ontology/`. */\n readonly ontologyDocs?: OntologyDocsInput\n}\n\n/** The project files the Agent reads, validated with the other definitions. */\nexport interface AgentDefinitions {\n readonly skills: AgentSkillCatalog\n /** Absent without `SIXB.md`. */\n readonly instructions?: string\n /** Where each object type's reference doc lives, with the docs and scripts of `ontology/`. */\n readonly ontologyDocs: OntologyDocsCatalog\n}\n\n/** Index skills by name. Discovery validates each skill; names must also be unique. */\nexport function createAgentSkillCatalog(\n definitions: readonly AgentSkillDefinition[] | undefined\n): AgentSkillCatalog {\n const skills = Object.freeze([...(definitions ?? [])])\n const skillsByName = new Map<string, AgentSkillDefinition>()\n for (const skill of skills) {\n if (skillsByName.has(skill.name)) {\n throw new RuntimeError(`[Sixb] Duplicate Agent Skill name: ${skill.name}`)\n }\n skillsByName.set(skill.name, skill)\n }\n\n return Object.freeze({\n list: () => skills,\n getByName: (name: string) => skillsByName.get(name) ?? null,\n })\n}\n",
|
|
29
30
|
"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",
|
|
31
|
+
"/**\n * Where each object type's Agent reference doc lives, and which hand-written docs and scripts are\n * mounted next to it.\n *\n * The generated doc of a type mirrors the `ontology/` module that defines it:\n * `billing/invoice.ts` → `billing/invoice.md`. A module that defines several types gets a folder,\n * one doc per type: `billing.ts` → `billing/Invoice.md`, `billing/Customer.md`.\n *\n * Hand-written docs are notes when they sit at a type's doc path or next to a module exporting the\n * type (`billing.md` for every type of `billing.ts`), compared without case. Notes are appended to\n * the doc of each visible type they belong to, so a reader never receives the notes of types it\n * cannot see. Any other hand-written doc is mounted as written, for every reader.\n */\n\nimport type { AgentProjectFile } from \"../agents/skills\"\nimport { RuntimeError } from \"../runtime/errors\"\nimport type { ObjectType } from \"./types\"\n\n/** Hand-written Markdown under `ontology/`. */\nexport interface OntologyDoc {\n /** POSIX path relative to `ontology/`. */\n readonly path: string\n readonly contents: string\n}\n\n/** The Agent's files under `ontology/`, as createSixb() discovers them. */\nexport interface OntologyDocsInput {\n /** Each module, by POSIX path relative to `ontology/`, with the object types it exports. */\n readonly modules: readonly { readonly path: string; readonly objectTypeIds: readonly string[] }[]\n readonly docs: readonly OntologyDoc[]\n /** Every file in a `scripts/` directory under `ontology/`, mounted as written. */\n readonly scripts: readonly AgentProjectFile[]\n}\n\n/** Paths are POSIX and relative to `ontology/`. */\nexport interface OntologyDocsCatalog {\n /** Path of the doc generated for this object type. */\n docPathFor(objectTypeId: string): string\n /** The team's notes for this type, appended to its doc. Sorted by path. */\n notesFor(objectTypeId: string): readonly OntologyDoc[]\n /** Hand-written docs that belong to no object type, mounted for every reader. */\n listDocs(): readonly OntologyDoc[]\n listScripts(): readonly AgentProjectFile[]\n /** Whether a link declares any type (`*`) as its target. Readers' views expand it. */\n isWildcardLink(objectTypeId: string, linkId: string): boolean\n}\n\n/** Resolve every registered object type's doc path, rejecting two files that would share one. */\nexport function createOntologyDocsCatalog(input: {\n readonly objectTypes: readonly ObjectType[]\n readonly docs?: OntologyDocsInput\n}): OntologyDocsCatalog {\n const modules = input.docs?.modules ?? []\n const scripts = Object.freeze([...(input.docs?.scripts ?? [])])\n // Sandboxes may sit on a case-insensitive filesystem, where `Invoice.md` overwrites `invoice.md`.\n const claimedPaths = new Map<string, string>(\n scripts.map((script) => [script.path.toLowerCase(), `script 'ontology/${script.path}'`])\n )\n const claim = (path: string, owner: string) => {\n const claimedBy = claimedPaths.get(path.toLowerCase())\n if (claimedBy !== undefined) {\n throw new RuntimeError(\n `[Sixb] The ${owner} at 'ontology/${path}' collides with ${claimedBy}, which only differs ` +\n \"by case or not at all. Rename one of them.\"\n )\n }\n claimedPaths.set(path.toLowerCase(), `the ${owner}`)\n }\n\n const docPathByType = new Map<string, string>()\n // A hand-written doc at a type's doc path, or next to any module that exports the type, is\n // notes for that type. Several types share the notes of a module that exports all of them.\n const typeIdsByNotesPath = new Map<string, Set<string>>()\n const addNotesPath = (path: string, objectTypeIds: readonly string[]) => {\n const typeIds = typeIdsByNotesPath.get(path.toLowerCase()) ?? new Set<string>()\n for (const objectTypeId of objectTypeIds) typeIds.add(objectTypeId)\n typeIdsByNotesPath.set(path.toLowerCase(), typeIds)\n }\n for (const objectType of input.objectTypes) {\n const path = docPathFor(objectType.id, modules)\n claim(path, `doc of object type '${objectType.id}'`)\n docPathByType.set(objectType.id, path)\n addNotesPath(path, [objectType.id])\n }\n for (const module of modules) {\n if (module.objectTypeIds.length > 0) {\n addNotesPath(`${withoutExtension(module.path)}.md`, module.objectTypeIds)\n }\n }\n\n const notesByType = new Map<string, OntologyDoc[]>()\n const docs: OntologyDoc[] = []\n const docPaths = new Map<string, string>()\n for (const doc of input.docs?.docs ?? []) {\n const sameName = docPaths.get(doc.path.toLowerCase())\n if (sameName !== undefined) {\n throw new RuntimeError(\n `[Sixb] The ontology docs 'ontology/${sameName}' and 'ontology/${doc.path}' only differ ` +\n \"by case. Rename one of them.\"\n )\n }\n docPaths.set(doc.path.toLowerCase(), doc.path)\n\n const objectTypeIds = typeIdsByNotesPath.get(doc.path.toLowerCase())\n if (objectTypeIds === undefined) {\n docs.push(doc)\n continue\n }\n for (const objectTypeId of objectTypeIds) {\n notesByType.set(objectTypeId, [...(notesByType.get(objectTypeId) ?? []), doc])\n }\n }\n for (const notes of notesByType.values()) notes.sort(byPath)\n Object.freeze(docs)\n\n const wildcardLinks = new Set(\n input.objectTypes.flatMap((objectType) =>\n objectType.links\n .filter((link) => link.targetObjectTypeId === \"*\")\n .map((link) => linkKey(objectType.id, link.id))\n )\n )\n\n return Object.freeze({\n docPathFor: (objectTypeId: string) => {\n const path = docPathByType.get(objectTypeId)\n if (path === undefined) {\n throw new RuntimeError(`[Sixb] Object type '${objectTypeId}' is not registered.`)\n }\n return path\n },\n notesFor: (objectTypeId: string) => notesByType.get(objectTypeId) ?? [],\n listDocs: () => docs,\n listScripts: () => scripts,\n isWildcardLink: (objectTypeId: string, linkId: string) =>\n wildcardLinks.has(linkKey(objectTypeId, linkId)),\n })\n}\n\n/**\n * The module that defines a type, among those exporting it: the one named after the type\n * (`email-thread.ts` for `EmailThread`), else any module but an `index`, else the one exporting the\n * fewest types, else the first by path. Re-exporting barrels never take a type from its module.\n */\nfunction docPathFor(objectTypeId: string, modules: OntologyDocsInput[\"modules\"]): string {\n const rank = (module: OntologyDocsInput[\"modules\"][number]) => {\n const name = basename(withoutExtension(module.path))\n return [\n kebabCase(name) === kebabCase(objectTypeId) ? 0 : 1,\n name === \"index\" ? 1 : 0,\n module.objectTypeIds.length,\n ]\n }\n let owner: OntologyDocsInput[\"modules\"][number] | undefined\n for (const module of modules) {\n if (!module.objectTypeIds.includes(objectTypeId)) continue\n if (owner === undefined || compareRanks(rank(module), rank(owner)) < 0) owner = module\n }\n\n const fileName = `${objectTypeId.replaceAll(/[^A-Za-z0-9._-]/g, \"_\")}.md`\n if (owner === undefined) return fileName\n const base = withoutExtension(owner.path)\n return owner.objectTypeIds.length === 1 ? `${base}.md` : `${base}/${fileName}`\n}\n\nfunction compareRanks(left: readonly number[], right: readonly number[]): number {\n for (const [index, value] of left.entries()) {\n const difference = value - (right[index] ?? 0)\n if (difference !== 0) return difference\n }\n return 0\n}\n\nfunction kebabCase(name: string): string {\n return name\n .replaceAll(/([a-z0-9])([A-Z])/g, \"$1-$2\")\n .replaceAll(/([A-Z]+)([A-Z][a-z])/g, \"$1-$2\")\n .replaceAll(/[\\s_]+/g, \"-\")\n .toLowerCase()\n}\n\nfunction withoutExtension(path: string): string {\n return path.replace(/\\.[^./]+$/, \"\")\n}\n\nfunction basename(path: string): string {\n return path.slice(path.lastIndexOf(\"/\") + 1)\n}\n\nfunction linkKey(objectTypeId: string, linkId: string): string {\n return JSON.stringify([objectTypeId, linkId])\n}\n\nfunction byPath(left: OntologyDoc, right: OntologyDoc): number {\n return left.path < right.path ? -1 : left.path > right.path ? 1 : 0\n}\n",
|
|
32
|
+
"import type { DatasetDefinition } from \"../datasets/types\"\nimport type { OntologyDefinitionCatalog } from \"../ontology/registry\"\nimport type { ObjectType, Property } from \"../ontology/types\"\nimport type { PipelineDefinition } from \"../pipelines/types\"\nimport type { ProjectionDefinitionCatalog } from \"../projections/registry\"\nimport type { ObjectProjectionDefinition } from \"../projections/types\"\nimport { SecurityValidationError } from \"./errors\"\n\n/**\n * Check every marking once at startup.\n *\n * A marking is enforced at read time from the property or column definition alone, so each rule\n * here closes a path that would otherwise return the value unredacted or make enforcement\n * ambiguous.\n */\nexport function validateMarkingsAtStartup(input: {\n readonly markingIds: ReadonlySet<string>\n readonly ontology: OntologyDefinitionCatalog\n readonly datasetsById: ReadonlyMap<string, DatasetDefinition>\n readonly pipelines: readonly PipelineDefinition[]\n readonly projections: ProjectionDefinitionCatalog\n}): void {\n validatePropertyMarkings(input.ontology, input.markingIds)\n validateColumnMarkings(input.datasetsById, input.markingIds)\n rejectPipelineStepsOverMarkedColumns(input.pipelines, input.datasetsById)\n validateProjectionMarkings(input.projections, input.ontology, input.datasetsById)\n}\n\n// ── Declarations ────────────────────────────────────────────\n\nfunction validatePropertyMarkings(\n ontology: OntologyDefinitionCatalog,\n markingIds: ReadonlySet<string>\n): void {\n for (const objectType of ontology.listObjectTypes()) {\n for (const property of objectType.properties) {\n validateProperty(objectType, property, markingIds)\n }\n for (const link of objectType.links) {\n for (const property of link.properties ?? []) {\n if (property.markings !== undefined) {\n throw new SecurityValidationError(\n `[Sixb] Link property '${objectType.id}.${link.id}.${property.id}' cannot carry markings. Mark object properties instead.`\n )\n }\n }\n }\n assertSubtypeKeepsParentMarkings(objectType, ontology)\n }\n}\n\nfunction validateProperty(\n objectType: ObjectType,\n property: Property,\n markingIds: ReadonlySet<string>\n): void {\n if (property.markings === undefined) return\n const path = `${objectType.id}.${property.id}`\n assertMarkingList(property.markings, `Property '${path}'`, markingIds)\n\n // The primary id identifies the object in every response, link, and event.\n if (property.primary) {\n throw new SecurityValidationError(\n `[Sixb] Primary property '${path}' cannot carry markings: it identifies the object.`\n )\n }\n // Telemetry values also flow through history reads and telemetry events, which do not\n // enforce markings yet.\n if (property.mode === \"telemetry\") {\n throw new SecurityValidationError(\n `[Sixb] Telemetry property '${path}' cannot carry markings yet.`\n )\n }\n}\n\n/**\n * A subtype inherits its parent's properties and may redefine them. Subtype rows are returned by\n * parent-type reads, so a redefinition that dropped a marking would declassify the parent's data.\n */\nfunction assertSubtypeKeepsParentMarkings(\n objectType: ObjectType,\n ontology: OntologyDefinitionCatalog\n): void {\n if (!objectType.extends) return\n const parent = ontology.getObjectTypeById(objectType.extends)\n if (!parent) return\n\n for (const parentProperty of parent.properties) {\n const property = objectType.properties.find((candidate) => candidate.id === parentProperty.id)\n const missing = missingMarkings(parentProperty.markings, property?.markings)\n if (missing.length > 0) {\n throw new SecurityValidationError(\n `[Sixb] Property '${objectType.id}.${parentProperty.id}' must keep the markings of '${parent.id}.${parentProperty.id}': add ${missing.map((markingId) => `'${markingId}'`).join(\", \")}.`\n )\n }\n }\n}\n\nfunction validateColumnMarkings(\n datasetsById: ReadonlyMap<string, DatasetDefinition>,\n markingIds: ReadonlySet<string>\n): void {\n for (const dataset of datasetsById.values()) {\n for (const column of dataset.schema.columns) {\n if (column.markings === undefined) continue\n assertMarkingList(\n column.markings,\n `Dataset column '${dataset.id}.${column.name}'`,\n markingIds\n )\n }\n }\n}\n\nfunction assertMarkingList(\n markings: unknown,\n subject: string,\n markingIds: ReadonlySet<string>\n): void {\n if (!Array.isArray(markings) || markings.length === 0) {\n throw new SecurityValidationError(\n `[Sixb] ${subject} markings must be a non-empty list of marking ids.`\n )\n }\n if (new Set(markings).size !== markings.length) {\n throw new SecurityValidationError(`[Sixb] ${subject} lists the same marking twice.`)\n }\n for (const markingId of markings) {\n if (typeof markingId !== \"string\" || !markingIds.has(markingId)) {\n throw new SecurityValidationError(\n `[Sixb] ${subject} references unknown marking '${String(markingId)}'. Add it to 'security/markings/' or pass it to createSixb({ markings }).`\n )\n }\n }\n}\n\n// ── Propagation ─────────────────────────────────────────────\n\n/**\n * A step's output inherits nothing from its inputs until Sixb can derive each output column's\n * markings from the transform. Until then, reading a marked column would declassify it.\n */\nfunction rejectPipelineStepsOverMarkedColumns(\n pipelines: readonly PipelineDefinition[],\n datasetsById: ReadonlyMap<string, DatasetDefinition>\n): void {\n for (const pipeline of pipelines) {\n for (const { step } of pipeline.graph.nodes) {\n for (const input of Object.values(step.inputs)) {\n const dataset = datasetsById.get(input.id)\n const column = dataset?.schema.columns.find((candidate) => candidate.markings)\n if (!dataset || !column) continue\n throw new SecurityValidationError(\n `[Sixb] Pipeline '${pipeline.id}' step '${step.id}' reads column '${dataset.id}.${column.name}', which carries ${markingList(column.markings)}. Pipeline steps cannot read marked columns yet.`\n )\n }\n }\n }\n}\n\n/**\n * Objects are read through the ontology, so each projected property declares the markings of its\n * column: the ontology stays the reviewed contract of what each reader receives. Values that\n * identify objects or key links are returned wherever the object or link is, and telemetry does\n * not enforce markings yet, so those columns cannot carry markings.\n */\nfunction validateProjectionMarkings(\n projections: ProjectionDefinitionCatalog,\n ontology: OntologyDefinitionCatalog,\n datasetsById: ReadonlyMap<string, DatasetDefinition>\n): void {\n for (const projection of projections.listObjects()) {\n const objectType = ontology.getObjectTypeById(projection.objectTypeId)\n if (objectType) validateObjectProjection(projection, objectType, datasetsById)\n }\n\n for (const projection of projections.listLinks()) {\n const role = `keys link '${projection.sourceObjectTypeId}.${projection.linkId}'`\n for (const columnName of [projection.sourceField, projection.targetField]) {\n assertUnmarkedColumn(projection, sourceColumn(projection, columnName, datasetsById), role)\n }\n }\n\n for (const projection of projections.listTelemetry()) {\n const columnNames = [\n projection.objectIdField,\n projection.atField,\n ...Object.values(projection.properties).flatMap((mapping) =>\n mapping.unitField === undefined\n ? [mapping.valueField]\n : [mapping.valueField, mapping.unitField]\n ),\n ]\n for (const columnName of columnNames) {\n const column = sourceColumn(projection, columnName, datasetsById)\n if (!column.markings) continue\n throw new SecurityValidationError(\n `[Sixb] Projection '${projection.id}' reads column '${column.path}', which carries ${markingList(column.markings)}. Telemetry projections cannot read marked columns yet.`\n )\n }\n }\n}\n\nfunction validateObjectProjection(\n projection: ObjectProjectionDefinition,\n objectType: ObjectType,\n datasetsById: ReadonlyMap<string, DatasetDefinition>\n): void {\n const keyRoles = objectProjectionKeyRoles(projection, objectType)\n\n for (const [propertyId, columnName] of Object.entries(projection.properties)) {\n const column = sourceColumn(projection, columnName, datasetsById)\n const property = objectType.properties.find((candidate) => candidate.id === propertyId)\n const path = `${objectType.id}.${propertyId}`\n const keyRole = keyRoles.get(propertyId)\n if (keyRole) {\n assertUnmarkedColumn(projection, column, keyRole)\n if (property?.markings) {\n throw new SecurityValidationError(\n `[Sixb] Projection '${projection.id}': property '${path}' ${keyRole} and cannot carry markings.`\n )\n }\n continue\n }\n const missing = missingMarkings(column.markings, property?.markings)\n if (missing.length > 0) {\n throw new SecurityValidationError(\n `[Sixb] Projection '${projection.id}': property '${path}' is projected from column '${column.path}', which carries ${markingList(column.markings)}. Add markings: ${markingList(missing)} to the property.`\n )\n }\n }\n\n for (const [linkId, link] of Object.entries(projection.links)) {\n if (link.sourceField === undefined) continue\n assertUnmarkedColumn(\n projection,\n sourceColumn(projection, link.sourceField, datasetsById),\n `keys link '${objectType.id}.${linkId}'`\n )\n }\n\n // The timestamp decides whether the source value or an app edit wins, which reveals how they\n // compare.\n const conflictResolution = projection.conflictResolution\n if (conflictResolution?.strategy === \"mostRecent\") {\n assertUnmarkedColumn(\n projection,\n sourceColumn(projection, conflictResolution.sourceTimestamp, datasetsById),\n \"decides which value wins under 'mostRecent'\"\n )\n }\n}\n\n/** Properties whose value becomes an object id or a link key, with the role they play. */\nfunction objectProjectionKeyRoles(\n projection: ObjectProjectionDefinition,\n objectType: ObjectType\n): ReadonlyMap<string, string> {\n const roles = new Map<string, string>()\n for (const property of objectType.properties) {\n if (property.primary) roles.set(property.id, `becomes the id of '${objectType.id}'`)\n }\n for (const [linkId, link] of Object.entries(projection.links)) {\n if (link.sourcePropertyId === undefined) continue\n roles.set(link.sourcePropertyId, `keys link '${objectType.id}.${linkId}'`)\n }\n return roles\n}\n\ninterface SourceColumn {\n readonly path: string\n readonly markings?: readonly string[]\n}\n\nfunction sourceColumn(\n projection: { readonly id: string; readonly datasetId: string },\n columnName: string,\n datasetsById: ReadonlyMap<string, DatasetDefinition>\n): SourceColumn {\n const column = datasetsById\n .get(projection.datasetId)\n ?.schema.columns.find((candidate) => candidate.name === columnName)\n // Projection validation runs first and resolves every mapped column.\n if (!column) {\n throw new Error(`[Sixb] Projection '${projection.id}' maps unknown column '${columnName}'.`)\n }\n return { path: `${projection.datasetId}.${columnName}`, markings: column.markings }\n}\n\nfunction assertUnmarkedColumn(\n projection: { readonly id: string },\n column: SourceColumn,\n role: string\n): void {\n if (!column.markings) return\n throw new SecurityValidationError(\n `[Sixb] Projection '${projection.id}': column '${column.path}' ${role} and cannot carry markings.`\n )\n}\n\n// ── Helpers ─────────────────────────────────────────────────\n\nfunction missingMarkings(\n required: readonly string[] | undefined,\n declared: readonly string[] | undefined\n): readonly string[] {\n const present = new Set(declared ?? [])\n return (required ?? []).filter((markingId) => !present.has(markingId))\n}\n\nfunction markingList(markings: readonly string[] | undefined): string {\n return `[${(markings ?? []).join(\", \")}]`\n}\n",
|
|
30
33
|
"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",
|
|
31
|
-
"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",
|
|
32
|
-
"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 { sameEmbeddingModel } from \"../models/embedding-model\"\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 for (const type of ontology.listObjectTypes()) {\n for (const [name, profile] of Object.entries(type.search?.vectors ?? {})) {\n const registered = models?.embedding.getByRef({\n provider: profile.model.providerId,\n modelId: profile.model.modelId,\n })\n if (!registered || !sameEmbeddingModel(registered.model, profile.model)) {\n throw new Error(\n \"[Sixb] Vector profile \" +\n type.id +\n \".\" +\n name +\n \" requires its model in models.embedding with matching identity and dimensions.\"\n )\n }\n }\n }\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?.language !== 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",
|
|
34
|
+
"import type { ActionDefinitionCatalog } from \"../actions\"\nimport type { AgentDefinitions, 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 /** The project files the Agent reads: `skills/`, `SIXB.md`, and the docs of `ontology/`. */\n readonly agent: AgentDefinitions\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",
|
|
35
|
+
"import { ActionRegistry } from \"../actions\"\nimport type { ActionDefinition } from \"../actions/types\"\nimport type { AgentDefinitionsInput, AgentToolDefinition } from \"../agents\"\nimport { assertNoAgentDefinitions } from \"../agents/retired-config\"\nimport { createAgentSkillCatalog } from \"../agents/skills\"\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 { sameEmbeddingModel } from \"../models/embedding-model\"\nimport { OntologyRegistry } from \"../ontology\"\nimport { createOntologyDocsCatalog } from \"../ontology/docs\"\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 MarkingDefinition,\n type MembershipPolicyDefinition,\n type RoleDefinition,\n SecurityRegistry,\n} from \"../security\"\nimport { validateMarkingsAtStartup } from \"../security/markings\"\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 agent?: AgentDefinitionsInput\n readonly models?: ModelCatalogInput\n readonly shares?: readonly ShareDefinition[]\n readonly markings?: readonly MarkingDefinition[]\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 for (const type of ontology.listObjectTypes()) {\n for (const [name, profile] of Object.entries(type.search?.vectors ?? {})) {\n const registered = models?.embedding.getByRef({\n provider: profile.model.providerId,\n modelId: profile.model.modelId,\n })\n if (!registered || !sameEmbeddingModel(registered.model, profile.model)) {\n throw new Error(\n \"[Sixb] Vector profile \" +\n type.id +\n \".\" +\n name +\n \" requires its model in models.embedding with matching identity and dimensions.\"\n )\n }\n }\n }\n const tools = createAgentToolCatalog(options.tools)\n const skills = createAgentSkillCatalog(options.agent?.skills)\n const ontologyDocs = createOntologyDocsCatalog({\n objectTypes: ontology.listObjectTypes(),\n ...(options.agent?.ontologyDocs === undefined ? {} : { docs: options.agent.ontologyDocs }),\n })\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 skills,\n })\n const workflowsById = indexUniqueDefinitions(\"workflow\", workflows)\n\n const security = new SecurityRegistry({\n markings: options.markings ?? [],\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?.language !== 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 validateMarkingsAtStartup({\n markingIds: new Set(security.listMarkings().map((marking) => marking.id)),\n ontology,\n datasetsById,\n pipelines,\n projections: projectionRegistry,\n })\n\n return Object.freeze({\n ontology,\n actions: actionRegistry,\n tools,\n agent: Object.freeze({\n skills,\n ...(options.agent?.instructions === undefined\n ? {}\n : { instructions: options.agent.instructions }),\n ontologyDocs,\n }),\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",
|
|
33
36
|
"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"
|
|
34
37
|
],
|
|
35
|
-
"mappings": "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",
|
|
36
|
-
"debugId": "
|
|
38
|
+
"mappings": "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",
|
|
39
|
+
"debugId": "F00D1642A2671DB564756E2164756E21",
|
|
37
40
|
"names": []
|
|
38
41
|
}
|