@contractspec/bundle.workspace 1.46.2 → 1.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/rolldown_runtime.mjs +20 -0
- package/dist/adapters/ai.d.mts +12 -0
- package/dist/adapters/ai.d.mts.map +1 -0
- package/dist/adapters/ai.mjs +83 -0
- package/dist/adapters/ai.mjs.map +1 -0
- package/dist/adapters/factory.d.mts +29 -0
- package/dist/adapters/factory.d.mts.map +1 -0
- package/dist/adapters/factory.mjs +37 -0
- package/dist/adapters/factory.mjs.map +1 -0
- package/dist/adapters/fs.d.mts +12 -0
- package/dist/adapters/fs.d.mts.map +1 -0
- package/dist/adapters/fs.mjs +133 -0
- package/dist/adapters/fs.mjs.map +1 -0
- package/dist/adapters/git.d.mts +11 -0
- package/dist/adapters/git.d.mts.map +1 -0
- package/dist/adapters/git.mjs +84 -0
- package/dist/adapters/git.mjs.map +1 -0
- package/dist/adapters/index.d.mts +7 -0
- package/dist/adapters/index.mjs +9 -0
- package/dist/adapters/logger.d.mts +18 -0
- package/dist/adapters/logger.d.mts.map +1 -0
- package/dist/adapters/logger.mjs +81 -0
- package/dist/adapters/logger.mjs.map +1 -0
- package/dist/adapters/watcher.d.mts +11 -0
- package/dist/adapters/watcher.d.mts.map +1 -0
- package/dist/adapters/watcher.mjs +74 -0
- package/dist/adapters/watcher.mjs.map +1 -0
- package/dist/adapters/workspace.d.mts +148 -0
- package/dist/adapters/workspace.d.mts.map +1 -0
- package/dist/adapters/workspace.mjs +275 -0
- package/dist/adapters/workspace.mjs.map +1 -0
- package/dist/ai/agents/claude-code-agent.d.mts +22 -0
- package/dist/ai/agents/claude-code-agent.d.mts.map +1 -0
- package/dist/ai/agents/claude-code-agent.mjs +182 -0
- package/dist/ai/agents/claude-code-agent.mjs.map +1 -0
- package/dist/ai/agents/cursor-agent.d.mts +68 -0
- package/dist/ai/agents/cursor-agent.d.mts.map +1 -0
- package/dist/ai/agents/cursor-agent.mjs +436 -0
- package/dist/ai/agents/cursor-agent.mjs.map +1 -0
- package/dist/ai/agents/index.mjs +7 -0
- package/dist/ai/agents/openai-codex-agent.d.mts +22 -0
- package/dist/ai/agents/openai-codex-agent.d.mts.map +1 -0
- package/dist/ai/agents/openai-codex-agent.mjs +167 -0
- package/dist/ai/agents/openai-codex-agent.mjs.map +1 -0
- package/dist/ai/agents/orchestrator.d.mts +50 -0
- package/dist/ai/agents/orchestrator.d.mts.map +1 -0
- package/dist/ai/agents/orchestrator.mjs +143 -0
- package/dist/ai/agents/orchestrator.mjs.map +1 -0
- package/dist/ai/agents/simple-agent.d.mts +17 -0
- package/dist/ai/agents/simple-agent.d.mts.map +1 -0
- package/dist/ai/agents/simple-agent.mjs +92 -0
- package/dist/ai/agents/simple-agent.mjs.map +1 -0
- package/dist/ai/agents/types.d.mts +36 -0
- package/dist/ai/agents/types.d.mts.map +1 -0
- package/dist/ai/client.d.mts +97 -0
- package/dist/ai/client.d.mts.map +1 -0
- package/dist/ai/client.mjs +189 -0
- package/dist/ai/client.mjs.map +1 -0
- package/dist/ai/index.d.mts +9 -0
- package/dist/ai/index.mjs +11 -0
- package/dist/ai/prompts/code-generation.d.mts +26 -0
- package/dist/ai/prompts/code-generation.d.mts.map +1 -0
- package/dist/ai/prompts/code-generation.mjs +143 -0
- package/dist/ai/prompts/code-generation.mjs.map +1 -0
- package/dist/ai/prompts/index.d.mts +10 -0
- package/dist/ai/prompts/index.d.mts.map +1 -0
- package/dist/ai/prompts/index.mjs +13 -0
- package/dist/ai/prompts/index.mjs.map +1 -0
- package/dist/ai/prompts/spec-creation.d.mts +29 -0
- package/dist/ai/prompts/spec-creation.d.mts.map +1 -0
- package/dist/ai/prompts/spec-creation.mjs +111 -0
- package/dist/ai/prompts/spec-creation.mjs.map +1 -0
- package/dist/ai/providers.d.mts +29 -0
- package/dist/ai/providers.d.mts.map +1 -0
- package/dist/ai/providers.mjs +39 -0
- package/dist/ai/providers.mjs.map +1 -0
- package/dist/formatters/index.d.mts +11 -0
- package/dist/formatters/index.d.mts.map +1 -0
- package/dist/formatters/index.mjs +17 -0
- package/dist/formatters/index.mjs.map +1 -0
- package/dist/formatters/json.d.mts +56 -0
- package/dist/formatters/json.d.mts.map +1 -0
- package/dist/formatters/json.mjs +43 -0
- package/dist/formatters/json.mjs.map +1 -0
- package/dist/formatters/sarif.d.mts +101 -0
- package/dist/formatters/sarif.d.mts.map +1 -0
- package/dist/formatters/sarif.mjs +163 -0
- package/dist/formatters/sarif.mjs.map +1 -0
- package/dist/formatters/text.d.mts +35 -0
- package/dist/formatters/text.d.mts.map +1 -0
- package/dist/formatters/text.mjs +209 -0
- package/dist/formatters/text.mjs.map +1 -0
- package/dist/index.d.mts +128 -0
- package/dist/index.mjs +113 -0
- package/dist/ports/ai.d.mts +59 -0
- package/dist/ports/ai.d.mts.map +1 -0
- package/dist/ports/fs.d.mts +81 -0
- package/dist/ports/fs.d.mts.map +1 -0
- package/dist/ports/git.d.mts +46 -0
- package/dist/ports/git.d.mts.map +1 -0
- package/dist/ports/index.d.mts +6 -0
- package/dist/ports/logger.d.mts +88 -0
- package/dist/ports/logger.d.mts.map +1 -0
- package/dist/ports/rulesync.d.mts +38 -0
- package/dist/ports/rulesync.d.mts.map +1 -0
- package/dist/ports/watcher.d.mts +52 -0
- package/dist/ports/watcher.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.d.mts +35 -0
- package/dist/services/agent-guide/adapters/claude-code.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.mjs +144 -0
- package/dist/services/agent-guide/adapters/claude-code.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.mts +39 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.mjs +135 -0
- package/dist/services/agent-guide/adapters/cursor-cli.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.mts +53 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.mjs +159 -0
- package/dist/services/agent-guide/adapters/generic-mcp.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/index.d.mts +23 -0
- package/dist/services/agent-guide/adapters/index.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/index.mjs +31 -0
- package/dist/services/agent-guide/adapters/index.mjs.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.d.mts +56 -0
- package/dist/services/agent-guide/agent-guide-service.d.mts.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.mjs +147 -0
- package/dist/services/agent-guide/agent-guide-service.mjs.map +1 -0
- package/dist/services/agent-guide/index.d.mts +6 -0
- package/dist/services/agent-guide/index.mjs +7 -0
- package/dist/services/agent-guide/types.d.mts +58 -0
- package/dist/services/agent-guide/types.d.mts.map +1 -0
- package/dist/services/build.d.mts +61 -0
- package/dist/services/build.d.mts.map +1 -0
- package/dist/services/build.mjs +151 -0
- package/dist/services/build.mjs.map +1 -0
- package/dist/services/ci-check/checks/coverage.mjs +77 -0
- package/dist/services/ci-check/checks/coverage.mjs.map +1 -0
- package/dist/services/ci-check/checks/deps.mjs +32 -0
- package/dist/services/ci-check/checks/deps.mjs.map +1 -0
- package/dist/services/ci-check/checks/doctor.mjs +38 -0
- package/dist/services/ci-check/checks/doctor.mjs.map +1 -0
- package/dist/services/ci-check/checks/drift.mjs +40 -0
- package/dist/services/ci-check/checks/drift.mjs.map +1 -0
- package/dist/services/ci-check/checks/handlers.mjs +38 -0
- package/dist/services/ci-check/checks/handlers.mjs.map +1 -0
- package/dist/services/ci-check/checks/implementation.mjs +73 -0
- package/dist/services/ci-check/checks/implementation.mjs.map +1 -0
- package/dist/services/ci-check/checks/index.mjs +13 -0
- package/dist/services/ci-check/checks/integrity.mjs +31 -0
- package/dist/services/ci-check/checks/integrity.mjs.map +1 -0
- package/dist/services/ci-check/checks/layers.mjs +66 -0
- package/dist/services/ci-check/checks/layers.mjs.map +1 -0
- package/dist/services/ci-check/checks/structure.mjs +35 -0
- package/dist/services/ci-check/checks/structure.mjs.map +1 -0
- package/dist/services/ci-check/checks/test-refs.mjs +63 -0
- package/dist/services/ci-check/checks/test-refs.mjs.map +1 -0
- package/dist/services/ci-check/checks/tests.mjs +38 -0
- package/dist/services/ci-check/checks/tests.mjs.map +1 -0
- package/dist/services/ci-check/ci-check-service.d.mts +16 -0
- package/dist/services/ci-check/ci-check-service.d.mts.map +1 -0
- package/dist/services/ci-check/ci-check-service.mjs +129 -0
- package/dist/services/ci-check/ci-check-service.mjs.map +1 -0
- package/dist/services/ci-check/index.d.mts +2 -0
- package/dist/services/ci-check/index.mjs +4 -0
- package/dist/services/ci-check/types.d.mts +147 -0
- package/dist/services/ci-check/types.d.mts.map +1 -0
- package/dist/services/ci-check/types.mjs +37 -0
- package/dist/services/ci-check/types.mjs.map +1 -0
- package/dist/services/ci-check/utils.mjs +76 -0
- package/dist/services/ci-check/utils.mjs.map +1 -0
- package/dist/services/clean.d.mts +41 -0
- package/dist/services/clean.d.mts.map +1 -0
- package/dist/services/clean.mjs +72 -0
- package/dist/services/clean.mjs.map +1 -0
- package/dist/services/config.d.mts +16 -0
- package/dist/services/config.d.mts.map +1 -0
- package/dist/services/config.mjs +63 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/coverage/parsers/index.mjs +34 -0
- package/dist/services/coverage/parsers/index.mjs.map +1 -0
- package/dist/services/coverage/parsers/istanbul-parser.mjs +108 -0
- package/dist/services/coverage/parsers/istanbul-parser.mjs.map +1 -0
- package/dist/services/coverage/validator.mjs +55 -0
- package/dist/services/coverage/validator.mjs.map +1 -0
- package/dist/services/create/ai-generator.d.mts +84 -0
- package/dist/services/create/ai-generator.d.mts.map +1 -0
- package/dist/services/create/ai-generator.mjs +178 -0
- package/dist/services/create/ai-generator.mjs.map +1 -0
- package/dist/services/create/index.d.mts +28 -0
- package/dist/services/create/index.d.mts.map +1 -0
- package/dist/services/create/index.mjs +37 -0
- package/dist/services/create/index.mjs.map +1 -0
- package/dist/services/create/templates.d.mts +22 -0
- package/dist/services/create/templates.d.mts.map +1 -0
- package/dist/services/create/templates.mjs +39 -0
- package/dist/services/create/templates.mjs.map +1 -0
- package/dist/services/deps.d.mts +53 -0
- package/dist/services/deps.d.mts.map +1 -0
- package/dist/services/deps.mjs +62 -0
- package/dist/services/deps.mjs.map +1 -0
- package/dist/services/diff.d.mts +34 -0
- package/dist/services/diff.d.mts.map +1 -0
- package/dist/services/diff.mjs +34 -0
- package/dist/services/diff.mjs.map +1 -0
- package/dist/services/docs/docs-service.d.mts +20 -0
- package/dist/services/docs/docs-service.d.mts.map +1 -0
- package/dist/services/docs/docs-service.mjs +59 -0
- package/dist/services/docs/docs-service.mjs.map +1 -0
- package/dist/services/docs/index.d.mts +1 -0
- package/dist/services/docs/index.mjs +3 -0
- package/dist/services/doctor/checks/ai.mjs +119 -0
- package/dist/services/doctor/checks/ai.mjs.map +1 -0
- package/dist/services/doctor/checks/cli.mjs +156 -0
- package/dist/services/doctor/checks/cli.mjs.map +1 -0
- package/dist/services/doctor/checks/config.mjs +303 -0
- package/dist/services/doctor/checks/config.mjs.map +1 -0
- package/dist/services/doctor/checks/deps.mjs +267 -0
- package/dist/services/doctor/checks/deps.mjs.map +1 -0
- package/dist/services/doctor/checks/index.mjs +9 -0
- package/dist/services/doctor/checks/layers.mjs +139 -0
- package/dist/services/doctor/checks/layers.mjs.map +1 -0
- package/dist/services/doctor/checks/mcp.mjs +145 -0
- package/dist/services/doctor/checks/mcp.mjs.map +1 -0
- package/dist/services/doctor/checks/workspace.mjs +263 -0
- package/dist/services/doctor/checks/workspace.mjs.map +1 -0
- package/dist/services/doctor/doctor-service.d.mts +24 -0
- package/dist/services/doctor/doctor-service.d.mts.map +1 -0
- package/dist/services/doctor/doctor-service.mjs +118 -0
- package/dist/services/doctor/doctor-service.mjs.map +1 -0
- package/dist/services/doctor/index.d.mts +2 -0
- package/dist/services/doctor/index.mjs +4 -0
- package/dist/services/doctor/types.d.mts +118 -0
- package/dist/services/doctor/types.d.mts.map +1 -0
- package/dist/services/doctor/types.mjs +29 -0
- package/dist/services/doctor/types.mjs.map +1 -0
- package/dist/services/drift.mjs +73 -0
- package/dist/services/drift.mjs.map +1 -0
- package/dist/services/extract.d.mts +12 -0
- package/dist/services/extract.d.mts.map +1 -0
- package/dist/services/extract.mjs +33 -0
- package/dist/services/extract.mjs.map +1 -0
- package/dist/services/features/completion.d.mts +21 -0
- package/dist/services/features/completion.d.mts.map +1 -0
- package/dist/services/features/completion.mjs +70 -0
- package/dist/services/features/completion.mjs.map +1 -0
- package/dist/services/features/feature-editor.d.mts +27 -0
- package/dist/services/features/feature-editor.d.mts.map +1 -0
- package/dist/services/features/feature-editor.mjs +37 -0
- package/dist/services/features/feature-editor.mjs.map +1 -0
- package/dist/services/features/index.d.mts +11 -0
- package/dist/services/features/index.d.mts.map +1 -0
- package/dist/services/features/index.mjs +16 -0
- package/dist/services/features/index.mjs.map +1 -0
- package/dist/services/features/validation.d.mts +21 -0
- package/dist/services/features/validation.d.mts.map +1 -0
- package/dist/services/features/validation.mjs +27 -0
- package/dist/services/features/validation.mjs.map +1 -0
- package/dist/services/fix/fix-link-formatter.d.mts +12 -0
- package/dist/services/fix/fix-link-formatter.d.mts.map +1 -0
- package/dist/services/fix/fix-link-formatter.mjs +38 -0
- package/dist/services/fix/fix-link-formatter.mjs.map +1 -0
- package/dist/services/fix/fix-service.d.mts +74 -0
- package/dist/services/fix/fix-service.d.mts.map +1 -0
- package/dist/services/fix/fix-service.mjs +169 -0
- package/dist/services/fix/fix-service.mjs.map +1 -0
- package/dist/services/fix/index.d.mts +16 -0
- package/dist/services/fix/index.d.mts.map +1 -0
- package/dist/services/fix/index.mjs +24 -0
- package/dist/services/fix/index.mjs.map +1 -0
- package/dist/services/fix/path-resolver.mjs +83 -0
- package/dist/services/fix/path-resolver.mjs.map +1 -0
- package/dist/services/fix/schemas.d.mts +17 -0
- package/dist/services/fix/schemas.d.mts.map +1 -0
- package/dist/services/fix/schemas.mjs +12 -0
- package/dist/services/fix/schemas.mjs.map +1 -0
- package/dist/services/fix/strategies/implement-ai.d.mts +18 -0
- package/dist/services/fix/strategies/implement-ai.d.mts.map +1 -0
- package/dist/services/fix/strategies/implement-ai.mjs +139 -0
- package/dist/services/fix/strategies/implement-ai.mjs.map +1 -0
- package/dist/services/fix/strategies/implement-skeleton.d.mts +14 -0
- package/dist/services/fix/strategies/implement-skeleton.d.mts.map +1 -0
- package/dist/services/fix/strategies/implement-skeleton.mjs +77 -0
- package/dist/services/fix/strategies/implement-skeleton.mjs.map +1 -0
- package/dist/services/fix/strategies/index.d.mts +3 -0
- package/dist/services/fix/strategies/remove-reference.d.mts +17 -0
- package/dist/services/fix/strategies/remove-reference.d.mts.map +1 -0
- package/dist/services/fix/strategies/remove-reference.mjs +98 -0
- package/dist/services/fix/strategies/remove-reference.mjs.map +1 -0
- package/dist/services/fix/types.d.mts +207 -0
- package/dist/services/fix/types.d.mts.map +1 -0
- package/dist/services/fix/types.mjs +20 -0
- package/dist/services/fix/types.mjs.map +1 -0
- package/dist/services/formatter.d.mts +15 -0
- package/dist/services/formatter.d.mts.map +1 -0
- package/dist/services/formatter.mjs +26 -0
- package/dist/services/formatter.mjs.map +1 -0
- package/dist/services/gap.d.mts +18 -0
- package/dist/services/gap.d.mts.map +1 -0
- package/dist/services/gap.mjs +44 -0
- package/dist/services/gap.mjs.map +1 -0
- package/dist/services/generate-artifacts.d.mts +11 -0
- package/dist/services/generate-artifacts.d.mts.map +1 -0
- package/dist/services/generate-artifacts.mjs +27 -0
- package/dist/services/generate-artifacts.mjs.map +1 -0
- package/dist/services/hooks/hooks-service.d.mts +24 -0
- package/dist/services/hooks/hooks-service.d.mts.map +1 -0
- package/dist/services/hooks/hooks-service.mjs +126 -0
- package/dist/services/hooks/hooks-service.mjs.map +1 -0
- package/dist/services/hooks/index.d.mts +10 -0
- package/dist/services/hooks/index.d.mts.map +1 -0
- package/dist/services/hooks/index.mjs +12 -0
- package/dist/services/hooks/index.mjs.map +1 -0
- package/dist/services/hooks/types.d.mts +56 -0
- package/dist/services/hooks/types.d.mts.map +1 -0
- package/dist/services/impact/formatters.d.mts +27 -0
- package/dist/services/impact/formatters.d.mts.map +1 -0
- package/dist/services/impact/formatters.mjs +139 -0
- package/dist/services/impact/formatters.mjs.map +1 -0
- package/dist/services/impact/impact-detection-service.d.mts +22 -0
- package/dist/services/impact/impact-detection-service.d.mts.map +1 -0
- package/dist/services/impact/impact-detection-service.mjs +96 -0
- package/dist/services/impact/impact-detection-service.mjs.map +1 -0
- package/dist/services/impact/index.d.mts +11 -0
- package/dist/services/impact/index.d.mts.map +1 -0
- package/dist/services/impact/index.mjs +16 -0
- package/dist/services/impact/index.mjs.map +1 -0
- package/dist/services/impact/types.d.mts +63 -0
- package/dist/services/impact/types.d.mts.map +1 -0
- package/dist/services/implementation/discovery.d.mts +30 -0
- package/dist/services/implementation/discovery.d.mts.map +1 -0
- package/dist/services/implementation/discovery.mjs +144 -0
- package/dist/services/implementation/discovery.mjs.map +1 -0
- package/dist/services/implementation/index.d.mts +6 -0
- package/dist/services/implementation/index.mjs +7 -0
- package/dist/services/implementation/resolver/conventions.d.mts +18 -0
- package/dist/services/implementation/resolver/conventions.d.mts.map +1 -0
- package/dist/services/implementation/resolver/conventions.mjs +59 -0
- package/dist/services/implementation/resolver/conventions.mjs.map +1 -0
- package/dist/services/implementation/resolver/index.d.mts +24 -0
- package/dist/services/implementation/resolver/index.d.mts.map +1 -0
- package/dist/services/implementation/resolver/index.mjs +111 -0
- package/dist/services/implementation/resolver/index.mjs.map +1 -0
- package/dist/services/implementation/resolver/parsers.d.mts +16 -0
- package/dist/services/implementation/resolver/parsers.d.mts.map +1 -0
- package/dist/services/implementation/resolver/parsers.mjs +100 -0
- package/dist/services/implementation/resolver/parsers.mjs.map +1 -0
- package/dist/services/implementation/resolver/status.d.mts +21 -0
- package/dist/services/implementation/resolver/status.d.mts.map +1 -0
- package/dist/services/implementation/resolver/status.mjs +31 -0
- package/dist/services/implementation/resolver/status.mjs.map +1 -0
- package/dist/services/implementation/types.d.mts +89 -0
- package/dist/services/implementation/types.d.mts.map +1 -0
- package/dist/services/import/import-service.d.mts +47 -0
- package/dist/services/import/import-service.d.mts.map +1 -0
- package/dist/services/import/import-service.mjs +196 -0
- package/dist/services/import/import-service.mjs.map +1 -0
- package/dist/services/import/index.d.mts +3 -0
- package/dist/services/import/index.mjs +5 -0
- package/dist/services/import/report-service.d.mts +31 -0
- package/dist/services/import/report-service.d.mts.map +1 -0
- package/dist/services/import/report-service.mjs +124 -0
- package/dist/services/import/report-service.mjs.map +1 -0
- package/dist/services/import/verify-service.d.mts +67 -0
- package/dist/services/import/verify-service.d.mts.map +1 -0
- package/dist/services/import/verify-service.mjs +105 -0
- package/dist/services/import/verify-service.mjs.map +1 -0
- package/dist/services/index.d.mts +107 -0
- package/dist/services/index.mjs +104 -0
- package/dist/services/integrity-diagram.d.mts +36 -0
- package/dist/services/integrity-diagram.d.mts.map +1 -0
- package/dist/services/integrity-diagram.mjs +275 -0
- package/dist/services/integrity-diagram.mjs.map +1 -0
- package/dist/services/integrity.d.mts +152 -0
- package/dist/services/integrity.d.mts.map +1 -0
- package/dist/services/integrity.mjs +361 -0
- package/dist/services/integrity.mjs.map +1 -0
- package/dist/services/layer-discovery.d.mts +77 -0
- package/dist/services/layer-discovery.d.mts.map +1 -0
- package/dist/services/layer-discovery.mjs +121 -0
- package/dist/services/layer-discovery.mjs.map +1 -0
- package/dist/services/list.d.mts +37 -0
- package/dist/services/list.d.mts.map +1 -0
- package/dist/services/list.mjs +46 -0
- package/dist/services/list.mjs.map +1 -0
- package/dist/services/llm/index.d.mts +28 -0
- package/dist/services/llm/index.d.mts.map +1 -0
- package/dist/services/llm/index.mjs +187 -0
- package/dist/services/llm/index.mjs.map +1 -0
- package/dist/services/llm/verify-static.d.mts +26 -0
- package/dist/services/llm/verify-static.d.mts.map +1 -0
- package/dist/services/llm/verify-static.mjs +82 -0
- package/dist/services/llm/verify-static.mjs.map +1 -0
- package/dist/services/modules/module-resolver.mjs +61 -0
- package/dist/services/modules/module-resolver.mjs.map +1 -0
- package/dist/services/openapi/export-service.d.mts +53 -0
- package/dist/services/openapi/export-service.d.mts.map +1 -0
- package/dist/services/openapi/export-service.mjs +50 -0
- package/dist/services/openapi/export-service.mjs.map +1 -0
- package/dist/services/openapi/import-service.d.mts +17 -0
- package/dist/services/openapi/import-service.d.mts.map +1 -0
- package/dist/services/openapi/import-service.mjs +165 -0
- package/dist/services/openapi/import-service.mjs.map +1 -0
- package/dist/services/openapi/index.d.mts +5 -0
- package/dist/services/openapi/index.mjs +6 -0
- package/dist/services/openapi/sync-service.d.mts +17 -0
- package/dist/services/openapi/sync-service.d.mts.map +1 -0
- package/dist/services/openapi/sync-service.mjs +120 -0
- package/dist/services/openapi/sync-service.mjs.map +1 -0
- package/dist/services/openapi/types.d.mts +162 -0
- package/dist/services/openapi/types.d.mts.map +1 -0
- package/dist/services/openapi/validate-service.d.mts +16 -0
- package/dist/services/openapi/validate-service.d.mts.map +1 -0
- package/dist/services/openapi/validate-service.mjs +130 -0
- package/dist/services/openapi/validate-service.mjs.map +1 -0
- package/dist/services/quickstart/dependencies.d.mts +31 -0
- package/dist/services/quickstart/dependencies.d.mts.map +1 -0
- package/dist/services/quickstart/dependencies.mjs +57 -0
- package/dist/services/quickstart/dependencies.mjs.map +1 -0
- package/dist/services/quickstart/index.mjs +4 -0
- package/dist/services/quickstart/quickstart-service.d.mts +20 -0
- package/dist/services/quickstart/quickstart-service.d.mts.map +1 -0
- package/dist/services/quickstart/quickstart-service.mjs +196 -0
- package/dist/services/quickstart/quickstart-service.mjs.map +1 -0
- package/dist/services/quickstart/types.d.mts +81 -0
- package/dist/services/quickstart/types.d.mts.map +1 -0
- package/dist/services/regenerator.d.mts +18 -0
- package/dist/services/regenerator.d.mts.map +1 -0
- package/dist/services/regenerator.mjs +23 -0
- package/dist/services/regenerator.mjs.map +1 -0
- package/dist/services/registry.d.mts +53 -0
- package/dist/services/registry.d.mts.map +1 -0
- package/dist/services/registry.mjs +74 -0
- package/dist/services/registry.mjs.map +1 -0
- package/dist/services/rulesync.d.mts +17 -0
- package/dist/services/rulesync.d.mts.map +1 -0
- package/dist/services/rulesync.mjs +72 -0
- package/dist/services/rulesync.mjs.map +1 -0
- package/dist/services/setup/config-generators.d.mts +42 -0
- package/dist/services/setup/config-generators.d.mts.map +1 -0
- package/dist/services/setup/config-generators.mjs +252 -0
- package/dist/services/setup/config-generators.mjs.map +1 -0
- package/dist/services/setup/file-merger.d.mts +27 -0
- package/dist/services/setup/file-merger.d.mts.map +1 -0
- package/dist/services/setup/file-merger.mjs +61 -0
- package/dist/services/setup/file-merger.mjs.map +1 -0
- package/dist/services/setup/setup-service.d.mts +12 -0
- package/dist/services/setup/setup-service.d.mts.map +1 -0
- package/dist/services/setup/setup-service.mjs +96 -0
- package/dist/services/setup/setup-service.mjs.map +1 -0
- package/dist/services/setup/targets/agents-md.mjs +47 -0
- package/dist/services/setup/targets/agents-md.mjs.map +1 -0
- package/dist/services/setup/targets/cli-config.mjs +60 -0
- package/dist/services/setup/targets/cli-config.mjs.map +1 -0
- package/dist/services/setup/targets/cursor-rules.mjs +48 -0
- package/dist/services/setup/targets/cursor-rules.mjs.map +1 -0
- package/dist/services/setup/targets/mcp-claude.mjs +60 -0
- package/dist/services/setup/targets/mcp-claude.mjs.map +1 -0
- package/dist/services/setup/targets/mcp-cursor.mjs +59 -0
- package/dist/services/setup/targets/mcp-cursor.mjs.map +1 -0
- package/dist/services/setup/targets/vscode-settings.mjs +63 -0
- package/dist/services/setup/targets/vscode-settings.mjs.map +1 -0
- package/dist/services/setup/types.d.mts +85 -0
- package/dist/services/setup/types.d.mts.map +1 -0
- package/dist/services/setup/types.mjs +27 -0
- package/dist/services/setup/types.mjs.map +1 -0
- package/dist/services/sync.d.mts +42 -0
- package/dist/services/sync.d.mts.map +1 -0
- package/dist/services/sync.mjs +64 -0
- package/dist/services/sync.mjs.map +1 -0
- package/dist/services/test/index.d.mts +2 -0
- package/dist/services/test/index.mjs +4 -0
- package/dist/services/test/test-generator-service.d.mts +24 -0
- package/dist/services/test/test-generator-service.d.mts.map +1 -0
- package/dist/services/test/test-generator-service.mjs +92 -0
- package/dist/services/test/test-generator-service.mjs.map +1 -0
- package/dist/services/test/test-service.d.mts +27 -0
- package/dist/services/test/test-service.d.mts.map +1 -0
- package/dist/services/test/test-service.mjs +94 -0
- package/dist/services/test/test-service.mjs.map +1 -0
- package/dist/services/test-link/index.d.mts +18 -0
- package/dist/services/test-link/index.d.mts.map +1 -0
- package/dist/services/test-link/index.mjs +60 -0
- package/dist/services/test-link/index.mjs.map +1 -0
- package/dist/services/test-link/test-ref-validator.d.mts +2 -0
- package/dist/services/test-link/test-ref-validator.mjs +50 -0
- package/dist/services/test-link/test-ref-validator.mjs.map +1 -0
- package/dist/services/upgrade/index.d.mts +10 -0
- package/dist/services/upgrade/index.d.mts.map +1 -0
- package/dist/services/upgrade/index.mjs +15 -0
- package/dist/services/upgrade/index.mjs.map +1 -0
- package/dist/services/upgrade/types.d.mts +78 -0
- package/dist/services/upgrade/types.d.mts.map +1 -0
- package/dist/services/upgrade/upgrade-service.d.mts +38 -0
- package/dist/services/upgrade/upgrade-service.d.mts.map +1 -0
- package/dist/services/upgrade/upgrade-service.mjs +201 -0
- package/dist/services/upgrade/upgrade-service.mjs.map +1 -0
- package/dist/services/validate/blueprint-validator.d.mts +23 -0
- package/dist/services/validate/blueprint-validator.d.mts.map +1 -0
- package/dist/services/validate/blueprint-validator.mjs +50 -0
- package/dist/services/validate/blueprint-validator.mjs.map +1 -0
- package/dist/services/validate/implementation-agent-validator.d.mts +20 -0
- package/dist/services/validate/implementation-agent-validator.d.mts.map +1 -0
- package/dist/services/validate/implementation-agent-validator.mjs +42 -0
- package/dist/services/validate/implementation-agent-validator.mjs.map +1 -0
- package/dist/services/validate/implementation-validator.d.mts +32 -0
- package/dist/services/validate/implementation-validator.d.mts.map +1 -0
- package/dist/services/validate/implementation-validator.mjs +64 -0
- package/dist/services/validate/implementation-validator.mjs.map +1 -0
- package/dist/services/validate/index.d.mts +5 -0
- package/dist/services/validate/index.mjs +7 -0
- package/dist/services/validate/spec-validator.d.mts +42 -0
- package/dist/services/validate/spec-validator.d.mts.map +1 -0
- package/dist/services/validate/spec-validator.mjs +49 -0
- package/dist/services/validate/spec-validator.mjs.map +1 -0
- package/dist/services/validate/tenant-validator.d.mts +21 -0
- package/dist/services/validate/tenant-validator.d.mts.map +1 -0
- package/dist/services/validate/tenant-validator.mjs +165 -0
- package/dist/services/validate/tenant-validator.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.d.mts +46 -0
- package/dist/services/verification-cache/adapters/filesystem.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.mjs +120 -0
- package/dist/services/verification-cache/adapters/filesystem.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.d.mts +27 -0
- package/dist/services/verification-cache/adapters/in-memory.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.mjs +46 -0
- package/dist/services/verification-cache/adapters/in-memory.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/index.d.mts +3 -0
- package/dist/services/verification-cache/adapters/index.mjs +5 -0
- package/dist/services/verification-cache/adapters/workspace-state.d.mts +49 -0
- package/dist/services/verification-cache/adapters/workspace-state.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/workspace-state.mjs +91 -0
- package/dist/services/verification-cache/adapters/workspace-state.mjs.map +1 -0
- package/dist/services/verification-cache/cache-service.d.mts +70 -0
- package/dist/services/verification-cache/cache-service.d.mts.map +1 -0
- package/dist/services/verification-cache/cache-service.mjs +256 -0
- package/dist/services/verification-cache/cache-service.mjs.map +1 -0
- package/dist/services/verification-cache/index.d.mts +6 -0
- package/dist/services/verification-cache/index.mjs +8 -0
- package/dist/services/verification-cache/types.d.mts +124 -0
- package/dist/services/verification-cache/types.d.mts.map +1 -0
- package/dist/services/verification-cache/types.mjs +16 -0
- package/dist/services/verification-cache/types.mjs.map +1 -0
- package/dist/services/verify/ai-verifier.d.mts +25 -0
- package/dist/services/verify/ai-verifier.d.mts.map +1 -0
- package/dist/services/verify/ai-verifier.mjs +403 -0
- package/dist/services/verify/ai-verifier.mjs.map +1 -0
- package/dist/services/verify/behavior-verifier.d.mts +12 -0
- package/dist/services/verify/behavior-verifier.d.mts.map +1 -0
- package/dist/services/verify/behavior-verifier.mjs +186 -0
- package/dist/services/verify/behavior-verifier.mjs.map +1 -0
- package/dist/services/verify/index.d.mts +5 -0
- package/dist/services/verify/index.mjs +6 -0
- package/dist/services/verify/structure-verifier.d.mts +12 -0
- package/dist/services/verify/structure-verifier.d.mts.map +1 -0
- package/dist/services/verify/structure-verifier.mjs +196 -0
- package/dist/services/verify/structure-verifier.mjs.map +1 -0
- package/dist/services/verify/types.d.mts +137 -0
- package/dist/services/verify/types.d.mts.map +1 -0
- package/dist/services/verify/verify-service.d.mts +60 -0
- package/dist/services/verify/verify-service.d.mts.map +1 -0
- package/dist/services/verify/verify-service.mjs +204 -0
- package/dist/services/verify/verify-service.mjs.map +1 -0
- package/dist/services/versioning/changelog-formatter.d.mts +24 -0
- package/dist/services/versioning/changelog-formatter.d.mts.map +1 -0
- package/dist/services/versioning/changelog-formatter.mjs +155 -0
- package/dist/services/versioning/changelog-formatter.mjs.map +1 -0
- package/dist/services/versioning/conventional-commits.d.mts +95 -0
- package/dist/services/versioning/conventional-commits.d.mts.map +1 -0
- package/dist/services/versioning/conventional-commits.mjs +184 -0
- package/dist/services/versioning/conventional-commits.mjs.map +1 -0
- package/dist/services/versioning/index.d.mts +12 -0
- package/dist/services/versioning/index.d.mts.map +1 -0
- package/dist/services/versioning/index.mjs +28 -0
- package/dist/services/versioning/index.mjs.map +1 -0
- package/dist/services/versioning/types.d.mts +135 -0
- package/dist/services/versioning/types.d.mts.map +1 -0
- package/dist/services/versioning/versioning-service.d.mts +74 -0
- package/dist/services/versioning/versioning-service.d.mts.map +1 -0
- package/dist/services/versioning/versioning-service.mjs +501 -0
- package/dist/services/versioning/versioning-service.mjs.map +1 -0
- package/dist/services/vibe/config.d.mts +12 -0
- package/dist/services/vibe/config.d.mts.map +1 -0
- package/dist/services/vibe/config.mjs +43 -0
- package/dist/services/vibe/config.mjs.map +1 -0
- package/dist/services/vibe/context.d.mts +19 -0
- package/dist/services/vibe/context.d.mts.map +1 -0
- package/dist/services/vibe/context.mjs +92 -0
- package/dist/services/vibe/context.mjs.map +1 -0
- package/dist/services/vibe/definitions.d.mts +8 -0
- package/dist/services/vibe/definitions.d.mts.map +1 -0
- package/dist/services/vibe/definitions.mjs +129 -0
- package/dist/services/vibe/definitions.mjs.map +1 -0
- package/dist/services/vibe/engine.d.mts +44 -0
- package/dist/services/vibe/engine.d.mts.map +1 -0
- package/dist/services/vibe/engine.mjs +147 -0
- package/dist/services/vibe/engine.mjs.map +1 -0
- package/dist/services/vibe/index.d.mts +15 -0
- package/dist/services/vibe/index.d.mts.map +1 -0
- package/dist/services/vibe/index.mjs +26 -0
- package/dist/services/vibe/index.mjs.map +1 -0
- package/dist/services/vibe/loader.d.mts +15 -0
- package/dist/services/vibe/loader.d.mts.map +1 -0
- package/dist/services/vibe/loader.mjs +48 -0
- package/dist/services/vibe/loader.mjs.map +1 -0
- package/dist/services/vibe/pack.d.mts +19 -0
- package/dist/services/vibe/pack.d.mts.map +1 -0
- package/dist/services/vibe/pack.mjs +66 -0
- package/dist/services/vibe/pack.mjs.map +1 -0
- package/dist/services/vibe/types.d.mts +59 -0
- package/dist/services/vibe/types.d.mts.map +1 -0
- package/dist/services/vibe/types.mjs +12 -0
- package/dist/services/vibe/types.mjs.map +1 -0
- package/dist/services/view/index.d.mts +11 -0
- package/dist/services/view/index.d.mts.map +1 -0
- package/dist/services/view/index.mjs +119 -0
- package/dist/services/view/index.mjs.map +1 -0
- package/dist/services/watch.d.mts +25 -0
- package/dist/services/watch.d.mts.map +1 -0
- package/dist/services/watch.mjs +33 -0
- package/dist/services/watch.mjs.map +1 -0
- package/dist/services/workspace-info.d.mts +62 -0
- package/dist/services/workspace-info.d.mts.map +1 -0
- package/dist/services/workspace-info.mjs +103 -0
- package/dist/services/workspace-info.mjs.map +1 -0
- package/dist/templates/app-config.template.d.mts +7 -0
- package/dist/templates/app-config.template.d.mts.map +1 -0
- package/dist/templates/app-config.template.mjs +107 -0
- package/dist/templates/app-config.template.mjs.map +1 -0
- package/dist/templates/data-view.template.d.mts +7 -0
- package/dist/templates/data-view.template.d.mts.map +1 -0
- package/dist/templates/data-view.template.mjs +70 -0
- package/dist/templates/data-view.template.mjs.map +1 -0
- package/dist/templates/event.template.d.mts +11 -0
- package/dist/templates/event.template.d.mts.map +1 -0
- package/dist/templates/event.template.mjs +42 -0
- package/dist/templates/event.template.mjs.map +1 -0
- package/dist/templates/experiment.template.d.mts +7 -0
- package/dist/templates/experiment.template.d.mts.map +1 -0
- package/dist/templates/experiment.template.mjs +89 -0
- package/dist/templates/experiment.template.mjs.map +1 -0
- package/dist/templates/feature.template.d.mts +33 -0
- package/dist/templates/feature.template.d.mts.map +1 -0
- package/dist/templates/feature.template.mjs +52 -0
- package/dist/templates/feature.template.mjs.map +1 -0
- package/dist/templates/fix/skeleton-capability.mjs +49 -0
- package/dist/templates/fix/skeleton-capability.mjs.map +1 -0
- package/dist/templates/fix/skeleton-event.mjs +56 -0
- package/dist/templates/fix/skeleton-event.mjs.map +1 -0
- package/dist/templates/fix/skeleton-operation.mjs +122 -0
- package/dist/templates/fix/skeleton-operation.mjs.map +1 -0
- package/dist/templates/fix/skeleton-presentation.mjs +65 -0
- package/dist/templates/fix/skeleton-presentation.mjs.map +1 -0
- package/dist/templates/fix/utils.mjs +34 -0
- package/dist/templates/fix/utils.mjs.map +1 -0
- package/dist/templates/handler.template.d.mts +16 -0
- package/dist/templates/handler.template.d.mts.map +1 -0
- package/dist/templates/handler.template.mjs +100 -0
- package/dist/templates/handler.template.mjs.map +1 -0
- package/dist/templates/index.d.mts +22 -0
- package/dist/templates/index.d.mts.map +1 -0
- package/dist/templates/index.mjs +39 -0
- package/dist/templates/index.mjs.map +1 -0
- package/dist/templates/integration.template.d.mts +7 -0
- package/dist/templates/integration.template.d.mts.map +1 -0
- package/dist/templates/integration.template.mjs +160 -0
- package/dist/templates/integration.template.mjs.map +1 -0
- package/dist/templates/knowledge.template.d.mts +7 -0
- package/dist/templates/knowledge.template.d.mts.map +1 -0
- package/dist/templates/knowledge.template.mjs +75 -0
- package/dist/templates/knowledge.template.mjs.map +1 -0
- package/dist/templates/migration.template.d.mts +7 -0
- package/dist/templates/migration.template.d.mts.map +1 -0
- package/dist/templates/migration.template.mjs +62 -0
- package/dist/templates/migration.template.mjs.map +1 -0
- package/dist/templates/operation.template.d.mts +11 -0
- package/dist/templates/operation.template.d.mts.map +1 -0
- package/dist/templates/operation.template.mjs +107 -0
- package/dist/templates/operation.template.mjs.map +1 -0
- package/dist/templates/presentation.template.d.mts +11 -0
- package/dist/templates/presentation.template.d.mts.map +1 -0
- package/dist/templates/presentation.template.mjs +80 -0
- package/dist/templates/presentation.template.mjs.map +1 -0
- package/dist/templates/telemetry.template.d.mts +7 -0
- package/dist/templates/telemetry.template.d.mts.map +1 -0
- package/dist/templates/telemetry.template.mjs +91 -0
- package/dist/templates/telemetry.template.mjs.map +1 -0
- package/dist/templates/workflow-runner.template.d.mts +16 -0
- package/dist/templates/workflow-runner.template.d.mts.map +1 -0
- package/dist/templates/workflow-runner.template.mjs +50 -0
- package/dist/templates/workflow-runner.template.mjs.map +1 -0
- package/dist/templates/workflow.template.d.mts +7 -0
- package/dist/templates/workflow.template.d.mts.map +1 -0
- package/dist/templates/workflow.template.mjs +69 -0
- package/dist/templates/workflow.template.mjs.map +1 -0
- package/dist/types/config.d.mts +34 -0
- package/dist/types/config.d.mts.map +1 -0
- package/dist/types.d.mts +324 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/utils/filter.d.mts +16 -0
- package/dist/utils/filter.d.mts.map +1 -0
- package/dist/utils/filter.mjs +22 -0
- package/dist/utils/filter.mjs.map +1 -0
- package/dist/utils/index.d.mts +11 -0
- package/dist/utils/index.d.mts.map +1 -0
- package/dist/utils/index.mjs +20 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/module-loader.d.mts +5 -0
- package/dist/utils/module-loader.d.mts.map +1 -0
- package/dist/utils/module-loader.mjs +41 -0
- package/dist/utils/module-loader.mjs.map +1 -0
- package/dist/utils/validation.d.mts +37 -0
- package/dist/utils/validation.d.mts.map +1 -0
- package/dist/utils/validation.mjs +43 -0
- package/dist/utils/validation.mjs.map +1 -0
- package/package.json +24 -19
- package/dist/_virtual/rolldown_runtime.js +0 -18
- package/dist/adapters/ai.d.ts +0 -12
- package/dist/adapters/ai.d.ts.map +0 -1
- package/dist/adapters/ai.js +0 -83
- package/dist/adapters/ai.js.map +0 -1
- package/dist/adapters/factory.d.ts +0 -29
- package/dist/adapters/factory.d.ts.map +0 -1
- package/dist/adapters/factory.js +0 -37
- package/dist/adapters/factory.js.map +0 -1
- package/dist/adapters/fs.d.ts +0 -12
- package/dist/adapters/fs.d.ts.map +0 -1
- package/dist/adapters/fs.js +0 -131
- package/dist/adapters/fs.js.map +0 -1
- package/dist/adapters/git.d.ts +0 -11
- package/dist/adapters/git.d.ts.map +0 -1
- package/dist/adapters/git.js +0 -84
- package/dist/adapters/git.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -7
- package/dist/adapters/index.js +0 -7
- package/dist/adapters/logger.d.ts +0 -18
- package/dist/adapters/logger.d.ts.map +0 -1
- package/dist/adapters/logger.js +0 -81
- package/dist/adapters/logger.js.map +0 -1
- package/dist/adapters/watcher.d.ts +0 -11
- package/dist/adapters/watcher.d.ts.map +0 -1
- package/dist/adapters/watcher.js +0 -74
- package/dist/adapters/watcher.js.map +0 -1
- package/dist/adapters/workspace.d.ts +0 -148
- package/dist/adapters/workspace.d.ts.map +0 -1
- package/dist/adapters/workspace.js +0 -275
- package/dist/adapters/workspace.js.map +0 -1
- package/dist/ai/agents/claude-code-agent.d.ts +0 -22
- package/dist/ai/agents/claude-code-agent.d.ts.map +0 -1
- package/dist/ai/agents/claude-code-agent.js +0 -182
- package/dist/ai/agents/claude-code-agent.js.map +0 -1
- package/dist/ai/agents/cursor-agent.d.ts +0 -68
- package/dist/ai/agents/cursor-agent.d.ts.map +0 -1
- package/dist/ai/agents/cursor-agent.js +0 -436
- package/dist/ai/agents/cursor-agent.js.map +0 -1
- package/dist/ai/agents/index.js +0 -5
- package/dist/ai/agents/openai-codex-agent.d.ts +0 -22
- package/dist/ai/agents/openai-codex-agent.d.ts.map +0 -1
- package/dist/ai/agents/openai-codex-agent.js +0 -167
- package/dist/ai/agents/openai-codex-agent.js.map +0 -1
- package/dist/ai/agents/orchestrator.d.ts +0 -50
- package/dist/ai/agents/orchestrator.d.ts.map +0 -1
- package/dist/ai/agents/orchestrator.js +0 -143
- package/dist/ai/agents/orchestrator.js.map +0 -1
- package/dist/ai/agents/simple-agent.d.ts +0 -17
- package/dist/ai/agents/simple-agent.d.ts.map +0 -1
- package/dist/ai/agents/simple-agent.js +0 -92
- package/dist/ai/agents/simple-agent.js.map +0 -1
- package/dist/ai/agents/types.d.ts +0 -36
- package/dist/ai/agents/types.d.ts.map +0 -1
- package/dist/ai/client.d.ts +0 -97
- package/dist/ai/client.d.ts.map +0 -1
- package/dist/ai/client.js +0 -189
- package/dist/ai/client.js.map +0 -1
- package/dist/ai/index.d.ts +0 -9
- package/dist/ai/index.js +0 -9
- package/dist/ai/prompts/code-generation.d.ts +0 -26
- package/dist/ai/prompts/code-generation.d.ts.map +0 -1
- package/dist/ai/prompts/code-generation.js +0 -143
- package/dist/ai/prompts/code-generation.js.map +0 -1
- package/dist/ai/prompts/index.d.ts +0 -10
- package/dist/ai/prompts/index.d.ts.map +0 -1
- package/dist/ai/prompts/index.js +0 -13
- package/dist/ai/prompts/index.js.map +0 -1
- package/dist/ai/prompts/spec-creation.d.ts +0 -29
- package/dist/ai/prompts/spec-creation.d.ts.map +0 -1
- package/dist/ai/prompts/spec-creation.js +0 -111
- package/dist/ai/prompts/spec-creation.js.map +0 -1
- package/dist/ai/providers.d.ts +0 -29
- package/dist/ai/providers.d.ts.map +0 -1
- package/dist/ai/providers.js +0 -39
- package/dist/ai/providers.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -11
- package/dist/formatters/index.d.ts.map +0 -1
- package/dist/formatters/index.js +0 -19
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/json.d.ts +0 -89
- package/dist/formatters/json.d.ts.map +0 -1
- package/dist/formatters/json.js +0 -72
- package/dist/formatters/json.js.map +0 -1
- package/dist/formatters/sarif.d.ts +0 -101
- package/dist/formatters/sarif.d.ts.map +0 -1
- package/dist/formatters/sarif.js +0 -163
- package/dist/formatters/sarif.js.map +0 -1
- package/dist/formatters/text.d.ts +0 -35
- package/dist/formatters/text.d.ts.map +0 -1
- package/dist/formatters/text.js +0 -209
- package/dist/formatters/text.js.map +0 -1
- package/dist/index.d.ts +0 -111
- package/dist/index.js +0 -97
- package/dist/ports/ai.d.ts +0 -59
- package/dist/ports/ai.d.ts.map +0 -1
- package/dist/ports/fs.d.ts +0 -81
- package/dist/ports/fs.d.ts.map +0 -1
- package/dist/ports/git.d.ts +0 -46
- package/dist/ports/git.d.ts.map +0 -1
- package/dist/ports/index.d.ts +0 -6
- package/dist/ports/logger.d.ts +0 -88
- package/dist/ports/logger.d.ts.map +0 -1
- package/dist/ports/rulesync.d.ts +0 -38
- package/dist/ports/rulesync.d.ts.map +0 -1
- package/dist/ports/watcher.d.ts +0 -52
- package/dist/ports/watcher.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/claude-code.d.ts +0 -35
- package/dist/services/agent-guide/adapters/claude-code.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/claude-code.js +0 -144
- package/dist/services/agent-guide/adapters/claude-code.js.map +0 -1
- package/dist/services/agent-guide/adapters/cursor-cli.d.ts +0 -39
- package/dist/services/agent-guide/adapters/cursor-cli.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/cursor-cli.js +0 -135
- package/dist/services/agent-guide/adapters/cursor-cli.js.map +0 -1
- package/dist/services/agent-guide/adapters/generic-mcp.d.ts +0 -53
- package/dist/services/agent-guide/adapters/generic-mcp.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/generic-mcp.js +0 -159
- package/dist/services/agent-guide/adapters/generic-mcp.js.map +0 -1
- package/dist/services/agent-guide/adapters/index.d.ts +0 -23
- package/dist/services/agent-guide/adapters/index.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/index.js +0 -31
- package/dist/services/agent-guide/adapters/index.js.map +0 -1
- package/dist/services/agent-guide/agent-guide-service.d.ts +0 -56
- package/dist/services/agent-guide/agent-guide-service.d.ts.map +0 -1
- package/dist/services/agent-guide/agent-guide-service.js +0 -147
- package/dist/services/agent-guide/agent-guide-service.js.map +0 -1
- package/dist/services/agent-guide/index.d.ts +0 -6
- package/dist/services/agent-guide/index.js +0 -5
- package/dist/services/agent-guide/types.d.ts +0 -58
- package/dist/services/agent-guide/types.d.ts.map +0 -1
- package/dist/services/build.d.ts +0 -59
- package/dist/services/build.d.ts.map +0 -1
- package/dist/services/build.js +0 -140
- package/dist/services/build.js.map +0 -1
- package/dist/services/ci-check/ci-check-service.d.ts +0 -16
- package/dist/services/ci-check/ci-check-service.d.ts.map +0 -1
- package/dist/services/ci-check/ci-check-service.js +0 -459
- package/dist/services/ci-check/ci-check-service.js.map +0 -1
- package/dist/services/ci-check/index.d.ts +0 -2
- package/dist/services/ci-check/index.js +0 -2
- package/dist/services/ci-check/types.d.ts +0 -143
- package/dist/services/ci-check/types.d.ts.map +0 -1
- package/dist/services/ci-check/types.js +0 -31
- package/dist/services/ci-check/types.js.map +0 -1
- package/dist/services/clean.d.ts +0 -41
- package/dist/services/clean.d.ts.map +0 -1
- package/dist/services/clean.js +0 -72
- package/dist/services/clean.js.map +0 -1
- package/dist/services/config.d.ts +0 -16
- package/dist/services/config.d.ts.map +0 -1
- package/dist/services/config.js +0 -63
- package/dist/services/config.js.map +0 -1
- package/dist/services/create/ai-generator.d.ts +0 -84
- package/dist/services/create/ai-generator.d.ts.map +0 -1
- package/dist/services/create/ai-generator.js +0 -178
- package/dist/services/create/ai-generator.js.map +0 -1
- package/dist/services/create/index.d.ts +0 -27
- package/dist/services/create/index.d.ts.map +0 -1
- package/dist/services/create/index.js +0 -36
- package/dist/services/create/index.js.map +0 -1
- package/dist/services/create/templates.d.ts +0 -21
- package/dist/services/create/templates.d.ts.map +0 -1
- package/dist/services/create/templates.js +0 -37
- package/dist/services/create/templates.js.map +0 -1
- package/dist/services/deps.d.ts +0 -53
- package/dist/services/deps.d.ts.map +0 -1
- package/dist/services/deps.js +0 -62
- package/dist/services/deps.js.map +0 -1
- package/dist/services/diff.d.ts +0 -34
- package/dist/services/diff.d.ts.map +0 -1
- package/dist/services/diff.js +0 -34
- package/dist/services/diff.js.map +0 -1
- package/dist/services/docs/docs-service.d.ts +0 -19
- package/dist/services/docs/docs-service.d.ts.map +0 -1
- package/dist/services/docs/docs-service.js +0 -41
- package/dist/services/docs/docs-service.js.map +0 -1
- package/dist/services/docs/index.d.ts +0 -1
- package/dist/services/docs/index.js +0 -1
- package/dist/services/doctor/checks/ai.js +0 -119
- package/dist/services/doctor/checks/ai.js.map +0 -1
- package/dist/services/doctor/checks/cli.js +0 -156
- package/dist/services/doctor/checks/cli.js.map +0 -1
- package/dist/services/doctor/checks/config.js +0 -303
- package/dist/services/doctor/checks/config.js.map +0 -1
- package/dist/services/doctor/checks/deps.js +0 -267
- package/dist/services/doctor/checks/deps.js.map +0 -1
- package/dist/services/doctor/checks/index.js +0 -7
- package/dist/services/doctor/checks/layers.js +0 -139
- package/dist/services/doctor/checks/layers.js.map +0 -1
- package/dist/services/doctor/checks/mcp.js +0 -145
- package/dist/services/doctor/checks/mcp.js.map +0 -1
- package/dist/services/doctor/checks/workspace.js +0 -263
- package/dist/services/doctor/checks/workspace.js.map +0 -1
- package/dist/services/doctor/doctor-service.d.ts +0 -24
- package/dist/services/doctor/doctor-service.d.ts.map +0 -1
- package/dist/services/doctor/doctor-service.js +0 -118
- package/dist/services/doctor/doctor-service.js.map +0 -1
- package/dist/services/doctor/index.d.ts +0 -2
- package/dist/services/doctor/index.js +0 -2
- package/dist/services/doctor/types.d.ts +0 -118
- package/dist/services/doctor/types.d.ts.map +0 -1
- package/dist/services/doctor/types.js +0 -29
- package/dist/services/doctor/types.js.map +0 -1
- package/dist/services/formatter.d.ts +0 -15
- package/dist/services/formatter.d.ts.map +0 -1
- package/dist/services/formatter.js +0 -26
- package/dist/services/formatter.js.map +0 -1
- package/dist/services/hooks/hooks-service.d.ts +0 -24
- package/dist/services/hooks/hooks-service.d.ts.map +0 -1
- package/dist/services/hooks/hooks-service.js +0 -126
- package/dist/services/hooks/hooks-service.js.map +0 -1
- package/dist/services/hooks/index.d.ts +0 -10
- package/dist/services/hooks/index.d.ts.map +0 -1
- package/dist/services/hooks/index.js +0 -12
- package/dist/services/hooks/index.js.map +0 -1
- package/dist/services/hooks/types.d.ts +0 -56
- package/dist/services/hooks/types.d.ts.map +0 -1
- package/dist/services/impact/formatters.d.ts +0 -27
- package/dist/services/impact/formatters.d.ts.map +0 -1
- package/dist/services/impact/formatters.js +0 -111
- package/dist/services/impact/formatters.js.map +0 -1
- package/dist/services/impact/impact-detection-service.d.ts +0 -22
- package/dist/services/impact/impact-detection-service.d.ts.map +0 -1
- package/dist/services/impact/impact-detection-service.js +0 -96
- package/dist/services/impact/impact-detection-service.js.map +0 -1
- package/dist/services/impact/index.d.ts +0 -11
- package/dist/services/impact/index.d.ts.map +0 -1
- package/dist/services/impact/index.js +0 -16
- package/dist/services/impact/index.js.map +0 -1
- package/dist/services/impact/types.d.ts +0 -58
- package/dist/services/impact/types.d.ts.map +0 -1
- package/dist/services/implementation/discovery.d.ts +0 -30
- package/dist/services/implementation/discovery.d.ts.map +0 -1
- package/dist/services/implementation/discovery.js +0 -144
- package/dist/services/implementation/discovery.js.map +0 -1
- package/dist/services/implementation/index.d.ts +0 -3
- package/dist/services/implementation/index.js +0 -2
- package/dist/services/implementation/resolver.d.ts +0 -44
- package/dist/services/implementation/resolver.d.ts.map +0 -1
- package/dist/services/implementation/resolver.js +0 -224
- package/dist/services/implementation/resolver.js.map +0 -1
- package/dist/services/implementation/types.d.ts +0 -79
- package/dist/services/implementation/types.d.ts.map +0 -1
- package/dist/services/index.d.ts +0 -91
- package/dist/services/index.js +0 -87
- package/dist/services/integrity-diagram.d.ts +0 -36
- package/dist/services/integrity-diagram.d.ts.map +0 -1
- package/dist/services/integrity-diagram.js +0 -275
- package/dist/services/integrity-diagram.js.map +0 -1
- package/dist/services/integrity.d.ts +0 -134
- package/dist/services/integrity.d.ts.map +0 -1
- package/dist/services/integrity.js +0 -272
- package/dist/services/integrity.js.map +0 -1
- package/dist/services/layer-discovery.d.ts +0 -77
- package/dist/services/layer-discovery.d.ts.map +0 -1
- package/dist/services/layer-discovery.js +0 -121
- package/dist/services/layer-discovery.js.map +0 -1
- package/dist/services/list.d.ts +0 -31
- package/dist/services/list.d.ts.map +0 -1
- package/dist/services/list.js +0 -36
- package/dist/services/list.js.map +0 -1
- package/dist/services/llm/index.d.ts +0 -28
- package/dist/services/llm/index.d.ts.map +0 -1
- package/dist/services/llm/index.js +0 -187
- package/dist/services/llm/index.js.map +0 -1
- package/dist/services/llm/verify-static.d.ts +0 -26
- package/dist/services/llm/verify-static.d.ts.map +0 -1
- package/dist/services/llm/verify-static.js +0 -82
- package/dist/services/llm/verify-static.js.map +0 -1
- package/dist/services/openapi/export-service.d.ts +0 -53
- package/dist/services/openapi/export-service.d.ts.map +0 -1
- package/dist/services/openapi/export-service.js +0 -50
- package/dist/services/openapi/export-service.js.map +0 -1
- package/dist/services/openapi/import-service.d.ts +0 -17
- package/dist/services/openapi/import-service.d.ts.map +0 -1
- package/dist/services/openapi/import-service.js +0 -168
- package/dist/services/openapi/import-service.js.map +0 -1
- package/dist/services/openapi/index.d.ts +0 -5
- package/dist/services/openapi/index.js +0 -4
- package/dist/services/openapi/sync-service.d.ts +0 -17
- package/dist/services/openapi/sync-service.d.ts.map +0 -1
- package/dist/services/openapi/sync-service.js +0 -120
- package/dist/services/openapi/sync-service.js.map +0 -1
- package/dist/services/openapi/types.d.ts +0 -162
- package/dist/services/openapi/types.d.ts.map +0 -1
- package/dist/services/openapi/validate-service.d.ts +0 -16
- package/dist/services/openapi/validate-service.d.ts.map +0 -1
- package/dist/services/openapi/validate-service.js +0 -130
- package/dist/services/openapi/validate-service.js.map +0 -1
- package/dist/services/quickstart/dependencies.d.ts +0 -31
- package/dist/services/quickstart/dependencies.d.ts.map +0 -1
- package/dist/services/quickstart/dependencies.js +0 -57
- package/dist/services/quickstart/dependencies.js.map +0 -1
- package/dist/services/quickstart/index.js +0 -2
- package/dist/services/quickstart/quickstart-service.d.ts +0 -20
- package/dist/services/quickstart/quickstart-service.d.ts.map +0 -1
- package/dist/services/quickstart/quickstart-service.js +0 -196
- package/dist/services/quickstart/quickstart-service.js.map +0 -1
- package/dist/services/quickstart/types.d.ts +0 -81
- package/dist/services/quickstart/types.d.ts.map +0 -1
- package/dist/services/regenerator.d.ts +0 -18
- package/dist/services/regenerator.d.ts.map +0 -1
- package/dist/services/regenerator.js +0 -23
- package/dist/services/regenerator.js.map +0 -1
- package/dist/services/registry.d.ts +0 -53
- package/dist/services/registry.d.ts.map +0 -1
- package/dist/services/registry.js +0 -74
- package/dist/services/registry.js.map +0 -1
- package/dist/services/rulesync.d.ts +0 -17
- package/dist/services/rulesync.d.ts.map +0 -1
- package/dist/services/rulesync.js +0 -71
- package/dist/services/rulesync.js.map +0 -1
- package/dist/services/setup/config-generators.d.ts +0 -42
- package/dist/services/setup/config-generators.d.ts.map +0 -1
- package/dist/services/setup/config-generators.js +0 -252
- package/dist/services/setup/config-generators.js.map +0 -1
- package/dist/services/setup/file-merger.d.ts +0 -27
- package/dist/services/setup/file-merger.d.ts.map +0 -1
- package/dist/services/setup/file-merger.js +0 -61
- package/dist/services/setup/file-merger.js.map +0 -1
- package/dist/services/setup/index.js +0 -4
- package/dist/services/setup/setup-service.d.ts +0 -12
- package/dist/services/setup/setup-service.d.ts.map +0 -1
- package/dist/services/setup/setup-service.js +0 -96
- package/dist/services/setup/setup-service.js.map +0 -1
- package/dist/services/setup/targets/agents-md.js +0 -47
- package/dist/services/setup/targets/agents-md.js.map +0 -1
- package/dist/services/setup/targets/cli-config.js +0 -60
- package/dist/services/setup/targets/cli-config.js.map +0 -1
- package/dist/services/setup/targets/cursor-rules.js +0 -48
- package/dist/services/setup/targets/cursor-rules.js.map +0 -1
- package/dist/services/setup/targets/mcp-claude.js +0 -60
- package/dist/services/setup/targets/mcp-claude.js.map +0 -1
- package/dist/services/setup/targets/mcp-cursor.js +0 -59
- package/dist/services/setup/targets/mcp-cursor.js.map +0 -1
- package/dist/services/setup/targets/vscode-settings.js +0 -63
- package/dist/services/setup/targets/vscode-settings.js.map +0 -1
- package/dist/services/setup/types.d.ts +0 -85
- package/dist/services/setup/types.d.ts.map +0 -1
- package/dist/services/setup/types.js +0 -27
- package/dist/services/setup/types.js.map +0 -1
- package/dist/services/sync.d.ts +0 -42
- package/dist/services/sync.d.ts.map +0 -1
- package/dist/services/sync.js +0 -64
- package/dist/services/sync.js.map +0 -1
- package/dist/services/test/index.d.ts +0 -1
- package/dist/services/test/index.js +0 -1
- package/dist/services/test/test-service.d.ts +0 -22
- package/dist/services/test/test-service.d.ts.map +0 -1
- package/dist/services/test/test-service.js +0 -81
- package/dist/services/test/test-service.js.map +0 -1
- package/dist/services/upgrade/index.d.ts +0 -10
- package/dist/services/upgrade/index.d.ts.map +0 -1
- package/dist/services/upgrade/index.js +0 -15
- package/dist/services/upgrade/index.js.map +0 -1
- package/dist/services/upgrade/types.d.ts +0 -78
- package/dist/services/upgrade/types.d.ts.map +0 -1
- package/dist/services/upgrade/upgrade-service.d.ts +0 -38
- package/dist/services/upgrade/upgrade-service.d.ts.map +0 -1
- package/dist/services/upgrade/upgrade-service.js +0 -201
- package/dist/services/upgrade/upgrade-service.js.map +0 -1
- package/dist/services/validate/blueprint-validator.d.ts +0 -23
- package/dist/services/validate/blueprint-validator.d.ts.map +0 -1
- package/dist/services/validate/blueprint-validator.js +0 -50
- package/dist/services/validate/blueprint-validator.js.map +0 -1
- package/dist/services/validate/implementation-agent-validator.d.ts +0 -20
- package/dist/services/validate/implementation-agent-validator.d.ts.map +0 -1
- package/dist/services/validate/implementation-agent-validator.js +0 -42
- package/dist/services/validate/implementation-agent-validator.js.map +0 -1
- package/dist/services/validate/implementation-validator.d.ts +0 -32
- package/dist/services/validate/implementation-validator.d.ts.map +0 -1
- package/dist/services/validate/implementation-validator.js +0 -64
- package/dist/services/validate/implementation-validator.js.map +0 -1
- package/dist/services/validate/index.d.ts +0 -5
- package/dist/services/validate/index.js +0 -5
- package/dist/services/validate/spec-validator.d.ts +0 -42
- package/dist/services/validate/spec-validator.d.ts.map +0 -1
- package/dist/services/validate/spec-validator.js +0 -50
- package/dist/services/validate/spec-validator.js.map +0 -1
- package/dist/services/validate/tenant-validator.d.ts +0 -21
- package/dist/services/validate/tenant-validator.d.ts.map +0 -1
- package/dist/services/validate/tenant-validator.js +0 -165
- package/dist/services/validate/tenant-validator.js.map +0 -1
- package/dist/services/verification-cache/adapters/filesystem.d.ts +0 -46
- package/dist/services/verification-cache/adapters/filesystem.d.ts.map +0 -1
- package/dist/services/verification-cache/adapters/filesystem.js +0 -120
- package/dist/services/verification-cache/adapters/filesystem.js.map +0 -1
- package/dist/services/verification-cache/adapters/in-memory.d.ts +0 -27
- package/dist/services/verification-cache/adapters/in-memory.d.ts.map +0 -1
- package/dist/services/verification-cache/adapters/in-memory.js +0 -46
- package/dist/services/verification-cache/adapters/in-memory.js.map +0 -1
- package/dist/services/verification-cache/adapters/index.d.ts +0 -3
- package/dist/services/verification-cache/adapters/index.js +0 -3
- package/dist/services/verification-cache/adapters/workspace-state.d.ts +0 -49
- package/dist/services/verification-cache/adapters/workspace-state.d.ts.map +0 -1
- package/dist/services/verification-cache/adapters/workspace-state.js +0 -91
- package/dist/services/verification-cache/adapters/workspace-state.js.map +0 -1
- package/dist/services/verification-cache/cache-service.d.ts +0 -70
- package/dist/services/verification-cache/cache-service.d.ts.map +0 -1
- package/dist/services/verification-cache/cache-service.js +0 -256
- package/dist/services/verification-cache/cache-service.js.map +0 -1
- package/dist/services/verification-cache/index.d.ts +0 -6
- package/dist/services/verification-cache/index.js +0 -6
- package/dist/services/verification-cache/types.d.ts +0 -124
- package/dist/services/verification-cache/types.d.ts.map +0 -1
- package/dist/services/verification-cache/types.js +0 -16
- package/dist/services/verification-cache/types.js.map +0 -1
- package/dist/services/verify/ai-verifier.d.ts +0 -25
- package/dist/services/verify/ai-verifier.d.ts.map +0 -1
- package/dist/services/verify/ai-verifier.js +0 -403
- package/dist/services/verify/ai-verifier.js.map +0 -1
- package/dist/services/verify/behavior-verifier.d.ts +0 -12
- package/dist/services/verify/behavior-verifier.d.ts.map +0 -1
- package/dist/services/verify/behavior-verifier.js +0 -186
- package/dist/services/verify/behavior-verifier.js.map +0 -1
- package/dist/services/verify/index.d.ts +0 -5
- package/dist/services/verify/index.js +0 -4
- package/dist/services/verify/structure-verifier.d.ts +0 -12
- package/dist/services/verify/structure-verifier.d.ts.map +0 -1
- package/dist/services/verify/structure-verifier.js +0 -196
- package/dist/services/verify/structure-verifier.js.map +0 -1
- package/dist/services/verify/types.d.ts +0 -137
- package/dist/services/verify/types.d.ts.map +0 -1
- package/dist/services/verify/verify-service.d.ts +0 -60
- package/dist/services/verify/verify-service.d.ts.map +0 -1
- package/dist/services/verify/verify-service.js +0 -204
- package/dist/services/verify/verify-service.js.map +0 -1
- package/dist/services/versioning/changelog-formatter.d.ts +0 -24
- package/dist/services/versioning/changelog-formatter.d.ts.map +0 -1
- package/dist/services/versioning/changelog-formatter.js +0 -155
- package/dist/services/versioning/changelog-formatter.js.map +0 -1
- package/dist/services/versioning/conventional-commits.d.ts +0 -95
- package/dist/services/versioning/conventional-commits.d.ts.map +0 -1
- package/dist/services/versioning/conventional-commits.js +0 -184
- package/dist/services/versioning/conventional-commits.js.map +0 -1
- package/dist/services/versioning/index.d.ts +0 -12
- package/dist/services/versioning/index.d.ts.map +0 -1
- package/dist/services/versioning/index.js +0 -28
- package/dist/services/versioning/index.js.map +0 -1
- package/dist/services/versioning/types.d.ts +0 -135
- package/dist/services/versioning/types.d.ts.map +0 -1
- package/dist/services/versioning/versioning-service.d.ts +0 -74
- package/dist/services/versioning/versioning-service.d.ts.map +0 -1
- package/dist/services/versioning/versioning-service.js +0 -501
- package/dist/services/versioning/versioning-service.js.map +0 -1
- package/dist/services/watch.d.ts +0 -25
- package/dist/services/watch.d.ts.map +0 -1
- package/dist/services/watch.js +0 -33
- package/dist/services/watch.js.map +0 -1
- package/dist/services/workspace-info.d.ts +0 -62
- package/dist/services/workspace-info.d.ts.map +0 -1
- package/dist/services/workspace-info.js +0 -103
- package/dist/services/workspace-info.js.map +0 -1
- package/dist/templates/app-config.template.d.ts +0 -7
- package/dist/templates/app-config.template.d.ts.map +0 -1
- package/dist/templates/app-config.template.js +0 -107
- package/dist/templates/app-config.template.js.map +0 -1
- package/dist/templates/data-view.template.d.ts +0 -7
- package/dist/templates/data-view.template.d.ts.map +0 -1
- package/dist/templates/data-view.template.js +0 -70
- package/dist/templates/data-view.template.js.map +0 -1
- package/dist/templates/event.template.d.ts +0 -11
- package/dist/templates/event.template.d.ts.map +0 -1
- package/dist/templates/event.template.js +0 -42
- package/dist/templates/event.template.js.map +0 -1
- package/dist/templates/experiment.template.d.ts +0 -7
- package/dist/templates/experiment.template.d.ts.map +0 -1
- package/dist/templates/experiment.template.js +0 -89
- package/dist/templates/experiment.template.js.map +0 -1
- package/dist/templates/handler.template.d.ts +0 -16
- package/dist/templates/handler.template.d.ts.map +0 -1
- package/dist/templates/handler.template.js +0 -100
- package/dist/templates/handler.template.js.map +0 -1
- package/dist/templates/index.d.ts +0 -21
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/index.js +0 -37
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/integration.template.d.ts +0 -7
- package/dist/templates/integration.template.d.ts.map +0 -1
- package/dist/templates/integration.template.js +0 -160
- package/dist/templates/integration.template.js.map +0 -1
- package/dist/templates/knowledge.template.d.ts +0 -7
- package/dist/templates/knowledge.template.d.ts.map +0 -1
- package/dist/templates/knowledge.template.js +0 -75
- package/dist/templates/knowledge.template.js.map +0 -1
- package/dist/templates/migration.template.d.ts +0 -7
- package/dist/templates/migration.template.d.ts.map +0 -1
- package/dist/templates/migration.template.js +0 -62
- package/dist/templates/migration.template.js.map +0 -1
- package/dist/templates/operation.template.d.ts +0 -11
- package/dist/templates/operation.template.d.ts.map +0 -1
- package/dist/templates/operation.template.js +0 -107
- package/dist/templates/operation.template.js.map +0 -1
- package/dist/templates/presentation.template.d.ts +0 -11
- package/dist/templates/presentation.template.d.ts.map +0 -1
- package/dist/templates/presentation.template.js +0 -80
- package/dist/templates/presentation.template.js.map +0 -1
- package/dist/templates/telemetry.template.d.ts +0 -7
- package/dist/templates/telemetry.template.d.ts.map +0 -1
- package/dist/templates/telemetry.template.js +0 -91
- package/dist/templates/telemetry.template.js.map +0 -1
- package/dist/templates/workflow-runner.template.d.ts +0 -16
- package/dist/templates/workflow-runner.template.d.ts.map +0 -1
- package/dist/templates/workflow-runner.template.js +0 -50
- package/dist/templates/workflow-runner.template.js.map +0 -1
- package/dist/templates/workflow.template.d.ts +0 -7
- package/dist/templates/workflow.template.d.ts.map +0 -1
- package/dist/templates/workflow.template.js +0 -69
- package/dist/templates/workflow.template.js.map +0 -1
- package/dist/types/config.d.ts +0 -34
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types.d.ts +0 -324
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/module-loader.js +0 -41
- package/dist/utils/module-loader.js.map +0 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { findPackageRoot, findWorkspaceRoot, getPackageName, isMonorepo } from "../../adapters/workspace.mjs";
|
|
2
|
+
import { ALL_CHECK_CATEGORIES, CHECK_CATEGORY_LABELS } from "./types.mjs";
|
|
3
|
+
import { runCliChecks } from "./checks/cli.mjs";
|
|
4
|
+
import { runConfigChecks } from "./checks/config.mjs";
|
|
5
|
+
import { runMcpChecks } from "./checks/mcp.mjs";
|
|
6
|
+
import { runDepsChecks } from "./checks/deps.mjs";
|
|
7
|
+
import { runWorkspaceChecks } from "./checks/workspace.mjs";
|
|
8
|
+
import { runAiChecks } from "./checks/ai.mjs";
|
|
9
|
+
import { runLayerChecks } from "./checks/layers.mjs";
|
|
10
|
+
import "./checks/index.mjs";
|
|
11
|
+
|
|
12
|
+
//#region src/services/doctor/doctor-service.ts
|
|
13
|
+
/**
|
|
14
|
+
* Default prompt callbacks that always decline fixes.
|
|
15
|
+
*/
|
|
16
|
+
const defaultPrompts = {
|
|
17
|
+
confirm: async () => false,
|
|
18
|
+
input: async () => ""
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Run all health checks and optionally apply fixes.
|
|
22
|
+
*/
|
|
23
|
+
async function runDoctor(adapters, options, prompts = defaultPrompts) {
|
|
24
|
+
const { fs, logger } = adapters;
|
|
25
|
+
const categories = options.categories ?? ALL_CHECK_CATEGORIES;
|
|
26
|
+
const workspaceRoot = findWorkspaceRoot(options.workspaceRoot);
|
|
27
|
+
const packageRoot = findPackageRoot(options.workspaceRoot);
|
|
28
|
+
const monorepo = isMonorepo(workspaceRoot);
|
|
29
|
+
const packageName = monorepo ? getPackageName(packageRoot) : void 0;
|
|
30
|
+
const ctx = {
|
|
31
|
+
workspaceRoot,
|
|
32
|
+
packageRoot,
|
|
33
|
+
isMonorepo: monorepo,
|
|
34
|
+
packageName,
|
|
35
|
+
verbose: options.verbose ?? false
|
|
36
|
+
};
|
|
37
|
+
if (monorepo) {
|
|
38
|
+
const pkgInfo = packageName ? ` (package: ${packageName})` : "";
|
|
39
|
+
logger.info(`Detected monorepo${pkgInfo}`);
|
|
40
|
+
}
|
|
41
|
+
const allResults = [];
|
|
42
|
+
for (const category of categories) {
|
|
43
|
+
if (options.skipAi && category === "ai") continue;
|
|
44
|
+
logger.info(`Checking ${CHECK_CATEGORY_LABELS[category]}...`);
|
|
45
|
+
const categoryResults = await runCategoryChecks(category, fs, ctx, prompts);
|
|
46
|
+
for (const result of categoryResults) {
|
|
47
|
+
if (result.fix && (result.status === "fail" || result.status === "warn")) {
|
|
48
|
+
if (options.autoFix ? true : await prompts.confirm(`Fix "${result.name}"? ${result.fix.description}`)) {
|
|
49
|
+
logger.info(`Applying fix: ${result.fix.description}`);
|
|
50
|
+
const fixResult = await result.fix.apply();
|
|
51
|
+
if (fixResult.success) {
|
|
52
|
+
logger.info(`✓ ${fixResult.message}`);
|
|
53
|
+
result.status = "pass";
|
|
54
|
+
result.message = `Fixed: ${fixResult.message}`;
|
|
55
|
+
result.fix = void 0;
|
|
56
|
+
} else logger.warn(`✗ ${fixResult.message}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
allResults.push(result);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const passed = allResults.filter((r) => r.status === "pass").length;
|
|
63
|
+
const warnings = allResults.filter((r) => r.status === "warn").length;
|
|
64
|
+
const failures = allResults.filter((r) => r.status === "fail").length;
|
|
65
|
+
return {
|
|
66
|
+
checks: allResults,
|
|
67
|
+
passed,
|
|
68
|
+
warnings,
|
|
69
|
+
failures,
|
|
70
|
+
skipped: allResults.filter((r) => r.status === "skip").length,
|
|
71
|
+
healthy: failures === 0
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Run checks for a specific category.
|
|
76
|
+
*/
|
|
77
|
+
async function runCategoryChecks(category, fs, ctx, prompts) {
|
|
78
|
+
switch (category) {
|
|
79
|
+
case "cli": return runCliChecks(fs, ctx);
|
|
80
|
+
case "config": return runConfigChecks(fs, ctx);
|
|
81
|
+
case "mcp": return runMcpChecks(fs, ctx);
|
|
82
|
+
case "deps": return runDepsChecks(fs, ctx);
|
|
83
|
+
case "workspace": return runWorkspaceChecks(fs, ctx);
|
|
84
|
+
case "ai": return runAiChecks(fs, ctx, prompts);
|
|
85
|
+
case "layers": return runLayerChecks(fs, ctx);
|
|
86
|
+
default: return [];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get a summary string for the doctor result.
|
|
91
|
+
*/
|
|
92
|
+
function formatDoctorSummary(result) {
|
|
93
|
+
const lines = [];
|
|
94
|
+
lines.push("");
|
|
95
|
+
lines.push("=== Health Check Summary ===");
|
|
96
|
+
lines.push("");
|
|
97
|
+
if (result.healthy) lines.push("✓ All checks passed!");
|
|
98
|
+
else lines.push("✗ Some issues found");
|
|
99
|
+
lines.push("");
|
|
100
|
+
lines.push(` Passed: ${result.passed}`);
|
|
101
|
+
lines.push(` Warnings: ${result.warnings}`);
|
|
102
|
+
lines.push(` Failures: ${result.failures}`);
|
|
103
|
+
lines.push(` Skipped: ${result.skipped}`);
|
|
104
|
+
return lines.join("\n");
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Format a single check result for display.
|
|
108
|
+
*/
|
|
109
|
+
function formatCheckResult(result) {
|
|
110
|
+
let line = `${result.status === "pass" ? "✓" : result.status === "warn" ? "⚠" : result.status === "fail" ? "✗" : "○"} ${result.name}: ${result.message}`;
|
|
111
|
+
if (result.details) line += `\n ${result.details}`;
|
|
112
|
+
if (result.fix) line += `\n Fix available: ${result.fix.description}`;
|
|
113
|
+
return line;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//#endregion
|
|
117
|
+
export { formatCheckResult, formatDoctorSummary, runDoctor };
|
|
118
|
+
//# sourceMappingURL=doctor-service.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-service.mjs","names":[],"sources":["../../../src/services/doctor/doctor-service.ts"],"sourcesContent":["/**\n * Doctor service.\n *\n * Orchestrates health checks and applies fixes.\n */\n\nimport type { FsAdapter } from '../../ports/fs';\nimport type { LoggerAdapter } from '../../ports/logger';\nimport type {\n CheckCategory,\n CheckResult,\n CheckContext,\n DoctorOptions,\n DoctorResult,\n DoctorPromptCallbacks,\n} from './types';\nimport { ALL_CHECK_CATEGORIES, CHECK_CATEGORY_LABELS } from './types';\nimport {\n runCliChecks,\n runConfigChecks,\n runMcpChecks,\n runDepsChecks,\n runWorkspaceChecks,\n runAiChecks,\n runLayerChecks,\n} from './checks/index';\nimport {\n findPackageRoot,\n findWorkspaceRoot,\n isMonorepo,\n getPackageName,\n} from '../../adapters/workspace';\n\n/**\n * Default prompt callbacks that always decline fixes.\n */\nconst defaultPrompts: DoctorPromptCallbacks = {\n confirm: async () => false,\n input: async () => '',\n};\n\n/**\n * Run all health checks and optionally apply fixes.\n */\nexport async function runDoctor(\n adapters: { fs: FsAdapter; logger: LoggerAdapter },\n options: DoctorOptions,\n prompts: DoctorPromptCallbacks = defaultPrompts\n): Promise<DoctorResult> {\n const { fs, logger } = adapters;\n const categories = options.categories ?? ALL_CHECK_CATEGORIES;\n\n // Detect monorepo context\n const workspaceRoot = findWorkspaceRoot(options.workspaceRoot);\n const packageRoot = findPackageRoot(options.workspaceRoot);\n const monorepo = isMonorepo(workspaceRoot);\n const packageName = monorepo ? getPackageName(packageRoot) : undefined;\n\n const ctx: CheckContext = {\n workspaceRoot,\n packageRoot,\n isMonorepo: monorepo,\n packageName,\n verbose: options.verbose ?? false,\n };\n\n // Log monorepo context if detected\n if (monorepo) {\n const pkgInfo = packageName ? ` (package: ${packageName})` : '';\n logger.info(`Detected monorepo${pkgInfo}`);\n }\n\n const allResults: CheckResult[] = [];\n\n // Run checks for each category\n for (const category of categories) {\n if (options.skipAi && category === 'ai') {\n continue;\n }\n\n logger.info(`Checking ${CHECK_CATEGORY_LABELS[category]}...`);\n\n const categoryResults = await runCategoryChecks(category, fs, ctx, prompts);\n\n // Apply fixes if enabled\n for (const result of categoryResults) {\n if (\n result.fix &&\n (result.status === 'fail' || result.status === 'warn')\n ) {\n const shouldFix = options.autoFix\n ? true\n : await prompts.confirm(\n `Fix \"${result.name}\"? ${result.fix.description}`\n );\n\n if (shouldFix) {\n logger.info(`Applying fix: ${result.fix.description}`);\n const fixResult = await result.fix.apply();\n\n if (fixResult.success) {\n logger.info(`✓ ${fixResult.message}`);\n // Update status to pass after successful fix\n result.status = 'pass';\n result.message = `Fixed: ${fixResult.message}`;\n result.fix = undefined;\n } else {\n logger.warn(`✗ ${fixResult.message}`);\n }\n }\n }\n\n allResults.push(result);\n }\n }\n\n // Calculate summary\n const passed = allResults.filter((r) => r.status === 'pass').length;\n const warnings = allResults.filter((r) => r.status === 'warn').length;\n const failures = allResults.filter((r) => r.status === 'fail').length;\n const skipped = allResults.filter((r) => r.status === 'skip').length;\n\n return {\n checks: allResults,\n passed,\n warnings,\n failures,\n skipped,\n healthy: failures === 0,\n };\n}\n\n/**\n * Run checks for a specific category.\n */\nasync function runCategoryChecks(\n category: CheckCategory,\n fs: FsAdapter,\n ctx: CheckContext,\n prompts: DoctorPromptCallbacks\n): Promise<CheckResult[]> {\n switch (category) {\n case 'cli':\n return runCliChecks(fs, ctx);\n case 'config':\n return runConfigChecks(fs, ctx);\n case 'mcp':\n return runMcpChecks(fs, ctx);\n case 'deps':\n return runDepsChecks(fs, ctx);\n case 'workspace':\n return runWorkspaceChecks(fs, ctx);\n case 'ai':\n return runAiChecks(fs, ctx, prompts);\n case 'layers':\n return runLayerChecks(fs, ctx);\n default:\n return [];\n }\n}\n\n/**\n * Get a summary string for the doctor result.\n */\nexport function formatDoctorSummary(result: DoctorResult): string {\n const lines: string[] = [];\n\n lines.push('');\n lines.push('=== Health Check Summary ===');\n lines.push('');\n\n if (result.healthy) {\n lines.push('✓ All checks passed!');\n } else {\n lines.push('✗ Some issues found');\n }\n\n lines.push('');\n lines.push(` Passed: ${result.passed}`);\n lines.push(` Warnings: ${result.warnings}`);\n lines.push(` Failures: ${result.failures}`);\n lines.push(` Skipped: ${result.skipped}`);\n\n return lines.join('\\n');\n}\n\n/**\n * Format a single check result for display.\n */\nexport function formatCheckResult(result: CheckResult): string {\n const icon =\n result.status === 'pass'\n ? '✓'\n : result.status === 'warn'\n ? '⚠'\n : result.status === 'fail'\n ? '✗'\n : '○';\n\n let line = `${icon} ${result.name}: ${result.message}`;\n\n if (result.details) {\n line += `\\n ${result.details}`;\n }\n\n if (result.fix) {\n line += `\\n Fix available: ${result.fix.description}`;\n }\n\n return line;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAoCA,MAAM,iBAAwC;CAC5C,SAAS,YAAY;CACrB,OAAO,YAAY;CACpB;;;;AAKD,eAAsB,UACpB,UACA,SACA,UAAiC,gBACV;CACvB,MAAM,EAAE,IAAI,WAAW;CACvB,MAAM,aAAa,QAAQ,cAAc;CAGzC,MAAM,gBAAgB,kBAAkB,QAAQ,cAAc;CAC9D,MAAM,cAAc,gBAAgB,QAAQ,cAAc;CAC1D,MAAM,WAAW,WAAW,cAAc;CAC1C,MAAM,cAAc,WAAW,eAAe,YAAY,GAAG;CAE7D,MAAM,MAAoB;EACxB;EACA;EACA,YAAY;EACZ;EACA,SAAS,QAAQ,WAAW;EAC7B;AAGD,KAAI,UAAU;EACZ,MAAM,UAAU,cAAc,cAAc,YAAY,KAAK;AAC7D,SAAO,KAAK,oBAAoB,UAAU;;CAG5C,MAAM,aAA4B,EAAE;AAGpC,MAAK,MAAM,YAAY,YAAY;AACjC,MAAI,QAAQ,UAAU,aAAa,KACjC;AAGF,SAAO,KAAK,YAAY,sBAAsB,UAAU,KAAK;EAE7D,MAAM,kBAAkB,MAAM,kBAAkB,UAAU,IAAI,KAAK,QAAQ;AAG3E,OAAK,MAAM,UAAU,iBAAiB;AACpC,OACE,OAAO,QACN,OAAO,WAAW,UAAU,OAAO,WAAW,SAQ/C;QANkB,QAAQ,UACtB,OACA,MAAM,QAAQ,QACZ,QAAQ,OAAO,KAAK,KAAK,OAAO,IAAI,cACrC,EAEU;AACb,YAAO,KAAK,iBAAiB,OAAO,IAAI,cAAc;KACtD,MAAM,YAAY,MAAM,OAAO,IAAI,OAAO;AAE1C,SAAI,UAAU,SAAS;AACrB,aAAO,KAAK,KAAK,UAAU,UAAU;AAErC,aAAO,SAAS;AAChB,aAAO,UAAU,UAAU,UAAU;AACrC,aAAO,MAAM;WAEb,QAAO,KAAK,KAAK,UAAU,UAAU;;;AAK3C,cAAW,KAAK,OAAO;;;CAK3B,MAAM,SAAS,WAAW,QAAQ,MAAM,EAAE,WAAW,OAAO,CAAC;CAC7D,MAAM,WAAW,WAAW,QAAQ,MAAM,EAAE,WAAW,OAAO,CAAC;CAC/D,MAAM,WAAW,WAAW,QAAQ,MAAM,EAAE,WAAW,OAAO,CAAC;AAG/D,QAAO;EACL,QAAQ;EACR;EACA;EACA;EACA,SAPc,WAAW,QAAQ,MAAM,EAAE,WAAW,OAAO,CAAC;EAQ5D,SAAS,aAAa;EACvB;;;;;AAMH,eAAe,kBACb,UACA,IACA,KACA,SACwB;AACxB,SAAQ,UAAR;EACE,KAAK,MACH,QAAO,aAAa,IAAI,IAAI;EAC9B,KAAK,SACH,QAAO,gBAAgB,IAAI,IAAI;EACjC,KAAK,MACH,QAAO,aAAa,IAAI,IAAI;EAC9B,KAAK,OACH,QAAO,cAAc,IAAI,IAAI;EAC/B,KAAK,YACH,QAAO,mBAAmB,IAAI,IAAI;EACpC,KAAK,KACH,QAAO,YAAY,IAAI,KAAK,QAAQ;EACtC,KAAK,SACH,QAAO,eAAe,IAAI,IAAI;EAChC,QACE,QAAO,EAAE;;;;;;AAOf,SAAgB,oBAAoB,QAA8B;CAChE,MAAM,QAAkB,EAAE;AAE1B,OAAM,KAAK,GAAG;AACd,OAAM,KAAK,+BAA+B;AAC1C,OAAM,KAAK,GAAG;AAEd,KAAI,OAAO,QACT,OAAM,KAAK,uBAAuB;KAElC,OAAM,KAAK,sBAAsB;AAGnC,OAAM,KAAK,GAAG;AACd,OAAM,KAAK,eAAe,OAAO,SAAS;AAC1C,OAAM,KAAK,eAAe,OAAO,WAAW;AAC5C,OAAM,KAAK,eAAe,OAAO,WAAW;AAC5C,OAAM,KAAK,eAAe,OAAO,UAAU;AAE3C,QAAO,MAAM,KAAK,KAAK;;;;;AAMzB,SAAgB,kBAAkB,QAA6B;CAU7D,IAAI,OAAO,GART,OAAO,WAAW,SACd,MACA,OAAO,WAAW,SAChB,MACA,OAAO,WAAW,SAChB,MACA,IAES,GAAG,OAAO,KAAK,IAAI,OAAO;AAE7C,KAAI,OAAO,QACT,SAAQ,SAAS,OAAO;AAG1B,KAAI,OAAO,IACT,SAAQ,wBAAwB,OAAO,IAAI;AAG7C,QAAO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { ALL_CHECK_CATEGORIES, CHECK_CATEGORY_LABELS, CheckCategory, CheckContext, CheckResult, CheckStatus, DoctorOptions, DoctorPromptCallbacks, DoctorResult, FixAction, FixResult } from "./types.mjs";
|
|
2
|
+
import { formatCheckResult, formatDoctorSummary, runDoctor } from "./doctor-service.mjs";
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
//#region src/services/doctor/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Doctor service types.
|
|
4
|
+
*
|
|
5
|
+
* Types for health checks and auto-fix functionality.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Categories of health checks.
|
|
9
|
+
*/
|
|
10
|
+
type CheckCategory = 'cli' | 'config' | 'mcp' | 'deps' | 'workspace' | 'ai' | 'layers';
|
|
11
|
+
/**
|
|
12
|
+
* All available check categories.
|
|
13
|
+
*/
|
|
14
|
+
declare const ALL_CHECK_CATEGORIES: CheckCategory[];
|
|
15
|
+
/**
|
|
16
|
+
* Human-readable labels for check categories.
|
|
17
|
+
*/
|
|
18
|
+
declare const CHECK_CATEGORY_LABELS: Record<CheckCategory, string>;
|
|
19
|
+
/**
|
|
20
|
+
* Status of a health check.
|
|
21
|
+
*/
|
|
22
|
+
type CheckStatus = 'pass' | 'warn' | 'fail' | 'skip';
|
|
23
|
+
/**
|
|
24
|
+
* Result of applying a fix.
|
|
25
|
+
*/
|
|
26
|
+
interface FixResult {
|
|
27
|
+
/** Whether the fix was successful. */
|
|
28
|
+
success: boolean;
|
|
29
|
+
/** Message describing the result. */
|
|
30
|
+
message: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* An action that can fix a failed check.
|
|
34
|
+
*/
|
|
35
|
+
interface FixAction {
|
|
36
|
+
/** Description of what the fix will do. */
|
|
37
|
+
description: string;
|
|
38
|
+
/** Function to apply the fix. */
|
|
39
|
+
apply: () => Promise<FixResult>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Result of a single health check.
|
|
43
|
+
*/
|
|
44
|
+
interface CheckResult {
|
|
45
|
+
/** Category of the check. */
|
|
46
|
+
category: CheckCategory;
|
|
47
|
+
/** Name of the specific check. */
|
|
48
|
+
name: string;
|
|
49
|
+
/** Status of the check. */
|
|
50
|
+
status: CheckStatus;
|
|
51
|
+
/** Human-readable message. */
|
|
52
|
+
message: string;
|
|
53
|
+
/** Optional fix action if status is 'fail' or 'warn'. */
|
|
54
|
+
fix?: FixAction;
|
|
55
|
+
/** Additional details for debugging. */
|
|
56
|
+
details?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Options for running the doctor.
|
|
60
|
+
*/
|
|
61
|
+
interface DoctorOptions {
|
|
62
|
+
/** Root directory of the workspace. */
|
|
63
|
+
workspaceRoot: string;
|
|
64
|
+
/** Categories to check (defaults to all). */
|
|
65
|
+
categories?: CheckCategory[];
|
|
66
|
+
/** If true, auto-apply fixes without prompting. */
|
|
67
|
+
autoFix?: boolean;
|
|
68
|
+
/** Skip AI provider checks. */
|
|
69
|
+
skipAi?: boolean;
|
|
70
|
+
/** Verbose output. */
|
|
71
|
+
verbose?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Summary of doctor results.
|
|
75
|
+
*/
|
|
76
|
+
interface DoctorResult {
|
|
77
|
+
/** All check results. */
|
|
78
|
+
checks: CheckResult[];
|
|
79
|
+
/** Number of passing checks. */
|
|
80
|
+
passed: number;
|
|
81
|
+
/** Number of warnings. */
|
|
82
|
+
warnings: number;
|
|
83
|
+
/** Number of failures. */
|
|
84
|
+
failures: number;
|
|
85
|
+
/** Number of skipped checks. */
|
|
86
|
+
skipped: number;
|
|
87
|
+
/** Overall health status. */
|
|
88
|
+
healthy: boolean;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Callback for interactive prompts during doctor.
|
|
92
|
+
*/
|
|
93
|
+
interface DoctorPromptCallbacks {
|
|
94
|
+
/** Confirm a fix action. */
|
|
95
|
+
confirm: (message: string) => Promise<boolean>;
|
|
96
|
+
/** Input a value (e.g., API key). */
|
|
97
|
+
input: (message: string, options?: {
|
|
98
|
+
password?: boolean;
|
|
99
|
+
}) => Promise<string>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Context passed to check functions.
|
|
103
|
+
*/
|
|
104
|
+
interface CheckContext {
|
|
105
|
+
/** Workspace root path (monorepo root or single project root). */
|
|
106
|
+
workspaceRoot: string;
|
|
107
|
+
/** Current package root (may differ from workspaceRoot in monorepos). */
|
|
108
|
+
packageRoot: string;
|
|
109
|
+
/** Whether this is a monorepo. */
|
|
110
|
+
isMonorepo: boolean;
|
|
111
|
+
/** Current package name (if in a monorepo package). */
|
|
112
|
+
packageName?: string;
|
|
113
|
+
/** Whether verbose output is enabled. */
|
|
114
|
+
verbose: boolean;
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
export { ALL_CHECK_CATEGORIES, CHECK_CATEGORY_LABELS, CheckCategory, CheckContext, CheckResult, CheckStatus, DoctorOptions, DoctorPromptCallbacks, DoctorResult, FixAction, FixResult };
|
|
118
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/services/doctor/types.ts"],"sourcesContent":[],"mappings":";;AASA;AAYA;AAaA;AAaA;AAKA;AAUA;AAUA;AAEY,KAjEA,aAAA,GAiEA,KAAA,GAAA,QAAA,GAAA,KAAA,GAAA,MAAA,GAAA,WAAA,GAAA,IAAA,GAAA,QAAA;;;;AAgBK,cArEJ,oBAyEE,EAzEoB,aAyEP,EAAA;AAY5B;AAkBA;AAUA;cApGa,uBAAuB,OAAO;;;;KAa/B,WAAA;;;;UAKK,SAAA;;;;;;;;;UAUA,SAAA;;;;eAIF,QAAQ;;;;;UAMN,WAAA;;YAEL;;;;UAIF;;;;QAIF;;;;;;;UAQS,aAAA;;;;eAIF;;;;;;;;;;;UAYE,YAAA;;UAEP;;;;;;;;;;;;;;;UAgBO,qBAAA;;gCAEe;;;;QAEgC;;;;;UAM/C,YAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/services/doctor/types.ts
|
|
2
|
+
/**
|
|
3
|
+
* All available check categories.
|
|
4
|
+
*/
|
|
5
|
+
const ALL_CHECK_CATEGORIES = [
|
|
6
|
+
"cli",
|
|
7
|
+
"config",
|
|
8
|
+
"mcp",
|
|
9
|
+
"deps",
|
|
10
|
+
"workspace",
|
|
11
|
+
"ai",
|
|
12
|
+
"layers"
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* Human-readable labels for check categories.
|
|
16
|
+
*/
|
|
17
|
+
const CHECK_CATEGORY_LABELS = {
|
|
18
|
+
cli: "CLI Installation",
|
|
19
|
+
config: "Configuration Files",
|
|
20
|
+
mcp: "MCP Server",
|
|
21
|
+
deps: "Dependencies",
|
|
22
|
+
workspace: "Workspace Structure",
|
|
23
|
+
ai: "AI Provider",
|
|
24
|
+
layers: "Contract Layers"
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { ALL_CHECK_CATEGORIES, CHECK_CATEGORY_LABELS };
|
|
29
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/services/doctor/types.ts"],"sourcesContent":["/**\n * Doctor service types.\n *\n * Types for health checks and auto-fix functionality.\n */\n\n/**\n * Categories of health checks.\n */\nexport type CheckCategory =\n | 'cli'\n | 'config'\n | 'mcp'\n | 'deps'\n | 'workspace'\n | 'ai'\n | 'layers';\n\n/**\n * All available check categories.\n */\nexport const ALL_CHECK_CATEGORIES: CheckCategory[] = [\n 'cli',\n 'config',\n 'mcp',\n 'deps',\n 'workspace',\n 'ai',\n 'layers',\n];\n\n/**\n * Human-readable labels for check categories.\n */\nexport const CHECK_CATEGORY_LABELS: Record<CheckCategory, string> = {\n cli: 'CLI Installation',\n config: 'Configuration Files',\n mcp: 'MCP Server',\n deps: 'Dependencies',\n workspace: 'Workspace Structure',\n ai: 'AI Provider',\n layers: 'Contract Layers',\n};\n\n/**\n * Status of a health check.\n */\nexport type CheckStatus = 'pass' | 'warn' | 'fail' | 'skip';\n\n/**\n * Result of applying a fix.\n */\nexport interface FixResult {\n /** Whether the fix was successful. */\n success: boolean;\n /** Message describing the result. */\n message: string;\n}\n\n/**\n * An action that can fix a failed check.\n */\nexport interface FixAction {\n /** Description of what the fix will do. */\n description: string;\n /** Function to apply the fix. */\n apply: () => Promise<FixResult>;\n}\n\n/**\n * Result of a single health check.\n */\nexport interface CheckResult {\n /** Category of the check. */\n category: CheckCategory;\n /** Name of the specific check. */\n name: string;\n /** Status of the check. */\n status: CheckStatus;\n /** Human-readable message. */\n message: string;\n /** Optional fix action if status is 'fail' or 'warn'. */\n fix?: FixAction;\n /** Additional details for debugging. */\n details?: string;\n}\n\n/**\n * Options for running the doctor.\n */\nexport interface DoctorOptions {\n /** Root directory of the workspace. */\n workspaceRoot: string;\n /** Categories to check (defaults to all). */\n categories?: CheckCategory[];\n /** If true, auto-apply fixes without prompting. */\n autoFix?: boolean;\n /** Skip AI provider checks. */\n skipAi?: boolean;\n /** Verbose output. */\n verbose?: boolean;\n}\n\n/**\n * Summary of doctor results.\n */\nexport interface DoctorResult {\n /** All check results. */\n checks: CheckResult[];\n /** Number of passing checks. */\n passed: number;\n /** Number of warnings. */\n warnings: number;\n /** Number of failures. */\n failures: number;\n /** Number of skipped checks. */\n skipped: number;\n /** Overall health status. */\n healthy: boolean;\n}\n\n/**\n * Callback for interactive prompts during doctor.\n */\nexport interface DoctorPromptCallbacks {\n /** Confirm a fix action. */\n confirm: (message: string) => Promise<boolean>;\n /** Input a value (e.g., API key). */\n input: (message: string, options?: { password?: boolean }) => Promise<string>;\n}\n\n/**\n * Context passed to check functions.\n */\nexport interface CheckContext {\n /** Workspace root path (monorepo root or single project root). */\n workspaceRoot: string;\n /** Current package root (may differ from workspaceRoot in monorepos). */\n packageRoot: string;\n /** Whether this is a monorepo. */\n isMonorepo: boolean;\n /** Current package name (if in a monorepo package). */\n packageName?: string;\n /** Whether verbose output is enabled. */\n verbose: boolean;\n}\n"],"mappings":";;;;AAqBA,MAAa,uBAAwC;CACnD;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;AAKD,MAAa,wBAAuD;CAClE,KAAK;CACL,QAAQ;CACR,KAAK;CACL,MAAM;CACN,WAAW;CACX,IAAI;CACJ,QAAQ;CACT"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { generateArtifacts } from "./generate-artifacts.mjs";
|
|
2
|
+
import { mkdtemp, rm } from "node:fs/promises";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
|
|
6
|
+
//#region src/services/drift.ts
|
|
7
|
+
/**
|
|
8
|
+
* Drift detection service.
|
|
9
|
+
*
|
|
10
|
+
* Detects when generated artifacts are out of sync with their source specs.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Detect drift between generated artifacts and source specs.
|
|
14
|
+
*
|
|
15
|
+
* Generates artifacts to a temporary directory and compares against
|
|
16
|
+
* the existing generated directory to find differences.
|
|
17
|
+
*
|
|
18
|
+
* @param adapters - Workspace adapters for file operations
|
|
19
|
+
* @param contractsDir - Directory containing source contracts
|
|
20
|
+
* @param generatedDir - Directory containing generated artifacts
|
|
21
|
+
* @returns Result indicating if drift exists and which files are affected
|
|
22
|
+
*/
|
|
23
|
+
async function detectDrift(adapters, contractsDir, generatedDir) {
|
|
24
|
+
const tempDir = await mkdtemp(path.join(tmpdir(), "contractspec-drift-"));
|
|
25
|
+
try {
|
|
26
|
+
await generateArtifacts(adapters, contractsDir, tempDir);
|
|
27
|
+
const differences = [];
|
|
28
|
+
const fs = await import("node:fs/promises");
|
|
29
|
+
async function getFiles(dir) {
|
|
30
|
+
const dirents = await fs.readdir(dir, { withFileTypes: true });
|
|
31
|
+
const files = [];
|
|
32
|
+
for (const dirent of dirents) {
|
|
33
|
+
const res = path.resolve(dir, dirent.name);
|
|
34
|
+
if (dirent.isDirectory()) files.push(...await getFiles(res));
|
|
35
|
+
else files.push(res);
|
|
36
|
+
}
|
|
37
|
+
return files;
|
|
38
|
+
}
|
|
39
|
+
const getRelativeFiles = async (root) => {
|
|
40
|
+
if (!await fs.stat(root).catch(() => false)) return [];
|
|
41
|
+
return (await getFiles(root)).map((f) => path.relative(root, f)).sort();
|
|
42
|
+
};
|
|
43
|
+
const tempFiles = await getRelativeFiles(tempDir);
|
|
44
|
+
const existingFiles = await getRelativeFiles(generatedDir);
|
|
45
|
+
const allFiles = new Set([...tempFiles, ...existingFiles]);
|
|
46
|
+
for (const file of allFiles) {
|
|
47
|
+
if (!existingFiles.includes(file)) {
|
|
48
|
+
differences.push(file);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!tempFiles.includes(file)) {
|
|
52
|
+
differences.push(file);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const tempContent = await fs.readFile(path.join(tempDir, file));
|
|
56
|
+
const existingContent = await fs.readFile(path.join(generatedDir, file));
|
|
57
|
+
if (!tempContent.equals(existingContent)) differences.push(file);
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
hasDrift: differences.length > 0,
|
|
61
|
+
files: differences
|
|
62
|
+
};
|
|
63
|
+
} finally {
|
|
64
|
+
await rm(tempDir, {
|
|
65
|
+
recursive: true,
|
|
66
|
+
force: true
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
//#endregion
|
|
72
|
+
export { detectDrift };
|
|
73
|
+
//# sourceMappingURL=drift.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift.mjs","names":[],"sources":["../../src/services/drift.ts"],"sourcesContent":["/**\n * Drift detection service.\n *\n * Detects when generated artifacts are out of sync with their source specs.\n */\n\nimport path from 'path';\nimport { mkdtemp, rm } from 'node:fs/promises';\nimport { tmpdir } from 'node:os';\nimport type { WorkspaceAdapters } from '../ports/logger';\nimport { generateArtifacts } from './generate-artifacts';\n\n/**\n * Result of drift detection.\n */\nexport interface DriftResult {\n /** Whether drift was detected. */\n hasDrift: boolean;\n /** Relative paths of files with drift. */\n files: string[];\n}\n\n/**\n * Detect drift between generated artifacts and source specs.\n *\n * Generates artifacts to a temporary directory and compares against\n * the existing generated directory to find differences.\n *\n * @param adapters - Workspace adapters for file operations\n * @param contractsDir - Directory containing source contracts\n * @param generatedDir - Directory containing generated artifacts\n * @returns Result indicating if drift exists and which files are affected\n */\nexport async function detectDrift(\n adapters: WorkspaceAdapters,\n contractsDir: string,\n generatedDir: string\n): Promise<DriftResult> {\n // 1. Create temp directory\n const tempDir = await mkdtemp(path.join(tmpdir(), 'contractspec-drift-'));\n\n try {\n // 2. Generate artifacts to temp dir\n // We assume generateArtifacts mimics the structure of generatedDir inside tempDir\n // But generateArtifacts usage in generate-artifacts.ts is:\n // const docsDir = path.join(generatedDir, 'docs');\n // It uses generatedDir as root.\n\n await generateArtifacts(adapters, contractsDir, tempDir);\n\n // 3. Compare tempDir with generatedDir\n // We only care about files that exist in tempDir (should match generatedDir)\n // AND files in generatedDir that shouldn't be there?\n // \"Generated: configurable generated root..., never hand-edited\"\n // So distinct(temp) == distinct(generated).\n\n const differences: string[] = [];\n\n // Use node:fs for walking directories\n const fs = await import('node:fs/promises');\n\n async function getFiles(dir: string): Promise<string[]> {\n const dirents = await fs.readdir(dir, { withFileTypes: true });\n const files: string[] = [];\n for (const dirent of dirents) {\n const res = path.resolve(dir, dirent.name);\n if (dirent.isDirectory()) {\n files.push(...(await getFiles(res)));\n } else {\n files.push(res);\n }\n }\n return files;\n }\n\n // Get all files from both, relative to root\n const getRelativeFiles = async (root: string) => {\n if (!(await fs.stat(root).catch(() => false))) return [];\n const files = await getFiles(root);\n return files.map((f) => path.relative(root, f)).sort();\n };\n\n const tempFiles = await getRelativeFiles(tempDir);\n const existingFiles = await getRelativeFiles(generatedDir);\n\n const allFiles = new Set([...tempFiles, ...existingFiles]);\n\n for (const file of allFiles) {\n // Files in temp (expected) but not in existing\n if (!existingFiles.includes(file)) {\n differences.push(file); // Missing in existing (drift: outdated/incomplete)\n continue;\n }\n\n // Files in existing but not in temp\n if (!tempFiles.includes(file)) {\n differences.push(file); // Extra file in generated (drift: polluted)\n continue;\n }\n\n // Content comparison\n const tempContent = await fs.readFile(path.join(tempDir, file));\n const existingContent = await fs.readFile(path.join(generatedDir, file));\n\n if (!tempContent.equals(existingContent)) {\n differences.push(file); // Content mismatch\n }\n }\n\n return {\n hasDrift: differences.length > 0,\n files: differences,\n };\n } finally {\n // 4. Cleanup\n await rm(tempDir, { recursive: true, force: true });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiCA,eAAsB,YACpB,UACA,cACA,cACsB;CAEtB,MAAM,UAAU,MAAM,QAAQ,KAAK,KAAK,QAAQ,EAAE,sBAAsB,CAAC;AAEzE,KAAI;AAOF,QAAM,kBAAkB,UAAU,cAAc,QAAQ;EAQxD,MAAM,cAAwB,EAAE;EAGhC,MAAM,KAAK,MAAM,OAAO;EAExB,eAAe,SAAS,KAAgC;GACtD,MAAM,UAAU,MAAM,GAAG,QAAQ,KAAK,EAAE,eAAe,MAAM,CAAC;GAC9D,MAAM,QAAkB,EAAE;AAC1B,QAAK,MAAM,UAAU,SAAS;IAC5B,MAAM,MAAM,KAAK,QAAQ,KAAK,OAAO,KAAK;AAC1C,QAAI,OAAO,aAAa,CACtB,OAAM,KAAK,GAAI,MAAM,SAAS,IAAI,CAAE;QAEpC,OAAM,KAAK,IAAI;;AAGnB,UAAO;;EAIT,MAAM,mBAAmB,OAAO,SAAiB;AAC/C,OAAI,CAAE,MAAM,GAAG,KAAK,KAAK,CAAC,YAAY,MAAM,CAAG,QAAO,EAAE;AAExD,WADc,MAAM,SAAS,KAAK,EACrB,KAAK,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,CAAC,MAAM;;EAGxD,MAAM,YAAY,MAAM,iBAAiB,QAAQ;EACjD,MAAM,gBAAgB,MAAM,iBAAiB,aAAa;EAE1D,MAAM,WAAW,IAAI,IAAI,CAAC,GAAG,WAAW,GAAG,cAAc,CAAC;AAE1D,OAAK,MAAM,QAAQ,UAAU;AAE3B,OAAI,CAAC,cAAc,SAAS,KAAK,EAAE;AACjC,gBAAY,KAAK,KAAK;AACtB;;AAIF,OAAI,CAAC,UAAU,SAAS,KAAK,EAAE;AAC7B,gBAAY,KAAK,KAAK;AACtB;;GAIF,MAAM,cAAc,MAAM,GAAG,SAAS,KAAK,KAAK,SAAS,KAAK,CAAC;GAC/D,MAAM,kBAAkB,MAAM,GAAG,SAAS,KAAK,KAAK,cAAc,KAAK,CAAC;AAExE,OAAI,CAAC,YAAY,OAAO,gBAAgB,CACtC,aAAY,KAAK,KAAK;;AAI1B,SAAO;GACL,UAAU,YAAY,SAAS;GAC/B,OAAO;GACR;WACO;AAER,QAAM,GAAG,SAAS;GAAE,WAAW;GAAM,OAAO;GAAM,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WorkspaceAdapters } from "../ports/logger.mjs";
|
|
2
|
+
import { OpenApiImportServiceResult } from "./openapi/types.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/services/extract.d.ts
|
|
5
|
+
interface ExtractOptions {
|
|
6
|
+
source: string;
|
|
7
|
+
outputDir: string;
|
|
8
|
+
}
|
|
9
|
+
declare function extractContracts(adapters: WorkspaceAdapters, options: ExtractOptions, cwd?: string): Promise<OpenApiImportServiceResult>;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { ExtractOptions, extractContracts };
|
|
12
|
+
//# sourceMappingURL=extract.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.mts","names":[],"sources":["../../src/services/extract.ts"],"sourcesContent":[],"mappings":";;;;UAKiB,cAAA;;EAAA,SAAA,EAAA,MAAc;AAK/B;AACY,iBADU,gBAAA,CACV,QAAA,EAAA,iBAAA,EAAA,OAAA,EACD,cADC,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,EAGT,OAHS,CAGD,0BAHC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { loadWorkspaceConfig } from "./config.mjs";
|
|
2
|
+
import { importFromOpenApiService } from "./openapi/import-service.mjs";
|
|
3
|
+
import "./openapi/index.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/services/extract.ts
|
|
6
|
+
async function extractContracts(adapters, options, cwd) {
|
|
7
|
+
const { fs, logger } = adapters;
|
|
8
|
+
const { source, outputDir } = options;
|
|
9
|
+
const sourcePath = fs.resolve(cwd ?? process.cwd(), source);
|
|
10
|
+
if (!await fs.exists(sourcePath)) throw new Error(`Source file not found: ${sourcePath}`);
|
|
11
|
+
const config = await loadWorkspaceConfig(fs, cwd);
|
|
12
|
+
const conventions = {
|
|
13
|
+
models: "models",
|
|
14
|
+
groupByFeature: false,
|
|
15
|
+
...config.conventions
|
|
16
|
+
};
|
|
17
|
+
const runConfig = {
|
|
18
|
+
...config,
|
|
19
|
+
outputDir,
|
|
20
|
+
schemaFormat: config.schemaFormat ?? "zod",
|
|
21
|
+
conventions
|
|
22
|
+
};
|
|
23
|
+
logger.info(`Extracting contracts from ${sourcePath} to ${outputDir}`);
|
|
24
|
+
return importFromOpenApiService(runConfig, {
|
|
25
|
+
source: sourcePath,
|
|
26
|
+
outputDir,
|
|
27
|
+
dryRun: false
|
|
28
|
+
}, adapters);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { extractContracts };
|
|
33
|
+
//# sourceMappingURL=extract.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.mjs","names":[],"sources":["../../src/services/extract.ts"],"sourcesContent":["import type { WorkspaceAdapters } from '../ports/logger';\nimport { loadWorkspaceConfig } from './config';\nimport { importFromOpenApiService } from './openapi/index';\nimport type { OpenApiImportServiceResult } from './openapi/types';\n\nexport interface ExtractOptions {\n source: string;\n outputDir: string;\n}\n\nexport async function extractContracts(\n adapters: WorkspaceAdapters,\n options: ExtractOptions,\n cwd?: string\n): Promise<OpenApiImportServiceResult> {\n const { fs, logger } = adapters;\n const { source, outputDir } = options;\n\n // Verify source existence\n // We resolve source relative to CWD if checking locally, or absolute\n const sourcePath = fs.resolve(cwd ?? process.cwd(), source);\n if (!(await fs.exists(sourcePath))) {\n throw new Error(`Source file not found: ${sourcePath}`);\n }\n\n // Load Base Config\n const config = await loadWorkspaceConfig(fs, cwd);\n\n // Override config if needed or pass as options to import service\n // importFromOpenApiService takes (contractsrcConfig, importOptions, adapters)\n // We need to merge outputDir override if present.\n const conventions = {\n models: 'models',\n groupByFeature: false,\n ...config.conventions,\n };\n\n const runConfig = {\n ...config,\n outputDir: outputDir, // CLI/Option override\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n schemaFormat: (config as any).schemaFormat ?? 'zod',\n conventions,\n };\n\n logger.info(`Extracting contracts from ${sourcePath} to ${outputDir}`);\n\n return importFromOpenApiService(\n runConfig,\n {\n source: sourcePath,\n outputDir: outputDir,\n dryRun: false,\n },\n adapters\n );\n}\n"],"mappings":";;;;;AAUA,eAAsB,iBACpB,UACA,SACA,KACqC;CACrC,MAAM,EAAE,IAAI,WAAW;CACvB,MAAM,EAAE,QAAQ,cAAc;CAI9B,MAAM,aAAa,GAAG,QAAQ,OAAO,QAAQ,KAAK,EAAE,OAAO;AAC3D,KAAI,CAAE,MAAM,GAAG,OAAO,WAAW,CAC/B,OAAM,IAAI,MAAM,0BAA0B,aAAa;CAIzD,MAAM,SAAS,MAAM,oBAAoB,IAAI,IAAI;CAKjD,MAAM,cAAc;EAClB,QAAQ;EACR,gBAAgB;EAChB,GAAG,OAAO;EACX;CAED,MAAM,YAAY;EAChB,GAAG;EACQ;EAEX,cAAe,OAAe,gBAAgB;EAC9C;EACD;AAED,QAAO,KAAK,6BAA6B,WAAW,MAAM,YAAY;AAEtE,QAAO,yBACL,WACA;EACE,QAAQ;EACG;EACX,QAAQ;EACT,EACD,SACD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AnalyzedSpecType } from "@contractspec/module.workspace";
|
|
2
|
+
|
|
3
|
+
//#region src/services/features/completion.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Result of context detection.
|
|
7
|
+
*/
|
|
8
|
+
interface FeatureContext {
|
|
9
|
+
type: 'operations' | 'events' | 'presentations';
|
|
10
|
+
specType: AnalyzedSpecType;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Detect which array context the cursor is in within a feature file.
|
|
14
|
+
*
|
|
15
|
+
* @param textBeforeCursor Text from start of file to cursor position.
|
|
16
|
+
* @param textAfterCursor Text from cursor position to end of file (or reasonable lookahead).
|
|
17
|
+
*/
|
|
18
|
+
declare function detectFeatureContext(textBeforeCursor: string, textAfterCursor: string): FeatureContext | null;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { FeatureContext, detectFeatureContext };
|
|
21
|
+
//# sourceMappingURL=completion.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.mts","names":[],"sources":["../../../src/services/features/completion.ts"],"sourcesContent":[],"mappings":";;;;;;AAKA;AAWgB,UAXC,cAAA,CAWmB;;YATxB;;;;;;;;iBASI,oBAAA,qDAGb"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
//#region src/services/features/completion.ts
|
|
2
|
+
/**
|
|
3
|
+
* Detect which array context the cursor is in within a feature file.
|
|
4
|
+
*
|
|
5
|
+
* @param textBeforeCursor Text from start of file to cursor position.
|
|
6
|
+
* @param textAfterCursor Text from cursor position to end of file (or reasonable lookahead).
|
|
7
|
+
*/
|
|
8
|
+
function detectFeatureContext(textBeforeCursor, textAfterCursor) {
|
|
9
|
+
const patterns = [
|
|
10
|
+
{
|
|
11
|
+
type: "operations",
|
|
12
|
+
regex: /operations\s*:\s*\[/g,
|
|
13
|
+
specType: "operation"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
type: "events",
|
|
17
|
+
regex: /events\s*:\s*\[/g,
|
|
18
|
+
specType: "event"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
type: "presentations",
|
|
22
|
+
regex: /presentations\s*:\s*\[/g,
|
|
23
|
+
specType: "presentation"
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
let lastMatch = null;
|
|
27
|
+
for (const { type, regex, specType } of patterns) {
|
|
28
|
+
let match;
|
|
29
|
+
regex.lastIndex = 0;
|
|
30
|
+
while ((match = regex.exec(textBeforeCursor)) !== null) if (!lastMatch || match.index > lastMatch.index) lastMatch = {
|
|
31
|
+
type,
|
|
32
|
+
specType,
|
|
33
|
+
index: match.index
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (!lastMatch) return null;
|
|
37
|
+
const relevantText = textBeforeCursor.slice(lastMatch.index) + textAfterCursor;
|
|
38
|
+
const typeStr = lastMatch.type;
|
|
39
|
+
(/* @__PURE__ */ new RegExp(`${typeStr}\\s*:\\s*\\[`)).exec(relevantText);
|
|
40
|
+
const textFromMatch = textBeforeCursor.slice(lastMatch.index);
|
|
41
|
+
let depth = 0;
|
|
42
|
+
let inString = false;
|
|
43
|
+
let stringChar = "";
|
|
44
|
+
for (let i = 0; i < textFromMatch.length; i++) {
|
|
45
|
+
const char = textFromMatch[i];
|
|
46
|
+
const prevChar = i > 0 ? textFromMatch[i - 1] : "";
|
|
47
|
+
if ((char === "\"" || char === "'" || char === "`") && prevChar !== "\\") {
|
|
48
|
+
if (!inString) {
|
|
49
|
+
inString = true;
|
|
50
|
+
stringChar = char;
|
|
51
|
+
} else if (char === stringChar) inString = false;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (inString) continue;
|
|
55
|
+
if (char === "[") depth++;
|
|
56
|
+
else if (char === "]") {
|
|
57
|
+
depth--;
|
|
58
|
+
if (depth === 0) return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (depth > 0) return {
|
|
62
|
+
type: lastMatch.type,
|
|
63
|
+
specType: lastMatch.specType
|
|
64
|
+
};
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
export { detectFeatureContext };
|
|
70
|
+
//# sourceMappingURL=completion.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.mjs","names":[],"sources":["../../../src/services/features/completion.ts"],"sourcesContent":["import type { AnalyzedSpecType } from '@contractspec/module.workspace';\n\n/**\n * Result of context detection.\n */\nexport interface FeatureContext {\n type: 'operations' | 'events' | 'presentations';\n specType: AnalyzedSpecType;\n}\n\n/**\n * Detect which array context the cursor is in within a feature file.\n *\n * @param textBeforeCursor Text from start of file to cursor position.\n * @param textAfterCursor Text from cursor position to end of file (or reasonable lookahead).\n */\nexport function detectFeatureContext(\n textBeforeCursor: string,\n textAfterCursor: string\n): FeatureContext | null {\n // Find the last occurrence of each array type\n const patterns = [\n {\n type: 'operations' as const,\n regex: /operations\\s*:\\s*\\[/g,\n specType: 'operation' as AnalyzedSpecType,\n },\n {\n type: 'events' as const,\n regex: /events\\s*:\\s*\\[/g,\n specType: 'event' as AnalyzedSpecType,\n },\n {\n type: 'presentations' as const,\n regex: /presentations\\s*:\\s*\\[/g,\n specType: 'presentation' as AnalyzedSpecType,\n },\n ];\n\n let lastMatch: {\n type: 'operations' | 'events' | 'presentations';\n specType: AnalyzedSpecType;\n index: number;\n } | null = null;\n\n for (const { type, regex, specType } of patterns) {\n let match;\n // Reset regex lastIndex\n regex.lastIndex = 0;\n while ((match = regex.exec(textBeforeCursor)) !== null) {\n if (!lastMatch || match.index > lastMatch.index) {\n lastMatch = { type, specType, index: match.index };\n }\n }\n }\n\n if (!lastMatch) {\n return null;\n }\n\n // Check if we're still inside the array (no closing bracket yet)\n const relevantText =\n textBeforeCursor.slice(lastMatch.index) + textAfterCursor;\n // We only care about checking if the bracket matches.\n // Actually, simpler logic: verify we haven't closed the array *before* the cursor.\n // But wait, the cursor is at `textBeforeCursor.length`.\n // The array starts at `lastMatch.index` (plus length of match).\n // We need to count brackets from start of array content.\n\n // Re-extract match to know length\n const typeStr = lastMatch.type;\n const arrayStartRegex = new RegExp(`${typeStr}\\\\s*:\\\\s*\\\\[`);\n arrayStartRegex.exec(relevantText); // this matches at 0 effectively since we sliced?\n // No, relevantText starts at lastMatch.index.\n // So validation:\n\n const textFromMatch = textBeforeCursor.slice(lastMatch.index);\n\n let depth = 0;\n let inString = false;\n let stringChar = '';\n\n for (let i = 0; i < textFromMatch.length; i++) {\n const char = textFromMatch[i];\n const prevChar = i > 0 ? textFromMatch[i - 1] : '';\n\n // Handle string literals\n if ((char === '\"' || char === \"'\" || char === '`') && prevChar !== '\\\\') {\n if (!inString) {\n inString = true;\n stringChar = char;\n } else if (char === stringChar) {\n inString = false;\n }\n continue;\n }\n\n if (inString) continue;\n\n if (char === '[') {\n depth++;\n } else if (char === ']') {\n depth--;\n if (depth === 0) {\n // Array is closed before cursor\n return null;\n }\n }\n }\n\n // If we are here, depth should be > 0 (usually 1 if flat array, or nested)\n // If depth is > 0, we are inside.\n if (depth > 0) {\n return {\n type: lastMatch.type,\n specType: lastMatch.specType,\n };\n }\n\n return null;\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,qBACd,kBACA,iBACuB;CAEvB,MAAM,WAAW;EACf;GACE,MAAM;GACN,OAAO;GACP,UAAU;GACX;EACD;GACE,MAAM;GACN,OAAO;GACP,UAAU;GACX;EACD;GACE,MAAM;GACN,OAAO;GACP,UAAU;GACX;EACF;CAED,IAAI,YAIO;AAEX,MAAK,MAAM,EAAE,MAAM,OAAO,cAAc,UAAU;EAChD,IAAI;AAEJ,QAAM,YAAY;AAClB,UAAQ,QAAQ,MAAM,KAAK,iBAAiB,MAAM,KAChD,KAAI,CAAC,aAAa,MAAM,QAAQ,UAAU,MACxC,aAAY;GAAE;GAAM;GAAU,OAAO,MAAM;GAAO;;AAKxD,KAAI,CAAC,UACH,QAAO;CAIT,MAAM,eACJ,iBAAiB,MAAM,UAAU,MAAM,GAAG;CAQ5C,MAAM,UAAU,UAAU;AAE1B,kBADwB,IAAI,OAAO,GAAG,QAAQ,cAAc,EAC5C,KAAK,aAAa;CAIlC,MAAM,gBAAgB,iBAAiB,MAAM,UAAU,MAAM;CAE7D,IAAI,QAAQ;CACZ,IAAI,WAAW;CACf,IAAI,aAAa;AAEjB,MAAK,IAAI,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;EAC7C,MAAM,OAAO,cAAc;EAC3B,MAAM,WAAW,IAAI,IAAI,cAAc,IAAI,KAAK;AAGhD,OAAK,SAAS,QAAO,SAAS,OAAO,SAAS,QAAQ,aAAa,MAAM;AACvE,OAAI,CAAC,UAAU;AACb,eAAW;AACX,iBAAa;cACJ,SAAS,WAClB,YAAW;AAEb;;AAGF,MAAI,SAAU;AAEd,MAAI,SAAS,IACX;WACS,SAAS,KAAK;AACvB;AACA,OAAI,UAAU,EAEZ,QAAO;;;AAOb,KAAI,QAAQ,EACV,QAAO;EACL,MAAM,UAAU;EAChB,UAAU,UAAU;EACrB;AAGH,QAAO"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/services/features/feature-editor.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Feature file editing services.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Result of a computation to edit a feature file.
|
|
7
|
+
*/
|
|
8
|
+
interface FeatureEdit {
|
|
9
|
+
index: number;
|
|
10
|
+
text: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Compute the edit required to add a spec reference to a feature file.
|
|
14
|
+
* Returns the index to insert at and the text to insert.
|
|
15
|
+
*/
|
|
16
|
+
declare function computeAddSpecEdit(content: string, spec: {
|
|
17
|
+
key: string;
|
|
18
|
+
version: string | number;
|
|
19
|
+
type: string;
|
|
20
|
+
}): FeatureEdit | null;
|
|
21
|
+
/**
|
|
22
|
+
* Get array name in feature spec for a given spec type.
|
|
23
|
+
*/
|
|
24
|
+
declare function getArrayNameForSpecType(specType: string): string;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { FeatureEdit, computeAddSpecEdit, getArrayNameForSpecType };
|
|
27
|
+
//# sourceMappingURL=feature-editor.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-editor.d.mts","names":[],"sources":["../../../src/services/features/feature-editor.ts"],"sourcesContent":[],"mappings":";;AAOA;AASA;AA+BA;;;UAxCiB,WAAA;;;;;;;;iBASD,kBAAA;;;;IAGb;;;;iBA4Ba,uBAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/services/features/feature-editor.ts
|
|
2
|
+
/**
|
|
3
|
+
* Compute the edit required to add a spec reference to a feature file.
|
|
4
|
+
* Returns the index to insert at and the text to insert.
|
|
5
|
+
*/
|
|
6
|
+
function computeAddSpecEdit(content, spec) {
|
|
7
|
+
const arrayName = getArrayNameForSpecType(spec.type);
|
|
8
|
+
const match = new RegExp(`${arrayName}\\s*:\\s*\\[`, "g").exec(content);
|
|
9
|
+
if (match) {
|
|
10
|
+
const insertIndex = match.index + match[0].length;
|
|
11
|
+
const versionStr = typeof spec.version === "string" ? `'${spec.version}'` : spec.version;
|
|
12
|
+
return {
|
|
13
|
+
index: insertIndex,
|
|
14
|
+
text: `\n { key: '${spec.key}', version: ${versionStr} },`
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get array name in feature spec for a given spec type.
|
|
21
|
+
*/
|
|
22
|
+
function getArrayNameForSpecType(specType) {
|
|
23
|
+
switch (specType) {
|
|
24
|
+
case "operation":
|
|
25
|
+
case "command":
|
|
26
|
+
case "query": return "operations";
|
|
27
|
+
case "event": return "events";
|
|
28
|
+
case "presentation": return "presentations";
|
|
29
|
+
case "experiment": return "experiments";
|
|
30
|
+
case "workflow": return "workflows";
|
|
31
|
+
default: return "operations";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { computeAddSpecEdit, getArrayNameForSpecType };
|
|
37
|
+
//# sourceMappingURL=feature-editor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-editor.mjs","names":[],"sources":["../../../src/services/features/feature-editor.ts"],"sourcesContent":["/**\n * Feature file editing services.\n */\n\n/**\n * Result of a computation to edit a feature file.\n */\nexport interface FeatureEdit {\n index: number;\n text: string;\n}\n\n/**\n * Compute the edit required to add a spec reference to a feature file.\n * Returns the index to insert at and the text to insert.\n */\nexport function computeAddSpecEdit(\n content: string,\n spec: { key: string; version: string | number; type: string }\n): FeatureEdit | null {\n const arrayName = getArrayNameForSpecType(spec.type);\n\n // Find the array in the document\n const arrayPattern = new RegExp(`${arrayName}\\\\s*:\\\\s*\\\\[`, 'g');\n const match = arrayPattern.exec(content);\n\n if (match) {\n // Insert after the opening bracket\n const insertIndex = match.index + match[0].length;\n\n // Format the reference\n const versionStr =\n typeof spec.version === 'string' ? `'${spec.version}'` : spec.version;\n const refText = `\\n { key: '${spec.key}', version: ${versionStr} },`;\n\n return {\n index: insertIndex,\n text: refText,\n };\n }\n\n return null;\n}\n\n/**\n * Get array name in feature spec for a given spec type.\n */\nexport function getArrayNameForSpecType(specType: string): string {\n switch (specType) {\n case 'operation':\n case 'command':\n case 'query':\n return 'operations';\n case 'event':\n return 'events';\n case 'presentation':\n return 'presentations';\n case 'experiment':\n return 'experiments';\n case 'workflow':\n return 'workflows'; // Assuming workflows are supported similarly\n default:\n return 'operations';\n }\n}\n"],"mappings":";;;;;AAgBA,SAAgB,mBACd,SACA,MACoB;CACpB,MAAM,YAAY,wBAAwB,KAAK,KAAK;CAIpD,MAAM,QADe,IAAI,OAAO,GAAG,UAAU,eAAe,IAAI,CACrC,KAAK,QAAQ;AAExC,KAAI,OAAO;EAET,MAAM,cAAc,MAAM,QAAQ,MAAM,GAAG;EAG3C,MAAM,aACJ,OAAO,KAAK,YAAY,WAAW,IAAI,KAAK,QAAQ,KAAK,KAAK;AAGhE,SAAO;GACL,OAAO;GACP,MAJc,iBAAiB,KAAK,IAAI,cAAc,WAAW;GAKlE;;AAGH,QAAO;;;;;AAMT,SAAgB,wBAAwB,UAA0B;AAChE,SAAQ,UAAR;EACE,KAAK;EACL,KAAK;EACL,KAAK,QACH,QAAO;EACT,KAAK,QACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,QACE,QAAO"}
|