@vibesdotdev/config 0.0.1
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/README.md +85 -0
- package/SPEC.md +71 -0
- package/dist/adapters/cli/flags.d.ts +75 -0
- package/dist/adapters/cli/flags.d.ts.map +1 -0
- package/dist/adapters/cli/flags.js +221 -0
- package/dist/adapters/cli/flags.js.map +1 -0
- package/dist/adapters/cli/index.d.ts +12 -0
- package/dist/adapters/cli/index.d.ts.map +1 -0
- package/dist/adapters/cli/index.js +9 -0
- package/dist/adapters/cli/index.js.map +1 -0
- package/dist/adapters/cli/mappings.d.ts +17 -0
- package/dist/adapters/cli/mappings.d.ts.map +1 -0
- package/dist/adapters/cli/mappings.js +32 -0
- package/dist/adapters/cli/mappings.js.map +1 -0
- package/dist/adapters/cli/prompts.d.ts +28 -0
- package/dist/adapters/cli/prompts.d.ts.map +1 -0
- package/dist/adapters/cli/prompts.js +55 -0
- package/dist/adapters/cli/prompts.js.map +1 -0
- package/dist/adapters/cli/schemas/flags.schema.d.ts +8 -0
- package/dist/adapters/cli/schemas/flags.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/flags.schema.js +2 -0
- package/dist/adapters/cli/schemas/flags.schema.js.map +1 -0
- package/dist/adapters/cli/schemas/mappings.schema.d.ts +2 -0
- package/dist/adapters/cli/schemas/mappings.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/mappings.schema.js +2 -0
- package/dist/adapters/cli/schemas/mappings.schema.js.map +1 -0
- package/dist/adapters/cli/schemas/prompts.schema.d.ts +5 -0
- package/dist/adapters/cli/schemas/prompts.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/prompts.schema.js +2 -0
- package/dist/adapters/cli/schemas/prompts.schema.js.map +1 -0
- package/dist/adapters/cli/schemas/wizard.schema.d.ts +19 -0
- package/dist/adapters/cli/schemas/wizard.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/wizard.schema.js +2 -0
- package/dist/adapters/cli/schemas/wizard.schema.js.map +1 -0
- package/dist/adapters/cli/wizard.d.ts +33 -0
- package/dist/adapters/cli/wizard.d.ts.map +1 -0
- package/dist/adapters/cli/wizard.js +77 -0
- package/dist/adapters/cli/wizard.js.map +1 -0
- package/dist/browser/index.d.ts +7 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +4 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/cli/settings.descriptor.d.ts +9 -0
- package/dist/cli/settings.descriptor.d.ts.map +1 -0
- package/dist/cli/settings.descriptor.js +18 -0
- package/dist/cli/settings.descriptor.js.map +1 -0
- package/dist/cli/types.d.ts +57 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +9 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/client/index.d.ts +19 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +145 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/storage.d.ts +48 -0
- package/dist/client/storage.d.ts.map +1 -0
- package/dist/client/storage.js +46 -0
- package/dist/client/storage.js.map +1 -0
- package/dist/collection/collection.d.ts +46 -0
- package/dist/collection/collection.d.ts.map +1 -0
- package/dist/collection/collection.js +93 -0
- package/dist/collection/collection.js.map +1 -0
- package/dist/collection/index.d.ts +6 -0
- package/dist/collection/index.d.ts.map +1 -0
- package/dist/collection/index.js +5 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/common/index.d.ts +7 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +4 -0
- package/dist/common/index.js.map +1 -0
- package/dist/config.context.descriptor.d.ts +21 -0
- package/dist/config.context.descriptor.d.ts.map +1 -0
- package/dist/config.context.descriptor.js +11 -0
- package/dist/config.context.descriptor.js.map +1 -0
- package/dist/config.plugin.d.ts +15 -0
- package/dist/config.plugin.d.ts.map +1 -0
- package/dist/config.plugin.js +166 -0
- package/dist/config.plugin.js.map +1 -0
- package/dist/crud/base-types.d.ts +10 -0
- package/dist/crud/base-types.d.ts.map +1 -0
- package/dist/crud/base-types.js +10 -0
- package/dist/crud/base-types.js.map +1 -0
- package/dist/crud/index.d.ts +4 -0
- package/dist/crud/index.d.ts.map +1 -0
- package/dist/crud/index.js +2 -0
- package/dist/crud/index.js.map +1 -0
- package/dist/crud/schemas/base-types.schema.d.ts +19 -0
- package/dist/crud/schemas/base-types.schema.d.ts.map +1 -0
- package/dist/crud/schemas/base-types.schema.js +2 -0
- package/dist/crud/schemas/base-types.schema.js.map +1 -0
- package/dist/crud/schemas/shared.schema.d.ts +13 -0
- package/dist/crud/schemas/shared.schema.d.ts.map +1 -0
- package/dist/crud/schemas/shared.schema.js +2 -0
- package/dist/crud/schemas/shared.schema.js.map +1 -0
- package/dist/crud/shared.d.ts +8 -0
- package/dist/crud/shared.d.ts.map +1 -0
- package/dist/crud/shared.js +8 -0
- package/dist/crud/shared.js.map +1 -0
- package/dist/crud/types.d.ts +250 -0
- package/dist/crud/types.d.ts.map +1 -0
- package/dist/crud/types.js +22 -0
- package/dist/crud/types.js.map +1 -0
- package/dist/docs/environment.docs.descriptor.d.ts +4 -0
- package/dist/docs/environment.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/environment.docs.descriptor.js +383 -0
- package/dist/docs/environment.docs.descriptor.js.map +1 -0
- package/dist/docs/manifests.docs.descriptor.d.ts +4 -0
- package/dist/docs/manifests.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/manifests.docs.descriptor.js +503 -0
- package/dist/docs/manifests.docs.descriptor.js.map +1 -0
- package/dist/docs/validation.docs.descriptor.d.ts +4 -0
- package/dist/docs/validation.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/validation.docs.descriptor.js +441 -0
- package/dist/docs/validation.docs.descriptor.js.map +1 -0
- package/dist/doctor.d.ts +42 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +119 -0
- package/dist/doctor.js.map +1 -0
- package/dist/env.d.ts +28 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +75 -0
- package/dist/env.js.map +1 -0
- package/dist/env.runtime.d.ts +19 -0
- package/dist/env.runtime.d.ts.map +1 -0
- package/dist/env.runtime.js +37 -0
- package/dist/env.runtime.js.map +1 -0
- package/dist/environment/current.d.ts +32 -0
- package/dist/environment/current.d.ts.map +1 -0
- package/dist/environment/current.js +91 -0
- package/dist/environment/current.js.map +1 -0
- package/dist/environment/environment.config.descriptor.d.ts +11 -0
- package/dist/environment/environment.config.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.config.descriptor.js +51 -0
- package/dist/environment/environment.config.descriptor.js.map +1 -0
- package/dist/environment/environment.config.schema.d.ts +47 -0
- package/dist/environment/environment.config.schema.d.ts.map +1 -0
- package/dist/environment/environment.config.schema.js +19 -0
- package/dist/environment/environment.config.schema.js.map +1 -0
- package/dist/environment/environment.local.descriptor.d.ts +11 -0
- package/dist/environment/environment.local.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.local.descriptor.js +42 -0
- package/dist/environment/environment.local.descriptor.js.map +1 -0
- package/dist/environment/environment.plugin.d.ts +9 -0
- package/dist/environment/environment.plugin.d.ts.map +1 -0
- package/dist/environment/environment.plugin.js +27 -0
- package/dist/environment/environment.plugin.js.map +1 -0
- package/dist/environment/environment.production.descriptor.d.ts +10 -0
- package/dist/environment/environment.production.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.production.descriptor.js +37 -0
- package/dist/environment/environment.production.descriptor.js.map +1 -0
- package/dist/environment/environment.staging.descriptor.d.ts +11 -0
- package/dist/environment/environment.staging.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.staging.descriptor.js +22 -0
- package/dist/environment/environment.staging.descriptor.js.map +1 -0
- package/dist/environment/index.d.ts +8 -0
- package/dist/environment/index.d.ts.map +1 -0
- package/dist/environment/index.js +9 -0
- package/dist/environment/index.js.map +1 -0
- package/dist/environment/kinds/environment.default.d.ts +23 -0
- package/dist/environment/kinds/environment.default.d.ts.map +1 -0
- package/dist/environment/kinds/environment.default.js +49 -0
- package/dist/environment/kinds/environment.default.js.map +1 -0
- package/dist/environment/kinds/environment.interface.d.ts +7 -0
- package/dist/environment/kinds/environment.interface.d.ts.map +1 -0
- package/dist/environment/kinds/environment.interface.js +7 -0
- package/dist/environment/kinds/environment.interface.js.map +1 -0
- package/dist/environment/kinds/environment.kind.d.ts +10 -0
- package/dist/environment/kinds/environment.kind.d.ts.map +1 -0
- package/dist/environment/kinds/environment.kind.js +57 -0
- package/dist/environment/kinds/environment.kind.js.map +1 -0
- package/dist/environment/kinds/environment.schema.d.ts +34 -0
- package/dist/environment/kinds/environment.schema.d.ts.map +1 -0
- package/dist/environment/kinds/environment.schema.js +46 -0
- package/dist/environment/kinds/environment.schema.js.map +1 -0
- package/dist/environment/kinds/index.d.ts +8 -0
- package/dist/environment/kinds/index.d.ts.map +1 -0
- package/dist/environment/kinds/index.js +7 -0
- package/dist/environment/kinds/index.js.map +1 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.d.ts +11 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.d.ts.map +1 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.js +2 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.js.map +1 -0
- package/dist/environment/kinds/schemas/environment.schema.d.ts +30 -0
- package/dist/environment/kinds/schemas/environment.schema.d.ts.map +1 -0
- package/dist/environment/kinds/schemas/environment.schema.js +2 -0
- package/dist/environment/kinds/schemas/environment.schema.js.map +1 -0
- package/dist/environment/schemas/current.schema.d.ts +20 -0
- package/dist/environment/schemas/current.schema.d.ts.map +1 -0
- package/dist/environment/schemas/current.schema.js +2 -0
- package/dist/environment/schemas/current.schema.js.map +1 -0
- package/dist/environment/schemas/environment.config.schema.d.ts +4 -0
- package/dist/environment/schemas/environment.config.schema.d.ts.map +1 -0
- package/dist/environment/schemas/environment.config.schema.js +2 -0
- package/dist/environment/schemas/environment.config.schema.js.map +1 -0
- package/dist/extensions/index.d.ts +8 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +8 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/registry.d.ts +41 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +142 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +101 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +8 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/form/core/field-resolver.d.ts +42 -0
- package/dist/form/core/field-resolver.d.ts.map +1 -0
- package/dist/form/core/field-resolver.js +293 -0
- package/dist/form/core/field-resolver.js.map +1 -0
- package/dist/form/core/groups.d.ts +20 -0
- package/dist/form/core/groups.d.ts.map +1 -0
- package/dist/form/core/groups.js +69 -0
- package/dist/form/core/groups.js.map +1 -0
- package/dist/form/core/index.d.ts +8 -0
- package/dist/form/core/index.d.ts.map +1 -0
- package/dist/form/core/index.js +6 -0
- package/dist/form/core/index.js.map +1 -0
- package/dist/form/core/nested-utils.d.ts +40 -0
- package/dist/form/core/nested-utils.d.ts.map +1 -0
- package/dist/form/core/nested-utils.js +98 -0
- package/dist/form/core/nested-utils.js.map +1 -0
- package/dist/form/core/schemas/validation.schema.d.ts +9 -0
- package/dist/form/core/schemas/validation.schema.d.ts.map +1 -0
- package/dist/form/core/schemas/validation.schema.js +2 -0
- package/dist/form/core/schemas/validation.schema.js.map +1 -0
- package/dist/form/core/types.d.ts +103 -0
- package/dist/form/core/types.d.ts.map +1 -0
- package/dist/form/core/types.js +2 -0
- package/dist/form/core/types.js.map +1 -0
- package/dist/form/core/validation.d.ts +23 -0
- package/dist/form/core/validation.d.ts.map +1 -0
- package/dist/form/core/validation.js +103 -0
- package/dist/form/core/validation.js.map +1 -0
- package/dist/form/core/visibility.d.ts +37 -0
- package/dist/form/core/visibility.d.ts.map +1 -0
- package/dist/form/core/visibility.js +128 -0
- package/dist/form/core/visibility.js.map +1 -0
- package/dist/form/index.d.ts +8 -0
- package/dist/form/index.d.ts.map +1 -0
- package/dist/form/index.js +2 -0
- package/dist/form/index.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/cli/index.d.ts +61 -0
- package/dist/loader/cli/index.d.ts.map +1 -0
- package/dist/loader/cli/index.js +263 -0
- package/dist/loader/cli/index.js.map +1 -0
- package/dist/loader/cli/loaders.d.ts +13 -0
- package/dist/loader/cli/loaders.d.ts.map +1 -0
- package/dist/loader/cli/loaders.js +132 -0
- package/dist/loader/cli/loaders.js.map +1 -0
- package/dist/loader/cli/types.d.ts +152 -0
- package/dist/loader/cli/types.d.ts.map +1 -0
- package/dist/loader/cli/types.js +5 -0
- package/dist/loader/cli/types.js.map +1 -0
- package/dist/loader/cli/utils.d.ts +53 -0
- package/dist/loader/cli/utils.d.ts.map +1 -0
- package/dist/loader/cli/utils.js +198 -0
- package/dist/loader/cli/utils.js.map +1 -0
- package/dist/loader/client.d.ts +18 -0
- package/dist/loader/client.d.ts.map +1 -0
- package/dist/loader/client.js +109 -0
- package/dist/loader/client.js.map +1 -0
- package/dist/loader/discovery.d.ts +48 -0
- package/dist/loader/discovery.d.ts.map +1 -0
- package/dist/loader/discovery.js +253 -0
- package/dist/loader/discovery.js.map +1 -0
- package/dist/loader/file-loader.d.ts +17 -0
- package/dist/loader/file-loader.d.ts.map +1 -0
- package/dist/loader/file-loader.js +237 -0
- package/dist/loader/file-loader.js.map +1 -0
- package/dist/loader/index.d.ts +9 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/index.js +8 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/loader/index.server.d.ts +66 -0
- package/dist/loader/index.server.d.ts.map +1 -0
- package/dist/loader/index.server.js +256 -0
- package/dist/loader/index.server.js.map +1 -0
- package/dist/loader/merge.d.ts +88 -0
- package/dist/loader/merge.d.ts.map +1 -0
- package/dist/loader/merge.js +301 -0
- package/dist/loader/merge.js.map +1 -0
- package/dist/loader/schemas/merge.schema.d.ts +8 -0
- package/dist/loader/schemas/merge.schema.d.ts.map +1 -0
- package/dist/loader/schemas/merge.schema.js +2 -0
- package/dist/loader/schemas/merge.schema.js.map +1 -0
- package/dist/loader/schemas/validation.schema.d.ts +17 -0
- package/dist/loader/schemas/validation.schema.d.ts.map +1 -0
- package/dist/loader/schemas/validation.schema.js +2 -0
- package/dist/loader/schemas/validation.schema.js.map +1 -0
- package/dist/loader/server.d.ts +3 -0
- package/dist/loader/server.d.ts.map +1 -0
- package/dist/loader/server.js +2 -0
- package/dist/loader/server.js.map +1 -0
- package/dist/loader/types.d.ts +136 -0
- package/dist/loader/types.d.ts.map +1 -0
- package/dist/loader/types.js +24 -0
- package/dist/loader/types.js.map +1 -0
- package/dist/loader/validation.d.ts +59 -0
- package/dist/loader/validation.d.ts.map +1 -0
- package/dist/loader/validation.js +218 -0
- package/dist/loader/validation.js.map +1 -0
- package/dist/manifest/builder.d.ts +172 -0
- package/dist/manifest/builder.d.ts.map +1 -0
- package/dist/manifest/builder.js +336 -0
- package/dist/manifest/builder.js.map +1 -0
- package/dist/manifest/config-manifest.d.ts +199 -0
- package/dist/manifest/config-manifest.d.ts.map +1 -0
- package/dist/manifest/config-manifest.js +388 -0
- package/dist/manifest/config-manifest.js.map +1 -0
- package/dist/manifest/index.d.ts +10 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +20 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/schema.d.ts +460 -0
- package/dist/manifest/schema.d.ts.map +1 -0
- package/dist/manifest/schema.js +187 -0
- package/dist/manifest/schema.js.map +1 -0
- package/dist/manifest/schemas/builder.schema.d.ts +20 -0
- package/dist/manifest/schemas/builder.schema.d.ts.map +1 -0
- package/dist/manifest/schemas/builder.schema.js +2 -0
- package/dist/manifest/schemas/builder.schema.js.map +1 -0
- package/dist/manifest/schemas/config-manifest.schema.d.ts +2 -0
- package/dist/manifest/schemas/config-manifest.schema.d.ts.map +1 -0
- package/dist/manifest/schemas/config-manifest.schema.js +2 -0
- package/dist/manifest/schemas/config-manifest.schema.js.map +1 -0
- package/dist/manifest/schemas/schema.schema.d.ts +83 -0
- package/dist/manifest/schemas/schema.schema.d.ts.map +1 -0
- package/dist/manifest/schemas/schema.schema.js +2 -0
- package/dist/manifest/schemas/schema.schema.js.map +1 -0
- package/dist/manifest/types.d.ts +563 -0
- package/dist/manifest/types.d.ts.map +1 -0
- package/dist/manifest/types.js +9 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/routing/index.d.ts +29 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +35 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/merge.d.ts +164 -0
- package/dist/routing/merge.d.ts.map +1 -0
- package/dist/routing/merge.js +460 -0
- package/dist/routing/merge.js.map +1 -0
- package/dist/routing/registry.d.ts +145 -0
- package/dist/routing/registry.d.ts.map +1 -0
- package/dist/routing/registry.js +459 -0
- package/dist/routing/registry.js.map +1 -0
- package/dist/routing/schemas/merge.schema.d.ts +5 -0
- package/dist/routing/schemas/merge.schema.d.ts.map +1 -0
- package/dist/routing/schemas/merge.schema.js +2 -0
- package/dist/routing/schemas/merge.schema.js.map +1 -0
- package/dist/routing/types.d.ts +358 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +89 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/schema/extend-zod.d.ts +137 -0
- package/dist/schema/extend-zod.d.ts.map +1 -0
- package/dist/schema/extend-zod.js +243 -0
- package/dist/schema/extend-zod.js.map +1 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +10 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/references.d.ts +9 -0
- package/dist/schema/references.d.ts.map +1 -0
- package/dist/schema/references.js +9 -0
- package/dist/schema/references.js.map +1 -0
- package/dist/schema/resolver.d.ts +45 -0
- package/dist/schema/resolver.d.ts.map +1 -0
- package/dist/schema/resolver.js +267 -0
- package/dist/schema/resolver.js.map +1 -0
- package/dist/schema/schemas/extend-zod.schema.d.ts +16 -0
- package/dist/schema/schemas/extend-zod.schema.d.ts.map +1 -0
- package/dist/schema/schemas/extend-zod.schema.js +2 -0
- package/dist/schema/schemas/extend-zod.schema.js.map +1 -0
- package/dist/schema/schemas/references.schema.d.ts +70 -0
- package/dist/schema/schemas/references.schema.d.ts.map +1 -0
- package/dist/schema/schemas/references.schema.js +2 -0
- package/dist/schema/schemas/references.schema.js.map +1 -0
- package/dist/schemas/collection.d.ts +31 -0
- package/dist/schemas/collection.d.ts.map +1 -0
- package/dist/schemas/collection.js +22 -0
- package/dist/schemas/collection.js.map +1 -0
- package/dist/schemas/config-manifest-descriptor.d.ts +495 -0
- package/dist/schemas/config-manifest-descriptor.d.ts.map +1 -0
- package/dist/schemas/config-manifest-descriptor.js +210 -0
- package/dist/schemas/config-manifest-descriptor.js.map +1 -0
- package/dist/schemas/config-registry-state.d.ts +8 -0
- package/dist/schemas/config-registry-state.d.ts.map +1 -0
- package/dist/schemas/config-registry-state.js +6 -0
- package/dist/schemas/config-registry-state.js.map +1 -0
- package/dist/schemas/doctor.schema.d.ts +25 -0
- package/dist/schemas/doctor.schema.d.ts.map +1 -0
- package/dist/schemas/doctor.schema.js +2 -0
- package/dist/schemas/doctor.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +8 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +21 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +4 -0
- package/dist/server/index.js.map +1 -0
- package/dist/services/config-accessor.d.ts +40 -0
- package/dist/services/config-accessor.d.ts.map +1 -0
- package/dist/services/config-accessor.js +180 -0
- package/dist/services/config-accessor.js.map +1 -0
- package/dist/services/config-storage/index.d.ts +8 -0
- package/dist/services/config-storage/index.d.ts.map +1 -0
- package/dist/services/config-storage/index.js +7 -0
- package/dist/services/config-storage/index.js.map +1 -0
- package/dist/services/config-storage/service.d.ts +63 -0
- package/dist/services/config-storage/service.d.ts.map +1 -0
- package/dist/services/config-storage/service.js +234 -0
- package/dist/services/config-storage/service.js.map +1 -0
- package/dist/services/config.d.ts +3 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +30 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/encryption.d.ts +114 -0
- package/dist/services/encryption.d.ts.map +1 -0
- package/dist/services/encryption.js +232 -0
- package/dist/services/encryption.js.map +1 -0
- package/dist/services/index.d.ts +12 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +16 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/loader/loader.descriptor.d.ts +103 -0
- package/dist/services/loader/loader.descriptor.d.ts.map +1 -0
- package/dist/services/loader/loader.descriptor.js +60 -0
- package/dist/services/loader/loader.descriptor.js.map +1 -0
- package/dist/services/loader/loader.impl.cloud.d.ts +55 -0
- package/dist/services/loader/loader.impl.cloud.d.ts.map +1 -0
- package/dist/services/loader/loader.impl.cloud.js +182 -0
- package/dist/services/loader/loader.impl.cloud.js.map +1 -0
- package/dist/services/loader/loader.impl.consumer.d.ts +48 -0
- package/dist/services/loader/loader.impl.consumer.d.ts.map +1 -0
- package/dist/services/loader/loader.impl.consumer.js +175 -0
- package/dist/services/loader/loader.impl.consumer.js.map +1 -0
- package/dist/services/loader/loader.impl.consumer.local-first.d.ts +59 -0
- package/dist/services/loader/loader.impl.consumer.local-first.d.ts.map +1 -0
- package/dist/services/loader/loader.impl.consumer.local-first.js +347 -0
- package/dist/services/loader/loader.impl.consumer.local-first.js.map +1 -0
- package/dist/services/manifest-utils.d.ts +47 -0
- package/dist/services/manifest-utils.d.ts.map +1 -0
- package/dist/services/manifest-utils.js +105 -0
- package/dist/services/manifest-utils.js.map +1 -0
- package/dist/services/schemas/config-accessor.schema.d.ts +10 -0
- package/dist/services/schemas/config-accessor.schema.d.ts.map +1 -0
- package/dist/services/schemas/config-accessor.schema.js +2 -0
- package/dist/services/schemas/config-accessor.schema.js.map +1 -0
- package/dist/services/schemas/encryption.schema.d.ts +22 -0
- package/dist/services/schemas/encryption.schema.d.ts.map +1 -0
- package/dist/services/schemas/encryption.schema.js +2 -0
- package/dist/services/schemas/encryption.schema.js.map +1 -0
- package/dist/services/schemas/manifest-utils.schema.d.ts +4 -0
- package/dist/services/schemas/manifest-utils.schema.d.ts.map +1 -0
- package/dist/services/schemas/manifest-utils.schema.js +2 -0
- package/dist/services/schemas/manifest-utils.schema.js.map +1 -0
- package/dist/settings/assemble.d.ts +28 -0
- package/dist/settings/assemble.d.ts.map +1 -0
- package/dist/settings/assemble.js +30 -0
- package/dist/settings/assemble.js.map +1 -0
- package/dist/settings/index.d.ts +10 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +10 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/settings-section.schema.d.ts +49 -0
- package/dist/settings/settings-section.schema.d.ts.map +1 -0
- package/dist/settings/settings-section.schema.js +70 -0
- package/dist/settings/settings-section.schema.js.map +1 -0
- package/dist/storage/adapter.d.ts +11 -0
- package/dist/storage/adapter.d.ts.map +1 -0
- package/dist/storage/adapter.js +8 -0
- package/dist/storage/adapter.js.map +1 -0
- package/dist/storage/index.d.ts +8 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +8 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/schemas.d.ts +257 -0
- package/dist/storage/schemas.d.ts.map +1 -0
- package/dist/storage/schemas.js +179 -0
- package/dist/storage/schemas.js.map +1 -0
- package/dist/storage/types.d.ts +74 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +7 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/system-constants.d.ts +95 -0
- package/dist/system-constants.d.ts.map +1 -0
- package/dist/system-constants.js +110 -0
- package/dist/system-constants.js.map +1 -0
- package/package.json +417 -0
- package/src/adapters/cli/flags.ts +260 -0
- package/src/adapters/cli/index.ts +24 -0
- package/src/adapters/cli/mappings.ts +43 -0
- package/src/adapters/cli/prompts.ts +70 -0
- package/src/adapters/cli/schemas/flags.schema.ts +8 -0
- package/src/adapters/cli/schemas/mappings.schema.ts +3 -0
- package/src/adapters/cli/schemas/prompts.schema.ts +4 -0
- package/src/adapters/cli/schemas/wizard.schema.ts +21 -0
- package/src/adapters/cli/wizard.ts +106 -0
- package/src/adapters/web/components/ManifestForm.svelte +817 -0
- package/src/browser/index.ts +86 -0
- package/src/cli/settings.descriptor.ts +23 -0
- package/src/cli/types.ts +59 -0
- package/src/client/index.ts +169 -0
- package/src/client/storage.ts +76 -0
- package/src/collection/collection.ts +121 -0
- package/src/collection/index.ts +6 -0
- package/src/common/index.ts +86 -0
- package/src/config.context.descriptor.ts +12 -0
- package/src/config.plugin.ts +214 -0
- package/src/crud/base-types.ts +10 -0
- package/src/crud/index.ts +15 -0
- package/src/crud/schemas/base-types.schema.ts +20 -0
- package/src/crud/schemas/shared.schema.ts +14 -0
- package/src/crud/shared.ts +8 -0
- package/src/crud/types.ts +299 -0
- package/src/docs/environment.docs.descriptor.ts +385 -0
- package/src/docs/manifests.docs.descriptor.ts +505 -0
- package/src/docs/validation.docs.descriptor.ts +443 -0
- package/src/doctor.ts +143 -0
- package/src/env.runtime.ts +49 -0
- package/src/env.ts +91 -0
- package/src/environment/current.ts +108 -0
- package/src/environment/environment.config.descriptor.ts +60 -0
- package/src/environment/environment.config.schema.ts +24 -0
- package/src/environment/environment.local.descriptor.ts +45 -0
- package/src/environment/environment.plugin.ts +31 -0
- package/src/environment/environment.production.descriptor.ts +40 -0
- package/src/environment/environment.staging.descriptor.ts +25 -0
- package/src/environment/index.ts +22 -0
- package/src/environment/kinds/environment.default.ts +57 -0
- package/src/environment/kinds/environment.interface.ts +10 -0
- package/src/environment/kinds/environment.kind.ts +69 -0
- package/src/environment/kinds/environment.schema.ts +57 -0
- package/src/environment/kinds/index.ts +8 -0
- package/src/environment/kinds/schemas/environment.interface.schema.ts +11 -0
- package/src/environment/kinds/schemas/environment.schema.ts +24 -0
- package/src/environment/schemas/current.schema.ts +21 -0
- package/src/environment/schemas/environment.config.schema.ts +3 -0
- package/src/extensions/index.ts +26 -0
- package/src/extensions/registry.ts +179 -0
- package/src/extensions/types.ts +123 -0
- package/src/form/core/field-resolver.ts +380 -0
- package/src/form/core/groups.ts +96 -0
- package/src/form/core/index.ts +41 -0
- package/src/form/core/nested-utils.ts +115 -0
- package/src/form/core/schemas/validation.schema.ts +9 -0
- package/src/form/core/types.ts +115 -0
- package/src/form/core/validation.ts +137 -0
- package/src/form/core/visibility.ts +172 -0
- package/src/form/index.ts +36 -0
- package/src/index.ts +69 -0
- package/src/js-yaml.d.ts +4 -0
- package/src/loader/cli/index.ts +386 -0
- package/src/loader/cli/loaders.ts +153 -0
- package/src/loader/cli/types.ts +181 -0
- package/src/loader/cli/utils.ts +236 -0
- package/src/loader/client.ts +140 -0
- package/src/loader/discovery.ts +291 -0
- package/src/loader/file-loader.ts +262 -0
- package/src/loader/index.server.ts +389 -0
- package/src/loader/index.ts +18 -0
- package/src/loader/merge.ts +366 -0
- package/src/loader/schemas/merge.schema.ts +8 -0
- package/src/loader/schemas/validation.schema.ts +18 -0
- package/src/loader/server.ts +15 -0
- package/src/loader/types.ts +142 -0
- package/src/loader/validation.ts +261 -0
- package/src/manifest/builder.ts +452 -0
- package/src/manifest/config-manifest.ts +482 -0
- package/src/manifest/index.ts +92 -0
- package/src/manifest/schema.ts +249 -0
- package/src/manifest/schemas/builder.schema.ts +33 -0
- package/src/manifest/schemas/config-manifest.schema.ts +1 -0
- package/src/manifest/schemas/schema.schema.ts +99 -0
- package/src/manifest/types.ts +726 -0
- package/src/routing/index.ts +105 -0
- package/src/routing/merge.ts +589 -0
- package/src/routing/registry.ts +595 -0
- package/src/routing/schemas/merge.schema.ts +6 -0
- package/src/routing/types.ts +470 -0
- package/src/schema/extend-zod.ts +289 -0
- package/src/schema/index.ts +44 -0
- package/src/schema/references.ts +21 -0
- package/src/schema/resolver.ts +343 -0
- package/src/schema/schemas/extend-zod.schema.ts +16 -0
- package/src/schema/schemas/references.schema.ts +86 -0
- package/src/schemas/collection.ts +38 -0
- package/src/schemas/config-manifest-descriptor.ts +259 -0
- package/src/schemas/config-registry-state.ts +13 -0
- package/src/schemas/doctor.schema.ts +27 -0
- package/src/schemas/index.ts +53 -0
- package/src/server/index.ts +4 -0
- package/src/services/config-accessor.ts +218 -0
- package/src/services/config-storage/index.ts +8 -0
- package/src/services/config-storage/service.ts +355 -0
- package/src/services/config.ts +37 -0
- package/src/services/encryption.ts +260 -0
- package/src/services/index.ts +34 -0
- package/src/services/loader/loader.descriptor.ts +96 -0
- package/src/services/loader/loader.impl.cloud.ts +214 -0
- package/src/services/loader/loader.impl.consumer.local-first.ts +417 -0
- package/src/services/loader/loader.impl.consumer.ts +213 -0
- package/src/services/manifest-utils.ts +119 -0
- package/src/services/schemas/config-accessor.schema.ts +11 -0
- package/src/services/schemas/encryption.schema.ts +23 -0
- package/src/services/schemas/manifest-utils.schema.ts +4 -0
- package/src/settings/assemble.ts +46 -0
- package/src/settings/index.ts +19 -0
- package/src/settings/settings-section.schema.ts +84 -0
- package/src/storage/adapter.ts +12 -0
- package/src/storage/index.ts +48 -0
- package/src/storage/schemas.ts +215 -0
- package/src/storage/types.ts +88 -0
- package/src/system-constants.ts +121 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest Utilities
|
|
3
|
+
*
|
|
4
|
+
* Runtime-based utilities for looking up and working with config manifests.
|
|
5
|
+
* Replaces the legacy registry/manifests.js functions.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { getVibesRuntime } from '@vibesdotdev/runtime';
|
|
9
|
+
import type { ConfigManifest } from '../manifest/types.ts';
|
|
10
|
+
import type { RecordManifest } from '../crud/types.ts';
|
|
11
|
+
|
|
12
|
+
import type { AnyManifest } from './schemas/manifest-utils.schema.ts';
|
|
13
|
+
|
|
14
|
+
export type { AnyManifest } from './schemas/manifest-utils.schema.ts';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Get a manifest by ID from the runtime
|
|
18
|
+
*/
|
|
19
|
+
export function getManifest(id: string): AnyManifest | null {
|
|
20
|
+
try {
|
|
21
|
+
const runtime = getVibesRuntime();
|
|
22
|
+
const descriptors = runtime.query('config/manifest').descriptors();
|
|
23
|
+
return (descriptors.find((d) => d.id === id) as unknown as AnyManifest) ?? null;
|
|
24
|
+
} catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get all registered manifest IDs
|
|
31
|
+
*/
|
|
32
|
+
export function getAllManifestIds(): string[] {
|
|
33
|
+
try {
|
|
34
|
+
const runtime = getVibesRuntime();
|
|
35
|
+
const descriptors = runtime.query('config/manifest').descriptors();
|
|
36
|
+
return descriptors.map((d) => d.id);
|
|
37
|
+
} catch {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Get all registered manifests
|
|
44
|
+
*/
|
|
45
|
+
export function getAllManifests(): AnyManifest[] {
|
|
46
|
+
try {
|
|
47
|
+
const runtime = getVibesRuntime();
|
|
48
|
+
const descriptors = runtime.query('config/manifest').descriptors();
|
|
49
|
+
return descriptors as unknown as AnyManifest[];
|
|
50
|
+
} catch {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Check if a manifest is a ConfigManifest (single-object config)
|
|
57
|
+
*/
|
|
58
|
+
export function isConfigManifest(manifest: unknown): manifest is ConfigManifest {
|
|
59
|
+
if (!manifest || typeof manifest !== 'object') return false;
|
|
60
|
+
const m = manifest as Record<string, unknown>;
|
|
61
|
+
return (
|
|
62
|
+
typeof m.id === 'string' &&
|
|
63
|
+
typeof m.schema === 'object' &&
|
|
64
|
+
m.schema !== null &&
|
|
65
|
+
typeof m.fields === 'object' &&
|
|
66
|
+
m.fields !== null &&
|
|
67
|
+
!('crud' in m) // RecordManifests have crud config
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Check if a manifest is a RecordManifest (CRUD list)
|
|
73
|
+
*/
|
|
74
|
+
export function isRecordManifest(manifest: unknown): manifest is RecordManifest {
|
|
75
|
+
if (!manifest || typeof manifest !== 'object') return false;
|
|
76
|
+
const m = manifest as Record<string, unknown>;
|
|
77
|
+
return (
|
|
78
|
+
typeof m.id === 'string' &&
|
|
79
|
+
typeof m.schema === 'object' &&
|
|
80
|
+
m.schema !== null &&
|
|
81
|
+
'crud' in m &&
|
|
82
|
+
typeof m.crud === 'object' &&
|
|
83
|
+
m.crud !== null
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Get manifests by surface
|
|
89
|
+
*/
|
|
90
|
+
export function getManifestsForSurface(surface: string): AnyManifest[] {
|
|
91
|
+
return getAllManifests().filter((m) => {
|
|
92
|
+
if (!m.context?.surfaces) return true; // No surface restriction
|
|
93
|
+
const surfaces = m.context.surfaces as readonly string[];
|
|
94
|
+
return surfaces.includes(surface);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Get manifests by navigation page
|
|
100
|
+
*/
|
|
101
|
+
export function getManifestsForPage(page: string): AnyManifest[] {
|
|
102
|
+
return getAllManifests().filter((m) => m.navigation?.page === page);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Get manifests by navigation section
|
|
107
|
+
*/
|
|
108
|
+
export function getManifestsForSection(page: string, section: string): AnyManifest[] {
|
|
109
|
+
return getAllManifests().filter(
|
|
110
|
+
(m) => m.navigation?.page === page && m.navigation?.section === section
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Get manifests by category
|
|
116
|
+
*/
|
|
117
|
+
export function getManifestsByCategory(category: string): AnyManifest[] {
|
|
118
|
+
return getAllManifests().filter((m) => m.category === category);
|
|
119
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ConfigManifest, ConfigContext } from '../../manifest/types.ts';
|
|
2
|
+
|
|
3
|
+
export interface ConfigAccessor<T> {
|
|
4
|
+
get(): T | null;
|
|
5
|
+
setField<K extends keyof T>(field: K, value: T[K]): void;
|
|
6
|
+
setFields(fields: Partial<T>): void;
|
|
7
|
+
subscribe(callback: (values: T | null) => void): () => void;
|
|
8
|
+
save(): Promise<void>;
|
|
9
|
+
reload(): Promise<void>;
|
|
10
|
+
isDirty(): boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface EncryptedValue {
|
|
2
|
+
ciphertext: string;
|
|
3
|
+
iv: string;
|
|
4
|
+
salt: string;
|
|
5
|
+
tag: string;
|
|
6
|
+
algorithm: string;
|
|
7
|
+
iterations: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface SerializedEncryptedValue {
|
|
11
|
+
v: 1;
|
|
12
|
+
ct: string;
|
|
13
|
+
iv: string;
|
|
14
|
+
s: string;
|
|
15
|
+
t: string;
|
|
16
|
+
a: string;
|
|
17
|
+
i: number;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface EncryptionOptions {
|
|
21
|
+
salt?: Buffer;
|
|
22
|
+
iv?: Buffer;
|
|
23
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Assembly
|
|
3
|
+
*
|
|
4
|
+
* Builds the global Settings layout at runtime by concatenating every
|
|
5
|
+
* `settings/section` descriptor registered with the runtime. Config does
|
|
6
|
+
* not own the section list; each owning module contributes its own.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { SettingsSectionDescriptor } from './settings-section.schema.ts';
|
|
10
|
+
|
|
11
|
+
/** Minimum surface a runtime accessor must expose for assembly. */
|
|
12
|
+
export interface SettingsSectionRuntime {
|
|
13
|
+
assets(kind: 'settings/section'): {
|
|
14
|
+
descriptors(): SettingsSectionDescriptor[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const DEFAULT_ORDER = 100;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Returns every registered Settings section, filtered to `enabled !== false`
|
|
22
|
+
* and sorted by `order` (ascending; unset → 100). Pure: callers may safely
|
|
23
|
+
* pass the result to a UI without further sorting.
|
|
24
|
+
*/
|
|
25
|
+
export function assembleSettingsSections(
|
|
26
|
+
runtime: SettingsSectionRuntime
|
|
27
|
+
): SettingsSectionDescriptor[] {
|
|
28
|
+
const descriptors = runtime.assets('settings/section').descriptors();
|
|
29
|
+
return descriptors
|
|
30
|
+
.filter((d) => d.enabled !== false)
|
|
31
|
+
.slice()
|
|
32
|
+
.sort((a, b) => (a.order ?? DEFAULT_ORDER) - (b.order ?? DEFAULT_ORDER));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Resolve the section a given `config/manifest` ID participates in (if any).
|
|
37
|
+
*
|
|
38
|
+
* Returns the first section whose `manifests[]` contains the given id, in
|
|
39
|
+
* assembled order. Returns `undefined` when no section claims it.
|
|
40
|
+
*/
|
|
41
|
+
export function findSectionForManifest(
|
|
42
|
+
runtime: SettingsSectionRuntime,
|
|
43
|
+
manifestId: string
|
|
44
|
+
): SettingsSectionDescriptor | undefined {
|
|
45
|
+
return assembleSettingsSections(runtime).find((s) => s.manifests.includes(manifestId));
|
|
46
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings — runtime-first global settings layout.
|
|
3
|
+
*
|
|
4
|
+
* Each owning module registers one `settings/section` descriptor naming the
|
|
5
|
+
* manifests it owns. Surfaces (TUI/web) assemble the global Settings UI by
|
|
6
|
+
* sorting all registered descriptors. Config never enumerates sections.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
SettingsSectionDescriptorSchema,
|
|
11
|
+
isSettingsSectionDescriptor,
|
|
12
|
+
type SettingsSectionDescriptor
|
|
13
|
+
} from './settings-section.schema.ts';
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
assembleSettingsSections,
|
|
17
|
+
findSectionForManifest,
|
|
18
|
+
type SettingsSectionRuntime
|
|
19
|
+
} from './assemble.ts';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Section Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Pure-data runtime descriptor: each module's plugin registers one or more
|
|
5
|
+
* `settings/section` descriptors and the assembled global Settings UI is the
|
|
6
|
+
* sorted concatenation of every registered contribution.
|
|
7
|
+
*
|
|
8
|
+
* Config never enumerates which sections exist. The owning module owns its
|
|
9
|
+
* own section — including which manifests appear in it.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // In packages/ai/src/ai.plugin.ts
|
|
14
|
+
* import type { SettingsSectionDescriptor } from '@vibesdotdev/config/settings';
|
|
15
|
+
*
|
|
16
|
+
* const aiSettingsSection: SettingsSectionDescriptor = {
|
|
17
|
+
* kind: 'settings/section',
|
|
18
|
+
* id: 'ai',
|
|
19
|
+
* label: 'AI',
|
|
20
|
+
* icon: '🤖',
|
|
21
|
+
* description: 'AI providers, agents, and model configuration',
|
|
22
|
+
* order: 10,
|
|
23
|
+
* manifests: ['ai.core', 'ai.providers', 'tools.agents']
|
|
24
|
+
* };
|
|
25
|
+
*
|
|
26
|
+
* // Registered through the plugin's descriptors[] array.
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
import * as z from 'zod/v4';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Zod schema for a contributed Settings section.
|
|
34
|
+
*/
|
|
35
|
+
export const SettingsSectionDescriptorSchema = z.object({
|
|
36
|
+
kind: z.literal('settings/section'),
|
|
37
|
+
|
|
38
|
+
/** Stable identifier for the section (e.g., 'ai', 'chat', 'knowledge'). */
|
|
39
|
+
id: z.string().min(1),
|
|
40
|
+
|
|
41
|
+
/** Display label. */
|
|
42
|
+
label: z.string().min(1),
|
|
43
|
+
|
|
44
|
+
/** Optional icon (string token resolved by the surface). */
|
|
45
|
+
icon: z.string().optional(),
|
|
46
|
+
|
|
47
|
+
/** Longer description shown alongside the section header. */
|
|
48
|
+
description: z.string().optional(),
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Sort order within the global Settings UI. Lower numbers render first.
|
|
52
|
+
* Unset → defaults to 100 during assembly.
|
|
53
|
+
*/
|
|
54
|
+
order: z.number().optional(),
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* IDs of `config/manifest` descriptors that appear in this section.
|
|
58
|
+
* The surface resolves each manifest through the runtime; this list is
|
|
59
|
+
* just the section-to-manifest mapping.
|
|
60
|
+
*/
|
|
61
|
+
manifests: z.array(z.string().min(1)),
|
|
62
|
+
|
|
63
|
+
/** Whether the section can be collapsed in the UI. */
|
|
64
|
+
collapsible: z.boolean().optional(),
|
|
65
|
+
|
|
66
|
+
/** Default collapsed state (only meaningful when collapsible is true). */
|
|
67
|
+
defaultCollapsed: z.boolean().optional(),
|
|
68
|
+
|
|
69
|
+
/** Optional descriptor tags for filtering. */
|
|
70
|
+
tags: z.array(z.string()).optional(),
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* When false, the section is registered but excluded from assembly.
|
|
74
|
+
* Allows feature-flag gating without removing the descriptor.
|
|
75
|
+
*/
|
|
76
|
+
enabled: z.boolean().optional()
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
export type SettingsSectionDescriptor = z.infer<typeof SettingsSectionDescriptorSchema>;
|
|
80
|
+
|
|
81
|
+
/** Type guard for runtime queries. */
|
|
82
|
+
export function isSettingsSectionDescriptor(value: unknown): value is SettingsSectionDescriptor {
|
|
83
|
+
return SettingsSectionDescriptorSchema.safeParse(value).success;
|
|
84
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Storage Adapter Interface
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for storage adapters that implement ConfigStorageClient.
|
|
5
|
+
* Concrete implementations may use LocalDB, file-based storage, or other backends.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ConfigStorageClient, ConfigValue } from './types.ts';
|
|
9
|
+
import type { ConfigScope } from './schemas.ts';
|
|
10
|
+
|
|
11
|
+
export type { ConfigStorageClient, ConfigValue };
|
|
12
|
+
export type { ConfigScope };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Storage Module
|
|
3
|
+
*
|
|
4
|
+
* Unified configuration storage types and schemas.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export {
|
|
8
|
+
type ConfigScope,
|
|
9
|
+
type ConfigValueType,
|
|
10
|
+
type EnvironmentTier,
|
|
11
|
+
type CredentialsInput,
|
|
12
|
+
type ConfigInput,
|
|
13
|
+
type EnvironmentInput,
|
|
14
|
+
type CredentialsRow,
|
|
15
|
+
type ConfigRow,
|
|
16
|
+
type EnvironmentRow,
|
|
17
|
+
type ConfigDocumentRow,
|
|
18
|
+
type ConfigDocumentInput,
|
|
19
|
+
type CredentialsRecord,
|
|
20
|
+
type ConfigRecord,
|
|
21
|
+
type EnvironmentRecord,
|
|
22
|
+
type ConfigDocumentContent,
|
|
23
|
+
type ConfigDocumentRecord,
|
|
24
|
+
type ConfigDocumentHistoryRow,
|
|
25
|
+
type ConfigDocumentHistoryRecord,
|
|
26
|
+
configScopeSchema,
|
|
27
|
+
configValueTypeSchema,
|
|
28
|
+
environmentTierSchema,
|
|
29
|
+
credentialsInputSchema,
|
|
30
|
+
configInputSchema,
|
|
31
|
+
environmentInputSchema,
|
|
32
|
+
configDocumentRowSchema,
|
|
33
|
+
configDocumentInputSchema,
|
|
34
|
+
credentialsRowSchema,
|
|
35
|
+
credentialsRecordSchema,
|
|
36
|
+
configRowSchema,
|
|
37
|
+
configRecordSchema,
|
|
38
|
+
environmentRowSchema,
|
|
39
|
+
environmentRecordSchema,
|
|
40
|
+
configDocumentContentSchema,
|
|
41
|
+
configDocumentHistoryRowSchema,
|
|
42
|
+
configDocumentHistoryRecordSchema
|
|
43
|
+
} from './schemas.ts';
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
type ConfigStorageClient,
|
|
47
|
+
type ConfigValue
|
|
48
|
+
} from './types.ts';
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Storage Schemas
|
|
3
|
+
*
|
|
4
|
+
* Zod schemas for the LocalDB config tables.
|
|
5
|
+
* These map directly to the SQL schema in migrations/config/001-initial-schema.sql
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import z from 'zod/v4';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Config scope - where config values apply
|
|
12
|
+
*/
|
|
13
|
+
export const configScopeSchema = z.enum(['global', 'local', 'project']);
|
|
14
|
+
export type ConfigScope = z.infer<typeof configScopeSchema>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Config value type - how to interpret the stored value
|
|
18
|
+
*/
|
|
19
|
+
export const configValueTypeSchema = z.enum(['string', 'number', 'boolean', 'json']);
|
|
20
|
+
export type ConfigValueType = z.infer<typeof configValueTypeSchema>;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Environment tier
|
|
24
|
+
*/
|
|
25
|
+
export const environmentTierSchema = z.enum(['local', 'dev', 'staging', 'production']);
|
|
26
|
+
export type EnvironmentTier = z.infer<typeof environmentTierSchema>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Credentials row schema
|
|
30
|
+
*/
|
|
31
|
+
export const credentialsRowSchema = z.object({
|
|
32
|
+
id: z.string(),
|
|
33
|
+
environment: z.string(),
|
|
34
|
+
api_key: z.string().nullable(),
|
|
35
|
+
session_token: z.string().nullable(),
|
|
36
|
+
refresh_token: z.string().nullable(),
|
|
37
|
+
user_id: z.string().nullable(),
|
|
38
|
+
email: z.string().nullable(),
|
|
39
|
+
name: z.string().nullable(),
|
|
40
|
+
expires_at: z.string().nullable(),
|
|
41
|
+
metadata: z.string().nullable(),
|
|
42
|
+
created_at: z.string(),
|
|
43
|
+
updated_at: z.string()
|
|
44
|
+
});
|
|
45
|
+
export type CredentialsRow = z.infer<typeof credentialsRowSchema>;
|
|
46
|
+
|
|
47
|
+
export const credentialsRecordSchema = z.object({
|
|
48
|
+
id: z.string(),
|
|
49
|
+
environment: z.string(),
|
|
50
|
+
apiKey: z.string().nullable().optional(),
|
|
51
|
+
sessionToken: z.string().nullable().optional(),
|
|
52
|
+
refreshToken: z.string().nullable().optional(),
|
|
53
|
+
userId: z.string().nullable().optional(),
|
|
54
|
+
email: z.string().nullable().optional(),
|
|
55
|
+
name: z.string().nullable().optional(),
|
|
56
|
+
expiresAt: z.string().nullable().optional(),
|
|
57
|
+
metadata: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
58
|
+
createdAt: z.string(),
|
|
59
|
+
updatedAt: z.string()
|
|
60
|
+
});
|
|
61
|
+
export type CredentialsRecord = z.infer<typeof credentialsRecordSchema>;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Config row schema
|
|
65
|
+
*/
|
|
66
|
+
export const configRowSchema = z.object({
|
|
67
|
+
id: z.string(),
|
|
68
|
+
key: z.string(),
|
|
69
|
+
scope: configScopeSchema,
|
|
70
|
+
namespace: z.string().nullable(),
|
|
71
|
+
value: z.string(),
|
|
72
|
+
value_type: configValueTypeSchema,
|
|
73
|
+
encrypted: z.literal([0, 1]),
|
|
74
|
+
metadata: z.string().nullable(),
|
|
75
|
+
created_at: z.string(),
|
|
76
|
+
updated_at: z.string()
|
|
77
|
+
});
|
|
78
|
+
export type ConfigRow = z.infer<typeof configRowSchema>;
|
|
79
|
+
|
|
80
|
+
export const configRecordSchema = z.object({
|
|
81
|
+
id: z.string(),
|
|
82
|
+
key: z.string(),
|
|
83
|
+
scope: configScopeSchema,
|
|
84
|
+
namespace: z.string().nullable().optional(),
|
|
85
|
+
value: z.string(),
|
|
86
|
+
valueType: configValueTypeSchema,
|
|
87
|
+
encrypted: z.boolean(),
|
|
88
|
+
metadata: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
89
|
+
createdAt: z.string(),
|
|
90
|
+
updatedAt: z.string()
|
|
91
|
+
});
|
|
92
|
+
export type ConfigRecord = z.infer<typeof configRecordSchema>;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Environment row schema
|
|
96
|
+
*/
|
|
97
|
+
export const environmentRowSchema = z.object({
|
|
98
|
+
id: z.literal(1),
|
|
99
|
+
name: z.string(),
|
|
100
|
+
tier: environmentTierSchema,
|
|
101
|
+
api_url: z.string(),
|
|
102
|
+
updated_at: z.string()
|
|
103
|
+
});
|
|
104
|
+
export type EnvironmentRow = z.infer<typeof environmentRowSchema>;
|
|
105
|
+
|
|
106
|
+
export const environmentRecordSchema = z.object({
|
|
107
|
+
id: z.number().int(),
|
|
108
|
+
name: z.string(),
|
|
109
|
+
tier: environmentTierSchema,
|
|
110
|
+
apiUrl: z.string(),
|
|
111
|
+
updatedAt: z.string()
|
|
112
|
+
});
|
|
113
|
+
export type EnvironmentRecord = z.infer<typeof environmentRecordSchema>;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Input schemas for creating/updating
|
|
117
|
+
*/
|
|
118
|
+
export const credentialsInputSchema = z.object({
|
|
119
|
+
environment: z.string(),
|
|
120
|
+
apiKey: z.string().optional(),
|
|
121
|
+
sessionToken: z.string().optional(),
|
|
122
|
+
refreshToken: z.string().optional(),
|
|
123
|
+
userId: z.string().optional(),
|
|
124
|
+
email: z.string().optional(),
|
|
125
|
+
name: z.string().optional(),
|
|
126
|
+
expiresAt: z.string().optional(),
|
|
127
|
+
metadata: z.record(z.string(), z.unknown()).optional()
|
|
128
|
+
});
|
|
129
|
+
export type CredentialsInput = z.infer<typeof credentialsInputSchema>;
|
|
130
|
+
|
|
131
|
+
export const configInputSchema = z.object({
|
|
132
|
+
key: z.string(),
|
|
133
|
+
value: z.unknown(),
|
|
134
|
+
scope: configScopeSchema.default('global'),
|
|
135
|
+
namespace: z.string().optional(),
|
|
136
|
+
encrypted: z.boolean().default(false)
|
|
137
|
+
});
|
|
138
|
+
export type ConfigInput = z.infer<typeof configInputSchema>;
|
|
139
|
+
|
|
140
|
+
export const environmentInputSchema = z.object({
|
|
141
|
+
name: z.string(),
|
|
142
|
+
tier: environmentTierSchema,
|
|
143
|
+
apiUrl: z.url()
|
|
144
|
+
});
|
|
145
|
+
export type EnvironmentInput = z.infer<typeof environmentInputSchema>;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Config document row schema
|
|
149
|
+
*/
|
|
150
|
+
export const configDocumentRowSchema = z.object({
|
|
151
|
+
id: z.string(),
|
|
152
|
+
scope: configScopeSchema,
|
|
153
|
+
namespace: z.string().nullable(),
|
|
154
|
+
content: z.string(),
|
|
155
|
+
version: z.number(),
|
|
156
|
+
encrypted: z.literal([0, 1]),
|
|
157
|
+
created_at: z.string(),
|
|
158
|
+
updated_at: z.string()
|
|
159
|
+
});
|
|
160
|
+
export type ConfigDocumentRow = z.infer<typeof configDocumentRowSchema>;
|
|
161
|
+
|
|
162
|
+
export const configDocumentContentSchema = z.union([
|
|
163
|
+
z.string(),
|
|
164
|
+
z.record(z.string(), z.unknown())
|
|
165
|
+
]);
|
|
166
|
+
export type ConfigDocumentContent = z.infer<typeof configDocumentContentSchema>;
|
|
167
|
+
|
|
168
|
+
export const configDocumentRecordSchema = z.object({
|
|
169
|
+
id: z.string(),
|
|
170
|
+
scope: configScopeSchema,
|
|
171
|
+
namespace: z.string().nullable().optional(),
|
|
172
|
+
content: configDocumentContentSchema,
|
|
173
|
+
version: z.number(),
|
|
174
|
+
encrypted: z.boolean(),
|
|
175
|
+
createdAt: z.string(),
|
|
176
|
+
updatedAt: z.string()
|
|
177
|
+
});
|
|
178
|
+
export type ConfigDocumentRecord = z.infer<typeof configDocumentRecordSchema>;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Config document history row schema
|
|
182
|
+
*/
|
|
183
|
+
export const configDocumentHistoryRowSchema = z.object({
|
|
184
|
+
id: z.string(),
|
|
185
|
+
document_id: z.string(),
|
|
186
|
+
content: z.string(),
|
|
187
|
+
version: z.number(),
|
|
188
|
+
changed_by: z.string().nullable(),
|
|
189
|
+
change_reason: z.string().nullable(),
|
|
190
|
+
created_at: z.string()
|
|
191
|
+
});
|
|
192
|
+
export type ConfigDocumentHistoryRow = z.infer<typeof configDocumentHistoryRowSchema>;
|
|
193
|
+
|
|
194
|
+
export const configDocumentHistoryRecordSchema = z.object({
|
|
195
|
+
id: z.string(),
|
|
196
|
+
documentId: z.string(),
|
|
197
|
+
content: configDocumentContentSchema,
|
|
198
|
+
version: z.number(),
|
|
199
|
+
changedBy: z.string().nullable().optional(),
|
|
200
|
+
changeReason: z.string().nullable().optional(),
|
|
201
|
+
createdAt: z.string()
|
|
202
|
+
});
|
|
203
|
+
export type ConfigDocumentHistoryRecord = z.infer<typeof configDocumentHistoryRecordSchema>;
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Config document input schema
|
|
207
|
+
*/
|
|
208
|
+
export const configDocumentInputSchema = z.object({
|
|
209
|
+
scope: configScopeSchema,
|
|
210
|
+
namespace: z.string().nullable().default(null),
|
|
211
|
+
content: z.record(z.string(), z.unknown()),
|
|
212
|
+
encrypted: z.boolean().default(false),
|
|
213
|
+
changeReason: z.string().optional()
|
|
214
|
+
});
|
|
215
|
+
export type ConfigDocumentInput = z.infer<typeof configDocumentInputSchema>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Storage Types
|
|
3
|
+
*
|
|
4
|
+
* Shared type definitions for configuration storage.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export type ConfigValue =
|
|
8
|
+
| string
|
|
9
|
+
| number
|
|
10
|
+
| boolean
|
|
11
|
+
| null
|
|
12
|
+
| { [key: string]: ConfigValue }
|
|
13
|
+
| ConfigValue[];
|
|
14
|
+
|
|
15
|
+
export interface CLIConfig {
|
|
16
|
+
version: string;
|
|
17
|
+
activeEnvironment?: string;
|
|
18
|
+
[key: string]: ConfigValue | undefined;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface EnvironmentConfig {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
apiUrl: string;
|
|
25
|
+
[key: string]: ConfigValue;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface StoredCredentials {
|
|
29
|
+
id: string;
|
|
30
|
+
environment: string;
|
|
31
|
+
apiKey?: string;
|
|
32
|
+
sessionToken?: string;
|
|
33
|
+
refreshToken?: string;
|
|
34
|
+
userId?: string;
|
|
35
|
+
email?: string;
|
|
36
|
+
name?: string;
|
|
37
|
+
expiresAt?: string;
|
|
38
|
+
metadata?: Record<string, ConfigValue>;
|
|
39
|
+
createdAt: string;
|
|
40
|
+
updatedAt: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface ConfigEntry {
|
|
44
|
+
scope: string;
|
|
45
|
+
key: string;
|
|
46
|
+
value: ConfigValue;
|
|
47
|
+
valueType?: string;
|
|
48
|
+
encrypted?: boolean;
|
|
49
|
+
metadata?: Record<string, ConfigValue>;
|
|
50
|
+
createdAt: string;
|
|
51
|
+
updatedAt: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface ConfigQuery {
|
|
55
|
+
scope?: string;
|
|
56
|
+
namespace?: string;
|
|
57
|
+
limit?: number;
|
|
58
|
+
offset?: number;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Storage interface for CLI configuration
|
|
63
|
+
* Uses browser-compatible storage APIs that work in both Node.js and browser contexts
|
|
64
|
+
*/
|
|
65
|
+
export interface ConfigStorageClient {
|
|
66
|
+
getConfig(): Promise<CLIConfig | null>;
|
|
67
|
+
setConfig(config: CLIConfig): Promise<void>;
|
|
68
|
+
|
|
69
|
+
getCurrentEnvironment(): Promise<EnvironmentConfig | null>;
|
|
70
|
+
setCurrentEnvironment(env: EnvironmentConfig): Promise<void>;
|
|
71
|
+
getAllEnvironments(): Promise<EnvironmentConfig[]>;
|
|
72
|
+
setEnvironment(env: EnvironmentConfig): Promise<void>;
|
|
73
|
+
deleteEnvironment(id: string): Promise<void>;
|
|
74
|
+
|
|
75
|
+
getCredentials(id: string): Promise<StoredCredentials | null>;
|
|
76
|
+
setCredentials(id: string, credentials: StoredCredentials): Promise<void>;
|
|
77
|
+
deleteCredentials(id: string): Promise<void>;
|
|
78
|
+
|
|
79
|
+
getEntry(scope: string, key: string): Promise<ConfigEntry | null>;
|
|
80
|
+
setEntry<T extends ConfigValue>(scope: string, key: string, value: T): Promise<void>;
|
|
81
|
+
deleteEntry(scope: string, key: string): Promise<void>;
|
|
82
|
+
queryEntries(query: ConfigQuery): Promise<ConfigEntry[]>;
|
|
83
|
+
|
|
84
|
+
getNamespace(scope: string): Promise<Record<string, ConfigValue>>;
|
|
85
|
+
get(key: string, scope?: string): Promise<ConfigValue | null>;
|
|
86
|
+
set(key: string, value: ConfigValue, scope?: string, encrypted?: boolean): Promise<void>;
|
|
87
|
+
delete(key: string, scope?: string): Promise<void>;
|
|
88
|
+
}
|