@machina.ai/openapi-contract-tester 2.1.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/.env.example +91 -0
- package/README.md +472 -0
- package/dist/ai-engine/assertion-generator.d.ts +48 -0
- package/dist/ai-engine/assertion-generator.d.ts.map +1 -0
- package/dist/ai-engine/assertion-generator.js +166 -0
- package/dist/ai-engine/assertion-generator.js.map +1 -0
- package/dist/ai-engine/context-data-generator.d.ts +38 -0
- package/dist/ai-engine/context-data-generator.d.ts.map +1 -0
- package/dist/ai-engine/context-data-generator.js +146 -0
- package/dist/ai-engine/context-data-generator.js.map +1 -0
- package/dist/ai-engine/dataflow-detector.d.ts +53 -0
- package/dist/ai-engine/dataflow-detector.d.ts.map +1 -0
- package/dist/ai-engine/dataflow-detector.js +217 -0
- package/dist/ai-engine/dataflow-detector.js.map +1 -0
- package/dist/ai-engine/dependency-detector.d.ts +52 -0
- package/dist/ai-engine/dependency-detector.d.ts.map +1 -0
- package/dist/ai-engine/dependency-detector.js +241 -0
- package/dist/ai-engine/dependency-detector.js.map +1 -0
- package/dist/ai-engine/edge-case-suggester.d.ts +63 -0
- package/dist/ai-engine/edge-case-suggester.d.ts.map +1 -0
- package/dist/ai-engine/edge-case-suggester.js +177 -0
- package/dist/ai-engine/edge-case-suggester.js.map +1 -0
- package/dist/ai-engine/index.d.ts +13 -0
- package/dist/ai-engine/index.d.ts.map +1 -0
- package/dist/ai-engine/index.js +13 -0
- package/dist/ai-engine/index.js.map +1 -0
- package/dist/analyzers/ai-failure-analyzer.d.ts +41 -0
- package/dist/analyzers/ai-failure-analyzer.d.ts.map +1 -0
- package/dist/analyzers/ai-failure-analyzer.js +220 -0
- package/dist/analyzers/ai-failure-analyzer.js.map +1 -0
- package/dist/analyzers/comparison-utils.d.ts +31 -0
- package/dist/analyzers/comparison-utils.d.ts.map +1 -0
- package/dist/analyzers/comparison-utils.js +85 -0
- package/dist/analyzers/comparison-utils.js.map +1 -0
- package/dist/analyzers/context-analyzer.d.ts +49 -0
- package/dist/analyzers/context-analyzer.d.ts.map +1 -0
- package/dist/analyzers/context-analyzer.js +292 -0
- package/dist/analyzers/context-analyzer.js.map +1 -0
- package/dist/analyzers/dependency-analyzer.d.ts +44 -0
- package/dist/analyzers/dependency-analyzer.d.ts.map +1 -0
- package/dist/analyzers/dependency-analyzer.js +313 -0
- package/dist/analyzers/dependency-analyzer.js.map +1 -0
- package/dist/analyzers/failure-analyzer.d.ts +122 -0
- package/dist/analyzers/failure-analyzer.d.ts.map +1 -0
- package/dist/analyzers/failure-analyzer.js +140 -0
- package/dist/analyzers/failure-analyzer.js.map +1 -0
- package/dist/analyzers/failure-detectors/index.d.ts +33 -0
- package/dist/analyzers/failure-detectors/index.d.ts.map +1 -0
- package/dist/analyzers/failure-detectors/index.js +164 -0
- package/dist/analyzers/failure-detectors/index.js.map +1 -0
- package/dist/analyzers/failure-discrepancy-correlator.d.ts +111 -0
- package/dist/analyzers/failure-discrepancy-correlator.d.ts.map +1 -0
- package/dist/analyzers/failure-discrepancy-correlator.js +202 -0
- package/dist/analyzers/failure-discrepancy-correlator.js.map +1 -0
- package/dist/analyzers/index.d.ts +10 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +10 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/semantic-matcher.d.ts +123 -0
- package/dist/analyzers/semantic-matcher.d.ts.map +1 -0
- package/dist/analyzers/semantic-matcher.js +297 -0
- package/dist/analyzers/semantic-matcher.js.map +1 -0
- package/dist/analyzers/source-comparator.d.ts +177 -0
- package/dist/analyzers/source-comparator.d.ts.map +1 -0
- package/dist/analyzers/source-comparator.js +225 -0
- package/dist/analyzers/source-comparator.js.map +1 -0
- package/dist/business-rules/business-rules-analyzer.d.ts +44 -0
- package/dist/business-rules/business-rules-analyzer.d.ts.map +1 -0
- package/dist/business-rules/business-rules-analyzer.js +363 -0
- package/dist/business-rules/business-rules-analyzer.js.map +1 -0
- package/dist/business-rules/business-rules-generator.d.ts +78 -0
- package/dist/business-rules/business-rules-generator.d.ts.map +1 -0
- package/dist/business-rules/business-rules-generator.js +357 -0
- package/dist/business-rules/business-rules-generator.js.map +1 -0
- package/dist/business-rules/extractors/rule-extractors.d.ts +50 -0
- package/dist/business-rules/extractors/rule-extractors.d.ts.map +1 -0
- package/dist/business-rules/extractors/rule-extractors.js +189 -0
- package/dist/business-rules/extractors/rule-extractors.js.map +1 -0
- package/dist/business-rules/value-generators.d.ts +70 -0
- package/dist/business-rules/value-generators.d.ts.map +1 -0
- package/dist/business-rules/value-generators.js +142 -0
- package/dist/business-rules/value-generators.js.map +1 -0
- package/dist/executor/auth-providers/auth-header-builder.d.ts +16 -0
- package/dist/executor/auth-providers/auth-header-builder.d.ts.map +1 -0
- package/dist/executor/auth-providers/auth-header-builder.js +47 -0
- package/dist/executor/auth-providers/auth-header-builder.js.map +1 -0
- package/dist/executor/auth-providers/oauth2-provider.d.ts +19 -0
- package/dist/executor/auth-providers/oauth2-provider.d.ts.map +1 -0
- package/dist/executor/auth-providers/oauth2-provider.js +114 -0
- package/dist/executor/auth-providers/oauth2-provider.js.map +1 -0
- package/dist/executor/http-client.d.ts +133 -0
- package/dist/executor/http-client.d.ts.map +1 -0
- package/dist/executor/http-client.js +172 -0
- package/dist/executor/http-client.js.map +1 -0
- package/dist/executor/http-request-builder.d.ts +69 -0
- package/dist/executor/http-request-builder.d.ts.map +1 -0
- package/dist/executor/http-request-builder.js +140 -0
- package/dist/executor/http-request-builder.js.map +1 -0
- package/dist/executor/http-response-parser.d.ts +28 -0
- package/dist/executor/http-response-parser.d.ts.map +1 -0
- package/dist/executor/http-response-parser.js +74 -0
- package/dist/executor/http-response-parser.js.map +1 -0
- package/dist/executor/response-handler.d.ts +66 -0
- package/dist/executor/response-handler.d.ts.map +1 -0
- package/dist/executor/response-handler.js +135 -0
- package/dist/executor/response-handler.js.map +1 -0
- package/dist/executor/result-processor.d.ts +27 -0
- package/dist/executor/result-processor.d.ts.map +1 -0
- package/dist/executor/result-processor.js +140 -0
- package/dist/executor/result-processor.js.map +1 -0
- package/dist/executor/result-utils.d.ts +21 -0
- package/dist/executor/result-utils.d.ts.map +1 -0
- package/dist/executor/result-utils.js +29 -0
- package/dist/executor/result-utils.js.map +1 -0
- package/dist/executor/test-executor.d.ts +49 -0
- package/dist/executor/test-executor.d.ts.map +1 -0
- package/dist/executor/test-executor.js +226 -0
- package/dist/executor/test-executor.js.map +1 -0
- package/dist/executor/test-runner.d.ts +85 -0
- package/dist/executor/test-runner.d.ts.map +1 -0
- package/dist/executor/test-runner.js +177 -0
- package/dist/executor/test-runner.js.map +1 -0
- package/dist/executor/token-detector/index.d.ts +7 -0
- package/dist/executor/token-detector/index.d.ts.map +1 -0
- package/dist/executor/token-detector/index.js +7 -0
- package/dist/executor/token-detector/index.js.map +1 -0
- package/dist/executor/token-detector/token-detector.d.ts +64 -0
- package/dist/executor/token-detector/token-detector.d.ts.map +1 -0
- package/dist/executor/token-detector/token-detector.js +140 -0
- package/dist/executor/token-detector/token-detector.js.map +1 -0
- package/dist/generators/business-rule-from-stories-generator.d.ts +30 -0
- package/dist/generators/business-rule-from-stories-generator.d.ts.map +1 -0
- package/dist/generators/business-rule-from-stories-generator.js +227 -0
- package/dist/generators/business-rule-from-stories-generator.js.map +1 -0
- package/dist/generators/data/ai-data-generator.d.ts +23 -0
- package/dist/generators/data/ai-data-generator.d.ts.map +1 -0
- package/dist/generators/data/ai-data-generator.js +41 -0
- package/dist/generators/data/ai-data-generator.js.map +1 -0
- package/dist/generators/data/base-generator.d.ts +121 -0
- package/dist/generators/data/base-generator.d.ts.map +1 -0
- package/dist/generators/data/base-generator.js +200 -0
- package/dist/generators/data/base-generator.js.map +1 -0
- package/dist/generators/data/heuristic-data-generator.d.ts +28 -0
- package/dist/generators/data/heuristic-data-generator.d.ts.map +1 -0
- package/dist/generators/data/heuristic-data-generator.js +49 -0
- package/dist/generators/data/heuristic-data-generator.js.map +1 -0
- package/dist/generators/data/index.d.ts +48 -0
- package/dist/generators/data/index.d.ts.map +1 -0
- package/dist/generators/data/index.js +201 -0
- package/dist/generators/data/index.js.map +1 -0
- package/dist/generators/data/schema-walker.d.ts +45 -0
- package/dist/generators/data/schema-walker.d.ts.map +1 -0
- package/dist/generators/data/schema-walker.js +103 -0
- package/dist/generators/data/schema-walker.js.map +1 -0
- package/dist/generators/data/type-strategies.d.ts +79 -0
- package/dist/generators/data/type-strategies.d.ts.map +1 -0
- package/dist/generators/data/type-strategies.js +394 -0
- package/dist/generators/data/type-strategies.js.map +1 -0
- package/dist/generators/data-generator.d.ts +11 -0
- package/dist/generators/data-generator.d.ts.map +1 -0
- package/dist/generators/data-generator.js +11 -0
- package/dist/generators/data-generator.js.map +1 -0
- package/dist/generators/edge-case-generator.d.ts +55 -0
- package/dist/generators/edge-case-generator.d.ts.map +1 -0
- package/dist/generators/edge-case-generator.js +327 -0
- package/dist/generators/edge-case-generator.js.map +1 -0
- package/dist/generators/edge-cases/boundary-analyzer.d.ts +26 -0
- package/dist/generators/edge-cases/boundary-analyzer.d.ts.map +1 -0
- package/dist/generators/edge-cases/boundary-analyzer.js +95 -0
- package/dist/generators/edge-cases/boundary-analyzer.js.map +1 -0
- package/dist/generators/error-case-generator.d.ts +11 -0
- package/dist/generators/error-case-generator.d.ts.map +1 -0
- package/dist/generators/error-case-generator.js +11 -0
- package/dist/generators/error-case-generator.js.map +1 -0
- package/dist/generators/errors/auth-error-strategy.d.ts +36 -0
- package/dist/generators/errors/auth-error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/auth-error-strategy.js +118 -0
- package/dist/generators/errors/auth-error-strategy.js.map +1 -0
- package/dist/generators/errors/business-error-strategy.d.ts +44 -0
- package/dist/generators/errors/business-error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/business-error-strategy.js +152 -0
- package/dist/generators/errors/business-error-strategy.js.map +1 -0
- package/dist/generators/errors/error-strategy-factory.d.ts +27 -0
- package/dist/generators/errors/error-strategy-factory.d.ts.map +1 -0
- package/dist/generators/errors/error-strategy-factory.js +47 -0
- package/dist/generators/errors/error-strategy-factory.js.map +1 -0
- package/dist/generators/errors/error-strategy.d.ts +62 -0
- package/dist/generators/errors/error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/error-strategy.js +69 -0
- package/dist/generators/errors/error-strategy.js.map +1 -0
- package/dist/generators/errors/index.d.ts +23 -0
- package/dist/generators/errors/index.d.ts.map +1 -0
- package/dist/generators/errors/index.js +73 -0
- package/dist/generators/errors/index.js.map +1 -0
- package/dist/generators/errors/validation-error-strategy.d.ts +25 -0
- package/dist/generators/errors/validation-error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/validation-error-strategy.js +214 -0
- package/dist/generators/errors/validation-error-strategy.js.map +1 -0
- package/dist/generators/happy-path-generator.d.ts +93 -0
- package/dist/generators/happy-path-generator.d.ts.map +1 -0
- package/dist/generators/happy-path-generator.js +275 -0
- package/dist/generators/happy-path-generator.js.map +1 -0
- package/dist/generators/test-enricher.d.ts +44 -0
- package/dist/generators/test-enricher.d.ts.map +1 -0
- package/dist/generators/test-enricher.js +109 -0
- package/dist/generators/test-enricher.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/ai-cache.d.ts +123 -0
- package/dist/llm/ai-cache.d.ts.map +1 -0
- package/dist/llm/ai-cache.js +220 -0
- package/dist/llm/ai-cache.js.map +1 -0
- package/dist/llm/ai-client.d.ts +92 -0
- package/dist/llm/ai-client.d.ts.map +1 -0
- package/dist/llm/ai-client.js +386 -0
- package/dist/llm/ai-client.js.map +1 -0
- package/dist/llm/data-generator-ai.d.ts +84 -0
- package/dist/llm/data-generator-ai.d.ts.map +1 -0
- package/dist/llm/data-generator-ai.js +284 -0
- package/dist/llm/data-generator-ai.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +7 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/mcp/handlers/base-handler.d.ts +72 -0
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -0
- package/dist/mcp/handlers/base-handler.js +86 -0
- package/dist/mcp/handlers/base-handler.js.map +1 -0
- package/dist/mcp/handlers/compare-sources.d.ts +91 -0
- package/dist/mcp/handlers/compare-sources.d.ts.map +1 -0
- package/dist/mcp/handlers/compare-sources.js +182 -0
- package/dist/mcp/handlers/compare-sources.js.map +1 -0
- package/dist/mcp/handlers/export-results.d.ts +53 -0
- package/dist/mcp/handlers/export-results.d.ts.map +1 -0
- package/dist/mcp/handlers/export-results.js +132 -0
- package/dist/mcp/handlers/export-results.js.map +1 -0
- package/dist/mcp/handlers/export-to-postman.d.ts +65 -0
- package/dist/mcp/handlers/export-to-postman.d.ts.map +1 -0
- package/dist/mcp/handlers/export-to-postman.js +128 -0
- package/dist/mcp/handlers/export-to-postman.js.map +1 -0
- package/dist/mcp/handlers/generate-tests.d.ts +74 -0
- package/dist/mcp/handlers/generate-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/generate-tests.js +519 -0
- package/dist/mcp/handlers/generate-tests.js.map +1 -0
- package/dist/mcp/handlers/index.d.ts +13 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -0
- package/dist/mcp/handlers/index.js +12 -0
- package/dist/mcp/handlers/index.js.map +1 -0
- package/dist/mcp/handlers/run-tests.d.ts +89 -0
- package/dist/mcp/handlers/run-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/run-tests.js +233 -0
- package/dist/mcp/handlers/run-tests.js.map +1 -0
- package/dist/mcp/handlers/types.d.ts +61 -0
- package/dist/mcp/handlers/types.d.ts.map +1 -0
- package/dist/mcp/handlers/types.js +9 -0
- package/dist/mcp/handlers/types.js.map +1 -0
- package/dist/mcp/server.d.ts +64 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +200 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/services/file-service.d.ts +66 -0
- package/dist/mcp/services/file-service.d.ts.map +1 -0
- package/dist/mcp/services/file-service.js +143 -0
- package/dist/mcp/services/file-service.js.map +1 -0
- package/dist/mcp/services/llm-service.d.ts +70 -0
- package/dist/mcp/services/llm-service.d.ts.map +1 -0
- package/dist/mcp/services/llm-service.js +189 -0
- package/dist/mcp/services/llm-service.js.map +1 -0
- package/dist/mcp/services/postman-service.d.ts +128 -0
- package/dist/mcp/services/postman-service.d.ts.map +1 -0
- package/dist/mcp/services/postman-service.js +266 -0
- package/dist/mcp/services/postman-service.js.map +1 -0
- package/dist/mcp/services/report-service.d.ts +81 -0
- package/dist/mcp/services/report-service.d.ts.map +1 -0
- package/dist/mcp/services/report-service.js +210 -0
- package/dist/mcp/services/report-service.js.map +1 -0
- package/dist/mcp/services/spec-service.d.ts +58 -0
- package/dist/mcp/services/spec-service.d.ts.map +1 -0
- package/dist/mcp/services/spec-service.js +140 -0
- package/dist/mcp/services/spec-service.js.map +1 -0
- package/dist/parsers/endpoint-extractor.d.ts +32 -0
- package/dist/parsers/endpoint-extractor.d.ts.map +1 -0
- package/dist/parsers/endpoint-extractor.js +160 -0
- package/dist/parsers/endpoint-extractor.js.map +1 -0
- package/dist/parsers/openapi-parser.d.ts +120 -0
- package/dist/parsers/openapi-parser.d.ts.map +1 -0
- package/dist/parsers/openapi-parser.js +257 -0
- package/dist/parsers/openapi-parser.js.map +1 -0
- package/dist/parsers/visitors/auth-visitor.d.ts +28 -0
- package/dist/parsers/visitors/auth-visitor.d.ts.map +1 -0
- package/dist/parsers/visitors/auth-visitor.js +116 -0
- package/dist/parsers/visitors/auth-visitor.js.map +1 -0
- package/dist/prd/index.d.ts +10 -0
- package/dist/prd/index.d.ts.map +1 -0
- package/dist/prd/index.js +10 -0
- package/dist/prd/index.js.map +1 -0
- package/dist/prd/prd-reader.d.ts +124 -0
- package/dist/prd/prd-reader.d.ts.map +1 -0
- package/dist/prd/prd-reader.js +308 -0
- package/dist/prd/prd-reader.js.map +1 -0
- package/dist/prd/prd-storage.d.ts +232 -0
- package/dist/prd/prd-storage.d.ts.map +1 -0
- package/dist/prd/prd-storage.js +129 -0
- package/dist/prd/prd-storage.js.map +1 -0
- package/dist/repairers/test-auto-repairer.d.ts +61 -0
- package/dist/repairers/test-auto-repairer.d.ts.map +1 -0
- package/dist/repairers/test-auto-repairer.js +213 -0
- package/dist/repairers/test-auto-repairer.js.map +1 -0
- package/dist/reporters/comparison-report-generator.d.ts +58 -0
- package/dist/reporters/comparison-report-generator.d.ts.map +1 -0
- package/dist/reporters/comparison-report-generator.js +369 -0
- package/dist/reporters/comparison-report-generator.js.map +1 -0
- package/dist/reporters/gherkin-formatter.d.ts +34 -0
- package/dist/reporters/gherkin-formatter.d.ts.map +1 -0
- package/dist/reporters/gherkin-formatter.js +231 -0
- package/dist/reporters/gherkin-formatter.js.map +1 -0
- package/dist/reporters/html-report-generator.d.ts +174 -0
- package/dist/reporters/html-report-generator.d.ts.map +1 -0
- package/dist/reporters/html-report-generator.js +194 -0
- package/dist/reporters/html-report-generator.js.map +1 -0
- package/dist/reporters/report-charts.d.ts +23 -0
- package/dist/reporters/report-charts.d.ts.map +1 -0
- package/dist/reporters/report-charts.js +182 -0
- package/dist/reporters/report-charts.js.map +1 -0
- package/dist/reporters/report-sections.d.ts +34 -0
- package/dist/reporters/report-sections.d.ts.map +1 -0
- package/dist/reporters/report-sections.js +481 -0
- package/dist/reporters/report-sections.js.map +1 -0
- package/dist/reporters/report-styles.d.ts +12 -0
- package/dist/reporters/report-styles.d.ts.map +1 -0
- package/dist/reporters/report-styles.js +412 -0
- package/dist/reporters/report-styles.js.map +1 -0
- package/dist/reporters/report-test-details.d.ts +56 -0
- package/dist/reporters/report-test-details.d.ts.map +1 -0
- package/dist/reporters/report-test-details.js +328 -0
- package/dist/reporters/report-test-details.js.map +1 -0
- package/dist/reporters/report-utils.d.ts +40 -0
- package/dist/reporters/report-utils.d.ts.map +1 -0
- package/dist/reporters/report-utils.js +163 -0
- package/dist/reporters/report-utils.js.map +1 -0
- package/dist/types/ai-config.d.ts +63 -0
- package/dist/types/ai-config.d.ts.map +1 -0
- package/dist/types/ai-config.js +79 -0
- package/dist/types/ai-config.js.map +1 -0
- package/dist/types/business-rules.d.ts +235 -0
- package/dist/types/business-rules.d.ts.map +1 -0
- package/dist/types/business-rules.js +6 -0
- package/dist/types/business-rules.js.map +1 -0
- package/dist/types/config.d.ts +106 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/core.d.ts +72 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +6 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/openapi.d.ts +139 -0
- package/dist/types/openapi.d.ts.map +1 -0
- package/dist/types/openapi.js +6 -0
- package/dist/types/openapi.js.map +1 -0
- package/dist/types/pact.d.ts +101 -0
- package/dist/types/pact.d.ts.map +1 -0
- package/dist/types/pact.js +6 -0
- package/dist/types/pact.js.map +1 -0
- package/dist/types/reporting.d.ts +93 -0
- package/dist/types/reporting.d.ts.map +1 -0
- package/dist/types/reporting.js +6 -0
- package/dist/types/reporting.js.map +1 -0
- package/dist/types/test-case.d.ts +233 -0
- package/dist/types/test-case.d.ts.map +1 -0
- package/dist/types/test-case.js +6 -0
- package/dist/types/test-case.js.map +1 -0
- package/dist/types/test-execution.d.ts +80 -0
- package/dist/types/test-execution.d.ts.map +1 -0
- package/dist/types/test-execution.js +6 -0
- package/dist/types/test-execution.js.map +1 -0
- package/dist/utils/auth-generator.d.ts +30 -0
- package/dist/utils/auth-generator.d.ts.map +1 -0
- package/dist/utils/auth-generator.js +68 -0
- package/dist/utils/auth-generator.js.map +1 -0
- package/dist/utils/config.d.ts +181 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +141 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/coverage-calculator.d.ts +81 -0
- package/dist/utils/coverage-calculator.d.ts.map +1 -0
- package/dist/utils/coverage-calculator.js +134 -0
- package/dist/utils/coverage-calculator.js.map +1 -0
- package/dist/utils/data-loader.d.ts +52 -0
- package/dist/utils/data-loader.d.ts.map +1 -0
- package/dist/utils/data-loader.js +192 -0
- package/dist/utils/data-loader.js.map +1 -0
- package/dist/utils/errors.d.ts +167 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +257 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +220 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +325 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/openapi-discovery.d.ts +31 -0
- package/dist/utils/openapi-discovery.d.ts.map +1 -0
- package/dist/utils/openapi-discovery.js +322 -0
- package/dist/utils/openapi-discovery.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +101 -0
- package/dist/utils/path-resolver.d.ts.map +1 -0
- package/dist/utils/path-resolver.js +167 -0
- package/dist/utils/path-resolver.js.map +1 -0
- package/dist/utils/resilience.d.ts +181 -0
- package/dist/utils/resilience.d.ts.map +1 -0
- package/dist/utils/resilience.js +269 -0
- package/dist/utils/resilience.js.map +1 -0
- package/dist/validators/openapi-validator.d.ts +198 -0
- package/dist/validators/openapi-validator.d.ts.map +1 -0
- package/dist/validators/openapi-validator.js +349 -0
- package/dist/validators/openapi-validator.js.map +1 -0
- package/dist/validators/response-matcher.d.ts +84 -0
- package/dist/validators/response-matcher.d.ts.map +1 -0
- package/dist/validators/response-matcher.js +234 -0
- package/dist/validators/response-matcher.js.map +1 -0
- package/dist/validators/schema-validator.d.ts +174 -0
- package/dist/validators/schema-validator.d.ts.map +1 -0
- package/dist/validators/schema-validator.js +340 -0
- package/dist/validators/schema-validator.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI-Powered Data Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates contextual, realistic test data using LLM.
|
|
5
|
+
* Used as a fallback when Faker data is not appropriate for the API domain.
|
|
6
|
+
*
|
|
7
|
+
* @module llm/data-generator-ai
|
|
8
|
+
*/
|
|
9
|
+
import { callLLM } from './ai-client.js';
|
|
10
|
+
import { createLogger } from '../utils/logger.js';
|
|
11
|
+
const log = createLogger('data-generator-ai');
|
|
12
|
+
/**
|
|
13
|
+
* Checks if an endpoint is critical and requires AI-generated data
|
|
14
|
+
*
|
|
15
|
+
* @param context - API context
|
|
16
|
+
* @returns true if endpoint is critical
|
|
17
|
+
*/
|
|
18
|
+
export function isCriticalEndpoint(context) {
|
|
19
|
+
if (!context?.endpoint)
|
|
20
|
+
return false;
|
|
21
|
+
const criticalPaths = [
|
|
22
|
+
'login',
|
|
23
|
+
'auth',
|
|
24
|
+
'payment',
|
|
25
|
+
'transfer',
|
|
26
|
+
'password',
|
|
27
|
+
'register',
|
|
28
|
+
'signup',
|
|
29
|
+
'checkout',
|
|
30
|
+
'transaction',
|
|
31
|
+
'account',
|
|
32
|
+
'wallet',
|
|
33
|
+
'balance'
|
|
34
|
+
];
|
|
35
|
+
const endpoint = context.endpoint.toLowerCase();
|
|
36
|
+
return criticalPaths.some(path => endpoint.includes(path));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generates a realistic value using AI based on schema and context
|
|
40
|
+
*
|
|
41
|
+
* @param schema - JSON Schema object
|
|
42
|
+
* @param propertyName - Name of the property being generated
|
|
43
|
+
* @param context - API context for domain-specific generation
|
|
44
|
+
* @returns Generated value or null if AI fails
|
|
45
|
+
*/
|
|
46
|
+
export async function generateValueWithAI(schema, propertyName, context) {
|
|
47
|
+
try {
|
|
48
|
+
const prompt = buildPromptForValue(schema, propertyName, context);
|
|
49
|
+
log.debug('Generating value with AI', { propertyName, context });
|
|
50
|
+
const result = await callLLM(prompt, {
|
|
51
|
+
maxTokens: 256,
|
|
52
|
+
temperature: 0.3,
|
|
53
|
+
timeout: 10000
|
|
54
|
+
});
|
|
55
|
+
if (!result.success || !result.text) {
|
|
56
|
+
log.warn('AI generation failed', { propertyName, error: result.error });
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const generatedValue = parseAIValue(result.text.trim(), schema.type);
|
|
60
|
+
log.debug('AI generated value', { propertyName, value: generatedValue });
|
|
61
|
+
return generatedValue;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
log.error('AI generation error', {
|
|
65
|
+
propertyName,
|
|
66
|
+
error: error instanceof Error ? error.message : String(error)
|
|
67
|
+
});
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Builds a prompt for generating a single value
|
|
73
|
+
*
|
|
74
|
+
* @param schema - JSON Schema object
|
|
75
|
+
* @param propertyName - Name of the property
|
|
76
|
+
* @param context - API context
|
|
77
|
+
* @returns Prompt string
|
|
78
|
+
*/
|
|
79
|
+
function buildPromptForValue(schema, propertyName, context) {
|
|
80
|
+
const constraints = buildConstraintsDescription(schema);
|
|
81
|
+
return `Generate realistic test data for an API endpoint.
|
|
82
|
+
|
|
83
|
+
Property: ${propertyName}
|
|
84
|
+
Type: ${schema.type || 'string'}
|
|
85
|
+
Format: ${schema.format || 'none'}
|
|
86
|
+
${constraints ? `Constraints: ${constraints}\n` : ''}
|
|
87
|
+
API Context:
|
|
88
|
+
- Type: ${context?.type || 'unknown'}
|
|
89
|
+
- Endpoint: ${context?.endpoint || 'unknown'}
|
|
90
|
+
- Purpose: ${context?.purpose || 'general'}
|
|
91
|
+
|
|
92
|
+
Generate ONE realistic value that:
|
|
93
|
+
1. Matches the schema type and format
|
|
94
|
+
2. Respects all constraints (min, max, pattern, enum)
|
|
95
|
+
3. Is appropriate for the API type (e.g., realistic IBAN for banking ${propertyName})
|
|
96
|
+
4. Would likely exist in a real database for ${context?.type || 'this'} applications
|
|
97
|
+
|
|
98
|
+
Examples of good values:
|
|
99
|
+
- For "email" in banking API: "john.smith@company.com" (professional)
|
|
100
|
+
- For "amount" in banking API: "150.50" (realistic transaction)
|
|
101
|
+
- For "iban" in banking API: "DE89370400440532013000" (valid IBAN format)
|
|
102
|
+
- For "username" in blog API: "tech_blogger_2024" (casual)
|
|
103
|
+
|
|
104
|
+
Respond with ONLY the value, no explanation, no quotes unless it's a string that needs them.`;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Builds a description of schema constraints
|
|
108
|
+
*
|
|
109
|
+
* @param schema - JSON Schema object
|
|
110
|
+
* @returns Constraints description
|
|
111
|
+
*/
|
|
112
|
+
function buildConstraintsDescription(schema) {
|
|
113
|
+
const parts = [];
|
|
114
|
+
if (schema.minimum !== undefined) {
|
|
115
|
+
parts.push(`min: ${schema.minimum}`);
|
|
116
|
+
}
|
|
117
|
+
if (schema.maximum !== undefined) {
|
|
118
|
+
parts.push(`max: ${schema.maximum}`);
|
|
119
|
+
}
|
|
120
|
+
if (schema.minLength !== undefined) {
|
|
121
|
+
parts.push(`minLength: ${schema.minLength}`);
|
|
122
|
+
}
|
|
123
|
+
if (schema.maxLength !== undefined) {
|
|
124
|
+
parts.push(`maxLength: ${schema.maxLength}`);
|
|
125
|
+
}
|
|
126
|
+
if (schema.pattern) {
|
|
127
|
+
parts.push(`pattern: ${schema.pattern}`);
|
|
128
|
+
}
|
|
129
|
+
if (schema.enum) {
|
|
130
|
+
parts.push(`enum: [${schema.enum.join(', ')}]`);
|
|
131
|
+
}
|
|
132
|
+
return parts.join(', ');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Parses AI-generated text into the appropriate type
|
|
136
|
+
*
|
|
137
|
+
* @param text - AI-generated text
|
|
138
|
+
* @param schemaType - Expected schema type
|
|
139
|
+
* @returns Parsed value
|
|
140
|
+
*/
|
|
141
|
+
function parseAIValue(text, schemaType) {
|
|
142
|
+
// Remove surrounding quotes if present
|
|
143
|
+
let cleaned = text.trim();
|
|
144
|
+
if ((cleaned.startsWith('"') && cleaned.endsWith('"')) ||
|
|
145
|
+
(cleaned.startsWith("'") && cleaned.endsWith("'"))) {
|
|
146
|
+
cleaned = cleaned.slice(1, -1);
|
|
147
|
+
}
|
|
148
|
+
// Parse based on schema type
|
|
149
|
+
switch (schemaType) {
|
|
150
|
+
case 'integer':
|
|
151
|
+
return parseInt(cleaned, 10);
|
|
152
|
+
case 'number':
|
|
153
|
+
return parseFloat(cleaned);
|
|
154
|
+
case 'boolean':
|
|
155
|
+
return cleaned.toLowerCase() === 'true';
|
|
156
|
+
case 'array':
|
|
157
|
+
try {
|
|
158
|
+
return JSON.parse(text);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// If JSON parse fails, split by comma
|
|
162
|
+
return cleaned.split(',').map(s => s.trim());
|
|
163
|
+
}
|
|
164
|
+
case 'object':
|
|
165
|
+
try {
|
|
166
|
+
return JSON.parse(text);
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return { value: cleaned };
|
|
170
|
+
}
|
|
171
|
+
case 'string':
|
|
172
|
+
default:
|
|
173
|
+
return cleaned;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Generates intelligent edge case values using AI
|
|
178
|
+
*
|
|
179
|
+
* @param schema - JSON Schema object
|
|
180
|
+
* @param propertyName - Name of the property
|
|
181
|
+
* @param context - API context
|
|
182
|
+
* @returns Array of edge case values with descriptions
|
|
183
|
+
*/
|
|
184
|
+
export async function generateEdgeCasesWithAI(schema, propertyName, context) {
|
|
185
|
+
try {
|
|
186
|
+
const prompt = `Generate realistic edge case values for API testing.
|
|
187
|
+
|
|
188
|
+
Property: ${propertyName}
|
|
189
|
+
Type: ${schema.type || 'string'}
|
|
190
|
+
API Type: ${context?.type || 'unknown'}
|
|
191
|
+
Endpoint: ${context?.endpoint || 'unknown'}
|
|
192
|
+
|
|
193
|
+
Generate 3 edge cases that are realistic for a ${context?.type || 'generic'} API:
|
|
194
|
+
1. A valid edge case (boundary value that should work)
|
|
195
|
+
2. An invalid edge case (should fail validation)
|
|
196
|
+
3. A domain-specific edge case (specific to ${context?.type || 'this domain'})
|
|
197
|
+
|
|
198
|
+
Format your response as JSON array:
|
|
199
|
+
[
|
|
200
|
+
{"value": "...", "description": "...", "expectedStatus": 200},
|
|
201
|
+
{"value": "...", "description": "...", "expectedStatus": 400},
|
|
202
|
+
{"value": "...", "description": "...", "expectedStatus": 400}
|
|
203
|
+
]`;
|
|
204
|
+
const result = await callLLM(prompt, {
|
|
205
|
+
maxTokens: 512,
|
|
206
|
+
temperature: 0.4,
|
|
207
|
+
timeout: 15000
|
|
208
|
+
});
|
|
209
|
+
if (!result.success || !result.text) {
|
|
210
|
+
log.warn('AI edge case generation failed', { propertyName });
|
|
211
|
+
return [];
|
|
212
|
+
}
|
|
213
|
+
// Try to parse JSON response
|
|
214
|
+
try {
|
|
215
|
+
const edgeCases = JSON.parse(result.text.trim());
|
|
216
|
+
if (Array.isArray(edgeCases)) {
|
|
217
|
+
return edgeCases;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch (parseError) {
|
|
221
|
+
log.warn('Failed to parse AI edge cases', { propertyName, parseError });
|
|
222
|
+
}
|
|
223
|
+
return [];
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
log.error('AI edge case generation error', {
|
|
227
|
+
propertyName,
|
|
228
|
+
error: error instanceof Error ? error.message : String(error)
|
|
229
|
+
});
|
|
230
|
+
return [];
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Infers the purpose of an endpoint from its path and method
|
|
235
|
+
*
|
|
236
|
+
* @param endpoint - Endpoint path
|
|
237
|
+
* @param method - HTTP method
|
|
238
|
+
* @returns Inferred purpose
|
|
239
|
+
*/
|
|
240
|
+
export function inferEndpointPurpose(endpoint, method) {
|
|
241
|
+
const path = endpoint.toLowerCase();
|
|
242
|
+
const m = method.toUpperCase();
|
|
243
|
+
// Authentication
|
|
244
|
+
if (path.includes('login') || path.includes('signin'))
|
|
245
|
+
return 'login';
|
|
246
|
+
if (path.includes('logout') || path.includes('signout'))
|
|
247
|
+
return 'logout';
|
|
248
|
+
if (path.includes('register') || path.includes('signup'))
|
|
249
|
+
return 'register';
|
|
250
|
+
if (path.includes('auth'))
|
|
251
|
+
return 'authentication';
|
|
252
|
+
// Payment & Financial
|
|
253
|
+
if (path.includes('payment') || path.includes('pay'))
|
|
254
|
+
return 'payment';
|
|
255
|
+
if (path.includes('transfer'))
|
|
256
|
+
return 'transfer';
|
|
257
|
+
if (path.includes('transaction'))
|
|
258
|
+
return 'transaction';
|
|
259
|
+
if (path.includes('balance'))
|
|
260
|
+
return 'balance_check';
|
|
261
|
+
if (path.includes('wallet'))
|
|
262
|
+
return 'wallet_management';
|
|
263
|
+
// User management
|
|
264
|
+
if (path.includes('user') || path.includes('profile')) {
|
|
265
|
+
if (m === 'POST')
|
|
266
|
+
return 'create_user';
|
|
267
|
+
if (m === 'PUT' || m === 'PATCH')
|
|
268
|
+
return 'update_user';
|
|
269
|
+
if (m === 'DELETE')
|
|
270
|
+
return 'delete_user';
|
|
271
|
+
return 'get_user';
|
|
272
|
+
}
|
|
273
|
+
// Generic CRUD
|
|
274
|
+
if (m === 'POST')
|
|
275
|
+
return 'create';
|
|
276
|
+
if (m === 'PUT' || m === 'PATCH')
|
|
277
|
+
return 'update';
|
|
278
|
+
if (m === 'DELETE')
|
|
279
|
+
return 'delete';
|
|
280
|
+
if (m === 'GET')
|
|
281
|
+
return 'retrieve';
|
|
282
|
+
return 'general';
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=data-generator-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-generator-ai.js","sourceRoot":"","sources":["../../src/llm/data-generator-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,OAAO,EACP,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,OAAO,EACP,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Handler - Abstract base class for tool handlers
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality for all tool handlers including:
|
|
5
|
+
* - Logging
|
|
6
|
+
* - Response formatting
|
|
7
|
+
* - Error handling
|
|
8
|
+
*
|
|
9
|
+
* @module mcp/handlers/base-handler
|
|
10
|
+
*/
|
|
11
|
+
import type { ToolHandler, ToolResponse } from './types.js';
|
|
12
|
+
import { createLogger } from '../../utils/logger.js';
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base class for tool handlers
|
|
15
|
+
*
|
|
16
|
+
* Provides common functionality that all handlers can use.
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class BaseToolHandler implements ToolHandler {
|
|
19
|
+
/**
|
|
20
|
+
* Logger instance for this handler
|
|
21
|
+
*/
|
|
22
|
+
protected log: ReturnType<typeof createLogger>;
|
|
23
|
+
/**
|
|
24
|
+
* Tool name (must be implemented by subclass)
|
|
25
|
+
*/
|
|
26
|
+
abstract readonly name: string;
|
|
27
|
+
/**
|
|
28
|
+
* Tool description (must be implemented by subclass)
|
|
29
|
+
*/
|
|
30
|
+
abstract readonly description: string;
|
|
31
|
+
/**
|
|
32
|
+
* Tool input schema (must be implemented by subclass)
|
|
33
|
+
*/
|
|
34
|
+
abstract readonly inputSchema: {
|
|
35
|
+
type: string;
|
|
36
|
+
properties?: Record<string, unknown>;
|
|
37
|
+
required?: string[];
|
|
38
|
+
[key: string]: unknown;
|
|
39
|
+
};
|
|
40
|
+
constructor();
|
|
41
|
+
/**
|
|
42
|
+
* Handle tool invocation (must be implemented by subclass)
|
|
43
|
+
*
|
|
44
|
+
* @param args - Tool arguments
|
|
45
|
+
* @returns Tool response
|
|
46
|
+
*/
|
|
47
|
+
abstract handle(args: unknown): Promise<ToolResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* Formats a successful response
|
|
50
|
+
*
|
|
51
|
+
* @param data - Data to return
|
|
52
|
+
* @param asJson - Whether to JSON stringify the data (default: true)
|
|
53
|
+
* @returns Formatted tool response
|
|
54
|
+
*/
|
|
55
|
+
protected formatResponse(data: unknown, asJson?: boolean): ToolResponse;
|
|
56
|
+
/**
|
|
57
|
+
* Formats an error response
|
|
58
|
+
*
|
|
59
|
+
* @param error - Error object or message
|
|
60
|
+
* @returns Formatted error response
|
|
61
|
+
*/
|
|
62
|
+
protected formatError(error: unknown): ToolResponse;
|
|
63
|
+
/**
|
|
64
|
+
* Wraps handler execution with try/catch and logging
|
|
65
|
+
*
|
|
66
|
+
* @param fn - Handler function to execute
|
|
67
|
+
* @param context - Context info for logging
|
|
68
|
+
* @returns Tool response
|
|
69
|
+
*/
|
|
70
|
+
protected executeWithErrorHandling<T>(fn: () => Promise<T>, context?: Record<string, unknown>): Promise<ToolResponse>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=base-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/base-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;;;GAIG;AACH,8BAAsB,eAAgB,YAAW,WAAW;IAC1D;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;;IAMF;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAErD;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,UAAO,GAAG,YAAY;IAYpE;;;;;OAKG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY;IAsBnD;;;;;;OAMG;cACa,wBAAwB,CAAC,CAAC,EACxC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC;CAWzB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Handler - Abstract base class for tool handlers
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality for all tool handlers including:
|
|
5
|
+
* - Logging
|
|
6
|
+
* - Response formatting
|
|
7
|
+
* - Error handling
|
|
8
|
+
*
|
|
9
|
+
* @module mcp/handlers/base-handler
|
|
10
|
+
*/
|
|
11
|
+
import { createLogger } from '../../utils/logger.js';
|
|
12
|
+
import { formatError } from '../../utils/errors.js';
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base class for tool handlers
|
|
15
|
+
*
|
|
16
|
+
* Provides common functionality that all handlers can use.
|
|
17
|
+
*/
|
|
18
|
+
export class BaseToolHandler {
|
|
19
|
+
/**
|
|
20
|
+
* Logger instance for this handler
|
|
21
|
+
*/
|
|
22
|
+
log;
|
|
23
|
+
constructor() {
|
|
24
|
+
this.log = createLogger(this.constructor.name);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Formats a successful response
|
|
28
|
+
*
|
|
29
|
+
* @param data - Data to return
|
|
30
|
+
* @param asJson - Whether to JSON stringify the data (default: true)
|
|
31
|
+
* @returns Formatted tool response
|
|
32
|
+
*/
|
|
33
|
+
formatResponse(data, asJson = true) {
|
|
34
|
+
const text = asJson ? JSON.stringify(data, null, 2) : String(data);
|
|
35
|
+
return {
|
|
36
|
+
content: [
|
|
37
|
+
{
|
|
38
|
+
type: 'text',
|
|
39
|
+
text
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Formats an error response
|
|
46
|
+
*
|
|
47
|
+
* @param error - Error object or message
|
|
48
|
+
* @returns Formatted error response
|
|
49
|
+
*/
|
|
50
|
+
formatError(error) {
|
|
51
|
+
const errorMessage = formatError(error);
|
|
52
|
+
this.log.error('Handler error', { error: errorMessage });
|
|
53
|
+
return {
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: 'text',
|
|
57
|
+
text: JSON.stringify({
|
|
58
|
+
error: errorMessage,
|
|
59
|
+
success: false
|
|
60
|
+
}, null, 2)
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
isError: true
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Wraps handler execution with try/catch and logging
|
|
68
|
+
*
|
|
69
|
+
* @param fn - Handler function to execute
|
|
70
|
+
* @param context - Context info for logging
|
|
71
|
+
* @returns Tool response
|
|
72
|
+
*/
|
|
73
|
+
async executeWithErrorHandling(fn, context) {
|
|
74
|
+
try {
|
|
75
|
+
this.log.info('Handler started', context);
|
|
76
|
+
const result = await fn();
|
|
77
|
+
this.log.info('Handler completed successfully', context);
|
|
78
|
+
return this.formatResponse(result);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
this.log.error('Handler failed', { ...context, error });
|
|
82
|
+
return this.formatError(error);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=base-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/mcp/handlers/base-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,OAAgB,eAAe;IACnC;;OAEG;IACO,GAAG,CAAkC;IAsB/C;QACE,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAUD;;;;;;OAMG;IACO,cAAc,CAAC,IAAa,EAAE,MAAM,GAAG,IAAI;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI;iBACL;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,WAAW,CAAC,KAAc;QAClC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,KAAK,EAAE,YAAY;wBACnB,OAAO,EAAE,KAAK;qBACf,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,wBAAwB,CACtC,EAAoB,EACpB,OAAiC;QAEjC,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare Sources Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles the compare-sources tool which compares OpenAPI spec vs Code vs PRD.
|
|
5
|
+
*
|
|
6
|
+
* @module mcp/handlers/compare-sources
|
|
7
|
+
*/
|
|
8
|
+
import { BaseToolHandler } from './base-handler.js';
|
|
9
|
+
import type { ToolResponse } from './types.js';
|
|
10
|
+
import { SpecService } from '../services/spec-service.js';
|
|
11
|
+
import { FileService } from '../services/file-service.js';
|
|
12
|
+
/**
|
|
13
|
+
* Handler for source comparison tool
|
|
14
|
+
*/
|
|
15
|
+
export declare class CompareSourcesHandler extends BaseToolHandler {
|
|
16
|
+
private specService;
|
|
17
|
+
private fileService;
|
|
18
|
+
readonly name = "compare-sources";
|
|
19
|
+
readonly description: string;
|
|
20
|
+
readonly inputSchema: {
|
|
21
|
+
type: string;
|
|
22
|
+
properties: {
|
|
23
|
+
specPath: {
|
|
24
|
+
type: string;
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
codeEndpoints: {
|
|
28
|
+
type: string;
|
|
29
|
+
description: string;
|
|
30
|
+
items: {
|
|
31
|
+
type: string;
|
|
32
|
+
properties: {
|
|
33
|
+
method: {
|
|
34
|
+
type: string;
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
path: {
|
|
38
|
+
type: string;
|
|
39
|
+
description: string;
|
|
40
|
+
};
|
|
41
|
+
sourceFile: {
|
|
42
|
+
type: string;
|
|
43
|
+
description: string;
|
|
44
|
+
};
|
|
45
|
+
handlerName: {
|
|
46
|
+
type: string;
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
49
|
+
requiresAuth: {
|
|
50
|
+
type: string;
|
|
51
|
+
description: string;
|
|
52
|
+
};
|
|
53
|
+
parameters: {
|
|
54
|
+
type: string;
|
|
55
|
+
items: {
|
|
56
|
+
type: string;
|
|
57
|
+
};
|
|
58
|
+
description: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
required: string[];
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
prdPath: {
|
|
65
|
+
type: string;
|
|
66
|
+
description: string;
|
|
67
|
+
};
|
|
68
|
+
format: {
|
|
69
|
+
type: string;
|
|
70
|
+
enum: string[];
|
|
71
|
+
description: string;
|
|
72
|
+
};
|
|
73
|
+
outputPath: {
|
|
74
|
+
type: string;
|
|
75
|
+
description: string;
|
|
76
|
+
};
|
|
77
|
+
workingDirectory: {
|
|
78
|
+
type: string;
|
|
79
|
+
description: string;
|
|
80
|
+
};
|
|
81
|
+
enableSemanticAnalysis: {
|
|
82
|
+
type: string;
|
|
83
|
+
description: string;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
required: string[];
|
|
87
|
+
};
|
|
88
|
+
constructor(specService: SpecService, fileService: FileService);
|
|
89
|
+
handle(args: unknown): Promise<ToolResponse>;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=compare-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-sources.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/compare-sources.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI1D;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IA0FtD,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IA1FrB,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,WAAW,SAQyF;IAE7G,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2ElB;gBAGQ,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW;IAK5B,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;CA0GnD"}
|