@contractspec/bundle.workspace 1.46.2 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/rolldown_runtime.mjs +20 -0
- package/dist/adapters/ai.d.mts +12 -0
- package/dist/adapters/ai.d.mts.map +1 -0
- package/dist/adapters/ai.mjs +83 -0
- package/dist/adapters/ai.mjs.map +1 -0
- package/dist/adapters/factory.d.mts +29 -0
- package/dist/adapters/factory.d.mts.map +1 -0
- package/dist/adapters/factory.mjs +37 -0
- package/dist/adapters/factory.mjs.map +1 -0
- package/dist/adapters/fs.d.mts +12 -0
- package/dist/adapters/fs.d.mts.map +1 -0
- package/dist/adapters/fs.mjs +133 -0
- package/dist/adapters/fs.mjs.map +1 -0
- package/dist/adapters/git.d.mts +11 -0
- package/dist/adapters/git.d.mts.map +1 -0
- package/dist/adapters/git.mjs +84 -0
- package/dist/adapters/git.mjs.map +1 -0
- package/dist/adapters/index.d.mts +7 -0
- package/dist/adapters/index.mjs +9 -0
- package/dist/adapters/logger.d.mts +18 -0
- package/dist/adapters/logger.d.mts.map +1 -0
- package/dist/adapters/logger.mjs +81 -0
- package/dist/adapters/logger.mjs.map +1 -0
- package/dist/adapters/watcher.d.mts +11 -0
- package/dist/adapters/watcher.d.mts.map +1 -0
- package/dist/adapters/watcher.mjs +74 -0
- package/dist/adapters/watcher.mjs.map +1 -0
- package/dist/adapters/workspace.d.mts +148 -0
- package/dist/adapters/workspace.d.mts.map +1 -0
- package/dist/adapters/workspace.mjs +275 -0
- package/dist/adapters/workspace.mjs.map +1 -0
- package/dist/ai/agents/claude-code-agent.d.mts +22 -0
- package/dist/ai/agents/claude-code-agent.d.mts.map +1 -0
- package/dist/ai/agents/claude-code-agent.mjs +182 -0
- package/dist/ai/agents/claude-code-agent.mjs.map +1 -0
- package/dist/ai/agents/cursor-agent.d.mts +68 -0
- package/dist/ai/agents/cursor-agent.d.mts.map +1 -0
- package/dist/ai/agents/cursor-agent.mjs +436 -0
- package/dist/ai/agents/cursor-agent.mjs.map +1 -0
- package/dist/ai/agents/index.mjs +7 -0
- package/dist/ai/agents/openai-codex-agent.d.mts +22 -0
- package/dist/ai/agents/openai-codex-agent.d.mts.map +1 -0
- package/dist/ai/agents/openai-codex-agent.mjs +167 -0
- package/dist/ai/agents/openai-codex-agent.mjs.map +1 -0
- package/dist/ai/agents/orchestrator.d.mts +50 -0
- package/dist/ai/agents/orchestrator.d.mts.map +1 -0
- package/dist/ai/agents/orchestrator.mjs +143 -0
- package/dist/ai/agents/orchestrator.mjs.map +1 -0
- package/dist/ai/agents/simple-agent.d.mts +17 -0
- package/dist/ai/agents/simple-agent.d.mts.map +1 -0
- package/dist/ai/agents/simple-agent.mjs +92 -0
- package/dist/ai/agents/simple-agent.mjs.map +1 -0
- package/dist/ai/agents/types.d.mts +36 -0
- package/dist/ai/agents/types.d.mts.map +1 -0
- package/dist/ai/client.d.mts +97 -0
- package/dist/ai/client.d.mts.map +1 -0
- package/dist/ai/client.mjs +189 -0
- package/dist/ai/client.mjs.map +1 -0
- package/dist/ai/index.d.mts +9 -0
- package/dist/ai/index.mjs +11 -0
- package/dist/ai/prompts/code-generation.d.mts +26 -0
- package/dist/ai/prompts/code-generation.d.mts.map +1 -0
- package/dist/ai/prompts/code-generation.mjs +143 -0
- package/dist/ai/prompts/code-generation.mjs.map +1 -0
- package/dist/ai/prompts/index.d.mts +10 -0
- package/dist/ai/prompts/index.d.mts.map +1 -0
- package/dist/ai/prompts/index.mjs +13 -0
- package/dist/ai/prompts/index.mjs.map +1 -0
- package/dist/ai/prompts/spec-creation.d.mts +29 -0
- package/dist/ai/prompts/spec-creation.d.mts.map +1 -0
- package/dist/ai/prompts/spec-creation.mjs +111 -0
- package/dist/ai/prompts/spec-creation.mjs.map +1 -0
- package/dist/ai/providers.d.mts +29 -0
- package/dist/ai/providers.d.mts.map +1 -0
- package/dist/ai/providers.mjs +39 -0
- package/dist/ai/providers.mjs.map +1 -0
- package/dist/formatters/index.d.mts +11 -0
- package/dist/formatters/index.d.mts.map +1 -0
- package/dist/formatters/index.mjs +17 -0
- package/dist/formatters/index.mjs.map +1 -0
- package/dist/formatters/json.d.mts +56 -0
- package/dist/formatters/json.d.mts.map +1 -0
- package/dist/formatters/json.mjs +43 -0
- package/dist/formatters/json.mjs.map +1 -0
- package/dist/formatters/sarif.d.mts +101 -0
- package/dist/formatters/sarif.d.mts.map +1 -0
- package/dist/formatters/sarif.mjs +163 -0
- package/dist/formatters/sarif.mjs.map +1 -0
- package/dist/formatters/text.d.mts +35 -0
- package/dist/formatters/text.d.mts.map +1 -0
- package/dist/formatters/text.mjs +209 -0
- package/dist/formatters/text.mjs.map +1 -0
- package/dist/index.d.mts +125 -0
- package/dist/index.mjs +110 -0
- package/dist/ports/ai.d.mts +59 -0
- package/dist/ports/ai.d.mts.map +1 -0
- package/dist/ports/fs.d.mts +81 -0
- package/dist/ports/fs.d.mts.map +1 -0
- package/dist/ports/git.d.mts +46 -0
- package/dist/ports/git.d.mts.map +1 -0
- package/dist/ports/index.d.mts +6 -0
- package/dist/ports/logger.d.mts +88 -0
- package/dist/ports/logger.d.mts.map +1 -0
- package/dist/ports/rulesync.d.mts +38 -0
- package/dist/ports/rulesync.d.mts.map +1 -0
- package/dist/ports/watcher.d.mts +52 -0
- package/dist/ports/watcher.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.d.mts +35 -0
- package/dist/services/agent-guide/adapters/claude-code.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.mjs +144 -0
- package/dist/services/agent-guide/adapters/claude-code.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.mts +39 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.mjs +135 -0
- package/dist/services/agent-guide/adapters/cursor-cli.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.mts +53 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.mjs +159 -0
- package/dist/services/agent-guide/adapters/generic-mcp.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/index.d.mts +23 -0
- package/dist/services/agent-guide/adapters/index.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/index.mjs +31 -0
- package/dist/services/agent-guide/adapters/index.mjs.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.d.mts +56 -0
- package/dist/services/agent-guide/agent-guide-service.d.mts.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.mjs +147 -0
- package/dist/services/agent-guide/agent-guide-service.mjs.map +1 -0
- package/dist/services/agent-guide/index.d.mts +6 -0
- package/dist/services/agent-guide/index.mjs +7 -0
- package/dist/services/agent-guide/types.d.mts +58 -0
- package/dist/services/agent-guide/types.d.mts.map +1 -0
- package/dist/services/build.d.mts +61 -0
- package/dist/services/build.d.mts.map +1 -0
- package/dist/services/build.mjs +151 -0
- package/dist/services/build.mjs.map +1 -0
- package/dist/services/ci-check/checks/coverage.mjs +77 -0
- package/dist/services/ci-check/checks/coverage.mjs.map +1 -0
- package/dist/services/ci-check/checks/deps.mjs +32 -0
- package/dist/services/ci-check/checks/deps.mjs.map +1 -0
- package/dist/services/ci-check/checks/doctor.mjs +38 -0
- package/dist/services/ci-check/checks/doctor.mjs.map +1 -0
- package/dist/services/ci-check/checks/drift.mjs +40 -0
- package/dist/services/ci-check/checks/drift.mjs.map +1 -0
- package/dist/services/ci-check/checks/handlers.mjs +38 -0
- package/dist/services/ci-check/checks/handlers.mjs.map +1 -0
- package/dist/services/ci-check/checks/implementation.mjs +73 -0
- package/dist/services/ci-check/checks/implementation.mjs.map +1 -0
- package/dist/services/ci-check/checks/index.mjs +13 -0
- package/dist/services/ci-check/checks/integrity.mjs +31 -0
- package/dist/services/ci-check/checks/integrity.mjs.map +1 -0
- package/dist/services/ci-check/checks/layers.mjs +66 -0
- package/dist/services/ci-check/checks/layers.mjs.map +1 -0
- package/dist/services/ci-check/checks/structure.mjs +35 -0
- package/dist/services/ci-check/checks/structure.mjs.map +1 -0
- package/dist/services/ci-check/checks/test-refs.mjs +63 -0
- package/dist/services/ci-check/checks/test-refs.mjs.map +1 -0
- package/dist/services/ci-check/checks/tests.mjs +38 -0
- package/dist/services/ci-check/checks/tests.mjs.map +1 -0
- package/dist/services/ci-check/ci-check-service.d.mts +16 -0
- package/dist/services/ci-check/ci-check-service.d.mts.map +1 -0
- package/dist/services/ci-check/ci-check-service.mjs +129 -0
- package/dist/services/ci-check/ci-check-service.mjs.map +1 -0
- package/dist/services/ci-check/index.d.mts +2 -0
- package/dist/services/ci-check/index.mjs +4 -0
- package/dist/services/ci-check/types.d.mts +147 -0
- package/dist/services/ci-check/types.d.mts.map +1 -0
- package/dist/services/ci-check/types.mjs +37 -0
- package/dist/services/ci-check/types.mjs.map +1 -0
- package/dist/services/ci-check/utils.mjs +76 -0
- package/dist/services/ci-check/utils.mjs.map +1 -0
- package/dist/services/clean.d.mts +41 -0
- package/dist/services/clean.d.mts.map +1 -0
- package/dist/services/clean.mjs +72 -0
- package/dist/services/clean.mjs.map +1 -0
- package/dist/services/config.d.mts +16 -0
- package/dist/services/config.d.mts.map +1 -0
- package/dist/services/config.mjs +63 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/coverage/parsers/index.mjs +34 -0
- package/dist/services/coverage/parsers/index.mjs.map +1 -0
- package/dist/services/coverage/parsers/istanbul-parser.mjs +108 -0
- package/dist/services/coverage/parsers/istanbul-parser.mjs.map +1 -0
- package/dist/services/coverage/validator.mjs +55 -0
- package/dist/services/coverage/validator.mjs.map +1 -0
- package/dist/services/create/ai-generator.d.mts +84 -0
- package/dist/services/create/ai-generator.d.mts.map +1 -0
- package/dist/services/create/ai-generator.mjs +178 -0
- package/dist/services/create/ai-generator.mjs.map +1 -0
- package/dist/services/create/index.d.mts +28 -0
- package/dist/services/create/index.d.mts.map +1 -0
- package/dist/services/create/index.mjs +37 -0
- package/dist/services/create/index.mjs.map +1 -0
- package/dist/services/create/templates.d.mts +22 -0
- package/dist/services/create/templates.d.mts.map +1 -0
- package/dist/services/create/templates.mjs +39 -0
- package/dist/services/create/templates.mjs.map +1 -0
- package/dist/services/deps.d.mts +53 -0
- package/dist/services/deps.d.mts.map +1 -0
- package/dist/services/deps.mjs +62 -0
- package/dist/services/deps.mjs.map +1 -0
- package/dist/services/diff.d.mts +34 -0
- package/dist/services/diff.d.mts.map +1 -0
- package/dist/services/diff.mjs +34 -0
- package/dist/services/diff.mjs.map +1 -0
- package/dist/services/docs/docs-service.d.mts +20 -0
- package/dist/services/docs/docs-service.d.mts.map +1 -0
- package/dist/services/docs/docs-service.mjs +59 -0
- package/dist/services/docs/docs-service.mjs.map +1 -0
- package/dist/services/docs/index.d.mts +1 -0
- package/dist/services/docs/index.mjs +3 -0
- package/dist/services/doctor/checks/ai.mjs +119 -0
- package/dist/services/doctor/checks/ai.mjs.map +1 -0
- package/dist/services/doctor/checks/cli.mjs +156 -0
- package/dist/services/doctor/checks/cli.mjs.map +1 -0
- package/dist/services/doctor/checks/config.mjs +303 -0
- package/dist/services/doctor/checks/config.mjs.map +1 -0
- package/dist/services/doctor/checks/deps.mjs +267 -0
- package/dist/services/doctor/checks/deps.mjs.map +1 -0
- package/dist/services/doctor/checks/index.mjs +9 -0
- package/dist/services/doctor/checks/layers.mjs +139 -0
- package/dist/services/doctor/checks/layers.mjs.map +1 -0
- package/dist/services/doctor/checks/mcp.mjs +145 -0
- package/dist/services/doctor/checks/mcp.mjs.map +1 -0
- package/dist/services/doctor/checks/workspace.mjs +263 -0
- package/dist/services/doctor/checks/workspace.mjs.map +1 -0
- package/dist/services/doctor/doctor-service.d.mts +24 -0
- package/dist/services/doctor/doctor-service.d.mts.map +1 -0
- package/dist/services/doctor/doctor-service.mjs +118 -0
- package/dist/services/doctor/doctor-service.mjs.map +1 -0
- package/dist/services/doctor/index.d.mts +2 -0
- package/dist/services/doctor/index.mjs +4 -0
- package/dist/services/doctor/types.d.mts +118 -0
- package/dist/services/doctor/types.d.mts.map +1 -0
- package/dist/services/doctor/types.mjs +29 -0
- package/dist/services/doctor/types.mjs.map +1 -0
- package/dist/services/drift.mjs +73 -0
- package/dist/services/drift.mjs.map +1 -0
- package/dist/services/extract.d.mts +12 -0
- package/dist/services/extract.d.mts.map +1 -0
- package/dist/services/extract.mjs +33 -0
- package/dist/services/extract.mjs.map +1 -0
- package/dist/services/features/completion.d.mts +21 -0
- package/dist/services/features/completion.d.mts.map +1 -0
- package/dist/services/features/completion.mjs +70 -0
- package/dist/services/features/completion.mjs.map +1 -0
- package/dist/services/features/feature-editor.d.mts +27 -0
- package/dist/services/features/feature-editor.d.mts.map +1 -0
- package/dist/services/features/feature-editor.mjs +37 -0
- package/dist/services/features/feature-editor.mjs.map +1 -0
- package/dist/services/features/index.d.mts +11 -0
- package/dist/services/features/index.d.mts.map +1 -0
- package/dist/services/features/index.mjs +16 -0
- package/dist/services/features/index.mjs.map +1 -0
- package/dist/services/features/validation.d.mts +21 -0
- package/dist/services/features/validation.d.mts.map +1 -0
- package/dist/services/features/validation.mjs +27 -0
- package/dist/services/features/validation.mjs.map +1 -0
- package/dist/services/fix/fix-link-formatter.d.mts +12 -0
- package/dist/services/fix/fix-link-formatter.d.mts.map +1 -0
- package/dist/services/fix/fix-link-formatter.mjs +38 -0
- package/dist/services/fix/fix-link-formatter.mjs.map +1 -0
- package/dist/services/fix/fix-service.d.mts +74 -0
- package/dist/services/fix/fix-service.d.mts.map +1 -0
- package/dist/services/fix/fix-service.mjs +169 -0
- package/dist/services/fix/fix-service.mjs.map +1 -0
- package/dist/services/fix/index.d.mts +16 -0
- package/dist/services/fix/index.d.mts.map +1 -0
- package/dist/services/fix/index.mjs +24 -0
- package/dist/services/fix/index.mjs.map +1 -0
- package/dist/services/fix/path-resolver.mjs +83 -0
- package/dist/services/fix/path-resolver.mjs.map +1 -0
- package/dist/services/fix/schemas.d.mts +17 -0
- package/dist/services/fix/schemas.d.mts.map +1 -0
- package/dist/services/fix/schemas.mjs +12 -0
- package/dist/services/fix/schemas.mjs.map +1 -0
- package/dist/services/fix/strategies/implement-ai.d.mts +18 -0
- package/dist/services/fix/strategies/implement-ai.d.mts.map +1 -0
- package/dist/services/fix/strategies/implement-ai.mjs +139 -0
- package/dist/services/fix/strategies/implement-ai.mjs.map +1 -0
- package/dist/services/fix/strategies/implement-skeleton.d.mts +14 -0
- package/dist/services/fix/strategies/implement-skeleton.d.mts.map +1 -0
- package/dist/services/fix/strategies/implement-skeleton.mjs +77 -0
- package/dist/services/fix/strategies/implement-skeleton.mjs.map +1 -0
- package/dist/services/fix/strategies/index.d.mts +3 -0
- package/dist/services/fix/strategies/remove-reference.d.mts +17 -0
- package/dist/services/fix/strategies/remove-reference.d.mts.map +1 -0
- package/dist/services/fix/strategies/remove-reference.mjs +98 -0
- package/dist/services/fix/strategies/remove-reference.mjs.map +1 -0
- package/dist/services/fix/types.d.mts +207 -0
- package/dist/services/fix/types.d.mts.map +1 -0
- package/dist/services/fix/types.mjs +20 -0
- package/dist/services/fix/types.mjs.map +1 -0
- package/dist/services/formatter.d.mts +15 -0
- package/dist/services/formatter.d.mts.map +1 -0
- package/dist/services/formatter.mjs +26 -0
- package/dist/services/formatter.mjs.map +1 -0
- package/dist/services/gap.d.mts +18 -0
- package/dist/services/gap.d.mts.map +1 -0
- package/dist/services/gap.mjs +44 -0
- package/dist/services/gap.mjs.map +1 -0
- package/dist/services/generate-artifacts.d.mts +11 -0
- package/dist/services/generate-artifacts.d.mts.map +1 -0
- package/dist/services/generate-artifacts.mjs +27 -0
- package/dist/services/generate-artifacts.mjs.map +1 -0
- package/dist/services/hooks/hooks-service.d.mts +24 -0
- package/dist/services/hooks/hooks-service.d.mts.map +1 -0
- package/dist/services/hooks/hooks-service.mjs +126 -0
- package/dist/services/hooks/hooks-service.mjs.map +1 -0
- package/dist/services/hooks/index.d.mts +10 -0
- package/dist/services/hooks/index.d.mts.map +1 -0
- package/dist/services/hooks/index.mjs +12 -0
- package/dist/services/hooks/index.mjs.map +1 -0
- package/dist/services/hooks/types.d.mts +56 -0
- package/dist/services/hooks/types.d.mts.map +1 -0
- package/dist/services/impact/formatters.d.mts +27 -0
- package/dist/services/impact/formatters.d.mts.map +1 -0
- package/dist/services/impact/formatters.mjs +139 -0
- package/dist/services/impact/formatters.mjs.map +1 -0
- package/dist/services/impact/impact-detection-service.d.mts +22 -0
- package/dist/services/impact/impact-detection-service.d.mts.map +1 -0
- package/dist/services/impact/impact-detection-service.mjs +96 -0
- package/dist/services/impact/impact-detection-service.mjs.map +1 -0
- package/dist/services/impact/index.d.mts +11 -0
- package/dist/services/impact/index.d.mts.map +1 -0
- package/dist/services/impact/index.mjs +16 -0
- package/dist/services/impact/index.mjs.map +1 -0
- package/dist/services/impact/types.d.mts +63 -0
- package/dist/services/impact/types.d.mts.map +1 -0
- package/dist/services/implementation/discovery.d.mts +30 -0
- package/dist/services/implementation/discovery.d.mts.map +1 -0
- package/dist/services/implementation/discovery.mjs +144 -0
- package/dist/services/implementation/discovery.mjs.map +1 -0
- package/dist/services/implementation/index.d.mts +6 -0
- package/dist/services/implementation/index.mjs +7 -0
- package/dist/services/implementation/resolver/conventions.d.mts +18 -0
- package/dist/services/implementation/resolver/conventions.d.mts.map +1 -0
- package/dist/services/implementation/resolver/conventions.mjs +59 -0
- package/dist/services/implementation/resolver/conventions.mjs.map +1 -0
- package/dist/services/implementation/resolver/index.d.mts +24 -0
- package/dist/services/implementation/resolver/index.d.mts.map +1 -0
- package/dist/services/implementation/resolver/index.mjs +111 -0
- package/dist/services/implementation/resolver/index.mjs.map +1 -0
- package/dist/services/implementation/resolver/parsers.d.mts +16 -0
- package/dist/services/implementation/resolver/parsers.d.mts.map +1 -0
- package/dist/services/implementation/resolver/parsers.mjs +100 -0
- package/dist/services/implementation/resolver/parsers.mjs.map +1 -0
- package/dist/services/implementation/resolver/status.d.mts +21 -0
- package/dist/services/implementation/resolver/status.d.mts.map +1 -0
- package/dist/services/implementation/resolver/status.mjs +31 -0
- package/dist/services/implementation/resolver/status.mjs.map +1 -0
- package/dist/services/implementation/types.d.mts +89 -0
- package/dist/services/implementation/types.d.mts.map +1 -0
- package/dist/services/index.d.mts +103 -0
- package/dist/services/index.mjs +100 -0
- package/dist/services/integrity-diagram.d.mts +36 -0
- package/dist/services/integrity-diagram.d.mts.map +1 -0
- package/dist/services/integrity-diagram.mjs +275 -0
- package/dist/services/integrity-diagram.mjs.map +1 -0
- package/dist/services/integrity.d.mts +152 -0
- package/dist/services/integrity.d.mts.map +1 -0
- package/dist/services/integrity.mjs +361 -0
- package/dist/services/integrity.mjs.map +1 -0
- package/dist/services/layer-discovery.d.mts +77 -0
- package/dist/services/layer-discovery.d.mts.map +1 -0
- package/dist/services/layer-discovery.mjs +121 -0
- package/dist/services/layer-discovery.mjs.map +1 -0
- package/dist/services/list.d.mts +37 -0
- package/dist/services/list.d.mts.map +1 -0
- package/dist/services/list.mjs +46 -0
- package/dist/services/list.mjs.map +1 -0
- package/dist/services/llm/index.d.mts +28 -0
- package/dist/services/llm/index.d.mts.map +1 -0
- package/dist/services/llm/index.mjs +187 -0
- package/dist/services/llm/index.mjs.map +1 -0
- package/dist/services/llm/verify-static.d.mts +26 -0
- package/dist/services/llm/verify-static.d.mts.map +1 -0
- package/dist/services/llm/verify-static.mjs +82 -0
- package/dist/services/llm/verify-static.mjs.map +1 -0
- package/dist/services/modules/module-resolver.mjs +61 -0
- package/dist/services/modules/module-resolver.mjs.map +1 -0
- package/dist/services/openapi/export-service.d.mts +53 -0
- package/dist/services/openapi/export-service.d.mts.map +1 -0
- package/dist/services/openapi/export-service.mjs +50 -0
- package/dist/services/openapi/export-service.mjs.map +1 -0
- package/dist/services/openapi/import-service.d.mts +17 -0
- package/dist/services/openapi/import-service.d.mts.map +1 -0
- package/dist/services/openapi/import-service.mjs +165 -0
- package/dist/services/openapi/import-service.mjs.map +1 -0
- package/dist/services/openapi/index.d.mts +5 -0
- package/dist/services/openapi/index.mjs +6 -0
- package/dist/services/openapi/sync-service.d.mts +17 -0
- package/dist/services/openapi/sync-service.d.mts.map +1 -0
- package/dist/services/openapi/sync-service.mjs +120 -0
- package/dist/services/openapi/sync-service.mjs.map +1 -0
- package/dist/services/openapi/types.d.mts +162 -0
- package/dist/services/openapi/types.d.mts.map +1 -0
- package/dist/services/openapi/validate-service.d.mts +16 -0
- package/dist/services/openapi/validate-service.d.mts.map +1 -0
- package/dist/services/openapi/validate-service.mjs +130 -0
- package/dist/services/openapi/validate-service.mjs.map +1 -0
- package/dist/services/quickstart/dependencies.d.mts +31 -0
- package/dist/services/quickstart/dependencies.d.mts.map +1 -0
- package/dist/services/quickstart/dependencies.mjs +57 -0
- package/dist/services/quickstart/dependencies.mjs.map +1 -0
- package/dist/services/quickstart/index.mjs +4 -0
- package/dist/services/quickstart/quickstart-service.d.mts +20 -0
- package/dist/services/quickstart/quickstart-service.d.mts.map +1 -0
- package/dist/services/quickstart/quickstart-service.mjs +196 -0
- package/dist/services/quickstart/quickstart-service.mjs.map +1 -0
- package/dist/services/quickstart/types.d.mts +81 -0
- package/dist/services/quickstart/types.d.mts.map +1 -0
- package/dist/services/regenerator.d.mts +18 -0
- package/dist/services/regenerator.d.mts.map +1 -0
- package/dist/services/regenerator.mjs +23 -0
- package/dist/services/regenerator.mjs.map +1 -0
- package/dist/services/registry.d.mts +53 -0
- package/dist/services/registry.d.mts.map +1 -0
- package/dist/services/registry.mjs +74 -0
- package/dist/services/registry.mjs.map +1 -0
- package/dist/services/rulesync.d.mts +17 -0
- package/dist/services/rulesync.d.mts.map +1 -0
- package/dist/services/rulesync.mjs +72 -0
- package/dist/services/rulesync.mjs.map +1 -0
- package/dist/services/setup/config-generators.d.mts +42 -0
- package/dist/services/setup/config-generators.d.mts.map +1 -0
- package/dist/services/setup/config-generators.mjs +252 -0
- package/dist/services/setup/config-generators.mjs.map +1 -0
- package/dist/services/setup/file-merger.d.mts +27 -0
- package/dist/services/setup/file-merger.d.mts.map +1 -0
- package/dist/services/setup/file-merger.mjs +61 -0
- package/dist/services/setup/file-merger.mjs.map +1 -0
- package/dist/services/setup/setup-service.d.mts +12 -0
- package/dist/services/setup/setup-service.d.mts.map +1 -0
- package/dist/services/setup/setup-service.mjs +96 -0
- package/dist/services/setup/setup-service.mjs.map +1 -0
- package/dist/services/setup/targets/agents-md.mjs +47 -0
- package/dist/services/setup/targets/agents-md.mjs.map +1 -0
- package/dist/services/setup/targets/cli-config.mjs +60 -0
- package/dist/services/setup/targets/cli-config.mjs.map +1 -0
- package/dist/services/setup/targets/cursor-rules.mjs +48 -0
- package/dist/services/setup/targets/cursor-rules.mjs.map +1 -0
- package/dist/services/setup/targets/mcp-claude.mjs +60 -0
- package/dist/services/setup/targets/mcp-claude.mjs.map +1 -0
- package/dist/services/setup/targets/mcp-cursor.mjs +59 -0
- package/dist/services/setup/targets/mcp-cursor.mjs.map +1 -0
- package/dist/services/setup/targets/vscode-settings.mjs +63 -0
- package/dist/services/setup/targets/vscode-settings.mjs.map +1 -0
- package/dist/services/setup/types.d.mts +85 -0
- package/dist/services/setup/types.d.mts.map +1 -0
- package/dist/services/setup/types.mjs +27 -0
- package/dist/services/setup/types.mjs.map +1 -0
- package/dist/services/sync.d.mts +42 -0
- package/dist/services/sync.d.mts.map +1 -0
- package/dist/services/sync.mjs +64 -0
- package/dist/services/sync.mjs.map +1 -0
- package/dist/services/test/index.d.mts +2 -0
- package/dist/services/test/index.mjs +4 -0
- package/dist/services/test/test-generator-service.d.mts +24 -0
- package/dist/services/test/test-generator-service.d.mts.map +1 -0
- package/dist/services/test/test-generator-service.mjs +92 -0
- package/dist/services/test/test-generator-service.mjs.map +1 -0
- package/dist/services/test/test-service.d.mts +27 -0
- package/dist/services/test/test-service.d.mts.map +1 -0
- package/dist/services/test/test-service.mjs +94 -0
- package/dist/services/test/test-service.mjs.map +1 -0
- package/dist/services/test-link/index.d.mts +18 -0
- package/dist/services/test-link/index.d.mts.map +1 -0
- package/dist/services/test-link/index.mjs +60 -0
- package/dist/services/test-link/index.mjs.map +1 -0
- package/dist/services/test-link/test-ref-validator.d.mts +2 -0
- package/dist/services/test-link/test-ref-validator.mjs +50 -0
- package/dist/services/test-link/test-ref-validator.mjs.map +1 -0
- package/dist/services/upgrade/index.d.mts +10 -0
- package/dist/services/upgrade/index.d.mts.map +1 -0
- package/dist/services/upgrade/index.mjs +15 -0
- package/dist/services/upgrade/index.mjs.map +1 -0
- package/dist/services/upgrade/types.d.mts +78 -0
- package/dist/services/upgrade/types.d.mts.map +1 -0
- package/dist/services/upgrade/upgrade-service.d.mts +38 -0
- package/dist/services/upgrade/upgrade-service.d.mts.map +1 -0
- package/dist/services/upgrade/upgrade-service.mjs +201 -0
- package/dist/services/upgrade/upgrade-service.mjs.map +1 -0
- package/dist/services/validate/blueprint-validator.d.mts +23 -0
- package/dist/services/validate/blueprint-validator.d.mts.map +1 -0
- package/dist/services/validate/blueprint-validator.mjs +50 -0
- package/dist/services/validate/blueprint-validator.mjs.map +1 -0
- package/dist/services/validate/implementation-agent-validator.d.mts +20 -0
- package/dist/services/validate/implementation-agent-validator.d.mts.map +1 -0
- package/dist/services/validate/implementation-agent-validator.mjs +42 -0
- package/dist/services/validate/implementation-agent-validator.mjs.map +1 -0
- package/dist/services/validate/implementation-validator.d.mts +32 -0
- package/dist/services/validate/implementation-validator.d.mts.map +1 -0
- package/dist/services/validate/implementation-validator.mjs +64 -0
- package/dist/services/validate/implementation-validator.mjs.map +1 -0
- package/dist/services/validate/index.d.mts +5 -0
- package/dist/services/validate/index.mjs +7 -0
- package/dist/services/validate/spec-validator.d.mts +42 -0
- package/dist/services/validate/spec-validator.d.mts.map +1 -0
- package/dist/services/validate/spec-validator.mjs +49 -0
- package/dist/services/validate/spec-validator.mjs.map +1 -0
- package/dist/services/validate/tenant-validator.d.mts +21 -0
- package/dist/services/validate/tenant-validator.d.mts.map +1 -0
- package/dist/services/validate/tenant-validator.mjs +165 -0
- package/dist/services/validate/tenant-validator.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.d.mts +46 -0
- package/dist/services/verification-cache/adapters/filesystem.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.mjs +120 -0
- package/dist/services/verification-cache/adapters/filesystem.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.d.mts +27 -0
- package/dist/services/verification-cache/adapters/in-memory.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.mjs +46 -0
- package/dist/services/verification-cache/adapters/in-memory.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/index.d.mts +3 -0
- package/dist/services/verification-cache/adapters/index.mjs +5 -0
- package/dist/services/verification-cache/adapters/workspace-state.d.mts +49 -0
- package/dist/services/verification-cache/adapters/workspace-state.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/workspace-state.mjs +91 -0
- package/dist/services/verification-cache/adapters/workspace-state.mjs.map +1 -0
- package/dist/services/verification-cache/cache-service.d.mts +70 -0
- package/dist/services/verification-cache/cache-service.d.mts.map +1 -0
- package/dist/services/verification-cache/cache-service.mjs +256 -0
- package/dist/services/verification-cache/cache-service.mjs.map +1 -0
- package/dist/services/verification-cache/index.d.mts +6 -0
- package/dist/services/verification-cache/index.mjs +8 -0
- package/dist/services/verification-cache/types.d.mts +124 -0
- package/dist/services/verification-cache/types.d.mts.map +1 -0
- package/dist/services/verification-cache/types.mjs +16 -0
- package/dist/services/verification-cache/types.mjs.map +1 -0
- package/dist/services/verify/ai-verifier.d.mts +25 -0
- package/dist/services/verify/ai-verifier.d.mts.map +1 -0
- package/dist/services/verify/ai-verifier.mjs +403 -0
- package/dist/services/verify/ai-verifier.mjs.map +1 -0
- package/dist/services/verify/behavior-verifier.d.mts +12 -0
- package/dist/services/verify/behavior-verifier.d.mts.map +1 -0
- package/dist/services/verify/behavior-verifier.mjs +186 -0
- package/dist/services/verify/behavior-verifier.mjs.map +1 -0
- package/dist/services/verify/index.d.mts +5 -0
- package/dist/services/verify/index.mjs +6 -0
- package/dist/services/verify/structure-verifier.d.mts +12 -0
- package/dist/services/verify/structure-verifier.d.mts.map +1 -0
- package/dist/services/verify/structure-verifier.mjs +196 -0
- package/dist/services/verify/structure-verifier.mjs.map +1 -0
- package/dist/services/verify/types.d.mts +137 -0
- package/dist/services/verify/types.d.mts.map +1 -0
- package/dist/services/verify/verify-service.d.mts +60 -0
- package/dist/services/verify/verify-service.d.mts.map +1 -0
- package/dist/services/verify/verify-service.mjs +204 -0
- package/dist/services/verify/verify-service.mjs.map +1 -0
- package/dist/services/versioning/changelog-formatter.d.mts +24 -0
- package/dist/services/versioning/changelog-formatter.d.mts.map +1 -0
- package/dist/services/versioning/changelog-formatter.mjs +155 -0
- package/dist/services/versioning/changelog-formatter.mjs.map +1 -0
- package/dist/services/versioning/conventional-commits.d.mts +95 -0
- package/dist/services/versioning/conventional-commits.d.mts.map +1 -0
- package/dist/services/versioning/conventional-commits.mjs +184 -0
- package/dist/services/versioning/conventional-commits.mjs.map +1 -0
- package/dist/services/versioning/index.d.mts +12 -0
- package/dist/services/versioning/index.d.mts.map +1 -0
- package/dist/services/versioning/index.mjs +28 -0
- package/dist/services/versioning/index.mjs.map +1 -0
- package/dist/services/versioning/types.d.mts +135 -0
- package/dist/services/versioning/types.d.mts.map +1 -0
- package/dist/services/versioning/versioning-service.d.mts +74 -0
- package/dist/services/versioning/versioning-service.d.mts.map +1 -0
- package/dist/services/versioning/versioning-service.mjs +501 -0
- package/dist/services/versioning/versioning-service.mjs.map +1 -0
- package/dist/services/vibe/config.d.mts +12 -0
- package/dist/services/vibe/config.d.mts.map +1 -0
- package/dist/services/vibe/config.mjs +43 -0
- package/dist/services/vibe/config.mjs.map +1 -0
- package/dist/services/vibe/context.d.mts +19 -0
- package/dist/services/vibe/context.d.mts.map +1 -0
- package/dist/services/vibe/context.mjs +92 -0
- package/dist/services/vibe/context.mjs.map +1 -0
- package/dist/services/vibe/definitions.d.mts +8 -0
- package/dist/services/vibe/definitions.d.mts.map +1 -0
- package/dist/services/vibe/definitions.mjs +129 -0
- package/dist/services/vibe/definitions.mjs.map +1 -0
- package/dist/services/vibe/engine.d.mts +44 -0
- package/dist/services/vibe/engine.d.mts.map +1 -0
- package/dist/services/vibe/engine.mjs +147 -0
- package/dist/services/vibe/engine.mjs.map +1 -0
- package/dist/services/vibe/index.d.mts +15 -0
- package/dist/services/vibe/index.d.mts.map +1 -0
- package/dist/services/vibe/index.mjs +26 -0
- package/dist/services/vibe/index.mjs.map +1 -0
- package/dist/services/vibe/loader.d.mts +15 -0
- package/dist/services/vibe/loader.d.mts.map +1 -0
- package/dist/services/vibe/loader.mjs +48 -0
- package/dist/services/vibe/loader.mjs.map +1 -0
- package/dist/services/vibe/pack.d.mts +19 -0
- package/dist/services/vibe/pack.d.mts.map +1 -0
- package/dist/services/vibe/pack.mjs +66 -0
- package/dist/services/vibe/pack.mjs.map +1 -0
- package/dist/services/vibe/types.d.mts +59 -0
- package/dist/services/vibe/types.d.mts.map +1 -0
- package/dist/services/vibe/types.mjs +12 -0
- package/dist/services/vibe/types.mjs.map +1 -0
- package/dist/services/view/index.d.mts +11 -0
- package/dist/services/view/index.d.mts.map +1 -0
- package/dist/services/view/index.mjs +119 -0
- package/dist/services/view/index.mjs.map +1 -0
- package/dist/services/watch.d.mts +25 -0
- package/dist/services/watch.d.mts.map +1 -0
- package/dist/services/watch.mjs +33 -0
- package/dist/services/watch.mjs.map +1 -0
- package/dist/services/workspace-info.d.mts +62 -0
- package/dist/services/workspace-info.d.mts.map +1 -0
- package/dist/services/workspace-info.mjs +103 -0
- package/dist/services/workspace-info.mjs.map +1 -0
- package/dist/templates/app-config.template.d.mts +7 -0
- package/dist/templates/app-config.template.d.mts.map +1 -0
- package/dist/templates/app-config.template.mjs +107 -0
- package/dist/templates/app-config.template.mjs.map +1 -0
- package/dist/templates/data-view.template.d.mts +7 -0
- package/dist/templates/data-view.template.d.mts.map +1 -0
- package/dist/templates/data-view.template.mjs +70 -0
- package/dist/templates/data-view.template.mjs.map +1 -0
- package/dist/templates/event.template.d.mts +11 -0
- package/dist/templates/event.template.d.mts.map +1 -0
- package/dist/templates/event.template.mjs +42 -0
- package/dist/templates/event.template.mjs.map +1 -0
- package/dist/templates/experiment.template.d.mts +7 -0
- package/dist/templates/experiment.template.d.mts.map +1 -0
- package/dist/templates/experiment.template.mjs +89 -0
- package/dist/templates/experiment.template.mjs.map +1 -0
- package/dist/templates/feature.template.d.mts +33 -0
- package/dist/templates/feature.template.d.mts.map +1 -0
- package/dist/templates/feature.template.mjs +52 -0
- package/dist/templates/feature.template.mjs.map +1 -0
- package/dist/templates/fix/skeleton-capability.mjs +49 -0
- package/dist/templates/fix/skeleton-capability.mjs.map +1 -0
- package/dist/templates/fix/skeleton-event.mjs +56 -0
- package/dist/templates/fix/skeleton-event.mjs.map +1 -0
- package/dist/templates/fix/skeleton-operation.mjs +122 -0
- package/dist/templates/fix/skeleton-operation.mjs.map +1 -0
- package/dist/templates/fix/skeleton-presentation.mjs +65 -0
- package/dist/templates/fix/skeleton-presentation.mjs.map +1 -0
- package/dist/templates/fix/utils.mjs +34 -0
- package/dist/templates/fix/utils.mjs.map +1 -0
- package/dist/templates/handler.template.d.mts +16 -0
- package/dist/templates/handler.template.d.mts.map +1 -0
- package/dist/templates/handler.template.mjs +100 -0
- package/dist/templates/handler.template.mjs.map +1 -0
- package/dist/templates/index.d.mts +22 -0
- package/dist/templates/index.d.mts.map +1 -0
- package/dist/templates/index.mjs +39 -0
- package/dist/templates/index.mjs.map +1 -0
- package/dist/templates/integration.template.d.mts +7 -0
- package/dist/templates/integration.template.d.mts.map +1 -0
- package/dist/templates/integration.template.mjs +160 -0
- package/dist/templates/integration.template.mjs.map +1 -0
- package/dist/templates/knowledge.template.d.mts +7 -0
- package/dist/templates/knowledge.template.d.mts.map +1 -0
- package/dist/templates/knowledge.template.mjs +75 -0
- package/dist/templates/knowledge.template.mjs.map +1 -0
- package/dist/templates/migration.template.d.mts +7 -0
- package/dist/templates/migration.template.d.mts.map +1 -0
- package/dist/templates/migration.template.mjs +62 -0
- package/dist/templates/migration.template.mjs.map +1 -0
- package/dist/templates/operation.template.d.mts +11 -0
- package/dist/templates/operation.template.d.mts.map +1 -0
- package/dist/templates/operation.template.mjs +107 -0
- package/dist/templates/operation.template.mjs.map +1 -0
- package/dist/templates/presentation.template.d.mts +11 -0
- package/dist/templates/presentation.template.d.mts.map +1 -0
- package/dist/templates/presentation.template.mjs +80 -0
- package/dist/templates/presentation.template.mjs.map +1 -0
- package/dist/templates/telemetry.template.d.mts +7 -0
- package/dist/templates/telemetry.template.d.mts.map +1 -0
- package/dist/templates/telemetry.template.mjs +91 -0
- package/dist/templates/telemetry.template.mjs.map +1 -0
- package/dist/templates/workflow-runner.template.d.mts +16 -0
- package/dist/templates/workflow-runner.template.d.mts.map +1 -0
- package/dist/templates/workflow-runner.template.mjs +50 -0
- package/dist/templates/workflow-runner.template.mjs.map +1 -0
- package/dist/templates/workflow.template.d.mts +7 -0
- package/dist/templates/workflow.template.d.mts.map +1 -0
- package/dist/templates/workflow.template.mjs +69 -0
- package/dist/templates/workflow.template.mjs.map +1 -0
- package/dist/types/config.d.mts +34 -0
- package/dist/types/config.d.mts.map +1 -0
- package/dist/types.d.mts +324 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/utils/filter.d.mts +16 -0
- package/dist/utils/filter.d.mts.map +1 -0
- package/dist/utils/filter.mjs +22 -0
- package/dist/utils/filter.mjs.map +1 -0
- package/dist/utils/index.d.mts +11 -0
- package/dist/utils/index.d.mts.map +1 -0
- package/dist/utils/index.mjs +20 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/module-loader.d.mts +5 -0
- package/dist/utils/module-loader.d.mts.map +1 -0
- package/dist/utils/module-loader.mjs +41 -0
- package/dist/utils/module-loader.mjs.map +1 -0
- package/dist/utils/validation.d.mts +37 -0
- package/dist/utils/validation.d.mts.map +1 -0
- package/dist/utils/validation.mjs +43 -0
- package/dist/utils/validation.mjs.map +1 -0
- package/package.json +23 -19
- package/dist/_virtual/rolldown_runtime.js +0 -18
- package/dist/adapters/ai.d.ts +0 -12
- package/dist/adapters/ai.d.ts.map +0 -1
- package/dist/adapters/ai.js +0 -83
- package/dist/adapters/ai.js.map +0 -1
- package/dist/adapters/factory.d.ts +0 -29
- package/dist/adapters/factory.d.ts.map +0 -1
- package/dist/adapters/factory.js +0 -37
- package/dist/adapters/factory.js.map +0 -1
- package/dist/adapters/fs.d.ts +0 -12
- package/dist/adapters/fs.d.ts.map +0 -1
- package/dist/adapters/fs.js +0 -131
- package/dist/adapters/fs.js.map +0 -1
- package/dist/adapters/git.d.ts +0 -11
- package/dist/adapters/git.d.ts.map +0 -1
- package/dist/adapters/git.js +0 -84
- package/dist/adapters/git.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -7
- package/dist/adapters/index.js +0 -7
- package/dist/adapters/logger.d.ts +0 -18
- package/dist/adapters/logger.d.ts.map +0 -1
- package/dist/adapters/logger.js +0 -81
- package/dist/adapters/logger.js.map +0 -1
- package/dist/adapters/watcher.d.ts +0 -11
- package/dist/adapters/watcher.d.ts.map +0 -1
- package/dist/adapters/watcher.js +0 -74
- package/dist/adapters/watcher.js.map +0 -1
- package/dist/adapters/workspace.d.ts +0 -148
- package/dist/adapters/workspace.d.ts.map +0 -1
- package/dist/adapters/workspace.js +0 -275
- package/dist/adapters/workspace.js.map +0 -1
- package/dist/ai/agents/claude-code-agent.d.ts +0 -22
- package/dist/ai/agents/claude-code-agent.d.ts.map +0 -1
- package/dist/ai/agents/claude-code-agent.js +0 -182
- package/dist/ai/agents/claude-code-agent.js.map +0 -1
- package/dist/ai/agents/cursor-agent.d.ts +0 -68
- package/dist/ai/agents/cursor-agent.d.ts.map +0 -1
- package/dist/ai/agents/cursor-agent.js +0 -436
- package/dist/ai/agents/cursor-agent.js.map +0 -1
- package/dist/ai/agents/index.js +0 -5
- package/dist/ai/agents/openai-codex-agent.d.ts +0 -22
- package/dist/ai/agents/openai-codex-agent.d.ts.map +0 -1
- package/dist/ai/agents/openai-codex-agent.js +0 -167
- package/dist/ai/agents/openai-codex-agent.js.map +0 -1
- package/dist/ai/agents/orchestrator.d.ts +0 -50
- package/dist/ai/agents/orchestrator.d.ts.map +0 -1
- package/dist/ai/agents/orchestrator.js +0 -143
- package/dist/ai/agents/orchestrator.js.map +0 -1
- package/dist/ai/agents/simple-agent.d.ts +0 -17
- package/dist/ai/agents/simple-agent.d.ts.map +0 -1
- package/dist/ai/agents/simple-agent.js +0 -92
- package/dist/ai/agents/simple-agent.js.map +0 -1
- package/dist/ai/agents/types.d.ts +0 -36
- package/dist/ai/agents/types.d.ts.map +0 -1
- package/dist/ai/client.d.ts +0 -97
- package/dist/ai/client.d.ts.map +0 -1
- package/dist/ai/client.js +0 -189
- package/dist/ai/client.js.map +0 -1
- package/dist/ai/index.d.ts +0 -9
- package/dist/ai/index.js +0 -9
- package/dist/ai/prompts/code-generation.d.ts +0 -26
- package/dist/ai/prompts/code-generation.d.ts.map +0 -1
- package/dist/ai/prompts/code-generation.js +0 -143
- package/dist/ai/prompts/code-generation.js.map +0 -1
- package/dist/ai/prompts/index.d.ts +0 -10
- package/dist/ai/prompts/index.d.ts.map +0 -1
- package/dist/ai/prompts/index.js +0 -13
- package/dist/ai/prompts/index.js.map +0 -1
- package/dist/ai/prompts/spec-creation.d.ts +0 -29
- package/dist/ai/prompts/spec-creation.d.ts.map +0 -1
- package/dist/ai/prompts/spec-creation.js +0 -111
- package/dist/ai/prompts/spec-creation.js.map +0 -1
- package/dist/ai/providers.d.ts +0 -29
- package/dist/ai/providers.d.ts.map +0 -1
- package/dist/ai/providers.js +0 -39
- package/dist/ai/providers.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -11
- package/dist/formatters/index.d.ts.map +0 -1
- package/dist/formatters/index.js +0 -19
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/json.d.ts +0 -89
- package/dist/formatters/json.d.ts.map +0 -1
- package/dist/formatters/json.js +0 -72
- package/dist/formatters/json.js.map +0 -1
- package/dist/formatters/sarif.d.ts +0 -101
- package/dist/formatters/sarif.d.ts.map +0 -1
- package/dist/formatters/sarif.js +0 -163
- package/dist/formatters/sarif.js.map +0 -1
- package/dist/formatters/text.d.ts +0 -35
- package/dist/formatters/text.d.ts.map +0 -1
- package/dist/formatters/text.js +0 -209
- package/dist/formatters/text.js.map +0 -1
- package/dist/index.d.ts +0 -111
- package/dist/index.js +0 -97
- package/dist/ports/ai.d.ts +0 -59
- package/dist/ports/ai.d.ts.map +0 -1
- package/dist/ports/fs.d.ts +0 -81
- package/dist/ports/fs.d.ts.map +0 -1
- package/dist/ports/git.d.ts +0 -46
- package/dist/ports/git.d.ts.map +0 -1
- package/dist/ports/index.d.ts +0 -6
- package/dist/ports/logger.d.ts +0 -88
- package/dist/ports/logger.d.ts.map +0 -1
- package/dist/ports/rulesync.d.ts +0 -38
- package/dist/ports/rulesync.d.ts.map +0 -1
- package/dist/ports/watcher.d.ts +0 -52
- package/dist/ports/watcher.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/claude-code.d.ts +0 -35
- package/dist/services/agent-guide/adapters/claude-code.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/claude-code.js +0 -144
- package/dist/services/agent-guide/adapters/claude-code.js.map +0 -1
- package/dist/services/agent-guide/adapters/cursor-cli.d.ts +0 -39
- package/dist/services/agent-guide/adapters/cursor-cli.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/cursor-cli.js +0 -135
- package/dist/services/agent-guide/adapters/cursor-cli.js.map +0 -1
- package/dist/services/agent-guide/adapters/generic-mcp.d.ts +0 -53
- package/dist/services/agent-guide/adapters/generic-mcp.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/generic-mcp.js +0 -159
- package/dist/services/agent-guide/adapters/generic-mcp.js.map +0 -1
- package/dist/services/agent-guide/adapters/index.d.ts +0 -23
- package/dist/services/agent-guide/adapters/index.d.ts.map +0 -1
- package/dist/services/agent-guide/adapters/index.js +0 -31
- package/dist/services/agent-guide/adapters/index.js.map +0 -1
- package/dist/services/agent-guide/agent-guide-service.d.ts +0 -56
- package/dist/services/agent-guide/agent-guide-service.d.ts.map +0 -1
- package/dist/services/agent-guide/agent-guide-service.js +0 -147
- package/dist/services/agent-guide/agent-guide-service.js.map +0 -1
- package/dist/services/agent-guide/index.d.ts +0 -6
- package/dist/services/agent-guide/index.js +0 -5
- package/dist/services/agent-guide/types.d.ts +0 -58
- package/dist/services/agent-guide/types.d.ts.map +0 -1
- package/dist/services/build.d.ts +0 -59
- package/dist/services/build.d.ts.map +0 -1
- package/dist/services/build.js +0 -140
- package/dist/services/build.js.map +0 -1
- package/dist/services/ci-check/ci-check-service.d.ts +0 -16
- package/dist/services/ci-check/ci-check-service.d.ts.map +0 -1
- package/dist/services/ci-check/ci-check-service.js +0 -459
- package/dist/services/ci-check/ci-check-service.js.map +0 -1
- package/dist/services/ci-check/index.d.ts +0 -2
- package/dist/services/ci-check/index.js +0 -2
- package/dist/services/ci-check/types.d.ts +0 -143
- package/dist/services/ci-check/types.d.ts.map +0 -1
- package/dist/services/ci-check/types.js +0 -31
- package/dist/services/ci-check/types.js.map +0 -1
- package/dist/services/clean.d.ts +0 -41
- package/dist/services/clean.d.ts.map +0 -1
- package/dist/services/clean.js +0 -72
- package/dist/services/clean.js.map +0 -1
- package/dist/services/config.d.ts +0 -16
- package/dist/services/config.d.ts.map +0 -1
- package/dist/services/config.js +0 -63
- package/dist/services/config.js.map +0 -1
- package/dist/services/create/ai-generator.d.ts +0 -84
- package/dist/services/create/ai-generator.d.ts.map +0 -1
- package/dist/services/create/ai-generator.js +0 -178
- package/dist/services/create/ai-generator.js.map +0 -1
- package/dist/services/create/index.d.ts +0 -27
- package/dist/services/create/index.d.ts.map +0 -1
- package/dist/services/create/index.js +0 -36
- package/dist/services/create/index.js.map +0 -1
- package/dist/services/create/templates.d.ts +0 -21
- package/dist/services/create/templates.d.ts.map +0 -1
- package/dist/services/create/templates.js +0 -37
- package/dist/services/create/templates.js.map +0 -1
- package/dist/services/deps.d.ts +0 -53
- package/dist/services/deps.d.ts.map +0 -1
- package/dist/services/deps.js +0 -62
- package/dist/services/deps.js.map +0 -1
- package/dist/services/diff.d.ts +0 -34
- package/dist/services/diff.d.ts.map +0 -1
- package/dist/services/diff.js +0 -34
- package/dist/services/diff.js.map +0 -1
- package/dist/services/docs/docs-service.d.ts +0 -19
- package/dist/services/docs/docs-service.d.ts.map +0 -1
- package/dist/services/docs/docs-service.js +0 -41
- package/dist/services/docs/docs-service.js.map +0 -1
- package/dist/services/docs/index.d.ts +0 -1
- package/dist/services/docs/index.js +0 -1
- package/dist/services/doctor/checks/ai.js +0 -119
- package/dist/services/doctor/checks/ai.js.map +0 -1
- package/dist/services/doctor/checks/cli.js +0 -156
- package/dist/services/doctor/checks/cli.js.map +0 -1
- package/dist/services/doctor/checks/config.js +0 -303
- package/dist/services/doctor/checks/config.js.map +0 -1
- package/dist/services/doctor/checks/deps.js +0 -267
- package/dist/services/doctor/checks/deps.js.map +0 -1
- package/dist/services/doctor/checks/index.js +0 -7
- package/dist/services/doctor/checks/layers.js +0 -139
- package/dist/services/doctor/checks/layers.js.map +0 -1
- package/dist/services/doctor/checks/mcp.js +0 -145
- package/dist/services/doctor/checks/mcp.js.map +0 -1
- package/dist/services/doctor/checks/workspace.js +0 -263
- package/dist/services/doctor/checks/workspace.js.map +0 -1
- package/dist/services/doctor/doctor-service.d.ts +0 -24
- package/dist/services/doctor/doctor-service.d.ts.map +0 -1
- package/dist/services/doctor/doctor-service.js +0 -118
- package/dist/services/doctor/doctor-service.js.map +0 -1
- package/dist/services/doctor/index.d.ts +0 -2
- package/dist/services/doctor/index.js +0 -2
- package/dist/services/doctor/types.d.ts +0 -118
- package/dist/services/doctor/types.d.ts.map +0 -1
- package/dist/services/doctor/types.js +0 -29
- package/dist/services/doctor/types.js.map +0 -1
- package/dist/services/formatter.d.ts +0 -15
- package/dist/services/formatter.d.ts.map +0 -1
- package/dist/services/formatter.js +0 -26
- package/dist/services/formatter.js.map +0 -1
- package/dist/services/hooks/hooks-service.d.ts +0 -24
- package/dist/services/hooks/hooks-service.d.ts.map +0 -1
- package/dist/services/hooks/hooks-service.js +0 -126
- package/dist/services/hooks/hooks-service.js.map +0 -1
- package/dist/services/hooks/index.d.ts +0 -10
- package/dist/services/hooks/index.d.ts.map +0 -1
- package/dist/services/hooks/index.js +0 -12
- package/dist/services/hooks/index.js.map +0 -1
- package/dist/services/hooks/types.d.ts +0 -56
- package/dist/services/hooks/types.d.ts.map +0 -1
- package/dist/services/impact/formatters.d.ts +0 -27
- package/dist/services/impact/formatters.d.ts.map +0 -1
- package/dist/services/impact/formatters.js +0 -111
- package/dist/services/impact/formatters.js.map +0 -1
- package/dist/services/impact/impact-detection-service.d.ts +0 -22
- package/dist/services/impact/impact-detection-service.d.ts.map +0 -1
- package/dist/services/impact/impact-detection-service.js +0 -96
- package/dist/services/impact/impact-detection-service.js.map +0 -1
- package/dist/services/impact/index.d.ts +0 -11
- package/dist/services/impact/index.d.ts.map +0 -1
- package/dist/services/impact/index.js +0 -16
- package/dist/services/impact/index.js.map +0 -1
- package/dist/services/impact/types.d.ts +0 -58
- package/dist/services/impact/types.d.ts.map +0 -1
- package/dist/services/implementation/discovery.d.ts +0 -30
- package/dist/services/implementation/discovery.d.ts.map +0 -1
- package/dist/services/implementation/discovery.js +0 -144
- package/dist/services/implementation/discovery.js.map +0 -1
- package/dist/services/implementation/index.d.ts +0 -3
- package/dist/services/implementation/index.js +0 -2
- package/dist/services/implementation/resolver.d.ts +0 -44
- package/dist/services/implementation/resolver.d.ts.map +0 -1
- package/dist/services/implementation/resolver.js +0 -224
- package/dist/services/implementation/resolver.js.map +0 -1
- package/dist/services/implementation/types.d.ts +0 -79
- package/dist/services/implementation/types.d.ts.map +0 -1
- package/dist/services/index.d.ts +0 -91
- package/dist/services/index.js +0 -87
- package/dist/services/integrity-diagram.d.ts +0 -36
- package/dist/services/integrity-diagram.d.ts.map +0 -1
- package/dist/services/integrity-diagram.js +0 -275
- package/dist/services/integrity-diagram.js.map +0 -1
- package/dist/services/integrity.d.ts +0 -134
- package/dist/services/integrity.d.ts.map +0 -1
- package/dist/services/integrity.js +0 -272
- package/dist/services/integrity.js.map +0 -1
- package/dist/services/layer-discovery.d.ts +0 -77
- package/dist/services/layer-discovery.d.ts.map +0 -1
- package/dist/services/layer-discovery.js +0 -121
- package/dist/services/layer-discovery.js.map +0 -1
- package/dist/services/list.d.ts +0 -31
- package/dist/services/list.d.ts.map +0 -1
- package/dist/services/list.js +0 -36
- package/dist/services/list.js.map +0 -1
- package/dist/services/llm/index.d.ts +0 -28
- package/dist/services/llm/index.d.ts.map +0 -1
- package/dist/services/llm/index.js +0 -187
- package/dist/services/llm/index.js.map +0 -1
- package/dist/services/llm/verify-static.d.ts +0 -26
- package/dist/services/llm/verify-static.d.ts.map +0 -1
- package/dist/services/llm/verify-static.js +0 -82
- package/dist/services/llm/verify-static.js.map +0 -1
- package/dist/services/openapi/export-service.d.ts +0 -53
- package/dist/services/openapi/export-service.d.ts.map +0 -1
- package/dist/services/openapi/export-service.js +0 -50
- package/dist/services/openapi/export-service.js.map +0 -1
- package/dist/services/openapi/import-service.d.ts +0 -17
- package/dist/services/openapi/import-service.d.ts.map +0 -1
- package/dist/services/openapi/import-service.js +0 -168
- package/dist/services/openapi/import-service.js.map +0 -1
- package/dist/services/openapi/index.d.ts +0 -5
- package/dist/services/openapi/index.js +0 -4
- package/dist/services/openapi/sync-service.d.ts +0 -17
- package/dist/services/openapi/sync-service.d.ts.map +0 -1
- package/dist/services/openapi/sync-service.js +0 -120
- package/dist/services/openapi/sync-service.js.map +0 -1
- package/dist/services/openapi/types.d.ts +0 -162
- package/dist/services/openapi/types.d.ts.map +0 -1
- package/dist/services/openapi/validate-service.d.ts +0 -16
- package/dist/services/openapi/validate-service.d.ts.map +0 -1
- package/dist/services/openapi/validate-service.js +0 -130
- package/dist/services/openapi/validate-service.js.map +0 -1
- package/dist/services/quickstart/dependencies.d.ts +0 -31
- package/dist/services/quickstart/dependencies.d.ts.map +0 -1
- package/dist/services/quickstart/dependencies.js +0 -57
- package/dist/services/quickstart/dependencies.js.map +0 -1
- package/dist/services/quickstart/index.js +0 -2
- package/dist/services/quickstart/quickstart-service.d.ts +0 -20
- package/dist/services/quickstart/quickstart-service.d.ts.map +0 -1
- package/dist/services/quickstart/quickstart-service.js +0 -196
- package/dist/services/quickstart/quickstart-service.js.map +0 -1
- package/dist/services/quickstart/types.d.ts +0 -81
- package/dist/services/quickstart/types.d.ts.map +0 -1
- package/dist/services/regenerator.d.ts +0 -18
- package/dist/services/regenerator.d.ts.map +0 -1
- package/dist/services/regenerator.js +0 -23
- package/dist/services/regenerator.js.map +0 -1
- package/dist/services/registry.d.ts +0 -53
- package/dist/services/registry.d.ts.map +0 -1
- package/dist/services/registry.js +0 -74
- package/dist/services/registry.js.map +0 -1
- package/dist/services/rulesync.d.ts +0 -17
- package/dist/services/rulesync.d.ts.map +0 -1
- package/dist/services/rulesync.js +0 -71
- package/dist/services/rulesync.js.map +0 -1
- package/dist/services/setup/config-generators.d.ts +0 -42
- package/dist/services/setup/config-generators.d.ts.map +0 -1
- package/dist/services/setup/config-generators.js +0 -252
- package/dist/services/setup/config-generators.js.map +0 -1
- package/dist/services/setup/file-merger.d.ts +0 -27
- package/dist/services/setup/file-merger.d.ts.map +0 -1
- package/dist/services/setup/file-merger.js +0 -61
- package/dist/services/setup/file-merger.js.map +0 -1
- package/dist/services/setup/index.js +0 -4
- package/dist/services/setup/setup-service.d.ts +0 -12
- package/dist/services/setup/setup-service.d.ts.map +0 -1
- package/dist/services/setup/setup-service.js +0 -96
- package/dist/services/setup/setup-service.js.map +0 -1
- package/dist/services/setup/targets/agents-md.js +0 -47
- package/dist/services/setup/targets/agents-md.js.map +0 -1
- package/dist/services/setup/targets/cli-config.js +0 -60
- package/dist/services/setup/targets/cli-config.js.map +0 -1
- package/dist/services/setup/targets/cursor-rules.js +0 -48
- package/dist/services/setup/targets/cursor-rules.js.map +0 -1
- package/dist/services/setup/targets/mcp-claude.js +0 -60
- package/dist/services/setup/targets/mcp-claude.js.map +0 -1
- package/dist/services/setup/targets/mcp-cursor.js +0 -59
- package/dist/services/setup/targets/mcp-cursor.js.map +0 -1
- package/dist/services/setup/targets/vscode-settings.js +0 -63
- package/dist/services/setup/targets/vscode-settings.js.map +0 -1
- package/dist/services/setup/types.d.ts +0 -85
- package/dist/services/setup/types.d.ts.map +0 -1
- package/dist/services/setup/types.js +0 -27
- package/dist/services/setup/types.js.map +0 -1
- package/dist/services/sync.d.ts +0 -42
- package/dist/services/sync.d.ts.map +0 -1
- package/dist/services/sync.js +0 -64
- package/dist/services/sync.js.map +0 -1
- package/dist/services/test/index.d.ts +0 -1
- package/dist/services/test/index.js +0 -1
- package/dist/services/test/test-service.d.ts +0 -22
- package/dist/services/test/test-service.d.ts.map +0 -1
- package/dist/services/test/test-service.js +0 -81
- package/dist/services/test/test-service.js.map +0 -1
- package/dist/services/upgrade/index.d.ts +0 -10
- package/dist/services/upgrade/index.d.ts.map +0 -1
- package/dist/services/upgrade/index.js +0 -15
- package/dist/services/upgrade/index.js.map +0 -1
- package/dist/services/upgrade/types.d.ts +0 -78
- package/dist/services/upgrade/types.d.ts.map +0 -1
- package/dist/services/upgrade/upgrade-service.d.ts +0 -38
- package/dist/services/upgrade/upgrade-service.d.ts.map +0 -1
- package/dist/services/upgrade/upgrade-service.js +0 -201
- package/dist/services/upgrade/upgrade-service.js.map +0 -1
- package/dist/services/validate/blueprint-validator.d.ts +0 -23
- package/dist/services/validate/blueprint-validator.d.ts.map +0 -1
- package/dist/services/validate/blueprint-validator.js +0 -50
- package/dist/services/validate/blueprint-validator.js.map +0 -1
- package/dist/services/validate/implementation-agent-validator.d.ts +0 -20
- package/dist/services/validate/implementation-agent-validator.d.ts.map +0 -1
- package/dist/services/validate/implementation-agent-validator.js +0 -42
- package/dist/services/validate/implementation-agent-validator.js.map +0 -1
- package/dist/services/validate/implementation-validator.d.ts +0 -32
- package/dist/services/validate/implementation-validator.d.ts.map +0 -1
- package/dist/services/validate/implementation-validator.js +0 -64
- package/dist/services/validate/implementation-validator.js.map +0 -1
- package/dist/services/validate/index.d.ts +0 -5
- package/dist/services/validate/index.js +0 -5
- package/dist/services/validate/spec-validator.d.ts +0 -42
- package/dist/services/validate/spec-validator.d.ts.map +0 -1
- package/dist/services/validate/spec-validator.js +0 -50
- package/dist/services/validate/spec-validator.js.map +0 -1
- package/dist/services/validate/tenant-validator.d.ts +0 -21
- package/dist/services/validate/tenant-validator.d.ts.map +0 -1
- package/dist/services/validate/tenant-validator.js +0 -165
- package/dist/services/validate/tenant-validator.js.map +0 -1
- package/dist/services/verification-cache/adapters/filesystem.d.ts +0 -46
- package/dist/services/verification-cache/adapters/filesystem.d.ts.map +0 -1
- package/dist/services/verification-cache/adapters/filesystem.js +0 -120
- package/dist/services/verification-cache/adapters/filesystem.js.map +0 -1
- package/dist/services/verification-cache/adapters/in-memory.d.ts +0 -27
- package/dist/services/verification-cache/adapters/in-memory.d.ts.map +0 -1
- package/dist/services/verification-cache/adapters/in-memory.js +0 -46
- package/dist/services/verification-cache/adapters/in-memory.js.map +0 -1
- package/dist/services/verification-cache/adapters/index.d.ts +0 -3
- package/dist/services/verification-cache/adapters/index.js +0 -3
- package/dist/services/verification-cache/adapters/workspace-state.d.ts +0 -49
- package/dist/services/verification-cache/adapters/workspace-state.d.ts.map +0 -1
- package/dist/services/verification-cache/adapters/workspace-state.js +0 -91
- package/dist/services/verification-cache/adapters/workspace-state.js.map +0 -1
- package/dist/services/verification-cache/cache-service.d.ts +0 -70
- package/dist/services/verification-cache/cache-service.d.ts.map +0 -1
- package/dist/services/verification-cache/cache-service.js +0 -256
- package/dist/services/verification-cache/cache-service.js.map +0 -1
- package/dist/services/verification-cache/index.d.ts +0 -6
- package/dist/services/verification-cache/index.js +0 -6
- package/dist/services/verification-cache/types.d.ts +0 -124
- package/dist/services/verification-cache/types.d.ts.map +0 -1
- package/dist/services/verification-cache/types.js +0 -16
- package/dist/services/verification-cache/types.js.map +0 -1
- package/dist/services/verify/ai-verifier.d.ts +0 -25
- package/dist/services/verify/ai-verifier.d.ts.map +0 -1
- package/dist/services/verify/ai-verifier.js +0 -403
- package/dist/services/verify/ai-verifier.js.map +0 -1
- package/dist/services/verify/behavior-verifier.d.ts +0 -12
- package/dist/services/verify/behavior-verifier.d.ts.map +0 -1
- package/dist/services/verify/behavior-verifier.js +0 -186
- package/dist/services/verify/behavior-verifier.js.map +0 -1
- package/dist/services/verify/index.d.ts +0 -5
- package/dist/services/verify/index.js +0 -4
- package/dist/services/verify/structure-verifier.d.ts +0 -12
- package/dist/services/verify/structure-verifier.d.ts.map +0 -1
- package/dist/services/verify/structure-verifier.js +0 -196
- package/dist/services/verify/structure-verifier.js.map +0 -1
- package/dist/services/verify/types.d.ts +0 -137
- package/dist/services/verify/types.d.ts.map +0 -1
- package/dist/services/verify/verify-service.d.ts +0 -60
- package/dist/services/verify/verify-service.d.ts.map +0 -1
- package/dist/services/verify/verify-service.js +0 -204
- package/dist/services/verify/verify-service.js.map +0 -1
- package/dist/services/versioning/changelog-formatter.d.ts +0 -24
- package/dist/services/versioning/changelog-formatter.d.ts.map +0 -1
- package/dist/services/versioning/changelog-formatter.js +0 -155
- package/dist/services/versioning/changelog-formatter.js.map +0 -1
- package/dist/services/versioning/conventional-commits.d.ts +0 -95
- package/dist/services/versioning/conventional-commits.d.ts.map +0 -1
- package/dist/services/versioning/conventional-commits.js +0 -184
- package/dist/services/versioning/conventional-commits.js.map +0 -1
- package/dist/services/versioning/index.d.ts +0 -12
- package/dist/services/versioning/index.d.ts.map +0 -1
- package/dist/services/versioning/index.js +0 -28
- package/dist/services/versioning/index.js.map +0 -1
- package/dist/services/versioning/types.d.ts +0 -135
- package/dist/services/versioning/types.d.ts.map +0 -1
- package/dist/services/versioning/versioning-service.d.ts +0 -74
- package/dist/services/versioning/versioning-service.d.ts.map +0 -1
- package/dist/services/versioning/versioning-service.js +0 -501
- package/dist/services/versioning/versioning-service.js.map +0 -1
- package/dist/services/watch.d.ts +0 -25
- package/dist/services/watch.d.ts.map +0 -1
- package/dist/services/watch.js +0 -33
- package/dist/services/watch.js.map +0 -1
- package/dist/services/workspace-info.d.ts +0 -62
- package/dist/services/workspace-info.d.ts.map +0 -1
- package/dist/services/workspace-info.js +0 -103
- package/dist/services/workspace-info.js.map +0 -1
- package/dist/templates/app-config.template.d.ts +0 -7
- package/dist/templates/app-config.template.d.ts.map +0 -1
- package/dist/templates/app-config.template.js +0 -107
- package/dist/templates/app-config.template.js.map +0 -1
- package/dist/templates/data-view.template.d.ts +0 -7
- package/dist/templates/data-view.template.d.ts.map +0 -1
- package/dist/templates/data-view.template.js +0 -70
- package/dist/templates/data-view.template.js.map +0 -1
- package/dist/templates/event.template.d.ts +0 -11
- package/dist/templates/event.template.d.ts.map +0 -1
- package/dist/templates/event.template.js +0 -42
- package/dist/templates/event.template.js.map +0 -1
- package/dist/templates/experiment.template.d.ts +0 -7
- package/dist/templates/experiment.template.d.ts.map +0 -1
- package/dist/templates/experiment.template.js +0 -89
- package/dist/templates/experiment.template.js.map +0 -1
- package/dist/templates/handler.template.d.ts +0 -16
- package/dist/templates/handler.template.d.ts.map +0 -1
- package/dist/templates/handler.template.js +0 -100
- package/dist/templates/handler.template.js.map +0 -1
- package/dist/templates/index.d.ts +0 -21
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/index.js +0 -37
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/integration.template.d.ts +0 -7
- package/dist/templates/integration.template.d.ts.map +0 -1
- package/dist/templates/integration.template.js +0 -160
- package/dist/templates/integration.template.js.map +0 -1
- package/dist/templates/knowledge.template.d.ts +0 -7
- package/dist/templates/knowledge.template.d.ts.map +0 -1
- package/dist/templates/knowledge.template.js +0 -75
- package/dist/templates/knowledge.template.js.map +0 -1
- package/dist/templates/migration.template.d.ts +0 -7
- package/dist/templates/migration.template.d.ts.map +0 -1
- package/dist/templates/migration.template.js +0 -62
- package/dist/templates/migration.template.js.map +0 -1
- package/dist/templates/operation.template.d.ts +0 -11
- package/dist/templates/operation.template.d.ts.map +0 -1
- package/dist/templates/operation.template.js +0 -107
- package/dist/templates/operation.template.js.map +0 -1
- package/dist/templates/presentation.template.d.ts +0 -11
- package/dist/templates/presentation.template.d.ts.map +0 -1
- package/dist/templates/presentation.template.js +0 -80
- package/dist/templates/presentation.template.js.map +0 -1
- package/dist/templates/telemetry.template.d.ts +0 -7
- package/dist/templates/telemetry.template.d.ts.map +0 -1
- package/dist/templates/telemetry.template.js +0 -91
- package/dist/templates/telemetry.template.js.map +0 -1
- package/dist/templates/workflow-runner.template.d.ts +0 -16
- package/dist/templates/workflow-runner.template.d.ts.map +0 -1
- package/dist/templates/workflow-runner.template.js +0 -50
- package/dist/templates/workflow-runner.template.js.map +0 -1
- package/dist/templates/workflow.template.d.ts +0 -7
- package/dist/templates/workflow.template.d.ts.map +0 -1
- package/dist/templates/workflow.template.js +0 -69
- package/dist/templates/workflow.template.js.map +0 -1
- package/dist/types/config.d.ts +0 -34
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types.d.ts +0 -324
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/module-loader.js +0 -41
- package/dist/utils/module-loader.js.map +0 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { VerificationReport, VerificationTier } from "@contractspec/lib.contracts/llm";
|
|
2
|
+
|
|
3
|
+
//#region src/services/verification-cache/types.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Cache key for verification results.
|
|
7
|
+
*/
|
|
8
|
+
interface VerificationCacheKey {
|
|
9
|
+
/** SHA256 hash of spec file content */
|
|
10
|
+
specHash: string;
|
|
11
|
+
/** SHA256 hash of implementation file content */
|
|
12
|
+
implHash: string;
|
|
13
|
+
/** Verification tier */
|
|
14
|
+
tier: VerificationTier;
|
|
15
|
+
/** AI model version (for AI tier, ensures cache invalidation on model change) */
|
|
16
|
+
aiModelVersion?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Serializable cache key string.
|
|
20
|
+
*/
|
|
21
|
+
type CacheKeyString = string;
|
|
22
|
+
/**
|
|
23
|
+
* Cache entry metadata.
|
|
24
|
+
*/
|
|
25
|
+
interface CacheEntryMeta {
|
|
26
|
+
/** When this entry was created */
|
|
27
|
+
createdAt: string;
|
|
28
|
+
/** When this entry expires (optional TTL) */
|
|
29
|
+
expiresAt?: string;
|
|
30
|
+
/** Paths to files that affect this result (for transitive invalidation) */
|
|
31
|
+
dependencies: string[];
|
|
32
|
+
/** Human-readable spec name for debugging */
|
|
33
|
+
specName?: string;
|
|
34
|
+
/** Human-readable impl path for debugging */
|
|
35
|
+
implPath?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Full cache entry with result.
|
|
39
|
+
*/
|
|
40
|
+
interface VerificationCacheEntry {
|
|
41
|
+
/** The cache key */
|
|
42
|
+
key: VerificationCacheKey;
|
|
43
|
+
/** The verification result */
|
|
44
|
+
result: VerificationReport;
|
|
45
|
+
/** Entry metadata */
|
|
46
|
+
meta: CacheEntryMeta;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Cache lookup result.
|
|
50
|
+
*/
|
|
51
|
+
type CacheLookupResult = {
|
|
52
|
+
hit: true;
|
|
53
|
+
entry: VerificationCacheEntry;
|
|
54
|
+
} | {
|
|
55
|
+
hit: false;
|
|
56
|
+
reason: CacheMissReason;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Reasons for cache miss.
|
|
60
|
+
*/
|
|
61
|
+
type CacheMissReason = 'not_found' | 'expired' | 'spec_changed' | 'impl_changed' | 'dependency_changed' | 'model_changed';
|
|
62
|
+
/**
|
|
63
|
+
* Cache statistics.
|
|
64
|
+
*/
|
|
65
|
+
interface CacheStats {
|
|
66
|
+
/** Total entries in cache */
|
|
67
|
+
totalEntries: number;
|
|
68
|
+
/** Number of cache hits since startup */
|
|
69
|
+
hits: number;
|
|
70
|
+
/** Number of cache misses since startup */
|
|
71
|
+
misses: number;
|
|
72
|
+
/** Hit rate percentage (0-100) */
|
|
73
|
+
hitRate: number;
|
|
74
|
+
/** Estimated memory usage in bytes */
|
|
75
|
+
memoryUsage?: number;
|
|
76
|
+
/** Last time cache was pruned */
|
|
77
|
+
lastPruned?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Cache configuration.
|
|
81
|
+
*/
|
|
82
|
+
interface VerificationCacheConfig {
|
|
83
|
+
/** Maximum number of entries to keep */
|
|
84
|
+
maxEntries?: number;
|
|
85
|
+
/** Default TTL in milliseconds (AI tier uses this) */
|
|
86
|
+
defaultTtlMs?: number;
|
|
87
|
+
/** TTL for structure tier (usually longer) */
|
|
88
|
+
structureTtlMs?: number;
|
|
89
|
+
/** TTL for behavior tier */
|
|
90
|
+
behaviorTtlMs?: number;
|
|
91
|
+
/** TTL for AI tier (usually shorter) */
|
|
92
|
+
aiTtlMs?: number;
|
|
93
|
+
/** Enable transitive invalidation */
|
|
94
|
+
transitiveInvalidation?: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Default cache configuration.
|
|
98
|
+
*/
|
|
99
|
+
declare const DEFAULT_CACHE_CONFIG: Required<VerificationCacheConfig>;
|
|
100
|
+
/**
|
|
101
|
+
* Storage adapter interface for cache persistence.
|
|
102
|
+
*/
|
|
103
|
+
interface CacheStorageAdapter {
|
|
104
|
+
/** Get an entry by key */
|
|
105
|
+
get(key: CacheKeyString): Promise<VerificationCacheEntry | null>;
|
|
106
|
+
/** Set an entry */
|
|
107
|
+
set(key: CacheKeyString, entry: VerificationCacheEntry): Promise<void>;
|
|
108
|
+
/** Delete an entry */
|
|
109
|
+
delete(key: CacheKeyString): Promise<boolean>;
|
|
110
|
+
/** Check if key exists */
|
|
111
|
+
has(key: CacheKeyString): Promise<boolean>;
|
|
112
|
+
/** List all keys */
|
|
113
|
+
keys(): Promise<CacheKeyString[]>;
|
|
114
|
+
/** Clear all entries */
|
|
115
|
+
clear(): Promise<void>;
|
|
116
|
+
/** Get stats (optional) */
|
|
117
|
+
stats?(): Promise<{
|
|
118
|
+
entryCount: number;
|
|
119
|
+
memoryUsage?: number;
|
|
120
|
+
}>;
|
|
121
|
+
}
|
|
122
|
+
//#endregion
|
|
123
|
+
export { CacheEntryMeta, CacheKeyString, CacheLookupResult, CacheMissReason, CacheStats, CacheStorageAdapter, DEFAULT_CACHE_CONFIG, VerificationCacheConfig, VerificationCacheEntry, VerificationCacheKey };
|
|
124
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/services/verification-cache/types.ts"],"sourcesContent":[],"mappings":";;;;AA0BA;AAKA;AAgBA;AAEO,UArCU,oBAAA,CAqCV;EAEG;EAEF,QAAA,EAAA,MAAA;EAAc;EAMV,QAAA,EAAA,MAAA;EAOA;EAWK,IAAA,EA3DT,gBA2DmB;EAkBV;EAkBJ,cAAA,CAAA,EAAA,MAOZ;AAKD;;;;AAIW,KAvGC,cAAA,GAuGD,MAAA;;;;AAEoB,UApGd,cAAA,CAoGc;EAEpB;EAAiB,SAAA,EAAA,MAAA;EAEV;EAAR,SAAA,CAAA,EAAA,MAAA;EAEC;EAEC,YAAA,EAAA,MAAA,EAAA;EAAO;;;;;;;;UA5FF,sBAAA;;OAEV;;UAEG;;QAEF;;;;;KAMI,iBAAA;;SACY;;;UACE;;;;;KAKd,eAAA;;;;UAWK,UAAA;;;;;;;;;;;;;;;;;UAkBA,uBAAA;;;;;;;;;;;;;;;;;cAkBJ,sBAAsB,SAAS;;;;UAY3B,mBAAA;;WAEN,iBAAiB,QAAQ;;WAEzB,uBAAuB,yBAAyB;;cAE7C,iBAAiB;;WAEpB,iBAAiB;;UAElB,QAAQ;;WAEP;;YAEC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/services/verification-cache/types.ts
|
|
2
|
+
/**
|
|
3
|
+
* Default cache configuration.
|
|
4
|
+
*/
|
|
5
|
+
const DEFAULT_CACHE_CONFIG = {
|
|
6
|
+
maxEntries: 1e3,
|
|
7
|
+
defaultTtlMs: 1440 * 60 * 1e3,
|
|
8
|
+
structureTtlMs: 10080 * 60 * 1e3,
|
|
9
|
+
behaviorTtlMs: 1440 * 60 * 1e3,
|
|
10
|
+
aiTtlMs: 1440 * 60 * 1e3,
|
|
11
|
+
transitiveInvalidation: true
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DEFAULT_CACHE_CONFIG };
|
|
16
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/services/verification-cache/types.ts"],"sourcesContent":["/**\n * Types for verification caching.\n */\n\nimport type {\n VerificationReport,\n VerificationTier,\n} from '@contractspec/lib.contracts/llm';\n\n/**\n * Cache key for verification results.\n */\nexport interface VerificationCacheKey {\n /** SHA256 hash of spec file content */\n specHash: string;\n /** SHA256 hash of implementation file content */\n implHash: string;\n /** Verification tier */\n tier: VerificationTier;\n /** AI model version (for AI tier, ensures cache invalidation on model change) */\n aiModelVersion?: string;\n}\n\n/**\n * Serializable cache key string.\n */\nexport type CacheKeyString = string;\n\n/**\n * Cache entry metadata.\n */\nexport interface CacheEntryMeta {\n /** When this entry was created */\n createdAt: string;\n /** When this entry expires (optional TTL) */\n expiresAt?: string;\n /** Paths to files that affect this result (for transitive invalidation) */\n dependencies: string[];\n /** Human-readable spec name for debugging */\n specName?: string;\n /** Human-readable impl path for debugging */\n implPath?: string;\n}\n\n/**\n * Full cache entry with result.\n */\nexport interface VerificationCacheEntry {\n /** The cache key */\n key: VerificationCacheKey;\n /** The verification result */\n result: VerificationReport;\n /** Entry metadata */\n meta: CacheEntryMeta;\n}\n\n/**\n * Cache lookup result.\n */\nexport type CacheLookupResult =\n | { hit: true; entry: VerificationCacheEntry }\n | { hit: false; reason: CacheMissReason };\n\n/**\n * Reasons for cache miss.\n */\nexport type CacheMissReason =\n | 'not_found'\n | 'expired'\n | 'spec_changed'\n | 'impl_changed'\n | 'dependency_changed'\n | 'model_changed';\n\n/**\n * Cache statistics.\n */\nexport interface CacheStats {\n /** Total entries in cache */\n totalEntries: number;\n /** Number of cache hits since startup */\n hits: number;\n /** Number of cache misses since startup */\n misses: number;\n /** Hit rate percentage (0-100) */\n hitRate: number;\n /** Estimated memory usage in bytes */\n memoryUsage?: number;\n /** Last time cache was pruned */\n lastPruned?: string;\n}\n\n/**\n * Cache configuration.\n */\nexport interface VerificationCacheConfig {\n /** Maximum number of entries to keep */\n maxEntries?: number;\n /** Default TTL in milliseconds (AI tier uses this) */\n defaultTtlMs?: number;\n /** TTL for structure tier (usually longer) */\n structureTtlMs?: number;\n /** TTL for behavior tier */\n behaviorTtlMs?: number;\n /** TTL for AI tier (usually shorter) */\n aiTtlMs?: number;\n /** Enable transitive invalidation */\n transitiveInvalidation?: boolean;\n}\n\n/**\n * Default cache configuration.\n */\nexport const DEFAULT_CACHE_CONFIG: Required<VerificationCacheConfig> = {\n maxEntries: 1000,\n defaultTtlMs: 24 * 60 * 60 * 1000, // 24 hours\n structureTtlMs: 7 * 24 * 60 * 60 * 1000, // 7 days\n behaviorTtlMs: 24 * 60 * 60 * 1000, // 24 hours\n aiTtlMs: 24 * 60 * 60 * 1000, // 24 hours\n transitiveInvalidation: true,\n};\n\n/**\n * Storage adapter interface for cache persistence.\n */\nexport interface CacheStorageAdapter {\n /** Get an entry by key */\n get(key: CacheKeyString): Promise<VerificationCacheEntry | null>;\n /** Set an entry */\n set(key: CacheKeyString, entry: VerificationCacheEntry): Promise<void>;\n /** Delete an entry */\n delete(key: CacheKeyString): Promise<boolean>;\n /** Check if key exists */\n has(key: CacheKeyString): Promise<boolean>;\n /** List all keys */\n keys(): Promise<CacheKeyString[]>;\n /** Clear all entries */\n clear(): Promise<void>;\n /** Get stats (optional) */\n stats?(): Promise<{ entryCount: number; memoryUsage?: number }>;\n}\n"],"mappings":";;;;AAiHA,MAAa,uBAA0D;CACrE,YAAY;CACZ,cAAc,OAAU,KAAK;CAC7B,gBAAgB,QAAc,KAAK;CACnC,eAAe,OAAU,KAAK;CAC9B,SAAS,OAAU,KAAK;CACxB,wBAAwB;CACzB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SemanticVerificationResult, VerifyConfig, VerifyInput } from "./types.mjs";
|
|
2
|
+
import { VerificationReport } from "@contractspec/lib.contracts/llm";
|
|
3
|
+
|
|
4
|
+
//#region src/services/verify/ai-verifier.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Run AI-powered verification.
|
|
8
|
+
*/
|
|
9
|
+
declare function verifyWithAI(input: VerifyInput, config?: VerifyConfig): Promise<VerificationReport>;
|
|
10
|
+
/**
|
|
11
|
+
* Create a simpler AI review without calling the API.
|
|
12
|
+
* Used as fallback or for quick checks.
|
|
13
|
+
*/
|
|
14
|
+
declare function createQuickAIReview(input: VerifyInput): VerificationReport;
|
|
15
|
+
/**
|
|
16
|
+
* Run semantic field-level verification using AI.
|
|
17
|
+
*/
|
|
18
|
+
declare function verifySemanticFields(input: VerifyInput, config?: VerifyConfig): Promise<SemanticVerificationResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Run enhanced AI verification with semantic field analysis.
|
|
21
|
+
*/
|
|
22
|
+
declare function verifyWithAIEnhanced(input: VerifyInput, config?: VerifyConfig): Promise<VerificationReport>;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { createQuickAIReview, verifySemanticFields, verifyWithAI, verifyWithAIEnhanced };
|
|
25
|
+
//# sourceMappingURL=ai-verifier.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-verifier.d.mts","names":[],"sources":["../../../src/services/verify/ai-verifier.ts"],"sourcesContent":[],"mappings":";;;;;;;AAkPA;AAsPsB,iBArTA,YAAA,CAqToB,KAAA,EApTjC,WAoTiC,EAAA,MAAA,CAAA,EAnThC,YAmTgC,CAAA,EAlTvC,OAkTuC,CAlT/B,kBAkT+B,CAAA;;;;;AAGhC,iBAzPM,mBAAA,CAyPN,KAAA,EAzPiC,WAyPjC,CAAA,EAzP+C,kBAyP/C;AAmBV;;;AAGW,iBAzBW,oBAAA,CAyBX,KAAA,EAxBF,WAwBE,EAAA,MAAA,CAAA,EAvBD,YAuBC,CAAA,EAtBR,OAsBQ,CAtBA,0BAsBA,CAAA;;;;iBAHW,oBAAA,QACb,sBACC,eACP,QAAQ"}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import { generateVerificationPrompt } from "@contractspec/lib.contracts/llm";
|
|
2
|
+
|
|
3
|
+
//#region src/services/verify/ai-verifier.ts
|
|
4
|
+
/**
|
|
5
|
+
* Parse AI response to structured result.
|
|
6
|
+
*/
|
|
7
|
+
function parseAIResponse(response) {
|
|
8
|
+
const jsonMatch = response.match(/```json\n?([\s\S]*?)\n?```/);
|
|
9
|
+
if (jsonMatch?.[1]) try {
|
|
10
|
+
const parsed = JSON.parse(jsonMatch[1]);
|
|
11
|
+
return {
|
|
12
|
+
compliant: parsed.passed ?? false,
|
|
13
|
+
confidence: (parsed.score ?? 0) / 100,
|
|
14
|
+
findings: (parsed.issues ?? []).map((issue) => ({
|
|
15
|
+
category: String(issue.category ?? "semantic"),
|
|
16
|
+
severity: String(issue.severity ?? "warning"),
|
|
17
|
+
message: String(issue.message ?? ""),
|
|
18
|
+
location: issue.location ? String(issue.location) : void 0,
|
|
19
|
+
suggestion: issue.suggestion ? String(issue.suggestion) : void 0
|
|
20
|
+
})),
|
|
21
|
+
rawResponse: response
|
|
22
|
+
};
|
|
23
|
+
} catch {}
|
|
24
|
+
const findings = [];
|
|
25
|
+
const lines = response.split("\n");
|
|
26
|
+
let currentSeverity = "info";
|
|
27
|
+
for (const line of lines) {
|
|
28
|
+
const lineLower = line.toLowerCase();
|
|
29
|
+
if (lineLower.includes("error") || lineLower.includes("critical")) currentSeverity = "error";
|
|
30
|
+
else if (lineLower.includes("warning") || lineLower.includes("should")) currentSeverity = "warning";
|
|
31
|
+
else if (lineLower.includes("info") || lineLower.includes("note")) currentSeverity = "info";
|
|
32
|
+
const bulletMatch = line.match(/^[-*•]\s*(.+)$/);
|
|
33
|
+
const numberedMatch = line.match(/^\d+\.\s*(.+)$/);
|
|
34
|
+
if (bulletMatch || numberedMatch) {
|
|
35
|
+
const content = bulletMatch?.[1] ?? numberedMatch?.[1] ?? "";
|
|
36
|
+
if (content.length > 10) findings.push({
|
|
37
|
+
category: "semantic",
|
|
38
|
+
severity: currentSeverity,
|
|
39
|
+
message: content
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const hasErrors = findings.some((f) => f.severity === "error");
|
|
44
|
+
return {
|
|
45
|
+
compliant: !hasErrors,
|
|
46
|
+
confidence: hasErrors ? .3 : findings.length === 0 ? .9 : .7,
|
|
47
|
+
findings,
|
|
48
|
+
rawResponse: response
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Call AI provider for verification.
|
|
53
|
+
* This is a placeholder - actual implementation would use AI SDK.
|
|
54
|
+
*/
|
|
55
|
+
async function callAI(prompt, config) {
|
|
56
|
+
if (!config.aiApiKey) return `\`\`\`json
|
|
57
|
+
{
|
|
58
|
+
"passed": true,
|
|
59
|
+
"score": 50,
|
|
60
|
+
"compliance": {
|
|
61
|
+
"inputTypes": { "match": true, "issues": [] },
|
|
62
|
+
"outputTypes": { "match": true, "issues": [] },
|
|
63
|
+
"errorHandling": { "coverage": "unknown", "missing": [] },
|
|
64
|
+
"eventEmission": { "correct": true, "issues": [] },
|
|
65
|
+
"policyCompliance": { "auth": true, "rateLimit": true, "pii": true }
|
|
66
|
+
},
|
|
67
|
+
"scenarios": [],
|
|
68
|
+
"issues": [
|
|
69
|
+
{ "severity": "info", "category": "semantic", "message": "AI verification not available - configure AI API key for full analysis" }
|
|
70
|
+
],
|
|
71
|
+
"summary": "AI verification skipped - no API key configured. Structure and behavior checks have been performed."
|
|
72
|
+
}
|
|
73
|
+
\`\`\``;
|
|
74
|
+
try {
|
|
75
|
+
const provider = config.aiProvider ?? "anthropic";
|
|
76
|
+
if (provider === "anthropic") {
|
|
77
|
+
const { anthropic } = await import("@ai-sdk/anthropic");
|
|
78
|
+
const { generateText } = await import("ai");
|
|
79
|
+
return (await generateText({
|
|
80
|
+
model: anthropic("claude-3-5-sonnet-20241022"),
|
|
81
|
+
prompt,
|
|
82
|
+
system: "You are an expert code reviewer analyzing implementation compliance with specifications. Respond with structured JSON."
|
|
83
|
+
})).text;
|
|
84
|
+
} else if (provider === "openai") {
|
|
85
|
+
const { openai } = await import("@ai-sdk/openai");
|
|
86
|
+
const { generateText } = await import("ai");
|
|
87
|
+
return (await generateText({
|
|
88
|
+
model: openai("gpt-4o"),
|
|
89
|
+
prompt,
|
|
90
|
+
system: "You are an expert code reviewer analyzing implementation compliance with specifications. Respond with structured JSON."
|
|
91
|
+
})).text;
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`Unknown AI provider: ${provider}`);
|
|
94
|
+
} catch (error) {
|
|
95
|
+
return `\`\`\`json
|
|
96
|
+
{
|
|
97
|
+
"passed": false,
|
|
98
|
+
"score": 0,
|
|
99
|
+
"issues": [
|
|
100
|
+
{ "severity": "error", "category": "semantic", "message": "AI verification failed: ${error instanceof Error ? error.message : "Unknown error"}" }
|
|
101
|
+
],
|
|
102
|
+
"summary": "AI verification encountered an error"
|
|
103
|
+
}
|
|
104
|
+
\`\`\``;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Run AI-powered verification.
|
|
109
|
+
*/
|
|
110
|
+
async function verifyWithAI(input, config = {}) {
|
|
111
|
+
const { spec, implementationCode, implementationPath } = input;
|
|
112
|
+
const startTime = Date.now();
|
|
113
|
+
const result = parseAIResponse(await callAI(generateVerificationPrompt(spec, implementationCode).taskPrompt, config));
|
|
114
|
+
const issues = result.findings.map((f) => ({
|
|
115
|
+
severity: f.severity,
|
|
116
|
+
category: "semantic",
|
|
117
|
+
message: f.message,
|
|
118
|
+
location: f.location ? { file: f.location } : implementationPath ? { file: implementationPath } : void 0,
|
|
119
|
+
suggestion: f.suggestion
|
|
120
|
+
}));
|
|
121
|
+
const score = Math.round(result.confidence * 100);
|
|
122
|
+
const passed = result.compliant;
|
|
123
|
+
return {
|
|
124
|
+
tier: "ai_review",
|
|
125
|
+
passed,
|
|
126
|
+
score,
|
|
127
|
+
issues,
|
|
128
|
+
suggestions: result.findings.filter((f) => f.suggestion).map((f) => f.suggestion),
|
|
129
|
+
coverage: {
|
|
130
|
+
scenarios: {
|
|
131
|
+
total: 0,
|
|
132
|
+
covered: 0
|
|
133
|
+
},
|
|
134
|
+
errors: {
|
|
135
|
+
total: 0,
|
|
136
|
+
handled: 0
|
|
137
|
+
},
|
|
138
|
+
fields: {
|
|
139
|
+
total: 1,
|
|
140
|
+
implemented: passed ? 1 : 0
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
meta: {
|
|
144
|
+
specName: spec.meta.key,
|
|
145
|
+
specVersion: spec.meta.version,
|
|
146
|
+
implementationPath: implementationPath ?? "unknown",
|
|
147
|
+
verifiedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
148
|
+
duration: Date.now() - startTime
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Create a simpler AI review without calling the API.
|
|
154
|
+
* Used as fallback or for quick checks.
|
|
155
|
+
*/
|
|
156
|
+
function createQuickAIReview(input) {
|
|
157
|
+
const { spec, implementationCode, implementationPath } = input;
|
|
158
|
+
const startTime = Date.now();
|
|
159
|
+
const issues = [];
|
|
160
|
+
if (implementationCode.includes("console.log")) issues.push({
|
|
161
|
+
severity: "warning",
|
|
162
|
+
category: "semantic",
|
|
163
|
+
message: "Console.log statements found - consider using proper logging",
|
|
164
|
+
suggestion: "Use a structured logger instead of console.log"
|
|
165
|
+
});
|
|
166
|
+
if (implementationCode.includes("// TODO") || implementationCode.includes("// FIXME")) issues.push({
|
|
167
|
+
severity: "info",
|
|
168
|
+
category: "semantic",
|
|
169
|
+
message: "TODO/FIXME comments found - implementation may be incomplete",
|
|
170
|
+
suggestion: "Address TODO items before finalizing implementation"
|
|
171
|
+
});
|
|
172
|
+
if (spec.policy.auth !== "anonymous" && !implementationCode.includes("auth")) issues.push({
|
|
173
|
+
severity: "warning",
|
|
174
|
+
category: "semantic",
|
|
175
|
+
message: `Spec requires ${spec.policy.auth} auth but no auth check found`,
|
|
176
|
+
suggestion: "Add authentication check at the handler entry point"
|
|
177
|
+
});
|
|
178
|
+
const score = issues.filter((i) => i.severity === "error").length === 0 ? 80 : 40;
|
|
179
|
+
const passed = issues.filter((i) => i.severity === "error").length === 0;
|
|
180
|
+
return {
|
|
181
|
+
tier: "ai_review",
|
|
182
|
+
passed,
|
|
183
|
+
score,
|
|
184
|
+
issues,
|
|
185
|
+
suggestions: issues.filter((i) => i.suggestion).map((i) => i.suggestion),
|
|
186
|
+
coverage: {
|
|
187
|
+
scenarios: {
|
|
188
|
+
total: 0,
|
|
189
|
+
covered: 0
|
|
190
|
+
},
|
|
191
|
+
errors: {
|
|
192
|
+
total: 0,
|
|
193
|
+
handled: 0
|
|
194
|
+
},
|
|
195
|
+
fields: {
|
|
196
|
+
total: 1,
|
|
197
|
+
implemented: passed ? 1 : 0
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
meta: {
|
|
201
|
+
specName: spec.meta.key,
|
|
202
|
+
specVersion: spec.meta.version,
|
|
203
|
+
implementationPath: implementationPath ?? "unknown",
|
|
204
|
+
verifiedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
205
|
+
duration: Date.now() - startTime
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Generate a prompt for semantic field verification.
|
|
211
|
+
*/
|
|
212
|
+
function generateSemanticFieldPrompt(specFields, implCode) {
|
|
213
|
+
return `You are analyzing a code implementation against its specification.
|
|
214
|
+
|
|
215
|
+
## Spec Schema Fields
|
|
216
|
+
${specFields}
|
|
217
|
+
|
|
218
|
+
## Implementation Code
|
|
219
|
+
\`\`\`typescript
|
|
220
|
+
${implCode}
|
|
221
|
+
\`\`\`
|
|
222
|
+
|
|
223
|
+
## Task
|
|
224
|
+
Analyze the implementation to verify it correctly implements the spec schema fields.
|
|
225
|
+
|
|
226
|
+
For each field in the spec:
|
|
227
|
+
1. Find the corresponding field/property in the implementation
|
|
228
|
+
2. Determine if the naming matches (exact, compatible synonym, or mismatch)
|
|
229
|
+
3. Check if the types are compatible
|
|
230
|
+
4. Identify any missing fields
|
|
231
|
+
|
|
232
|
+
Respond with JSON in this format:
|
|
233
|
+
\`\`\`json
|
|
234
|
+
{
|
|
235
|
+
"fieldMappings": [
|
|
236
|
+
{
|
|
237
|
+
"specField": "nickname",
|
|
238
|
+
"specType": "string",
|
|
239
|
+
"implementationField": "username",
|
|
240
|
+
"implementationType": "string",
|
|
241
|
+
"match": "compatible",
|
|
242
|
+
"aiConfidence": 0.85,
|
|
243
|
+
"suggestion": "Consider renaming 'username' to 'nickname' for exact spec compliance"
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"intentAlignment": {
|
|
247
|
+
"score": 85,
|
|
248
|
+
"issues": ["Field naming differs from spec"],
|
|
249
|
+
"suggestions": ["Rename fields to match spec exactly for better maintainability"]
|
|
250
|
+
},
|
|
251
|
+
"semanticIssues": []
|
|
252
|
+
}
|
|
253
|
+
\`\`\`
|
|
254
|
+
|
|
255
|
+
Match types:
|
|
256
|
+
- "exact": Field name and type match exactly
|
|
257
|
+
- "compatible": Semantically similar (e.g., "email" vs "emailAddress")
|
|
258
|
+
- "mismatch": Different meaning despite similar naming
|
|
259
|
+
- "missing": Spec field not found in implementation
|
|
260
|
+
`;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Extract field definitions from spec schema.
|
|
264
|
+
*/
|
|
265
|
+
function extractSpecFields(spec) {
|
|
266
|
+
const fields = [];
|
|
267
|
+
/**
|
|
268
|
+
* Helper to safely extract fields from a schema.
|
|
269
|
+
*/
|
|
270
|
+
const extractFromSchema = (schema, direction) => {
|
|
271
|
+
try {
|
|
272
|
+
const shapeFn = schema?._def?.shape;
|
|
273
|
+
if (shapeFn && typeof shapeFn === "function") {
|
|
274
|
+
const shapeObj = shapeFn();
|
|
275
|
+
for (const [key, value] of Object.entries(shapeObj)) {
|
|
276
|
+
const typeName = value?._def?.typeName ?? "unknown";
|
|
277
|
+
fields.push(`- ${key}: ${String(typeName).replace("Zod", "").toLowerCase()} (${direction})`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
} catch {
|
|
281
|
+
fields.push(`- [unable to extract ${direction} fields]`);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
if (spec.io.input) extractFromSchema(spec.io.input, "input");
|
|
285
|
+
if (spec.io.output && !("resourceRef" in spec.io.output)) extractFromSchema(spec.io.output, "output");
|
|
286
|
+
if (fields.length === 0) return "- [no schema fields could be extracted]";
|
|
287
|
+
return fields.join("\n");
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Parse semantic verification response from AI.
|
|
291
|
+
*/
|
|
292
|
+
function parseSemanticResponse(response) {
|
|
293
|
+
const jsonMatch = response.match(/```json\n?([\s\S]*?)\n?```/);
|
|
294
|
+
if (jsonMatch?.[1]) try {
|
|
295
|
+
const parsed = JSON.parse(jsonMatch[1]);
|
|
296
|
+
return {
|
|
297
|
+
fieldMappings: (parsed.fieldMappings ?? []).map((m) => ({
|
|
298
|
+
specField: String(m.specField ?? ""),
|
|
299
|
+
specType: String(m.specType ?? "unknown"),
|
|
300
|
+
implementationField: m.implementationField ? String(m.implementationField) : void 0,
|
|
301
|
+
implementationType: m.implementationType ? String(m.implementationType) : void 0,
|
|
302
|
+
match: m.match ?? "missing",
|
|
303
|
+
aiConfidence: typeof m.aiConfidence === "number" ? m.aiConfidence : .5,
|
|
304
|
+
suggestion: m.suggestion ? String(m.suggestion) : void 0
|
|
305
|
+
})),
|
|
306
|
+
intentAlignment: {
|
|
307
|
+
score: typeof parsed.intentAlignment?.score === "number" ? parsed.intentAlignment.score : 50,
|
|
308
|
+
issues: Array.isArray(parsed.intentAlignment?.issues) ? parsed.intentAlignment.issues : [],
|
|
309
|
+
suggestions: Array.isArray(parsed.intentAlignment?.suggestions) ? parsed.intentAlignment.suggestions : []
|
|
310
|
+
},
|
|
311
|
+
semanticIssues: (parsed.semanticIssues ?? []).map((i) => ({
|
|
312
|
+
category: String(i.category ?? "semantic"),
|
|
313
|
+
severity: i.severity ?? "warning",
|
|
314
|
+
message: String(i.message ?? ""),
|
|
315
|
+
suggestion: i.suggestion ? String(i.suggestion) : void 0
|
|
316
|
+
})),
|
|
317
|
+
rawResponse: response
|
|
318
|
+
};
|
|
319
|
+
} catch {}
|
|
320
|
+
return {
|
|
321
|
+
fieldMappings: [],
|
|
322
|
+
intentAlignment: {
|
|
323
|
+
score: 50,
|
|
324
|
+
issues: ["Unable to parse AI response for semantic analysis"],
|
|
325
|
+
suggestions: []
|
|
326
|
+
},
|
|
327
|
+
semanticIssues: [],
|
|
328
|
+
rawResponse: response
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Run semantic field-level verification using AI.
|
|
333
|
+
*/
|
|
334
|
+
async function verifySemanticFields(input, config = {}) {
|
|
335
|
+
const { spec, implementationCode } = input;
|
|
336
|
+
return parseSemanticResponse(await callAI(generateSemanticFieldPrompt(extractSpecFields(spec), implementationCode), config));
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Run enhanced AI verification with semantic field analysis.
|
|
340
|
+
*/
|
|
341
|
+
async function verifyWithAIEnhanced(input, config = {}) {
|
|
342
|
+
const { spec: _spec, implementationCode: _implementationCode, implementationPath: _implementationPath } = input;
|
|
343
|
+
const startTime = Date.now();
|
|
344
|
+
const baseReport = await verifyWithAI(input, config);
|
|
345
|
+
let semanticResult;
|
|
346
|
+
if (config.aiApiKey) try {
|
|
347
|
+
semanticResult = await verifySemanticFields(input, config);
|
|
348
|
+
} catch {}
|
|
349
|
+
if (semanticResult) {
|
|
350
|
+
const semanticIssues = [];
|
|
351
|
+
for (const mapping of semanticResult.fieldMappings) if (mapping.match === "missing") semanticIssues.push({
|
|
352
|
+
severity: "error",
|
|
353
|
+
category: "semantic",
|
|
354
|
+
message: `Missing field: '${mapping.specField}' (${mapping.specType}) not found in implementation`,
|
|
355
|
+
suggestion: mapping.suggestion ?? `Add field '${mapping.specField}' to implementation`
|
|
356
|
+
});
|
|
357
|
+
else if (mapping.match === "mismatch") semanticIssues.push({
|
|
358
|
+
severity: "warning",
|
|
359
|
+
category: "semantic",
|
|
360
|
+
message: `Field mismatch: '${mapping.specField}' has incorrect implementation as '${mapping.implementationField}'`,
|
|
361
|
+
suggestion: mapping.suggestion
|
|
362
|
+
});
|
|
363
|
+
else if (mapping.match === "compatible" && mapping.aiConfidence < .8) semanticIssues.push({
|
|
364
|
+
severity: "info",
|
|
365
|
+
category: "semantic",
|
|
366
|
+
message: `Field naming: '${mapping.specField}' implemented as '${mapping.implementationField}' (compatible but not exact)`,
|
|
367
|
+
suggestion: mapping.suggestion
|
|
368
|
+
});
|
|
369
|
+
for (const issue of semanticResult.intentAlignment.issues) semanticIssues.push({
|
|
370
|
+
severity: "warning",
|
|
371
|
+
category: "semantic",
|
|
372
|
+
message: issue
|
|
373
|
+
});
|
|
374
|
+
for (const issue of semanticResult.semanticIssues) semanticIssues.push({
|
|
375
|
+
severity: issue.severity,
|
|
376
|
+
category: "semantic",
|
|
377
|
+
message: issue.message,
|
|
378
|
+
suggestion: issue.suggestion
|
|
379
|
+
});
|
|
380
|
+
baseReport.issues = [...baseReport.issues, ...semanticIssues];
|
|
381
|
+
const totalFields = semanticResult.fieldMappings.length;
|
|
382
|
+
const implementedFields = semanticResult.fieldMappings.filter((m) => m.match === "exact" || m.match === "compatible").length;
|
|
383
|
+
if (totalFields > 0) {
|
|
384
|
+
const fieldScore = Math.round(implementedFields / totalFields * 100);
|
|
385
|
+
baseReport.score = Math.round((baseReport.score + fieldScore) / 2);
|
|
386
|
+
baseReport.coverage.fields = {
|
|
387
|
+
total: totalFields,
|
|
388
|
+
implemented: implementedFields
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
if (semanticIssues.some((i) => i.severity === "error")) baseReport.passed = false;
|
|
392
|
+
baseReport.suggestions = [...baseReport.suggestions, ...semanticResult.intentAlignment.suggestions];
|
|
393
|
+
}
|
|
394
|
+
baseReport.meta = {
|
|
395
|
+
...baseReport.meta,
|
|
396
|
+
duration: Date.now() - startTime
|
|
397
|
+
};
|
|
398
|
+
return baseReport;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
//#endregion
|
|
402
|
+
export { createQuickAIReview, verifySemanticFields, verifyWithAI, verifyWithAIEnhanced };
|
|
403
|
+
//# sourceMappingURL=ai-verifier.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-verifier.mjs","names":[],"sources":["../../../src/services/verify/ai-verifier.ts"],"sourcesContent":["/**\n * Tier 3: AI-Powered Verification\n *\n * Uses an LLM to semantically analyze the implementation against\n * the specification for deeper compliance checking.\n */\n\nimport type { AnyOperationSpec } from '@contractspec/lib.contracts';\nimport type {\n VerificationIssue,\n VerificationReport,\n} from '@contractspec/lib.contracts/llm';\nimport { generateVerificationPrompt } from '@contractspec/lib.contracts/llm';\nimport type {\n AIReviewResult,\n FieldMapping,\n SemanticVerificationResult,\n VerifyConfig,\n VerifyInput,\n} from './types';\n\n/**\n * Parse AI response to structured result.\n */\nfunction parseAIResponse(response: string): AIReviewResult {\n // Try to extract JSON from the response\n const jsonMatch = response.match(/```json\\n?([\\s\\S]*?)\\n?```/);\n if (jsonMatch?.[1]) {\n try {\n const parsed = JSON.parse(jsonMatch[1]);\n return {\n compliant: parsed.passed ?? false,\n confidence: (parsed.score ?? 0) / 100,\n findings: (parsed.issues ?? []).map(\n (issue: Record<string, unknown>) => ({\n category: String(issue.category ?? 'semantic'),\n severity: String(issue.severity ?? 'warning') as\n | 'error'\n | 'warning'\n | 'info',\n message: String(issue.message ?? ''),\n location: issue.location ? String(issue.location) : undefined,\n suggestion: issue.suggestion ? String(issue.suggestion) : undefined,\n })\n ),\n rawResponse: response,\n };\n } catch {\n // JSON parse failed, fall through to text parsing\n }\n }\n\n // Fallback: parse text response\n const findings: AIReviewResult['findings'] = [];\n\n // Look for issue patterns\n const lines = response.split('\\n');\n let currentSeverity: 'error' | 'warning' | 'info' = 'info';\n\n for (const line of lines) {\n const lineLower = line.toLowerCase();\n\n // Detect severity changes\n if (lineLower.includes('error') || lineLower.includes('critical')) {\n currentSeverity = 'error';\n } else if (lineLower.includes('warning') || lineLower.includes('should')) {\n currentSeverity = 'warning';\n } else if (lineLower.includes('info') || lineLower.includes('note')) {\n currentSeverity = 'info';\n }\n\n // Look for bullet points or numbered items\n const bulletMatch = line.match(/^[-*•]\\s*(.+)$/);\n const numberedMatch = line.match(/^\\d+\\.\\s*(.+)$/);\n\n if (bulletMatch || numberedMatch) {\n const content = bulletMatch?.[1] ?? numberedMatch?.[1] ?? '';\n if (content.length > 10) {\n findings.push({\n category: 'semantic',\n severity: currentSeverity,\n message: content,\n });\n }\n }\n }\n\n // Determine overall compliance\n const hasErrors = findings.some((f) => f.severity === 'error');\n const compliant = !hasErrors;\n const confidence = hasErrors ? 0.3 : findings.length === 0 ? 0.9 : 0.7;\n\n return {\n compliant,\n confidence,\n findings,\n rawResponse: response,\n };\n}\n\n/**\n * Call AI provider for verification.\n * This is a placeholder - actual implementation would use AI SDK.\n */\nasync function callAI(prompt: string, config: VerifyConfig): Promise<string> {\n // Check if we have an API key configured\n if (!config.aiApiKey) {\n // Return a placeholder response indicating AI is not configured\n return `\\`\\`\\`json\n{\n \"passed\": true,\n \"score\": 50,\n \"compliance\": {\n \"inputTypes\": { \"match\": true, \"issues\": [] },\n \"outputTypes\": { \"match\": true, \"issues\": [] },\n \"errorHandling\": { \"coverage\": \"unknown\", \"missing\": [] },\n \"eventEmission\": { \"correct\": true, \"issues\": [] },\n \"policyCompliance\": { \"auth\": true, \"rateLimit\": true, \"pii\": true }\n },\n \"scenarios\": [],\n \"issues\": [\n { \"severity\": \"info\", \"category\": \"semantic\", \"message\": \"AI verification not available - configure AI API key for full analysis\" }\n ],\n \"summary\": \"AI verification skipped - no API key configured. Structure and behavior checks have been performed.\"\n}\n\\`\\`\\``;\n }\n\n // In a real implementation, this would call the AI provider\n // For now, we'll use a dynamic import to avoid hard dependency\n try {\n const provider = config.aiProvider ?? 'anthropic';\n\n if (provider === 'anthropic') {\n // Dynamic import to avoid hard dependency\n const { anthropic } = await import('@ai-sdk/anthropic');\n const { generateText } = await import('ai');\n\n const result = await generateText({\n model: anthropic('claude-3-5-sonnet-20241022'),\n prompt,\n system:\n 'You are an expert code reviewer analyzing implementation compliance with specifications. Respond with structured JSON.',\n });\n\n return result.text;\n } else if (provider === 'openai') {\n const { openai } = await import('@ai-sdk/openai');\n const { generateText } = await import('ai');\n\n const result = await generateText({\n model: openai('gpt-4o'),\n prompt,\n system:\n 'You are an expert code reviewer analyzing implementation compliance with specifications. Respond with structured JSON.',\n });\n\n return result.text;\n }\n\n throw new Error(`Unknown AI provider: ${provider}`);\n } catch (error) {\n // Return error as structured response\n return `\\`\\`\\`json\n{\n \"passed\": false,\n \"score\": 0,\n \"issues\": [\n { \"severity\": \"error\", \"category\": \"semantic\", \"message\": \"AI verification failed: ${error instanceof Error ? error.message : 'Unknown error'}\" }\n ],\n \"summary\": \"AI verification encountered an error\"\n}\n\\`\\`\\``;\n }\n}\n\n/**\n * Run AI-powered verification.\n */\nexport async function verifyWithAI(\n input: VerifyInput,\n config: VerifyConfig = {}\n): Promise<VerificationReport> {\n const { spec, implementationCode, implementationPath } = input;\n const startTime = Date.now();\n\n // Generate the verification prompt\n const prompt = generateVerificationPrompt(spec, implementationCode);\n\n // Call AI\n const aiResponse = await callAI(prompt.taskPrompt, config);\n\n // Parse response\n const result = parseAIResponse(aiResponse);\n\n // Convert to verification issues\n const issues: VerificationIssue[] = result.findings.map((f) => ({\n severity: f.severity,\n category: 'semantic' as const,\n message: f.message,\n location: f.location\n ? { file: f.location }\n : implementationPath\n ? { file: implementationPath }\n : undefined,\n suggestion: f.suggestion,\n }));\n\n const score = Math.round(result.confidence * 100);\n const passed = result.compliant;\n\n // Generate suggestions from findings\n const suggestions = result.findings\n .filter((f) => f.suggestion)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n .map((f) => f.suggestion!);\n\n return {\n tier: 'ai_review',\n passed,\n score,\n issues,\n suggestions,\n coverage: {\n scenarios: { total: 0, covered: 0 }, // AI doesn't track these explicitly\n errors: { total: 0, handled: 0 },\n fields: { total: 1, implemented: passed ? 1 : 0 },\n },\n meta: {\n specName: spec.meta.key,\n specVersion: spec.meta.version,\n implementationPath: implementationPath ?? 'unknown',\n verifiedAt: new Date().toISOString(),\n duration: Date.now() - startTime,\n },\n };\n}\n\n/**\n * Create a simpler AI review without calling the API.\n * Used as fallback or for quick checks.\n */\nexport function createQuickAIReview(input: VerifyInput): VerificationReport {\n const { spec, implementationCode, implementationPath } = input;\n const startTime = Date.now();\n\n // Simple heuristic checks that approximate AI review\n const issues: VerificationIssue[] = [];\n\n // Check for common anti-patterns\n if (implementationCode.includes('console.log')) {\n issues.push({\n severity: 'warning',\n category: 'semantic',\n message: 'Console.log statements found - consider using proper logging',\n suggestion: 'Use a structured logger instead of console.log',\n });\n }\n\n if (\n implementationCode.includes('// TODO') ||\n implementationCode.includes('// FIXME')\n ) {\n issues.push({\n severity: 'info',\n category: 'semantic',\n message: 'TODO/FIXME comments found - implementation may be incomplete',\n suggestion: 'Address TODO items before finalizing implementation',\n });\n }\n\n // Check for hardcoded values that should come from spec\n if (\n spec.policy.auth !== 'anonymous' &&\n !implementationCode.includes('auth')\n ) {\n issues.push({\n severity: 'warning',\n category: 'semantic',\n message: `Spec requires ${spec.policy.auth} auth but no auth check found`,\n suggestion: 'Add authentication check at the handler entry point',\n });\n }\n\n const score =\n issues.filter((i) => i.severity === 'error').length === 0 ? 80 : 40;\n const passed = issues.filter((i) => i.severity === 'error').length === 0;\n\n return {\n tier: 'ai_review',\n passed,\n score,\n issues,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n suggestions: issues.filter((i) => i.suggestion).map((i) => i.suggestion!),\n coverage: {\n scenarios: { total: 0, covered: 0 },\n errors: { total: 0, handled: 0 },\n fields: { total: 1, implemented: passed ? 1 : 0 },\n },\n meta: {\n specName: spec.meta.key,\n specVersion: spec.meta.version,\n implementationPath: implementationPath ?? 'unknown',\n verifiedAt: new Date().toISOString(),\n duration: Date.now() - startTime,\n },\n };\n}\n\n/**\n * Generate a prompt for semantic field verification.\n */\nfunction generateSemanticFieldPrompt(\n specFields: string,\n implCode: string\n): string {\n return `You are analyzing a code implementation against its specification.\n\n## Spec Schema Fields\n${specFields}\n\n## Implementation Code\n\\`\\`\\`typescript\n${implCode}\n\\`\\`\\`\n\n## Task\nAnalyze the implementation to verify it correctly implements the spec schema fields.\n\nFor each field in the spec:\n1. Find the corresponding field/property in the implementation\n2. Determine if the naming matches (exact, compatible synonym, or mismatch)\n3. Check if the types are compatible\n4. Identify any missing fields\n\nRespond with JSON in this format:\n\\`\\`\\`json\n{\n \"fieldMappings\": [\n {\n \"specField\": \"nickname\",\n \"specType\": \"string\",\n \"implementationField\": \"username\",\n \"implementationType\": \"string\",\n \"match\": \"compatible\",\n \"aiConfidence\": 0.85,\n \"suggestion\": \"Consider renaming 'username' to 'nickname' for exact spec compliance\"\n }\n ],\n \"intentAlignment\": {\n \"score\": 85,\n \"issues\": [\"Field naming differs from spec\"],\n \"suggestions\": [\"Rename fields to match spec exactly for better maintainability\"]\n },\n \"semanticIssues\": []\n}\n\\`\\`\\`\n\nMatch types:\n- \"exact\": Field name and type match exactly\n- \"compatible\": Semantically similar (e.g., \"email\" vs \"emailAddress\")\n- \"mismatch\": Different meaning despite similar naming\n- \"missing\": Spec field not found in implementation\n`;\n}\n\n/**\n * Extract field definitions from spec schema.\n */\nfunction extractSpecFields(spec: AnyOperationSpec): string {\n const fields: string[] = [];\n\n /**\n * Helper to safely extract fields from a schema.\n */\n const extractFromSchema = (\n schema: unknown,\n direction: 'input' | 'output'\n ) => {\n try {\n // Cast to any to access internal Zod structure\n const schemaAny = schema as {\n _def?: { shape?: () => Record<string, unknown> };\n };\n const shapeFn = schemaAny?._def?.shape;\n\n if (shapeFn && typeof shapeFn === 'function') {\n const shapeObj = shapeFn();\n for (const [key, value] of Object.entries(shapeObj)) {\n const valueAny = value as { _def?: { typeName?: string } };\n const typeName = valueAny?._def?.typeName ?? 'unknown';\n fields.push(\n `- ${key}: ${String(typeName).replace('Zod', '').toLowerCase()} (${direction})`\n );\n }\n }\n } catch {\n fields.push(`- [unable to extract ${direction} fields]`);\n }\n };\n\n // Try to extract from input schema\n if (spec.io.input) {\n extractFromSchema(spec.io.input, 'input');\n }\n\n // Try to extract from output schema (skip if it's a resource ref)\n if (spec.io.output && !('resourceRef' in spec.io.output)) {\n extractFromSchema(spec.io.output, 'output');\n }\n\n if (fields.length === 0) {\n return '- [no schema fields could be extracted]';\n }\n\n return fields.join('\\n');\n}\n\n/**\n * Parse semantic verification response from AI.\n */\nfunction parseSemanticResponse(response: string): SemanticVerificationResult {\n // Try to extract JSON\n const jsonMatch = response.match(/```json\\n?([\\s\\S]*?)\\n?```/);\n if (jsonMatch?.[1]) {\n try {\n const parsed = JSON.parse(jsonMatch[1]);\n return {\n fieldMappings: (parsed.fieldMappings ?? []).map(\n (m: Record<string, unknown>) => ({\n specField: String(m.specField ?? ''),\n specType: String(m.specType ?? 'unknown'),\n implementationField: m.implementationField\n ? String(m.implementationField)\n : undefined,\n implementationType: m.implementationType\n ? String(m.implementationType)\n : undefined,\n match: (m.match ?? 'missing') as FieldMapping['match'],\n aiConfidence:\n typeof m.aiConfidence === 'number' ? m.aiConfidence : 0.5,\n suggestion: m.suggestion ? String(m.suggestion) : undefined,\n })\n ),\n intentAlignment: {\n score:\n typeof parsed.intentAlignment?.score === 'number'\n ? parsed.intentAlignment.score\n : 50,\n issues: Array.isArray(parsed.intentAlignment?.issues)\n ? parsed.intentAlignment.issues\n : [],\n suggestions: Array.isArray(parsed.intentAlignment?.suggestions)\n ? parsed.intentAlignment.suggestions\n : [],\n },\n semanticIssues: (parsed.semanticIssues ?? []).map(\n (i: Record<string, unknown>) => ({\n category: String(i.category ?? 'semantic'),\n severity: (i.severity ?? 'warning') as 'error' | 'warning' | 'info',\n message: String(i.message ?? ''),\n suggestion: i.suggestion ? String(i.suggestion) : undefined,\n })\n ),\n rawResponse: response,\n };\n } catch {\n // Fall through to default\n }\n }\n\n // Default result if parsing fails\n return {\n fieldMappings: [],\n intentAlignment: {\n score: 50,\n issues: ['Unable to parse AI response for semantic analysis'],\n suggestions: [],\n },\n semanticIssues: [],\n rawResponse: response,\n };\n}\n\n/**\n * Run semantic field-level verification using AI.\n */\nexport async function verifySemanticFields(\n input: VerifyInput,\n config: VerifyConfig = {}\n): Promise<SemanticVerificationResult> {\n const { spec, implementationCode } = input;\n\n // Extract spec fields\n const specFields = extractSpecFields(spec);\n\n // Generate prompt\n const prompt = generateSemanticFieldPrompt(specFields, implementationCode);\n\n // Call AI\n const aiResponse = await callAI(prompt, config);\n\n // Parse response\n return parseSemanticResponse(aiResponse);\n}\n\n/**\n * Run enhanced AI verification with semantic field analysis.\n */\nexport async function verifyWithAIEnhanced(\n input: VerifyInput,\n config: VerifyConfig = {}\n): Promise<VerificationReport> {\n const {\n spec: _spec,\n implementationCode: _implementationCode,\n implementationPath: _implementationPath,\n } = input;\n const startTime = Date.now();\n\n // Run standard AI verification\n const baseReport = await verifyWithAI(input, config);\n\n // Run semantic field verification if AI is available\n let semanticResult: SemanticVerificationResult | undefined;\n if (config.aiApiKey) {\n try {\n semanticResult = await verifySemanticFields(input, config);\n } catch {\n // Semantic verification failed, continue with base report\n }\n }\n\n // Merge semantic issues into base report\n if (semanticResult) {\n const semanticIssues: VerificationIssue[] = [];\n\n // Add field mapping issues\n for (const mapping of semanticResult.fieldMappings) {\n if (mapping.match === 'missing') {\n semanticIssues.push({\n severity: 'error',\n category: 'semantic',\n message: `Missing field: '${mapping.specField}' (${mapping.specType}) not found in implementation`,\n suggestion:\n mapping.suggestion ??\n `Add field '${mapping.specField}' to implementation`,\n });\n } else if (mapping.match === 'mismatch') {\n semanticIssues.push({\n severity: 'warning',\n category: 'semantic',\n message: `Field mismatch: '${mapping.specField}' has incorrect implementation as '${mapping.implementationField}'`,\n suggestion: mapping.suggestion,\n });\n } else if (mapping.match === 'compatible' && mapping.aiConfidence < 0.8) {\n semanticIssues.push({\n severity: 'info',\n category: 'semantic',\n message: `Field naming: '${mapping.specField}' implemented as '${mapping.implementationField}' (compatible but not exact)`,\n suggestion: mapping.suggestion,\n });\n }\n }\n\n // Add intent alignment issues\n for (const issue of semanticResult.intentAlignment.issues) {\n semanticIssues.push({\n severity: 'warning',\n category: 'semantic',\n message: issue,\n });\n }\n\n // Add other semantic issues\n for (const issue of semanticResult.semanticIssues) {\n semanticIssues.push({\n severity: issue.severity,\n category: 'semantic',\n message: issue.message,\n suggestion: issue.suggestion,\n });\n }\n\n // Merge issues\n baseReport.issues = [...baseReport.issues, ...semanticIssues];\n\n // Update score based on field coverage\n const totalFields = semanticResult.fieldMappings.length;\n const implementedFields = semanticResult.fieldMappings.filter(\n (m) => m.match === 'exact' || m.match === 'compatible'\n ).length;\n\n if (totalFields > 0) {\n const fieldScore = Math.round((implementedFields / totalFields) * 100);\n baseReport.score = Math.round((baseReport.score + fieldScore) / 2);\n baseReport.coverage.fields = {\n total: totalFields,\n implemented: implementedFields,\n };\n }\n\n // Update pass status\n const hasFieldErrors = semanticIssues.some((i) => i.severity === 'error');\n if (hasFieldErrors) {\n baseReport.passed = false;\n }\n\n // Add semantic suggestions\n baseReport.suggestions = [\n ...baseReport.suggestions,\n ...semanticResult.intentAlignment.suggestions,\n ];\n }\n\n // Update duration\n baseReport.meta = {\n ...baseReport.meta,\n duration: Date.now() - startTime,\n };\n\n return baseReport;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { VerifyInput } from "./types.mjs";
|
|
2
|
+
import { VerificationReport } from "@contractspec/lib.contracts/llm";
|
|
3
|
+
|
|
4
|
+
//#region src/services/verify/behavior-verifier.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Run all behavior checks and produce a verification report.
|
|
8
|
+
*/
|
|
9
|
+
declare function verifyBehavior(input: VerifyInput): VerificationReport;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { verifyBehavior };
|
|
12
|
+
//# sourceMappingURL=behavior-verifier.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behavior-verifier.d.mts","names":[],"sources":["../../../src/services/verify/behavior-verifier.ts"],"sourcesContent":[],"mappings":";;;;;;;;iBAoQgB,cAAA,QAAsB,cAAc"}
|