@jini-ai/cms 0.1.0
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/LICENSE +201 -0
- package/README.md +84 -0
- package/dist/content-types/agent-tools.d.ts +65 -0
- package/dist/content-types/agent-tools.d.ts.map +1 -0
- package/dist/content-types/agent-tools.js +172 -0
- package/dist/content-types/agent-tools.js.map +1 -0
- package/dist/content-types/cleanup.d.ts +118 -0
- package/dist/content-types/cleanup.d.ts.map +1 -0
- package/dist/content-types/cleanup.js +65 -0
- package/dist/content-types/cleanup.js.map +1 -0
- package/dist/content-types/errors.d.ts +90 -0
- package/dist/content-types/errors.d.ts.map +1 -0
- package/dist/content-types/errors.js +119 -0
- package/dist/content-types/errors.js.map +1 -0
- package/dist/content-types/field-defs.d.ts +25 -0
- package/dist/content-types/field-defs.d.ts.map +1 -0
- package/dist/content-types/field-defs.js +155 -0
- package/dist/content-types/field-defs.js.map +1 -0
- package/dist/content-types/index-provisioning.d.ts +94 -0
- package/dist/content-types/index-provisioning.d.ts.map +1 -0
- package/dist/content-types/index-provisioning.js +133 -0
- package/dist/content-types/index-provisioning.js.map +1 -0
- package/dist/content-types/index.d.ts +63 -0
- package/dist/content-types/index.d.ts.map +1 -0
- package/dist/content-types/index.js +36 -0
- package/dist/content-types/index.js.map +1 -0
- package/dist/content-types/lifecycle-dispatch.d.ts +38 -0
- package/dist/content-types/lifecycle-dispatch.d.ts.map +1 -0
- package/dist/content-types/lifecycle-dispatch.js +28 -0
- package/dist/content-types/lifecycle-dispatch.js.map +1 -0
- package/dist/content-types/lifecycle.d.ts +104 -0
- package/dist/content-types/lifecycle.d.ts.map +1 -0
- package/dist/content-types/lifecycle.js +143 -0
- package/dist/content-types/lifecycle.js.map +1 -0
- package/dist/content-types/list.d.ts +44 -0
- package/dist/content-types/list.d.ts.map +1 -0
- package/dist/content-types/list.js +13 -0
- package/dist/content-types/list.js.map +1 -0
- package/dist/content-types/repo.memory.d.ts +72 -0
- package/dist/content-types/repo.memory.d.ts.map +1 -0
- package/dist/content-types/repo.memory.js +71 -0
- package/dist/content-types/repo.memory.js.map +1 -0
- package/dist/content-types/tool-registrations.d.ts +65 -0
- package/dist/content-types/tool-registrations.d.ts.map +1 -0
- package/dist/content-types/tool-registrations.js +180 -0
- package/dist/content-types/tool-registrations.js.map +1 -0
- package/dist/content-types/types.d.ts +78 -0
- package/dist/content-types/types.d.ts.map +1 -0
- package/dist/content-types/types.js +32 -0
- package/dist/content-types/types.js.map +1 -0
- package/dist/content-types/write-service.d.ts +141 -0
- package/dist/content-types/write-service.d.ts.map +1 -0
- package/dist/content-types/write-service.js +180 -0
- package/dist/content-types/write-service.js.map +1 -0
- package/dist/core/commands/change-set.d.ts +98 -0
- package/dist/core/commands/change-set.d.ts.map +1 -0
- package/dist/core/commands/change-set.js +2 -0
- package/dist/core/commands/change-set.js.map +1 -0
- package/dist/core/commands/command.d.ts +168 -0
- package/dist/core/commands/command.d.ts.map +1 -0
- package/dist/core/commands/command.js +173 -0
- package/dist/core/commands/command.js.map +1 -0
- package/dist/core/index.d.ts +45 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +43 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/ports.d.ts +139 -0
- package/dist/core/ports.d.ts.map +1 -0
- package/dist/core/ports.js +2 -0
- package/dist/core/ports.js.map +1 -0
- package/dist/core/tools/registration-kit.d.ts +308 -0
- package/dist/core/tools/registration-kit.d.ts.map +1 -0
- package/dist/core/tools/registration-kit.js +381 -0
- package/dist/core/tools/registration-kit.js.map +1 -0
- package/dist/entries/agent-tools.d.ts +78 -0
- package/dist/entries/agent-tools.d.ts.map +1 -0
- package/dist/entries/agent-tools.js +158 -0
- package/dist/entries/agent-tools.js.map +1 -0
- package/dist/entries/errors.d.ts +43 -0
- package/dist/entries/errors.d.ts.map +1 -0
- package/dist/entries/errors.js +59 -0
- package/dist/entries/errors.js.map +1 -0
- package/dist/entries/field-validation.d.ts +70 -0
- package/dist/entries/field-validation.d.ts.map +1 -0
- package/dist/entries/field-validation.js +87 -0
- package/dist/entries/field-validation.js.map +1 -0
- package/dist/entries/index.d.ts +55 -0
- package/dist/entries/index.d.ts.map +1 -0
- package/dist/entries/index.js +38 -0
- package/dist/entries/index.js.map +1 -0
- package/dist/entries/lifecycle-dispatch.d.ts +15 -0
- package/dist/entries/lifecycle-dispatch.d.ts.map +1 -0
- package/dist/entries/lifecycle-dispatch.js +16 -0
- package/dist/entries/lifecycle-dispatch.js.map +1 -0
- package/dist/entries/list.d.ts +47 -0
- package/dist/entries/list.d.ts.map +1 -0
- package/dist/entries/list.js +12 -0
- package/dist/entries/list.js.map +1 -0
- package/dist/entries/repo.memory.d.ts +64 -0
- package/dist/entries/repo.memory.d.ts.map +1 -0
- package/dist/entries/repo.memory.js +73 -0
- package/dist/entries/repo.memory.js.map +1 -0
- package/dist/entries/tool-registrations.d.ts +52 -0
- package/dist/entries/tool-registrations.d.ts.map +1 -0
- package/dist/entries/tool-registrations.js +141 -0
- package/dist/entries/tool-registrations.js.map +1 -0
- package/dist/entries/types.d.ts +55 -0
- package/dist/entries/types.d.ts.map +1 -0
- package/dist/entries/types.js +2 -0
- package/dist/entries/types.js.map +1 -0
- package/dist/entries/write-service.d.ts +202 -0
- package/dist/entries/write-service.d.ts.map +1 -0
- package/dist/entries/write-service.js +204 -0
- package/dist/entries/write-service.js.map +1 -0
- package/dist/identity/admin-crud-service.d.ts +252 -0
- package/dist/identity/admin-crud-service.d.ts.map +1 -0
- package/dist/identity/admin-crud-service.js +437 -0
- package/dist/identity/admin-crud-service.js.map +1 -0
- package/dist/identity/agent-tool-input.d.ts +58 -0
- package/dist/identity/agent-tool-input.d.ts.map +1 -0
- package/dist/identity/agent-tool-input.js +126 -0
- package/dist/identity/agent-tool-input.js.map +1 -0
- package/dist/identity/agent-tools.d.ts +101 -0
- package/dist/identity/agent-tools.d.ts.map +1 -0
- package/dist/identity/agent-tools.js +290 -0
- package/dist/identity/agent-tools.js.map +1 -0
- package/dist/identity/auth-service.d.ts +87 -0
- package/dist/identity/auth-service.d.ts.map +1 -0
- package/dist/identity/auth-service.js +141 -0
- package/dist/identity/auth-service.js.map +1 -0
- package/dist/identity/authorize.d.ts +90 -0
- package/dist/identity/authorize.d.ts.map +1 -0
- package/dist/identity/authorize.js +94 -0
- package/dist/identity/authorize.js.map +1 -0
- package/dist/identity/grant-service.d.ts +198 -0
- package/dist/identity/grant-service.d.ts.map +1 -0
- package/dist/identity/grant-service.js +361 -0
- package/dist/identity/grant-service.js.map +1 -0
- package/dist/identity/hasher.d.ts +39 -0
- package/dist/identity/hasher.d.ts.map +1 -0
- package/dist/identity/hasher.js +39 -0
- package/dist/identity/hasher.js.map +1 -0
- package/dist/identity/index.d.ts +59 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +51 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/password-policy.d.ts +58 -0
- package/dist/identity/password-policy.d.ts.map +1 -0
- package/dist/identity/password-policy.js +67 -0
- package/dist/identity/password-policy.js.map +1 -0
- package/dist/identity/permission-migrations.d.ts +86 -0
- package/dist/identity/permission-migrations.d.ts.map +1 -0
- package/dist/identity/permission-migrations.js +67 -0
- package/dist/identity/permission-migrations.js.map +1 -0
- package/dist/identity/permissions.d.ts +35 -0
- package/dist/identity/permissions.d.ts.map +1 -0
- package/dist/identity/permissions.js +603 -0
- package/dist/identity/permissions.js.map +1 -0
- package/dist/identity/ports.d.ts +201 -0
- package/dist/identity/ports.d.ts.map +1 -0
- package/dist/identity/ports.js +2 -0
- package/dist/identity/ports.js.map +1 -0
- package/dist/identity/repo.memory.d.ts +164 -0
- package/dist/identity/repo.memory.d.ts.map +1 -0
- package/dist/identity/repo.memory.js +224 -0
- package/dist/identity/repo.memory.js.map +1 -0
- package/dist/identity/seed.d.ts +42 -0
- package/dist/identity/seed.d.ts.map +1 -0
- package/dist/identity/seed.js +277 -0
- package/dist/identity/seed.js.map +1 -0
- package/dist/identity/tool-registrations.d.ts +50 -0
- package/dist/identity/tool-registrations.d.ts.map +1 -0
- package/dist/identity/tool-registrations.js +419 -0
- package/dist/identity/tool-registrations.js.map +1 -0
- package/dist/identity/types.d.ts +185 -0
- package/dist/identity/types.d.ts.map +1 -0
- package/dist/identity/types.js +64 -0
- package/dist/identity/types.js.map +1 -0
- package/dist/identity/username.d.ts +12 -0
- package/dist/identity/username.d.ts.map +1 -0
- package/dist/identity/username.js +14 -0
- package/dist/identity/username.js.map +1 -0
- package/dist/media/agent-tools.d.ts +66 -0
- package/dist/media/agent-tools.d.ts.map +1 -0
- package/dist/media/agent-tools.js +131 -0
- package/dist/media/agent-tools.js.map +1 -0
- package/dist/media/blob-gc-lock.d.ts +37 -0
- package/dist/media/blob-gc-lock.d.ts.map +1 -0
- package/dist/media/blob-gc-lock.js +55 -0
- package/dist/media/blob-gc-lock.js.map +1 -0
- package/dist/media/blob-gc.d.ts +246 -0
- package/dist/media/blob-gc.d.ts.map +1 -0
- package/dist/media/blob-gc.js +254 -0
- package/dist/media/blob-gc.js.map +1 -0
- package/dist/media/blob-key.d.ts +28 -0
- package/dist/media/blob-key.d.ts.map +1 -0
- package/dist/media/blob-key.js +11 -0
- package/dist/media/blob-key.js.map +1 -0
- package/dist/media/blob-store.fs.d.ts +23 -0
- package/dist/media/blob-store.fs.d.ts.map +1 -0
- package/dist/media/blob-store.fs.js +48 -0
- package/dist/media/blob-store.fs.js.map +1 -0
- package/dist/media/blob-store.memory.d.ts +22 -0
- package/dist/media/blob-store.memory.d.ts.map +1 -0
- package/dist/media/blob-store.memory.js +23 -0
- package/dist/media/blob-store.memory.js.map +1 -0
- package/dist/media/content-type-sniffer.d.ts +49 -0
- package/dist/media/content-type-sniffer.d.ts.map +1 -0
- package/dist/media/content-type-sniffer.js +141 -0
- package/dist/media/content-type-sniffer.js.map +1 -0
- package/dist/media/image-transformer.d.ts +45 -0
- package/dist/media/image-transformer.d.ts.map +1 -0
- package/dist/media/image-transformer.js +23 -0
- package/dist/media/image-transformer.js.map +1 -0
- package/dist/media/image-transformer.sharp.d.ts +26 -0
- package/dist/media/image-transformer.sharp.d.ts.map +1 -0
- package/dist/media/image-transformer.sharp.js +91 -0
- package/dist/media/image-transformer.sharp.js.map +1 -0
- package/dist/media/index.d.ts +43 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +31 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/media-service.d.ts +244 -0
- package/dist/media/media-service.d.ts.map +1 -0
- package/dist/media/media-service.js +345 -0
- package/dist/media/media-service.js.map +1 -0
- package/dist/media/ports.d.ts +142 -0
- package/dist/media/ports.d.ts.map +1 -0
- package/dist/media/ports.js +2 -0
- package/dist/media/ports.js.map +1 -0
- package/dist/media/rendition-service.d.ts +66 -0
- package/dist/media/rendition-service.d.ts.map +1 -0
- package/dist/media/rendition-service.js +135 -0
- package/dist/media/rendition-service.js.map +1 -0
- package/dist/media/repo.memory.d.ts +107 -0
- package/dist/media/repo.memory.d.ts.map +1 -0
- package/dist/media/repo.memory.js +131 -0
- package/dist/media/repo.memory.js.map +1 -0
- package/dist/media/tool-registrations.d.ts +42 -0
- package/dist/media/tool-registrations.d.ts.map +1 -0
- package/dist/media/tool-registrations.js +121 -0
- package/dist/media/tool-registrations.js.map +1 -0
- package/dist/media/transform-lock.d.ts +36 -0
- package/dist/media/transform-lock.d.ts.map +1 -0
- package/dist/media/transform-lock.js +50 -0
- package/dist/media/transform-lock.js.map +1 -0
- package/dist/media/transform-registry.d.ts +103 -0
- package/dist/media/transform-registry.d.ts.map +1 -0
- package/dist/media/transform-registry.js +87 -0
- package/dist/media/transform-registry.js.map +1 -0
- package/dist/media/transform-types.d.ts +82 -0
- package/dist/media/transform-types.d.ts.map +1 -0
- package/dist/media/transform-types.js +47 -0
- package/dist/media/transform-types.js.map +1 -0
- package/dist/media/types.d.ts +150 -0
- package/dist/media/types.d.ts.map +1 -0
- package/dist/media/types.js +26 -0
- package/dist/media/types.js.map +1 -0
- package/dist/navigation/agent-tools.d.ts +90 -0
- package/dist/navigation/agent-tools.d.ts.map +1 -0
- package/dist/navigation/agent-tools.js +225 -0
- package/dist/navigation/agent-tools.js.map +1 -0
- package/dist/navigation/contracts.d.ts +98 -0
- package/dist/navigation/contracts.d.ts.map +1 -0
- package/dist/navigation/contracts.js +70 -0
- package/dist/navigation/contracts.js.map +1 -0
- package/dist/navigation/index.d.ts +39 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +30 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/menu-service.d.ts +256 -0
- package/dist/navigation/menu-service.d.ts.map +1 -0
- package/dist/navigation/menu-service.js +382 -0
- package/dist/navigation/menu-service.js.map +1 -0
- package/dist/navigation/ports.d.ts +147 -0
- package/dist/navigation/ports.d.ts.map +1 -0
- package/dist/navigation/ports.js +2 -0
- package/dist/navigation/ports.js.map +1 -0
- package/dist/navigation/read-model.d.ts +11 -0
- package/dist/navigation/read-model.d.ts.map +1 -0
- package/dist/navigation/read-model.js +27 -0
- package/dist/navigation/read-model.js.map +1 -0
- package/dist/navigation/reconcile.d.ts +57 -0
- package/dist/navigation/reconcile.d.ts.map +1 -0
- package/dist/navigation/reconcile.js +33 -0
- package/dist/navigation/reconcile.js.map +1 -0
- package/dist/navigation/repo.memory.d.ts +137 -0
- package/dist/navigation/repo.memory.d.ts.map +1 -0
- package/dist/navigation/repo.memory.js +95 -0
- package/dist/navigation/repo.memory.js.map +1 -0
- package/dist/navigation/resolver.d.ts +110 -0
- package/dist/navigation/resolver.d.ts.map +1 -0
- package/dist/navigation/resolver.js +131 -0
- package/dist/navigation/resolver.js.map +1 -0
- package/dist/navigation/tool-registrations.d.ts +43 -0
- package/dist/navigation/tool-registrations.d.ts.map +1 -0
- package/dist/navigation/tool-registrations.js +126 -0
- package/dist/navigation/tool-registrations.js.map +1 -0
- package/dist/navigation/types.d.ts +207 -0
- package/dist/navigation/types.d.ts.map +1 -0
- package/dist/navigation/types.js +14 -0
- package/dist/navigation/types.js.map +1 -0
- package/dist/presentation/index.d.ts +15 -0
- package/dist/presentation/index.d.ts.map +1 -0
- package/dist/presentation/index.js +15 -0
- package/dist/presentation/index.js.map +1 -0
- package/dist/presentation/presentation.d.ts +72 -0
- package/dist/presentation/presentation.d.ts.map +1 -0
- package/dist/presentation/presentation.js +51 -0
- package/dist/presentation/presentation.js.map +1 -0
- package/dist/presentation/repo.memory.d.ts +9 -0
- package/dist/presentation/repo.memory.d.ts.map +1 -0
- package/dist/presentation/repo.memory.js +21 -0
- package/dist/presentation/repo.memory.js.map +1 -0
- package/dist/server/index.d.ts +28 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +28 -0
- package/dist/server/index.js.map +1 -0
- package/dist/settings/agent-tools.d.ts +83 -0
- package/dist/settings/agent-tools.d.ts.map +1 -0
- package/dist/settings/agent-tools.js +200 -0
- package/dist/settings/agent-tools.js.map +1 -0
- package/dist/settings/agent-writable-preferences.d.ts +67 -0
- package/dist/settings/agent-writable-preferences.d.ts.map +1 -0
- package/dist/settings/agent-writable-preferences.js +144 -0
- package/dist/settings/agent-writable-preferences.js.map +1 -0
- package/dist/settings/change-feed.d.ts +74 -0
- package/dist/settings/change-feed.d.ts.map +1 -0
- package/dist/settings/change-feed.js +61 -0
- package/dist/settings/change-feed.js.map +1 -0
- package/dist/settings/definitions-dispatch.d.ts +51 -0
- package/dist/settings/definitions-dispatch.d.ts.map +1 -0
- package/dist/settings/definitions-dispatch.js +86 -0
- package/dist/settings/definitions-dispatch.js.map +1 -0
- package/dist/settings/dictionaries/index.d.ts +45 -0
- package/dist/settings/dictionaries/index.d.ts.map +1 -0
- package/dist/settings/dictionaries/index.js +69 -0
- package/dist/settings/dictionaries/index.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ar.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ar.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ar.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ar.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.bn.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.bn.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.bn.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.bn.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.de.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.de.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.de.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.de.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.es.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.es.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.es.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.es.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fa.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.fa.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fa.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.fa.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fr.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.fr.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.fr.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.fr.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hi.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.hi.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hi.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.hi.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hu.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.hu.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.hu.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.hu.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.id.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.id.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.id.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.id.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.it.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.it.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.it.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.it.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ja.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ja.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ja.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ja.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ko.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ko.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ko.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ko.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pl.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.pl.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pl.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.pl.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.pt-BR.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ru.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ru.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ru.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ru.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.th.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.th.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.th.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.th.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.tr.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.tr.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.tr.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.tr.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.uk.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.uk.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.uk.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.uk.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ur.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.ur.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.ur.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.ur.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.zh-CN.js.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.d.ts +3 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.d.ts.map +1 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.js +28 -0
- package/dist/settings/dictionaries/settings-dialog.zh-TW.js.map +1 -0
- package/dist/settings/ensure-definitions.d.ts +88 -0
- package/dist/settings/ensure-definitions.d.ts.map +1 -0
- package/dist/settings/ensure-definitions.js +91 -0
- package/dist/settings/ensure-definitions.js.map +1 -0
- package/dist/settings/errors.d.ts +36 -0
- package/dist/settings/errors.d.ts.map +1 -0
- package/dist/settings/errors.js +40 -0
- package/dist/settings/errors.js.map +1 -0
- package/dist/settings/index.d.ts +37 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +36 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/ports.d.ts +117 -0
- package/dist/settings/ports.d.ts.map +1 -0
- package/dist/settings/ports.js +2 -0
- package/dist/settings/ports.js.map +1 -0
- package/dist/settings/purge-service.d.ts +53 -0
- package/dist/settings/purge-service.d.ts.map +1 -0
- package/dist/settings/purge-service.js +105 -0
- package/dist/settings/purge-service.js.map +1 -0
- package/dist/settings/repo.memory.d.ts +119 -0
- package/dist/settings/repo.memory.d.ts.map +1 -0
- package/dist/settings/repo.memory.js +199 -0
- package/dist/settings/repo.memory.js.map +1 -0
- package/dist/settings/settings.d.ts +124 -0
- package/dist/settings/settings.d.ts.map +1 -0
- package/dist/settings/settings.js +238 -0
- package/dist/settings/settings.js.map +1 -0
- package/dist/settings/tool-registrations.d.ts +56 -0
- package/dist/settings/tool-registrations.d.ts.map +1 -0
- package/dist/settings/tool-registrations.js +240 -0
- package/dist/settings/tool-registrations.js.map +1 -0
- package/dist/settings/types.d.ts +125 -0
- package/dist/settings/types.d.ts.map +1 -0
- package/dist/settings/types.js +3 -0
- package/dist/settings/types.js.map +1 -0
- package/dist/settings/ui-tab-definitions.d.ts +41 -0
- package/dist/settings/ui-tab-definitions.d.ts.map +1 -0
- package/dist/settings/ui-tab-definitions.js +148 -0
- package/dist/settings/ui-tab-definitions.js.map +1 -0
- package/dist/settings/write-service.d.ts +314 -0
- package/dist/settings/write-service.d.ts.map +1 -0
- package/dist/settings/write-service.js +677 -0
- package/dist/settings/write-service.js.map +1 -0
- package/dist/taxonomy/agent-tools.d.ts +76 -0
- package/dist/taxonomy/agent-tools.d.ts.map +1 -0
- package/dist/taxonomy/agent-tools.js +178 -0
- package/dist/taxonomy/agent-tools.js.map +1 -0
- package/dist/taxonomy/content-lookup.d.ts +45 -0
- package/dist/taxonomy/content-lookup.d.ts.map +1 -0
- package/dist/taxonomy/content-lookup.js +9 -0
- package/dist/taxonomy/content-lookup.js.map +1 -0
- package/dist/taxonomy/index.d.ts +38 -0
- package/dist/taxonomy/index.d.ts.map +1 -0
- package/dist/taxonomy/index.js +38 -0
- package/dist/taxonomy/index.js.map +1 -0
- package/dist/taxonomy/list.d.ts +39 -0
- package/dist/taxonomy/list.d.ts.map +1 -0
- package/dist/taxonomy/list.js +19 -0
- package/dist/taxonomy/list.js.map +1 -0
- package/dist/taxonomy/merge-term.d.ts +94 -0
- package/dist/taxonomy/merge-term.d.ts.map +1 -0
- package/dist/taxonomy/merge-term.js +65 -0
- package/dist/taxonomy/merge-term.js.map +1 -0
- package/dist/taxonomy/repo.memory.d.ts +160 -0
- package/dist/taxonomy/repo.memory.d.ts.map +1 -0
- package/dist/taxonomy/repo.memory.js +171 -0
- package/dist/taxonomy/repo.memory.js.map +1 -0
- package/dist/taxonomy/validation-chain.d.ts +114 -0
- package/dist/taxonomy/validation-chain.d.ts.map +1 -0
- package/dist/taxonomy/validation-chain.js +152 -0
- package/dist/taxonomy/validation-chain.js.map +1 -0
- package/dist/taxonomy/write-service.d.ts +387 -0
- package/dist/taxonomy/write-service.d.ts.map +1 -0
- package/dist/taxonomy/write-service.js +350 -0
- package/dist/taxonomy/write-service.js.map +1 -0
- package/dist/workspace/agent-tools.d.ts +67 -0
- package/dist/workspace/agent-tools.d.ts.map +1 -0
- package/dist/workspace/agent-tools.js +103 -0
- package/dist/workspace/agent-tools.js.map +1 -0
- package/dist/workspace/create.d.ts +116 -0
- package/dist/workspace/create.d.ts.map +1 -0
- package/dist/workspace/create.js +69 -0
- package/dist/workspace/create.js.map +1 -0
- package/dist/workspace/delete.d.ts +50 -0
- package/dist/workspace/delete.d.ts.map +1 -0
- package/dist/workspace/delete.js +24 -0
- package/dist/workspace/delete.js.map +1 -0
- package/dist/workspace/index.d.ts +27 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +27 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/repo.memory.d.ts +34 -0
- package/dist/workspace/repo.memory.d.ts.map +1 -0
- package/dist/workspace/repo.memory.js +50 -0
- package/dist/workspace/repo.memory.js.map +1 -0
- package/dist/workspace/tool-registrations.d.ts +38 -0
- package/dist/workspace/tool-registrations.d.ts.map +1 -0
- package/dist/workspace/tool-registrations.js +71 -0
- package/dist/workspace/tool-registrations.js.map +1 -0
- package/dist/workspace/update.d.ts +52 -0
- package/dist/workspace/update.d.ts.map +1 -0
- package/dist/workspace/update.js +41 -0
- package/dist/workspace/update.js.map +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-dialog.ur.js","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.ur.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,2BAA2B,EAAE,8BAA8B;IAC3D,cAAc,EAAE,QAAQ;IACxB,4DAA4D,EAAE,kDAAkD;IAChH,eAAe,EAAE,SAAS;IAC1B,yEAAyE,EAAE,wFAAwF;IACnK,SAAS,EAAE,SAAS;IACpB,mBAAmB,EAAE,sBAAsB;IAC3C,uEAAuE,EAAE,qEAAqE;IAC9I,8EAA8E,EAAE,wEAAwE;IACxJ,YAAY,EAAE,UAAU;IACxB,gFAAgF,EAAE,kGAAkG;IACpL,kDAAkD,EAAE,6CAA6C;IACjG,6CAA6C,EAAE,gDAAgD;IAC/F,QAAQ,EAAE,QAAQ;IAClB,2CAA2C,EAAE,yDAAyD;IACtG,cAAc,EAAE,WAAW;IAC3B,uCAAuC,EAAE,qCAAqC;IAC9E,QAAQ,EAAE,SAAS;IACnB,mDAAmD,EAAE,kEAAkE;IACvH,8BAA8B,EAAE,2BAA2B;IAC3D,SAAS,EAAE,MAAM;IACjB,gBAAgB,EAAE,0BAA0B;IAC5C,wCAAwC,EAAE,4DAA4D;IACtG,mBAAmB,EAAE,6BAA6B;CACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-dialog.zh-CN.d.ts","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-CN.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyBxD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** @file zh-CN translation of the settings-dialog chrome keys (see `index.ts`). */
|
|
2
|
+
export const SETTINGS_DIALOG_ZH_CN = {
|
|
3
|
+
"Choose Local CLI or BYOK.": "选择本地 CLI 或 BYOK。",
|
|
4
|
+
"Instructions": "指令",
|
|
5
|
+
"Applied to every assistant conversation in this workspace.": "应用于此工作区中的每一次助手对话。",
|
|
6
|
+
"Notifications": "通知",
|
|
7
|
+
"How you're told a task finished. Saved per operator, not per workspace.": "任务完成时如何通知你。按操作者保存,而非按工作区保存。",
|
|
8
|
+
"Privacy": "隐私",
|
|
9
|
+
"Dialog appearance": "对话框外观",
|
|
10
|
+
"Theme and accent color for this settings surface. Saved per operator.": "此设置界面的主题和强调色,按操作者保存。",
|
|
11
|
+
"Admin interface language. Applies to this settings panel's tab content only.": "管理界面语言,仅适用于此设置面板的标签页内容。",
|
|
12
|
+
"MCP server": "MCP 服务器",
|
|
13
|
+
"Connect an MCP client. Showing sample output — not yet wired to a live server.": "连接一个 MCP 客户端。当前显示的是示例输出——尚未接入实际服务器。",
|
|
14
|
+
"API keys for image, video, and audio generation.": "用于生成图像、视频和音频的 API 密钥。",
|
|
15
|
+
"Third-party accounts and APIs via Composio.": "通过 Composio 接入的第三方账户和 API。",
|
|
16
|
+
"Memory": "记忆",
|
|
17
|
+
"Saved facts and context for future chats.": "为后续对话保存的事实和上下文。",
|
|
18
|
+
"External MCP": "外部 MCP",
|
|
19
|
+
"Add MCP tools from external services.": "从外部服务添加 MCP 工具。",
|
|
20
|
+
"Skills": "技能",
|
|
21
|
+
"Custom skills your assistant can invoke mid-task.": "你的助手可以在任务执行过程中调用的自定义技能。",
|
|
22
|
+
"Version and runtime details.": "版本和运行时详细信息。",
|
|
23
|
+
"Version": "版本",
|
|
24
|
+
"Open as dialog": "以对话框方式打开",
|
|
25
|
+
"No MCP config store to connect to yet.": "目前还没有可连接的 MCP 配置存储。",
|
|
26
|
+
"All changes saved": "所有更改均已保存",
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=settings-dialog.zh-CN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-dialog.zh-CN.js","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-CN.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,2BAA2B,EAAE,kBAAkB;IAC/C,cAAc,EAAE,IAAI;IACpB,4DAA4D,EAAE,mBAAmB;IACjF,eAAe,EAAE,IAAI;IACrB,yEAAyE,EAAE,6BAA6B;IACxG,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,OAAO;IAC5B,uEAAuE,EAAE,sBAAsB;IAC/F,8EAA8E,EAAE,yBAAyB;IACzG,YAAY,EAAE,SAAS;IACvB,gFAAgF,EAAE,qCAAqC;IACvH,kDAAkD,EAAE,uBAAuB;IAC3E,6CAA6C,EAAE,4BAA4B;IAC3E,QAAQ,EAAE,IAAI;IACd,2CAA2C,EAAE,iBAAiB;IAC9D,cAAc,EAAE,QAAQ;IACxB,uCAAuC,EAAE,iBAAiB;IAC1D,QAAQ,EAAE,IAAI;IACd,mDAAmD,EAAE,yBAAyB;IAC9E,8BAA8B,EAAE,aAAa;IAC7C,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,UAAU;IAC5B,wCAAwC,EAAE,qBAAqB;IAC/D,mBAAmB,EAAE,UAAU;CAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-dialog.zh-TW.d.ts","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-TW.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyBxD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** @file zh-TW translation of the settings-dialog chrome keys (see `index.ts`). */
|
|
2
|
+
export const SETTINGS_DIALOG_ZH_TW = {
|
|
3
|
+
"Choose Local CLI or BYOK.": "選擇本機 CLI 或 BYOK。",
|
|
4
|
+
"Instructions": "指令",
|
|
5
|
+
"Applied to every assistant conversation in this workspace.": "套用於此工作區中的每一次助理對話。",
|
|
6
|
+
"Notifications": "通知",
|
|
7
|
+
"How you're told a task finished. Saved per operator, not per workspace.": "工作完成時如何通知你。依操作者儲存,而非依工作區儲存。",
|
|
8
|
+
"Privacy": "隱私",
|
|
9
|
+
"Dialog appearance": "對話方塊外觀",
|
|
10
|
+
"Theme and accent color for this settings surface. Saved per operator.": "此設定介面的主題與強調色,依操作者儲存。",
|
|
11
|
+
"Admin interface language. Applies to this settings panel's tab content only.": "管理介面語言,僅適用於此設定面板的分頁內容。",
|
|
12
|
+
"MCP server": "MCP 伺服器",
|
|
13
|
+
"Connect an MCP client. Showing sample output — not yet wired to a live server.": "連接一個 MCP 用戶端。目前顯示的是範例輸出——尚未接上實際伺服器。",
|
|
14
|
+
"API keys for image, video, and audio generation.": "用於產生圖片、影片與音訊的 API 金鑰。",
|
|
15
|
+
"Third-party accounts and APIs via Composio.": "透過 Composio 串接的第三方帳戶與 API。",
|
|
16
|
+
"Memory": "記憶",
|
|
17
|
+
"Saved facts and context for future chats.": "為日後對話保存的事實與脈絡資訊。",
|
|
18
|
+
"External MCP": "外部 MCP",
|
|
19
|
+
"Add MCP tools from external services.": "從外部服務新增 MCP 工具。",
|
|
20
|
+
"Skills": "技能",
|
|
21
|
+
"Custom skills your assistant can invoke mid-task.": "你的助理可以在工作進行中呼叫的自訂技能。",
|
|
22
|
+
"Version and runtime details.": "版本與執行環境詳細資料。",
|
|
23
|
+
"Version": "版本",
|
|
24
|
+
"Open as dialog": "以對話方塊開啟",
|
|
25
|
+
"No MCP config store to connect to yet.": "目前還沒有可連接的 MCP 設定儲存區。",
|
|
26
|
+
"All changes saved": "所有變更皆已儲存",
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=settings-dialog.zh-TW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-dialog.zh-TW.js","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-TW.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,2BAA2B,EAAE,kBAAkB;IAC/C,cAAc,EAAE,IAAI;IACpB,4DAA4D,EAAE,mBAAmB;IACjF,eAAe,EAAE,IAAI;IACrB,yEAAyE,EAAE,6BAA6B;IACxG,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,QAAQ;IAC7B,uEAAuE,EAAE,sBAAsB;IAC/F,8EAA8E,EAAE,wBAAwB;IACxG,YAAY,EAAE,SAAS;IACvB,gFAAgF,EAAE,qCAAqC;IACvH,kDAAkD,EAAE,uBAAuB;IAC3E,6CAA6C,EAAE,4BAA4B;IAC3E,QAAQ,EAAE,IAAI;IACd,2CAA2C,EAAE,kBAAkB;IAC/D,cAAc,EAAE,QAAQ;IACxB,uCAAuC,EAAE,iBAAiB;IAC1D,QAAQ,EAAE,IAAI;IACd,mDAAmD,EAAE,sBAAsB;IAC3E,8BAA8B,EAAE,cAAc;IAC9C,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,SAAS;IAC3B,wCAAwC,EAAE,sBAAsB;IAChE,mBAAmB,EAAE,UAAU;CAChC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { ClockPort, IdGeneratorPort, JsonValue, UUID } from "../core/ports.js";
|
|
2
|
+
import type { PrincipalRepoPort } from "../identity/index.js";
|
|
3
|
+
import type { SettingsRepoPort } from "./ports.js";
|
|
4
|
+
import { type SettingValueSchema } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* @file The one boot-time "register these definitions if they aren't already,
|
|
7
|
+
* and keep their defaults honest if they are" loop, shared by every registrar
|
|
8
|
+
* that backs a settings-dialog tab.
|
|
9
|
+
*
|
|
10
|
+
* This exists because the loop is genuinely identical everywhere it appears —
|
|
11
|
+
* the first host to use this library had one hand-written copy per tab before
|
|
12
|
+
* this helper existed, and each additional tab would have added another. A
|
|
13
|
+
* host's per-tab modules keep what actually differs (the namespace, the key
|
|
14
|
+
* list, each key's schema and default) and hand it to
|
|
15
|
+
* `ensureSettingDefinitions` as data.
|
|
16
|
+
*
|
|
17
|
+
* Note what is NOT abstracted here: a host may have domain-owned settings
|
|
18
|
+
* modules (comments, SEO, a public-assistant surface) with their own similar
|
|
19
|
+
* loop, deliberately left alone. Those are typically `ownerKind: "site"` and
|
|
20
|
+
* pair their registration with bespoke get/set services and their own
|
|
21
|
+
* permissions; the generic settings-dialog tabs this helper serves are
|
|
22
|
+
* `ownerKind: "core"` and read/write through the generic settings ledger
|
|
23
|
+
* routes with no bespoke service at all. Folding both shapes into one helper
|
|
24
|
+
* would mean parameterising the differences that matter.
|
|
25
|
+
*/
|
|
26
|
+
/** One key's registration data — everything `registerDefinitions` needs that
|
|
27
|
+
* varies per key. */
|
|
28
|
+
export interface SettingDefinitionSpec {
|
|
29
|
+
key: string;
|
|
30
|
+
schema: SettingValueSchema;
|
|
31
|
+
/**
|
|
32
|
+
* Every non-secret definition needs a NON-NULL default.
|
|
33
|
+
* `validateDefinitionInput` (`settings.ts`) rejects a null `default_json` for
|
|
34
|
+
* every non-secret definition, full stop — there is no nullable-schema
|
|
35
|
+
* carve-out in the actual check, regardless of what a nullable schema might
|
|
36
|
+
* suggest. A field that is nullable in spirit needs a sentinel instead (a
|
|
37
|
+
* distinguished non-null value the host's own code treats as "unset"). See
|
|
38
|
+
* `docs/decisions/settings-json-schema-variant.md` for why this diverges
|
|
39
|
+
* from this ledger's own originating design notes.
|
|
40
|
+
*
|
|
41
|
+
* Typed `Exclude<…, null>` rather than a bare primitive union: `DefinitionInput`
|
|
42
|
+
* already accepts any `JsonValue`, and a `{ type: "json" }` definition needs an
|
|
43
|
+
* array/object default. Excluding `null` at the type level keeps the non-null
|
|
44
|
+
* rule above a compile error rather than a boot-time throw.
|
|
45
|
+
*/
|
|
46
|
+
defaultValue: Exclude<JsonValue, null>;
|
|
47
|
+
/**
|
|
48
|
+
* Bitmask over `SCOPE_BIT`. Defaults to `workspace`, which is what most
|
|
49
|
+
* settings-dialog tabs want: one operator's choice shouldn't silently
|
|
50
|
+
* become every workspace's. Pass `SCOPE_BIT.user` (or a mask including it)
|
|
51
|
+
* for a genuinely per-operator preference.
|
|
52
|
+
*/
|
|
53
|
+
scopes?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface EnsureSettingDefinitionsDeps {
|
|
56
|
+
settingsRepo: SettingsRepoPort;
|
|
57
|
+
clock: ClockPort;
|
|
58
|
+
ids: IdGeneratorPort;
|
|
59
|
+
principals: PrincipalRepoPort;
|
|
60
|
+
}
|
|
61
|
+
export interface EnsureSettingDefinitionsInput {
|
|
62
|
+
namespace: string;
|
|
63
|
+
definitions: readonly SettingDefinitionSpec[];
|
|
64
|
+
/** The trusted boot-time actor these writes are attributed to (mirrors a
|
|
65
|
+
* host's other boot-time registrars' identical convention). */
|
|
66
|
+
systemPrincipalId: UUID;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Idempotently registers every definition in `input.definitions` under
|
|
70
|
+
* `input.namespace`, and reconciles the stored default of any that already
|
|
71
|
+
* exist to the default source declares. Safe to call on every boot.
|
|
72
|
+
*
|
|
73
|
+
* The reconcile half matters as much as the register half: registration is
|
|
74
|
+
* once-only, so without it a `defaultValue` edited in source never reaches an
|
|
75
|
+
* install that has booted before. Code owns `core` defaults; the stored row
|
|
76
|
+
* does not get to outvote it.
|
|
77
|
+
*
|
|
78
|
+
* All definitions registered here are `ownerKind: "core"` — a settings-dialog
|
|
79
|
+
* tab configures a platform-level capability, not per-site content. Per the
|
|
80
|
+
* namespace-fence CHECK, `owner_kind='core'` requires `workspaceId: null` at
|
|
81
|
+
* the DEFINITION level regardless of which workspace is booting, while the
|
|
82
|
+
* `scopes` bitmask still lets each workspace (or user) hold its own VALUE row.
|
|
83
|
+
*
|
|
84
|
+
* @complexity O(n) in the number of definitions — each is one
|
|
85
|
+
* skip-if-registered lookup plus at most one `registerDefinitions` call.
|
|
86
|
+
*/
|
|
87
|
+
export declare function ensureSettingDefinitions(deps: EnsureSettingDefinitionsDeps, input: EnsureSettingDefinitionsInput): Promise<void>;
|
|
88
|
+
//# sourceMappingURL=ensure-definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-definitions.d.ts","sourceRoot":"","sources":["../../src/settings/ensure-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;sBACsB;AACtB,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;IAC3B;;;;;;;;;;;;;;OAcG;IACH,YAAY,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,eAAe,CAAC;IACrB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC9C;oEACgE;IAChE,iBAAiB,EAAE,IAAI,CAAC;CACzB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,4BAA4B,EAClC,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,IAAI,CAAC,CAqEf"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { resolveDefinitionRaw } from "./settings.js";
|
|
2
|
+
import { SCOPE_BIT } from "./types.js";
|
|
3
|
+
import { reconcileDefinitionDefault, registerDefinitions } from "./write-service.js";
|
|
4
|
+
/** Boot-time infra work is trusted by construction — mirrors every other
|
|
5
|
+
* `ensure*SettingDefinitions`'s identical shim. */
|
|
6
|
+
const alwaysAllowBoot = async () => ({ allowed: true, reason: "system_boot" });
|
|
7
|
+
/**
|
|
8
|
+
* Idempotently registers every definition in `input.definitions` under
|
|
9
|
+
* `input.namespace`, and reconciles the stored default of any that already
|
|
10
|
+
* exist to the default source declares. Safe to call on every boot.
|
|
11
|
+
*
|
|
12
|
+
* The reconcile half matters as much as the register half: registration is
|
|
13
|
+
* once-only, so without it a `defaultValue` edited in source never reaches an
|
|
14
|
+
* install that has booted before. Code owns `core` defaults; the stored row
|
|
15
|
+
* does not get to outvote it.
|
|
16
|
+
*
|
|
17
|
+
* All definitions registered here are `ownerKind: "core"` — a settings-dialog
|
|
18
|
+
* tab configures a platform-level capability, not per-site content. Per the
|
|
19
|
+
* namespace-fence CHECK, `owner_kind='core'` requires `workspaceId: null` at
|
|
20
|
+
* the DEFINITION level regardless of which workspace is booting, while the
|
|
21
|
+
* `scopes` bitmask still lets each workspace (or user) hold its own VALUE row.
|
|
22
|
+
*
|
|
23
|
+
* @complexity O(n) in the number of definitions — each is one
|
|
24
|
+
* skip-if-registered lookup plus at most one `registerDefinitions` call.
|
|
25
|
+
*/
|
|
26
|
+
export async function ensureSettingDefinitions(deps, input) {
|
|
27
|
+
const writeDeps = {
|
|
28
|
+
repo: deps.settingsRepo,
|
|
29
|
+
clock: deps.clock,
|
|
30
|
+
ids: deps.ids,
|
|
31
|
+
authorize: alwaysAllowBoot,
|
|
32
|
+
principals: deps.principals,
|
|
33
|
+
};
|
|
34
|
+
for (const def of input.definitions) {
|
|
35
|
+
const existing = await resolveDefinitionRaw({ repo: deps.settingsRepo }, { namespace: input.namespace, key: def.key, workspaceId: null });
|
|
36
|
+
if (existing) {
|
|
37
|
+
// Registration is once-only, but the DEFAULT is not. Without this, a
|
|
38
|
+
// `defaultValue` changed in source is unreachable in any install that
|
|
39
|
+
// has already booted — the stored `default_json` from first boot keeps
|
|
40
|
+
// winning, for every settings-dialog tab. See `reconcileDefinitionDefault`
|
|
41
|
+
// for the bug this closes.
|
|
42
|
+
//
|
|
43
|
+
// Three slots are deliberately left alone rather than reconciled:
|
|
44
|
+
// a non-`active` row (deprecated/tombstoned) is not ours to rewrite; a
|
|
45
|
+
// non-`core` row is operator-owned; and a row whose identity differs
|
|
46
|
+
// from the slot we asked for means `resolveDefinitionRaw` followed an
|
|
47
|
+
// alias, so rewriting it would silently change a DIFFERENT definition's
|
|
48
|
+
// default. `reconcileDefinitionDefault` would throw on the first two —
|
|
49
|
+
// this skips them quietly because boot must not fail on them.
|
|
50
|
+
const isSameSlot = existing.namespace === input.namespace && existing.key === def.key;
|
|
51
|
+
if (existing.status === "active" && existing.ownerKind === "core" && isSameSlot) {
|
|
52
|
+
await reconcileDefinitionDefault({
|
|
53
|
+
deps: writeDeps,
|
|
54
|
+
input: {
|
|
55
|
+
namespace: input.namespace,
|
|
56
|
+
key: def.key,
|
|
57
|
+
workspaceId: null,
|
|
58
|
+
defaultValue: def.defaultValue,
|
|
59
|
+
callerPrincipalId: input.systemPrincipalId,
|
|
60
|
+
authWorkspaceId: input.systemPrincipalId,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
await registerDefinitions({
|
|
67
|
+
deps: writeDeps,
|
|
68
|
+
input: {
|
|
69
|
+
callerPrincipalId: input.systemPrincipalId,
|
|
70
|
+
// Platform (core) definitions aren't scoped to any one workspace, but
|
|
71
|
+
// `registerDefinitions`'s authorization check still needs a workspace
|
|
72
|
+
// context to authorize against — the seeded workspace mirrors every
|
|
73
|
+
// other boot-time registrar's identical `authWorkspaceId` shape.
|
|
74
|
+
authWorkspaceId: input.systemPrincipalId,
|
|
75
|
+
definitions: [
|
|
76
|
+
{
|
|
77
|
+
namespace: input.namespace,
|
|
78
|
+
key: def.key,
|
|
79
|
+
ownerKind: "core",
|
|
80
|
+
workspaceId: null,
|
|
81
|
+
schema: def.schema,
|
|
82
|
+
defaultValue: def.defaultValue,
|
|
83
|
+
scopes: def.scopes ?? SCOPE_BIT.workspace,
|
|
84
|
+
secret: false,
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=ensure-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-definitions.js","sourceRoot":"","sources":["../../src/settings/ensure-definitions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAA2B,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAoB,MAAM,oBAAoB,CAAC;AAqEvG;oDACoD;AACpD,MAAM,eAAe,GAAgB,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAE5F;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAkC,EAClC,KAAoC;IAEpC,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,IAAI,CAAC,YAAY;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,eAAe;QAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EAC3B,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAChE,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,qEAAqE;YACrE,sEAAsE;YACtE,uEAAuE;YACvE,2EAA2E;YAC3E,2BAA2B;YAC3B,EAAE;YACF,kEAAkE;YAClE,uEAAuE;YACvE,qEAAqE;YACrE,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,8DAA8D;YAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC;YACtF,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChF,MAAM,0BAA0B,CAAC;oBAC/B,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,WAAW,EAAE,IAAI;wBACjB,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;wBAC1C,eAAe,EAAE,KAAK,CAAC,iBAAiB;qBACzC;iBACF,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,mBAAmB,CAAC;YACxB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACL,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,sEAAsE;gBACtE,sEAAsE;gBACtE,oEAAoE;gBACpE,iEAAiE;gBACjE,eAAe,EAAE,KAAK,CAAC,iBAAiB;gBACxC,WAAW,EAAE;oBACX;wBACE,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,SAAS,EAAE,MAAM;wBACjB,WAAW,EAAE,IAAI;wBACjB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,SAAS;wBACzC,MAAM,EAAE,KAAK;qBACd;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Typed domain errors for `settings`.
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* One class per error this module originates, mirroring the
|
|
6
|
+
* `PresentationSettingsNotFoundError`/`PresentationSettingsValidationError`
|
|
7
|
+
* convention a host's own presentation-settings module may use. Route
|
|
8
|
+
* handlers map these 1:1 to HTTP codes.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DefinitionInvalidError extends Error {
|
|
11
|
+
}
|
|
12
|
+
export declare class ScopeNotAllowedError extends Error {
|
|
13
|
+
}
|
|
14
|
+
export declare class SecretNotSupportedError extends Error {
|
|
15
|
+
}
|
|
16
|
+
export declare class ValueValidationFailedError extends Error {
|
|
17
|
+
}
|
|
18
|
+
export declare class RenameRetypeConflictError extends Error {
|
|
19
|
+
}
|
|
20
|
+
export declare class AliasDepthExceededError extends Error {
|
|
21
|
+
}
|
|
22
|
+
export declare class DefinitionTombstonedError extends Error {
|
|
23
|
+
}
|
|
24
|
+
export declare class DefinitionNotFoundError extends Error {
|
|
25
|
+
}
|
|
26
|
+
export declare class PurgeRequiredError extends Error {
|
|
27
|
+
}
|
|
28
|
+
export declare class ForbiddenError extends Error {
|
|
29
|
+
}
|
|
30
|
+
/** REQ-13: the target `principalId` does not resolve to an active principal in the request's workspace (INV-09). */
|
|
31
|
+
export declare class PrincipalNotFoundError extends Error {
|
|
32
|
+
readonly principalId: string;
|
|
33
|
+
readonly workspaceId: string;
|
|
34
|
+
constructor(message: string, principalId: string, workspaceId: string);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/settings/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAClD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;AACxD,qBAAa,yBAA0B,SAAQ,KAAK;CAAG;AACvD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,yBAA0B,SAAQ,KAAK;CAAG;AACvD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAChD,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAE5C,oHAAoH;AACpH,qBAAa,sBAAuB,SAAQ,KAAK;aAG7B,WAAW,EAAE,MAAM;aACnB,WAAW,EAAE,MAAM;gBAFnC,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM;CAItC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Typed domain errors for `settings`.
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* One class per error this module originates, mirroring the
|
|
6
|
+
* `PresentationSettingsNotFoundError`/`PresentationSettingsValidationError`
|
|
7
|
+
* convention a host's own presentation-settings module may use. Route
|
|
8
|
+
* handlers map these 1:1 to HTTP codes.
|
|
9
|
+
*/
|
|
10
|
+
export class DefinitionInvalidError extends Error {
|
|
11
|
+
}
|
|
12
|
+
export class ScopeNotAllowedError extends Error {
|
|
13
|
+
}
|
|
14
|
+
export class SecretNotSupportedError extends Error {
|
|
15
|
+
}
|
|
16
|
+
export class ValueValidationFailedError extends Error {
|
|
17
|
+
}
|
|
18
|
+
export class RenameRetypeConflictError extends Error {
|
|
19
|
+
}
|
|
20
|
+
export class AliasDepthExceededError extends Error {
|
|
21
|
+
}
|
|
22
|
+
export class DefinitionTombstonedError extends Error {
|
|
23
|
+
}
|
|
24
|
+
export class DefinitionNotFoundError extends Error {
|
|
25
|
+
}
|
|
26
|
+
export class PurgeRequiredError extends Error {
|
|
27
|
+
}
|
|
28
|
+
export class ForbiddenError extends Error {
|
|
29
|
+
}
|
|
30
|
+
/** REQ-13: the target `principalId` does not resolve to an active principal in the request's workspace (INV-09). */
|
|
31
|
+
export class PrincipalNotFoundError extends Error {
|
|
32
|
+
principalId;
|
|
33
|
+
workspaceId;
|
|
34
|
+
constructor(message, principalId, workspaceId) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.principalId = principalId;
|
|
37
|
+
this.workspaceId = workspaceId;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/settings/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;CAAG;AACpD,MAAM,OAAO,oBAAqB,SAAQ,KAAK;CAAG;AAClD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG;AACrD,MAAM,OAAO,0BAA2B,SAAQ,KAAK;CAAG;AACxD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;CAAG;AACvD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG;AACrD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;CAAG;AACvD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG;AACrD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;CAAG;AAChD,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAE5C,oHAAoH;AACpH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAG7B;IACA;IAHlB,YACE,OAAe,EACC,WAAmB,EACnB,WAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;IAGrC,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Public surface (barrel) for the `settings` library.
|
|
3
|
+
*
|
|
4
|
+
* A module's public contract is its `index.ts` — deep imports from outside
|
|
5
|
+
* this directory should go through here.
|
|
6
|
+
*
|
|
7
|
+
* A host's `repo.sqlite.ts` adapter and any one-time brownfield migration of a
|
|
8
|
+
* host's own legacy pre-ledger settings table are NOT part of this package —
|
|
9
|
+
* a fresh host has no legacy data to migrate, and a SQLite adapter names a
|
|
10
|
+
* host's own database schema. Both stay host-side, composed against the
|
|
11
|
+
* `SettingsRepoPort` this barrel exports.
|
|
12
|
+
*/
|
|
13
|
+
export { SCOPE_BIT, type SettingScope, type SettingOwnerKind, type DefinitionStatus, type ValueState, type RevisionEntityKind, type RevisionOp, type SettingValueSchema, type SettingDefinitionRecord, type SettingValueRecord, type SettingRevisionRecord, type SettingScopeContext, } from "./types.js";
|
|
14
|
+
export { DefinitionInvalidError, ScopeNotAllowedError, SecretNotSupportedError, ValueValidationFailedError, RenameRetypeConflictError, AliasDepthExceededError, DefinitionTombstonedError, DefinitionNotFoundError, PurgeRequiredError, ForbiddenError, PrincipalNotFoundError, } from "./errors.js";
|
|
15
|
+
export type { SettingsRepoPort } from "./ports.js";
|
|
16
|
+
export { InMemorySettingsRepo } from "./repo.memory.js";
|
|
17
|
+
export { type DefinitionInput, validateDefinitionInput, validateValueAgainstSchema, registerCoercer, invalidateDefinitionNamespaceCache, invalidateWorkspaceSettingsCache, resolveDefinitionRaw, resolveDefinition, type ResolvedSetting, getEffective, } from "./settings.js";
|
|
18
|
+
export { type AuthorizeFn, type SettingsWriteServiceDeps, deriveRequiredPermission, type RegisterDefinitionsRequired, registerDefinitions, type SetValueRequired, set, type ClearValueRequired, clear, type ResetNamespaceRequired, resetNamespace, type RenameDefinitionRequired, renameDefinition, type RetypeDefinitionRequired, retypeDefinition, type ReconcileDefinitionDefaultRequired, reconcileDefinitionDefault, type DeprecateDefinitionRequired, deprecateDefinition, type TombstoneDefinitionRequired, tombstoneDefinition, } from "./write-service.js";
|
|
19
|
+
export { type PurgeServiceDeps, type PurgeTenantSettingsRequired, purgeTenantSettings, } from "./purge-service.js";
|
|
20
|
+
export { type ChangeFeedViewer, isRevisionVisibleTo, type ChangeFeedBatch, collectChangedNamespaces, } from "./change-feed.js";
|
|
21
|
+
export { type DefinitionOpRequestItem, type DefinitionOpContext, type DefinitionOpHandler, NON_REGISTER_DEFINITION_OP_NAMES, type NonRegisterDefinitionOp, parseNonRegisterDefinitionOp, NON_REGISTER_DEFINITION_OPS, } from "./definitions-dispatch.js";
|
|
22
|
+
export { type SettingDefinitionSpec, type EnsureSettingDefinitionsDeps, type EnsureSettingDefinitionsInput, ensureSettingDefinitions, } from "./ensure-definitions.js";
|
|
23
|
+
export { INSTRUCTIONS_NAMESPACE, NOTIFICATIONS_NAMESPACE, PRIVACY_NAMESPACE, APPEARANCE_NAMESPACE, LANGUAGE_NAMESPACE, type EnsureSettingsUiTabDefinitionsInput, ensureSettingsUiTabDefinitions, } from "./ui-tab-definitions.js";
|
|
24
|
+
export { type AgentWritablePreference, AGENT_PREFERENCE_WRITE_SCOPE, AGENT_WRITABLE_PREFERENCES, AGENT_WRITABLE_PREFERENCE_IDS, resolveAgentWritablePreference, AGENT_PREFERENCE_REQUIRED_SCOPE_BIT, } from "./agent-writable-preferences.js";
|
|
25
|
+
/** The agent-tool catalog for this domain. */
|
|
26
|
+
export { getSettingsAgentToolCatalog, type AgentToolDefinition as SettingsAgentToolDefinition, type AgentToolSideEffect as SettingsAgentToolSideEffect, } from "./agent-tools.js";
|
|
27
|
+
/**
|
|
28
|
+
* The agent-tool wiring for this domain.
|
|
29
|
+
*
|
|
30
|
+
* `SettingsToolDeps` is declared structurally rather than derived from any host's request-scoped
|
|
31
|
+
* dependency bag, which is what lets a host satisfy it by passing whatever object it already has —
|
|
32
|
+
* the shape is the contract, so no host type needs to be named here.
|
|
33
|
+
*/
|
|
34
|
+
export { buildSettingsRegistrations, settingsDerivedRisk, type SettingsToolDeps, } from "./tool-registrations.js";
|
|
35
|
+
/** The settings-dialog chrome copy (24 generic tab labels/subtitles), shared across every host. */
|
|
36
|
+
export { SETTINGS_DIALOG_DICTIONARIES, translateSettingsDialog } from "./dictionaries/index.js";
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EACL,KAAK,eAAe,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,kCAAkC,EAClC,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,eAAe,EACpB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,GAAG,EACH,KAAK,kBAAkB,EACvB,KAAK,EACL,KAAK,sBAAsB,EAC3B,cAAc,EACd,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,KAAK,kCAAkC,EACvC,0BAA0B,EAC1B,KAAK,2BAA2B,EAChC,mBAAmB,EACnB,KAAK,2BAA2B,EAChC,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,EAChC,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,eAAe,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,gCAAgC,EAChC,KAAK,uBAAuB,EAC5B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,mCAAmC,EACxC,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,KAAK,uBAAuB,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,8CAA8C;AAC9C,OAAO,EACL,2BAA2B,EAC3B,KAAK,mBAAmB,IAAI,2BAA2B,EACvD,KAAK,mBAAmB,IAAI,2BAA2B,GACxD,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,mGAAmG;AACnG,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Public surface (barrel) for the `settings` library.
|
|
3
|
+
*
|
|
4
|
+
* A module's public contract is its `index.ts` — deep imports from outside
|
|
5
|
+
* this directory should go through here.
|
|
6
|
+
*
|
|
7
|
+
* A host's `repo.sqlite.ts` adapter and any one-time brownfield migration of a
|
|
8
|
+
* host's own legacy pre-ledger settings table are NOT part of this package —
|
|
9
|
+
* a fresh host has no legacy data to migrate, and a SQLite adapter names a
|
|
10
|
+
* host's own database schema. Both stay host-side, composed against the
|
|
11
|
+
* `SettingsRepoPort` this barrel exports.
|
|
12
|
+
*/
|
|
13
|
+
export { SCOPE_BIT, } from "./types.js";
|
|
14
|
+
export { DefinitionInvalidError, ScopeNotAllowedError, SecretNotSupportedError, ValueValidationFailedError, RenameRetypeConflictError, AliasDepthExceededError, DefinitionTombstonedError, DefinitionNotFoundError, PurgeRequiredError, ForbiddenError, PrincipalNotFoundError, } from "./errors.js";
|
|
15
|
+
export { InMemorySettingsRepo } from "./repo.memory.js";
|
|
16
|
+
export { validateDefinitionInput, validateValueAgainstSchema, registerCoercer, invalidateDefinitionNamespaceCache, invalidateWorkspaceSettingsCache, resolveDefinitionRaw, resolveDefinition, getEffective, } from "./settings.js";
|
|
17
|
+
export { deriveRequiredPermission, registerDefinitions, set, clear, resetNamespace, renameDefinition, retypeDefinition, reconcileDefinitionDefault, deprecateDefinition, tombstoneDefinition, } from "./write-service.js";
|
|
18
|
+
export { purgeTenantSettings, } from "./purge-service.js";
|
|
19
|
+
export { isRevisionVisibleTo, collectChangedNamespaces, } from "./change-feed.js";
|
|
20
|
+
export { NON_REGISTER_DEFINITION_OP_NAMES, parseNonRegisterDefinitionOp, NON_REGISTER_DEFINITION_OPS, } from "./definitions-dispatch.js";
|
|
21
|
+
export { ensureSettingDefinitions, } from "./ensure-definitions.js";
|
|
22
|
+
export { INSTRUCTIONS_NAMESPACE, NOTIFICATIONS_NAMESPACE, PRIVACY_NAMESPACE, APPEARANCE_NAMESPACE, LANGUAGE_NAMESPACE, ensureSettingsUiTabDefinitions, } from "./ui-tab-definitions.js";
|
|
23
|
+
export { AGENT_PREFERENCE_WRITE_SCOPE, AGENT_WRITABLE_PREFERENCES, AGENT_WRITABLE_PREFERENCE_IDS, resolveAgentWritablePreference, AGENT_PREFERENCE_REQUIRED_SCOPE_BIT, } from "./agent-writable-preferences.js";
|
|
24
|
+
/** The agent-tool catalog for this domain. */
|
|
25
|
+
export { getSettingsAgentToolCatalog, } from "./agent-tools.js";
|
|
26
|
+
/**
|
|
27
|
+
* The agent-tool wiring for this domain.
|
|
28
|
+
*
|
|
29
|
+
* `SettingsToolDeps` is declared structurally rather than derived from any host's request-scoped
|
|
30
|
+
* dependency bag, which is what lets a host satisfy it by passing whatever object it already has —
|
|
31
|
+
* the shape is the contract, so no host type needs to be named here.
|
|
32
|
+
*/
|
|
33
|
+
export { buildSettingsRegistrations, settingsDerivedRisk, } from "./tool-registrations.js";
|
|
34
|
+
/** The settings-dialog chrome copy (24 generic tab labels/subtitles), shared across every host. */
|
|
35
|
+
export { SETTINGS_DIALOG_DICTIONARIES, translateSettingsDialog } from "./dictionaries/index.js";
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,SAAS,GAYV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAEL,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,kCAAkC,EAClC,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EAEjB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAGL,wBAAwB,EAExB,mBAAmB,EAEnB,GAAG,EAEH,KAAK,EAEL,cAAc,EAEd,gBAAgB,EAEhB,gBAAgB,EAEhB,0BAA0B,EAE1B,mBAAmB,EAEnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,mBAAmB,EAEnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAIL,gCAAgC,EAEhC,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAIL,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAElB,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,8CAA8C;AAC9C,OAAO,EACL,2BAA2B,GAG5B,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AAEjC,mGAAmG;AACnG,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { UUID } from "../core/ports.js";
|
|
2
|
+
import type { SettingDefinitionRecord, SettingRevisionRecord, SettingValueRecord } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* @file Port contract for the `settings` library.
|
|
5
|
+
*
|
|
6
|
+
* Purpose:
|
|
7
|
+
* Dependency-inversion seam (port/adapter rule-of-two) for the 5 settings tables.
|
|
8
|
+
* Deliberately does NOT declare a principal-lookup method — REQ-13's
|
|
9
|
+
* target-principal check reuses `identity.PrincipalRepoPort.findById`
|
|
10
|
+
* directly (reuse, not a new port).
|
|
11
|
+
*
|
|
12
|
+
* `transaction` gives `write-service.ts`/`purge-service.ts` the same-tx
|
|
13
|
+
* guarantee INV-01/INV-06 depend on (value/definition row + its revision row
|
|
14
|
+
* must commit together, or not at all).
|
|
15
|
+
*
|
|
16
|
+
* Interfaces and types only — no feature logic.
|
|
17
|
+
*/
|
|
18
|
+
export interface SettingsRepoPort {
|
|
19
|
+
findActiveDefinition(required: {
|
|
20
|
+
namespace: string;
|
|
21
|
+
key: string;
|
|
22
|
+
workspaceId: UUID | null;
|
|
23
|
+
}): Promise<SettingDefinitionRecord | null>;
|
|
24
|
+
findDefinitionBySettingId(required: {
|
|
25
|
+
settingId: UUID;
|
|
26
|
+
version?: number;
|
|
27
|
+
}): Promise<SettingDefinitionRecord | null>;
|
|
28
|
+
listActiveDefinitions(required: {
|
|
29
|
+
workspaceId: UUID | null;
|
|
30
|
+
}): Promise<SettingDefinitionRecord[]>;
|
|
31
|
+
saveDefinition(record: SettingDefinitionRecord): Promise<void>;
|
|
32
|
+
getGlobalValue(settingId: UUID): Promise<SettingValueRecord | null>;
|
|
33
|
+
getWorkspaceValue(required: {
|
|
34
|
+
workspaceId: UUID;
|
|
35
|
+
settingId: UUID;
|
|
36
|
+
}): Promise<SettingValueRecord | null>;
|
|
37
|
+
getUserValue(required: {
|
|
38
|
+
workspaceId: UUID;
|
|
39
|
+
principalId: UUID;
|
|
40
|
+
settingId: UUID;
|
|
41
|
+
}): Promise<SettingValueRecord | null>;
|
|
42
|
+
saveGlobalValue(record: SettingValueRecord): Promise<void>;
|
|
43
|
+
saveWorkspaceValue(record: SettingValueRecord): Promise<void>;
|
|
44
|
+
saveUserValue(record: SettingValueRecord): Promise<void>;
|
|
45
|
+
listWorkspaceValues(required: {
|
|
46
|
+
workspaceId: UUID;
|
|
47
|
+
}): Promise<SettingValueRecord[]>;
|
|
48
|
+
listUserValues(required: {
|
|
49
|
+
workspaceId: UUID;
|
|
50
|
+
principalId: UUID;
|
|
51
|
+
}): Promise<SettingValueRecord[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Every `setting_values_user` row for a workspace, across ALL principals
|
|
54
|
+
* (not just one) — needed by `purge-service.ts`'s full-tenant teardown path,
|
|
55
|
+
* which must clear the FK-blocking `setting_values_user` rows
|
|
56
|
+
* for every principal in the workspace, not just one caller-known id.
|
|
57
|
+
*/
|
|
58
|
+
listUserValuesByWorkspace(required: {
|
|
59
|
+
workspaceId: UUID;
|
|
60
|
+
}): Promise<SettingValueRecord[]>;
|
|
61
|
+
deleteWorkspaceValue(required: {
|
|
62
|
+
workspaceId: UUID;
|
|
63
|
+
settingId: UUID;
|
|
64
|
+
}): Promise<void>;
|
|
65
|
+
deleteUserValue(required: {
|
|
66
|
+
workspaceId: UUID;
|
|
67
|
+
principalId: UUID;
|
|
68
|
+
settingId: UUID;
|
|
69
|
+
}): Promise<void>;
|
|
70
|
+
/** Appends a revision and returns its assigned `seq` (used to stamp the paired value row). */
|
|
71
|
+
appendRevision(record: Omit<SettingRevisionRecord, "seq">): Promise<number>;
|
|
72
|
+
listRevisions(required: {
|
|
73
|
+
settingId: UUID;
|
|
74
|
+
}): Promise<SettingRevisionRecord[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Revisions with `seq` strictly greater than `sinceSeq`, oldest first, capped at `limit`, and
|
|
77
|
+
* restricted to those `workspaceId` could possibly care about.
|
|
78
|
+
*
|
|
79
|
+
* Exists for change detection across PROCESSES. `seq` is a monotonic autoincrement in the shared
|
|
80
|
+
* database, so a poller in one process observes writes made by another process (e.g. an agent
|
|
81
|
+
* daemon) — a separate OS process with its own connection — without any IPC between them.
|
|
82
|
+
*
|
|
83
|
+
* `limit` bounds a client that reconnects after a long absence: it drains in pages rather than
|
|
84
|
+
* loading an unbounded backlog into memory.
|
|
85
|
+
*
|
|
86
|
+
* **`workspaceId` is a page-sizing predicate, not the disclosure boundary.** The ledger is global
|
|
87
|
+
* — one store holds every workspace's revisions — so without it a `limit`-sized page is filled by
|
|
88
|
+
* whichever tenant writes fastest, and a quiet workspace's own change waits behind a busy
|
|
89
|
+
* neighbour's backlog. That is an observable cross-tenant timing channel and, at sustained write
|
|
90
|
+
* rates above `limit` per poll interval, a feed that never catches up at all. Implementations must
|
|
91
|
+
* match rows whose `workspaceId` is either `null` (platform definitions and `global`-scope values,
|
|
92
|
+
* which every workspace resolves through) or equal to the argument — deliberately a SUPERSET of
|
|
93
|
+
* what `change-feed.ts#isRevisionVisibleTo` permits, which stays the sole authority on disclosure.
|
|
94
|
+
*/
|
|
95
|
+
listRevisionsSince(required: {
|
|
96
|
+
sinceSeq: number;
|
|
97
|
+
limit: number;
|
|
98
|
+
workspaceId: UUID;
|
|
99
|
+
}): Promise<SettingRevisionRecord[]>;
|
|
100
|
+
/** The newest assigned `seq`, or 0 when the ledger is empty — a subscriber's starting cursor. */
|
|
101
|
+
maxRevisionSeq(): Promise<number>;
|
|
102
|
+
/**
|
|
103
|
+
* Runs `fn` with the guarantee that all repo calls inside it commit or roll
|
|
104
|
+
* back together. Every adapter must honour this — it is what makes a
|
|
105
|
+
* composite write like `resetNamespace` all-or-nothing, and the contract
|
|
106
|
+
* suite asserts it against all of them rather than only the durable one.
|
|
107
|
+
*
|
|
108
|
+
* **Not reentrant.** Calling this while another `transaction` on the same
|
|
109
|
+
* repo is open must fail loudly, never silently join. An adapter cannot tell
|
|
110
|
+
* a genuine nested call from an unrelated concurrent one, and joining a
|
|
111
|
+
* stranger's transaction makes it inherit that transaction's rollback. A
|
|
112
|
+
* caller that needs several writes to commit together opens ONE transaction
|
|
113
|
+
* and passes `skipTransaction` to the inner writes.
|
|
114
|
+
*/
|
|
115
|
+
transaction<T>(fn: () => Promise<T>): Promise<T>;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/settings/ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErG;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,CAAC,QAAQ,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;KAC1B,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAC5C,yBAAyB,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAC5C,qBAAqB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAClG,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/D,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACpE,iBAAiB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACxG,YAAY,CAAC,QAAQ,EAAE;QACrB,WAAW,EAAE,IAAI,CAAC;QAClB,WAAW,EAAE,IAAI,CAAC;QAClB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACvC,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,mBAAmB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACpF,cAAc,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClG;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC1F,oBAAoB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,eAAe,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpG,8FAA8F;IAC9F,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,aAAa,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC/E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAAkB,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,IAAI,CAAC;KACnB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrC,iGAAiG;IACjG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/settings/ports.ts"],"names":[],"mappings":""}
|