@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
|
@@ -1,8 +1,22 @@
|
|
|
1
|
-
import{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { __exportAll } from "../../_virtual/rolldown_runtime.js";
|
|
2
|
+
|
|
3
|
+
//#region src/ai/prompts/spec-creation.ts
|
|
4
|
+
var spec_creation_exports = /* @__PURE__ */ __exportAll({
|
|
5
|
+
addExampleContext: () => addExampleContext,
|
|
6
|
+
buildEventSpecPrompt: () => buildEventSpecPrompt,
|
|
7
|
+
buildOperationSpecPrompt: () => buildOperationSpecPrompt,
|
|
8
|
+
buildPresentationSpecPrompt: () => buildPresentationSpecPrompt,
|
|
9
|
+
getSystemPrompt: () => getSystemPrompt
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* Build prompt for creating operation spec from description
|
|
13
|
+
*/
|
|
14
|
+
function buildOperationSpecPrompt(description, kind) {
|
|
15
|
+
return `You are a senior software architect creating a contract specification for an operation.
|
|
16
|
+
|
|
17
|
+
The operation is a ${kind} (${kind === "command" ? "changes state, has side effects" : "read-only, idempotent"}).
|
|
18
|
+
|
|
19
|
+
User description: ${description}
|
|
6
20
|
|
|
7
21
|
Create a complete contract specification following these guidelines:
|
|
8
22
|
|
|
@@ -16,9 +30,15 @@ Create a complete contract specification following these guidelines:
|
|
|
16
30
|
8. **Feature Flags**: Any flags that gate this operation
|
|
17
31
|
9. **Side Effects**: What events might be emitted, analytics to track
|
|
18
32
|
|
|
19
|
-
Respond with a structured spec
|
|
33
|
+
Respond with a structured spec.`;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build prompt for creating event spec from description
|
|
37
|
+
*/
|
|
38
|
+
function buildEventSpecPrompt(description) {
|
|
39
|
+
return `You are a senior software architect creating an event specification.
|
|
20
40
|
|
|
21
|
-
User description: ${
|
|
41
|
+
User description: ${description}
|
|
22
42
|
|
|
23
43
|
Create a complete event specification following these guidelines:
|
|
24
44
|
|
|
@@ -30,11 +50,21 @@ Create a complete event specification following these guidelines:
|
|
|
30
50
|
|
|
31
51
|
Events represent things that have already happened and should use past tense.
|
|
32
52
|
|
|
33
|
-
Respond with a structured spec
|
|
53
|
+
Respond with a structured spec.`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build prompt for creating presentation spec from description
|
|
57
|
+
*/
|
|
58
|
+
function buildPresentationSpecPrompt(description, kind) {
|
|
59
|
+
return `You are a senior software architect creating a presentation specification.
|
|
34
60
|
|
|
35
|
-
This is a ${
|
|
61
|
+
This is a ${kind} presentation - ${{
|
|
62
|
+
web_component: "a React component with props schema",
|
|
63
|
+
markdown: "markdown/MDX documentation or guide",
|
|
64
|
+
data: "structured data export (JSON/XML)"
|
|
65
|
+
}[kind]}.
|
|
36
66
|
|
|
37
|
-
User description: ${
|
|
67
|
+
User description: ${description}
|
|
38
68
|
|
|
39
69
|
Create a complete presentation specification following these guidelines:
|
|
40
70
|
|
|
@@ -42,13 +72,15 @@ Create a complete presentation specification following these guidelines:
|
|
|
42
72
|
2. **Version**: Start at 1
|
|
43
73
|
3. **Description**: What this presentation shows/provides
|
|
44
74
|
4. **Kind-specific details**:
|
|
45
|
-
${
|
|
46
|
-
- Props structure
|
|
47
|
-
- Analytics events to track`:t===`markdown`?`- Content or resource URI
|
|
48
|
-
- Target audience`:`- MIME type (e.g., application/json)
|
|
49
|
-
- Data structure description`}
|
|
75
|
+
${kind === "web_component" ? "- Component key (symbolic, resolved by host app)\n - Props structure\n - Analytics events to track" : kind === "markdown" ? "- Content or resource URI\n - Target audience" : "- MIME type (e.g., application/json)\n - Data structure description"}
|
|
50
76
|
|
|
51
|
-
Respond with a structured spec
|
|
77
|
+
Respond with a structured spec.`;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build system prompt for all spec generation
|
|
81
|
+
*/
|
|
82
|
+
function getSystemPrompt() {
|
|
83
|
+
return `You are an expert software architect specializing in API design and contract-driven development.
|
|
52
84
|
|
|
53
85
|
You create clear, well-documented specifications that serve as the single source of truth for operations, events, and presentations.
|
|
54
86
|
|
|
@@ -58,12 +90,22 @@ Your specs are:
|
|
|
58
90
|
- Business-oriented (capturing the "why" not just "what")
|
|
59
91
|
- Designed for both humans and AI agents to understand
|
|
60
92
|
|
|
61
|
-
Always use proper dot notation for names and ensure all metadata is meaningful and accurate
|
|
93
|
+
Always use proper dot notation for names and ensure all metadata is meaningful and accurate.`;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create example-based prompt for better results
|
|
97
|
+
*/
|
|
98
|
+
function addExampleContext(basePrompt, examples) {
|
|
99
|
+
if (examples.length === 0) return basePrompt;
|
|
100
|
+
return `${basePrompt}
|
|
62
101
|
|
|
63
102
|
Here are some good examples for reference:
|
|
64
103
|
|
|
65
|
-
${
|
|
104
|
+
${examples.join("\n\n")}
|
|
66
105
|
|
|
67
|
-
|
|
106
|
+
Follow this structure and quality level.`;
|
|
107
|
+
}
|
|
68
108
|
|
|
69
|
-
|
|
109
|
+
//#endregion
|
|
110
|
+
export { buildEventSpecPrompt, buildOperationSpecPrompt, buildPresentationSpecPrompt, getSystemPrompt, spec_creation_exports };
|
|
111
|
+
//# sourceMappingURL=spec-creation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-creation.js","names":[],"sources":["../../../src/ai/prompts/spec-creation.ts"],"sourcesContent":["import type { OpKind, PresentationKind } from '../../types';\n\n/**\n * Build prompt for creating operation spec from description\n */\nexport function buildOperationSpecPrompt(\n description: string,\n kind: OpKind\n): string {\n return `You are a senior software architect creating a contract specification for an operation.\n\nThe operation is a ${kind} (${kind === 'command' ? 'changes state, has side effects' : 'read-only, idempotent'}).\n\nUser description: ${description}\n\nCreate a complete contract specification following these guidelines:\n\n1. **Name**: Use dot notation like \"domain.operationName\" (e.g., \"user.signup\", \"payment.charge\")\n2. **Version**: Start at 1\n3. **Description**: Clear, concise summary (1-2 sentences)\n4. **Goal**: Business purpose - why this operation exists\n5. **Context**: Background, constraints, scope (what it does and doesn't do)\n6. **Input/Output**: Describe the shape (we'll create schemas separately)\n7. **Auth**: Who can call this - anonymous, user, or admin\n8. **Feature Flags**: Any flags that gate this operation\n9. **Side Effects**: What events might be emitted, analytics to track\n\nRespond with a structured spec.`;\n}\n\n/**\n * Build prompt for creating event spec from description\n */\nexport function buildEventSpecPrompt(description: string): string {\n return `You are a senior software architect creating an event specification.\n\nUser description: ${description}\n\nCreate a complete event specification following these guidelines:\n\n1. **Name**: Use dot notation like \"domain.event_name\" (e.g., \"user.signup_completed\", \"payment.charged\")\n2. **Version**: Start at 1\n3. **Description**: Clear description of when this event is emitted\n4. **Payload**: Describe what data the event carries\n5. **PII Fields**: List any personally identifiable information fields (e.g., [\"email\", \"name\"])\n\nEvents represent things that have already happened and should use past tense.\n\nRespond with a structured spec.`;\n}\n\n/**\n * Build prompt for creating presentation spec from description\n */\nexport function buildPresentationSpecPrompt(\n description: string,\n kind: PresentationKind\n): string {\n const kindDescriptions = {\n web_component: 'a React component with props schema',\n markdown: 'markdown/MDX documentation or guide',\n data: 'structured data export (JSON/XML)',\n };\n\n return `You are a senior software architect creating a presentation specification.\n\nThis is a ${kind} presentation - ${kindDescriptions[kind]}.\n\nUser description: ${description}\n\nCreate a complete presentation specification following these guidelines:\n\n1. **Name**: Use dot notation like \"domain.presentation_name\" (e.g., \"user.profile_card\", \"docs.api_guide\")\n2. **Version**: Start at 1\n3. **Description**: What this presentation shows/provides\n4. **Kind-specific details**:\n ${\n kind === 'web_component'\n ? '- Component key (symbolic, resolved by host app)\\n - Props structure\\n - Analytics events to track'\n : kind === 'markdown'\n ? '- Content or resource URI\\n - Target audience'\n : '- MIME type (e.g., application/json)\\n - Data structure description'\n }\n\nRespond with a structured spec.`;\n}\n\n/**\n * Build system prompt for all spec generation\n */\nexport function getSystemPrompt(): string {\n return `You are an expert software architect specializing in API design and contract-driven development.\n\nYou create clear, well-documented specifications that serve as the single source of truth for operations, events, and presentations.\n\nYour specs are:\n- Precise and unambiguous\n- Following TypeScript conventions\n- Business-oriented (capturing the \"why\" not just \"what\")\n- Designed for both humans and AI agents to understand\n\nAlways use proper dot notation for names and ensure all metadata is meaningful and accurate.`;\n}\n\n/**\n * Create example-based prompt for better results\n */\nexport function addExampleContext(\n basePrompt: string,\n examples: string[]\n): string {\n if (examples.length === 0) return basePrompt;\n\n return `${basePrompt}\n\nHere are some good examples for reference:\n\n${examples.join('\\n\\n')}\n\nFollow this structure and quality level.`;\n}\n"],"mappings":";;;;;;;;;;;;;AAKA,SAAgB,yBACd,aACA,MACQ;AACR,QAAO;;qBAEY,KAAK,IAAI,SAAS,YAAY,oCAAoC,wBAAwB;;oBAE3F,YAAY;;;;;;;;;;;;;;;;;;;AAoBhC,SAAgB,qBAAqB,aAA6B;AAChE,QAAO;;oBAEW,YAAY;;;;;;;;;;;;;;;;;AAkBhC,SAAgB,4BACd,aACA,MACQ;AAOR,QAAO;;YAEG,KAAK,kBARU;EACvB,eAAe;EACf,UAAU;EACV,MAAM;EACP,CAIiD,MAAM;;oBAEtC,YAAY;;;;;;;;KAS3B,SAAS,kBACL,2GACA,SAAS,aACP,oDACA,wEACP;;;;;;;AAQJ,SAAgB,kBAA0B;AACxC,QAAO;;;;;;;;;;;;;;;AAgBT,SAAgB,kBACd,YACA,UACQ;AACR,KAAI,SAAS,WAAW,EAAG,QAAO;AAElC,QAAO,GAAG,WAAW;;;;EAIrB,SAAS,KAAK,OAAO,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Config } from "../types/config.js";
|
|
2
|
+
import { LanguageModel } from "ai";
|
|
3
|
+
|
|
4
|
+
//#region src/ai/providers.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Initialize AI provider based on configuration
|
|
8
|
+
*
|
|
9
|
+
* @deprecated Use createProvider() from @lssm/lib.ai-providers instead
|
|
10
|
+
*/
|
|
11
|
+
declare function getAIProvider(config: Config): LanguageModel;
|
|
12
|
+
/**
|
|
13
|
+
* Validate that the provider is accessible and working
|
|
14
|
+
*
|
|
15
|
+
* @deprecated Use validateProvider() from @lssm/lib.ai-providers instead
|
|
16
|
+
*/
|
|
17
|
+
declare function validateProvider(config: Config): Promise<{
|
|
18
|
+
success: boolean;
|
|
19
|
+
error?: string;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Get recommended models for each provider
|
|
23
|
+
*
|
|
24
|
+
* @deprecated Use getModelsForProvider() from @lssm/lib.ai-providers instead
|
|
25
|
+
*/
|
|
26
|
+
declare function getRecommendedModels(provider: Config['aiProvider']): string[];
|
|
27
|
+
//#endregion
|
|
28
|
+
export { getAIProvider, getRecommendedModels, validateProvider };
|
|
29
|
+
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","names":[],"sources":["../../src/ai/providers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;iBAmBgB,aAAA,SAAsB,SAAS;;;;;;iBAczB,gBAAA,SACZ,SACP;;;;;;;;;iBAea,oBAAA,WAA+B"}
|
package/dist/ai/providers.js
CHANGED
|
@@ -1 +1,39 @@
|
|
|
1
|
-
import{getAIProvider
|
|
1
|
+
import { getAIProvider, getRecommendedModels, validateLegacyProvider } from "@lssm/lib.ai-providers";
|
|
2
|
+
|
|
3
|
+
//#region src/ai/providers.ts
|
|
4
|
+
/**
|
|
5
|
+
* Initialize AI provider based on configuration
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use createProvider() from @lssm/lib.ai-providers instead
|
|
8
|
+
*/
|
|
9
|
+
function getAIProvider$1(config) {
|
|
10
|
+
return getAIProvider({
|
|
11
|
+
aiProvider: config.aiProvider,
|
|
12
|
+
aiModel: config.aiModel || void 0,
|
|
13
|
+
customEndpoint: config.customEndpoint || void 0
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validate that the provider is accessible and working
|
|
18
|
+
*
|
|
19
|
+
* @deprecated Use validateProvider() from @lssm/lib.ai-providers instead
|
|
20
|
+
*/
|
|
21
|
+
async function validateProvider(config) {
|
|
22
|
+
return await validateLegacyProvider({
|
|
23
|
+
aiProvider: config.aiProvider,
|
|
24
|
+
aiModel: config.aiModel || void 0,
|
|
25
|
+
customEndpoint: config.customEndpoint || void 0
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get recommended models for each provider
|
|
30
|
+
*
|
|
31
|
+
* @deprecated Use getModelsForProvider() from @lssm/lib.ai-providers instead
|
|
32
|
+
*/
|
|
33
|
+
function getRecommendedModels$1(provider) {
|
|
34
|
+
return getRecommendedModels(provider);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { getAIProvider$1 as getAIProvider, getRecommendedModels$1 as getRecommendedModels, validateProvider };
|
|
39
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","names":["getAIProvider","getProviderFromLib","validateProviderFromLib","getRecommendedModels","getModelsFromLib"],"sources":["../../src/ai/providers.ts"],"sourcesContent":["/**\n * AI Provider utilities for ContractSpec workspace.\n *\n * Re-exports from @lssm/lib.ai-providers with workspace-specific additions.\n */\nimport type { LanguageModel } from 'ai';\nimport {\n getAIProvider as getProviderFromLib,\n validateLegacyProvider as validateProviderFromLib,\n getRecommendedModels as getModelsFromLib,\n type LegacyConfig,\n} from '@lssm/lib.ai-providers';\nimport type { Config } from '../types/config';\n\n/**\n * Initialize AI provider based on configuration\n *\n * @deprecated Use createProvider() from @lssm/lib.ai-providers instead\n */\nexport function getAIProvider(config: Config): LanguageModel {\n const legacyConfig: LegacyConfig = {\n aiProvider: config.aiProvider,\n aiModel: config.aiModel || undefined,\n customEndpoint: config.customEndpoint || undefined,\n };\n return getProviderFromLib(legacyConfig);\n}\n\n/**\n * Validate that the provider is accessible and working\n *\n * @deprecated Use validateProvider() from @lssm/lib.ai-providers instead\n */\nexport async function validateProvider(\n config: Config\n): Promise<{ success: boolean; error?: string }> {\n const legacyConfig: LegacyConfig = {\n aiProvider: config.aiProvider,\n aiModel: config.aiModel || undefined,\n customEndpoint: config.customEndpoint || undefined,\n };\n const result = await validateProviderFromLib(legacyConfig);\n return result;\n}\n\n/**\n * Get recommended models for each provider\n *\n * @deprecated Use getModelsForProvider() from @lssm/lib.ai-providers instead\n */\nexport function getRecommendedModels(provider: Config['aiProvider']): string[] {\n return getModelsFromLib(provider);\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgBA,gBAAc,QAA+B;AAM3D,QAAOC,cAL4B;EACjC,YAAY,OAAO;EACnB,SAAS,OAAO,WAAW;EAC3B,gBAAgB,OAAO,kBAAkB;EAC1C,CACsC;;;;;;;AAQzC,eAAsB,iBACpB,QAC+C;AAO/C,QADe,MAAMC,uBALc;EACjC,YAAY,OAAO;EACnB,SAAS,OAAO,WAAW;EAC3B,gBAAgB,OAAO,kBAAkB;EAC1C,CACyD;;;;;;;AAS5D,SAAgBC,uBAAqB,UAA0C;AAC7E,QAAOC,qBAAiB,SAAS"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SarifFormatOptions, SarifOutput, formatAsSarif, sarifToJson } from "./sarif.js";
|
|
2
|
+
import { JsonCompactOutput, JsonFormatOptions, JsonFullOutput, JsonIssueCompact, formatAsJson, formatAsJsonCompact, formatAsJsonFull } from "./json.js";
|
|
3
|
+
import { TextFormatOptions, TextLine, formatAsText, formatAsTextLines } from "./text.js";
|
|
4
|
+
|
|
5
|
+
//#region src/formatters/index.d.ts
|
|
6
|
+
declare namespace index_d_exports {
|
|
7
|
+
export { JsonCompactOutput, JsonFormatOptions, JsonFullOutput, JsonIssueCompact, SarifFormatOptions, SarifOutput, TextFormatOptions, TextLine, formatAsJson, formatAsJsonCompact, formatAsJsonFull, formatAsSarif, formatAsText, formatAsTextLines, sarifToJson };
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { index_d_exports };
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/formatters/index.ts"],"sourcesContent":[],"mappings":""}
|
package/dist/formatters/index.js
CHANGED
|
@@ -1 +1,19 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { __exportAll } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { formatAsSarif, sarifToJson } from "./sarif.js";
|
|
3
|
+
import { formatAsJson, formatAsJsonCompact, formatAsJsonFull } from "./json.js";
|
|
4
|
+
import { formatAsText, formatAsTextLines } from "./text.js";
|
|
5
|
+
|
|
6
|
+
//#region src/formatters/index.ts
|
|
7
|
+
var formatters_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
formatAsJson: () => formatAsJson,
|
|
9
|
+
formatAsJsonCompact: () => formatAsJsonCompact,
|
|
10
|
+
formatAsJsonFull: () => formatAsJsonFull,
|
|
11
|
+
formatAsSarif: () => formatAsSarif,
|
|
12
|
+
formatAsText: () => formatAsText,
|
|
13
|
+
formatAsTextLines: () => formatAsTextLines,
|
|
14
|
+
sarifToJson: () => sarifToJson
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { formatters_exports };
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/formatters/index.ts"],"sourcesContent":["/**\n * Output formatters for CI check results.\n */\n\nexport * from './sarif';\nexport * from './json';\nexport * from './text';\n"],"mappings":""}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { CICheckResult } from "../services/ci-check/types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/formatters/json.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Options for JSON formatting.
|
|
7
|
+
*/
|
|
8
|
+
interface JsonFormatOptions {
|
|
9
|
+
/** Pretty print with indentation. */
|
|
10
|
+
pretty?: boolean;
|
|
11
|
+
/** Include full issue details. */
|
|
12
|
+
includeDetails?: boolean;
|
|
13
|
+
/** Include category summaries. */
|
|
14
|
+
includeSummaries?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Compact JSON output structure.
|
|
18
|
+
*/
|
|
19
|
+
interface JsonCompactOutput {
|
|
20
|
+
success: boolean;
|
|
21
|
+
errors: number;
|
|
22
|
+
warnings: number;
|
|
23
|
+
duration: number;
|
|
24
|
+
timestamp: string;
|
|
25
|
+
commit?: string;
|
|
26
|
+
branch?: string;
|
|
27
|
+
issues: JsonIssueCompact[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Compact issue representation.
|
|
31
|
+
*/
|
|
32
|
+
interface JsonIssueCompact {
|
|
33
|
+
rule: string;
|
|
34
|
+
severity: string;
|
|
35
|
+
message: string;
|
|
36
|
+
file?: string;
|
|
37
|
+
line?: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Full JSON output structure.
|
|
41
|
+
*/
|
|
42
|
+
interface JsonFullOutput {
|
|
43
|
+
success: boolean;
|
|
44
|
+
summary: {
|
|
45
|
+
totalErrors: number;
|
|
46
|
+
totalWarnings: number;
|
|
47
|
+
totalNotes: number;
|
|
48
|
+
durationMs: number;
|
|
49
|
+
timestamp: string;
|
|
50
|
+
commitSha?: string;
|
|
51
|
+
branch?: string;
|
|
52
|
+
};
|
|
53
|
+
categories: {
|
|
54
|
+
category: string;
|
|
55
|
+
label: string;
|
|
56
|
+
passed: boolean;
|
|
57
|
+
errors: number;
|
|
58
|
+
warnings: number;
|
|
59
|
+
notes: number;
|
|
60
|
+
durationMs: number;
|
|
61
|
+
}[];
|
|
62
|
+
issues: {
|
|
63
|
+
ruleId: string;
|
|
64
|
+
severity: string;
|
|
65
|
+
message: string;
|
|
66
|
+
category: string;
|
|
67
|
+
file?: string;
|
|
68
|
+
line?: number;
|
|
69
|
+
column?: number;
|
|
70
|
+
endLine?: number;
|
|
71
|
+
endColumn?: number;
|
|
72
|
+
context?: Record<string, unknown>;
|
|
73
|
+
}[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Format CI check results as compact JSON.
|
|
77
|
+
*/
|
|
78
|
+
declare function formatAsJsonCompact(result: CICheckResult): JsonCompactOutput;
|
|
79
|
+
/**
|
|
80
|
+
* Format CI check results as full JSON with all details.
|
|
81
|
+
*/
|
|
82
|
+
declare function formatAsJsonFull(result: CICheckResult): JsonFullOutput;
|
|
83
|
+
/**
|
|
84
|
+
* Format CI check results as JSON.
|
|
85
|
+
*/
|
|
86
|
+
declare function formatAsJson(result: CICheckResult, options?: JsonFormatOptions): string;
|
|
87
|
+
//#endregion
|
|
88
|
+
export { JsonCompactOutput, JsonFormatOptions, JsonFullOutput, JsonIssueCompact, formatAsJson, formatAsJsonCompact, formatAsJsonFull };
|
|
89
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","names":[],"sources":["../../src/formatters/json.ts"],"sourcesContent":[],"mappings":";;;;AAsFA;AAsBA;AAuCA;UAvIiB,iBAAA;;;;;;;;;;;UAYA,iBAAA;;;;;;;;UAQP;;;;;UAMO,gBAAA;;;;;;;;;;UAWA,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8BH;;;;;;iBAOE,mBAAA,SAA4B,gBAAgB;;;;iBAsB5C,gBAAA,SAAyB,gBAAgB;;;;iBAuCzC,YAAA,SACN,yBACC"}
|
package/dist/formatters/json.js
CHANGED
|
@@ -1 +1,72 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/formatters/json.ts
|
|
2
|
+
/**
|
|
3
|
+
* Format CI check results as compact JSON.
|
|
4
|
+
*/
|
|
5
|
+
function formatAsJsonCompact(result) {
|
|
6
|
+
return {
|
|
7
|
+
success: result.success,
|
|
8
|
+
errors: result.totalErrors,
|
|
9
|
+
warnings: result.totalWarnings,
|
|
10
|
+
duration: result.durationMs,
|
|
11
|
+
timestamp: result.timestamp,
|
|
12
|
+
commit: result.commitSha,
|
|
13
|
+
branch: result.branch,
|
|
14
|
+
issues: result.issues.map((issue) => ({
|
|
15
|
+
rule: issue.ruleId,
|
|
16
|
+
severity: issue.severity,
|
|
17
|
+
message: issue.message,
|
|
18
|
+
file: issue.file,
|
|
19
|
+
line: issue.line
|
|
20
|
+
}))
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Format CI check results as full JSON with all details.
|
|
25
|
+
*/
|
|
26
|
+
function formatAsJsonFull(result) {
|
|
27
|
+
return {
|
|
28
|
+
success: result.success,
|
|
29
|
+
summary: {
|
|
30
|
+
totalErrors: result.totalErrors,
|
|
31
|
+
totalWarnings: result.totalWarnings,
|
|
32
|
+
totalNotes: result.totalNotes,
|
|
33
|
+
durationMs: result.durationMs,
|
|
34
|
+
timestamp: result.timestamp,
|
|
35
|
+
commitSha: result.commitSha,
|
|
36
|
+
branch: result.branch
|
|
37
|
+
},
|
|
38
|
+
categories: result.categories.map((cat) => ({
|
|
39
|
+
category: cat.category,
|
|
40
|
+
label: cat.label,
|
|
41
|
+
passed: cat.passed,
|
|
42
|
+
errors: cat.errors,
|
|
43
|
+
warnings: cat.warnings,
|
|
44
|
+
notes: cat.notes,
|
|
45
|
+
durationMs: cat.durationMs
|
|
46
|
+
})),
|
|
47
|
+
issues: result.issues.map((issue) => ({
|
|
48
|
+
ruleId: issue.ruleId,
|
|
49
|
+
severity: issue.severity,
|
|
50
|
+
message: issue.message,
|
|
51
|
+
category: issue.category,
|
|
52
|
+
file: issue.file,
|
|
53
|
+
line: issue.line,
|
|
54
|
+
column: issue.column,
|
|
55
|
+
endLine: issue.endLine,
|
|
56
|
+
endColumn: issue.endColumn,
|
|
57
|
+
context: issue.context
|
|
58
|
+
}))
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Format CI check results as JSON.
|
|
63
|
+
*/
|
|
64
|
+
function formatAsJson(result, options = {}) {
|
|
65
|
+
const { pretty = true, includeDetails = true } = options;
|
|
66
|
+
const output = includeDetails ? formatAsJsonFull(result) : formatAsJsonCompact(result);
|
|
67
|
+
return pretty ? JSON.stringify(output, null, 2) : JSON.stringify(output);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
export { formatAsJson, formatAsJsonCompact, formatAsJsonFull };
|
|
72
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","names":[],"sources":["../../src/formatters/json.ts"],"sourcesContent":["/**\n * JSON output formatter.\n *\n * Formats CI check results as machine-readable JSON\n * for parsing in CI/CD scripts and integrations.\n */\n\nimport type { CICheckResult } from '../services/ci-check/types';\n\n/**\n * Options for JSON formatting.\n */\nexport interface JsonFormatOptions {\n /** Pretty print with indentation. */\n pretty?: boolean;\n /** Include full issue details. */\n includeDetails?: boolean;\n /** Include category summaries. */\n includeSummaries?: boolean;\n}\n\n/**\n * Compact JSON output structure.\n */\nexport interface JsonCompactOutput {\n success: boolean;\n errors: number;\n warnings: number;\n duration: number;\n timestamp: string;\n commit?: string;\n branch?: string;\n issues: JsonIssueCompact[];\n}\n\n/**\n * Compact issue representation.\n */\nexport interface JsonIssueCompact {\n rule: string;\n severity: string;\n message: string;\n file?: string;\n line?: number;\n}\n\n/**\n * Full JSON output structure.\n */\nexport interface JsonFullOutput {\n success: boolean;\n summary: {\n totalErrors: number;\n totalWarnings: number;\n totalNotes: number;\n durationMs: number;\n timestamp: string;\n commitSha?: string;\n branch?: string;\n };\n categories: {\n category: string;\n label: string;\n passed: boolean;\n errors: number;\n warnings: number;\n notes: number;\n durationMs: number;\n }[];\n issues: {\n ruleId: string;\n severity: string;\n message: string;\n category: string;\n file?: string;\n line?: number;\n column?: number;\n endLine?: number;\n endColumn?: number;\n context?: Record<string, unknown>;\n }[];\n}\n\n/**\n * Format CI check results as compact JSON.\n */\nexport function formatAsJsonCompact(result: CICheckResult): JsonCompactOutput {\n return {\n success: result.success,\n errors: result.totalErrors,\n warnings: result.totalWarnings,\n duration: result.durationMs,\n timestamp: result.timestamp,\n commit: result.commitSha,\n branch: result.branch,\n issues: result.issues.map((issue) => ({\n rule: issue.ruleId,\n severity: issue.severity,\n message: issue.message,\n file: issue.file,\n line: issue.line,\n })),\n };\n}\n\n/**\n * Format CI check results as full JSON with all details.\n */\nexport function formatAsJsonFull(result: CICheckResult): JsonFullOutput {\n return {\n success: result.success,\n summary: {\n totalErrors: result.totalErrors,\n totalWarnings: result.totalWarnings,\n totalNotes: result.totalNotes,\n durationMs: result.durationMs,\n timestamp: result.timestamp,\n commitSha: result.commitSha,\n branch: result.branch,\n },\n categories: result.categories.map((cat) => ({\n category: cat.category,\n label: cat.label,\n passed: cat.passed,\n errors: cat.errors,\n warnings: cat.warnings,\n notes: cat.notes,\n durationMs: cat.durationMs,\n })),\n issues: result.issues.map((issue) => ({\n ruleId: issue.ruleId,\n severity: issue.severity,\n message: issue.message,\n category: issue.category,\n file: issue.file,\n line: issue.line,\n column: issue.column,\n endLine: issue.endLine,\n endColumn: issue.endColumn,\n context: issue.context,\n })),\n };\n}\n\n/**\n * Format CI check results as JSON.\n */\nexport function formatAsJson(\n result: CICheckResult,\n options: JsonFormatOptions = {}\n): string {\n const { pretty = true, includeDetails = true } = options;\n\n const output = includeDetails\n ? formatAsJsonFull(result)\n : formatAsJsonCompact(result);\n\n return pretty ? JSON.stringify(output, null, 2) : JSON.stringify(output);\n}\n"],"mappings":";;;;AAsFA,SAAgB,oBAAoB,QAA0C;AAC5E,QAAO;EACL,SAAS,OAAO;EAChB,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,UAAU,OAAO;EACjB,WAAW,OAAO;EAClB,QAAQ,OAAO;EACf,QAAQ,OAAO;EACf,QAAQ,OAAO,OAAO,KAAK,WAAW;GACpC,MAAM,MAAM;GACZ,UAAU,MAAM;GAChB,SAAS,MAAM;GACf,MAAM,MAAM;GACZ,MAAM,MAAM;GACb,EAAE;EACJ;;;;;AAMH,SAAgB,iBAAiB,QAAuC;AACtE,QAAO;EACL,SAAS,OAAO;EAChB,SAAS;GACP,aAAa,OAAO;GACpB,eAAe,OAAO;GACtB,YAAY,OAAO;GACnB,YAAY,OAAO;GACnB,WAAW,OAAO;GAClB,WAAW,OAAO;GAClB,QAAQ,OAAO;GAChB;EACD,YAAY,OAAO,WAAW,KAAK,SAAS;GAC1C,UAAU,IAAI;GACd,OAAO,IAAI;GACX,QAAQ,IAAI;GACZ,QAAQ,IAAI;GACZ,UAAU,IAAI;GACd,OAAO,IAAI;GACX,YAAY,IAAI;GACjB,EAAE;EACH,QAAQ,OAAO,OAAO,KAAK,WAAW;GACpC,QAAQ,MAAM;GACd,UAAU,MAAM;GAChB,SAAS,MAAM;GACf,UAAU,MAAM;GAChB,MAAM,MAAM;GACZ,MAAM,MAAM;GACZ,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,WAAW,MAAM;GACjB,SAAS,MAAM;GAChB,EAAE;EACJ;;;;;AAMH,SAAgB,aACd,QACA,UAA6B,EAAE,EACvB;CACR,MAAM,EAAE,SAAS,MAAM,iBAAiB,SAAS;CAEjD,MAAM,SAAS,iBACX,iBAAiB,OAAO,GACxB,oBAAoB,OAAO;AAE/B,QAAO,SAAS,KAAK,UAAU,QAAQ,MAAM,EAAE,GAAG,KAAK,UAAU,OAAO"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { CICheckResult } from "../services/ci-check/types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/formatters/sarif.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* SARIF v2.1.0 output structure.
|
|
7
|
+
*/
|
|
8
|
+
interface SarifOutput {
|
|
9
|
+
$schema: string;
|
|
10
|
+
version: string;
|
|
11
|
+
runs: SarifRun[];
|
|
12
|
+
}
|
|
13
|
+
interface SarifRun {
|
|
14
|
+
tool: {
|
|
15
|
+
driver: {
|
|
16
|
+
name: string;
|
|
17
|
+
version: string;
|
|
18
|
+
informationUri: string;
|
|
19
|
+
rules: SarifRule[];
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
results: SarifResult[];
|
|
23
|
+
invocations: SarifInvocation[];
|
|
24
|
+
versionControlProvenance?: SarifVersionControl[];
|
|
25
|
+
}
|
|
26
|
+
interface SarifRule {
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
shortDescription: {
|
|
30
|
+
text: string;
|
|
31
|
+
};
|
|
32
|
+
fullDescription?: {
|
|
33
|
+
text: string;
|
|
34
|
+
};
|
|
35
|
+
defaultConfiguration: {
|
|
36
|
+
level: 'error' | 'warning' | 'note' | 'none';
|
|
37
|
+
};
|
|
38
|
+
helpUri?: string;
|
|
39
|
+
}
|
|
40
|
+
interface SarifResult {
|
|
41
|
+
ruleId: string;
|
|
42
|
+
ruleIndex: number;
|
|
43
|
+
level: 'error' | 'warning' | 'note' | 'none';
|
|
44
|
+
message: {
|
|
45
|
+
text: string;
|
|
46
|
+
};
|
|
47
|
+
locations?: SarifLocation[];
|
|
48
|
+
partialFingerprints?: Record<string, string>;
|
|
49
|
+
}
|
|
50
|
+
interface SarifLocation {
|
|
51
|
+
physicalLocation: {
|
|
52
|
+
artifactLocation: {
|
|
53
|
+
uri: string;
|
|
54
|
+
uriBaseId?: string;
|
|
55
|
+
};
|
|
56
|
+
region?: {
|
|
57
|
+
startLine?: number;
|
|
58
|
+
startColumn?: number;
|
|
59
|
+
endLine?: number;
|
|
60
|
+
endColumn?: number;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
interface SarifInvocation {
|
|
65
|
+
executionSuccessful: boolean;
|
|
66
|
+
endTimeUtc: string;
|
|
67
|
+
workingDirectory?: {
|
|
68
|
+
uri: string;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
interface SarifVersionControl {
|
|
72
|
+
repositoryUri?: string;
|
|
73
|
+
revisionId?: string;
|
|
74
|
+
branch?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Options for SARIF formatting.
|
|
78
|
+
*/
|
|
79
|
+
interface SarifFormatOptions {
|
|
80
|
+
/** Tool name. */
|
|
81
|
+
toolName?: string;
|
|
82
|
+
/** Tool version. */
|
|
83
|
+
toolVersion?: string;
|
|
84
|
+
/** Tool information URI. */
|
|
85
|
+
toolUri?: string;
|
|
86
|
+
/** Repository URI for version control provenance. */
|
|
87
|
+
repositoryUri?: string;
|
|
88
|
+
/** Working directory. */
|
|
89
|
+
workingDirectory?: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Format CI check results as SARIF.
|
|
93
|
+
*/
|
|
94
|
+
declare function formatAsSarif(result: CICheckResult, options?: SarifFormatOptions): SarifOutput;
|
|
95
|
+
/**
|
|
96
|
+
* Serialize SARIF output to JSON string.
|
|
97
|
+
*/
|
|
98
|
+
declare function sarifToJson(sarif: SarifOutput): string;
|
|
99
|
+
//#endregion
|
|
100
|
+
export { SarifFormatOptions, SarifOutput, formatAsSarif, sarifToJson };
|
|
101
|
+
//# sourceMappingURL=sarif.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sarif.d.ts","names":[],"sources":["../../src/formatters/sarif.ts"],"sourcesContent":[],"mappings":";;;;;AAmCgD;AAG7B;AAoBT,UAxCO,WAAA,CAwCM;EAeb,OAAA,EAAA,MAAA;EAMA,OAAA,EAAA,MAAA;EASO,IAAA,EAnET,QAmES,EAAA;AA0EjB;UA1IU,QAAA,CA2IA;EACC,IAAA,EAAA;IACR,MAAA,EAAA;MAAW,IAAA,EAAA,MAAA;MAgKE,OAAW,EAAA,MAAA;;aAvSd;;;WAGF;eACI;6BACc;;UAGnB,SAAA;;;;;;;;;;;;;;UAWA,WAAA;;;;;;;cAKI;wBACU;;UAGd,aAAA;;;;;;;;;;;;;;UAeA,eAAA;;;;;;;UAMA,mBAAA;;;;;;;;UASO,kBAAA;;;;;;;;;;;;;;;iBA0ED,aAAA,SACN,yBACC,qBACR;;;;iBAgKa,WAAA,QAAmB"}
|