@vibesdotdev/cli 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 +41 -0
- package/SPEC.md +97 -0
- package/bin/vibes.ts +26 -0
- package/dist/api/client/factory.d.ts +29 -0
- package/dist/api/client/factory.d.ts.map +1 -0
- package/dist/api/client/factory.js +189 -0
- package/dist/api/client/factory.js.map +1 -0
- package/dist/api/schemas/common.d.ts +58 -0
- package/dist/api/schemas/common.d.ts.map +1 -0
- package/dist/api/schemas/common.js +48 -0
- package/dist/api/schemas/common.js.map +1 -0
- package/dist/api/schemas/types.d.ts +30 -0
- package/dist/api/schemas/types.d.ts.map +1 -0
- package/dist/api/schemas/types.js +2 -0
- package/dist/api/schemas/types.js.map +1 -0
- package/dist/api/services/api.d.ts +14 -0
- package/dist/api/services/api.d.ts.map +1 -0
- package/dist/api/services/api.js +110 -0
- package/dist/api/services/api.js.map +1 -0
- package/dist/api/types.d.ts +6 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +5 -0
- package/dist/api/types.js.map +1 -0
- package/dist/bin.d.ts +28 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +73 -0
- package/dist/bin.js.map +1 -0
- package/dist/bootstrap.d.ts +14 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +14 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/cli.plugin.d.ts +20 -0
- package/dist/cli.plugin.d.ts.map +1 -0
- package/dist/cli.plugin.js +170 -0
- package/dist/cli.plugin.js.map +1 -0
- package/dist/commands/completion/bash.d.ts +8 -0
- package/dist/commands/completion/bash.d.ts.map +1 -0
- package/dist/commands/completion/bash.js +60 -0
- package/dist/commands/completion/bash.js.map +1 -0
- package/dist/commands/completion/completion.descriptor.d.ts +10 -0
- package/dist/commands/completion/completion.descriptor.d.ts.map +1 -0
- package/dist/commands/completion/completion.descriptor.js +41 -0
- package/dist/commands/completion/completion.descriptor.js.map +1 -0
- package/dist/commands/completion/completion.impl.d.ts +12 -0
- package/dist/commands/completion/completion.impl.d.ts.map +1 -0
- package/dist/commands/completion/completion.impl.js +167 -0
- package/dist/commands/completion/completion.impl.js.map +1 -0
- package/dist/commands/completion/fig.d.ts +12 -0
- package/dist/commands/completion/fig.d.ts.map +1 -0
- package/dist/commands/completion/fig.js +71 -0
- package/dist/commands/completion/fig.js.map +1 -0
- package/dist/commands/completion/fish.d.ts +8 -0
- package/dist/commands/completion/fish.d.ts.map +1 -0
- package/dist/commands/completion/fish.js +38 -0
- package/dist/commands/completion/fish.js.map +1 -0
- package/dist/commands/completion/tree.d.ts +33 -0
- package/dist/commands/completion/tree.d.ts.map +1 -0
- package/dist/commands/completion/tree.js +75 -0
- package/dist/commands/completion/tree.js.map +1 -0
- package/dist/commands/completion/zsh-widget.d.ts +13 -0
- package/dist/commands/completion/zsh-widget.d.ts.map +1 -0
- package/dist/commands/completion/zsh-widget.js +39 -0
- package/dist/commands/completion/zsh-widget.js.map +1 -0
- package/dist/commands/completion/zsh.d.ts +9 -0
- package/dist/commands/completion/zsh.d.ts.map +1 -0
- package/dist/commands/completion/zsh.js +146 -0
- package/dist/commands/completion/zsh.js.map +1 -0
- package/dist/commands/profile/_utils.d.ts +21 -0
- package/dist/commands/profile/_utils.d.ts.map +1 -0
- package/dist/commands/profile/_utils.js +61 -0
- package/dist/commands/profile/_utils.js.map +1 -0
- package/dist/commands/profile/profile-group.descriptor.d.ts +4 -0
- package/dist/commands/profile/profile-group.descriptor.d.ts.map +1 -0
- package/dist/commands/profile/profile-group.descriptor.js +12 -0
- package/dist/commands/profile/profile-group.descriptor.js.map +1 -0
- package/dist/commands/profile/profile.create.descriptor.d.ts +4 -0
- package/dist/commands/profile/profile.create.descriptor.d.ts.map +1 -0
- package/dist/commands/profile/profile.create.descriptor.js +22 -0
- package/dist/commands/profile/profile.create.descriptor.js.map +1 -0
- package/dist/commands/profile/profile.create.impl.d.ts +10 -0
- package/dist/commands/profile/profile.create.impl.d.ts.map +1 -0
- package/dist/commands/profile/profile.create.impl.js +29 -0
- package/dist/commands/profile/profile.create.impl.js.map +1 -0
- package/dist/commands/profile/profile.delete.descriptor.d.ts +4 -0
- package/dist/commands/profile/profile.delete.descriptor.d.ts.map +1 -0
- package/dist/commands/profile/profile.delete.descriptor.js +29 -0
- package/dist/commands/profile/profile.delete.descriptor.js.map +1 -0
- package/dist/commands/profile/profile.delete.impl.d.ts +11 -0
- package/dist/commands/profile/profile.delete.impl.d.ts.map +1 -0
- package/dist/commands/profile/profile.delete.impl.js +50 -0
- package/dist/commands/profile/profile.delete.impl.js.map +1 -0
- package/dist/commands/profile/profile.info.descriptor.d.ts +4 -0
- package/dist/commands/profile/profile.info.descriptor.d.ts.map +1 -0
- package/dist/commands/profile/profile.info.descriptor.js +23 -0
- package/dist/commands/profile/profile.info.descriptor.js.map +1 -0
- package/dist/commands/profile/profile.info.impl.d.ts +10 -0
- package/dist/commands/profile/profile.info.impl.d.ts.map +1 -0
- package/dist/commands/profile/profile.info.impl.js +33 -0
- package/dist/commands/profile/profile.info.impl.js.map +1 -0
- package/dist/commands/profile/profile.list.descriptor.d.ts +4 -0
- package/dist/commands/profile/profile.list.descriptor.d.ts.map +1 -0
- package/dist/commands/profile/profile.list.descriptor.js +16 -0
- package/dist/commands/profile/profile.list.descriptor.js.map +1 -0
- package/dist/commands/profile/profile.list.impl.d.ts +10 -0
- package/dist/commands/profile/profile.list.impl.d.ts.map +1 -0
- package/dist/commands/profile/profile.list.impl.js +33 -0
- package/dist/commands/profile/profile.list.impl.js.map +1 -0
- package/dist/commands/profile/profile.use.descriptor.d.ts +4 -0
- package/dist/commands/profile/profile.use.descriptor.d.ts.map +1 -0
- package/dist/commands/profile/profile.use.descriptor.js +23 -0
- package/dist/commands/profile/profile.use.descriptor.js.map +1 -0
- package/dist/commands/profile/profile.use.impl.d.ts +10 -0
- package/dist/commands/profile/profile.use.impl.d.ts.map +1 -0
- package/dist/commands/profile/profile.use.impl.js +24 -0
- package/dist/commands/profile/profile.use.impl.js.map +1 -0
- package/dist/commands/runtime/_logging.d.ts +11 -0
- package/dist/commands/runtime/_logging.d.ts.map +1 -0
- package/dist/commands/runtime/_logging.js +40 -0
- package/dist/commands/runtime/_logging.js.map +1 -0
- package/dist/commands/runtime/codegen.command.descriptor.d.ts +15 -0
- package/dist/commands/runtime/codegen.command.descriptor.d.ts.map +1 -0
- package/dist/commands/runtime/codegen.command.descriptor.js +18 -0
- package/dist/commands/runtime/codegen.command.descriptor.js.map +1 -0
- package/dist/commands/runtime/codegen.command.impl.d.ts +4 -0
- package/dist/commands/runtime/codegen.command.impl.d.ts.map +1 -0
- package/dist/commands/runtime/codegen.command.impl.js +39 -0
- package/dist/commands/runtime/codegen.command.impl.js.map +1 -0
- package/dist/commands/runtime/codegen.d.ts +17 -0
- package/dist/commands/runtime/codegen.d.ts.map +1 -0
- package/dist/commands/runtime/codegen.js +65 -0
- package/dist/commands/runtime/codegen.js.map +1 -0
- package/dist/commands/runtime/index.d.ts +4 -0
- package/dist/commands/runtime/index.d.ts.map +1 -0
- package/dist/commands/runtime/index.js +8 -0
- package/dist/commands/runtime/index.js.map +1 -0
- package/dist/commands/runtime/plugin.d.ts +2 -0
- package/dist/commands/runtime/plugin.d.ts.map +1 -0
- package/dist/commands/runtime/plugin.js +7 -0
- package/dist/commands/runtime/plugin.js.map +1 -0
- package/dist/commands/runtime/runtime-group.descriptor.d.ts +4 -0
- package/dist/commands/runtime/runtime-group.descriptor.d.ts.map +1 -0
- package/dist/commands/runtime/runtime-group.descriptor.js +10 -0
- package/dist/commands/runtime/runtime-group.descriptor.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +11 -0
- package/dist/config.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/namespace/hook.d.ts +12 -0
- package/dist/core/namespace/hook.d.ts.map +1 -0
- package/dist/core/namespace/hook.js +15 -0
- package/dist/core/namespace/hook.js.map +1 -0
- package/dist/core/namespace/index.d.ts +18 -0
- package/dist/core/namespace/index.d.ts.map +1 -0
- package/dist/core/namespace/index.js +214 -0
- package/dist/core/namespace/index.js.map +1 -0
- package/dist/core/namespace/schemas/index.d.ts +25 -0
- package/dist/core/namespace/schemas/index.d.ts.map +1 -0
- package/dist/core/namespace/schemas/index.js +2 -0
- package/dist/core/namespace/schemas/index.js.map +1 -0
- package/dist/core/plugins/types.d.ts +81 -0
- package/dist/core/plugins/types.d.ts.map +1 -0
- package/dist/core/plugins/types.js +6 -0
- package/dist/core/plugins/types.js.map +1 -0
- package/dist/core/runtime/context.d.ts +25 -0
- package/dist/core/runtime/context.d.ts.map +1 -0
- package/dist/core/runtime/context.js +30 -0
- package/dist/core/runtime/context.js.map +1 -0
- package/dist/core/runtime/hooks.d.ts +12 -0
- package/dist/core/runtime/hooks.d.ts.map +1 -0
- package/dist/core/runtime/hooks.js +2 -0
- package/dist/core/runtime/hooks.js.map +1 -0
- package/dist/core/runtime/shared/context.d.ts +33 -0
- package/dist/core/runtime/shared/context.d.ts.map +1 -0
- package/dist/core/runtime/shared/context.js +51 -0
- package/dist/core/runtime/shared/context.js.map +1 -0
- package/dist/core/runtime/shared/options.d.ts +20 -0
- package/dist/core/runtime/shared/options.d.ts.map +1 -0
- package/dist/core/runtime/shared/options.js +61 -0
- package/dist/core/runtime/shared/options.js.map +1 -0
- package/dist/core/schemas/manifest.d.ts +24 -0
- package/dist/core/schemas/manifest.d.ts.map +1 -0
- package/dist/core/schemas/manifest.js +6 -0
- package/dist/core/schemas/manifest.js.map +1 -0
- package/dist/core/schemas/types.d.ts +7 -0
- package/dist/core/schemas/types.d.ts.map +1 -0
- package/dist/core/schemas/types.js +2 -0
- package/dist/core/schemas/types.js.map +1 -0
- package/dist/core/ui/interface.d.ts +12 -0
- package/dist/core/ui/interface.d.ts.map +1 -0
- package/dist/core/ui/interface.js +6 -0
- package/dist/core/ui/interface.js.map +1 -0
- package/dist/docs/cli.commands.docs.descriptor.d.ts +4 -0
- package/dist/docs/cli.commands.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/cli.commands.docs.descriptor.js +207 -0
- package/dist/docs/cli.commands.docs.descriptor.js.map +1 -0
- package/dist/docs/cli.groups.docs.descriptor.d.ts +4 -0
- package/dist/docs/cli.groups.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/cli.groups.docs.descriptor.js +330 -0
- package/dist/docs/cli.groups.docs.descriptor.js.map +1 -0
- package/dist/docs/cli.output.docs.descriptor.d.ts +4 -0
- package/dist/docs/cli.output.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/cli.output.docs.descriptor.js +442 -0
- package/dist/docs/cli.output.docs.descriptor.js.map +1 -0
- package/dist/docs/types.d.ts +19 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +2 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/errors.d.ts +74 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +113 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/cli-startup.logger.descriptor.d.ts +7 -0
- package/dist/logging/cli-startup.logger.descriptor.d.ts.map +1 -0
- package/dist/logging/cli-startup.logger.descriptor.js +13 -0
- package/dist/logging/cli-startup.logger.descriptor.js.map +1 -0
- package/dist/logging.d.ts +4 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +21 -0
- package/dist/logging.js.map +1 -0
- package/dist/patterns/config-namespace.d.ts +23 -0
- package/dist/patterns/config-namespace.d.ts.map +1 -0
- package/dist/patterns/config-namespace.js +218 -0
- package/dist/patterns/config-namespace.js.map +1 -0
- package/dist/patterns/crud.d.ts +23 -0
- package/dist/patterns/crud.d.ts.map +1 -0
- package/dist/patterns/crud.js +164 -0
- package/dist/patterns/crud.js.map +1 -0
- package/dist/patterns/index.d.ts +13 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +13 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/log-viewer.d.ts +19 -0
- package/dist/patterns/log-viewer.d.ts.map +1 -0
- package/dist/patterns/log-viewer.js +74 -0
- package/dist/patterns/log-viewer.js.map +1 -0
- package/dist/patterns/pattern-types.d.ts +21 -0
- package/dist/patterns/pattern-types.d.ts.map +1 -0
- package/dist/patterns/pattern-types.js +7 -0
- package/dist/patterns/pattern-types.js.map +1 -0
- package/dist/patterns/process-manager.d.ts +21 -0
- package/dist/patterns/process-manager.d.ts.map +1 -0
- package/dist/patterns/process-manager.js +134 -0
- package/dist/patterns/process-manager.js.map +1 -0
- package/dist/patterns/resolver.contracts.d.ts +14 -0
- package/dist/patterns/resolver.contracts.d.ts.map +1 -0
- package/dist/patterns/resolver.contracts.js +9 -0
- package/dist/patterns/resolver.contracts.js.map +1 -0
- package/dist/patterns/resolver.d.ts +40 -0
- package/dist/patterns/resolver.d.ts.map +1 -0
- package/dist/patterns/resolver.js +63 -0
- package/dist/patterns/resolver.js.map +1 -0
- package/dist/patterns/schemas.d.ts +496 -0
- package/dist/patterns/schemas.d.ts.map +1 -0
- package/dist/patterns/schemas.js +105 -0
- package/dist/patterns/schemas.js.map +1 -0
- package/dist/patterns/tool-wrapper.d.ts +18 -0
- package/dist/patterns/tool-wrapper.d.ts.map +1 -0
- package/dist/patterns/tool-wrapper.js +130 -0
- package/dist/patterns/tool-wrapper.js.map +1 -0
- package/dist/providers.d.ts +105 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +164 -0
- package/dist/providers.js.map +1 -0
- package/dist/schemas/descriptors.d.ts +130 -0
- package/dist/schemas/descriptors.d.ts.map +1 -0
- package/dist/schemas/descriptors.js +96 -0
- package/dist/schemas/descriptors.js.map +1 -0
- package/dist/schemas/surface.d.ts +40 -0
- package/dist/schemas/surface.d.ts.map +1 -0
- package/dist/schemas/surface.js +2 -0
- package/dist/schemas/surface.js.map +1 -0
- package/dist/schemas/types.d.ts +202 -0
- package/dist/schemas/types.d.ts.map +1 -0
- package/dist/schemas/types.js +2 -0
- package/dist/schemas/types.js.map +1 -0
- package/dist/support/ui-toolkit.d.ts +62 -0
- package/dist/support/ui-toolkit.d.ts.map +1 -0
- package/dist/support/ui-toolkit.js +172 -0
- package/dist/support/ui-toolkit.js.map +1 -0
- package/dist/surface/CLISurface.d.ts +16 -0
- package/dist/surface/CLISurface.d.ts.map +1 -0
- package/dist/surface/CLISurface.js +173 -0
- package/dist/surface/CLISurface.js.map +1 -0
- package/dist/surface/attach-tui-action.d.ts +12 -0
- package/dist/surface/attach-tui-action.d.ts.map +1 -0
- package/dist/surface/attach-tui-action.js +48 -0
- package/dist/surface/attach-tui-action.js.map +1 -0
- package/dist/surface/build-context.d.ts +4 -0
- package/dist/surface/build-context.d.ts.map +1 -0
- package/dist/surface/build-context.js +49 -0
- package/dist/surface/build-context.js.map +1 -0
- package/dist/surface/command-group-policy.d.ts +7 -0
- package/dist/surface/command-group-policy.d.ts.map +1 -0
- package/dist/surface/command-group-policy.js +42 -0
- package/dist/surface/command-group-policy.js.map +1 -0
- package/dist/surface/discovery-cache.d.ts +17 -0
- package/dist/surface/discovery-cache.d.ts.map +1 -0
- package/dist/surface/discovery-cache.js +106 -0
- package/dist/surface/discovery-cache.js.map +1 -0
- package/dist/surface/register-commands.d.ts +15 -0
- package/dist/surface/register-commands.d.ts.map +1 -0
- package/dist/surface/register-commands.js +197 -0
- package/dist/surface/register-commands.js.map +1 -0
- package/dist/surface/register-groups.d.ts +15 -0
- package/dist/surface/register-groups.d.ts.map +1 -0
- package/dist/surface/register-groups.js +52 -0
- package/dist/surface/register-groups.js.map +1 -0
- package/dist/surface.d.ts +9 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +8 -0
- package/dist/surface.js.map +1 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/schemas/types.d.ts +2 -0
- package/dist/ui/schemas/types.d.ts.map +1 -0
- package/dist/ui/schemas/types.js +2 -0
- package/dist/ui/schemas/types.js.map +1 -0
- package/dist/ui/toolkit/VibesUIToolkit.d.ts +2 -0
- package/dist/ui/toolkit/VibesUIToolkit.d.ts.map +1 -0
- package/dist/ui/toolkit/VibesUIToolkit.js +2 -0
- package/dist/ui/toolkit/VibesUIToolkit.js.map +1 -0
- package/dist/ui.context.descriptor.d.ts +21 -0
- package/dist/ui.context.descriptor.d.ts.map +1 -0
- package/dist/ui.context.descriptor.js +12 -0
- package/dist/ui.context.descriptor.js.map +1 -0
- package/dist/utils/open.d.ts +2 -0
- package/dist/utils/open.d.ts.map +1 -0
- package/dist/utils/open.js +30 -0
- package/dist/utils/open.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +186 -0
- package/src/api/client/factory.ts +265 -0
- package/src/api/schemas/common.ts +50 -0
- package/src/api/schemas/types.ts +32 -0
- package/src/api/services/api.ts +129 -0
- package/src/api/types.ts +12 -0
- package/src/bin.ts +84 -0
- package/src/bootstrap.ts +19 -0
- package/src/cli.plugin.d.ts +19 -0
- package/src/cli.plugin.ts +202 -0
- package/src/commands/completion/bash.ts +68 -0
- package/src/commands/completion/completion.descriptor.ts +48 -0
- package/src/commands/completion/completion.impl.ts +188 -0
- package/src/commands/completion/fig.ts +78 -0
- package/src/commands/completion/fish.ts +52 -0
- package/src/commands/completion/tree.ts +115 -0
- package/src/commands/completion/zsh-widget.ts +39 -0
- package/src/commands/completion/zsh.ts +165 -0
- package/src/commands/profile/_utils.ts +72 -0
- package/src/commands/profile/profile-group.descriptor.ts +14 -0
- package/src/commands/profile/profile.create.descriptor.ts +24 -0
- package/src/commands/profile/profile.create.impl.ts +44 -0
- package/src/commands/profile/profile.delete.descriptor.ts +31 -0
- package/src/commands/profile/profile.delete.impl.ts +71 -0
- package/src/commands/profile/profile.info.descriptor.ts +25 -0
- package/src/commands/profile/profile.info.impl.ts +51 -0
- package/src/commands/profile/profile.list.descriptor.ts +18 -0
- package/src/commands/profile/profile.list.impl.ts +46 -0
- package/src/commands/profile/profile.use.descriptor.ts +25 -0
- package/src/commands/profile/profile.use.impl.ts +39 -0
- package/src/commands/runtime/_logging.ts +47 -0
- package/src/commands/runtime/codegen.command.descriptor.ts +18 -0
- package/src/commands/runtime/codegen.command.impl.ts +44 -0
- package/src/commands/runtime/codegen.ts +84 -0
- package/src/commands/runtime/index.ts +14 -0
- package/src/commands/runtime/plugin.ts +7 -0
- package/src/commands/runtime/runtime-group.descriptor.ts +12 -0
- package/src/config.ts +22 -0
- package/src/core/index.ts +9 -0
- package/src/core/namespace/hook.ts +25 -0
- package/src/core/namespace/index.ts +298 -0
- package/src/core/namespace/schemas/index.ts +25 -0
- package/src/core/plugins/types.ts +87 -0
- package/src/core/runtime/context.ts +50 -0
- package/src/core/runtime/hooks.ts +12 -0
- package/src/core/runtime/shared/context.ts +65 -0
- package/src/core/runtime/shared/options.ts +60 -0
- package/src/core/schemas/manifest.ts +26 -0
- package/src/core/schemas/types.ts +6 -0
- package/src/core/ui/interface.ts +12 -0
- package/src/docs/cli.commands.docs.descriptor.ts +210 -0
- package/src/docs/cli.groups.docs.descriptor.ts +333 -0
- package/src/docs/cli.output.docs.descriptor.ts +445 -0
- package/src/docs/types.ts +18 -0
- package/src/errors.ts +123 -0
- package/src/index.ts +76 -0
- package/src/logging/cli-startup.logger.descriptor.ts +16 -0
- package/src/logging.ts +35 -0
- package/src/patterns/config-namespace.ts +251 -0
- package/src/patterns/crud.ts +217 -0
- package/src/patterns/index.ts +24 -0
- package/src/patterns/log-viewer.ts +118 -0
- package/src/patterns/pattern-types.ts +22 -0
- package/src/patterns/process-manager.ts +180 -0
- package/src/patterns/resolver.contracts.ts +15 -0
- package/src/patterns/resolver.ts +86 -0
- package/src/patterns/schemas.ts +146 -0
- package/src/patterns/tool-wrapper.ts +165 -0
- package/src/providers.ts +282 -0
- package/src/schemas/descriptors.d.ts +119 -0
- package/src/schemas/descriptors.ts +136 -0
- package/src/schemas/surface.ts +52 -0
- package/src/schemas/types.d.ts +195 -0
- package/src/schemas/types.ts +225 -0
- package/src/support/ui-toolkit.ts +224 -0
- package/src/surface/CLISurface.ts +193 -0
- package/src/surface/attach-tui-action.ts +76 -0
- package/src/surface/build-context.ts +49 -0
- package/src/surface/command-group-policy.ts +52 -0
- package/src/surface/discovery-cache.ts +143 -0
- package/src/surface/register-commands.ts +266 -0
- package/src/surface/register-groups.ts +84 -0
- package/src/surface.ts +9 -0
- package/src/types.ts +3 -0
- package/src/ui/schemas/types.ts +1 -0
- package/src/ui/toolkit/VibesUIToolkit.ts +1 -0
- package/src/ui.context.descriptor.ts +13 -0
- package/src/utils/open.ts +36 -0
- package/src/version.ts +10 -0
package/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# @vibesdotdev/cli
|
|
2
|
+
|
|
3
|
+
The CLI surface for **vibes**. This is a library, not a binary — host apps (`apps/cli-bin`) compose it to produce the `vibes` executable.
|
|
4
|
+
|
|
5
|
+
## What it is
|
|
6
|
+
|
|
7
|
+
`packages/cli` turns runtime descriptors into a Commander.js command tree. Feature packages register `cli/group` and `cli/command` descriptors against the runtime; this package walks those descriptors, applies scope filters, and renders them as commands, help text, and shell completions.
|
|
8
|
+
|
|
9
|
+
It does **not** own:
|
|
10
|
+
|
|
11
|
+
- The compiled binary or startup glue → `apps/cli-bin`.
|
|
12
|
+
- The published npm wrapper → `packages/cli-bin`.
|
|
13
|
+
- Any specific command's behavior — domain logic lives in the feature package that registered it.
|
|
14
|
+
|
|
15
|
+
## How it's consumed
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { CLISurface } from '@vibesdotdev/cli';
|
|
19
|
+
import { cliPlugin } from '@vibesdotdev/cli/plugin';
|
|
20
|
+
|
|
21
|
+
// Register the CLI plugin with the runtime, then build the surface
|
|
22
|
+
// against the runtime's resolved descriptor tree.
|
|
23
|
+
const surface = new CLISurface({ runtime, scope });
|
|
24
|
+
await surface.run(process.argv);
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Hosts also commonly import:
|
|
28
|
+
|
|
29
|
+
- `@vibesdotdev/cli/plugin` — the runtime plugin that registers `cli/group` and `cli/command` kinds.
|
|
30
|
+
- `@vibesdotdev/cli/config` — `defineConfig` and config types for user `vibes.config.*` files.
|
|
31
|
+
|
|
32
|
+
Shell completions for the live descriptor tree are emitted via `vibes completion bash|zsh|fish|fig`, implemented inside this package.
|
|
33
|
+
|
|
34
|
+
## Known issues
|
|
35
|
+
|
|
36
|
+
- The **dev binary currently crashes during runtime bootstrap** with a descriptor collision (`Global ID collision for 'ai/context.ui:chat-messages.form'`). Tracked under the FIRST-LAUNCH P0 cleanup — see [docs/dx/FIRST-LAUNCH-2026-05.md](../../docs/dx/FIRST-LAUNCH-2026-05.md). Until that lands, `vibes --help` will not print help.
|
|
37
|
+
- The package re-exports a wide subdirectory tree via wildcard `exports`; prefer the documented top-level entry points (`.`, `./plugin`, `./config`) when consuming from another package.
|
|
38
|
+
|
|
39
|
+
## Authoritative spec
|
|
40
|
+
|
|
41
|
+
For ownership boundaries, runtime contract, and non-goals, see [SPEC.md](./SPEC.md).
|
package/SPEC.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# @vibesdotdev/cli
|
|
2
|
+
|
|
3
|
+
Command-surface substrate: turns runtime `cli/group` and `cli/command` descriptors into a Commander.js CLI tree. Registers the CLI kinds, discovers and renders commands from the live descriptor graph, provides pattern-based command generation (CRUD, config-namespace, tool-wrapper, log-viewer, process-manager), shell completion, and CLI-scoped context providers (UI, logger, app, output-format). Does not own domain behavior — every command's logic lives in the owning feature package; cli only adapts and renders it.
|
|
4
|
+
|
|
5
|
+
## Owns
|
|
6
|
+
|
|
7
|
+
- **Bootstrap composition** (`./bootstrap`): `createVibesCliApp({ loader, defaultPlugins, ... })` — composes the runtime loader, core plugins, project-config plugin overrides, and the CLISurface. Accepts a statically-imported `defaultPlugins` set so `bun build --compile` can satisfy the Bundle Selection Rule.
|
|
8
|
+
- **Binary entrypoint** (`./bin/vibes.ts`): `#!/usr/bin/env bun` wrapper calling `createVibesCliApp({ defaultPlugins })`; used by `bunx @vibesdotdev/cli` and the compiled binary wrapper at `apps/cli-bin/src/bin/vibes.ts`.
|
|
9
|
+
- **Runtime kinds:** `cli/group`, `cli/command`
|
|
10
|
+
- **Plugin descriptors:** `cli.plugin` registers the two CLI kinds + the built-in `completion` (`cli/command`) descriptor; depends on `context` kind
|
|
11
|
+
- **CLISurface** (`./surface`): Commander.js program lifecycle — initialize (register providers → resolve patterns → discover groups → discover commands), run (parse argv, dispatch, handle errors)
|
|
12
|
+
- `register-groups.ts` — depth-first group sorting, parent-chain resolution, pattern delegation
|
|
13
|
+
- `register-commands.ts` — argument/option mapping, pattern detection, TUI bridging, implementation resolution via `runtime.query().resolve()`
|
|
14
|
+
- `build-context.ts` — assembles `CommandContext` (runtime + ui + logger + app + config) with fallback lookups
|
|
15
|
+
- `attach-tui-action.ts` — dynamic import bridge for commands with `tuiAppId`
|
|
16
|
+
- `command-group-policy.ts` — allowed root-fallback groups; orphan detection
|
|
17
|
+
- **Pattern system** (`./patterns`): declarative command generation from descriptors
|
|
18
|
+
- `resolver.ts` — `PatternResolver` registry + factory wiring all 5 built-in patterns
|
|
19
|
+
- `crud.ts` — list/get/create/update/delete against any storage kind
|
|
20
|
+
- `config-namespace.ts` — get/set/reset/list for a config namespace
|
|
21
|
+
- `tool-wrapper.ts` — wraps a `tools/tool` asset as a CLI command
|
|
22
|
+
- `log-viewer.ts` — tail/search/levels for log streaming
|
|
23
|
+
- `process-manager.ts` — start/stop/restart/status/logs for daemon processes
|
|
24
|
+
- `schemas.ts` — Zod schemas + type guards for all 5 pattern variants
|
|
25
|
+
- **Descriptor schemas** (`./schemas`): Zod schemas for `cli/group`, `cli/command`; TypeScript module augmentation for the runtime registry; `CLISurfaceOptions`, `CommandContext`
|
|
26
|
+
- **CLI context providers** (`./providers`): registers 5 context loaders with the runtime — `cli/ui` (terminal output), `cli/logger` (cli-namespaced logging), `cli/app` (app-level state), `cli/invocation` (invocation metadata), `cli/output-format` (json/yaml/text detection); also exports `detectOutputFormat()`, `requestCLIExit()`, `shouldKeepAlive()`, `resetKeepAlive()`, `CLIExitSignal`
|
|
27
|
+
- **Error types** (`./errors`): `CLIError` hierarchy — `CommandNotFound`, `InvalidArgument`, `MissingArgument`, `AuthRequired`, `PermissionDenied`, `NotFound`, `Config`, `Network`, `Timeout`, `UserCancelled`
|
|
28
|
+
- **Shell completion** (`./commands/completion`): bash, zsh (including widget), fish, Fig spec generators — rendered from the live descriptor tree
|
|
29
|
+
- **UI toolkit** (`./support/ui-toolkit`): `VibesUIToolkit` — terminal formatting (json/yaml/table/markdown), interactive prompts (prompt/confirm/select/multiselect), progress reporting
|
|
30
|
+
- **Binary path resolution** (`./bin`): monorepo-aware `vibes` binary discovery + worker invocation command builder
|
|
31
|
+
- **Config facade** (`./config`): re-exports `VibesAppConfig`/`PluginsConfig` from `@vibesdotdev/runtime/config` and provides `defineConfig()` typed for project-level `vibes.config.ts`. The CLI does not own the config schema — that lives in `runtime/config`; the facade exists so projects don't need to import from `runtime` directly.
|
|
32
|
+
- **Logging shim** (`./logging`): `'cli'`-namespaced logger singleton wrapping `@vibesdotdev/logging`
|
|
33
|
+
- **Open utility** (`./utils/open`): cross-platform `open(url)`
|
|
34
|
+
- **CLI-startup logger descriptor** (`./logging/cli-startup.logger.descriptor.ts`): registers `'cli-startup'` logger under `'cli:startup'`
|
|
35
|
+
- **UI context descriptor** (`./ui.context.descriptor.ts`): declares `cli/ui` as consumer-hardware-only
|
|
36
|
+
|
|
37
|
+
## Does not own
|
|
38
|
+
|
|
39
|
+
- Domain business logic, data access layers, storage engines, encryption, or CRUD services → owning feature packages (e.g., config domain → [`config`](../config/SPEC.md), auth → [`auth-system`](../auth-system/SPEC.md)). CLI is a rendering adapter only.
|
|
40
|
+
- Binary compilation/distribution → [`cli-bin`](../cli-bin/SPEC.md) (wraps `packages/cli/bin/vibes.ts`).
|
|
41
|
+
- Runtime loader implementation → [`runtime-bun`](../runtime-bun/SPEC.md) (Bun), [`runtime`](../runtime/SPEC.md) (interface).
|
|
42
|
+
- TUI substrate (gateway, dispatcher, kinds, React hosting) → [`tui`](../tui/SPEC.md). CLI bridges to TUI via `attach-tui-action.ts` but does not own it.
|
|
43
|
+
- Runtime plugin infrastructure, kind registration protocol, resolver chain → [`runtime`](../runtime/SPEC.md). CLI consumes kinds; it does not define the plugin contract.
|
|
44
|
+
- Workspace data model, project state, active-project tracking → [`workspace`](../workspace/SPEC.md).
|
|
45
|
+
- Auth credentials, session tokens, login flows → [`auth-system`](../auth-system/SPEC.md).
|
|
46
|
+
- HTTP client construction, API connection testing, session refresh → [`client`](../client/SPEC.md). CLI may consume a resolved client; it must not build one.
|
|
47
|
+
- Config storage backends (LocalDB, JSON file, encryption) → [`config`](../config/SPEC.md) + [`storage`](../storage/SPEC.md).
|
|
48
|
+
- MCP protocol, transport, server lifecycle → [`mcp`](../mcp/SPEC.md).
|
|
49
|
+
- Process manager engine, daemon lifecycle, resource registry → [`pm`](../pm/SPEC.md). CLI wraps PM via the `process-manager` pattern only.
|
|
50
|
+
|
|
51
|
+
## Hard rules
|
|
52
|
+
|
|
53
|
+
- **CLI is a descriptor rendering layer, not a domain owner.** Every command's execute path must resolve to an implementation owned by a feature package. CLI code must not contain business logic, validation rules, data transformations, or state mutations that belong in a domain package.
|
|
54
|
+
- **All commands register through the descriptor surface.** Imperative `parent.command(...)` calls outside of `patterns/*` and `commands/completion/` are forbidden. Feature packages export `cli/command` descriptors; CLISurface discovers and renders them.
|
|
55
|
+
- **No upstream package may import domain code from CLI.** `packages/cli` is a leaf/consumer package. New imports into `src/app/`, `src/api/`, or `src/core/` from any non-CLI package are blocked.
|
|
56
|
+
- **No direct storage / database access.** CLI code must not import `@vibesdotdev/localdb`, run raw SQL, construct database connections, or manage migration scripts. All data access flows through runtime-resolved assets or context-provided services.
|
|
57
|
+
- **No mutable global singletons.** The `getContext()/setContext()` pattern in `core/runtime/context.ts` is banned for new code. All context flows through the runtime's context injection system.
|
|
58
|
+
- **Patterns are pure CLI translation layers.** Pattern implementations must only map descriptors to Commander.js arguments/options and delegate execution to the resolved implementation. No business logic beyond CLI input coercion.
|
|
59
|
+
- **Completion is derived from the live descriptor tree.** Shell completion output reflects the current registered descriptors without changes to the completion module when new commands are added.
|
|
60
|
+
- **Error types map to deterministic exit codes.** Every `CLIError` subclass has a deterministic exit code. Domain errors are wrapped, not raw. CLI layer formats user-facing errors; it must not expose internal stack traces in normal operation.
|
|
61
|
+
- **Tolerant surface, strict audit.** `strictCommandGroups` and `strictGroupParents` default to off — a config-driven plugin set will routinely produce orphaned descriptors and the surface drops them quietly (warns under `--verbose`). Strict mode is opt-in via the bootstrap `strict` option or `VIBES_CLI_STRICT=1` and is reserved for CI / descriptor audits.
|
|
62
|
+
|
|
63
|
+
## Migration debt (not yet executed)
|
|
64
|
+
|
|
65
|
+
- **`src/app/config/` (~40 files)** — full config domain module: SQLite-backed `ConfigStorageService` (raw SQL, migrations), AES-256-GCM encryption service, config business logic monolith (`executeConfig*`), config loader facade, entity config service, imperative Commander.js command registrations. Belongs in [`config`](../config/SPEC.md). **Blocked on:** config package stabilization + migration of all importers off the CLI-internal loader.
|
|
66
|
+
- **`src/api/`** — HTTP client factory + API test/debug service. Belongs in [`client`](../client/SPEC.md).
|
|
67
|
+
- **`src/core/`** — legacy compatibility shims: mutable global `_context` singleton, file-based JSON namespace registry, legacy plugin/hook types.
|
|
68
|
+
- **`src/commands/runtime/`** — imperative codegen command registration. Should be a `cli/command` descriptor owned by [`tools`](../tools/SPEC.md).
|
|
69
|
+
- **Wildcard exports** in `package.json` — `./*`, `./*/*`, `./*/*/*`, `./*/*/*/*` must be replaced with explicit named entrypoints after migration debt clears.
|
|
70
|
+
|
|
71
|
+
## Public entrypoints
|
|
72
|
+
|
|
73
|
+
Canonical (stable):
|
|
74
|
+
- `.` — `createVibesCliApp`, `VibesCliAppOptions`, `VibesCliApp`, `CliPluginLoader`, `CLISurface`, `CLISurfaceOptions`, `CommandContext`, `cliPlugin`, pattern types/errors/providers/bin utilities
|
|
75
|
+
- `./bootstrap` — `createVibesCliApp`, types (also re-exported from `.`)
|
|
76
|
+
- `./plugin` — default export: `cliPlugin`
|
|
77
|
+
- `./config` — `VibesAppConfig`, `PluginsConfig`, `VibesConfig`, `defineConfig()`
|
|
78
|
+
|
|
79
|
+
Migration-era (do not normalize new code against):
|
|
80
|
+
- `./app/config/loader*` — domain leak; target home is [`config`](../config/SPEC.md)
|
|
81
|
+
- `./core` — legacy shim; do not import in new code
|
|
82
|
+
- Wildcard `./*` paths — will be replaced after migration debt clears
|
|
83
|
+
|
|
84
|
+
## Verification
|
|
85
|
+
|
|
86
|
+
`bun test` from package root. Covers descriptor schema validation, pattern resolution (all 5 built-in patterns), group registration ordering, command scope filtering, completion generation (bash/zsh/fish/fig), error-type exit-code mapping, context provider registration.
|
|
87
|
+
|
|
88
|
+
## Links
|
|
89
|
+
|
|
90
|
+
- [runtime/SPEC.md](../runtime/SPEC.md)
|
|
91
|
+
- [config/SPEC.md](../config/SPEC.md)
|
|
92
|
+
- [tui/SPEC.md](../tui/SPEC.md)
|
|
93
|
+
- [tools/SPEC.md](../tools/SPEC.md)
|
|
94
|
+
- [cli-bin/SPEC.md](../cli-bin/SPEC.md)
|
|
95
|
+
- [storage/SPEC.md](../storage/SPEC.md)
|
|
96
|
+
- [SPEC-AUDIT.md](../../docs/architecture/SPEC-AUDIT.md)
|
|
97
|
+
- [RUNTIME-FIRST-MODULES.md](../../docs/architecture/RUNTIME-FIRST-MODULES.md)
|
package/bin/vibes.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* Vibes CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Used by `bunx @vibesdotdev/cli` and the compiled binary wrapper at
|
|
6
|
+
* `apps/cli-bin/src/bin/vibes.ts`. Both paths now route through the
|
|
7
|
+
* dedicated runtime surface package for bootstrap.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { createVibesCliApp } from "@vibesdotdev/runtime-surface-cli";
|
|
11
|
+
|
|
12
|
+
async function main(): Promise<void> {
|
|
13
|
+
const app = await createVibesCliApp({
|
|
14
|
+
defaultPlugins: [],
|
|
15
|
+
verbose: process.argv.includes("-v") || process.argv.includes("--verbose"),
|
|
16
|
+
includeInternal: false,
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
await app.cli.run(process.argv);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
main().catch((error: unknown) => {
|
|
23
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
24
|
+
process.stderr.write(`\n[FATAL] ${msg}\n`);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API client factory - creates configured clients for CLI commands
|
|
3
|
+
* This is the central service that replaces direct database access
|
|
4
|
+
* Uses the cfg -> env -> auth hooks system for configuration
|
|
5
|
+
*/
|
|
6
|
+
import type { RuntimeContext } from '../types.ts';
|
|
7
|
+
import type { APIClientConfig } from '../schemas/types.ts';
|
|
8
|
+
import { VibesClient } from '@vibesdotdev/client/core';
|
|
9
|
+
/**
|
|
10
|
+
* Create a configured API client using current environment and auth settings
|
|
11
|
+
* This is what ALL CLI modules should use instead of direct database access
|
|
12
|
+
*
|
|
13
|
+
* Uses the hooks system: cfg -> env -> auth -> api
|
|
14
|
+
*/
|
|
15
|
+
export declare function createConfiguredClient(context?: RuntimeContext): Promise<VibesClient>;
|
|
16
|
+
/**
|
|
17
|
+
* Create API client configuration for debugging/inspection
|
|
18
|
+
*/
|
|
19
|
+
export declare function createAPIClientConfig(context?: RuntimeContext): Promise<APIClientConfig>;
|
|
20
|
+
/**
|
|
21
|
+
* Test API connection
|
|
22
|
+
*/
|
|
23
|
+
export declare function testAPIConnection(endpoint?: string, context?: RuntimeContext): Promise<{
|
|
24
|
+
success: boolean;
|
|
25
|
+
status: number;
|
|
26
|
+
latency: number;
|
|
27
|
+
error?: string;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/api/client/factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAgIvD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CA2B3F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAkD9F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACtC,QAAQ,SAAgB,EACxB,OAAO,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAyBD"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API client factory - creates configured clients for CLI commands
|
|
3
|
+
* This is the central service that replaces direct database access
|
|
4
|
+
* Uses the cfg -> env -> auth hooks system for configuration
|
|
5
|
+
*/
|
|
6
|
+
import { getRuntimeEnv } from '@vibesdotdev/runtime';
|
|
7
|
+
import { apiClientConfigSchema } from "../schemas/common.js";
|
|
8
|
+
import { VibesClient } from '@vibesdotdev/client/core';
|
|
9
|
+
import { createCLIClient, createHttp2Fetch } from '@vibesdotdev/client/node';
|
|
10
|
+
import { getContext } from '@vibesdotdev/cli/core/runtime/context';
|
|
11
|
+
function getRuntimeEnvironment(context) {
|
|
12
|
+
const runtimeCtx = context ?? {};
|
|
13
|
+
const environment = (runtimeCtx.environment ?? getContext().environment);
|
|
14
|
+
return environment ?? null;
|
|
15
|
+
}
|
|
16
|
+
async function resolveDebugFlag(context) {
|
|
17
|
+
const runtimeCtx = context ?? {};
|
|
18
|
+
const ctxWithConfig = (runtimeCtx.config ? runtimeCtx : getContext());
|
|
19
|
+
if (!ctxWithConfig.config?.get) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const debug = await ctxWithConfig.config.get('debug', 'global');
|
|
24
|
+
return typeof debug === 'boolean' ? debug : false;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function buildAuthConfig(credentials, baseUrl) {
|
|
31
|
+
if (!credentials) {
|
|
32
|
+
return { type: 'none' };
|
|
33
|
+
}
|
|
34
|
+
if (credentials.apiKey) {
|
|
35
|
+
return { type: 'apiKey', credentials: credentials.apiKey };
|
|
36
|
+
}
|
|
37
|
+
if (credentials.sessionToken) {
|
|
38
|
+
return {
|
|
39
|
+
type: 'bearer',
|
|
40
|
+
tokenProvider: async () => credentials.sessionToken ?? null,
|
|
41
|
+
refreshHandler: async () => {
|
|
42
|
+
if (!credentials.refreshToken)
|
|
43
|
+
return null;
|
|
44
|
+
try {
|
|
45
|
+
const response = await fetch(`${baseUrl}/api/auth/session`, {
|
|
46
|
+
method: 'POST',
|
|
47
|
+
headers: { 'Content-Type': 'application/json' },
|
|
48
|
+
body: JSON.stringify({ refreshToken: credentials.refreshToken })
|
|
49
|
+
});
|
|
50
|
+
if (!response.ok) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const data = (await response.json());
|
|
54
|
+
if (!data.token) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
type: 'bearer',
|
|
59
|
+
credentials: data.token,
|
|
60
|
+
tokenProvider: async () => data.token ?? null
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return { type: 'none' };
|
|
70
|
+
}
|
|
71
|
+
function applyEnvironmentHeaders(config, headers) {
|
|
72
|
+
if (!headers || Object.keys(headers).length === 0) {
|
|
73
|
+
return config;
|
|
74
|
+
}
|
|
75
|
+
const beforeRequest = async (request) => {
|
|
76
|
+
const updated = new Headers(request.headers);
|
|
77
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
78
|
+
if (value !== undefined) {
|
|
79
|
+
updated.set(key, value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return new Request(request, { headers: updated });
|
|
83
|
+
};
|
|
84
|
+
return {
|
|
85
|
+
...config,
|
|
86
|
+
hooks: {
|
|
87
|
+
...config.hooks,
|
|
88
|
+
beforeRequest
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create a configured API client using current environment and auth settings
|
|
94
|
+
* This is what ALL CLI modules should use instead of direct database access
|
|
95
|
+
*
|
|
96
|
+
* Uses the hooks system: cfg -> env -> auth -> api
|
|
97
|
+
*/
|
|
98
|
+
export async function createConfiguredClient(context) {
|
|
99
|
+
const runtimeCtx = context ?? getContext();
|
|
100
|
+
const environment = getRuntimeEnvironment(runtimeCtx);
|
|
101
|
+
const credentials = (runtimeCtx?.authCredentials ??
|
|
102
|
+
getContext().authCredentials);
|
|
103
|
+
const resolvedBaseUrl = environment?.data?.apiUrl ??
|
|
104
|
+
environment?.url ??
|
|
105
|
+
getRuntimeEnv('VIBES_API_URL');
|
|
106
|
+
const baseUrl = resolvedBaseUrl ?? 'http://localhost:5173';
|
|
107
|
+
const debug = await resolveDebugFlag(runtimeCtx);
|
|
108
|
+
const initialConfig = {
|
|
109
|
+
baseUrl,
|
|
110
|
+
auth: buildAuthConfig(credentials, baseUrl),
|
|
111
|
+
debug,
|
|
112
|
+
fetch: createHttp2Fetch(baseUrl)
|
|
113
|
+
};
|
|
114
|
+
const configWithHeaders = applyEnvironmentHeaders(initialConfig, environment?.data?.headers ?? environment?.headers);
|
|
115
|
+
return createCLIClient(configWithHeaders);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Create API client configuration for debugging/inspection
|
|
119
|
+
*/
|
|
120
|
+
export async function createAPIClientConfig(context) {
|
|
121
|
+
const runtimeCtx = context ?? getContext();
|
|
122
|
+
const environment = getRuntimeEnvironment(runtimeCtx);
|
|
123
|
+
if (!environment) {
|
|
124
|
+
throw new Error('No environment configured');
|
|
125
|
+
}
|
|
126
|
+
const baseUrl = environment.data?.apiUrl ?? environment.url;
|
|
127
|
+
if (!baseUrl) {
|
|
128
|
+
throw new Error('No environment configured');
|
|
129
|
+
}
|
|
130
|
+
const credentials = (runtimeCtx?.authCredentials ??
|
|
131
|
+
getContext().authCredentials);
|
|
132
|
+
const auth = credentials?.apiKey
|
|
133
|
+
? { type: 'apiKey', apiKey: credentials.apiKey }
|
|
134
|
+
: credentials?.sessionToken
|
|
135
|
+
? {
|
|
136
|
+
type: 'session',
|
|
137
|
+
sessionToken: credentials.sessionToken,
|
|
138
|
+
refreshToken: credentials.refreshToken ?? undefined
|
|
139
|
+
}
|
|
140
|
+
: { type: 'none' };
|
|
141
|
+
const tierCandidate = environment.data && typeof environment.data === 'object'
|
|
142
|
+
? environment.data.tier
|
|
143
|
+
: undefined;
|
|
144
|
+
const tier = tierCandidate === 'dev' ||
|
|
145
|
+
tierCandidate === 'staging' ||
|
|
146
|
+
tierCandidate === 'production' ||
|
|
147
|
+
tierCandidate === 'local'
|
|
148
|
+
? tierCandidate
|
|
149
|
+
: 'local';
|
|
150
|
+
const debug = await resolveDebugFlag(runtimeCtx);
|
|
151
|
+
return apiClientConfigSchema.parse({
|
|
152
|
+
baseUrl,
|
|
153
|
+
environment: environment.name ?? 'local',
|
|
154
|
+
tier,
|
|
155
|
+
auth,
|
|
156
|
+
headers: environment.data?.headers ?? environment.headers,
|
|
157
|
+
timeout: 30000,
|
|
158
|
+
retries: 3,
|
|
159
|
+
debug
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Test API connection
|
|
164
|
+
*/
|
|
165
|
+
export async function testAPIConnection(endpoint = '/api/health', context) {
|
|
166
|
+
try {
|
|
167
|
+
const client = await createConfiguredClient(context);
|
|
168
|
+
const start = Date.now();
|
|
169
|
+
const response = await client.request(endpoint, {
|
|
170
|
+
method: 'GET',
|
|
171
|
+
timeout: 10000
|
|
172
|
+
});
|
|
173
|
+
const latency = Date.now() - start;
|
|
174
|
+
return {
|
|
175
|
+
success: true,
|
|
176
|
+
status: 200, // VibesClient abstracts status codes
|
|
177
|
+
latency
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
return {
|
|
182
|
+
success: false,
|
|
183
|
+
status: 0,
|
|
184
|
+
latency: 0,
|
|
185
|
+
error: error instanceof Error ? error.message : String(error)
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/api/client/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import z from 'zod/v4';
|
|
2
|
+
/**
|
|
3
|
+
* API client configuration schemas
|
|
4
|
+
*/
|
|
5
|
+
export declare const apiClientConfigSchema: z.ZodObject<{
|
|
6
|
+
baseUrl: z.ZodURL;
|
|
7
|
+
environment: z.ZodString;
|
|
8
|
+
tier: z.ZodEnum<{
|
|
9
|
+
dev: "dev";
|
|
10
|
+
local: "local";
|
|
11
|
+
staging: "staging";
|
|
12
|
+
production: "production";
|
|
13
|
+
}>;
|
|
14
|
+
auth: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
15
|
+
type: z.ZodLiteral<"none">;
|
|
16
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
17
|
+
type: z.ZodLiteral<"apiKey">;
|
|
18
|
+
apiKey: z.ZodString;
|
|
19
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
20
|
+
type: z.ZodLiteral<"session">;
|
|
21
|
+
sessionToken: z.ZodString;
|
|
22
|
+
refreshToken: z.ZodOptional<z.ZodString>;
|
|
23
|
+
}, z.core.$strip>], "type">;
|
|
24
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
25
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
26
|
+
retries: z.ZodDefault<z.ZodNumber>;
|
|
27
|
+
debug: z.ZodDefault<z.ZodBoolean>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
/**
|
|
30
|
+
* API client test schemas
|
|
31
|
+
*/
|
|
32
|
+
export declare const apiTestSchema: z.ZodObject<{
|
|
33
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
34
|
+
method: z.ZodDefault<z.ZodEnum<{
|
|
35
|
+
GET: "GET";
|
|
36
|
+
POST: "POST";
|
|
37
|
+
PUT: "PUT";
|
|
38
|
+
DELETE: "DELETE";
|
|
39
|
+
}>>;
|
|
40
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
/**
|
|
43
|
+
* API connection status schema
|
|
44
|
+
*/
|
|
45
|
+
export declare const apiConnectionStatusSchema: z.ZodObject<{
|
|
46
|
+
connected: z.ZodBoolean;
|
|
47
|
+
environment: z.ZodString;
|
|
48
|
+
baseUrl: z.ZodString;
|
|
49
|
+
authType: z.ZodEnum<{
|
|
50
|
+
none: "none";
|
|
51
|
+
apiKey: "apiKey";
|
|
52
|
+
session: "session";
|
|
53
|
+
}>;
|
|
54
|
+
lastChecked: z.ZodISODateTime;
|
|
55
|
+
latency: z.ZodOptional<z.ZodNumber>;
|
|
56
|
+
error: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/api/schemas/common.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;iBAsBhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;iBAIxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBAQpC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import z from 'zod/v4';
|
|
2
|
+
/**
|
|
3
|
+
* API client configuration schemas
|
|
4
|
+
*/
|
|
5
|
+
export const apiClientConfigSchema = z.object({
|
|
6
|
+
baseUrl: z.url(),
|
|
7
|
+
environment: z.string(),
|
|
8
|
+
tier: z.enum(['local', 'dev', 'staging', 'production']),
|
|
9
|
+
auth: z.discriminatedUnion('type', [
|
|
10
|
+
z.object({
|
|
11
|
+
type: z.literal('none')
|
|
12
|
+
}),
|
|
13
|
+
z.object({
|
|
14
|
+
type: z.literal('apiKey'),
|
|
15
|
+
apiKey: z.string()
|
|
16
|
+
}),
|
|
17
|
+
z.object({
|
|
18
|
+
type: z.literal('session'),
|
|
19
|
+
sessionToken: z.string(),
|
|
20
|
+
refreshToken: z.string().optional()
|
|
21
|
+
})
|
|
22
|
+
]),
|
|
23
|
+
headers: z.record(z.string(), z.string()).optional(),
|
|
24
|
+
timeout: z.number().default(30000),
|
|
25
|
+
retries: z.number().default(3),
|
|
26
|
+
debug: z.boolean().default(false)
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* API client test schemas
|
|
30
|
+
*/
|
|
31
|
+
export const apiTestSchema = z.object({
|
|
32
|
+
endpoint: z.string().optional(),
|
|
33
|
+
method: z.enum(['GET', 'POST', 'PUT', 'DELETE']).default('GET'),
|
|
34
|
+
timeout: z.number().optional()
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* API connection status schema
|
|
38
|
+
*/
|
|
39
|
+
export const apiConnectionStatusSchema = z.object({
|
|
40
|
+
connected: z.boolean(),
|
|
41
|
+
environment: z.string(),
|
|
42
|
+
baseUrl: z.string(),
|
|
43
|
+
authType: z.enum(['none', 'apiKey', 'session']),
|
|
44
|
+
lastChecked: z.iso.datetime(),
|
|
45
|
+
latency: z.number().optional(),
|
|
46
|
+
error: z.string().optional()
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/api/schemas/common.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAClC,CAAC,CAAC,MAAM,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SACvB,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;YACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC,CAAC;KACF,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACjC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { z } from 'zod/v4';
|
|
2
|
+
import type { apiClientConfigSchema, apiTestSchema, apiConnectionStatusSchema } from './common.ts';
|
|
3
|
+
export type APIClientConfig = z.infer<typeof apiClientConfigSchema>;
|
|
4
|
+
export type APITestInput = z.infer<typeof apiTestSchema>;
|
|
5
|
+
export type APIConnectionStatus = z.infer<typeof apiConnectionStatusSchema>;
|
|
6
|
+
/**
|
|
7
|
+
* API service result types
|
|
8
|
+
*/
|
|
9
|
+
export interface APITestResult {
|
|
10
|
+
success: boolean;
|
|
11
|
+
status: APIConnectionStatus;
|
|
12
|
+
response?: {
|
|
13
|
+
status: number;
|
|
14
|
+
statusText: string;
|
|
15
|
+
headers: Record<string, string>;
|
|
16
|
+
data?: unknown;
|
|
17
|
+
};
|
|
18
|
+
error?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface APIDebugResult {
|
|
21
|
+
config: APIClientConfig;
|
|
22
|
+
status: APIConnectionStatus;
|
|
23
|
+
diagnostics: {
|
|
24
|
+
environmentResolved: boolean;
|
|
25
|
+
authResolved: boolean;
|
|
26
|
+
baseUrlValid: boolean;
|
|
27
|
+
credentialsValid: boolean;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/schemas/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAEnG,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,EAAE;QACZ,mBAAmB,EAAE,OAAO,CAAC;QAC7B,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,OAAO,CAAC;KAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/schemas/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API service - provides API testing and debugging commands
|
|
3
|
+
*/
|
|
4
|
+
import type { RuntimeContext } from '../types.ts';
|
|
5
|
+
import type { APITestInput, APITestResult, APIDebugResult } from '../schemas/types.ts';
|
|
6
|
+
/**
|
|
7
|
+
* Execute API test command
|
|
8
|
+
*/
|
|
9
|
+
export declare function executeAPITest(input: APITestInput, context: RuntimeContext): Promise<APITestResult>;
|
|
10
|
+
/**
|
|
11
|
+
* Execute API debug command
|
|
12
|
+
*/
|
|
13
|
+
export declare function executeAPIDebug(context: RuntimeContext): Promise<APIDebugResult>;
|
|
14
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/services/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EAEd,MAAM,qBAAqB,CAAC;AAK7B;;GAEG;AACH,wBAAsB,cAAc,CACnC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,aAAa,CAAC,CAgDxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAyCtF"}
|