agentic-qe 3.3.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/package.json +6 -1
- package/v3/CHANGELOG.md +88 -0
- package/v3/dist/cli/bundle.js +18794 -15534
- package/v3/dist/cli/command-registry.d.ts +55 -0
- package/v3/dist/cli/command-registry.d.ts.map +1 -0
- package/v3/dist/cli/command-registry.js +103 -0
- package/v3/dist/cli/command-registry.js.map +1 -0
- package/v3/dist/cli/commands/code.d.ts +9 -0
- package/v3/dist/cli/commands/code.d.ts.map +1 -0
- package/v3/dist/cli/commands/code.js +254 -0
- package/v3/dist/cli/commands/code.js.map +1 -0
- package/v3/dist/cli/commands/completions.d.ts +8 -0
- package/v3/dist/cli/commands/completions.d.ts.map +1 -0
- package/v3/dist/cli/commands/completions.js +99 -0
- package/v3/dist/cli/commands/completions.js.map +1 -0
- package/v3/dist/cli/commands/coverage.d.ts +9 -0
- package/v3/dist/cli/commands/coverage.d.ts.map +1 -0
- package/v3/dist/cli/commands/coverage.js +208 -0
- package/v3/dist/cli/commands/coverage.js.map +1 -0
- package/v3/dist/cli/commands/fleet.d.ts +11 -0
- package/v3/dist/cli/commands/fleet.d.ts.map +1 -0
- package/v3/dist/cli/commands/fleet.js +338 -0
- package/v3/dist/cli/commands/fleet.js.map +1 -0
- package/v3/dist/cli/commands/migrate.d.ts +9 -0
- package/v3/dist/cli/commands/migrate.d.ts.map +1 -0
- package/v3/dist/cli/commands/migrate.js +566 -0
- package/v3/dist/cli/commands/migrate.js.map +1 -0
- package/v3/dist/cli/commands/quality.d.ts +9 -0
- package/v3/dist/cli/commands/quality.d.ts.map +1 -0
- package/v3/dist/cli/commands/quality.js +40 -0
- package/v3/dist/cli/commands/quality.js.map +1 -0
- package/v3/dist/cli/commands/security.d.ts +9 -0
- package/v3/dist/cli/commands/security.d.ts.map +1 -0
- package/v3/dist/cli/commands/security.js +124 -0
- package/v3/dist/cli/commands/security.js.map +1 -0
- package/v3/dist/cli/commands/sync.d.ts +19 -0
- package/v3/dist/cli/commands/sync.d.ts.map +1 -0
- package/v3/dist/cli/commands/sync.js +283 -0
- package/v3/dist/cli/commands/sync.js.map +1 -0
- package/v3/dist/cli/commands/test.d.ts +9 -0
- package/v3/dist/cli/commands/test.d.ts.map +1 -0
- package/v3/dist/cli/commands/test.js +166 -0
- package/v3/dist/cli/commands/test.js.map +1 -0
- package/v3/dist/cli/handlers/agent-handler.d.ts +20 -0
- package/v3/dist/cli/handlers/agent-handler.d.ts.map +1 -0
- package/v3/dist/cli/handlers/agent-handler.js +158 -0
- package/v3/dist/cli/handlers/agent-handler.js.map +1 -0
- package/v3/dist/cli/handlers/domain-handler.d.ts +20 -0
- package/v3/dist/cli/handlers/domain-handler.d.ts.map +1 -0
- package/v3/dist/cli/handlers/domain-handler.js +115 -0
- package/v3/dist/cli/handlers/domain-handler.js.map +1 -0
- package/v3/dist/cli/handlers/index.d.ts +13 -0
- package/v3/dist/cli/handlers/index.d.ts.map +1 -0
- package/v3/dist/cli/handlers/index.js +15 -0
- package/v3/dist/cli/handlers/index.js.map +1 -0
- package/v3/dist/cli/handlers/init-handler.d.ts +38 -0
- package/v3/dist/cli/handlers/init-handler.d.ts.map +1 -0
- package/v3/dist/cli/handlers/init-handler.js +288 -0
- package/v3/dist/cli/handlers/init-handler.js.map +1 -0
- package/v3/dist/cli/handlers/interfaces.d.ts +104 -0
- package/v3/dist/cli/handlers/interfaces.d.ts.map +1 -0
- package/v3/dist/cli/handlers/interfaces.js +109 -0
- package/v3/dist/cli/handlers/interfaces.js.map +1 -0
- package/v3/dist/cli/handlers/protocol-handler.d.ts +19 -0
- package/v3/dist/cli/handlers/protocol-handler.d.ts.map +1 -0
- package/v3/dist/cli/handlers/protocol-handler.js +79 -0
- package/v3/dist/cli/handlers/protocol-handler.js.map +1 -0
- package/v3/dist/cli/handlers/status-handler.d.ts +30 -0
- package/v3/dist/cli/handlers/status-handler.d.ts.map +1 -0
- package/v3/dist/cli/handlers/status-handler.js +218 -0
- package/v3/dist/cli/handlers/status-handler.js.map +1 -0
- package/v3/dist/cli/handlers/task-handler.d.ts +22 -0
- package/v3/dist/cli/handlers/task-handler.d.ts.map +1 -0
- package/v3/dist/cli/handlers/task-handler.js +271 -0
- package/v3/dist/cli/handlers/task-handler.js.map +1 -0
- package/v3/dist/cli/index.d.ts +4 -0
- package/v3/dist/cli/index.d.ts.map +1 -1
- package/v3/dist/cli/index.js +48 -2677
- package/v3/dist/cli/index.js.map +1 -1
- package/v3/dist/cli/wizards/core/index.d.ts +11 -0
- package/v3/dist/cli/wizards/core/index.d.ts.map +1 -0
- package/v3/dist/cli/wizards/core/index.js +15 -0
- package/v3/dist/cli/wizards/core/index.js.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-base.d.ts +87 -0
- package/v3/dist/cli/wizards/core/wizard-base.d.ts.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-base.js +120 -0
- package/v3/dist/cli/wizards/core/wizard-base.js.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-command.d.ts +182 -0
- package/v3/dist/cli/wizards/core/wizard-command.d.ts.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-command.js +45 -0
- package/v3/dist/cli/wizards/core/wizard-command.js.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-step.d.ts +109 -0
- package/v3/dist/cli/wizards/core/wizard-step.d.ts.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-step.js +384 -0
- package/v3/dist/cli/wizards/core/wizard-step.js.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-utils.d.ts +117 -0
- package/v3/dist/cli/wizards/core/wizard-utils.d.ts.map +1 -0
- package/v3/dist/cli/wizards/core/wizard-utils.js +291 -0
- package/v3/dist/cli/wizards/core/wizard-utils.js.map +1 -0
- package/v3/dist/cli/wizards/coverage-wizard.d.ts +13 -68
- package/v3/dist/cli/wizards/coverage-wizard.d.ts.map +1 -1
- package/v3/dist/cli/wizards/coverage-wizard.js +127 -391
- package/v3/dist/cli/wizards/coverage-wizard.js.map +1 -1
- package/v3/dist/cli/wizards/fleet-wizard.d.ts +13 -64
- package/v3/dist/cli/wizards/fleet-wizard.d.ts.map +1 -1
- package/v3/dist/cli/wizards/fleet-wizard.js +150 -363
- package/v3/dist/cli/wizards/fleet-wizard.js.map +1 -1
- package/v3/dist/cli/wizards/index.d.ts +2 -0
- package/v3/dist/cli/wizards/index.d.ts.map +1 -1
- package/v3/dist/cli/wizards/index.js +3 -0
- package/v3/dist/cli/wizards/index.js.map +1 -1
- package/v3/dist/cli/wizards/security-wizard.d.ts +13 -64
- package/v3/dist/cli/wizards/security-wizard.d.ts.map +1 -1
- package/v3/dist/cli/wizards/security-wizard.js +152 -395
- package/v3/dist/cli/wizards/security-wizard.js.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.d.ts +13 -77
- package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.js +196 -328
- package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
- package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts +3 -0
- package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/mincut-health-monitor.js +6 -2
- package/v3/dist/coordination/mincut/mincut-health-monitor.js.map +1 -1
- package/v3/dist/coordination/mincut/queen-integration.d.ts +3 -0
- package/v3/dist/coordination/mincut/queen-integration.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/queen-integration.js +6 -1
- package/v3/dist/coordination/mincut/queen-integration.js.map +1 -1
- package/v3/dist/coordination/task-executor.js +2 -2
- package/v3/dist/coordination/task-executor.js.map +1 -1
- package/v3/dist/domains/chaos-resilience/plugin.js +2 -2
- package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
- package/v3/dist/domains/code-intelligence/plugin.js +2 -2
- package/v3/dist/domains/code-intelligence/plugin.js.map +1 -1
- package/v3/dist/domains/contract-testing/plugin.js +2 -2
- package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
- package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/plugin.js +2 -1
- package/v3/dist/domains/coverage-analysis/plugin.js.map +1 -1
- package/v3/dist/domains/defect-intelligence/plugin.js +2 -2
- package/v3/dist/domains/defect-intelligence/plugin.js.map +1 -1
- package/v3/dist/domains/domain-interface.d.ts.map +1 -1
- package/v3/dist/domains/domain-interface.js +3 -1
- package/v3/dist/domains/domain-interface.js.map +1 -1
- package/v3/dist/domains/learning-optimization/plugin.js +2 -2
- package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
- package/v3/dist/domains/quality-assessment/plugin.js +2 -2
- package/v3/dist/domains/quality-assessment/plugin.js.map +1 -1
- package/v3/dist/domains/requirements-validation/plugin.js +2 -2
- package/v3/dist/domains/requirements-validation/plugin.js.map +1 -1
- package/v3/dist/domains/security-compliance/plugin.js +2 -2
- package/v3/dist/domains/security-compliance/plugin.js.map +1 -1
- package/v3/dist/domains/test-execution/index.d.ts +2 -1
- package/v3/dist/domains/test-execution/index.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/index.js +0 -2
- package/v3/dist/domains/test-execution/index.js.map +1 -1
- package/v3/dist/domains/test-execution/interfaces.d.ts +222 -25
- package/v3/dist/domains/test-execution/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/interfaces.js +130 -3
- package/v3/dist/domains/test-execution/interfaces.js.map +1 -1
- package/v3/dist/domains/test-execution/plugin.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/plugin.js +2 -1
- package/v3/dist/domains/test-execution/plugin.js.map +1 -1
- package/v3/dist/domains/test-execution/test-prioritization-types.d.ts +5 -172
- package/v3/dist/domains/test-execution/test-prioritization-types.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/test-prioritization-types.js +6 -129
- package/v3/dist/domains/test-execution/test-prioritization-types.js.map +1 -1
- package/v3/dist/domains/test-execution/types/index.d.ts +7 -3
- package/v3/dist/domains/test-execution/types/index.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/types/index.js +7 -17
- package/v3/dist/domains/test-execution/types/index.js.map +1 -1
- package/v3/dist/domains/test-generation/coordinator.d.ts +1 -1
- package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/coordinator.js +3 -3
- package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
- package/v3/dist/domains/test-generation/factories/index.d.ts +8 -0
- package/v3/dist/domains/test-generation/factories/index.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/factories/index.js +8 -0
- package/v3/dist/domains/test-generation/factories/index.js.map +1 -0
- package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts +108 -0
- package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/factories/test-generator-factory.js +158 -0
- package/v3/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -0
- package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts +79 -0
- package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/generators/base-test-generator.js +252 -0
- package/v3/dist/domains/test-generation/generators/base-test-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/generators/index.d.ts +11 -0
- package/v3/dist/domains/test-generation/generators/index.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/generators/index.js +13 -0
- package/v3/dist/domains/test-generation/generators/index.js.map +1 -0
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts +77 -0
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js +365 -0
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts +56 -0
- package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/generators/mocha-generator.js +197 -0
- package/v3/dist/domains/test-generation/generators/mocha-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts +66 -0
- package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/generators/pytest-generator.js +240 -0
- package/v3/dist/domains/test-generation/generators/pytest-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/index.d.ts +2 -2
- package/v3/dist/domains/test-generation/index.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/index.js +3 -3
- package/v3/dist/domains/test-generation/index.js.map +1 -1
- package/v3/dist/domains/test-generation/interfaces/index.d.ts +9 -0
- package/v3/dist/domains/test-generation/interfaces/index.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/interfaces/index.js +9 -0
- package/v3/dist/domains/test-generation/interfaces/index.js.map +1 -0
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts +166 -0
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.js +8 -0
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.js.map +1 -0
- package/v3/dist/domains/test-generation/interfaces.d.ts +163 -24
- package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/interfaces.js +2 -2
- package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/plugin.js +6 -5
- package/v3/dist/domains/test-generation/plugin.js.map +1 -1
- package/v3/dist/domains/test-generation/{coherence-gate.d.ts → services/coherence-gate-service.d.ts} +4 -4
- package/v3/dist/domains/test-generation/services/coherence-gate-service.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/{coherence-gate.js → services/coherence-gate-service.js} +2 -2
- package/v3/dist/domains/test-generation/services/coherence-gate-service.js.map +1 -0
- package/v3/dist/domains/test-generation/services/index.d.ts +8 -2
- package/v3/dist/domains/test-generation/services/index.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/services/index.js +10 -3
- package/v3/dist/domains/test-generation/services/index.js.map +1 -1
- package/v3/dist/domains/test-generation/services/property-test-generator.d.ts +34 -0
- package/v3/dist/domains/test-generation/services/property-test-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/services/property-test-generator.js +306 -0
- package/v3/dist/domains/test-generation/services/property-test-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/services/tdd-generator.d.ts +33 -0
- package/v3/dist/domains/test-generation/services/tdd-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/services/tdd-generator.js +342 -0
- package/v3/dist/domains/test-generation/services/tdd-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/services/test-data-generator.d.ts +34 -0
- package/v3/dist/domains/test-generation/services/test-data-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/services/test-data-generator.js +245 -0
- package/v3/dist/domains/test-generation/services/test-data-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/services/test-generator.d.ts +51 -160
- package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/services/test-generator.js +101 -1858
- package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/plugin.js +2 -2
- package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
- package/v3/dist/init/phases/12-verification.d.ts +23 -0
- package/v3/dist/init/phases/12-verification.d.ts.map +1 -1
- package/v3/dist/init/phases/12-verification.js +185 -2
- package/v3/dist/init/phases/12-verification.js.map +1 -1
- package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.d.ts +24 -62
- package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.d.ts.map +1 -1
- package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.js +45 -497
- package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.js.map +1 -1
- package/v3/dist/integrations/agentic-flow/model-router/router.js +2 -2
- package/v3/dist/integrations/agentic-flow/model-router/router.js.map +1 -1
- package/v3/dist/integrations/agentic-flow/model-router/score-calculator.d.ts +98 -0
- package/v3/dist/integrations/agentic-flow/model-router/score-calculator.d.ts.map +1 -0
- package/v3/dist/integrations/agentic-flow/model-router/score-calculator.js +197 -0
- package/v3/dist/integrations/agentic-flow/model-router/score-calculator.js.map +1 -0
- package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts +102 -0
- package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts.map +1 -0
- package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js +372 -0
- package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js.map +1 -0
- package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.d.ts +64 -0
- package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.d.ts.map +1 -0
- package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.js +120 -0
- package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.js.map +1 -0
- package/v3/dist/integrations/coherence/coherence-service.d.ts.map +1 -1
- package/v3/dist/integrations/coherence/coherence-service.js +87 -30
- package/v3/dist/integrations/coherence/coherence-service.js.map +1 -1
- package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts.map +1 -1
- package/v3/dist/integrations/coherence/engines/spectral-adapter.js +124 -35
- package/v3/dist/integrations/coherence/engines/spectral-adapter.js.map +1 -1
- package/v3/dist/learning/memory-auditor.d.ts.map +1 -1
- package/v3/dist/learning/memory-auditor.js +3 -1
- package/v3/dist/learning/memory-auditor.js.map +1 -1
- package/v3/dist/mcp/bundle.js +2475 -1463
- package/v3/dist/mcp/security/cve-prevention.d.ts +31 -134
- package/v3/dist/mcp/security/cve-prevention.d.ts.map +1 -1
- package/v3/dist/mcp/security/cve-prevention.js +37 -562
- package/v3/dist/mcp/security/cve-prevention.js.map +1 -1
- package/v3/dist/mcp/security/index.d.ts +5 -1
- package/v3/dist/mcp/security/index.d.ts.map +1 -1
- package/v3/dist/mcp/security/validators/command-validator.d.ts +41 -0
- package/v3/dist/mcp/security/validators/command-validator.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/command-validator.js +123 -0
- package/v3/dist/mcp/security/validators/command-validator.js.map +1 -0
- package/v3/dist/mcp/security/validators/crypto-validator.d.ts +40 -0
- package/v3/dist/mcp/security/validators/crypto-validator.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/crypto-validator.js +72 -0
- package/v3/dist/mcp/security/validators/crypto-validator.js.map +1 -0
- package/v3/dist/mcp/security/validators/index.d.ts +12 -0
- package/v3/dist/mcp/security/validators/index.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/index.js +22 -0
- package/v3/dist/mcp/security/validators/index.js.map +1 -0
- package/v3/dist/mcp/security/validators/input-sanitizer.d.ts +56 -0
- package/v3/dist/mcp/security/validators/input-sanitizer.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/input-sanitizer.js +157 -0
- package/v3/dist/mcp/security/validators/input-sanitizer.js.map +1 -0
- package/v3/dist/mcp/security/validators/interfaces.d.ts +164 -0
- package/v3/dist/mcp/security/validators/interfaces.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/interfaces.js +6 -0
- package/v3/dist/mcp/security/validators/interfaces.js.map +1 -0
- package/v3/dist/mcp/security/validators/path-traversal-validator.d.ts +50 -0
- package/v3/dist/mcp/security/validators/path-traversal-validator.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/path-traversal-validator.js +242 -0
- package/v3/dist/mcp/security/validators/path-traversal-validator.js.map +1 -0
- package/v3/dist/mcp/security/validators/regex-safety-validator.d.ts +50 -0
- package/v3/dist/mcp/security/validators/regex-safety-validator.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/regex-safety-validator.js +183 -0
- package/v3/dist/mcp/security/validators/regex-safety-validator.js.map +1 -0
- package/v3/dist/mcp/security/validators/validation-orchestrator.d.ts +66 -0
- package/v3/dist/mcp/security/validators/validation-orchestrator.d.ts.map +1 -0
- package/v3/dist/mcp/security/validators/validation-orchestrator.js +146 -0
- package/v3/dist/mcp/security/validators/validation-orchestrator.js.map +1 -0
- package/v3/dist/mcp/server.d.ts.map +1 -1
- package/v3/dist/mcp/server.js +1 -0
- package/v3/dist/mcp/server.js.map +1 -1
- package/v3/dist/mcp/tool-registry.d.ts +3 -1
- package/v3/dist/mcp/tool-registry.d.ts.map +1 -1
- package/v3/dist/mcp/tool-registry.js +155 -2
- package/v3/dist/mcp/tool-registry.js.map +1 -1
- package/v3/dist/mcp/tools/test-generation/generate.d.ts +1 -0
- package/v3/dist/mcp/tools/test-generation/generate.d.ts.map +1 -1
- package/v3/dist/mcp/tools/test-generation/generate.js +3 -2
- package/v3/dist/mcp/tools/test-generation/generate.js.map +1 -1
- package/v3/dist/sync/cloud/index.d.ts +8 -0
- package/v3/dist/sync/cloud/index.d.ts.map +1 -0
- package/v3/dist/sync/cloud/index.js +8 -0
- package/v3/dist/sync/cloud/index.js.map +1 -0
- package/v3/dist/sync/cloud/postgres-writer.d.ts +88 -0
- package/v3/dist/sync/cloud/postgres-writer.d.ts.map +1 -0
- package/v3/dist/sync/cloud/postgres-writer.js +319 -0
- package/v3/dist/sync/cloud/postgres-writer.js.map +1 -0
- package/v3/dist/sync/cloud/tunnel-manager.d.ts +75 -0
- package/v3/dist/sync/cloud/tunnel-manager.d.ts.map +1 -0
- package/v3/dist/sync/cloud/tunnel-manager.js +221 -0
- package/v3/dist/sync/cloud/tunnel-manager.js.map +1 -0
- package/v3/dist/sync/index.d.ts +35 -0
- package/v3/dist/sync/index.d.ts.map +1 -0
- package/v3/dist/sync/index.js +35 -0
- package/v3/dist/sync/index.js.map +1 -0
- package/v3/dist/sync/interfaces.d.ts +245 -0
- package/v3/dist/sync/interfaces.d.ts.map +1 -0
- package/v3/dist/sync/interfaces.js +160 -0
- package/v3/dist/sync/interfaces.js.map +1 -0
- package/v3/dist/sync/readers/index.d.ts +8 -0
- package/v3/dist/sync/readers/index.d.ts.map +1 -0
- package/v3/dist/sync/readers/index.js +8 -0
- package/v3/dist/sync/readers/index.js.map +1 -0
- package/v3/dist/sync/readers/json-reader.d.ts +95 -0
- package/v3/dist/sync/readers/json-reader.d.ts.map +1 -0
- package/v3/dist/sync/readers/json-reader.js +306 -0
- package/v3/dist/sync/readers/json-reader.js.map +1 -0
- package/v3/dist/sync/readers/sqlite-reader.d.ts +88 -0
- package/v3/dist/sync/readers/sqlite-reader.d.ts.map +1 -0
- package/v3/dist/sync/readers/sqlite-reader.js +255 -0
- package/v3/dist/sync/readers/sqlite-reader.js.map +1 -0
- package/v3/dist/sync/sync-agent.d.ts +116 -0
- package/v3/dist/sync/sync-agent.d.ts.map +1 -0
- package/v3/dist/sync/sync-agent.js +416 -0
- package/v3/dist/sync/sync-agent.js.map +1 -0
- package/v3/package.json +13 -2
- package/v3/dist/domains/test-generation/coherence-gate.d.ts.map +0 -1
- package/v3/dist/domains/test-generation/coherence-gate.js.map +0 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Mocha Test Generator
|
|
3
|
+
* Strategy implementation for Mocha test framework with Chai assertions
|
|
4
|
+
*
|
|
5
|
+
* Generates test code using:
|
|
6
|
+
* - describe/it blocks (Mocha)
|
|
7
|
+
* - expect().to.be/to.equal assertions (Chai)
|
|
8
|
+
* - function() {} style for this context
|
|
9
|
+
* - beforeEach/afterEach hooks
|
|
10
|
+
*
|
|
11
|
+
* @module test-generation/generators
|
|
12
|
+
*/
|
|
13
|
+
import { BaseTestGenerator } from './base-test-generator';
|
|
14
|
+
/**
|
|
15
|
+
* MochaGenerator - Test generator for Mocha framework with Chai
|
|
16
|
+
*
|
|
17
|
+
* Uses traditional function() syntax to preserve Mocha's this context
|
|
18
|
+
* for features like this.timeout() and this.retries().
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const generator = new MochaGenerator();
|
|
23
|
+
* const testCode = generator.generateTests({
|
|
24
|
+
* moduleName: 'userService',
|
|
25
|
+
* importPath: './user-service',
|
|
26
|
+
* testType: 'unit',
|
|
27
|
+
* patterns: [],
|
|
28
|
+
* analysis: { functions: [...], classes: [...] }
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export class MochaGenerator extends BaseTestGenerator {
|
|
33
|
+
framework = 'mocha';
|
|
34
|
+
/**
|
|
35
|
+
* Generate complete test file from analysis
|
|
36
|
+
*/
|
|
37
|
+
generateTests(context) {
|
|
38
|
+
const { moduleName, importPath, testType, patterns, analysis } = context;
|
|
39
|
+
if (!analysis || (analysis.functions.length === 0 && analysis.classes.length === 0)) {
|
|
40
|
+
return this.generateStubTests(context);
|
|
41
|
+
}
|
|
42
|
+
const patternComment = this.generatePatternComment(patterns);
|
|
43
|
+
const exports = this.extractExports(analysis.functions, analysis.classes);
|
|
44
|
+
const importStatement = this.generateImportStatement(exports, importPath, moduleName);
|
|
45
|
+
let code = `${patternComment}import { expect } from 'chai';
|
|
46
|
+
${importStatement}
|
|
47
|
+
|
|
48
|
+
describe('${moduleName} - ${testType} tests', function() {
|
|
49
|
+
`;
|
|
50
|
+
for (const fn of analysis.functions) {
|
|
51
|
+
code += this.generateFunctionTests(fn, testType);
|
|
52
|
+
}
|
|
53
|
+
for (const cls of analysis.classes) {
|
|
54
|
+
code += this.generateClassTests(cls, testType);
|
|
55
|
+
}
|
|
56
|
+
code += `});\n`;
|
|
57
|
+
return code;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Generate tests for a standalone function
|
|
61
|
+
*/
|
|
62
|
+
generateFunctionTests(fn, _testType) {
|
|
63
|
+
const validParams = fn.parameters.map((p) => this.generateTestValue(p)).join(', ');
|
|
64
|
+
const fnCall = fn.isAsync ? `await ${fn.name}(${validParams})` : `${fn.name}(${validParams})`;
|
|
65
|
+
let code = ` describe('${fn.name}', function() {\n`;
|
|
66
|
+
code += ` it('should handle valid input', ${fn.isAsync ? 'async ' : ''}function() {\n`;
|
|
67
|
+
code += ` const result = ${fnCall};\n`;
|
|
68
|
+
code += ` expect(result).to.not.be.undefined;\n`;
|
|
69
|
+
code += ` });\n`;
|
|
70
|
+
// Test for undefined parameters
|
|
71
|
+
for (const param of fn.parameters) {
|
|
72
|
+
if (!param.optional) {
|
|
73
|
+
const paramsWithUndefined = fn.parameters
|
|
74
|
+
.map((p) => (p.name === param.name ? 'undefined' : this.generateTestValue(p)))
|
|
75
|
+
.join(', ');
|
|
76
|
+
code += `\n it('should handle undefined ${param.name}', function() {\n`;
|
|
77
|
+
code += ` expect(function() { ${fn.name}(${paramsWithUndefined}); }).to.throw();\n`;
|
|
78
|
+
code += ` });\n`;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
code += ` });\n\n`;
|
|
82
|
+
return code;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Generate tests for a class
|
|
86
|
+
*/
|
|
87
|
+
generateClassTests(cls, _testType) {
|
|
88
|
+
const constructorArgs = cls.constructorParams?.map((p) => this.generateTestValue(p)).join(', ') || '';
|
|
89
|
+
let code = ` describe('${cls.name}', function() {\n`;
|
|
90
|
+
code += ` let instance;\n\n`;
|
|
91
|
+
code += ` beforeEach(function() {\n`;
|
|
92
|
+
code += ` instance = new ${cls.name}(${constructorArgs});\n`;
|
|
93
|
+
code += ` });\n\n`;
|
|
94
|
+
code += ` it('should instantiate correctly', function() {\n`;
|
|
95
|
+
code += ` expect(instance).to.be.instanceOf(${cls.name});\n`;
|
|
96
|
+
code += ` });\n`;
|
|
97
|
+
for (const method of cls.methods) {
|
|
98
|
+
if (!method.name.startsWith('_')) {
|
|
99
|
+
const methodParams = method.parameters.map((p) => this.generateTestValue(p)).join(', ');
|
|
100
|
+
code += `\n it('${method.name} should work', ${method.isAsync ? 'async ' : ''}function() {\n`;
|
|
101
|
+
code += ` const result = ${method.isAsync ? 'await ' : ''}instance.${method.name}(${methodParams});\n`;
|
|
102
|
+
code += ` expect(result).to.not.be.undefined;\n`;
|
|
103
|
+
code += ` });\n`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
code += ` });\n\n`;
|
|
107
|
+
return code;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Generate stub tests when no AST analysis is available
|
|
111
|
+
*/
|
|
112
|
+
generateStubTests(context) {
|
|
113
|
+
const { moduleName, importPath, testType, patterns } = context;
|
|
114
|
+
const patternComment = this.generatePatternComment(patterns);
|
|
115
|
+
// Determine if async tests needed based on patterns
|
|
116
|
+
const isAsync = patterns.some((p) => p.name.toLowerCase().includes('async') || p.name.toLowerCase().includes('promise'));
|
|
117
|
+
const asyncSetup = isAsync ? 'async ' : '';
|
|
118
|
+
return `${patternComment}import { expect } from 'chai';
|
|
119
|
+
import { ${moduleName} } from '${importPath}';
|
|
120
|
+
|
|
121
|
+
describe('${moduleName}', function() {
|
|
122
|
+
describe('${testType} tests', function() {
|
|
123
|
+
it('should be defined', function() {
|
|
124
|
+
expect(${moduleName}).to.not.be.undefined;
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it('should handle basic operations', ${asyncSetup}function() {
|
|
128
|
+
// Verify module exports expected interface
|
|
129
|
+
const moduleType = typeof ${moduleName};
|
|
130
|
+
expect(['function', 'object']).to.include(moduleType);
|
|
131
|
+
|
|
132
|
+
if (moduleType === 'function') {
|
|
133
|
+
const instance = new ${moduleName}();
|
|
134
|
+
expect(instance).to.exist;
|
|
135
|
+
} else {
|
|
136
|
+
expect(Object.keys(${moduleName})).to.have.length.greaterThan(0);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it('should handle edge cases', function() {
|
|
141
|
+
// Verify resilience to edge inputs
|
|
142
|
+
const instance = typeof ${moduleName} === 'function'
|
|
143
|
+
? new ${moduleName}()
|
|
144
|
+
: ${moduleName};
|
|
145
|
+
expect(instance).to.exist;
|
|
146
|
+
expect(function() { JSON.stringify(instance); }).to.not.throw();
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
it('should handle error conditions', function() {
|
|
150
|
+
// Verify error resilience
|
|
151
|
+
expect(function() {
|
|
152
|
+
const instance = typeof ${moduleName} === 'function'
|
|
153
|
+
? new ${moduleName}()
|
|
154
|
+
: ${moduleName};
|
|
155
|
+
return instance;
|
|
156
|
+
}).to.not.throw();
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
`;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Generate coverage-focused tests for specific lines
|
|
164
|
+
*/
|
|
165
|
+
generateCoverageTests(moduleName, importPath, lines) {
|
|
166
|
+
const funcName = this.camelCase(moduleName);
|
|
167
|
+
const lineRange = this.formatLineRange(lines);
|
|
168
|
+
return `// Coverage test for ${lineRange} in ${moduleName}
|
|
169
|
+
import { expect } from 'chai';
|
|
170
|
+
import { ${funcName} } from '${importPath}';
|
|
171
|
+
|
|
172
|
+
describe('${moduleName} coverage', function() {
|
|
173
|
+
describe('${lineRange}', function() {
|
|
174
|
+
it('should execute code path covering ${lineRange}', function() {
|
|
175
|
+
// Arrange: Set up test inputs to reach uncovered lines
|
|
176
|
+
const testInput = undefined; // Replace with appropriate input
|
|
177
|
+
|
|
178
|
+
// Act: Execute the code path
|
|
179
|
+
const result = ${funcName}(testInput);
|
|
180
|
+
|
|
181
|
+
// Assert: Verify the code was reached and behaves correctly
|
|
182
|
+
expect(result).to.not.be.undefined;
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
it('should handle edge case for ${lineRange}', function() {
|
|
186
|
+
// Arrange: Set up edge case input
|
|
187
|
+
const edgeCaseInput = null;
|
|
188
|
+
|
|
189
|
+
// Act & Assert: Verify edge case handling
|
|
190
|
+
expect(function() { ${funcName}(edgeCaseInput); }).to.not.throw();
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
`;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=mocha-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mocha-generator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/mocha-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Pytest Test Generator
|
|
3
|
+
* Strategy implementation for Python's pytest framework
|
|
4
|
+
*
|
|
5
|
+
* Generates test code using:
|
|
6
|
+
* - pytest class-based and function-based tests
|
|
7
|
+
* - Python assert statements
|
|
8
|
+
* - @pytest.fixture decorators
|
|
9
|
+
* - @pytest.mark.asyncio for async tests
|
|
10
|
+
*
|
|
11
|
+
* @module test-generation/generators
|
|
12
|
+
*/
|
|
13
|
+
import { BaseTestGenerator } from './base-test-generator';
|
|
14
|
+
import type { TestFramework, TestType, FunctionInfo, ClassInfo, TestGenerationContext } from '../interfaces';
|
|
15
|
+
/**
|
|
16
|
+
* PytestGenerator - Test generator for Python's pytest framework
|
|
17
|
+
*
|
|
18
|
+
* Generates idiomatic Python test code with pytest conventions:
|
|
19
|
+
* - Test classes prefixed with Test
|
|
20
|
+
* - Test methods prefixed with test_
|
|
21
|
+
* - Fixtures for setup/teardown
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const generator = new PytestGenerator();
|
|
26
|
+
* const testCode = generator.generateTests({
|
|
27
|
+
* moduleName: 'user_service',
|
|
28
|
+
* importPath: 'app.services.user_service',
|
|
29
|
+
* testType: 'unit',
|
|
30
|
+
* patterns: [],
|
|
31
|
+
* analysis: { functions: [...], classes: [...] }
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare class PytestGenerator extends BaseTestGenerator {
|
|
36
|
+
readonly framework: TestFramework;
|
|
37
|
+
/**
|
|
38
|
+
* Generate complete test file from analysis
|
|
39
|
+
*/
|
|
40
|
+
generateTests(context: TestGenerationContext): string;
|
|
41
|
+
/**
|
|
42
|
+
* Generate tests for a standalone function
|
|
43
|
+
*/
|
|
44
|
+
generateFunctionTests(fn: FunctionInfo, _testType: TestType): string;
|
|
45
|
+
/**
|
|
46
|
+
* Generate tests for a class
|
|
47
|
+
*/
|
|
48
|
+
generateClassTests(cls: ClassInfo, _testType: TestType): string;
|
|
49
|
+
/**
|
|
50
|
+
* Generate stub tests when no AST analysis is available
|
|
51
|
+
*/
|
|
52
|
+
generateStubTests(context: TestGenerationContext): string;
|
|
53
|
+
/**
|
|
54
|
+
* Generate coverage-focused tests for specific lines
|
|
55
|
+
*/
|
|
56
|
+
generateCoverageTests(moduleName: string, importPath: string, lines: number[]): string;
|
|
57
|
+
/**
|
|
58
|
+
* Generate Python pattern comment
|
|
59
|
+
*/
|
|
60
|
+
private generatePythonPatternComment;
|
|
61
|
+
/**
|
|
62
|
+
* Generate a Python test value for a parameter
|
|
63
|
+
*/
|
|
64
|
+
private generatePythonTestValue;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=pytest-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytest-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/pytest-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EAET,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAY;IAE7C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IAoCrD;;OAEG;IACH,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IAwBpE;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IA0B/D;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IAwDzD;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EAAE,GACd,MAAM;IAiCT;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAKpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAsBhC"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Pytest Test Generator
|
|
3
|
+
* Strategy implementation for Python's pytest framework
|
|
4
|
+
*
|
|
5
|
+
* Generates test code using:
|
|
6
|
+
* - pytest class-based and function-based tests
|
|
7
|
+
* - Python assert statements
|
|
8
|
+
* - @pytest.fixture decorators
|
|
9
|
+
* - @pytest.mark.asyncio for async tests
|
|
10
|
+
*
|
|
11
|
+
* @module test-generation/generators
|
|
12
|
+
*/
|
|
13
|
+
import { faker } from '@faker-js/faker';
|
|
14
|
+
import { BaseTestGenerator } from './base-test-generator';
|
|
15
|
+
/**
|
|
16
|
+
* PytestGenerator - Test generator for Python's pytest framework
|
|
17
|
+
*
|
|
18
|
+
* Generates idiomatic Python test code with pytest conventions:
|
|
19
|
+
* - Test classes prefixed with Test
|
|
20
|
+
* - Test methods prefixed with test_
|
|
21
|
+
* - Fixtures for setup/teardown
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const generator = new PytestGenerator();
|
|
26
|
+
* const testCode = generator.generateTests({
|
|
27
|
+
* moduleName: 'user_service',
|
|
28
|
+
* importPath: 'app.services.user_service',
|
|
29
|
+
* testType: 'unit',
|
|
30
|
+
* patterns: [],
|
|
31
|
+
* analysis: { functions: [...], classes: [...] }
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export class PytestGenerator extends BaseTestGenerator {
|
|
36
|
+
framework = 'pytest';
|
|
37
|
+
/**
|
|
38
|
+
* Generate complete test file from analysis
|
|
39
|
+
*/
|
|
40
|
+
generateTests(context) {
|
|
41
|
+
const { moduleName, importPath, testType, patterns, analysis } = context;
|
|
42
|
+
if (!analysis || (analysis.functions.length === 0 && analysis.classes.length === 0)) {
|
|
43
|
+
return this.generateStubTests(context);
|
|
44
|
+
}
|
|
45
|
+
const patternComment = this.generatePythonPatternComment(patterns);
|
|
46
|
+
const exports = this.extractExports(analysis.functions, analysis.classes);
|
|
47
|
+
const pythonImport = importPath.replace(/\//g, '.').replace(/\.(ts|js)$/, '');
|
|
48
|
+
const importStatement = exports.length > 0
|
|
49
|
+
? `from ${pythonImport} import ${exports.join(', ')}`
|
|
50
|
+
: `import ${pythonImport} as ${moduleName}`;
|
|
51
|
+
let code = `${patternComment}import pytest
|
|
52
|
+
${importStatement}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class Test${this.pascalCase(moduleName)}:
|
|
56
|
+
"""${testType} tests for ${moduleName}"""
|
|
57
|
+
|
|
58
|
+
`;
|
|
59
|
+
for (const fn of analysis.functions) {
|
|
60
|
+
code += this.generateFunctionTests(fn, testType);
|
|
61
|
+
}
|
|
62
|
+
for (const cls of analysis.classes) {
|
|
63
|
+
code += this.generateClassTests(cls, testType);
|
|
64
|
+
}
|
|
65
|
+
return code;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Generate tests for a standalone function
|
|
69
|
+
*/
|
|
70
|
+
generateFunctionTests(fn, _testType) {
|
|
71
|
+
const validParams = fn.parameters.map((p) => this.generatePythonTestValue(p)).join(', ');
|
|
72
|
+
let code = ` def test_${fn.name}_valid_input(self):\n`;
|
|
73
|
+
code += ` """Test ${fn.name} with valid input"""\n`;
|
|
74
|
+
code += ` result = ${fn.name}(${validParams})\n`;
|
|
75
|
+
code += ` assert result is not None\n\n`;
|
|
76
|
+
// Test for edge cases
|
|
77
|
+
for (const param of fn.parameters) {
|
|
78
|
+
if (!param.optional && param.type?.includes('str')) {
|
|
79
|
+
code += ` def test_${fn.name}_empty_${param.name}(self):\n`;
|
|
80
|
+
code += ` """Test ${fn.name} with empty ${param.name}"""\n`;
|
|
81
|
+
const paramsWithEmpty = fn.parameters
|
|
82
|
+
.map((p) => (p.name === param.name ? '""' : this.generatePythonTestValue(p)))
|
|
83
|
+
.join(', ');
|
|
84
|
+
code += ` result = ${fn.name}(${paramsWithEmpty})\n`;
|
|
85
|
+
code += ` assert result is not None\n\n`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return code;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Generate tests for a class
|
|
92
|
+
*/
|
|
93
|
+
generateClassTests(cls, _testType) {
|
|
94
|
+
const constructorArgs = cls.constructorParams?.map((p) => this.generatePythonTestValue(p)).join(', ') || '';
|
|
95
|
+
let code = `\nclass Test${cls.name}:\n`;
|
|
96
|
+
code += ` """Tests for ${cls.name}"""\n\n`;
|
|
97
|
+
code += ` @pytest.fixture\n`;
|
|
98
|
+
code += ` def instance(self):\n`;
|
|
99
|
+
code += ` return ${cls.name}(${constructorArgs})\n\n`;
|
|
100
|
+
code += ` def test_instantiation(self, instance):\n`;
|
|
101
|
+
code += ` assert isinstance(instance, ${cls.name})\n\n`;
|
|
102
|
+
for (const method of cls.methods) {
|
|
103
|
+
if (!method.name.startsWith('_')) {
|
|
104
|
+
const methodParams = method.parameters
|
|
105
|
+
.map((p) => this.generatePythonTestValue(p))
|
|
106
|
+
.join(', ');
|
|
107
|
+
code += ` def test_${method.name}(self, instance):\n`;
|
|
108
|
+
code += ` result = instance.${method.name}(${methodParams})\n`;
|
|
109
|
+
code += ` assert result is not None\n\n`;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return code;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Generate stub tests when no AST analysis is available
|
|
116
|
+
*/
|
|
117
|
+
generateStubTests(context) {
|
|
118
|
+
const { moduleName, importPath, testType, patterns } = context;
|
|
119
|
+
const patternComment = this.generatePythonPatternComment(patterns);
|
|
120
|
+
// Determine if async tests needed based on patterns
|
|
121
|
+
const isAsync = patterns.some((p) => p.name.toLowerCase().includes('async') || p.name.toLowerCase().includes('promise'));
|
|
122
|
+
const asyncDecorator = isAsync ? '@pytest.mark.asyncio\n ' : '';
|
|
123
|
+
const asyncDef = isAsync ? 'async def' : 'def';
|
|
124
|
+
return `${patternComment}import pytest
|
|
125
|
+
from ${importPath} import ${moduleName}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class Test${this.pascalCase(moduleName)}:
|
|
129
|
+
"""${testType} tests for ${moduleName}"""
|
|
130
|
+
|
|
131
|
+
def test_is_defined(self):
|
|
132
|
+
"""Verify the module is properly exported and defined."""
|
|
133
|
+
assert ${moduleName} is not None
|
|
134
|
+
|
|
135
|
+
${asyncDecorator}${asyncDef} test_basic_operations(self):
|
|
136
|
+
"""Test core functionality with valid inputs."""
|
|
137
|
+
# Verify module can be instantiated or accessed
|
|
138
|
+
if callable(${moduleName}):
|
|
139
|
+
instance = ${moduleName}()
|
|
140
|
+
assert instance is not None
|
|
141
|
+
else:
|
|
142
|
+
assert len(dir(${moduleName})) > 0
|
|
143
|
+
|
|
144
|
+
def test_edge_cases(self):
|
|
145
|
+
"""Test handling of edge case inputs."""
|
|
146
|
+
# Verify module handles edge cases gracefully
|
|
147
|
+
instance = ${moduleName}() if callable(${moduleName}) else ${moduleName}
|
|
148
|
+
assert instance is not None
|
|
149
|
+
# Module should be serializable
|
|
150
|
+
import json
|
|
151
|
+
try:
|
|
152
|
+
json.dumps(str(instance))
|
|
153
|
+
except (TypeError, ValueError):
|
|
154
|
+
pass # Complex objects may not serialize, but shouldn't crash
|
|
155
|
+
|
|
156
|
+
def test_error_conditions(self):
|
|
157
|
+
"""Test error handling and recovery."""
|
|
158
|
+
# Module instantiation should not raise unexpected errors
|
|
159
|
+
try:
|
|
160
|
+
instance = ${moduleName}() if callable(${moduleName}) else ${moduleName}
|
|
161
|
+
assert instance is not None
|
|
162
|
+
except TypeError:
|
|
163
|
+
# Expected if constructor requires arguments
|
|
164
|
+
pass
|
|
165
|
+
`;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Generate coverage-focused tests for specific lines
|
|
169
|
+
*/
|
|
170
|
+
generateCoverageTests(moduleName, importPath, lines) {
|
|
171
|
+
const funcName = this.camelCase(moduleName);
|
|
172
|
+
const lineRange = this.formatLineRange(lines);
|
|
173
|
+
const pythonImport = importPath.replace(/\//g, '.');
|
|
174
|
+
return `# Coverage test for ${lineRange} in ${moduleName}
|
|
175
|
+
import pytest
|
|
176
|
+
from ${pythonImport} import ${funcName}
|
|
177
|
+
|
|
178
|
+
class Test${this.pascalCase(moduleName)}Coverage:
|
|
179
|
+
"""Tests to cover ${lineRange}"""
|
|
180
|
+
|
|
181
|
+
def test_cover_${lines[0]}_${lines[lines.length - 1]}(self):
|
|
182
|
+
"""Exercise code path covering ${lineRange}"""
|
|
183
|
+
# Arrange: Set up test inputs to reach uncovered lines
|
|
184
|
+
test_input = None # Replace with appropriate input
|
|
185
|
+
|
|
186
|
+
# Act: Execute the code path
|
|
187
|
+
try:
|
|
188
|
+
result = ${funcName}(test_input)
|
|
189
|
+
|
|
190
|
+
# Assert: Verify expected behavior
|
|
191
|
+
assert result is not None
|
|
192
|
+
except Exception as e:
|
|
193
|
+
# If exception is expected for this path, verify it
|
|
194
|
+
pytest.fail(f"Unexpected exception: {e}")
|
|
195
|
+
`;
|
|
196
|
+
}
|
|
197
|
+
// ============================================================================
|
|
198
|
+
// Python-Specific Helpers
|
|
199
|
+
// ============================================================================
|
|
200
|
+
/**
|
|
201
|
+
* Generate Python pattern comment
|
|
202
|
+
*/
|
|
203
|
+
generatePythonPatternComment(patterns) {
|
|
204
|
+
if (patterns.length === 0)
|
|
205
|
+
return '';
|
|
206
|
+
return `# Applied patterns: ${patterns.map((p) => p.name).join(', ')}\n`;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Generate a Python test value for a parameter
|
|
210
|
+
*/
|
|
211
|
+
generatePythonTestValue(param) {
|
|
212
|
+
const type = param.type?.toLowerCase() || 'unknown';
|
|
213
|
+
const name = param.name.toLowerCase();
|
|
214
|
+
// Infer from param name
|
|
215
|
+
if (name.includes('id'))
|
|
216
|
+
return `"${faker.string.uuid()}"`;
|
|
217
|
+
if (name.includes('name'))
|
|
218
|
+
return `"${faker.person.fullName()}"`;
|
|
219
|
+
if (name.includes('email'))
|
|
220
|
+
return `"${faker.internet.email()}"`;
|
|
221
|
+
if (name.includes('url'))
|
|
222
|
+
return `"${faker.internet.url()}"`;
|
|
223
|
+
// Infer from type
|
|
224
|
+
if (type.includes('str'))
|
|
225
|
+
return `"${faker.lorem.word()}"`;
|
|
226
|
+
if (type.includes('int') || type.includes('number')) {
|
|
227
|
+
return String(faker.number.int({ min: 1, max: 100 }));
|
|
228
|
+
}
|
|
229
|
+
if (type.includes('bool'))
|
|
230
|
+
return 'True';
|
|
231
|
+
if (type.includes('list') || type.includes('[]'))
|
|
232
|
+
return '[]';
|
|
233
|
+
if (type.includes('dict') || type.includes('{}'))
|
|
234
|
+
return '{}';
|
|
235
|
+
if (type.includes('float'))
|
|
236
|
+
return String(faker.number.float({ min: 0, max: 100 }));
|
|
237
|
+
return 'None';
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=pytest-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytest-generator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/pytest-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { TestGenerationPlugin, createTestGenerationPlugin, type TestGenerationPluginConfig, type TestGenerationExtendedAPI, } from './plugin';
|
|
8
8
|
export { TestGenerationCoordinator, type ITestGenerationCoordinator, type WorkflowStatus, type CoordinatorConfig, } from './coordinator';
|
|
9
|
-
export { TestGeneratorService, type ITestGenerationService, type TestGeneratorConfig, } from './services/test-generator';
|
|
9
|
+
export { TestGeneratorService, createTestGeneratorService, createTestGeneratorServiceWithDependencies, type ITestGenerationService, type TestGeneratorConfig, type TestGeneratorDependencies, } from './services/test-generator';
|
|
10
10
|
export { PatternMatcherService, type IPatternMatchingService, type PatternMatcherConfig, type PatternSearchContext, type PatternMatch, type AppliedPattern, type PatternModification, type PatternDefinition, type PatternExample, type PatternFilter, } from './services/pattern-matcher';
|
|
11
|
-
export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, type Requirement, type TestSpecification, type EnrichmentRecommendation, type RequirementCoherenceResult, type RequirementContradiction, type ContradictionSeverity, type TestGenerationCoherenceGateConfig, type IEmbeddingService, } from './coherence-gate';
|
|
11
|
+
export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, type Requirement, type TestSpecification, type EnrichmentRecommendation, type RequirementCoherenceResult, type RequirementContradiction, type ContradictionSeverity, type TestGenerationCoherenceGateConfig, type IEmbeddingService, } from './services/coherence-gate-service';
|
|
12
12
|
export type { TestGenerationAPI, GenerateTestsRequest, TDDRequest, PropertyTestRequest, TestDataRequest, LearnPatternsRequest, GeneratedTests, GeneratedTest, TDDResult, PropertyTests, PropertyTest, TestData, LearnedPatterns, Pattern, } from './interfaces';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,EAC1C,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,EAC7B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,GACvB,MAAM,mCAAmC,CAAC;AAM3C,YAAY,EAEV,iBAAiB,EAGjB,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EAGpB,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,OAAO,GACR,MAAM,cAAc,CAAC"}
|
|
@@ -15,10 +15,10 @@ export { TestGenerationCoordinator, } from './coordinator';
|
|
|
15
15
|
// ============================================================================
|
|
16
16
|
// Services
|
|
17
17
|
// ============================================================================
|
|
18
|
-
export { TestGeneratorService, } from './services/test-generator';
|
|
18
|
+
export { TestGeneratorService, createTestGeneratorService, createTestGeneratorServiceWithDependencies, } from './services/test-generator';
|
|
19
19
|
export { PatternMatcherService, } from './services/pattern-matcher';
|
|
20
20
|
// ============================================================================
|
|
21
|
-
// Coherence Gate (ADR-052)
|
|
21
|
+
// Coherence Gate Service (ADR-052)
|
|
22
22
|
// ============================================================================
|
|
23
|
-
export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, } from './coherence-gate';
|
|
23
|
+
export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, } from './services/coherence-gate-service';
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAG3B,MAAM,UAAU,CAAC;AAElB,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EACL,yBAAyB,GAI1B,MAAM,eAAe,CAAC;AAEvB,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAG3B,MAAM,UAAU,CAAC;AAElB,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EACL,yBAAyB,GAI1B,MAAM,eAAe,CAAC;AAEvB,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,GAI3C,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,GAUtB,MAAM,4BAA4B,CAAC;AAEpC,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,GAS9B,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Test Generation Strategy Pattern Interfaces
|
|
3
|
+
* Re-exports from main interfaces file for backward compatibility
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Import directly from '../interfaces' instead
|
|
6
|
+
* @module test-generation/interfaces
|
|
7
|
+
*/
|
|
8
|
+
export type { TestFramework, TestType, Pattern, IPattern, FunctionInfo, ClassInfo, ParameterInfo, PropertyInfo, TestCase, CodeAnalysis, IFunctionInfo, IClassInfo, IParameterInfo, IPropertyInfo, ITestCase, ICodeAnalysis, TestGenerationContext, ITestGenerationContext, ITestGenerator, ITestGeneratorFactory, } from '../interfaces';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAEV,aAAa,EACb,QAAQ,EACR,OAAO,EACP,QAAQ,EAGR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EAGb,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Test Generation Strategy Pattern Interfaces
|
|
3
|
+
* Re-exports from main interfaces file for backward compatibility
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Import directly from '../interfaces' instead
|
|
6
|
+
* @module test-generation/interfaces
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|