@lssm/bundle.contractspec-workspace 1.41.1 → 1.42.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +5 -2
- package/dist/_virtual/rolldown_runtime.js +36 -1
- package/dist/adapters/ai.d.ts +12 -0
- package/dist/adapters/ai.d.ts.map +1 -0
- package/dist/adapters/ai.js +83 -1
- package/dist/adapters/ai.js.map +1 -0
- package/dist/adapters/factory.d.ts +29 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +37 -1
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/fs.d.ts +11 -0
- package/dist/adapters/fs.d.ts.map +1 -0
- package/dist/adapters/fs.js +131 -1
- package/dist/adapters/fs.js.map +1 -0
- package/dist/adapters/git.d.ts +11 -0
- package/dist/adapters/git.d.ts.map +1 -0
- package/dist/adapters/git.js +55 -1
- package/dist/adapters/git.js.map +1 -0
- package/dist/adapters/index.d.ts +7 -0
- package/dist/adapters/index.js +7 -1
- package/dist/adapters/logger.d.ts +18 -0
- package/dist/adapters/logger.d.ts.map +1 -0
- package/dist/adapters/logger.js +81 -1
- package/dist/adapters/logger.js.map +1 -0
- package/dist/adapters/watcher.d.ts +11 -0
- package/dist/adapters/watcher.d.ts.map +1 -0
- package/dist/adapters/watcher.js +74 -1
- package/dist/adapters/watcher.js.map +1 -0
- package/dist/adapters/workspace.d.ts +148 -0
- package/dist/adapters/workspace.d.ts.map +1 -0
- package/dist/adapters/workspace.js +275 -2
- package/dist/adapters/workspace.js.map +1 -0
- package/dist/ai/agents/claude-code-agent.d.ts +22 -0
- package/dist/ai/agents/claude-code-agent.d.ts.map +1 -0
- package/dist/ai/agents/claude-code-agent.js +147 -9
- package/dist/ai/agents/claude-code-agent.js.map +1 -0
- package/dist/ai/agents/cursor-agent.d.ts +68 -0
- package/dist/ai/agents/cursor-agent.d.ts.map +1 -0
- package/dist/ai/agents/cursor-agent.js +285 -17
- package/dist/ai/agents/cursor-agent.js.map +1 -0
- package/dist/ai/agents/index.js +5 -1
- package/dist/ai/agents/openai-codex-agent.d.ts +22 -0
- package/dist/ai/agents/openai-codex-agent.d.ts.map +1 -0
- package/dist/ai/agents/openai-codex-agent.js +141 -8
- package/dist/ai/agents/openai-codex-agent.js.map +1 -0
- package/dist/ai/agents/orchestrator.d.ts +50 -0
- package/dist/ai/agents/orchestrator.d.ts.map +1 -0
- package/dist/ai/agents/orchestrator.js +143 -1
- package/dist/ai/agents/orchestrator.js.map +1 -0
- package/dist/ai/agents/simple-agent.d.ts +17 -0
- package/dist/ai/agents/simple-agent.d.ts.map +1 -0
- package/dist/ai/agents/simple-agent.js +81 -4
- package/dist/ai/agents/simple-agent.js.map +1 -0
- package/dist/ai/agents/types.d.ts +36 -0
- package/dist/ai/agents/types.d.ts.map +1 -0
- package/dist/ai/client.d.ts +83 -0
- package/dist/ai/client.d.ts.map +1 -0
- package/dist/ai/client.js +163 -1
- package/dist/ai/client.js.map +1 -0
- package/dist/ai/index.d.ts +17 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +28 -1
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/prompts/code-generation.d.ts +26 -0
- package/dist/ai/prompts/code-generation.d.ts.map +1 -0
- package/dist/ai/prompts/code-generation.js +56 -13
- package/dist/ai/prompts/code-generation.js.map +1 -0
- package/dist/ai/prompts/index.d.ts +10 -0
- package/dist/ai/prompts/index.d.ts.map +1 -0
- package/dist/ai/prompts/index.js +13 -1
- package/dist/ai/prompts/index.js.map +1 -0
- package/dist/ai/prompts/spec-creation.d.ts +29 -0
- package/dist/ai/prompts/spec-creation.d.ts.map +1 -0
- package/dist/ai/prompts/spec-creation.js +62 -20
- package/dist/ai/prompts/spec-creation.js.map +1 -0
- package/dist/ai/providers.d.ts +29 -0
- package/dist/ai/providers.d.ts.map +1 -0
- package/dist/ai/providers.js +39 -1
- package/dist/ai/providers.js.map +1 -0
- package/dist/formatters/index.d.ts +11 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +19 -1
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/json.d.ts +89 -0
- package/dist/formatters/json.d.ts.map +1 -0
- package/dist/formatters/json.js +72 -1
- package/dist/formatters/json.js.map +1 -0
- package/dist/formatters/sarif.d.ts +101 -0
- package/dist/formatters/sarif.d.ts.map +1 -0
- package/dist/formatters/sarif.js +163 -1
- package/dist/formatters/sarif.js.map +1 -0
- package/dist/formatters/text.d.ts +35 -0
- package/dist/formatters/text.d.ts.map +1 -0
- package/dist/formatters/text.js +209 -2
- package/dist/formatters/text.js.map +1 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +204 -1
- package/dist/index.js.map +1 -0
- package/dist/ports/ai.d.ts +59 -0
- package/dist/ports/ai.d.ts.map +1 -0
- package/dist/ports/fs.d.ts +81 -0
- package/dist/ports/fs.d.ts.map +1 -0
- package/dist/ports/git.d.ts +33 -0
- package/dist/ports/git.d.ts.map +1 -0
- package/dist/ports/index.d.ts +5 -0
- package/dist/ports/logger.d.ts +88 -0
- package/dist/ports/logger.d.ts.map +1 -0
- package/dist/ports/watcher.d.ts +52 -0
- package/dist/ports/watcher.d.ts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.d.ts +35 -0
- package/dist/services/agent-guide/adapters/claude-code.d.ts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.js +144 -3
- package/dist/services/agent-guide/adapters/claude-code.js.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.ts +39 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.ts.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.js +135 -3
- package/dist/services/agent-guide/adapters/cursor-cli.js.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.ts +53 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.ts.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.js +159 -3
- package/dist/services/agent-guide/adapters/generic-mcp.js.map +1 -0
- package/dist/services/agent-guide/adapters/index.d.ts +23 -0
- package/dist/services/agent-guide/adapters/index.d.ts.map +1 -0
- package/dist/services/agent-guide/adapters/index.js +31 -1
- package/dist/services/agent-guide/adapters/index.js.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.d.ts +56 -0
- package/dist/services/agent-guide/agent-guide-service.d.ts.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.js +147 -1
- package/dist/services/agent-guide/agent-guide-service.js.map +1 -0
- package/dist/services/agent-guide/index.d.ts +6 -0
- package/dist/services/agent-guide/index.js +5 -1
- package/dist/services/agent-guide/types.d.ts +58 -0
- package/dist/services/agent-guide/types.d.ts.map +1 -0
- package/dist/services/build.d.ts +59 -0
- package/dist/services/build.d.ts.map +1 -0
- package/dist/services/build.js +140 -1
- package/dist/services/build.js.map +1 -0
- package/dist/services/ci-check/ci-check-service.d.ts +16 -0
- package/dist/services/ci-check/ci-check-service.d.ts.map +1 -0
- package/dist/services/ci-check/ci-check-service.js +392 -1
- package/dist/services/ci-check/ci-check-service.js.map +1 -0
- package/dist/services/ci-check/index.d.ts +2 -0
- package/dist/services/ci-check/index.js +2 -1
- package/dist/services/ci-check/types.d.ts +143 -0
- package/dist/services/ci-check/types.d.ts.map +1 -0
- package/dist/services/ci-check/types.js +29 -1
- package/dist/services/ci-check/types.js.map +1 -0
- package/dist/services/clean.d.ts +41 -0
- package/dist/services/clean.d.ts.map +1 -0
- package/dist/services/clean.js +72 -1
- package/dist/services/clean.js.map +1 -0
- package/dist/services/config.d.ts +26 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +77 -1
- package/dist/services/config.js.map +1 -0
- package/dist/services/deps.d.ts +53 -0
- package/dist/services/deps.d.ts.map +1 -0
- package/dist/services/deps.js +62 -1
- package/dist/services/deps.js.map +1 -0
- package/dist/services/diff.d.ts +34 -0
- package/dist/services/diff.d.ts.map +1 -0
- package/dist/services/diff.js +34 -1
- package/dist/services/diff.js.map +1 -0
- package/dist/services/doctor/checks/ai.js +119 -2
- package/dist/services/doctor/checks/ai.js.map +1 -0
- package/dist/services/doctor/checks/cli.js +147 -1
- package/dist/services/doctor/checks/cli.js.map +1 -0
- package/dist/services/doctor/checks/config.js +171 -1
- package/dist/services/doctor/checks/config.js.map +1 -0
- package/dist/services/doctor/checks/deps.js +247 -1
- package/dist/services/doctor/checks/deps.js.map +1 -0
- package/dist/services/doctor/checks/index.js +6 -1
- package/dist/services/doctor/checks/mcp.js +145 -1
- package/dist/services/doctor/checks/mcp.js.map +1 -0
- package/dist/services/doctor/checks/workspace.js +244 -1
- package/dist/services/doctor/checks/workspace.js.map +1 -0
- package/dist/services/doctor/doctor-service.d.ts +24 -0
- package/dist/services/doctor/doctor-service.d.ts.map +1 -0
- package/dist/services/doctor/doctor-service.js +116 -2
- package/dist/services/doctor/doctor-service.js.map +1 -0
- package/dist/services/doctor/index.d.ts +2 -0
- package/dist/services/doctor/index.js +2 -1
- package/dist/services/doctor/types.d.ts +118 -0
- package/dist/services/doctor/types.d.ts.map +1 -0
- package/dist/services/doctor/types.js +27 -1
- package/dist/services/doctor/types.js.map +1 -0
- package/dist/services/impact/formatters.d.ts +27 -0
- package/dist/services/impact/formatters.d.ts.map +1 -0
- package/dist/services/impact/formatters.js +111 -0
- package/dist/services/impact/formatters.js.map +1 -0
- package/dist/services/impact/impact-detection-service.d.ts +22 -0
- package/dist/services/impact/impact-detection-service.d.ts.map +1 -0
- package/dist/services/impact/impact-detection-service.js +96 -0
- package/dist/services/impact/impact-detection-service.js.map +1 -0
- package/dist/services/impact/index.d.ts +11 -0
- package/dist/services/impact/index.d.ts.map +1 -0
- package/dist/services/impact/index.js +16 -0
- package/dist/services/impact/index.js.map +1 -0
- package/dist/services/impact/types.d.ts +58 -0
- package/dist/services/impact/types.d.ts.map +1 -0
- package/dist/services/implementation/discovery.d.ts +30 -0
- package/dist/services/implementation/discovery.d.ts.map +1 -0
- package/dist/services/implementation/discovery.js +144 -2
- package/dist/services/implementation/discovery.js.map +1 -0
- package/dist/services/implementation/index.d.ts +3 -0
- package/dist/services/implementation/index.js +2 -1
- package/dist/services/implementation/resolver.d.ts +44 -0
- package/dist/services/implementation/resolver.d.ts.map +1 -0
- package/dist/services/implementation/resolver.js +224 -1
- package/dist/services/implementation/resolver.js.map +1 -0
- package/dist/services/implementation/types.d.ts +79 -0
- package/dist/services/implementation/types.d.ts.map +1 -0
- package/dist/services/index.d.ts +60 -0
- package/dist/services/index.js +57 -1
- package/dist/services/integrity-diagram.d.ts +36 -0
- package/dist/services/integrity-diagram.d.ts.map +1 -0
- package/dist/services/integrity-diagram.js +275 -6
- package/dist/services/integrity-diagram.js.map +1 -0
- package/dist/services/integrity.d.ts +134 -0
- package/dist/services/integrity.d.ts.map +1 -0
- package/dist/services/integrity.js +272 -1
- package/dist/services/integrity.js.map +1 -0
- package/dist/services/list.d.ts +31 -0
- package/dist/services/list.d.ts.map +1 -0
- package/dist/services/list.js +36 -1
- package/dist/services/list.js.map +1 -0
- package/dist/services/openapi/export-service.d.ts +53 -0
- package/dist/services/openapi/export-service.d.ts.map +1 -0
- package/dist/services/openapi/export-service.js +50 -2
- package/dist/services/openapi/export-service.js.map +1 -0
- package/dist/services/openapi/import-service.d.ts +17 -0
- package/dist/services/openapi/import-service.d.ts.map +1 -0
- package/dist/services/openapi/import-service.js +74 -1
- package/dist/services/openapi/import-service.js.map +1 -0
- package/dist/services/openapi/index.d.ts +5 -0
- package/dist/services/openapi/index.js +4 -1
- package/dist/services/openapi/sync-service.d.ts +17 -0
- package/dist/services/openapi/sync-service.d.ts.map +1 -0
- package/dist/services/openapi/sync-service.js +120 -1
- package/dist/services/openapi/sync-service.js.map +1 -0
- package/dist/services/openapi/types.d.ts +162 -0
- package/dist/services/openapi/types.d.ts.map +1 -0
- package/dist/services/openapi/validate-service.d.ts +16 -0
- package/dist/services/openapi/validate-service.d.ts.map +1 -0
- package/dist/services/openapi/validate-service.js +130 -1
- package/dist/services/openapi/validate-service.js.map +1 -0
- package/dist/services/quickstart/dependencies.d.ts +31 -0
- package/dist/services/quickstart/dependencies.d.ts.map +1 -0
- package/dist/services/quickstart/dependencies.js +57 -0
- package/dist/services/quickstart/dependencies.js.map +1 -0
- package/dist/services/quickstart/index.js +2 -0
- package/dist/services/quickstart/quickstart-service.d.ts +20 -0
- package/dist/services/quickstart/quickstart-service.d.ts.map +1 -0
- package/dist/services/quickstart/quickstart-service.js +196 -0
- package/dist/services/quickstart/quickstart-service.js.map +1 -0
- package/dist/services/quickstart/types.d.ts +81 -0
- package/dist/services/quickstart/types.d.ts.map +1 -0
- package/dist/services/regenerator.d.ts +18 -0
- package/dist/services/regenerator.d.ts.map +1 -0
- package/dist/services/regenerator.js +23 -1
- package/dist/services/regenerator.js.map +1 -0
- package/dist/services/registry.d.ts +53 -0
- package/dist/services/registry.d.ts.map +1 -0
- package/dist/services/registry.js +74 -1
- package/dist/services/registry.js.map +1 -0
- package/dist/services/setup/config-generators.d.ts +42 -0
- package/dist/services/setup/config-generators.d.ts.map +1 -0
- package/dist/services/setup/config-generators.js +114 -26
- package/dist/services/setup/config-generators.js.map +1 -0
- package/dist/services/setup/file-merger.d.ts +27 -0
- package/dist/services/setup/file-merger.d.ts.map +1 -0
- package/dist/services/setup/file-merger.js +61 -2
- package/dist/services/setup/file-merger.js.map +1 -0
- package/dist/services/setup/index.js +4 -1
- package/dist/services/setup/setup-service.d.ts +12 -0
- package/dist/services/setup/setup-service.d.ts.map +1 -0
- package/dist/services/setup/setup-service.js +96 -1
- package/dist/services/setup/setup-service.js.map +1 -0
- package/dist/services/setup/targets/agents-md.js +47 -1
- package/dist/services/setup/targets/agents-md.js.map +1 -0
- package/dist/services/setup/targets/cli-config.js +60 -1
- package/dist/services/setup/targets/cli-config.js.map +1 -0
- package/dist/services/setup/targets/cursor-rules.js +48 -1
- package/dist/services/setup/targets/cursor-rules.js.map +1 -0
- package/dist/services/setup/targets/mcp-claude.js +60 -1
- package/dist/services/setup/targets/mcp-claude.js.map +1 -0
- package/dist/services/setup/targets/mcp-cursor.js +59 -1
- package/dist/services/setup/targets/mcp-cursor.js.map +1 -0
- package/dist/services/setup/targets/vscode-settings.js +63 -1
- package/dist/services/setup/targets/vscode-settings.js.map +1 -0
- package/dist/services/setup/types.d.ts +85 -0
- package/dist/services/setup/types.d.ts.map +1 -0
- package/dist/services/setup/types.js +27 -1
- package/dist/services/setup/types.js.map +1 -0
- package/dist/services/sync.d.ts +41 -0
- package/dist/services/sync.d.ts.map +1 -0
- package/dist/services/sync.js +63 -1
- package/dist/services/sync.js.map +1 -0
- package/dist/services/test.d.ts +15 -0
- package/dist/services/test.d.ts.map +1 -0
- package/dist/services/test.js +30 -1
- package/dist/services/test.js.map +1 -0
- package/dist/services/validate-implementation.d.ts +32 -0
- package/dist/services/validate-implementation.d.ts.map +1 -0
- package/dist/services/validate-implementation.js +70 -1
- package/dist/services/validate-implementation.js.map +1 -0
- package/dist/services/validate.d.ts +41 -0
- package/dist/services/validate.d.ts.map +1 -0
- package/dist/services/validate.js +48 -1
- package/dist/services/validate.js.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.d.ts +46 -0
- package/dist/services/verification-cache/adapters/filesystem.d.ts.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.js +120 -1
- package/dist/services/verification-cache/adapters/filesystem.js.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.d.ts +27 -0
- package/dist/services/verification-cache/adapters/in-memory.d.ts.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.js +46 -1
- package/dist/services/verification-cache/adapters/in-memory.js.map +1 -0
- package/dist/services/verification-cache/adapters/index.d.ts +3 -0
- package/dist/services/verification-cache/adapters/index.js +3 -1
- package/dist/services/verification-cache/adapters/workspace-state.d.ts +49 -0
- package/dist/services/verification-cache/adapters/workspace-state.d.ts.map +1 -0
- package/dist/services/verification-cache/adapters/workspace-state.js +91 -1
- package/dist/services/verification-cache/adapters/workspace-state.js.map +1 -0
- package/dist/services/verification-cache/cache-service.d.ts +70 -0
- package/dist/services/verification-cache/cache-service.d.ts.map +1 -0
- package/dist/services/verification-cache/cache-service.js +256 -1
- package/dist/services/verification-cache/cache-service.js.map +1 -0
- package/dist/services/verification-cache/index.d.ts +6 -0
- package/dist/services/verification-cache/index.js +6 -1
- package/dist/services/verification-cache/types.d.ts +124 -0
- package/dist/services/verification-cache/types.d.ts.map +1 -0
- package/dist/services/verification-cache/types.js +16 -1
- package/dist/services/verification-cache/types.js.map +1 -0
- package/dist/services/verify/ai-verifier.d.ts +25 -0
- package/dist/services/verify/ai-verifier.d.ts.map +1 -0
- package/dist/services/verify/ai-verifier.js +336 -9
- package/dist/services/verify/ai-verifier.js.map +1 -0
- package/dist/services/verify/behavior-verifier.d.ts +12 -0
- package/dist/services/verify/behavior-verifier.d.ts.map +1 -0
- package/dist/services/verify/behavior-verifier.js +186 -1
- package/dist/services/verify/behavior-verifier.js.map +1 -0
- package/dist/services/verify/index.d.ts +5 -0
- package/dist/services/verify/index.js +4 -1
- package/dist/services/verify/structure-verifier.d.ts +12 -0
- package/dist/services/verify/structure-verifier.d.ts.map +1 -0
- package/dist/services/verify/structure-verifier.js +196 -2
- package/dist/services/verify/structure-verifier.js.map +1 -0
- package/dist/services/verify/types.d.ts +137 -0
- package/dist/services/verify/types.d.ts.map +1 -0
- package/dist/services/verify/verify-service.d.ts +60 -0
- package/dist/services/verify/verify-service.d.ts.map +1 -0
- package/dist/services/verify/verify-service.js +204 -3
- package/dist/services/verify/verify-service.js.map +1 -0
- package/dist/services/watch.d.ts +25 -0
- package/dist/services/watch.d.ts.map +1 -0
- package/dist/services/watch.js +32 -1
- package/dist/services/watch.js.map +1 -0
- package/dist/services/workspace-info.d.ts +62 -0
- package/dist/services/workspace-info.d.ts.map +1 -0
- package/dist/services/workspace-info.js +103 -2
- package/dist/services/workspace-info.js.map +1 -0
- package/dist/templates/app-config.template.d.ts +7 -0
- package/dist/templates/app-config.template.d.ts.map +1 -0
- package/dist/templates/app-config.template.js +102 -28
- package/dist/templates/app-config.template.js.map +1 -0
- package/dist/templates/data-view.template.d.ts +7 -0
- package/dist/templates/data-view.template.d.ts.map +1 -0
- package/dist/templates/data-view.template.js +43 -27
- package/dist/templates/data-view.template.js.map +1 -0
- package/dist/templates/event.template.d.ts +11 -0
- package/dist/templates/event.template.d.ts.map +1 -0
- package/dist/templates/event.template.js +30 -14
- package/dist/templates/event.template.js.map +1 -0
- package/dist/templates/experiment.template.d.ts +7 -0
- package/dist/templates/experiment.template.d.ts.map +1 -0
- package/dist/templates/experiment.template.js +78 -51
- package/dist/templates/experiment.template.js.map +1 -0
- package/dist/templates/handler.template.d.ts +16 -0
- package/dist/templates/handler.template.d.ts.map +1 -0
- package/dist/templates/handler.template.js +54 -17
- package/dist/templates/handler.template.js.map +1 -0
- package/dist/templates/index.d.ts +21 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +37 -1
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/integration.template.d.ts +7 -0
- package/dist/templates/integration.template.d.ts.map +1 -0
- package/dist/templates/integration.template.js +135 -50
- package/dist/templates/integration.template.js.map +1 -0
- package/dist/templates/knowledge.template.d.ts +7 -0
- package/dist/templates/knowledge.template.d.ts.map +1 -0
- package/dist/templates/knowledge.template.js +63 -21
- package/dist/templates/knowledge.template.js.map +1 -0
- package/dist/templates/migration.template.d.ts +7 -0
- package/dist/templates/migration.template.d.ts.map +1 -0
- package/dist/templates/migration.template.js +51 -26
- package/dist/templates/migration.template.js.map +1 -0
- package/dist/templates/operation.template.d.ts +11 -0
- package/dist/templates/operation.template.d.ts.map +1 -0
- package/dist/templates/operation.template.js +45 -28
- package/dist/templates/operation.template.js.map +1 -0
- package/dist/templates/presentation.template.d.ts +11 -0
- package/dist/templates/presentation.template.d.ts.map +1 -0
- package/dist/templates/presentation.template.js +47 -20
- package/dist/templates/presentation.template.js.map +1 -0
- package/dist/templates/telemetry.template.d.ts +7 -0
- package/dist/templates/telemetry.template.d.ts.map +1 -0
- package/dist/templates/telemetry.template.js +75 -53
- package/dist/templates/telemetry.template.js.map +1 -0
- package/dist/templates/workflow-runner.template.d.ts +16 -0
- package/dist/templates/workflow-runner.template.d.ts.map +1 -0
- package/dist/templates/workflow-runner.template.js +13 -6
- package/dist/templates/workflow-runner.template.js.map +1 -0
- package/dist/templates/workflow.template.d.ts +7 -0
- package/dist/templates/workflow.template.d.ts.map +1 -0
- package/dist/templates/workflow.template.js +52 -24
- package/dist/templates/workflow.template.js.map +1 -0
- package/dist/types/config.d.ts +34 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types.d.ts +324 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +27 -15
package/dist/formatters/sarif.js
CHANGED
|
@@ -1 +1,163 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/formatters/sarif.ts
|
|
2
|
+
/**
|
|
3
|
+
* Map of rule IDs to their metadata.
|
|
4
|
+
*/
|
|
5
|
+
const RULE_METADATA = {
|
|
6
|
+
"spec-structure-error": {
|
|
7
|
+
name: "Spec Structure Error",
|
|
8
|
+
description: "Contract specification is missing required structure elements"
|
|
9
|
+
},
|
|
10
|
+
"spec-structure-warning": {
|
|
11
|
+
name: "Spec Structure Warning",
|
|
12
|
+
description: "Contract specification has recommended but missing elements"
|
|
13
|
+
},
|
|
14
|
+
"integrity-orphaned": {
|
|
15
|
+
name: "Orphaned Spec",
|
|
16
|
+
description: "Contract specification is not linked to any feature"
|
|
17
|
+
},
|
|
18
|
+
"integrity-unresolved-ref": {
|
|
19
|
+
name: "Unresolved Reference",
|
|
20
|
+
description: "Contract specification references a non-existent spec"
|
|
21
|
+
},
|
|
22
|
+
"integrity-missing-feature": {
|
|
23
|
+
name: "Missing Feature",
|
|
24
|
+
description: "Feature referenced by spec does not exist"
|
|
25
|
+
},
|
|
26
|
+
"integrity-broken-link": {
|
|
27
|
+
name: "Broken Link",
|
|
28
|
+
description: "Link between specs is broken"
|
|
29
|
+
},
|
|
30
|
+
"deps-circular": {
|
|
31
|
+
name: "Circular Dependency",
|
|
32
|
+
description: "Circular dependency detected between contracts"
|
|
33
|
+
},
|
|
34
|
+
"deps-missing": {
|
|
35
|
+
name: "Missing Dependency",
|
|
36
|
+
description: "Contract depends on a non-existent contract"
|
|
37
|
+
},
|
|
38
|
+
"handler-missing": {
|
|
39
|
+
name: "Missing Handler",
|
|
40
|
+
description: "Handler implementation file does not exist for this contract"
|
|
41
|
+
},
|
|
42
|
+
"handler-warning": {
|
|
43
|
+
name: "Handler Warning",
|
|
44
|
+
description: "Handler implementation has potential issues"
|
|
45
|
+
},
|
|
46
|
+
"test-missing": {
|
|
47
|
+
name: "Missing Test",
|
|
48
|
+
description: "Test file does not exist for this contract"
|
|
49
|
+
},
|
|
50
|
+
"test-warning": {
|
|
51
|
+
name: "Test Warning",
|
|
52
|
+
description: "Test implementation has potential issues"
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Format CI check results as SARIF.
|
|
57
|
+
*/
|
|
58
|
+
function formatAsSarif(result, options = {}) {
|
|
59
|
+
const { toolName = "ContractSpec", toolVersion = "1.0.0", toolUri = "https://contractspec.lssm.tech", repositoryUri, workingDirectory } = options;
|
|
60
|
+
const ruleMap = /* @__PURE__ */ new Map();
|
|
61
|
+
const ruleIndexMap = /* @__PURE__ */ new Map();
|
|
62
|
+
const issuesWithFiles = result.issues.filter((issue) => issue.file);
|
|
63
|
+
for (const issue of issuesWithFiles) if (!ruleMap.has(issue.ruleId)) {
|
|
64
|
+
const metadata = RULE_METADATA[issue.ruleId] ?? {
|
|
65
|
+
name: issue.ruleId,
|
|
66
|
+
description: `Rule: ${issue.ruleId}`
|
|
67
|
+
};
|
|
68
|
+
const rule = {
|
|
69
|
+
id: issue.ruleId,
|
|
70
|
+
name: metadata.name,
|
|
71
|
+
shortDescription: { text: metadata.description },
|
|
72
|
+
defaultConfiguration: { level: mapSeverityToLevel(issue.severity) }
|
|
73
|
+
};
|
|
74
|
+
if (metadata.helpUri) rule.helpUri = metadata.helpUri;
|
|
75
|
+
ruleIndexMap.set(issue.ruleId, ruleMap.size);
|
|
76
|
+
ruleMap.set(issue.ruleId, rule);
|
|
77
|
+
}
|
|
78
|
+
const results = issuesWithFiles.map((issue) => {
|
|
79
|
+
const sarifResult = {
|
|
80
|
+
ruleId: issue.ruleId,
|
|
81
|
+
ruleIndex: ruleIndexMap.get(issue.ruleId) ?? 0,
|
|
82
|
+
level: mapSeverityToLevel(issue.severity),
|
|
83
|
+
message: { text: issue.message }
|
|
84
|
+
};
|
|
85
|
+
const location = { physicalLocation: { artifactLocation: {
|
|
86
|
+
uri: normalizeUri(issue.file),
|
|
87
|
+
uriBaseId: "%SRCROOT%"
|
|
88
|
+
} } };
|
|
89
|
+
if (issue.line !== void 0) location.physicalLocation.region = {
|
|
90
|
+
startLine: issue.line,
|
|
91
|
+
startColumn: issue.column ?? 1,
|
|
92
|
+
endLine: issue.endLine ?? issue.line,
|
|
93
|
+
endColumn: issue.endColumn
|
|
94
|
+
};
|
|
95
|
+
sarifResult.locations = [location];
|
|
96
|
+
sarifResult.partialFingerprints = { primaryLocationLineHash: createFingerprint(issue) };
|
|
97
|
+
return sarifResult;
|
|
98
|
+
});
|
|
99
|
+
const versionControlProvenance = [];
|
|
100
|
+
if (repositoryUri) versionControlProvenance.push({
|
|
101
|
+
repositoryUri,
|
|
102
|
+
revisionId: result.commitSha,
|
|
103
|
+
branch: result.branch
|
|
104
|
+
});
|
|
105
|
+
const run = {
|
|
106
|
+
tool: { driver: {
|
|
107
|
+
name: toolName,
|
|
108
|
+
version: toolVersion,
|
|
109
|
+
informationUri: toolUri,
|
|
110
|
+
rules: Array.from(ruleMap.values())
|
|
111
|
+
} },
|
|
112
|
+
results,
|
|
113
|
+
invocations: [{
|
|
114
|
+
executionSuccessful: result.success,
|
|
115
|
+
endTimeUtc: result.timestamp,
|
|
116
|
+
...workingDirectory && { workingDirectory: { uri: workingDirectory } }
|
|
117
|
+
}]
|
|
118
|
+
};
|
|
119
|
+
if (versionControlProvenance.length > 0) run.versionControlProvenance = versionControlProvenance;
|
|
120
|
+
return {
|
|
121
|
+
$schema: "https://json.schemastore.org/sarif-2.1.0.json",
|
|
122
|
+
version: "2.1.0",
|
|
123
|
+
runs: [run]
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Map CI severity to SARIF level.
|
|
128
|
+
*/
|
|
129
|
+
function mapSeverityToLevel(severity) {
|
|
130
|
+
switch (severity) {
|
|
131
|
+
case "error": return "error";
|
|
132
|
+
case "warning": return "warning";
|
|
133
|
+
case "note": return "note";
|
|
134
|
+
default: return "warning";
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Normalize file path to SARIF URI format.
|
|
139
|
+
*/
|
|
140
|
+
function normalizeUri(filePath) {
|
|
141
|
+
return filePath.replace(/^\.\//, "").replace(/\\/g, "/");
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Create a fingerprint for issue deduplication.
|
|
145
|
+
*/
|
|
146
|
+
function createFingerprint(issue) {
|
|
147
|
+
const parts = [
|
|
148
|
+
issue.ruleId,
|
|
149
|
+
issue.file ?? "",
|
|
150
|
+
issue.message
|
|
151
|
+
];
|
|
152
|
+
return Buffer.from(parts.join("|")).toString("base64").slice(0, 16);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Serialize SARIF output to JSON string.
|
|
156
|
+
*/
|
|
157
|
+
function sarifToJson(sarif) {
|
|
158
|
+
return JSON.stringify(sarif, null, 2);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
//#endregion
|
|
162
|
+
export { formatAsSarif, sarifToJson };
|
|
163
|
+
//# sourceMappingURL=sarif.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sarif.js","names":["RULE_METADATA: Record<\n string,\n { name: string; description: string; helpUri?: string }\n>","rule: SarifRule","results: SarifResult[]","sarifResult: SarifResult","location: SarifLocation","versionControlProvenance: SarifVersionControl[]","run: SarifRun"],"sources":["../../src/formatters/sarif.ts"],"sourcesContent":["/**\n * SARIF output formatter.\n *\n * Formats CI check results as SARIF (Static Analysis Results Interchange Format)\n * for integration with GitHub Code Scanning and other security tools.\n *\n * SARIF Specification: https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html\n */\n\nimport type {\n CICheckResult,\n CIIssue,\n CIIssueSeverity,\n} from '../services/ci-check/types';\n\n/**\n * SARIF v2.1.0 output structure.\n */\nexport interface SarifOutput {\n $schema: string;\n version: string;\n runs: SarifRun[];\n}\n\ninterface SarifRun {\n tool: {\n driver: {\n name: string;\n version: string;\n informationUri: string;\n rules: SarifRule[];\n };\n };\n results: SarifResult[];\n invocations: SarifInvocation[];\n versionControlProvenance?: SarifVersionControl[];\n}\n\ninterface SarifRule {\n id: string;\n name: string;\n shortDescription: { text: string };\n fullDescription?: { text: string };\n defaultConfiguration: {\n level: 'error' | 'warning' | 'note' | 'none';\n };\n helpUri?: string;\n}\n\ninterface SarifResult {\n ruleId: string;\n ruleIndex: number;\n level: 'error' | 'warning' | 'note' | 'none';\n message: { text: string };\n locations?: SarifLocation[];\n partialFingerprints?: Record<string, string>;\n}\n\ninterface SarifLocation {\n physicalLocation: {\n artifactLocation: {\n uri: string;\n uriBaseId?: string;\n };\n region?: {\n startLine?: number;\n startColumn?: number;\n endLine?: number;\n endColumn?: number;\n };\n };\n}\n\ninterface SarifInvocation {\n executionSuccessful: boolean;\n endTimeUtc: string;\n workingDirectory?: { uri: string };\n}\n\ninterface SarifVersionControl {\n repositoryUri?: string;\n revisionId?: string;\n branch?: string;\n}\n\n/**\n * Options for SARIF formatting.\n */\nexport interface SarifFormatOptions {\n /** Tool name. */\n toolName?: string;\n /** Tool version. */\n toolVersion?: string;\n /** Tool information URI. */\n toolUri?: string;\n /** Repository URI for version control provenance. */\n repositoryUri?: string;\n /** Working directory. */\n workingDirectory?: string;\n}\n\n/**\n * Map of rule IDs to their metadata.\n */\nconst RULE_METADATA: Record<\n string,\n { name: string; description: string; helpUri?: string }\n> = {\n 'spec-structure-error': {\n name: 'Spec Structure Error',\n description:\n 'Contract specification is missing required structure elements',\n },\n 'spec-structure-warning': {\n name: 'Spec Structure Warning',\n description: 'Contract specification has recommended but missing elements',\n },\n 'integrity-orphaned': {\n name: 'Orphaned Spec',\n description: 'Contract specification is not linked to any feature',\n },\n 'integrity-unresolved-ref': {\n name: 'Unresolved Reference',\n description: 'Contract specification references a non-existent spec',\n },\n 'integrity-missing-feature': {\n name: 'Missing Feature',\n description: 'Feature referenced by spec does not exist',\n },\n 'integrity-broken-link': {\n name: 'Broken Link',\n description: 'Link between specs is broken',\n },\n 'deps-circular': {\n name: 'Circular Dependency',\n description: 'Circular dependency detected between contracts',\n },\n 'deps-missing': {\n name: 'Missing Dependency',\n description: 'Contract depends on a non-existent contract',\n },\n 'handler-missing': {\n name: 'Missing Handler',\n description: 'Handler implementation file does not exist for this contract',\n },\n 'handler-warning': {\n name: 'Handler Warning',\n description: 'Handler implementation has potential issues',\n },\n 'test-missing': {\n name: 'Missing Test',\n description: 'Test file does not exist for this contract',\n },\n 'test-warning': {\n name: 'Test Warning',\n description: 'Test implementation has potential issues',\n },\n};\n\n/**\n * Format CI check results as SARIF.\n */\nexport function formatAsSarif(\n result: CICheckResult,\n options: SarifFormatOptions = {}\n): SarifOutput {\n const {\n toolName = 'ContractSpec',\n toolVersion = '1.0.0',\n toolUri = 'https://contractspec.lssm.tech',\n repositoryUri,\n workingDirectory,\n } = options;\n\n // Collect unique rules from issues (only from issues with files)\n const ruleMap = new Map<string, SarifRule>();\n const ruleIndexMap = new Map<string, number>();\n\n // Only collect rules from issues that have files (these are the ones that will be in results)\n const issuesWithFiles = result.issues.filter((issue) => issue.file);\n\n for (const issue of issuesWithFiles) {\n if (!ruleMap.has(issue.ruleId)) {\n const metadata = RULE_METADATA[issue.ruleId] ?? {\n name: issue.ruleId,\n description: `Rule: ${issue.ruleId}`,\n };\n\n const rule: SarifRule = {\n id: issue.ruleId,\n name: metadata.name,\n shortDescription: { text: metadata.description },\n defaultConfiguration: {\n level: mapSeverityToLevel(issue.severity),\n },\n };\n\n if (metadata.helpUri) {\n rule.helpUri = metadata.helpUri;\n }\n\n ruleIndexMap.set(issue.ruleId, ruleMap.size);\n ruleMap.set(issue.ruleId, rule);\n }\n }\n\n // Convert issues to SARIF results (only issues with file locations)\n // GitHub Code Scanning requires every result to have at least one location\n const results: SarifResult[] = issuesWithFiles.map((issue) => {\n const sarifResult: SarifResult = {\n ruleId: issue.ruleId,\n ruleIndex: ruleIndexMap.get(issue.ruleId) ?? 0,\n level: mapSeverityToLevel(issue.severity),\n message: { text: issue.message },\n };\n\n // issue.file is guaranteed to be defined due to the filter above\n const location: SarifLocation = {\n physicalLocation: {\n artifactLocation: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n uri: normalizeUri(issue.file!),\n uriBaseId: '%SRCROOT%',\n },\n },\n };\n\n if (issue.line !== undefined) {\n location.physicalLocation.region = {\n startLine: issue.line,\n startColumn: issue.column ?? 1,\n endLine: issue.endLine ?? issue.line,\n endColumn: issue.endColumn,\n };\n }\n\n sarifResult.locations = [location];\n\n // Add fingerprint for deduplication\n sarifResult.partialFingerprints = {\n primaryLocationLineHash: createFingerprint(issue),\n };\n\n return sarifResult;\n });\n\n // Build version control provenance (only if repositoryUri is provided, as it's required by SARIF schema)\n const versionControlProvenance: SarifVersionControl[] = [];\n if (repositoryUri) {\n versionControlProvenance.push({\n repositoryUri,\n revisionId: result.commitSha,\n branch: result.branch,\n });\n }\n\n const run: SarifRun = {\n tool: {\n driver: {\n name: toolName,\n version: toolVersion,\n informationUri: toolUri,\n rules: Array.from(ruleMap.values()),\n },\n },\n results,\n invocations: [\n {\n executionSuccessful: result.success,\n endTimeUtc: result.timestamp,\n ...(workingDirectory && {\n workingDirectory: { uri: workingDirectory },\n }),\n },\n ],\n };\n\n if (versionControlProvenance.length > 0) {\n run.versionControlProvenance = versionControlProvenance;\n }\n\n return {\n $schema: 'https://json.schemastore.org/sarif-2.1.0.json',\n version: '2.1.0',\n runs: [run],\n };\n}\n\n/**\n * Map CI severity to SARIF level.\n */\nfunction mapSeverityToLevel(\n severity: CIIssueSeverity\n): 'error' | 'warning' | 'note' {\n switch (severity) {\n case 'error':\n return 'error';\n case 'warning':\n return 'warning';\n case 'note':\n return 'note';\n default:\n return 'warning';\n }\n}\n\n/**\n * Normalize file path to SARIF URI format.\n */\nfunction normalizeUri(filePath: string): string {\n // Remove leading ./ and normalize path separators\n return filePath.replace(/^\\.\\//, '').replace(/\\\\/g, '/');\n}\n\n/**\n * Create a fingerprint for issue deduplication.\n */\nfunction createFingerprint(issue: CIIssue): string {\n const parts = [issue.ruleId, issue.file ?? '', issue.message];\n return Buffer.from(parts.join('|')).toString('base64').slice(0, 16);\n}\n\n/**\n * Serialize SARIF output to JSON string.\n */\nexport function sarifToJson(sarif: SarifOutput): string {\n return JSON.stringify(sarif, null, 2);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CICheckResult } from "../services/ci-check/types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/formatters/text.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Options for text formatting.
|
|
7
|
+
*/
|
|
8
|
+
interface TextFormatOptions {
|
|
9
|
+
/** Show verbose output with all details. */
|
|
10
|
+
verbose?: boolean;
|
|
11
|
+
/** Include timing information. */
|
|
12
|
+
showTiming?: boolean;
|
|
13
|
+
/** Group issues by file. */
|
|
14
|
+
groupByFile?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Text output lines with optional styling hints.
|
|
18
|
+
*/
|
|
19
|
+
interface TextLine {
|
|
20
|
+
text: string;
|
|
21
|
+
style?: 'normal' | 'bold' | 'error' | 'warning' | 'success' | 'muted';
|
|
22
|
+
indent?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Format CI check results as text lines.
|
|
26
|
+
* Returns structured lines that can be styled by the CLI.
|
|
27
|
+
*/
|
|
28
|
+
declare function formatAsTextLines(result: CICheckResult, options?: TextFormatOptions): TextLine[];
|
|
29
|
+
/**
|
|
30
|
+
* Format CI check results as plain text string.
|
|
31
|
+
*/
|
|
32
|
+
declare function formatAsText(result: CICheckResult, options?: TextFormatOptions): string;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { TextFormatOptions, TextLine, formatAsText, formatAsTextLines };
|
|
35
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","names":[],"sources":["../../src/formatters/text.ts"],"sourcesContent":[],"mappings":";;;;;;;AAqKgB,UArJC,iBAAA,CAsJP;;;;;;;;;;;UA1IO,QAAA;;;;;;;;;iBAUD,iBAAA,SACN,yBACC,oBACR;;;;iBA4Ha,YAAA,SACN,yBACC"}
|
package/dist/formatters/text.js
CHANGED
|
@@ -1,2 +1,209 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/formatters/text.ts
|
|
2
|
+
/**
|
|
3
|
+
* Format CI check results as text lines.
|
|
4
|
+
* Returns structured lines that can be styled by the CLI.
|
|
5
|
+
*/
|
|
6
|
+
function formatAsTextLines(result, options = {}) {
|
|
7
|
+
const lines = [];
|
|
8
|
+
const { verbose = false, showTiming = true, groupByFile = false } = options;
|
|
9
|
+
lines.push({
|
|
10
|
+
text: "",
|
|
11
|
+
style: "normal"
|
|
12
|
+
});
|
|
13
|
+
lines.push({
|
|
14
|
+
text: "📋 ContractSpec CI Check Results",
|
|
15
|
+
style: "bold"
|
|
16
|
+
});
|
|
17
|
+
lines.push({
|
|
18
|
+
text: "",
|
|
19
|
+
style: "normal"
|
|
20
|
+
});
|
|
21
|
+
if (result.commitSha || result.branch) {
|
|
22
|
+
const gitInfo = [result.branch ? `branch: ${result.branch}` : null, result.commitSha ? `commit: ${result.commitSha.slice(0, 7)}` : null].filter(Boolean).join(", ");
|
|
23
|
+
lines.push({
|
|
24
|
+
text: `Git: ${gitInfo}`,
|
|
25
|
+
style: "muted"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
lines.push({
|
|
29
|
+
text: "",
|
|
30
|
+
style: "normal"
|
|
31
|
+
});
|
|
32
|
+
lines.push({
|
|
33
|
+
text: "Check Results:",
|
|
34
|
+
style: "bold"
|
|
35
|
+
});
|
|
36
|
+
for (const category of result.categories) {
|
|
37
|
+
const icon = category.passed ? "✓" : "✗";
|
|
38
|
+
const style = category.passed ? "success" : "error";
|
|
39
|
+
const stats = formatCategoryStats(category);
|
|
40
|
+
const timing = showTiming ? ` (${category.durationMs}ms)` : "";
|
|
41
|
+
lines.push({
|
|
42
|
+
text: ` ${icon} ${category.label}: ${stats}${timing}`,
|
|
43
|
+
style
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (result.issues.length > 0) {
|
|
47
|
+
lines.push({
|
|
48
|
+
text: "",
|
|
49
|
+
style: "normal"
|
|
50
|
+
});
|
|
51
|
+
lines.push({
|
|
52
|
+
text: "Issues:",
|
|
53
|
+
style: "bold"
|
|
54
|
+
});
|
|
55
|
+
if (groupByFile) {
|
|
56
|
+
const byFile = groupIssuesByFile(result.issues);
|
|
57
|
+
for (const [file, issues] of byFile) {
|
|
58
|
+
lines.push({
|
|
59
|
+
text: "",
|
|
60
|
+
style: "normal"
|
|
61
|
+
});
|
|
62
|
+
lines.push({
|
|
63
|
+
text: ` ${file || "(no file)"}`,
|
|
64
|
+
style: "bold",
|
|
65
|
+
indent: 1
|
|
66
|
+
});
|
|
67
|
+
for (const issue of issues) lines.push(...formatIssueLines(issue, verbose, 2));
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
const errors = result.issues.filter((i) => i.severity === "error");
|
|
71
|
+
const warnings = result.issues.filter((i) => i.severity === "warning");
|
|
72
|
+
const notes = result.issues.filter((i) => i.severity === "note");
|
|
73
|
+
if (errors.length > 0) {
|
|
74
|
+
lines.push({
|
|
75
|
+
text: "",
|
|
76
|
+
style: "normal"
|
|
77
|
+
});
|
|
78
|
+
lines.push({
|
|
79
|
+
text: " Errors:",
|
|
80
|
+
style: "error",
|
|
81
|
+
indent: 1
|
|
82
|
+
});
|
|
83
|
+
for (const issue of errors) lines.push(...formatIssueLines(issue, verbose, 2));
|
|
84
|
+
}
|
|
85
|
+
if (warnings.length > 0) {
|
|
86
|
+
lines.push({
|
|
87
|
+
text: "",
|
|
88
|
+
style: "normal"
|
|
89
|
+
});
|
|
90
|
+
lines.push({
|
|
91
|
+
text: " Warnings:",
|
|
92
|
+
style: "warning",
|
|
93
|
+
indent: 1
|
|
94
|
+
});
|
|
95
|
+
for (const issue of warnings) lines.push(...formatIssueLines(issue, verbose, 2));
|
|
96
|
+
}
|
|
97
|
+
if (notes.length > 0 && verbose) {
|
|
98
|
+
lines.push({
|
|
99
|
+
text: "",
|
|
100
|
+
style: "normal"
|
|
101
|
+
});
|
|
102
|
+
lines.push({
|
|
103
|
+
text: " Notes:",
|
|
104
|
+
style: "muted",
|
|
105
|
+
indent: 1
|
|
106
|
+
});
|
|
107
|
+
for (const issue of notes) lines.push(...formatIssueLines(issue, verbose, 2));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
lines.push({
|
|
112
|
+
text: "",
|
|
113
|
+
style: "normal"
|
|
114
|
+
});
|
|
115
|
+
lines.push({
|
|
116
|
+
text: "─".repeat(50),
|
|
117
|
+
style: "muted"
|
|
118
|
+
});
|
|
119
|
+
const summaryParts = [
|
|
120
|
+
result.totalErrors > 0 ? `${result.totalErrors} error(s)` : null,
|
|
121
|
+
result.totalWarnings > 0 ? `${result.totalWarnings} warning(s)` : null,
|
|
122
|
+
result.totalNotes > 0 && verbose ? `${result.totalNotes} note(s)` : null
|
|
123
|
+
].filter(Boolean);
|
|
124
|
+
if (summaryParts.length > 0) lines.push({
|
|
125
|
+
text: `Found: ${summaryParts.join(", ")}`,
|
|
126
|
+
style: result.success ? "warning" : "error"
|
|
127
|
+
});
|
|
128
|
+
if (showTiming) lines.push({
|
|
129
|
+
text: `Duration: ${result.durationMs}ms`,
|
|
130
|
+
style: "muted"
|
|
131
|
+
});
|
|
132
|
+
lines.push({
|
|
133
|
+
text: "",
|
|
134
|
+
style: "normal"
|
|
135
|
+
});
|
|
136
|
+
if (result.success) lines.push({
|
|
137
|
+
text: "✅ All CI checks passed!",
|
|
138
|
+
style: "success"
|
|
139
|
+
});
|
|
140
|
+
else lines.push({
|
|
141
|
+
text: "❌ CI checks failed",
|
|
142
|
+
style: "error"
|
|
143
|
+
});
|
|
144
|
+
lines.push({
|
|
145
|
+
text: "",
|
|
146
|
+
style: "normal"
|
|
147
|
+
});
|
|
148
|
+
return lines;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Format CI check results as plain text string.
|
|
152
|
+
*/
|
|
153
|
+
function formatAsText(result, options = {}) {
|
|
154
|
+
return formatAsTextLines(result, options).map((line) => " ".repeat(line.indent ?? 0) + line.text).join("\n");
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Format category stats.
|
|
158
|
+
*/
|
|
159
|
+
function formatCategoryStats(category) {
|
|
160
|
+
const parts = [];
|
|
161
|
+
if (category.errors > 0) parts.push(`${category.errors} error(s)`);
|
|
162
|
+
if (category.warnings > 0) parts.push(`${category.warnings} warning(s)`);
|
|
163
|
+
if (parts.length === 0) return "passed";
|
|
164
|
+
return parts.join(", ");
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Format a single issue as text lines.
|
|
168
|
+
*/
|
|
169
|
+
function formatIssueLines(issue, verbose, baseIndent) {
|
|
170
|
+
const lines = [];
|
|
171
|
+
const icon = issue.severity === "error" ? "✗" : issue.severity === "warning" ? "⚠" : "○";
|
|
172
|
+
const style = issue.severity === "error" ? "error" : issue.severity === "warning" ? "warning" : "muted";
|
|
173
|
+
let mainLine = `${icon} ${issue.message}`;
|
|
174
|
+
if (issue.file) {
|
|
175
|
+
const location = issue.line ? `:${issue.line}` : "";
|
|
176
|
+
mainLine += ` (${issue.file}${location})`;
|
|
177
|
+
}
|
|
178
|
+
lines.push({
|
|
179
|
+
text: mainLine,
|
|
180
|
+
style,
|
|
181
|
+
indent: baseIndent
|
|
182
|
+
});
|
|
183
|
+
if (verbose && issue.context) {
|
|
184
|
+
const contextStr = JSON.stringify(issue.context);
|
|
185
|
+
if (contextStr !== "{}") lines.push({
|
|
186
|
+
text: `Context: ${contextStr}`,
|
|
187
|
+
style: "muted",
|
|
188
|
+
indent: baseIndent + 1
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return lines;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Group issues by file.
|
|
195
|
+
*/
|
|
196
|
+
function groupIssuesByFile(issues) {
|
|
197
|
+
const byFile = /* @__PURE__ */ new Map();
|
|
198
|
+
for (const issue of issues) {
|
|
199
|
+
const file = issue.file ?? "";
|
|
200
|
+
if (!byFile.has(file)) byFile.set(file, []);
|
|
201
|
+
const fileIssues = byFile.get(file);
|
|
202
|
+
if (fileIssues) fileIssues.push(issue);
|
|
203
|
+
}
|
|
204
|
+
return new Map([...byFile.entries()].sort(([a], [b]) => a.localeCompare(b)));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
//#endregion
|
|
208
|
+
export { formatAsText, formatAsTextLines };
|
|
209
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","names":["lines: TextLine[]","parts: string[]"],"sources":["../../src/formatters/text.ts"],"sourcesContent":["/**\n * Text output formatter.\n *\n * Formats CI check results as human-readable text output.\n * This formatter is designed to be used by CLI wrappers that add colors.\n */\n\nimport type {\n CICheckResult,\n CICheckCategorySummary,\n CIIssue,\n} from '../services/ci-check/types';\n\n/**\n * Options for text formatting.\n */\nexport interface TextFormatOptions {\n /** Show verbose output with all details. */\n verbose?: boolean;\n /** Include timing information. */\n showTiming?: boolean;\n /** Group issues by file. */\n groupByFile?: boolean;\n}\n\n/**\n * Text output lines with optional styling hints.\n */\nexport interface TextLine {\n text: string;\n style?: 'normal' | 'bold' | 'error' | 'warning' | 'success' | 'muted';\n indent?: number;\n}\n\n/**\n * Format CI check results as text lines.\n * Returns structured lines that can be styled by the CLI.\n */\nexport function formatAsTextLines(\n result: CICheckResult,\n options: TextFormatOptions = {}\n): TextLine[] {\n const lines: TextLine[] = [];\n const { verbose = false, showTiming = true, groupByFile = false } = options;\n\n // Header\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: '📋 ContractSpec CI Check Results', style: 'bold' });\n lines.push({ text: '', style: 'normal' });\n\n // Git info if available\n if (result.commitSha || result.branch) {\n const gitInfo = [\n result.branch ? `branch: ${result.branch}` : null,\n result.commitSha ? `commit: ${result.commitSha.slice(0, 7)}` : null,\n ]\n .filter(Boolean)\n .join(', ');\n lines.push({ text: `Git: ${gitInfo}`, style: 'muted' });\n }\n\n // Category summaries\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: 'Check Results:', style: 'bold' });\n\n for (const category of result.categories) {\n const icon = category.passed ? '✓' : '✗';\n const style = category.passed ? 'success' : 'error';\n const stats = formatCategoryStats(category);\n const timing = showTiming ? ` (${category.durationMs}ms)` : '';\n\n lines.push({\n text: ` ${icon} ${category.label}: ${stats}${timing}`,\n style,\n });\n }\n\n // Issues section\n if (result.issues.length > 0) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: 'Issues:', style: 'bold' });\n\n if (groupByFile) {\n const byFile = groupIssuesByFile(result.issues);\n for (const [file, issues] of byFile) {\n lines.push({ text: '', style: 'normal' });\n lines.push({\n text: ` ${file || '(no file)'}`,\n style: 'bold',\n indent: 1,\n });\n\n for (const issue of issues) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n } else {\n // Show errors first, then warnings, then notes\n const errors = result.issues.filter((i) => i.severity === 'error');\n const warnings = result.issues.filter((i) => i.severity === 'warning');\n const notes = result.issues.filter((i) => i.severity === 'note');\n\n if (errors.length > 0) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: ' Errors:', style: 'error', indent: 1 });\n for (const issue of errors) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n\n if (warnings.length > 0) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: ' Warnings:', style: 'warning', indent: 1 });\n for (const issue of warnings) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n\n if (notes.length > 0 && verbose) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: ' Notes:', style: 'muted', indent: 1 });\n for (const issue of notes) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n }\n }\n\n // Summary\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: '─'.repeat(50), style: 'muted' });\n\n const summaryParts = [\n result.totalErrors > 0 ? `${result.totalErrors} error(s)` : null,\n result.totalWarnings > 0 ? `${result.totalWarnings} warning(s)` : null,\n result.totalNotes > 0 && verbose ? `${result.totalNotes} note(s)` : null,\n ].filter(Boolean);\n\n if (summaryParts.length > 0) {\n lines.push({\n text: `Found: ${summaryParts.join(', ')}`,\n style: result.success ? 'warning' : 'error',\n });\n }\n\n if (showTiming) {\n lines.push({ text: `Duration: ${result.durationMs}ms`, style: 'muted' });\n }\n\n lines.push({ text: '', style: 'normal' });\n\n if (result.success) {\n lines.push({ text: '✅ All CI checks passed!', style: 'success' });\n } else {\n lines.push({ text: '❌ CI checks failed', style: 'error' });\n }\n\n lines.push({ text: '', style: 'normal' });\n\n return lines;\n}\n\n/**\n * Format CI check results as plain text string.\n */\nexport function formatAsText(\n result: CICheckResult,\n options: TextFormatOptions = {}\n): string {\n const lines = formatAsTextLines(result, options);\n return lines\n .map((line) => ' '.repeat(line.indent ?? 0) + line.text)\n .join('\\n');\n}\n\n/**\n * Format category stats.\n */\nfunction formatCategoryStats(category: CICheckCategorySummary): string {\n const parts: string[] = [];\n\n if (category.errors > 0) {\n parts.push(`${category.errors} error(s)`);\n }\n if (category.warnings > 0) {\n parts.push(`${category.warnings} warning(s)`);\n }\n\n if (parts.length === 0) {\n return 'passed';\n }\n\n return parts.join(', ');\n}\n\n/**\n * Format a single issue as text lines.\n */\nfunction formatIssueLines(\n issue: CIIssue,\n verbose: boolean,\n baseIndent: number\n): TextLine[] {\n const lines: TextLine[] = [];\n\n const icon =\n issue.severity === 'error' ? '✗' : issue.severity === 'warning' ? '⚠' : '○';\n const style =\n issue.severity === 'error'\n ? 'error'\n : issue.severity === 'warning'\n ? 'warning'\n : 'muted';\n\n // Main issue line\n let mainLine = `${icon} ${issue.message}`;\n if (issue.file) {\n const location = issue.line ? `:${issue.line}` : '';\n mainLine += ` (${issue.file}${location})`;\n }\n\n lines.push({ text: mainLine, style, indent: baseIndent });\n\n // Additional context in verbose mode\n if (verbose && issue.context) {\n const contextStr = JSON.stringify(issue.context);\n if (contextStr !== '{}') {\n lines.push({\n text: `Context: ${contextStr}`,\n style: 'muted',\n indent: baseIndent + 1,\n });\n }\n }\n\n return lines;\n}\n\n/**\n * Group issues by file.\n */\nfunction groupIssuesByFile(issues: CIIssue[]): Map<string, CIIssue[]> {\n const byFile = new Map<string, CIIssue[]>();\n\n for (const issue of issues) {\n const file = issue.file ?? '';\n if (!byFile.has(file)) {\n byFile.set(file, []);\n }\n const fileIssues = byFile.get(file);\n if (fileIssues) {\n fileIssues.push(issue);\n }\n }\n\n // Sort files alphabetically\n return new Map([...byFile.entries()].sort(([a], [b]) => a.localeCompare(b)));\n}\n"],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { __exportAll, __reExport } from "./_virtual/rolldown_runtime.js";
|
|
2
|
+
import { DiscoverOptions, FileStat, FsAdapter } from "./ports/fs.js";
|
|
3
|
+
import { GitAdapter, GitCleanOptions } from "./ports/git.js";
|
|
4
|
+
import { WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, Watcher, WatcherAdapter } from "./ports/watcher.js";
|
|
5
|
+
import { AiAdapter, AiGenerateOptions, AiGenerateResult, AiGenerateStructuredOptions, AiValidationResult } from "./ports/ai.js";
|
|
6
|
+
import { LogLevel, LoggerAdapter, ProgressReporter, ProgressUpdate, WorkspaceAdapters } from "./ports/logger.js";
|
|
7
|
+
import "./ports/index.js";
|
|
8
|
+
import { createNodeFsAdapter } from "./adapters/fs.js";
|
|
9
|
+
import { createNodeGitAdapter } from "./adapters/git.js";
|
|
10
|
+
import { createNodeWatcherAdapter } from "./adapters/watcher.js";
|
|
11
|
+
import { createNodeAiAdapter } from "./adapters/ai.js";
|
|
12
|
+
import { createConsoleLoggerAdapter, createNoopLoggerAdapter } from "./adapters/logger.js";
|
|
13
|
+
import { CreateAdaptersOptions, createNodeAdapters } from "./adapters/factory.js";
|
|
14
|
+
import { MetaRepoInfo, PackageManager, RepositoryType, SubmoduleInfo, WorkspaceInfo, detectPackageManager, detectRepositoryType, findMetaRepoRoot, findPackageRoot, findWorkspaceRoot, getExecCommand, getInstallCommand, getMetaRepoInfo, getPackageName, getRunCommand, getWorkspaceInfo, getWorkspacePackages, isMonorepo, parseGitModules } from "./adapters/workspace.js";
|
|
15
|
+
import "./adapters/index.js";
|
|
16
|
+
import { AgentMode, AiProvider, Config } from "./types/config.js";
|
|
17
|
+
import { ValidateSpecOptions, ValidateSpecResult, validateSpec, validateSpecs } from "./services/validate.js";
|
|
18
|
+
import { ValidateImplementationOptions, ValidateImplementationResult, validateImplementationFiles } from "./services/validate-implementation.js";
|
|
19
|
+
import { CompareSpecsOptions, CompareSpecsResult, compareSpecs } from "./services/diff.js";
|
|
20
|
+
import { AnalyzeDepsOptions, AnalyzeDepsResult, analyzeDeps, exportGraphAsDot, getContractNode, getGraphStats } from "./services/deps.js";
|
|
21
|
+
import { ListSpecsOptions, groupSpecsByType, listSpecs } from "./services/list.js";
|
|
22
|
+
import { getApiKey, loadWorkspaceConfig, mergeWorkspaceConfig } from "./services/config.js";
|
|
23
|
+
import { BuildSpecOptions, BuildSpecResult, BuildTarget, BuildTargetResult, buildSpec } from "./services/build.js";
|
|
24
|
+
import { OpenApiExportServiceOptions, OpenApiExportServiceResult, OpenApiImportServiceOptions, OpenApiImportServiceResult, OpenApiSyncServiceOptions, OpenApiSyncServiceResult, OpenApiValidateServiceOptions, OpenApiValidateServiceResult } from "./services/openapi/types.js";
|
|
25
|
+
import { importFromOpenApiService } from "./services/openapi/import-service.js";
|
|
26
|
+
import { syncWithOpenApiService } from "./services/openapi/sync-service.js";
|
|
27
|
+
import { validateAgainstOpenApiService } from "./services/openapi/validate-service.js";
|
|
28
|
+
import { OpenApiExportOptions, OpenApiExportResult, exportOpenApi } from "./services/openapi/export-service.js";
|
|
29
|
+
import { RegistryClient, RegistryClientOptions, addToRegistry, listFromRegistry, resolveRegistryUrl, searchRegistry } from "./services/registry.js";
|
|
30
|
+
import { SyncBuildFn, SyncSpecsOptions, SyncSpecsResult, SyncSpecsRunResult, SyncValidateFn, syncSpecs } from "./services/sync.js";
|
|
31
|
+
import { WatchBuildFn, WatchSpecsOptions, WatchValidateFn, watchSpecs } from "./services/watch.js";
|
|
32
|
+
import { CleanOptions, CleanResult, cleanArtifacts } from "./services/clean.js";
|
|
33
|
+
import { RunTestsResult, TestRunResult, runTests } from "./services/test.js";
|
|
34
|
+
import { CreateRegeneratorOptions, createRegeneratorService } from "./services/regenerator.js";
|
|
35
|
+
import { ExtendedWorkspaceInfo, MonorepoConfig, findAllConfigFiles, formatWorkspaceInfo, getExtendedWorkspaceInfo, mergeMonorepoConfigs } from "./services/workspace-info.js";
|
|
36
|
+
import { CoverageByType, IntegrityAnalysisOptions, IntegrityAnalysisResult, IntegrityIssue, SpecInventory, SpecLocation, analyzeIntegrity, filterIssuesBySeverity, filterIssuesByType, getAllSpecs } from "./services/integrity.js";
|
|
37
|
+
import { DiagramOptions, DiagramType, generateMermaidDiagram } from "./services/integrity-diagram.js";
|
|
38
|
+
import { ALL_SETUP_TARGETS, SETUP_TARGET_LABELS, SetupFileResult, SetupOptions, SetupPromptCallbacks, SetupResult, SetupScope, SetupTarget } from "./services/setup/types.js";
|
|
39
|
+
import { runSetup } from "./services/setup/setup-service.js";
|
|
40
|
+
import { generateAgentsMd, generateClaudeMcpConfig, generateContractsrcConfig, generateCursorMcpConfig, generateCursorRules, generateVscodeSettings, getClaudeDesktopConfigPath } from "./services/setup/config-generators.js";
|
|
41
|
+
import { deepMergeOverwrite, deepMergePreserve, formatJson, safeParseJson } from "./services/setup/file-merger.js";
|
|
42
|
+
import { ALL_CHECK_CATEGORIES, CHECK_CATEGORY_LABELS, CheckCategory, CheckContext, CheckResult, CheckStatus, DoctorOptions, DoctorPromptCallbacks, DoctorResult, FixAction, FixResult } from "./services/doctor/types.js";
|
|
43
|
+
import { formatCheckResult, formatDoctorSummary, runDoctor } from "./services/doctor/doctor-service.js";
|
|
44
|
+
import { ALL_CI_CHECK_CATEGORIES, CICheckCategory, CICheckCategorySummary, CICheckOptions, CICheckResult, CIFormatOptions, CIIssue, CIIssueSeverity, CIOutputFormat, CI_CHECK_CATEGORY_LABELS } from "./services/ci-check/types.js";
|
|
45
|
+
import { runCIChecks } from "./services/ci-check/ci-check-service.js";
|
|
46
|
+
import { AgentAdapter, AgentGuideConfig, FormatOptions, GuideOptions, GuideResult } from "./services/agent-guide/types.js";
|
|
47
|
+
import { AgentGuideService, agentGuideService, createAgentGuideService } from "./services/agent-guide/agent-guide-service.js";
|
|
48
|
+
import { ClaudeCodeAdapter, claudeCodeAdapter } from "./services/agent-guide/adapters/claude-code.js";
|
|
49
|
+
import { CursorCLIAdapter, cursorCLIAdapter } from "./services/agent-guide/adapters/cursor-cli.js";
|
|
50
|
+
import { GenericMCPAdapter, genericMCPAdapter } from "./services/agent-guide/adapters/generic-mcp.js";
|
|
51
|
+
import { agentAdapters, getAgentAdapter, listAgentTypes } from "./services/agent-guide/adapters/index.js";
|
|
52
|
+
import { AIReviewResult, BehaviorCheck, FieldMapping, FieldMatchType, IntentAlignment, SemanticVerificationResult, StructureCheck, VerifyConfig, VerifyInput, VerifyOptions, VerifyResult } from "./services/verify/types.js";
|
|
53
|
+
import { VerifyService, createVerifyService, verifyService } from "./services/verify/verify-service.js";
|
|
54
|
+
import { verifyStructure } from "./services/verify/structure-verifier.js";
|
|
55
|
+
import { verifyBehavior } from "./services/verify/behavior-verifier.js";
|
|
56
|
+
import { createQuickAIReview, verifySemanticFields, verifyWithAI, verifyWithAIEnhanced } from "./services/verify/ai-verifier.js";
|
|
57
|
+
import { DiscoveryOptions, ImplementationSource, ImplementationStatus, ResolvedImplementation, SpecImplementationResult, SpecReferenceMatch } from "./services/implementation/types.js";
|
|
58
|
+
import { discoverAllImplementations, discoverImplementationsForSpec, extractSpecReferences, inferImplementationType } from "./services/implementation/discovery.js";
|
|
59
|
+
import { ResolverOptions, getImplementationSummary, resolveAllImplementations, resolveImplementations } from "./services/implementation/resolver.js";
|
|
60
|
+
import { CacheEntryMeta, CacheKeyString, CacheLookupResult, CacheMissReason, CacheStats, CacheStorageAdapter, DEFAULT_CACHE_CONFIG, VerificationCacheConfig, VerificationCacheEntry, VerificationCacheKey } from "./services/verification-cache/types.js";
|
|
61
|
+
import { VerificationCacheService, cacheKeyToString, computeContentHash, createVerificationCacheService, stringToCacheKey } from "./services/verification-cache/cache-service.js";
|
|
62
|
+
import { InMemoryCacheStorage, createInMemoryCacheStorage } from "./services/verification-cache/adapters/in-memory.js";
|
|
63
|
+
import { FileSystemCacheStorage, createFileSystemCacheStorage } from "./services/verification-cache/adapters/filesystem.js";
|
|
64
|
+
import { KeyValueStore, WorkspaceStateCacheStorage, createWorkspaceStateCacheStorage } from "./services/verification-cache/adapters/workspace-state.js";
|
|
65
|
+
import { PackageInstallResult, QuickstartDependency, QuickstartMode, QuickstartOptions, QuickstartPromptCallbacks, QuickstartResult } from "./services/quickstart/types.js";
|
|
66
|
+
import { FULL_DEPENDENCIES, MINIMAL_DEPENDENCIES, getDependencies, getDevDependencies, getProductionDependencies } from "./services/quickstart/dependencies.js";
|
|
67
|
+
import { formatQuickstartPreview, isContractSpecInstalled, runQuickstart } from "./services/quickstart/quickstart-service.js";
|
|
68
|
+
import { index_d_exports as index_d_exports$2 } from "./services/impact/index.js";
|
|
69
|
+
import "./services/index.js";
|
|
70
|
+
import { index_d_exports as index_d_exports$1 } from "./formatters/index.js";
|
|
71
|
+
import { index_d_exports as index_d_exports$3 } from "./templates/index.js";
|
|
72
|
+
import { index_d_exports } from "./ai/index.js";
|
|
73
|
+
export * from "@lssm/module.contractspec-workspace";
|
|
74
|
+
|
|
75
|
+
//#region src/index.d.ts
|
|
76
|
+
declare namespace index_d_exports$4 {
|
|
77
|
+
export { AIReviewResult, ALL_CHECK_CATEGORIES, ALL_CI_CHECK_CATEGORIES, ALL_SETUP_TARGETS, AgentAdapter, AgentGuideConfig, AgentGuideService, AgentMode, AiAdapter, AiGenerateOptions, AiGenerateResult, AiGenerateStructuredOptions, AiProvider, AiValidationResult, AnalyzeDepsOptions, AnalyzeDepsResult, BehaviorCheck, BuildSpecOptions, BuildSpecResult, BuildTarget, BuildTargetResult, CHECK_CATEGORY_LABELS, CICheckCategory, CICheckCategorySummary, CICheckOptions, CICheckResult, CIFormatOptions, CIIssue, CIIssueSeverity, CIOutputFormat, CI_CHECK_CATEGORY_LABELS, CacheEntryMeta, CacheKeyString, CacheLookupResult, CacheMissReason, CacheStats, CacheStorageAdapter, CheckCategory, CheckContext, CheckResult, CheckStatus, ClaudeCodeAdapter, CleanOptions, CleanResult, CompareSpecsOptions, CompareSpecsResult, Config, CoverageByType, CreateAdaptersOptions, CreateRegeneratorOptions, CursorCLIAdapter, DEFAULT_CACHE_CONFIG, DiagramOptions, DiagramType, DiscoverOptions, DiscoveryOptions, DoctorOptions, DoctorPromptCallbacks, DoctorResult, ExtendedWorkspaceInfo, FULL_DEPENDENCIES, FieldMapping, FieldMatchType, FileStat, FileSystemCacheStorage, FixAction, FixResult, FormatOptions, FsAdapter, GenericMCPAdapter, GitAdapter, GitCleanOptions, GuideOptions, GuideResult, ImplementationSource, ImplementationStatus, InMemoryCacheStorage, IntegrityAnalysisOptions, IntegrityAnalysisResult, IntegrityIssue, IntentAlignment, KeyValueStore, OpenApiExportOptions as LegacyOpenApiExportOptions, OpenApiExportResult as LegacyOpenApiExportResult, ListSpecsOptions, LogLevel, LoggerAdapter, MINIMAL_DEPENDENCIES, MetaRepoInfo, MonorepoConfig, OpenApiExportServiceOptions, OpenApiExportServiceResult, OpenApiImportServiceOptions, OpenApiImportServiceResult, OpenApiSyncServiceOptions, OpenApiSyncServiceResult, OpenApiValidateServiceOptions, OpenApiValidateServiceResult, PackageInstallResult, PackageManager, ProgressReporter, ProgressUpdate, QuickstartDependency, QuickstartMode, QuickstartOptions, QuickstartPromptCallbacks, QuickstartResult, RegistryClient, RegistryClientOptions, RepositoryType, ResolvedImplementation, ResolverOptions, RunTestsResult, SETUP_TARGET_LABELS, SemanticVerificationResult, SetupFileResult, SetupOptions, SetupPromptCallbacks, SetupResult, SetupScope, SetupTarget, SpecImplementationResult, SpecInventory, SpecLocation, SpecReferenceMatch, StructureCheck, SubmoduleInfo, SyncBuildFn, SyncSpecsOptions, SyncSpecsResult, SyncSpecsRunResult, SyncValidateFn, TestRunResult, ValidateImplementationOptions, ValidateImplementationResult, ValidateSpecOptions, ValidateSpecResult, VerificationCacheConfig, VerificationCacheEntry, VerificationCacheKey, VerificationCacheService, VerifyConfig, VerifyInput, VerifyOptions, VerifyResult, VerifyService, WatchBuildFn, WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, WatchSpecsOptions, WatchValidateFn, Watcher, WatcherAdapter, WorkspaceAdapters, WorkspaceInfo, WorkspaceStateCacheStorage, addToRegistry, agentAdapters, agentGuideService, index_d_exports as ai, analyzeDeps, analyzeIntegrity, buildSpec, cacheKeyToString, claudeCodeAdapter, cleanArtifacts, compareSpecs, computeContentHash, createAgentGuideService, createConsoleLoggerAdapter, createFileSystemCacheStorage, createInMemoryCacheStorage, createNodeAdapters, createNodeAiAdapter, createNodeFsAdapter, createNodeGitAdapter, createNodeWatcherAdapter, createNoopLoggerAdapter, createQuickAIReview, createRegeneratorService, createVerificationCacheService, createVerifyService, createWorkspaceStateCacheStorage, cursorCLIAdapter, deepMergeOverwrite, deepMergePreserve, detectPackageManager, detectRepositoryType, discoverAllImplementations, discoverImplementationsForSpec, exportGraphAsDot, exportOpenApi, extractSpecReferences, filterIssuesBySeverity, filterIssuesByType, findAllConfigFiles, findMetaRepoRoot, findPackageRoot, findWorkspaceRoot, formatCheckResult, formatDoctorSummary, formatJson, formatQuickstartPreview, formatWorkspaceInfo, index_d_exports$1 as formatters, generateAgentsMd, generateClaudeMcpConfig, generateContractsrcConfig, generateCursorMcpConfig, generateCursorRules, generateMermaidDiagram, generateVscodeSettings, genericMCPAdapter, getAgentAdapter, getAllSpecs, getApiKey, getClaudeDesktopConfigPath, getContractNode, getDependencies, getDevDependencies, getExecCommand, getExtendedWorkspaceInfo, getGraphStats, getImplementationSummary, getInstallCommand, getMetaRepoInfo, getPackageName, getProductionDependencies, getRunCommand, getWorkspaceInfo, getWorkspacePackages, groupSpecsByType, index_d_exports$2 as impact, importFromOpenApiService, inferImplementationType, isContractSpecInstalled, isMonorepo, listAgentTypes, listFromRegistry, listSpecs, loadWorkspaceConfig, mergeMonorepoConfigs, mergeWorkspaceConfig, parseGitModules, resolveAllImplementations, resolveImplementations, resolveRegistryUrl, runCIChecks, runDoctor, runQuickstart, runSetup, runTests, safeParseJson, searchRegistry, stringToCacheKey, syncSpecs, syncWithOpenApiService, index_d_exports$3 as templates, validateAgainstOpenApiService, validateImplementationFiles, validateSpec, validateSpecs, verifyBehavior, verifySemanticFields, verifyService, verifyStructure, verifyWithAI, verifyWithAIEnhanced, watchSpecs };
|
|
78
|
+
}
|
|
79
|
+
import * as import__lssm_module_contractspec_workspace from "@lssm/module.contractspec-workspace";
|
|
80
|
+
//#endregion
|
|
81
|
+
export { AIReviewResult, ALL_CHECK_CATEGORIES, ALL_CI_CHECK_CATEGORIES, ALL_SETUP_TARGETS, AgentAdapter, AgentGuideConfig, AgentGuideService, type AgentMode, AiAdapter, AiGenerateOptions, AiGenerateResult, AiGenerateStructuredOptions, type AiProvider, AiValidationResult, AnalyzeDepsOptions, AnalyzeDepsResult, BehaviorCheck, BuildSpecOptions, BuildSpecResult, BuildTarget, BuildTargetResult, CHECK_CATEGORY_LABELS, CICheckCategory, CICheckCategorySummary, CICheckOptions, CICheckResult, CIFormatOptions, CIIssue, CIIssueSeverity, CIOutputFormat, CI_CHECK_CATEGORY_LABELS, CacheEntryMeta, CacheKeyString, CacheLookupResult, CacheMissReason, CacheStats, CacheStorageAdapter, CheckCategory, CheckContext, CheckResult, CheckStatus, ClaudeCodeAdapter, CleanOptions, CleanResult, CompareSpecsOptions, CompareSpecsResult, type Config, CoverageByType, CreateAdaptersOptions, CreateRegeneratorOptions, CursorCLIAdapter, DEFAULT_CACHE_CONFIG, DiagramOptions, DiagramType, DiscoverOptions, DiscoveryOptions, DoctorOptions, DoctorPromptCallbacks, DoctorResult, ExtendedWorkspaceInfo, FULL_DEPENDENCIES, FieldMapping, FieldMatchType, FileStat, FileSystemCacheStorage, FixAction, FixResult, FormatOptions, FsAdapter, GenericMCPAdapter, GitAdapter, GitCleanOptions, GuideOptions, GuideResult, ImplementationSource, ImplementationStatus, InMemoryCacheStorage, IntegrityAnalysisOptions, IntegrityAnalysisResult, IntegrityIssue, IntentAlignment, KeyValueStore, OpenApiExportOptions as LegacyOpenApiExportOptions, OpenApiExportResult as LegacyOpenApiExportResult, ListSpecsOptions, LogLevel, LoggerAdapter, MINIMAL_DEPENDENCIES, MetaRepoInfo, MonorepoConfig, OpenApiExportServiceOptions, OpenApiExportServiceResult, OpenApiImportServiceOptions, OpenApiImportServiceResult, OpenApiSyncServiceOptions, OpenApiSyncServiceResult, OpenApiValidateServiceOptions, OpenApiValidateServiceResult, PackageInstallResult, PackageManager, ProgressReporter, ProgressUpdate, QuickstartDependency, QuickstartMode, QuickstartOptions, QuickstartPromptCallbacks, QuickstartResult, RegistryClient, RegistryClientOptions, RepositoryType, ResolvedImplementation, ResolverOptions, RunTestsResult, SETUP_TARGET_LABELS, SemanticVerificationResult, SetupFileResult, SetupOptions, SetupPromptCallbacks, SetupResult, SetupScope, SetupTarget, SpecImplementationResult, SpecInventory, SpecLocation, SpecReferenceMatch, StructureCheck, SubmoduleInfo, SyncBuildFn, SyncSpecsOptions, SyncSpecsResult, SyncSpecsRunResult, SyncValidateFn, TestRunResult, ValidateImplementationOptions, ValidateImplementationResult, ValidateSpecOptions, ValidateSpecResult, VerificationCacheConfig, VerificationCacheEntry, VerificationCacheKey, VerificationCacheService, VerifyConfig, VerifyInput, VerifyOptions, VerifyResult, VerifyService, WatchBuildFn, WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, WatchSpecsOptions, WatchValidateFn, Watcher, WatcherAdapter, WorkspaceAdapters, WorkspaceInfo, WorkspaceStateCacheStorage, addToRegistry, agentAdapters, agentGuideService, index_d_exports as ai, analyzeDeps, analyzeIntegrity, buildSpec, cacheKeyToString, claudeCodeAdapter, cleanArtifacts, compareSpecs, computeContentHash, createAgentGuideService, createConsoleLoggerAdapter, createFileSystemCacheStorage, createInMemoryCacheStorage, createNodeAdapters, createNodeAiAdapter, createNodeFsAdapter, createNodeGitAdapter, createNodeWatcherAdapter, createNoopLoggerAdapter, createQuickAIReview, createRegeneratorService, createVerificationCacheService, createVerifyService, createWorkspaceStateCacheStorage, cursorCLIAdapter, deepMergeOverwrite, deepMergePreserve, detectPackageManager, detectRepositoryType, discoverAllImplementations, discoverImplementationsForSpec, exportGraphAsDot, exportOpenApi, extractSpecReferences, filterIssuesBySeverity, filterIssuesByType, findAllConfigFiles, findMetaRepoRoot, findPackageRoot, findWorkspaceRoot, formatCheckResult, formatDoctorSummary, formatJson, formatQuickstartPreview, formatWorkspaceInfo, index_d_exports$1 as formatters, generateAgentsMd, generateClaudeMcpConfig, generateContractsrcConfig, generateCursorMcpConfig, generateCursorRules, generateMermaidDiagram, generateVscodeSettings, genericMCPAdapter, getAgentAdapter, getAllSpecs, getApiKey, getClaudeDesktopConfigPath, getContractNode, getDependencies, getDevDependencies, getExecCommand, getExtendedWorkspaceInfo, getGraphStats, getImplementationSummary, getInstallCommand, getMetaRepoInfo, getPackageName, getProductionDependencies, getRunCommand, getWorkspaceInfo, getWorkspacePackages, groupSpecsByType, index_d_exports$2 as impact, importFromOpenApiService, index_d_exports$4 as index_d_exports, inferImplementationType, isContractSpecInstalled, isMonorepo, listAgentTypes, listFromRegistry, listSpecs, loadWorkspaceConfig, mergeMonorepoConfigs, mergeWorkspaceConfig, parseGitModules, resolveAllImplementations, resolveImplementations, resolveRegistryUrl, runCIChecks, runDoctor, runQuickstart, runSetup, runTests, safeParseJson, searchRegistry, stringToCacheKey, syncSpecs, syncWithOpenApiService, index_d_exports$3 as templates, validateAgainstOpenApiService, validateImplementationFiles, validateSpec, validateSpecs, verifyBehavior, verifySemanticFields, verifyService, verifyStructure, verifyWithAI, verifyWithAIEnhanced, watchSpecs };
|
|
82
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":""}
|