agentic-qe 3.3.0 → 3.3.2
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 +134 -0
- package/v3/dist/cli/bundle.js +29332 -22739
- 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/queen-coordinator.d.ts +13 -1
- package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
- package/v3/dist/coordination/queen-coordinator.js +91 -3
- package/v3/dist/coordination/queen-coordinator.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 +6 -1
- package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/plugin.js +75 -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 +39 -2
- package/v3/dist/domains/domain-interface.d.ts.map +1 -1
- package/v3/dist/domains/domain-interface.js +102 -1
- package/v3/dist/domains/domain-interface.js.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.d.ts +83 -0
- package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.js +174 -0
- package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
- package/v3/dist/domains/learning-optimization/interfaces.d.ts +14 -0
- package/v3/dist/domains/learning-optimization/interfaces.d.ts.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/coordinator.d.ts +23 -0
- package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/coordinator.js +139 -1
- package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
- package/v3/dist/domains/quality-assessment/plugin.d.ts +6 -1
- package/v3/dist/domains/quality-assessment/plugin.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/plugin.js +69 -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 +6 -1
- package/v3/dist/domains/test-execution/plugin.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/plugin.js +79 -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 +41 -1
- package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/coordinator.js +187 -4
- 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 +6 -1
- package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/plugin.js +90 -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/kernel/interfaces.d.ts +54 -1
- package/v3/dist/kernel/interfaces.d.ts.map +1 -1
- package/v3/dist/learning/dream/dream-scheduler.d.ts +302 -0
- package/v3/dist/learning/dream/dream-scheduler.d.ts.map +1 -0
- package/v3/dist/learning/dream/dream-scheduler.js +551 -0
- package/v3/dist/learning/dream/dream-scheduler.js.map +1 -0
- package/v3/dist/learning/dream/index.d.ts +1 -0
- package/v3/dist/learning/dream/index.d.ts.map +1 -1
- package/v3/dist/learning/dream/index.js +4 -0
- package/v3/dist/learning/dream/index.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 +30870 -23598
- package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/core-handlers.js +16 -2
- package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
- package/v3/dist/mcp/handlers/task-handlers.d.ts +1 -0
- package/v3/dist/mcp/handlers/task-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/task-handlers.js +46 -12
- package/v3/dist/mcp/handlers/task-handlers.js.map +1 -1
- 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/services/reasoning-bank-service.d.ts +87 -13
- package/v3/dist/mcp/services/reasoning-bank-service.d.ts.map +1 -1
- package/v3/dist/mcp/services/reasoning-bank-service.js +291 -31
- package/v3/dist/mcp/services/reasoning-bank-service.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/routing/qe-agent-registry.d.ts +27 -0
- package/v3/dist/routing/qe-agent-registry.d.ts.map +1 -1
- package/v3/dist/routing/qe-agent-registry.js +96 -0
- package/v3/dist/routing/qe-agent-registry.js.map +1 -1
- package/v3/dist/shared/events/domain-events.d.ts +27 -0
- package/v3/dist/shared/events/domain-events.d.ts.map +1 -1
- package/v3/dist/shared/events/domain-events.js +1 -0
- package/v3/dist/shared/events/domain-events.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,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Property-Based Test Generator Service
|
|
3
|
+
* Generates property-based tests using fast-check arbitraries
|
|
4
|
+
*
|
|
5
|
+
* Extracted from TestGeneratorService to follow Single Responsibility Principle
|
|
6
|
+
*/
|
|
7
|
+
import { PropertyTestRequest, PropertyTests } from '../interfaces';
|
|
8
|
+
/**
|
|
9
|
+
* Interface for property-based test generation service
|
|
10
|
+
* Enables dependency injection and mocking
|
|
11
|
+
*/
|
|
12
|
+
export interface IPropertyTestGeneratorService {
|
|
13
|
+
generatePropertyTests(request: PropertyTestRequest): Promise<PropertyTests>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Property-Based Test Generator Service
|
|
17
|
+
* Generates property-based tests with fast-check generators
|
|
18
|
+
*/
|
|
19
|
+
export declare class PropertyTestGeneratorService implements IPropertyTestGeneratorService {
|
|
20
|
+
/**
|
|
21
|
+
* Generate property-based tests
|
|
22
|
+
*/
|
|
23
|
+
generatePropertyTests(request: PropertyTestRequest): Promise<PropertyTests>;
|
|
24
|
+
private generatePropertyTestCode;
|
|
25
|
+
private analyzePropertyForTestGeneration;
|
|
26
|
+
private inferGeneratorFromConstraints;
|
|
27
|
+
private getSimpleGenerator;
|
|
28
|
+
private generatePropertyParams;
|
|
29
|
+
private generatePropertyArgs;
|
|
30
|
+
private inferGenerators;
|
|
31
|
+
private getGeneratorForType;
|
|
32
|
+
private collectArbitraries;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=property-test-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property-test-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/property-test-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7E;AAED;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,6BAA6B;IAChF;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAejF,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,gCAAgC;IA0GxC,OAAO,CAAC,6BAA6B;IAuCrC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,eAAe;IA6EvB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,kBAAkB;CAO3B"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Property-Based Test Generator Service
|
|
3
|
+
* Generates property-based tests using fast-check arbitraries
|
|
4
|
+
*
|
|
5
|
+
* Extracted from TestGeneratorService to follow Single Responsibility Principle
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Property-Based Test Generator Service
|
|
9
|
+
* Generates property-based tests with fast-check generators
|
|
10
|
+
*/
|
|
11
|
+
export class PropertyTestGeneratorService {
|
|
12
|
+
/**
|
|
13
|
+
* Generate property-based tests
|
|
14
|
+
*/
|
|
15
|
+
async generatePropertyTests(request) {
|
|
16
|
+
const { function: funcName, properties, constraints = {} } = request;
|
|
17
|
+
const tests = properties.map((property) => ({
|
|
18
|
+
property,
|
|
19
|
+
testCode: this.generatePropertyTestCode(funcName, property, constraints),
|
|
20
|
+
generators: this.inferGenerators(property, constraints),
|
|
21
|
+
}));
|
|
22
|
+
return {
|
|
23
|
+
tests,
|
|
24
|
+
arbitraries: this.collectArbitraries(tests),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
generatePropertyTestCode(funcName, property, constraints) {
|
|
28
|
+
const propertyLower = property.toLowerCase();
|
|
29
|
+
const { generators, assertion, setupCode } = this.analyzePropertyForTestGeneration(propertyLower, funcName, constraints);
|
|
30
|
+
return `import * as fc from 'fast-check';
|
|
31
|
+
|
|
32
|
+
describe('${funcName} property tests', () => {
|
|
33
|
+
it('${property}', () => {
|
|
34
|
+
${setupCode}
|
|
35
|
+
fc.assert(
|
|
36
|
+
fc.property(${generators.join(', ')}, (${this.generatePropertyParams(generators)}) => {
|
|
37
|
+
const result = ${funcName}(${this.generatePropertyArgs(generators)});
|
|
38
|
+
${assertion}
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
});`;
|
|
43
|
+
}
|
|
44
|
+
analyzePropertyForTestGeneration(propertyLower, funcName, constraints) {
|
|
45
|
+
const generators = [];
|
|
46
|
+
let assertion = 'return result !== undefined;';
|
|
47
|
+
let setupCode = '';
|
|
48
|
+
if (propertyLower.includes('idempotent') || propertyLower.includes('same result')) {
|
|
49
|
+
generators.push(this.inferGeneratorFromConstraints(constraints, 'input'));
|
|
50
|
+
assertion = `// Idempotent: applying twice gives same result
|
|
51
|
+
const firstResult = ${funcName}(input);
|
|
52
|
+
const secondResult = ${funcName}(firstResult);
|
|
53
|
+
return JSON.stringify(firstResult) === JSON.stringify(secondResult);`;
|
|
54
|
+
}
|
|
55
|
+
else if (propertyLower.includes('commutative') || propertyLower.includes('order independent')) {
|
|
56
|
+
const gen = this.inferGeneratorFromConstraints(constraints, 'value');
|
|
57
|
+
generators.push(gen, gen);
|
|
58
|
+
assertion = `// Commutative: order doesn't matter
|
|
59
|
+
const result1 = ${funcName}(a, b);
|
|
60
|
+
const result2 = ${funcName}(b, a);
|
|
61
|
+
return JSON.stringify(result1) === JSON.stringify(result2);`;
|
|
62
|
+
}
|
|
63
|
+
else if (propertyLower.includes('associative')) {
|
|
64
|
+
const gen = this.inferGeneratorFromConstraints(constraints, 'value');
|
|
65
|
+
generators.push(gen, gen, gen);
|
|
66
|
+
assertion = `// Associative: grouping doesn't matter
|
|
67
|
+
const left = ${funcName}(${funcName}(a, b), c);
|
|
68
|
+
const right = ${funcName}(a, ${funcName}(b, c));
|
|
69
|
+
return JSON.stringify(left) === JSON.stringify(right);`;
|
|
70
|
+
}
|
|
71
|
+
else if (propertyLower.includes('identity') || propertyLower.includes('neutral element')) {
|
|
72
|
+
generators.push(this.inferGeneratorFromConstraints(constraints, 'input'));
|
|
73
|
+
const identity = constraints.identity !== undefined ? String(constraints.identity) : '0';
|
|
74
|
+
setupCode = ` const identity = ${identity};`;
|
|
75
|
+
assertion = `// Identity: operation with identity returns original
|
|
76
|
+
const result = ${funcName}(input, identity);
|
|
77
|
+
return JSON.stringify(result) === JSON.stringify(input);`;
|
|
78
|
+
}
|
|
79
|
+
else if (propertyLower.includes('inverse') || propertyLower.includes('reversible') ||
|
|
80
|
+
propertyLower.includes('round-trip') || propertyLower.includes('encode') ||
|
|
81
|
+
propertyLower.includes('decode')) {
|
|
82
|
+
generators.push(this.inferGeneratorFromConstraints(constraints, 'input'));
|
|
83
|
+
const inverseFn = constraints.inverse || `${funcName}Inverse`;
|
|
84
|
+
assertion = `// Inverse: applying function and its inverse returns original
|
|
85
|
+
const encoded = ${funcName}(input);
|
|
86
|
+
const decoded = ${inverseFn}(encoded);
|
|
87
|
+
return JSON.stringify(decoded) === JSON.stringify(input);`;
|
|
88
|
+
}
|
|
89
|
+
else if (propertyLower.includes('distributive')) {
|
|
90
|
+
const gen = this.inferGeneratorFromConstraints(constraints, 'number');
|
|
91
|
+
generators.push(gen, gen, gen);
|
|
92
|
+
assertion = `// Distributive: f(a, b + c) === f(a, b) + f(a, c)
|
|
93
|
+
const left = ${funcName}(a, b + c);
|
|
94
|
+
const right = ${funcName}(a, b) + ${funcName}(a, c);
|
|
95
|
+
return Math.abs(left - right) < 0.0001;`;
|
|
96
|
+
}
|
|
97
|
+
else if (propertyLower.includes('monotonic') || propertyLower.includes('preserves order') ||
|
|
98
|
+
propertyLower.includes('non-decreasing') || propertyLower.includes('sorted')) {
|
|
99
|
+
generators.push('fc.integer()', 'fc.integer()');
|
|
100
|
+
assertion = `// Monotonic: preserves order
|
|
101
|
+
const [small, large] = a <= b ? [a, b] : [b, a];
|
|
102
|
+
const resultSmall = ${funcName}(small);
|
|
103
|
+
const resultLarge = ${funcName}(large);
|
|
104
|
+
return resultSmall <= resultLarge;`;
|
|
105
|
+
}
|
|
106
|
+
else if (propertyLower.includes('bound') || propertyLower.includes('range') ||
|
|
107
|
+
propertyLower.includes('between') || propertyLower.includes('clamp')) {
|
|
108
|
+
generators.push(this.inferGeneratorFromConstraints(constraints, 'input'));
|
|
109
|
+
const min = constraints.min !== undefined ? constraints.min : 0;
|
|
110
|
+
const max = constraints.max !== undefined ? constraints.max : 100;
|
|
111
|
+
assertion = `// Bounded: result is within expected range
|
|
112
|
+
const result = ${funcName}(input);
|
|
113
|
+
return result >= ${min} && result <= ${max};`;
|
|
114
|
+
}
|
|
115
|
+
else if (propertyLower.includes('length') || propertyLower.includes('size')) {
|
|
116
|
+
generators.push('fc.array(fc.anything())');
|
|
117
|
+
if (propertyLower.includes('preserve')) {
|
|
118
|
+
assertion = `// Length preserved: output has same length as input
|
|
119
|
+
const result = ${funcName}(input);
|
|
120
|
+
return Array.isArray(result) && result.length === input.length;`;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
assertion = `// Length invariant
|
|
124
|
+
const result = ${funcName}(input);
|
|
125
|
+
return typeof result.length === 'number' || typeof result.size === 'number';`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else if (propertyLower.includes('type') && propertyLower.includes('preserve')) {
|
|
129
|
+
generators.push('fc.anything()');
|
|
130
|
+
assertion = `// Type preserved: output has same type as input
|
|
131
|
+
const result = ${funcName}(input);
|
|
132
|
+
return typeof result === typeof input;`;
|
|
133
|
+
}
|
|
134
|
+
else if (propertyLower.includes('never null') || propertyLower.includes('always defined') ||
|
|
135
|
+
propertyLower.includes('non-null')) {
|
|
136
|
+
generators.push(this.inferGeneratorFromConstraints(constraints, 'input'));
|
|
137
|
+
assertion = `// Never null: always returns defined value
|
|
138
|
+
const result = ${funcName}(input);
|
|
139
|
+
return result !== null && result !== undefined;`;
|
|
140
|
+
}
|
|
141
|
+
else if (propertyLower.includes('deterministic') || propertyLower.includes('pure') ||
|
|
142
|
+
propertyLower.includes('consistent')) {
|
|
143
|
+
generators.push(this.inferGeneratorFromConstraints(constraints, 'input'));
|
|
144
|
+
assertion = `// Deterministic: same input always gives same output
|
|
145
|
+
const result1 = ${funcName}(input);
|
|
146
|
+
const result2 = ${funcName}(input);
|
|
147
|
+
return JSON.stringify(result1) === JSON.stringify(result2);`;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
generators.push(this.inferGeneratorFromConstraints(constraints, 'input'));
|
|
151
|
+
assertion = `// Basic property: function returns a value
|
|
152
|
+
return result !== undefined;`;
|
|
153
|
+
}
|
|
154
|
+
return { generators, assertion, setupCode };
|
|
155
|
+
}
|
|
156
|
+
inferGeneratorFromConstraints(constraints, hint) {
|
|
157
|
+
const type = constraints.type?.toLowerCase() || hint.toLowerCase();
|
|
158
|
+
if (type.includes('string') || type.includes('text')) {
|
|
159
|
+
const minLength = constraints.minLength;
|
|
160
|
+
const maxLength = constraints.maxLength;
|
|
161
|
+
if (minLength !== undefined || maxLength !== undefined) {
|
|
162
|
+
return `fc.string({ minLength: ${minLength ?? 0}, maxLength: ${maxLength ?? 100} })`;
|
|
163
|
+
}
|
|
164
|
+
return 'fc.string()';
|
|
165
|
+
}
|
|
166
|
+
if (type.includes('number') || type.includes('int') || type.includes('value')) {
|
|
167
|
+
const min = constraints.min;
|
|
168
|
+
const max = constraints.max;
|
|
169
|
+
if (min !== undefined || max !== undefined) {
|
|
170
|
+
return `fc.integer({ min: ${min ?? Number.MIN_SAFE_INTEGER}, max: ${max ?? Number.MAX_SAFE_INTEGER} })`;
|
|
171
|
+
}
|
|
172
|
+
return 'fc.integer()';
|
|
173
|
+
}
|
|
174
|
+
if (type.includes('float') || type.includes('decimal'))
|
|
175
|
+
return 'fc.float()';
|
|
176
|
+
if (type.includes('boolean') || type.includes('bool'))
|
|
177
|
+
return 'fc.boolean()';
|
|
178
|
+
if (type.includes('array') || type.includes('list')) {
|
|
179
|
+
const itemType = constraints.itemType || 'anything';
|
|
180
|
+
const itemGen = this.getSimpleGenerator(itemType);
|
|
181
|
+
return `fc.array(${itemGen})`;
|
|
182
|
+
}
|
|
183
|
+
if (type.includes('object') || type.includes('record'))
|
|
184
|
+
return 'fc.object()';
|
|
185
|
+
if (type.includes('date'))
|
|
186
|
+
return 'fc.date()';
|
|
187
|
+
if (type.includes('uuid') || type.includes('id'))
|
|
188
|
+
return 'fc.uuid()';
|
|
189
|
+
if (type.includes('email'))
|
|
190
|
+
return 'fc.emailAddress()';
|
|
191
|
+
return 'fc.anything()';
|
|
192
|
+
}
|
|
193
|
+
getSimpleGenerator(typeName) {
|
|
194
|
+
const typeMap = {
|
|
195
|
+
string: 'fc.string()',
|
|
196
|
+
number: 'fc.integer()',
|
|
197
|
+
integer: 'fc.integer()',
|
|
198
|
+
float: 'fc.float()',
|
|
199
|
+
boolean: 'fc.boolean()',
|
|
200
|
+
date: 'fc.date()',
|
|
201
|
+
uuid: 'fc.uuid()',
|
|
202
|
+
anything: 'fc.anything()',
|
|
203
|
+
};
|
|
204
|
+
return typeMap[typeName.toLowerCase()] || 'fc.anything()';
|
|
205
|
+
}
|
|
206
|
+
generatePropertyParams(generators) {
|
|
207
|
+
if (generators.length === 1)
|
|
208
|
+
return 'input';
|
|
209
|
+
return generators.map((_, i) => String.fromCharCode(97 + i)).join(', ');
|
|
210
|
+
}
|
|
211
|
+
generatePropertyArgs(generators) {
|
|
212
|
+
if (generators.length === 1)
|
|
213
|
+
return 'input';
|
|
214
|
+
return generators.map((_, i) => String.fromCharCode(97 + i)).join(', ');
|
|
215
|
+
}
|
|
216
|
+
inferGenerators(property, constraints) {
|
|
217
|
+
const generators = [];
|
|
218
|
+
const propertyLower = property.toLowerCase();
|
|
219
|
+
if (propertyLower.includes('string') || propertyLower.includes('text') ||
|
|
220
|
+
propertyLower.includes('name') || propertyLower.includes('email')) {
|
|
221
|
+
if (constraints.minLength || constraints.maxLength) {
|
|
222
|
+
const min = constraints.minLength ?? 0;
|
|
223
|
+
const max = constraints.maxLength ?? 100;
|
|
224
|
+
generators.push(`fc.string({ minLength: ${min}, maxLength: ${max} })`);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
generators.push('fc.string()');
|
|
228
|
+
}
|
|
229
|
+
if (propertyLower.includes('email')) {
|
|
230
|
+
generators.push('fc.emailAddress()');
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (propertyLower.includes('number') || propertyLower.includes('count') ||
|
|
234
|
+
propertyLower.includes('amount') || propertyLower.includes('integer') ||
|
|
235
|
+
propertyLower.includes('positive') || propertyLower.includes('negative')) {
|
|
236
|
+
if (propertyLower.includes('positive')) {
|
|
237
|
+
generators.push('fc.nat()');
|
|
238
|
+
}
|
|
239
|
+
else if (propertyLower.includes('negative')) {
|
|
240
|
+
generators.push('fc.integer({ max: -1 })');
|
|
241
|
+
}
|
|
242
|
+
else if (constraints.min !== undefined || constraints.max !== undefined) {
|
|
243
|
+
const min = constraints.min ?? Number.MIN_SAFE_INTEGER;
|
|
244
|
+
const max = constraints.max ?? Number.MAX_SAFE_INTEGER;
|
|
245
|
+
generators.push(`fc.integer({ min: ${min}, max: ${max} })`);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
generators.push('fc.integer()');
|
|
249
|
+
}
|
|
250
|
+
if (propertyLower.includes('float') || propertyLower.includes('decimal')) {
|
|
251
|
+
generators.push('fc.float()');
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (propertyLower.includes('boolean') || propertyLower.includes('flag')) {
|
|
255
|
+
generators.push('fc.boolean()');
|
|
256
|
+
}
|
|
257
|
+
if (propertyLower.includes('array') || propertyLower.includes('list') ||
|
|
258
|
+
propertyLower.includes('collection')) {
|
|
259
|
+
const itemType = constraints.itemType || 'anything';
|
|
260
|
+
const itemGen = this.getGeneratorForType(itemType);
|
|
261
|
+
if (constraints.minItems || constraints.maxItems) {
|
|
262
|
+
const min = constraints.minItems ?? 0;
|
|
263
|
+
const max = constraints.maxItems ?? 10;
|
|
264
|
+
generators.push(`fc.array(${itemGen}, { minLength: ${min}, maxLength: ${max} })`);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
generators.push(`fc.array(${itemGen})`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
if (propertyLower.includes('object') || propertyLower.includes('record')) {
|
|
271
|
+
generators.push('fc.object()');
|
|
272
|
+
generators.push('fc.dictionary(fc.string(), fc.anything())');
|
|
273
|
+
}
|
|
274
|
+
if (propertyLower.includes('date') || propertyLower.includes('time')) {
|
|
275
|
+
generators.push('fc.date()');
|
|
276
|
+
}
|
|
277
|
+
if (propertyLower.includes('uuid') || propertyLower.includes('id')) {
|
|
278
|
+
generators.push('fc.uuid()');
|
|
279
|
+
}
|
|
280
|
+
if (generators.length === 0) {
|
|
281
|
+
generators.push('fc.anything()');
|
|
282
|
+
}
|
|
283
|
+
return generators;
|
|
284
|
+
}
|
|
285
|
+
getGeneratorForType(type) {
|
|
286
|
+
const typeGenerators = {
|
|
287
|
+
string: 'fc.string()',
|
|
288
|
+
number: 'fc.integer()',
|
|
289
|
+
integer: 'fc.integer()',
|
|
290
|
+
float: 'fc.float()',
|
|
291
|
+
boolean: 'fc.boolean()',
|
|
292
|
+
date: 'fc.date()',
|
|
293
|
+
uuid: 'fc.uuid()',
|
|
294
|
+
anything: 'fc.anything()',
|
|
295
|
+
};
|
|
296
|
+
return typeGenerators[type.toLowerCase()] || 'fc.anything()';
|
|
297
|
+
}
|
|
298
|
+
collectArbitraries(tests) {
|
|
299
|
+
const arbitraries = new Set();
|
|
300
|
+
for (const test of tests) {
|
|
301
|
+
test.generators.forEach((g) => arbitraries.add(g));
|
|
302
|
+
}
|
|
303
|
+
return Array.from(arbitraries);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=property-test-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property-test-generator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/property-test-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - TDD Generator Service
|
|
3
|
+
* Handles Test-Driven Development workflow (Red-Green-Refactor)
|
|
4
|
+
*
|
|
5
|
+
* Extracted from TestGeneratorService to follow Single Responsibility Principle
|
|
6
|
+
*/
|
|
7
|
+
import { TDDRequest, TDDResult } from '../interfaces';
|
|
8
|
+
/**
|
|
9
|
+
* Interface for TDD generation service
|
|
10
|
+
* Enables dependency injection and mocking
|
|
11
|
+
*/
|
|
12
|
+
export interface ITDDGeneratorService {
|
|
13
|
+
generateTDDTests(request: TDDRequest): Promise<TDDResult>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* TDD Generator Service
|
|
17
|
+
* Generates code and tests following TDD workflow phases
|
|
18
|
+
*/
|
|
19
|
+
export declare class TDDGeneratorService implements ITDDGeneratorService {
|
|
20
|
+
/**
|
|
21
|
+
* Generate TDD artifacts based on the requested phase
|
|
22
|
+
*/
|
|
23
|
+
generateTDDTests(request: TDDRequest): Promise<TDDResult>;
|
|
24
|
+
private generateRedPhaseTest;
|
|
25
|
+
private generateAssertionsFromBehavior;
|
|
26
|
+
private extractBehaviorContext;
|
|
27
|
+
private buildFunctionCall;
|
|
28
|
+
private generateGreenPhaseCode;
|
|
29
|
+
private inferImplementationFromBehavior;
|
|
30
|
+
private generateRefactoringSuggestions;
|
|
31
|
+
private camelCase;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=tdd-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tdd-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/tdd-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3D;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAe/D,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,8BAA8B;IAqGtC,OAAO,CAAC,sBAAsB;IA8C9B,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,+BAA+B;IAmFvC,OAAO,CAAC,8BAA8B;IAiBtC,OAAO,CAAC,SAAS;CAKlB"}
|