@agentic-qe/v3 3.0.0-alpha.6 → 3.0.0-alpha.7
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/assets/agents/v3/subagents/v3-qe-code-reviewer.md +339 -0
- package/assets/agents/v3/subagents/v3-qe-integration-reviewer.md +344 -0
- package/assets/agents/v3/subagents/v3-qe-performance-reviewer.md +351 -0
- package/assets/agents/v3/subagents/v3-qe-security-reviewer.md +374 -0
- package/assets/agents/v3/subagents/v3-qe-tdd-green.md +334 -0
- package/assets/agents/v3/subagents/v3-qe-tdd-red.md +329 -0
- package/assets/agents/v3/subagents/v3-qe-tdd-refactor.md +361 -0
- package/assets/agents/v3/v3-qe-accessibility-auditor.md +266 -0
- package/assets/agents/v3/v3-qe-bdd-generator.md +279 -0
- package/assets/agents/v3/v3-qe-chaos-engineer.md +265 -0
- package/assets/agents/v3/v3-qe-code-complexity.md +298 -0
- package/assets/agents/v3/v3-qe-code-intelligence.md +262 -0
- package/assets/agents/v3/v3-qe-contract-validator.md +267 -0
- package/assets/agents/v3/v3-qe-coverage-specialist.md +227 -0
- package/assets/agents/v3/v3-qe-defect-predictor.md +251 -0
- package/assets/agents/v3/v3-qe-dependency-mapper.md +277 -0
- package/assets/agents/v3/v3-qe-deployment-advisor.md +275 -0
- package/assets/agents/v3/v3-qe-flaky-hunter.md +248 -0
- package/assets/agents/v3/v3-qe-fleet-commander.md +293 -0
- package/assets/agents/v3/v3-qe-gap-detector.md +260 -0
- package/assets/agents/v3/v3-qe-graphql-tester.md +308 -0
- package/assets/agents/v3/v3-qe-impact-analyzer.md +299 -0
- package/assets/agents/v3/v3-qe-integration-tester.md +238 -0
- package/assets/agents/v3/v3-qe-kg-builder.md +273 -0
- package/assets/agents/v3/v3-qe-learning-coordinator.md +226 -0
- package/assets/agents/v3/v3-qe-load-tester.md +280 -0
- package/assets/agents/v3/v3-qe-metrics-optimizer.md +300 -0
- package/assets/agents/v3/v3-qe-mutation-tester.md +301 -0
- package/assets/agents/v3/v3-qe-parallel-executor.md +240 -0
- package/assets/agents/v3/v3-qe-pattern-learner.md +271 -0
- package/assets/agents/v3/v3-qe-performance-tester.md +262 -0
- package/assets/agents/v3/v3-qe-property-tester.md +247 -0
- package/assets/agents/v3/v3-qe-quality-gate.md +218 -0
- package/assets/agents/v3/v3-qe-queen-coordinator.md +214 -0
- package/assets/agents/v3/v3-qe-qx-partner.md +313 -0
- package/assets/agents/v3/v3-qe-regression-analyzer.md +322 -0
- package/assets/agents/v3/v3-qe-requirements-validator.md +360 -0
- package/assets/agents/v3/v3-qe-responsive-tester.md +311 -0
- package/assets/agents/v3/v3-qe-retry-handler.md +256 -0
- package/assets/agents/v3/v3-qe-risk-assessor.md +273 -0
- package/assets/agents/v3/v3-qe-root-cause-analyzer.md +286 -0
- package/assets/agents/v3/v3-qe-security-auditor.md +299 -0
- package/assets/agents/v3/v3-qe-security-scanner.md +235 -0
- package/assets/agents/v3/v3-qe-tdd-specialist.md +239 -0
- package/assets/agents/v3/v3-qe-test-architect.md +233 -0
- package/assets/agents/v3/v3-qe-transfer-specialist.md +295 -0
- package/assets/agents/v3/v3-qe-visual-tester.md +232 -0
- package/assets/skills/accessibility-testing/SKILL.md +216 -0
- package/assets/skills/agentdb-advanced/SKILL.md +550 -0
- package/assets/skills/agentdb-learning/SKILL.md +545 -0
- package/assets/skills/agentdb-memory-patterns/SKILL.md +339 -0
- package/assets/skills/agentdb-optimization/SKILL.md +509 -0
- package/assets/skills/agentdb-vector-search/SKILL.md +339 -0
- package/assets/skills/agentic-jujutsu/SKILL.md +645 -0
- package/assets/skills/agentic-quality-engineering/SKILL.md +335 -0
- package/assets/skills/api-testing-patterns/SKILL.md +294 -0
- package/assets/skills/aqe-v2-v3-migration/skill.md +322 -0
- package/assets/skills/brutal-honesty-review/README.md +218 -0
- package/assets/skills/brutal-honesty-review/SKILL.md +235 -0
- package/assets/skills/brutal-honesty-review/resources/assessment-rubrics.md +295 -0
- package/assets/skills/brutal-honesty-review/resources/review-template.md +102 -0
- package/assets/skills/brutal-honesty-review/scripts/assess-code.sh +179 -0
- package/assets/skills/brutal-honesty-review/scripts/assess-tests.sh +223 -0
- package/assets/skills/bug-reporting-excellence/SKILL.md +225 -0
- package/assets/skills/chaos-engineering-resilience/SKILL.md +158 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/README.md +304 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/SKILL.md +315 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/resources/workflows/microservice-pipeline.md +239 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/resources/workflows/mobile-pipeline.md +375 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/resources/workflows/monolith-pipeline.md +268 -0
- package/assets/skills/code-review-quality/SKILL.md +227 -0
- package/assets/skills/compatibility-testing/SKILL.md +205 -0
- package/assets/skills/compliance-testing/SKILL.md +225 -0
- package/assets/skills/consultancy-practices/SKILL.md +202 -0
- package/assets/skills/context-driven-testing/SKILL.md +196 -0
- package/assets/skills/contract-testing/SKILL.md +222 -0
- package/assets/skills/database-testing/SKILL.md +244 -0
- package/assets/skills/exploratory-testing-advanced/SKILL.md +201 -0
- package/assets/skills/flow-nexus-neural/SKILL.md +738 -0
- package/assets/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/assets/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/assets/skills/github-code-review/SKILL.md +1140 -0
- package/assets/skills/github-multi-repo/SKILL.md +874 -0
- package/assets/skills/github-project-management/SKILL.md +1277 -0
- package/assets/skills/github-release-management/SKILL.md +1081 -0
- package/assets/skills/github-workflow-automation/SKILL.md +1065 -0
- package/assets/skills/hive-mind-advanced/SKILL.md +712 -0
- package/assets/skills/holistic-testing-pact/SKILL.md +171 -0
- package/assets/skills/hooks-automation/SKILL.md +1201 -0
- package/assets/skills/localization-testing/SKILL.md +221 -0
- package/assets/skills/mobile-testing/SKILL.md +219 -0
- package/assets/skills/mutation-testing/SKILL.md +229 -0
- package/assets/skills/n8n-expression-testing/SKILL.md +434 -0
- package/assets/skills/n8n-integration-testing-patterns/SKILL.md +540 -0
- package/assets/skills/n8n-security-testing/SKILL.md +599 -0
- package/assets/skills/n8n-trigger-testing-strategies/SKILL.md +541 -0
- package/assets/skills/n8n-workflow-testing-fundamentals/SKILL.md +447 -0
- package/assets/skills/pair-programming/SKILL.md +1202 -0
- package/assets/skills/performance-analysis/SKILL.md +563 -0
- package/assets/skills/performance-testing/SKILL.md +310 -0
- package/assets/skills/quality-metrics/SKILL.md +225 -0
- package/assets/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/assets/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/assets/skills/refactoring-patterns/SKILL.md +205 -0
- package/assets/skills/regression-testing/SKILL.md +227 -0
- package/assets/skills/risk-based-testing/SKILL.md +206 -0
- package/assets/skills/security-testing/SKILL.md +306 -0
- package/assets/skills/sherlock-review/SKILL.md +250 -0
- package/assets/skills/shift-left-testing/SKILL.md +225 -0
- package/assets/skills/shift-right-testing/SKILL.md +227 -0
- package/assets/skills/six-thinking-hats/README.md +190 -0
- package/assets/skills/six-thinking-hats/SKILL.md +280 -0
- package/assets/skills/six-thinking-hats/resources/examples/api-testing-example.md +345 -0
- package/assets/skills/six-thinking-hats/resources/templates/solo-session-template.md +167 -0
- package/assets/skills/six-thinking-hats/resources/templates/team-session-template.md +336 -0
- package/assets/skills/skill-builder/SKILL.md +910 -0
- package/assets/skills/sparc-methodology/SKILL.md +1115 -0
- package/assets/skills/stream-chain/SKILL.md +563 -0
- package/assets/skills/swarm-advanced/SKILL.md +973 -0
- package/assets/skills/swarm-orchestration/SKILL.md +179 -0
- package/assets/skills/tdd-london-chicago/SKILL.md +244 -0
- package/assets/skills/technical-writing/SKILL.md +178 -0
- package/assets/skills/test-automation-strategy/SKILL.md +230 -0
- package/assets/skills/test-data-management/SKILL.md +270 -0
- package/assets/skills/test-design-techniques/SKILL.md +244 -0
- package/assets/skills/test-environment-management/SKILL.md +243 -0
- package/assets/skills/test-reporting-analytics/SKILL.md +214 -0
- package/assets/skills/testability-scoring/README.md +71 -0
- package/assets/skills/testability-scoring/SKILL.md +346 -0
- package/assets/skills/testability-scoring/resources/templates/config.template.js +84 -0
- package/assets/skills/testability-scoring/resources/templates/testability-scoring.spec.template.js +532 -0
- package/assets/skills/testability-scoring/scripts/generate-html-report.js +1007 -0
- package/assets/skills/testability-scoring/scripts/run-assessment.sh +70 -0
- package/assets/skills/v3-qe-chaos-resilience/SKILL.md +238 -0
- package/assets/skills/v3-qe-code-intelligence/SKILL.md +209 -0
- package/assets/skills/v3-qe-contract-testing/SKILL.md +218 -0
- package/assets/skills/v3-qe-coverage-analysis/SKILL.md +187 -0
- package/assets/skills/v3-qe-defect-intelligence/SKILL.md +205 -0
- package/assets/skills/v3-qe-learning-optimization/SKILL.md +238 -0
- package/assets/skills/v3-qe-quality-assessment/SKILL.md +213 -0
- package/assets/skills/v3-qe-requirements-validation/SKILL.md +248 -0
- package/assets/skills/v3-qe-test-execution/SKILL.md +182 -0
- package/assets/skills/v3-qe-test-generation/SKILL.md +141 -0
- package/assets/skills/v3-qe-visual-accessibility/SKILL.md +242 -0
- package/assets/skills/verification-quality/SKILL.md +649 -0
- package/assets/skills/visual-testing-advanced/SKILL.md +219 -0
- package/assets/skills/xp-practices/SKILL.md +229 -0
- package/dist/cli/bundle.js +8 -8
- package/dist/init/agents-installer.js +4 -4
- package/dist/init/agents-installer.js.map +1 -1
- package/dist/init/skills-installer.js +4 -4
- package/dist/init/skills-installer.js.map +1 -1
- package/package.json +7 -1
- package/docs/analysis/V3-INIT-REQUIREMENTS-ANALYSIS.md +0 -352
- package/implementation/README.md +0 -90
- package/implementation/adrs/ADR-030-coherence-gated-quality-gates.md +0 -312
- package/implementation/adrs/ADR-031-strange-loop-self-awareness.md +0 -484
- package/implementation/adrs/ADR-032-time-crystal-scheduling.md +0 -530
- package/implementation/adrs/ADR-033-early-exit-testing.md +0 -634
- package/implementation/adrs/ADR-034-neural-topology-optimizer.md +0 -589
- package/implementation/adrs/ADR-035-causal-discovery.md +0 -610
- package/implementation/adrs/ADR-036-result-persistence.md +0 -326
- package/implementation/adrs/ADR-037-v3-qe-agent-naming.md +0 -105
- package/implementation/adrs/ADR-038-v3-qe-memory-unification.md +0 -154
- package/implementation/adrs/ADR-039-v3-qe-mcp-optimization.md +0 -179
- package/implementation/adrs/ADR-040-v3-qe-agentic-flow-integration.md +0 -240
- package/implementation/adrs/ADR-041-v3-qe-cli-enhancement.md +0 -296
- package/implementation/adrs/ADR-042-v3-qe-token-tracking-integration.md +0 -517
- package/implementation/adrs/v3-adrs.md +0 -2783
- package/implementation/planning/AQE-V3-MASTER-PLAN.md +0 -815
- package/security-scan-report-2026-01-11.md +0 -410
- package/security-verification-report-2026-01-11.md +0 -278
- package/src/benchmarks/performance-benchmarks.ts +0 -646
- package/src/benchmarks/run-benchmarks.ts +0 -324
- package/src/causal-discovery/causal-graph.ts +0 -450
- package/src/causal-discovery/discovery-engine.ts +0 -438
- package/src/causal-discovery/index.ts +0 -117
- package/src/causal-discovery/types.ts +0 -456
- package/src/causal-discovery/weight-matrix.ts +0 -453
- package/src/cli/commands/qe-tools.ts +0 -634
- package/src/cli/index.ts +0 -1976
- package/src/compatibility/agent-mapper.ts +0 -291
- package/src/compatibility/cli-adapter.ts +0 -277
- package/src/compatibility/config-migrator.ts +0 -334
- package/src/compatibility/index.ts +0 -112
- package/src/compatibility/mcp-adapter.ts +0 -248
- package/src/compatibility/types.ts +0 -156
- package/src/coordination/claims/claim-repository.ts +0 -636
- package/src/coordination/claims/claim-service.ts +0 -675
- package/src/coordination/claims/handoff-manager.ts +0 -535
- package/src/coordination/claims/index.ts +0 -276
- package/src/coordination/claims/interfaces.ts +0 -687
- package/src/coordination/claims/work-stealing.ts +0 -436
- package/src/coordination/cross-domain-router.ts +0 -492
- package/src/coordination/index.ts +0 -127
- package/src/coordination/interfaces.ts +0 -691
- package/src/coordination/protocol-executor.ts +0 -760
- package/src/coordination/protocols/code-intelligence-index.ts +0 -855
- package/src/coordination/protocols/defect-investigation.ts +0 -1184
- package/src/coordination/protocols/index.ts +0 -11
- package/src/coordination/protocols/learning-consolidation.ts +0 -1181
- package/src/coordination/protocols/morning-sync.ts +0 -1055
- package/src/coordination/protocols/quality-gate.ts +0 -1566
- package/src/coordination/protocols/security-audit.ts +0 -1587
- package/src/coordination/queen-coordinator.ts +0 -1176
- package/src/coordination/result-saver.ts +0 -780
- package/src/coordination/task-executor.ts +0 -1146
- package/src/coordination/workflow-orchestrator.ts +0 -1917
- package/src/domains/chaos-resilience/coordinator.ts +0 -1032
- package/src/domains/chaos-resilience/index.ts +0 -143
- package/src/domains/chaos-resilience/interfaces.ts +0 -659
- package/src/domains/chaos-resilience/plugin.ts +0 -691
- package/src/domains/chaos-resilience/services/chaos-engineer.ts +0 -1097
- package/src/domains/chaos-resilience/services/index.ts +0 -19
- package/src/domains/chaos-resilience/services/load-tester.ts +0 -799
- package/src/domains/chaos-resilience/services/performance-profiler.ts +0 -792
- package/src/domains/code-intelligence/coordinator.ts +0 -631
- package/src/domains/code-intelligence/index.ts +0 -86
- package/src/domains/code-intelligence/interfaces.ts +0 -162
- package/src/domains/code-intelligence/plugin.ts +0 -451
- package/src/domains/code-intelligence/services/impact-analyzer.ts +0 -567
- package/src/domains/code-intelligence/services/index.ts +0 -26
- package/src/domains/code-intelligence/services/knowledge-graph.ts +0 -1067
- package/src/domains/code-intelligence/services/semantic-analyzer.ts +0 -901
- package/src/domains/contract-testing/coordinator.ts +0 -1038
- package/src/domains/contract-testing/index.ts +0 -122
- package/src/domains/contract-testing/interfaces.ts +0 -458
- package/src/domains/contract-testing/plugin.ts +0 -746
- package/src/domains/contract-testing/services/api-compatibility.ts +0 -748
- package/src/domains/contract-testing/services/contract-validator.ts +0 -1700
- package/src/domains/contract-testing/services/index.ts +0 -19
- package/src/domains/contract-testing/services/schema-validator.ts +0 -1102
- package/src/domains/coverage-analysis/coordinator.ts +0 -485
- package/src/domains/coverage-analysis/index.ts +0 -114
- package/src/domains/coverage-analysis/interfaces.ts +0 -142
- package/src/domains/coverage-analysis/plugin.ts +0 -172
- package/src/domains/coverage-analysis/services/coverage-analyzer.ts +0 -449
- package/src/domains/coverage-analysis/services/coverage-embedder.ts +0 -733
- package/src/domains/coverage-analysis/services/coverage-parser.ts +0 -753
- package/src/domains/coverage-analysis/services/gap-detector.ts +0 -592
- package/src/domains/coverage-analysis/services/hnsw-index.ts +0 -728
- package/src/domains/coverage-analysis/services/index.ts +0 -61
- package/src/domains/coverage-analysis/services/risk-scorer.ts +0 -540
- package/src/domains/coverage-analysis/services/sublinear-analyzer.ts +0 -747
- package/src/domains/defect-intelligence/coordinator.ts +0 -635
- package/src/domains/defect-intelligence/index.ts +0 -83
- package/src/domains/defect-intelligence/interfaces.ts +0 -152
- package/src/domains/defect-intelligence/plugin.ts +0 -483
- package/src/domains/defect-intelligence/services/causal-root-cause-analyzer.ts +0 -494
- package/src/domains/defect-intelligence/services/defect-predictor.ts +0 -852
- package/src/domains/defect-intelligence/services/index.ts +0 -37
- package/src/domains/defect-intelligence/services/pattern-learner.ts +0 -738
- package/src/domains/defect-intelligence/services/root-cause-analyzer.ts +0 -637
- package/src/domains/domain-interface.ts +0 -77
- package/src/domains/index.ts +0 -23
- package/src/domains/learning-optimization/coordinator.ts +0 -1215
- package/src/domains/learning-optimization/index.ts +0 -127
- package/src/domains/learning-optimization/interfaces.ts +0 -570
- package/src/domains/learning-optimization/plugin.ts +0 -851
- package/src/domains/learning-optimization/services/index.ts +0 -29
- package/src/domains/learning-optimization/services/learning-coordinator.ts +0 -972
- package/src/domains/learning-optimization/services/metrics-optimizer.ts +0 -915
- package/src/domains/learning-optimization/services/production-intel.ts +0 -971
- package/src/domains/learning-optimization/services/transfer-specialist.ts +0 -723
- package/src/domains/quality-assessment/coherence/gate-controller.ts +0 -549
- package/src/domains/quality-assessment/coherence/index.ts +0 -211
- package/src/domains/quality-assessment/coherence/lambda-calculator.ts +0 -384
- package/src/domains/quality-assessment/coherence/partition-detector.ts +0 -469
- package/src/domains/quality-assessment/coherence/types.ts +0 -384
- package/src/domains/quality-assessment/coordinator.ts +0 -605
- package/src/domains/quality-assessment/index.ts +0 -97
- package/src/domains/quality-assessment/interfaces.ts +0 -152
- package/src/domains/quality-assessment/plugin.ts +0 -496
- package/src/domains/quality-assessment/services/coherence-gate.ts +0 -358
- package/src/domains/quality-assessment/services/deployment-advisor.ts +0 -571
- package/src/domains/quality-assessment/services/index.ts +0 -34
- package/src/domains/quality-assessment/services/quality-analyzer.ts +0 -670
- package/src/domains/quality-assessment/services/quality-gate.ts +0 -384
- package/src/domains/requirements-validation/coordinator.ts +0 -812
- package/src/domains/requirements-validation/index.ts +0 -92
- package/src/domains/requirements-validation/interfaces.ts +0 -303
- package/src/domains/requirements-validation/plugin.ts +0 -576
- package/src/domains/requirements-validation/services/bdd-scenario-writer.ts +0 -676
- package/src/domains/requirements-validation/services/index.ts +0 -20
- package/src/domains/requirements-validation/services/requirements-validator.ts +0 -559
- package/src/domains/requirements-validation/services/testability-scorer.ts +0 -639
- package/src/domains/security-compliance/coordinator.ts +0 -757
- package/src/domains/security-compliance/index.ts +0 -120
- package/src/domains/security-compliance/interfaces.ts +0 -434
- package/src/domains/security-compliance/plugin.ts +0 -509
- package/src/domains/security-compliance/services/compliance-validator.ts +0 -1226
- package/src/domains/security-compliance/services/index.ts +0 -31
- package/src/domains/security-compliance/services/security-auditor.ts +0 -2227
- package/src/domains/security-compliance/services/security-scanner.ts +0 -2354
- package/src/domains/security-compliance/services/semgrep-integration.ts +0 -289
- package/src/domains/test-execution/coordinator.ts +0 -426
- package/src/domains/test-execution/index.ts +0 -76
- package/src/domains/test-execution/interfaces.ts +0 -119
- package/src/domains/test-execution/plugin.ts +0 -208
- package/src/domains/test-execution/services/flaky-detector.ts +0 -1240
- package/src/domains/test-execution/services/index.ts +0 -8
- package/src/domains/test-execution/services/retry-handler.ts +0 -820
- package/src/domains/test-execution/services/test-executor.ts +0 -885
- package/src/domains/test-generation/coordinator.ts +0 -656
- package/src/domains/test-generation/index.ts +0 -77
- package/src/domains/test-generation/interfaces.ts +0 -118
- package/src/domains/test-generation/plugin.ts +0 -397
- package/src/domains/test-generation/services/index.ts +0 -23
- package/src/domains/test-generation/services/pattern-matcher.ts +0 -1725
- package/src/domains/test-generation/services/test-generator.ts +0 -2750
- package/src/domains/visual-accessibility/coordinator.ts +0 -860
- package/src/domains/visual-accessibility/index.ts +0 -116
- package/src/domains/visual-accessibility/interfaces.ts +0 -435
- package/src/domains/visual-accessibility/plugin.ts +0 -568
- package/src/domains/visual-accessibility/services/accessibility-tester.ts +0 -982
- package/src/domains/visual-accessibility/services/axe-core-audit.ts +0 -630
- package/src/domains/visual-accessibility/services/index.ts +0 -28
- package/src/domains/visual-accessibility/services/responsive-tester.ts +0 -934
- package/src/domains/visual-accessibility/services/visual-tester.ts +0 -458
- package/src/early-exit/early-exit-controller.ts +0 -490
- package/src/early-exit/early-exit-decision.ts +0 -391
- package/src/early-exit/index.ts +0 -115
- package/src/early-exit/quality-signal.ts +0 -389
- package/src/early-exit/speculative-executor.ts +0 -505
- package/src/early-exit/types.ts +0 -407
- package/src/feedback/coverage-learner.ts +0 -456
- package/src/feedback/feedback-loop.ts +0 -426
- package/src/feedback/index.ts +0 -72
- package/src/feedback/pattern-promotion.ts +0 -373
- package/src/feedback/quality-score-calculator.ts +0 -334
- package/src/feedback/test-outcome-tracker.ts +0 -450
- package/src/feedback/types.ts +0 -497
- package/src/index.ts +0 -224
- package/src/init/agents-installer.ts +0 -536
- package/src/init/index.ts +0 -80
- package/src/init/init-wizard.ts +0 -1061
- package/src/init/project-analyzer.ts +0 -696
- package/src/init/self-configurator.ts +0 -488
- package/src/init/skills-installer.ts +0 -467
- package/src/init/types.ts +0 -432
- package/src/integrations/ruvector/ast-complexity.ts +0 -470
- package/src/integrations/ruvector/coverage-router.ts +0 -594
- package/src/integrations/ruvector/diff-risk-classifier.ts +0 -759
- package/src/integrations/ruvector/fallback.ts +0 -942
- package/src/integrations/ruvector/graph-boundaries.ts +0 -809
- package/src/integrations/ruvector/index.ts +0 -363
- package/src/integrations/ruvector/interfaces.ts +0 -609
- package/src/integrations/ruvector/q-learning-router.ts +0 -550
- package/src/kernel/agent-coordinator.ts +0 -165
- package/src/kernel/agentdb-backend.ts +0 -504
- package/src/kernel/event-bus.ts +0 -129
- package/src/kernel/hybrid-backend.ts +0 -538
- package/src/kernel/index.ts +0 -28
- package/src/kernel/interfaces.ts +0 -257
- package/src/kernel/kernel.ts +0 -285
- package/src/kernel/memory-backend.ts +0 -169
- package/src/kernel/memory-factory.ts +0 -293
- package/src/kernel/plugin-loader.ts +0 -179
- package/src/learning/index.ts +0 -219
- package/src/learning/pattern-store.ts +0 -990
- package/src/learning/qe-guidance.ts +0 -832
- package/src/learning/qe-hooks.ts +0 -644
- package/src/learning/qe-patterns.ts +0 -449
- package/src/learning/qe-reasoning-bank.ts +0 -951
- package/src/learning/real-embeddings.ts +0 -277
- package/src/learning/real-qe-reasoning-bank.ts +0 -833
- package/src/learning/sqlite-persistence.ts +0 -554
- package/src/mcp/entry.ts +0 -59
- package/src/mcp/handlers/agent-handlers.ts +0 -285
- package/src/mcp/handlers/core-handlers.ts +0 -317
- package/src/mcp/handlers/domain-handlers.ts +0 -1444
- package/src/mcp/handlers/index.ts +0 -57
- package/src/mcp/handlers/memory-handlers.ts +0 -338
- package/src/mcp/handlers/task-handlers.ts +0 -363
- package/src/mcp/index.ts +0 -30
- package/src/mcp/metrics/index.ts +0 -14
- package/src/mcp/metrics/metrics-collector.ts +0 -503
- package/src/mcp/protocol-server.ts +0 -752
- package/src/mcp/security/cve-prevention.ts +0 -742
- package/src/mcp/security/index.ts +0 -356
- package/src/mcp/security/oauth21-provider.ts +0 -821
- package/src/mcp/security/rate-limiter.ts +0 -615
- package/src/mcp/security/sampling-server.ts +0 -662
- package/src/mcp/security/schema-validator.ts +0 -855
- package/src/mcp/server.ts +0 -657
- package/src/mcp/tool-registry.ts +0 -391
- package/src/mcp/tools/base.ts +0 -399
- package/src/mcp/tools/chaos-resilience/inject.ts +0 -699
- package/src/mcp/tools/code-intelligence/analyze.ts +0 -745
- package/src/mcp/tools/contract-testing/validate.ts +0 -708
- package/src/mcp/tools/coverage-analysis/index.ts +0 -770
- package/src/mcp/tools/defect-intelligence/predict.ts +0 -466
- package/src/mcp/tools/index.ts +0 -214
- package/src/mcp/tools/learning-optimization/optimize.ts +0 -772
- package/src/mcp/tools/quality-assessment/evaluate.ts +0 -385
- package/src/mcp/tools/registry.ts +0 -248
- package/src/mcp/tools/requirements-validation/validate.ts +0 -394
- package/src/mcp/tools/security-compliance/scan.ts +0 -365
- package/src/mcp/tools/test-execution/execute.ts +0 -291
- package/src/mcp/tools/test-generation/generate.ts +0 -544
- package/src/mcp/tools/visual-accessibility/index.ts +0 -791
- package/src/mcp/transport/index.ts +0 -31
- package/src/mcp/transport/stdio.ts +0 -318
- package/src/mcp/types.ts +0 -543
- package/src/neural-optimizer/index.ts +0 -111
- package/src/neural-optimizer/replay-buffer.ts +0 -455
- package/src/neural-optimizer/swarm-topology.ts +0 -508
- package/src/neural-optimizer/topology-optimizer.ts +0 -828
- package/src/neural-optimizer/types.ts +0 -481
- package/src/neural-optimizer/value-network.ts +0 -351
- package/src/optimization/auto-tuner.ts +0 -817
- package/src/optimization/index.ts +0 -77
- package/src/optimization/metric-collectors.ts +0 -474
- package/src/optimization/qe-workers.ts +0 -704
- package/src/optimization/tuning-algorithm.ts +0 -401
- package/src/optimization/types.ts +0 -314
- package/src/routing/index.ts +0 -51
- package/src/routing/qe-agent-registry.ts +0 -963
- package/src/routing/qe-task-router.ts +0 -564
- package/src/routing/routing-feedback.ts +0 -365
- package/src/routing/types.ts +0 -406
- package/src/shared/embeddings/embedding-cache.ts +0 -157
- package/src/shared/embeddings/index.ts +0 -50
- package/src/shared/embeddings/nomic-embedder.ts +0 -404
- package/src/shared/embeddings/ollama-client.ts +0 -195
- package/src/shared/embeddings/types.ts +0 -147
- package/src/shared/entities/agent.ts +0 -141
- package/src/shared/entities/base-entity.ts +0 -79
- package/src/shared/entities/index.ts +0 -6
- package/src/shared/events/domain-events.ts +0 -259
- package/src/shared/events/index.ts +0 -5
- package/src/shared/git/git-analyzer.ts +0 -656
- package/src/shared/git/index.ts +0 -11
- package/src/shared/http/http-client.ts +0 -420
- package/src/shared/http/index.ts +0 -13
- package/src/shared/index.ts +0 -41
- package/src/shared/io/file-reader.ts +0 -525
- package/src/shared/io/index.ts +0 -25
- package/src/shared/llm/cache.ts +0 -473
- package/src/shared/llm/circuit-breaker.ts +0 -369
- package/src/shared/llm/cost-tracker.ts +0 -460
- package/src/shared/llm/index.ts +0 -140
- package/src/shared/llm/interfaces.ts +0 -629
- package/src/shared/llm/provider-manager.ts +0 -685
- package/src/shared/llm/providers/claude.ts +0 -524
- package/src/shared/llm/providers/index.ts +0 -8
- package/src/shared/llm/providers/ollama.ts +0 -575
- package/src/shared/llm/providers/openai.ts +0 -609
- package/src/shared/metrics/code-metrics.ts +0 -520
- package/src/shared/metrics/index.ts +0 -23
- package/src/shared/metrics/system-metrics.ts +0 -353
- package/src/shared/parsers/index.ts +0 -6
- package/src/shared/parsers/typescript-parser.ts +0 -841
- package/src/shared/security/compliance-patterns.ts +0 -666
- package/src/shared/security/index.ts +0 -30
- package/src/shared/security/osv-client.ts +0 -468
- package/src/shared/types/index.ts +0 -150
- package/src/shared/value-objects/index.ts +0 -273
- package/src/strange-loop/healing-controller.ts +0 -833
- package/src/strange-loop/index.ts +0 -104
- package/src/strange-loop/self-model.ts +0 -494
- package/src/strange-loop/strange-loop.ts +0 -446
- package/src/strange-loop/swarm-observer.ts +0 -448
- package/src/strange-loop/topology-analyzer.ts +0 -565
- package/src/strange-loop/types.ts +0 -640
- package/src/time-crystal/default-phases.ts +0 -520
- package/src/time-crystal/index.ts +0 -164
- package/src/time-crystal/oscillator.ts +0 -425
- package/src/time-crystal/phase-executor.ts +0 -521
- package/src/time-crystal/scheduler.ts +0 -1025
- package/src/time-crystal/test-runner.ts +0 -787
- package/src/time-crystal/types.ts +0 -421
- package/src/workers/base-worker.ts +0 -304
- package/src/workers/daemon.ts +0 -264
- package/src/workers/index.ts +0 -119
- package/src/workers/interfaces.ts +0 -393
- package/src/workers/worker-manager.ts +0 -424
- package/src/workers/workers/compliance-checker.ts +0 -445
- package/src/workers/workers/coverage-tracker.ts +0 -344
- package/src/workers/workers/defect-predictor.ts +0 -375
- package/src/workers/workers/flaky-detector.ts +0 -390
- package/src/workers/workers/index.ts +0 -17
- package/src/workers/workers/learning-consolidation.ts +0 -442
- package/src/workers/workers/performance-baseline.ts +0 -434
- package/src/workers/workers/quality-gate.ts +0 -419
- package/src/workers/workers/regression-monitor.ts +0 -357
- package/src/workers/workers/security-scan.ts +0 -349
- package/src/workers/workers/test-health.ts +0 -359
- package/tests/integration/code-intelligence/knowledge-graph-real.test.ts +0 -540
- package/tests/integration/coordination/cross-domain-router.test.ts +0 -403
- package/tests/integration/coordination/protocol-executor.test.ts +0 -454
- package/tests/integration/coordination/workflow-orchestrator.test.ts +0 -418
- package/tests/integration/feedback/feedback-loop-integration.test.ts +0 -560
- package/tests/integration/migration/v2-to-v3-migration.test.ts +0 -471
- package/tests/integration/parsers/typescript-parser.test.ts +0 -463
- package/tests/integration/security/vulnerability-detection.test.ts +0 -628
- package/tests/integration/test-execution/coordinator.test.ts +0 -410
- package/tests/integration/test-generation/coordinator.test.ts +0 -361
- package/tests/mocks/index.ts +0 -228
- package/tests/time-crystal/default-phases.test.ts +0 -476
- package/tests/time-crystal/oscillator.test.ts +0 -541
- package/tests/time-crystal/phase-executor.test.ts +0 -653
- package/tests/time-crystal/scheduler.test.ts +0 -626
- package/tests/time-crystal/test-runner.test.ts +0 -594
- package/tests/unit/causal-discovery/causal-graph.test.ts +0 -504
- package/tests/unit/causal-discovery/causal-root-cause-analyzer.test.ts +0 -347
- package/tests/unit/causal-discovery/discovery-engine.test.ts +0 -435
- package/tests/unit/causal-discovery/weight-matrix.test.ts +0 -328
- package/tests/unit/cli/cli.test.ts +0 -341
- package/tests/unit/cli/commands.test.ts +0 -414
- package/tests/unit/cli/init-command.test.ts +0 -274
- package/tests/unit/cli/migrate-command.test.ts +0 -396
- package/tests/unit/coordination/claims/claim-service.test.ts +0 -949
- package/tests/unit/coordination/claims/handoff-manager.test.ts +0 -773
- package/tests/unit/coordination/claims/work-stealing.test.ts +0 -492
- package/tests/unit/coordination/queen-coordinator.test.ts +0 -966
- package/tests/unit/coordination/result-saver.test.ts +0 -653
- package/tests/unit/coordination/task-executor.test.ts +0 -810
- package/tests/unit/domains/chaos-resilience/chaos-engineer.test.ts +0 -484
- package/tests/unit/domains/chaos-resilience/load-tester.test.ts +0 -559
- package/tests/unit/domains/chaos-resilience/performance-profiler.test.ts +0 -490
- package/tests/unit/domains/code-intelligence/impact-analyzer.test.ts +0 -560
- package/tests/unit/domains/code-intelligence/knowledge-graph.test.ts +0 -460
- package/tests/unit/domains/code-intelligence/semantic-analyzer.test.ts +0 -584
- package/tests/unit/domains/contract-testing/api-compatibility.test.ts +0 -483
- package/tests/unit/domains/contract-testing/contract-validator.test.ts +0 -370
- package/tests/unit/domains/contract-testing/schema-validator.test.ts +0 -610
- package/tests/unit/domains/coverage-analysis/coverage-embedder.test.ts +0 -298
- package/tests/unit/domains/coverage-analysis/hnsw-index.test.ts +0 -292
- package/tests/unit/domains/coverage-analysis/sublinear-analyzer.test.ts +0 -506
- package/tests/unit/domains/defect-intelligence/defect-predictor.test.ts +0 -370
- package/tests/unit/domains/defect-intelligence/pattern-learner.test.ts +0 -546
- package/tests/unit/domains/defect-intelligence/root-cause-analyzer.test.ts +0 -534
- package/tests/unit/domains/learning-optimization/learning-coordinator.test.ts +0 -541
- package/tests/unit/domains/learning-optimization/metrics-optimizer.test.ts +0 -552
- package/tests/unit/domains/learning-optimization/production-intel.test.ts +0 -589
- package/tests/unit/domains/learning-optimization/transfer-specialist.test.ts +0 -453
- package/tests/unit/domains/quality-assessment/coherence-gate.test.ts +0 -1006
- package/tests/unit/domains/quality-assessment/deployment-advisor.test.ts +0 -515
- package/tests/unit/domains/quality-assessment/quality-analyzer.test.ts +0 -401
- package/tests/unit/domains/quality-assessment/quality-gate.test.ts +0 -324
- package/tests/unit/domains/requirements-validation/bdd-scenario-writer.test.ts +0 -479
- package/tests/unit/domains/requirements-validation/requirements-validator.test.ts +0 -452
- package/tests/unit/domains/requirements-validation/testability-scorer.test.ts +0 -505
- package/tests/unit/domains/security-compliance/compliance-validator.test.ts +0 -500
- package/tests/unit/domains/security-compliance/security-auditor.test.ts +0 -498
- package/tests/unit/domains/security-compliance/security-scanner.test.ts +0 -412
- package/tests/unit/domains/visual-accessibility/accessibility-tester.test.ts +0 -432
- package/tests/unit/domains/visual-accessibility/responsive-tester.test.ts +0 -506
- package/tests/unit/domains/visual-accessibility/visual-tester.test.ts +0 -412
- package/tests/unit/early-exit/early-exit-controller.test.ts +0 -548
- package/tests/unit/early-exit/early-exit-decision.test.ts +0 -617
- package/tests/unit/early-exit/index.test.ts +0 -254
- package/tests/unit/early-exit/quality-signal.test.ts +0 -589
- package/tests/unit/early-exit/speculative-executor.test.ts +0 -453
- package/tests/unit/feedback/coverage-learner.test.ts +0 -288
- package/tests/unit/feedback/feedback-loop.test.ts +0 -458
- package/tests/unit/feedback/pattern-promotion.test.ts +0 -390
- package/tests/unit/feedback/quality-score-calculator.test.ts +0 -364
- package/tests/unit/feedback/test-outcome-tracker.test.ts +0 -243
- package/tests/unit/init/init-wizard.test.ts +0 -881
- package/tests/unit/init/project-analyzer.test.ts +0 -807
- package/tests/unit/init/self-configurator.test.ts +0 -493
- package/tests/unit/integrations/ruvector/ast-complexity.test.ts +0 -240
- package/tests/unit/integrations/ruvector/coverage-router.test.ts +0 -366
- package/tests/unit/integrations/ruvector/diff-risk-classifier.test.ts +0 -340
- package/tests/unit/integrations/ruvector/graph-boundaries.test.ts +0 -355
- package/tests/unit/integrations/ruvector/q-learning-router.test.ts +0 -314
- package/tests/unit/kernel/agent-coordinator.test.ts +0 -220
- package/tests/unit/kernel/event-bus.test.ts +0 -197
- package/tests/unit/learning/qe-reasoning-bank.test.ts +0 -666
- package/tests/unit/learning/real-qe-reasoning-bank.benchmark.test.ts +0 -415
- package/tests/unit/mcp/mcp-server.test.ts +0 -544
- package/tests/unit/mcp/metrics/metrics-collector.test.ts +0 -340
- package/tests/unit/mcp/security/cve-prevention.test.ts +0 -512
- package/tests/unit/mcp/security/oauth21-provider.test.ts +0 -624
- package/tests/unit/mcp/security/rate-limiter.test.ts +0 -410
- package/tests/unit/mcp/security/sampling-server.test.ts +0 -420
- package/tests/unit/mcp/security/schema-validator.test.ts +0 -494
- package/tests/unit/mcp/tools/base.test.ts +0 -336
- package/tests/unit/mcp/tools/domain-tools.test.ts +0 -759
- package/tests/unit/mcp/tools/registry.test.ts +0 -240
- package/tests/unit/neural-optimizer/replay-buffer.test.ts +0 -403
- package/tests/unit/neural-optimizer/swarm-topology.test.ts +0 -473
- package/tests/unit/neural-optimizer/topology-optimizer.test.ts +0 -595
- package/tests/unit/neural-optimizer/value-network.test.ts +0 -343
- package/tests/unit/optimization/auto-tuner.test.ts +0 -506
- package/tests/unit/optimization/metric-collectors.test.ts +0 -352
- package/tests/unit/optimization/qe-workers.test.ts +0 -407
- package/tests/unit/optimization/tuning-algorithm.test.ts +0 -467
- package/tests/unit/routing/qe-agent-registry.test.ts +0 -229
- package/tests/unit/routing/qe-task-router.test.ts +0 -390
- package/tests/unit/routing/routing-feedback.test.ts +0 -339
- package/tests/unit/shared/embeddings/nomic-embedder.test.ts +0 -419
- package/tests/unit/shared/http/http-client.test.ts +0 -719
- package/tests/unit/shared/io/file-reader.test.ts +0 -511
- package/tests/unit/shared/llm/cache.test.ts +0 -391
- package/tests/unit/shared/llm/circuit-breaker.test.ts +0 -293
- package/tests/unit/shared/llm/cost-tracker.test.ts +0 -431
- package/tests/unit/shared/llm/provider-manager.test.ts +0 -550
- package/tests/unit/shared/llm/providers.test.ts +0 -532
- package/tests/unit/shared/parsers/typescript-parser.test.ts +0 -693
- package/tests/unit/shared/value-objects.test.ts +0 -184
- package/tests/unit/strange-loop/strange-loop.test.ts +0 -1170
- package/tests/unit/workers/base-worker.test.ts +0 -341
- package/tests/unit/workers/daemon.test.ts +0 -291
- package/tests/unit/workers/worker-manager.test.ts +0 -284
- package/tsconfig.json +0 -32
- package/vitest.config.ts +0 -27
package/src/init/init-wizard.ts
DELETED
|
@@ -1,1061 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Init Wizard
|
|
3
|
-
* ADR-025: Enhanced Init with Self-Configuration
|
|
4
|
-
*
|
|
5
|
-
* Interactive wizard for AQE initialization with visual feedback.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
|
|
9
|
-
import { join, dirname } from 'path';
|
|
10
|
-
import type {
|
|
11
|
-
ProjectAnalysis,
|
|
12
|
-
AQEInitConfig,
|
|
13
|
-
InitResult,
|
|
14
|
-
InitStepResult,
|
|
15
|
-
WizardStep,
|
|
16
|
-
WizardState,
|
|
17
|
-
PretrainedLibrary,
|
|
18
|
-
} from './types.js';
|
|
19
|
-
import { createDefaultConfig, DEFAULT_SKILLS_CONFIG } from './types.js';
|
|
20
|
-
import { ProjectAnalyzer, createProjectAnalyzer } from './project-analyzer.js';
|
|
21
|
-
import { SelfConfigurator, createSelfConfigurator } from './self-configurator.js';
|
|
22
|
-
import { SkillsInstaller, createSkillsInstaller, type SkillsInstallResult } from './skills-installer.js';
|
|
23
|
-
import { AgentsInstaller, createAgentsInstaller, type AgentsInstallResult } from './agents-installer.js';
|
|
24
|
-
|
|
25
|
-
// ============================================================================
|
|
26
|
-
// Internal Types
|
|
27
|
-
// ============================================================================
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Worker registration entry for daemon registry
|
|
31
|
-
*/
|
|
32
|
-
interface WorkerRegistration {
|
|
33
|
-
name: string;
|
|
34
|
-
enabled: boolean;
|
|
35
|
-
interval: number;
|
|
36
|
-
lastRun: string | null;
|
|
37
|
-
status: 'pending' | 'running' | 'completed' | 'error';
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// ============================================================================
|
|
41
|
-
// Wizard Step Definitions
|
|
42
|
-
// ============================================================================
|
|
43
|
-
|
|
44
|
-
const WIZARD_STEPS: WizardStep[] = [
|
|
45
|
-
{
|
|
46
|
-
id: 'welcome',
|
|
47
|
-
title: 'Welcome to AQE v3',
|
|
48
|
-
description: 'This wizard will configure Agentic QE for your project.',
|
|
49
|
-
type: 'info',
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: 'project-type',
|
|
53
|
-
title: 'Project Type',
|
|
54
|
-
description: 'What type of project is this?',
|
|
55
|
-
type: 'choice',
|
|
56
|
-
options: [
|
|
57
|
-
{ value: 'auto', label: 'Auto-detect', description: 'Let AQE analyze your project', recommended: true },
|
|
58
|
-
{ value: 'single', label: 'Single Package', description: 'Standard single-package project' },
|
|
59
|
-
{ value: 'monorepo', label: 'Monorepo', description: 'Multi-package workspace' },
|
|
60
|
-
{ value: 'library', label: 'Library', description: 'Publishable package/library' },
|
|
61
|
-
],
|
|
62
|
-
default: 'auto',
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
id: 'learning-mode',
|
|
66
|
-
title: 'Learning System',
|
|
67
|
-
description: 'How should AQE learn from your project?',
|
|
68
|
-
type: 'choice',
|
|
69
|
-
options: [
|
|
70
|
-
{ value: 'full', label: 'Full Learning', description: 'Transformer embeddings + SQLite persistence', recommended: true },
|
|
71
|
-
{ value: 'basic', label: 'Basic Learning', description: 'Hash-based embeddings, in-memory' },
|
|
72
|
-
{ value: 'disabled', label: 'Disabled', description: 'No pattern learning' },
|
|
73
|
-
],
|
|
74
|
-
default: 'full',
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
id: 'load-patterns',
|
|
78
|
-
title: 'Pre-trained Patterns',
|
|
79
|
-
description: 'Load pre-trained QE patterns for faster results?',
|
|
80
|
-
type: 'confirm',
|
|
81
|
-
default: true,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
id: 'hooks',
|
|
85
|
-
title: 'Claude Code Integration',
|
|
86
|
-
description: 'Enable Claude Code hooks for seamless integration?',
|
|
87
|
-
type: 'confirm',
|
|
88
|
-
default: true,
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
id: 'workers',
|
|
92
|
-
title: 'Background Workers',
|
|
93
|
-
description: 'Start background workers for continuous monitoring?',
|
|
94
|
-
type: 'confirm',
|
|
95
|
-
default: true,
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
id: 'skills',
|
|
99
|
-
title: 'Install Skills',
|
|
100
|
-
description: 'Install AQE skills (v2 methodology + v3 domain skills)?',
|
|
101
|
-
type: 'confirm',
|
|
102
|
-
default: true,
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
id: 'agents',
|
|
106
|
-
title: 'Install Agents',
|
|
107
|
-
description: 'Install V3 QE agents for Claude Code Task tool?',
|
|
108
|
-
type: 'confirm',
|
|
109
|
-
default: true,
|
|
110
|
-
},
|
|
111
|
-
];
|
|
112
|
-
|
|
113
|
-
// ============================================================================
|
|
114
|
-
// Init Orchestrator
|
|
115
|
-
// ============================================================================
|
|
116
|
-
|
|
117
|
-
export interface InitOrchestratorOptions {
|
|
118
|
-
/** Project root directory */
|
|
119
|
-
projectRoot: string;
|
|
120
|
-
/** Skip wizard and use auto-configuration */
|
|
121
|
-
autoMode?: boolean;
|
|
122
|
-
/** Skip pattern loading */
|
|
123
|
-
skipPatterns?: boolean;
|
|
124
|
-
/** Minimal configuration */
|
|
125
|
-
minimal?: boolean;
|
|
126
|
-
/** Pre-trained patterns library */
|
|
127
|
-
pretrainedLibrary?: PretrainedLibrary;
|
|
128
|
-
/** Custom wizard answers */
|
|
129
|
-
wizardAnswers?: Record<string, unknown>;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export class InitOrchestrator {
|
|
133
|
-
private projectRoot: string;
|
|
134
|
-
private options: InitOrchestratorOptions;
|
|
135
|
-
private analyzer: ProjectAnalyzer;
|
|
136
|
-
private configurator: SelfConfigurator;
|
|
137
|
-
private steps: InitStepResult[] = [];
|
|
138
|
-
|
|
139
|
-
constructor(options: InitOrchestratorOptions) {
|
|
140
|
-
this.options = options;
|
|
141
|
-
this.projectRoot = options.projectRoot;
|
|
142
|
-
this.analyzer = createProjectAnalyzer(options.projectRoot);
|
|
143
|
-
this.configurator = createSelfConfigurator({ minimal: options.minimal });
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Run the full initialization process
|
|
148
|
-
*/
|
|
149
|
-
async initialize(): Promise<InitResult> {
|
|
150
|
-
const startTime = Date.now();
|
|
151
|
-
|
|
152
|
-
try {
|
|
153
|
-
// Step 1: Analyze project
|
|
154
|
-
const analysis = await this.runStep('Project Analysis', async () => {
|
|
155
|
-
return await this.analyzer.analyze();
|
|
156
|
-
});
|
|
157
|
-
|
|
158
|
-
// Step 2: Generate configuration
|
|
159
|
-
const config = await this.runStep('Configuration Generation', async () => {
|
|
160
|
-
if (this.options.autoMode) {
|
|
161
|
-
return this.configurator.recommend(analysis);
|
|
162
|
-
}
|
|
163
|
-
return this.applyWizardAnswers(analysis);
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
// Step 3: Initialize learning system
|
|
167
|
-
const patternsLoaded = await this.runStep('Learning System Setup', async () => {
|
|
168
|
-
if (config.learning.enabled && !this.options.skipPatterns) {
|
|
169
|
-
return await this.initializeLearningSystem(config);
|
|
170
|
-
}
|
|
171
|
-
return 0;
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
// Step 4: Configure hooks
|
|
175
|
-
const hooksConfigured = await this.runStep('Hooks Configuration', async () => {
|
|
176
|
-
if (config.hooks.claudeCode) {
|
|
177
|
-
return await this.configureHooks(config);
|
|
178
|
-
}
|
|
179
|
-
return false;
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
// Step 5: Configure MCP server
|
|
183
|
-
const mcpConfigured = await this.runStep('MCP Configuration', async () => {
|
|
184
|
-
return await this.configureMCP();
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
// Step 6: Generate CLAUDE.md
|
|
188
|
-
const claudeMdGenerated = await this.runStep('CLAUDE.md Generation', async () => {
|
|
189
|
-
return await this.generateCLAUDEmd(config);
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
// Step 7: Start workers
|
|
193
|
-
const workersStarted = await this.runStep('Background Workers', async () => {
|
|
194
|
-
if (config.workers.daemonAutoStart) {
|
|
195
|
-
return await this.startWorkers(config);
|
|
196
|
-
}
|
|
197
|
-
return 0;
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
// Step 8: Install skills
|
|
201
|
-
const skillsInstalled = await this.runStep('Skills Installation', async () => {
|
|
202
|
-
if (config.skills.install) {
|
|
203
|
-
return await this.installSkills(config);
|
|
204
|
-
}
|
|
205
|
-
return 0;
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
// Step 9: Install agents
|
|
209
|
-
const agentsInstalled = await this.runStep('Agents Installation', async () => {
|
|
210
|
-
return await this.installAgents();
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
// Step 10: Write configuration file
|
|
214
|
-
await this.runStep('Save Configuration', async () => {
|
|
215
|
-
return await this.saveConfig(config);
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
return {
|
|
219
|
-
success: true,
|
|
220
|
-
config,
|
|
221
|
-
steps: this.steps,
|
|
222
|
-
summary: {
|
|
223
|
-
projectAnalyzed: true,
|
|
224
|
-
configGenerated: true,
|
|
225
|
-
patternsLoaded,
|
|
226
|
-
skillsInstalled,
|
|
227
|
-
agentsInstalled,
|
|
228
|
-
hooksConfigured,
|
|
229
|
-
mcpConfigured,
|
|
230
|
-
claudeMdGenerated,
|
|
231
|
-
workersStarted,
|
|
232
|
-
},
|
|
233
|
-
totalDurationMs: Date.now() - startTime,
|
|
234
|
-
timestamp: new Date(),
|
|
235
|
-
};
|
|
236
|
-
} catch (error) {
|
|
237
|
-
// Add error step
|
|
238
|
-
this.steps.push({
|
|
239
|
-
step: 'Initialization Failed',
|
|
240
|
-
status: 'error',
|
|
241
|
-
message: error instanceof Error ? error.message : String(error),
|
|
242
|
-
durationMs: 0,
|
|
243
|
-
});
|
|
244
|
-
|
|
245
|
-
return {
|
|
246
|
-
success: false,
|
|
247
|
-
config: createDefaultConfig('unknown', this.projectRoot),
|
|
248
|
-
steps: this.steps,
|
|
249
|
-
summary: {
|
|
250
|
-
projectAnalyzed: false,
|
|
251
|
-
configGenerated: false,
|
|
252
|
-
patternsLoaded: 0,
|
|
253
|
-
skillsInstalled: 0,
|
|
254
|
-
agentsInstalled: 0,
|
|
255
|
-
hooksConfigured: false,
|
|
256
|
-
mcpConfigured: false,
|
|
257
|
-
claudeMdGenerated: false,
|
|
258
|
-
workersStarted: 0,
|
|
259
|
-
},
|
|
260
|
-
totalDurationMs: Date.now() - startTime,
|
|
261
|
-
timestamp: new Date(),
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Get wizard steps
|
|
268
|
-
*/
|
|
269
|
-
getWizardSteps(): WizardStep[] {
|
|
270
|
-
return WIZARD_STEPS;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Run a single initialization step with timing and status tracking
|
|
275
|
-
*/
|
|
276
|
-
private async runStep<T>(
|
|
277
|
-
stepName: string,
|
|
278
|
-
action: () => Promise<T>
|
|
279
|
-
): Promise<T> {
|
|
280
|
-
const startTime = Date.now();
|
|
281
|
-
try {
|
|
282
|
-
const result = await action();
|
|
283
|
-
this.steps.push({
|
|
284
|
-
step: stepName,
|
|
285
|
-
status: 'success',
|
|
286
|
-
message: `${stepName} completed successfully`,
|
|
287
|
-
durationMs: Date.now() - startTime,
|
|
288
|
-
});
|
|
289
|
-
return result;
|
|
290
|
-
} catch (error) {
|
|
291
|
-
this.steps.push({
|
|
292
|
-
step: stepName,
|
|
293
|
-
status: 'error',
|
|
294
|
-
message: error instanceof Error ? error.message : String(error),
|
|
295
|
-
durationMs: Date.now() - startTime,
|
|
296
|
-
});
|
|
297
|
-
throw error;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
/**
|
|
302
|
-
* Apply wizard answers to generate config
|
|
303
|
-
*/
|
|
304
|
-
private applyWizardAnswers(analysis: ProjectAnalysis): AQEInitConfig {
|
|
305
|
-
const answers = this.options.wizardAnswers || {};
|
|
306
|
-
const config = this.configurator.recommend(analysis);
|
|
307
|
-
|
|
308
|
-
// Apply project type override
|
|
309
|
-
if (answers['project-type'] && answers['project-type'] !== 'auto') {
|
|
310
|
-
config.project.type = answers['project-type'] as 'single' | 'monorepo' | 'library';
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
// Apply learning mode
|
|
314
|
-
switch (answers['learning-mode']) {
|
|
315
|
-
case 'full':
|
|
316
|
-
config.learning.enabled = true;
|
|
317
|
-
config.learning.embeddingModel = 'transformer';
|
|
318
|
-
break;
|
|
319
|
-
case 'basic':
|
|
320
|
-
config.learning.enabled = true;
|
|
321
|
-
config.learning.embeddingModel = 'hash';
|
|
322
|
-
break;
|
|
323
|
-
case 'disabled':
|
|
324
|
-
config.learning.enabled = false;
|
|
325
|
-
break;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
// Apply pattern loading preference
|
|
329
|
-
if (answers['load-patterns'] === false) {
|
|
330
|
-
config.learning.pretrainedPatterns = false;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
// Apply hooks preference
|
|
334
|
-
if (answers['hooks'] === false) {
|
|
335
|
-
config.hooks.claudeCode = false;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// Apply workers preference
|
|
339
|
-
if (answers['workers'] === false) {
|
|
340
|
-
config.workers.daemonAutoStart = false;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
// Apply skills preference
|
|
344
|
-
if (answers['skills'] === false) {
|
|
345
|
-
config.skills.install = false;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
return config;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* Initialize the learning system
|
|
353
|
-
* Creates database, initializes HNSW index, loads pre-trained patterns
|
|
354
|
-
*/
|
|
355
|
-
private async initializeLearningSystem(config: AQEInitConfig): Promise<number> {
|
|
356
|
-
if (!config.learning.enabled) {
|
|
357
|
-
return 0;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
// Create data directory for learning system
|
|
361
|
-
const dataDir = join(this.projectRoot, '.agentic-qe', 'data');
|
|
362
|
-
if (!existsSync(dataDir)) {
|
|
363
|
-
mkdirSync(dataDir, { recursive: true });
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// Create HNSW index directory
|
|
367
|
-
const hnswDir = join(dataDir, 'hnsw');
|
|
368
|
-
if (!existsSync(hnswDir)) {
|
|
369
|
-
mkdirSync(hnswDir, { recursive: true });
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
// Write learning system config for runtime use
|
|
373
|
-
const learningConfigPath = join(dataDir, 'learning-config.json');
|
|
374
|
-
const learningConfig = {
|
|
375
|
-
embeddingModel: config.learning.embeddingModel,
|
|
376
|
-
hnswConfig: config.learning.hnswConfig,
|
|
377
|
-
qualityThreshold: config.learning.qualityThreshold,
|
|
378
|
-
promotionThreshold: config.learning.promotionThreshold,
|
|
379
|
-
databasePath: join(dataDir, 'qe-patterns.db'),
|
|
380
|
-
hnswIndexPath: join(hnswDir, 'index.bin'),
|
|
381
|
-
initialized: new Date().toISOString(),
|
|
382
|
-
};
|
|
383
|
-
writeFileSync(learningConfigPath, JSON.stringify(learningConfig, null, 2), 'utf-8');
|
|
384
|
-
|
|
385
|
-
// Load pre-trained patterns if available
|
|
386
|
-
let patternsLoaded = 0;
|
|
387
|
-
|
|
388
|
-
if (config.learning.pretrainedPatterns && this.options.pretrainedLibrary) {
|
|
389
|
-
const library = this.options.pretrainedLibrary;
|
|
390
|
-
|
|
391
|
-
// Group patterns by domain for organization
|
|
392
|
-
const patternsByDomain = new Map<string, typeof library.patterns>();
|
|
393
|
-
for (const pattern of library.patterns) {
|
|
394
|
-
const domain = pattern.domain || 'general';
|
|
395
|
-
if (!patternsByDomain.has(domain)) {
|
|
396
|
-
patternsByDomain.set(domain, []);
|
|
397
|
-
}
|
|
398
|
-
patternsByDomain.get(domain)!.push(pattern);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
// Write patterns index for lazy loading
|
|
402
|
-
const patternsIndexPath = join(dataDir, 'pretrained-index.json');
|
|
403
|
-
const patternsIndex = {
|
|
404
|
-
version: library.version,
|
|
405
|
-
totalPatterns: library.statistics.totalPatterns,
|
|
406
|
-
domains: Array.from(patternsByDomain.entries()).map(([domain, patterns]) => ({
|
|
407
|
-
name: domain,
|
|
408
|
-
patternCount: patterns.length,
|
|
409
|
-
})),
|
|
410
|
-
loadedAt: new Date().toISOString(),
|
|
411
|
-
};
|
|
412
|
-
writeFileSync(patternsIndexPath, JSON.stringify(patternsIndex, null, 2), 'utf-8');
|
|
413
|
-
|
|
414
|
-
// Write actual patterns for each domain
|
|
415
|
-
for (const [domain, patterns] of patternsByDomain) {
|
|
416
|
-
const domainDir = join(dataDir, 'patterns', domain);
|
|
417
|
-
if (!existsSync(domainDir)) {
|
|
418
|
-
mkdirSync(domainDir, { recursive: true });
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
// Write patterns file
|
|
422
|
-
const patternsPath = join(domainDir, 'patterns.json');
|
|
423
|
-
writeFileSync(patternsPath, JSON.stringify(patterns, null, 2), 'utf-8');
|
|
424
|
-
patternsLoaded += patterns.length;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
return patternsLoaded;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
// Even without pre-trained patterns, we've initialized the learning system structure
|
|
431
|
-
return 0;
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
/**
|
|
435
|
-
* Configure Claude Code hooks
|
|
436
|
-
* Creates or updates .claude/settings.json with AQE hooks
|
|
437
|
-
*/
|
|
438
|
-
private async configureHooks(config: AQEInitConfig): Promise<boolean> {
|
|
439
|
-
if (!config.hooks.claudeCode) {
|
|
440
|
-
return false;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
// Create .claude directory
|
|
444
|
-
const claudeDir = join(this.projectRoot, '.claude');
|
|
445
|
-
if (!existsSync(claudeDir)) {
|
|
446
|
-
mkdirSync(claudeDir, { recursive: true });
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
// Load existing settings or create new
|
|
450
|
-
const settingsPath = join(claudeDir, 'settings.json');
|
|
451
|
-
let settings: Record<string, unknown> = {};
|
|
452
|
-
|
|
453
|
-
if (existsSync(settingsPath)) {
|
|
454
|
-
try {
|
|
455
|
-
const content = readFileSync(settingsPath, 'utf-8');
|
|
456
|
-
settings = JSON.parse(content);
|
|
457
|
-
} catch {
|
|
458
|
-
// If parse fails, start fresh
|
|
459
|
-
settings = {};
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
// Configure hooks based on config
|
|
464
|
-
const hooks: Record<string, unknown> = {
|
|
465
|
-
// Pre-tool hooks for learning
|
|
466
|
-
PreToolUse: [
|
|
467
|
-
{
|
|
468
|
-
matcher: 'Edit|Write|MultiEdit',
|
|
469
|
-
hooks: [
|
|
470
|
-
{
|
|
471
|
-
type: 'command',
|
|
472
|
-
command: `npx @claude-flow/cli@latest hooks pre-edit --file "$AQE_FILE"`,
|
|
473
|
-
},
|
|
474
|
-
],
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
matcher: 'Bash',
|
|
478
|
-
hooks: [
|
|
479
|
-
{
|
|
480
|
-
type: 'command',
|
|
481
|
-
command: `npx @claude-flow/cli@latest hooks pre-command --command "$AQE_COMMAND"`,
|
|
482
|
-
},
|
|
483
|
-
],
|
|
484
|
-
},
|
|
485
|
-
],
|
|
486
|
-
|
|
487
|
-
// Post-tool hooks for learning
|
|
488
|
-
PostToolUse: [
|
|
489
|
-
{
|
|
490
|
-
matcher: 'Edit|Write|MultiEdit',
|
|
491
|
-
hooks: [
|
|
492
|
-
{
|
|
493
|
-
type: 'command',
|
|
494
|
-
command: `npx @claude-flow/cli@latest hooks post-edit --file "$AQE_FILE" --success "$AQE_SUCCESS"`,
|
|
495
|
-
},
|
|
496
|
-
],
|
|
497
|
-
},
|
|
498
|
-
{
|
|
499
|
-
matcher: 'Bash',
|
|
500
|
-
hooks: [
|
|
501
|
-
{
|
|
502
|
-
type: 'command',
|
|
503
|
-
command: `npx @claude-flow/cli@latest hooks post-command --command "$AQE_COMMAND" --exit-code "$AQE_EXIT_CODE"`,
|
|
504
|
-
},
|
|
505
|
-
],
|
|
506
|
-
},
|
|
507
|
-
],
|
|
508
|
-
|
|
509
|
-
// Session hooks
|
|
510
|
-
SessionStart: [
|
|
511
|
-
{
|
|
512
|
-
type: 'command',
|
|
513
|
-
command: `npx @claude-flow/cli@latest hooks session-start`,
|
|
514
|
-
},
|
|
515
|
-
],
|
|
516
|
-
|
|
517
|
-
SessionEnd: [
|
|
518
|
-
{
|
|
519
|
-
type: 'command',
|
|
520
|
-
command: `npx @claude-flow/cli@latest hooks session-end --save-state`,
|
|
521
|
-
},
|
|
522
|
-
],
|
|
523
|
-
};
|
|
524
|
-
|
|
525
|
-
// Merge with existing settings
|
|
526
|
-
settings.hooks = {
|
|
527
|
-
...(settings.hooks as Record<string, unknown> || {}),
|
|
528
|
-
...hooks,
|
|
529
|
-
};
|
|
530
|
-
|
|
531
|
-
// Add AQE metadata
|
|
532
|
-
settings.aqe = {
|
|
533
|
-
version: config.version,
|
|
534
|
-
initialized: new Date().toISOString(),
|
|
535
|
-
hooksConfigured: true,
|
|
536
|
-
};
|
|
537
|
-
|
|
538
|
-
// Write settings
|
|
539
|
-
writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
|
|
540
|
-
|
|
541
|
-
return true;
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
/**
|
|
545
|
-
* Configure MCP server
|
|
546
|
-
* Creates .claude/mcp.json with AQE v3 MCP server configuration
|
|
547
|
-
*/
|
|
548
|
-
private async configureMCP(): Promise<boolean> {
|
|
549
|
-
// Create .claude directory if it doesn't exist
|
|
550
|
-
const claudeDir = join(this.projectRoot, '.claude');
|
|
551
|
-
if (!existsSync(claudeDir)) {
|
|
552
|
-
mkdirSync(claudeDir, { recursive: true });
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
// Load existing MCP config or create new
|
|
556
|
-
const mcpPath = join(claudeDir, 'mcp.json');
|
|
557
|
-
let mcpConfig: Record<string, unknown> = {};
|
|
558
|
-
|
|
559
|
-
if (existsSync(mcpPath)) {
|
|
560
|
-
try {
|
|
561
|
-
const content = readFileSync(mcpPath, 'utf-8');
|
|
562
|
-
mcpConfig = JSON.parse(content);
|
|
563
|
-
} catch {
|
|
564
|
-
mcpConfig = {};
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
// Ensure mcpServers object exists
|
|
569
|
-
if (!mcpConfig.mcpServers) {
|
|
570
|
-
mcpConfig.mcpServers = {};
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
// Add AQE v3 MCP server configuration
|
|
574
|
-
const servers = mcpConfig.mcpServers as Record<string, unknown>;
|
|
575
|
-
servers['agentic-qe-v3'] = {
|
|
576
|
-
command: 'npx',
|
|
577
|
-
args: ['@agentic-qe/v3', 'mcp'],
|
|
578
|
-
env: {
|
|
579
|
-
AQE_PROJECT_ROOT: this.projectRoot,
|
|
580
|
-
NODE_ENV: 'production',
|
|
581
|
-
},
|
|
582
|
-
};
|
|
583
|
-
|
|
584
|
-
// Write MCP config
|
|
585
|
-
writeFileSync(mcpPath, JSON.stringify(mcpConfig, null, 2), 'utf-8');
|
|
586
|
-
|
|
587
|
-
return true;
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
/**
|
|
591
|
-
* Generate CLAUDE.md for the project
|
|
592
|
-
* Creates a comprehensive guide for Claude Code with V3-specific instructions
|
|
593
|
-
* If CLAUDE.md exists, creates backup and appends AQE v3 section
|
|
594
|
-
*/
|
|
595
|
-
private async generateCLAUDEmd(config: AQEInitConfig): Promise<boolean> {
|
|
596
|
-
const claudeMdPath = join(this.projectRoot, 'CLAUDE.md');
|
|
597
|
-
|
|
598
|
-
// Generate CLAUDE.md content with V3-specific instructions
|
|
599
|
-
const content = this.generateCLAUDEmdContent(config);
|
|
600
|
-
|
|
601
|
-
// Check if CLAUDE.md already exists
|
|
602
|
-
if (existsSync(claudeMdPath)) {
|
|
603
|
-
const existing = readFileSync(claudeMdPath, 'utf-8');
|
|
604
|
-
|
|
605
|
-
// Check if AQE section already exists
|
|
606
|
-
if (existing.includes('## Agentic QE v3')) {
|
|
607
|
-
// Already has AQE section, don't duplicate
|
|
608
|
-
return true;
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
// Create backup before modifying
|
|
612
|
-
const backupPath = join(this.projectRoot, 'CLAUDE.md.backup');
|
|
613
|
-
writeFileSync(backupPath, existing, 'utf-8');
|
|
614
|
-
|
|
615
|
-
// Append AQE section to existing CLAUDE.md
|
|
616
|
-
writeFileSync(claudeMdPath, existing + '\n\n' + content, 'utf-8');
|
|
617
|
-
} else {
|
|
618
|
-
// Create new CLAUDE.md
|
|
619
|
-
writeFileSync(claudeMdPath, content, 'utf-8');
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
return true;
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
/**
|
|
626
|
-
* Generate CLAUDE.md content
|
|
627
|
-
*/
|
|
628
|
-
private generateCLAUDEmdContent(config: AQEInitConfig): string {
|
|
629
|
-
const enabledDomains = config.domains.enabled.slice(0, 6).join(', ');
|
|
630
|
-
const moreDomainsCount = Math.max(0, config.domains.enabled.length - 6);
|
|
631
|
-
|
|
632
|
-
return `## Agentic QE v3
|
|
633
|
-
|
|
634
|
-
This project uses **Agentic QE v3** - a Domain-Driven Quality Engineering platform with 12 bounded contexts, ReasoningBank learning, and HNSW vector search.
|
|
635
|
-
|
|
636
|
-
### Quick Reference
|
|
637
|
-
|
|
638
|
-
\`\`\`bash
|
|
639
|
-
# Run tests
|
|
640
|
-
npm test -- --run
|
|
641
|
-
|
|
642
|
-
# Check quality
|
|
643
|
-
npx @agentic-qe/v3 quality assess
|
|
644
|
-
|
|
645
|
-
# Generate tests
|
|
646
|
-
npx @agentic-qe/v3 test generate <file>
|
|
647
|
-
|
|
648
|
-
# Coverage analysis
|
|
649
|
-
npx @agentic-qe/v3 coverage <path>
|
|
650
|
-
\`\`\`
|
|
651
|
-
|
|
652
|
-
### MCP Server
|
|
653
|
-
|
|
654
|
-
The AQE v3 MCP server is configured in \`.claude/mcp.json\`. Available tools:
|
|
655
|
-
|
|
656
|
-
| Tool | Description |
|
|
657
|
-
|------|-------------|
|
|
658
|
-
| \`fleet_init\` | Initialize QE fleet |
|
|
659
|
-
| \`task_submit\` | Submit QE tasks |
|
|
660
|
-
| \`test_generate_enhanced\` | AI-powered test generation |
|
|
661
|
-
| \`coverage_analyze_sublinear\` | O(log n) coverage analysis |
|
|
662
|
-
| \`quality_assess\` | Quality gate evaluation |
|
|
663
|
-
| \`security_scan_comprehensive\` | SAST/DAST scanning |
|
|
664
|
-
|
|
665
|
-
### 12 DDD Bounded Contexts
|
|
666
|
-
|
|
667
|
-
| Domain | Purpose |
|
|
668
|
-
|--------|---------|
|
|
669
|
-
| test-generation | AI-powered test creation |
|
|
670
|
-
| test-execution | Parallel execution with retry |
|
|
671
|
-
| coverage-analysis | Sublinear gap detection |
|
|
672
|
-
| quality-assessment | Quality gates |
|
|
673
|
-
| defect-intelligence | Defect prediction |
|
|
674
|
-
| requirements-validation | BDD scenarios |
|
|
675
|
-
| code-intelligence | Knowledge graph |
|
|
676
|
-
| security-compliance | SAST/DAST |
|
|
677
|
-
| contract-testing | API contracts |
|
|
678
|
-
| visual-accessibility | Visual regression |
|
|
679
|
-
| chaos-resilience | Chaos engineering |
|
|
680
|
-
| learning-optimization | Cross-domain learning |
|
|
681
|
-
|
|
682
|
-
### Configuration
|
|
683
|
-
|
|
684
|
-
- **Enabled Domains**: ${enabledDomains}${moreDomainsCount > 0 ? ` (+${moreDomainsCount} more)` : ''}
|
|
685
|
-
- **Learning**: ${config.learning.enabled ? 'Enabled' : 'Disabled'} (${config.learning.embeddingModel} embeddings)
|
|
686
|
-
- **Max Concurrent Agents**: ${config.agents.maxConcurrent}
|
|
687
|
-
- **Background Workers**: ${config.workers.enabled.length > 0 ? config.workers.enabled.join(', ') : 'None'}
|
|
688
|
-
|
|
689
|
-
### V3 QE Agents
|
|
690
|
-
|
|
691
|
-
V3 QE agents are installed in \`.claude/agents/v3/\`. Use with Claude Code's Task tool:
|
|
692
|
-
|
|
693
|
-
\`\`\`
|
|
694
|
-
# Example: Generate tests
|
|
695
|
-
Task("Generate unit tests", "v3-qe-test-generator")
|
|
696
|
-
|
|
697
|
-
# Example: Analyze coverage
|
|
698
|
-
Task("Find coverage gaps", "v3-qe-coverage-specialist")
|
|
699
|
-
\`\`\`
|
|
700
|
-
|
|
701
|
-
### Data Storage
|
|
702
|
-
|
|
703
|
-
- **Memory Backend**: \`.agentic-qe/data/memory.db\` (SQLite)
|
|
704
|
-
- **Pattern Storage**: \`.agentic-qe/data/qe-patterns.db\` (ReasoningBank)
|
|
705
|
-
- **HNSW Index**: \`.agentic-qe/data/hnsw/index.bin\`
|
|
706
|
-
- **Configuration**: \`.agentic-qe/config.yaml\`
|
|
707
|
-
|
|
708
|
-
### Best Practices
|
|
709
|
-
|
|
710
|
-
1. **Test Execution**: Always use \`npm test -- --run\` (not \`npm test\` which runs in watch mode)
|
|
711
|
-
2. **Coverage Targets**: Aim for 80%+ coverage on critical paths
|
|
712
|
-
3. **Quality Gates**: Run \`quality_assess\` before merging PRs
|
|
713
|
-
4. **Pattern Learning**: AQE learns from successful test patterns - consistent naming helps
|
|
714
|
-
|
|
715
|
-
### Troubleshooting
|
|
716
|
-
|
|
717
|
-
If MCP tools aren't working:
|
|
718
|
-
\`\`\`bash
|
|
719
|
-
# Verify MCP server
|
|
720
|
-
npx @agentic-qe/v3 mcp --help
|
|
721
|
-
|
|
722
|
-
# Check configuration
|
|
723
|
-
cat .claude/mcp.json
|
|
724
|
-
|
|
725
|
-
# Reinitialize if needed
|
|
726
|
-
npx @agentic-qe/v3 init --auto
|
|
727
|
-
\`\`\`
|
|
728
|
-
|
|
729
|
-
---
|
|
730
|
-
*Generated by AQE v3 init - ${new Date().toISOString()}*
|
|
731
|
-
`;
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
/**
|
|
735
|
-
* Start background workers
|
|
736
|
-
* Writes worker configuration for daemon and optionally starts workers
|
|
737
|
-
*/
|
|
738
|
-
private async startWorkers(config: AQEInitConfig): Promise<number> {
|
|
739
|
-
if (!config.workers.daemonAutoStart || config.workers.enabled.length === 0) {
|
|
740
|
-
return 0;
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
// Create workers directory
|
|
744
|
-
const workersDir = join(this.projectRoot, '.agentic-qe', 'workers');
|
|
745
|
-
if (!existsSync(workersDir)) {
|
|
746
|
-
mkdirSync(workersDir, { recursive: true });
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
// Write worker registry for daemon to load
|
|
750
|
-
const workerRegistry: Record<string, WorkerRegistration> = {};
|
|
751
|
-
|
|
752
|
-
// Default intervals for workers (in milliseconds)
|
|
753
|
-
const defaultIntervals: Record<string, number> = {
|
|
754
|
-
'pattern-consolidator': 60000, // 1 minute
|
|
755
|
-
'coverage-gap-scanner': 300000, // 5 minutes
|
|
756
|
-
'flaky-test-detector': 600000, // 10 minutes
|
|
757
|
-
'routing-accuracy-monitor': 120000, // 2 minutes
|
|
758
|
-
};
|
|
759
|
-
|
|
760
|
-
for (const workerName of config.workers.enabled) {
|
|
761
|
-
workerRegistry[workerName] = {
|
|
762
|
-
name: workerName,
|
|
763
|
-
enabled: true,
|
|
764
|
-
interval: config.workers.intervals[workerName] || defaultIntervals[workerName] || 60000,
|
|
765
|
-
lastRun: null,
|
|
766
|
-
status: 'pending',
|
|
767
|
-
};
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
// Write registry file
|
|
771
|
-
const registryPath = join(workersDir, 'registry.json');
|
|
772
|
-
const registryData = {
|
|
773
|
-
version: config.version,
|
|
774
|
-
maxConcurrent: config.workers.maxConcurrent,
|
|
775
|
-
workers: workerRegistry,
|
|
776
|
-
createdAt: new Date().toISOString(),
|
|
777
|
-
daemonPid: null, // Will be set when daemon starts
|
|
778
|
-
};
|
|
779
|
-
writeFileSync(registryPath, JSON.stringify(registryData, null, 2), 'utf-8');
|
|
780
|
-
|
|
781
|
-
// Write individual worker configs
|
|
782
|
-
for (const workerName of config.workers.enabled) {
|
|
783
|
-
const workerConfigPath = join(workersDir, `${workerName}.json`);
|
|
784
|
-
const workerConfig = {
|
|
785
|
-
name: workerName,
|
|
786
|
-
enabled: true,
|
|
787
|
-
interval: config.workers.intervals[workerName] || defaultIntervals[workerName] || 60000,
|
|
788
|
-
projectRoot: this.projectRoot,
|
|
789
|
-
dataDir: join(this.projectRoot, '.agentic-qe', 'data'),
|
|
790
|
-
createdAt: new Date().toISOString(),
|
|
791
|
-
};
|
|
792
|
-
writeFileSync(workerConfigPath, JSON.stringify(workerConfig, null, 2), 'utf-8');
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
// Write daemon startup script
|
|
796
|
-
const daemonScriptPath = join(workersDir, 'start-daemon.sh');
|
|
797
|
-
const daemonScript = `#!/bin/bash
|
|
798
|
-
# AQE v3 Worker Daemon Startup Script
|
|
799
|
-
# Generated by aqe init
|
|
800
|
-
|
|
801
|
-
PROJECT_ROOT="${this.projectRoot}"
|
|
802
|
-
WORKERS_DIR="$PROJECT_ROOT/.agentic-qe/workers"
|
|
803
|
-
PID_FILE="$WORKERS_DIR/daemon.pid"
|
|
804
|
-
|
|
805
|
-
# Check if already running
|
|
806
|
-
if [ -f "$PID_FILE" ]; then
|
|
807
|
-
PID=$(cat "$PID_FILE")
|
|
808
|
-
if kill -0 "$PID" 2>/dev/null; then
|
|
809
|
-
echo "Daemon already running (PID: $PID)"
|
|
810
|
-
exit 0
|
|
811
|
-
fi
|
|
812
|
-
fi
|
|
813
|
-
|
|
814
|
-
# Start daemon
|
|
815
|
-
npx @claude-flow/cli@latest daemon start --project "$PROJECT_ROOT" &
|
|
816
|
-
echo $! > "$PID_FILE"
|
|
817
|
-
echo "Daemon started (PID: $!)"
|
|
818
|
-
`;
|
|
819
|
-
writeFileSync(daemonScriptPath, daemonScript, { mode: 0o755 });
|
|
820
|
-
|
|
821
|
-
return config.workers.enabled.length;
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
/**
|
|
825
|
-
* Install AQE skills
|
|
826
|
-
* Copies v2 methodology and v3 domain skills to the project
|
|
827
|
-
*/
|
|
828
|
-
private async installSkills(config: AQEInitConfig): Promise<number> {
|
|
829
|
-
if (!config.skills.install) {
|
|
830
|
-
return 0;
|
|
831
|
-
}
|
|
832
|
-
|
|
833
|
-
const installer = createSkillsInstaller({
|
|
834
|
-
projectRoot: this.projectRoot,
|
|
835
|
-
installV2Skills: config.skills.installV2,
|
|
836
|
-
installV3Skills: config.skills.installV3,
|
|
837
|
-
installPlatformSkills: config.skills.installPlatform,
|
|
838
|
-
overwrite: config.skills.overwrite,
|
|
839
|
-
});
|
|
840
|
-
|
|
841
|
-
const result = await installer.install();
|
|
842
|
-
|
|
843
|
-
// Log any errors
|
|
844
|
-
if (result.errors.length > 0) {
|
|
845
|
-
console.warn('Skills installation warnings:', result.errors);
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
return result.installed.length;
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
/**
|
|
852
|
-
* Install V3 QE agents
|
|
853
|
-
* Copies agents from bundled directory to project's .claude/agents/v3/
|
|
854
|
-
*/
|
|
855
|
-
private async installAgents(): Promise<number> {
|
|
856
|
-
const installer = createAgentsInstaller({
|
|
857
|
-
projectRoot: this.projectRoot,
|
|
858
|
-
installQEAgents: true,
|
|
859
|
-
installSubagents: true,
|
|
860
|
-
overwrite: false,
|
|
861
|
-
});
|
|
862
|
-
|
|
863
|
-
const result = await installer.install();
|
|
864
|
-
|
|
865
|
-
// Log any errors
|
|
866
|
-
if (result.errors.length > 0) {
|
|
867
|
-
console.warn('Agents installation warnings:', result.errors);
|
|
868
|
-
}
|
|
869
|
-
|
|
870
|
-
return result.installed.length;
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
/**
|
|
874
|
-
* Save configuration to file
|
|
875
|
-
* Creates .agentic-qe directory and writes config.yaml
|
|
876
|
-
*/
|
|
877
|
-
private async saveConfig(config: AQEInitConfig): Promise<void> {
|
|
878
|
-
if (!config) {
|
|
879
|
-
throw new Error('No configuration to save');
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
// Create .agentic-qe directory
|
|
883
|
-
const configDir = join(this.projectRoot, '.agentic-qe');
|
|
884
|
-
if (!existsSync(configDir)) {
|
|
885
|
-
mkdirSync(configDir, { recursive: true });
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
// Convert config to YAML format
|
|
889
|
-
const yaml = this.configToYAML(config);
|
|
890
|
-
|
|
891
|
-
// Write config.yaml
|
|
892
|
-
const configPath = join(configDir, 'config.yaml');
|
|
893
|
-
writeFileSync(configPath, yaml, 'utf-8');
|
|
894
|
-
}
|
|
895
|
-
|
|
896
|
-
/**
|
|
897
|
-
* Convert config object to YAML string
|
|
898
|
-
*/
|
|
899
|
-
private configToYAML(config: AQEInitConfig): string {
|
|
900
|
-
const lines: string[] = [
|
|
901
|
-
'# Agentic QE v3 Configuration',
|
|
902
|
-
'# Generated by aqe init',
|
|
903
|
-
`# ${new Date().toISOString()}`,
|
|
904
|
-
'',
|
|
905
|
-
];
|
|
906
|
-
|
|
907
|
-
lines.push(`version: "${config.version}"`);
|
|
908
|
-
lines.push('');
|
|
909
|
-
|
|
910
|
-
// Project section
|
|
911
|
-
lines.push('project:');
|
|
912
|
-
lines.push(` name: "${config.project.name}"`);
|
|
913
|
-
lines.push(` root: "${config.project.root}"`);
|
|
914
|
-
lines.push(` type: "${config.project.type}"`);
|
|
915
|
-
lines.push('');
|
|
916
|
-
|
|
917
|
-
// Learning section
|
|
918
|
-
lines.push('learning:');
|
|
919
|
-
lines.push(` enabled: ${config.learning.enabled}`);
|
|
920
|
-
lines.push(` embeddingModel: "${config.learning.embeddingModel}"`);
|
|
921
|
-
lines.push(' hnswConfig:');
|
|
922
|
-
lines.push(` M: ${config.learning.hnswConfig.M}`);
|
|
923
|
-
lines.push(` efConstruction: ${config.learning.hnswConfig.efConstruction}`);
|
|
924
|
-
lines.push(` efSearch: ${config.learning.hnswConfig.efSearch}`);
|
|
925
|
-
lines.push(` qualityThreshold: ${config.learning.qualityThreshold}`);
|
|
926
|
-
lines.push(` promotionThreshold: ${config.learning.promotionThreshold}`);
|
|
927
|
-
lines.push(` pretrainedPatterns: ${config.learning.pretrainedPatterns}`);
|
|
928
|
-
lines.push('');
|
|
929
|
-
|
|
930
|
-
// Routing section
|
|
931
|
-
lines.push('routing:');
|
|
932
|
-
lines.push(` mode: "${config.routing.mode}"`);
|
|
933
|
-
lines.push(` confidenceThreshold: ${config.routing.confidenceThreshold}`);
|
|
934
|
-
lines.push(` feedbackEnabled: ${config.routing.feedbackEnabled}`);
|
|
935
|
-
lines.push('');
|
|
936
|
-
|
|
937
|
-
// Workers section
|
|
938
|
-
lines.push('workers:');
|
|
939
|
-
lines.push(' enabled:');
|
|
940
|
-
for (const worker of config.workers.enabled) {
|
|
941
|
-
lines.push(` - "${worker}"`);
|
|
942
|
-
}
|
|
943
|
-
lines.push(' intervals:');
|
|
944
|
-
for (const [key, value] of Object.entries(config.workers.intervals)) {
|
|
945
|
-
lines.push(` ${key}: ${value}`);
|
|
946
|
-
}
|
|
947
|
-
lines.push(` maxConcurrent: ${config.workers.maxConcurrent}`);
|
|
948
|
-
lines.push(` daemonAutoStart: ${config.workers.daemonAutoStart}`);
|
|
949
|
-
lines.push('');
|
|
950
|
-
|
|
951
|
-
// Hooks section
|
|
952
|
-
lines.push('hooks:');
|
|
953
|
-
lines.push(` claudeCode: ${config.hooks.claudeCode}`);
|
|
954
|
-
lines.push(` preCommit: ${config.hooks.preCommit}`);
|
|
955
|
-
lines.push(` ciIntegration: ${config.hooks.ciIntegration}`);
|
|
956
|
-
lines.push('');
|
|
957
|
-
|
|
958
|
-
// Skills section
|
|
959
|
-
lines.push('skills:');
|
|
960
|
-
lines.push(` install: ${config.skills.install}`);
|
|
961
|
-
lines.push(` installV2: ${config.skills.installV2}`);
|
|
962
|
-
lines.push(` installV3: ${config.skills.installV3}`);
|
|
963
|
-
lines.push(` installPlatform: ${config.skills.installPlatform}`);
|
|
964
|
-
lines.push(` overwrite: ${config.skills.overwrite}`);
|
|
965
|
-
lines.push('');
|
|
966
|
-
|
|
967
|
-
// Auto-tuning section
|
|
968
|
-
lines.push('autoTuning:');
|
|
969
|
-
lines.push(` enabled: ${config.autoTuning.enabled}`);
|
|
970
|
-
lines.push(' parameters:');
|
|
971
|
-
for (const param of config.autoTuning.parameters) {
|
|
972
|
-
lines.push(` - "${param}"`);
|
|
973
|
-
}
|
|
974
|
-
lines.push(` evaluationPeriodMs: ${config.autoTuning.evaluationPeriodMs}`);
|
|
975
|
-
lines.push('');
|
|
976
|
-
|
|
977
|
-
// Domains section
|
|
978
|
-
lines.push('domains:');
|
|
979
|
-
lines.push(' enabled:');
|
|
980
|
-
for (const domain of config.domains.enabled) {
|
|
981
|
-
lines.push(` - "${domain}"`);
|
|
982
|
-
}
|
|
983
|
-
lines.push(' disabled:');
|
|
984
|
-
for (const domain of config.domains.disabled) {
|
|
985
|
-
lines.push(` - "${domain}"`);
|
|
986
|
-
}
|
|
987
|
-
lines.push('');
|
|
988
|
-
|
|
989
|
-
// Agents section
|
|
990
|
-
lines.push('agents:');
|
|
991
|
-
lines.push(` maxConcurrent: ${config.agents.maxConcurrent}`);
|
|
992
|
-
lines.push(` defaultTimeout: ${config.agents.defaultTimeout}`);
|
|
993
|
-
lines.push('');
|
|
994
|
-
|
|
995
|
-
return lines.join('\n');
|
|
996
|
-
}
|
|
997
|
-
}
|
|
998
|
-
|
|
999
|
-
/**
|
|
1000
|
-
* Factory function to create init orchestrator
|
|
1001
|
-
*/
|
|
1002
|
-
export function createInitOrchestrator(
|
|
1003
|
-
options: InitOrchestratorOptions
|
|
1004
|
-
): InitOrchestrator {
|
|
1005
|
-
return new InitOrchestrator(options);
|
|
1006
|
-
}
|
|
1007
|
-
|
|
1008
|
-
/**
|
|
1009
|
-
* Quick initialization with auto-configuration
|
|
1010
|
-
*/
|
|
1011
|
-
export async function quickInit(projectRoot: string): Promise<InitResult> {
|
|
1012
|
-
const orchestrator = createInitOrchestrator({
|
|
1013
|
-
projectRoot,
|
|
1014
|
-
autoMode: true,
|
|
1015
|
-
});
|
|
1016
|
-
return await orchestrator.initialize();
|
|
1017
|
-
}
|
|
1018
|
-
|
|
1019
|
-
/**
|
|
1020
|
-
* Format init result for display
|
|
1021
|
-
*/
|
|
1022
|
-
export function formatInitResult(result: InitResult): string {
|
|
1023
|
-
const lines: string[] = [];
|
|
1024
|
-
|
|
1025
|
-
lines.push('');
|
|
1026
|
-
lines.push('┌─────────────────────────────────────────────────────────────┐');
|
|
1027
|
-
lines.push('│ AQE v3 Initialization │');
|
|
1028
|
-
lines.push('├─────────────────────────────────────────────────────────────┤');
|
|
1029
|
-
|
|
1030
|
-
// Steps
|
|
1031
|
-
for (const step of result.steps) {
|
|
1032
|
-
const icon = step.status === 'success' ? '✓' : step.status === 'error' ? '✗' : '○';
|
|
1033
|
-
lines.push(`│ ${icon} ${step.step.padEnd(50)} ${step.durationMs}ms │`);
|
|
1034
|
-
}
|
|
1035
|
-
|
|
1036
|
-
lines.push('├─────────────────────────────────────────────────────────────┤');
|
|
1037
|
-
|
|
1038
|
-
// Summary
|
|
1039
|
-
lines.push(`│ Project: ${result.config.project.name.padEnd(47)} │`);
|
|
1040
|
-
lines.push(`│ Type: ${result.config.project.type.padEnd(50)} │`);
|
|
1041
|
-
lines.push(`│ Patterns Loaded: ${String(result.summary.patternsLoaded).padEnd(39)} │`);
|
|
1042
|
-
lines.push(`│ Skills Installed: ${String(result.summary.skillsInstalled).padEnd(38)} │`);
|
|
1043
|
-
lines.push(`│ Agents Installed: ${String(result.summary.agentsInstalled).padEnd(38)} │`);
|
|
1044
|
-
lines.push(`│ Workers Started: ${String(result.summary.workersStarted).padEnd(39)} │`);
|
|
1045
|
-
lines.push(`│ Hooks Configured: ${result.summary.hooksConfigured ? 'Yes' : 'No'.padEnd(38)} │`);
|
|
1046
|
-
lines.push(`│ MCP Server: ${result.summary.mcpConfigured ? 'Yes' : 'No'.padEnd(44)} │`);
|
|
1047
|
-
lines.push(`│ CLAUDE.md: ${result.summary.claudeMdGenerated ? 'Yes' : 'No'.padEnd(45)} │`);
|
|
1048
|
-
|
|
1049
|
-
lines.push('├─────────────────────────────────────────────────────────────┤');
|
|
1050
|
-
|
|
1051
|
-
// Final status
|
|
1052
|
-
const status = result.success
|
|
1053
|
-
? '✓ AQE v3 initialized as self-learning platform'
|
|
1054
|
-
: '✗ Initialization failed';
|
|
1055
|
-
lines.push(`│ ${status.padEnd(57)} │`);
|
|
1056
|
-
|
|
1057
|
-
lines.push('└─────────────────────────────────────────────────────────────┘');
|
|
1058
|
-
lines.push('');
|
|
1059
|
-
|
|
1060
|
-
return lines.join('\n');
|
|
1061
|
-
}
|