agentic-qe 3.2.3 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/v3/qe-accessibility-auditor.md +90 -0
- package/README.md +43 -5
- package/package.json +3 -2
- package/scripts/cloud-db-config.json +37 -0
- package/scripts/cloud-db-connect.sh +37 -0
- package/scripts/cloud-db-tunnel.sh +23 -0
- package/v3/CHANGELOG.md +165 -0
- package/v3/README.md +59 -1
- package/v3/assets/agents/v3/qe-accessibility-auditor.md +90 -0
- package/v3/dist/adapters/claude-flow/index.d.ts +54 -0
- package/v3/dist/adapters/claude-flow/index.d.ts.map +1 -0
- package/v3/dist/adapters/claude-flow/index.js +79 -0
- package/v3/dist/adapters/claude-flow/index.js.map +1 -0
- package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts +70 -0
- package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts.map +1 -0
- package/v3/dist/adapters/claude-flow/model-router-bridge.js +203 -0
- package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -0
- package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts +73 -0
- package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts.map +1 -0
- package/v3/dist/adapters/claude-flow/pretrain-bridge.js +276 -0
- package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -0
- package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts +70 -0
- package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts.map +1 -0
- package/v3/dist/adapters/claude-flow/trajectory-bridge.js +205 -0
- package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -0
- package/v3/dist/adapters/claude-flow/types.d.ts +99 -0
- package/v3/dist/adapters/claude-flow/types.d.ts.map +1 -0
- package/v3/dist/adapters/claude-flow/types.js +6 -0
- package/v3/dist/adapters/claude-flow/types.js.map +1 -0
- package/v3/dist/causal-discovery/causal-graph.d.ts +80 -1
- package/v3/dist/causal-discovery/causal-graph.d.ts.map +1 -1
- package/v3/dist/causal-discovery/causal-graph.js +111 -1
- package/v3/dist/causal-discovery/causal-graph.js.map +1 -1
- package/v3/dist/cli/bundle.js +11612 -4929
- package/v3/dist/cli/commands/claude-flow-setup.d.ts +82 -0
- package/v3/dist/cli/commands/claude-flow-setup.d.ts.map +1 -0
- package/v3/dist/cli/commands/claude-flow-setup.js +334 -0
- package/v3/dist/cli/commands/claude-flow-setup.js.map +1 -0
- package/v3/dist/cli/commands/hooks.d.ts +2 -0
- package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
- package/v3/dist/cli/commands/hooks.js +13 -2
- package/v3/dist/cli/commands/hooks.js.map +1 -1
- package/v3/dist/cli/commands/init.d.ts +19 -0
- package/v3/dist/cli/commands/init.d.ts.map +1 -0
- package/v3/dist/cli/commands/init.js +345 -0
- package/v3/dist/cli/commands/init.js.map +1 -0
- package/v3/dist/cli/index.js +110 -2
- package/v3/dist/cli/index.js.map +1 -1
- package/v3/dist/coordination/mincut/interfaces.d.ts +8 -2
- package/v3/dist/coordination/mincut/interfaces.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/interfaces.js.map +1 -1
- package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts +5 -0
- package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/mincut-health-monitor.js +22 -4
- package/v3/dist/coordination/mincut/mincut-health-monitor.js.map +1 -1
- package/v3/dist/coordination/mincut/queen-integration.d.ts +4 -0
- package/v3/dist/coordination/mincut/queen-integration.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/queen-integration.js +14 -1
- package/v3/dist/coordination/mincut/queen-integration.js.map +1 -1
- package/v3/dist/coordination/queen-coordinator.d.ts +5 -0
- package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
- package/v3/dist/coordination/queen-coordinator.js +45 -7
- package/v3/dist/coordination/queen-coordinator.js.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.d.ts +5 -0
- package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.js +79 -0
- package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
- package/v3/dist/domains/test-generation/coherence-gate.d.ts +245 -0
- package/v3/dist/domains/test-generation/coherence-gate.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/coherence-gate.js +454 -0
- package/v3/dist/domains/test-generation/coherence-gate.js.map +1 -0
- package/v3/dist/domains/test-generation/coordinator.d.ts +32 -1
- package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/coordinator.js +70 -1
- package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
- package/v3/dist/domains/test-generation/index.d.ts +1 -0
- package/v3/dist/domains/test-generation/index.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/index.js +4 -0
- package/v3/dist/domains/test-generation/index.js.map +1 -1
- package/v3/dist/domains/test-generation/services/index.d.ts +1 -0
- package/v3/dist/domains/test-generation/services/index.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/services/index.js +2 -0
- package/v3/dist/domains/test-generation/services/index.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/index.d.ts +2 -1
- package/v3/dist/domains/visual-accessibility/index.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/index.js +1 -0
- package/v3/dist/domains/visual-accessibility/index.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/interfaces.d.ts +131 -0
- package/v3/dist/domains/visual-accessibility/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/plugin.d.ts +26 -0
- package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/plugin.js +151 -0
- package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +42 -1
- package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js +69 -0
- package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/eu-compliance.d.ts +138 -0
- package/v3/dist/domains/visual-accessibility/services/eu-compliance.d.ts.map +1 -0
- package/v3/dist/domains/visual-accessibility/services/eu-compliance.js +830 -0
- package/v3/dist/domains/visual-accessibility/services/eu-compliance.js.map +1 -0
- package/v3/dist/domains/visual-accessibility/services/index.d.ts +1 -0
- package/v3/dist/domains/visual-accessibility/services/index.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/index.js +1 -0
- package/v3/dist/domains/visual-accessibility/services/index.js.map +1 -1
- package/v3/dist/init/enhancements/claude-flow-adapter.d.ts +84 -0
- package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -0
- package/v3/dist/init/enhancements/claude-flow-adapter.js +250 -0
- package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -0
- package/v3/dist/init/enhancements/detector.d.ts +10 -0
- package/v3/dist/init/enhancements/detector.d.ts.map +1 -0
- package/v3/dist/init/enhancements/detector.js +87 -0
- package/v3/dist/init/enhancements/detector.js.map +1 -0
- package/v3/dist/init/enhancements/index.d.ts +13 -0
- package/v3/dist/init/enhancements/index.d.ts.map +1 -0
- package/v3/dist/init/enhancements/index.js +25 -0
- package/v3/dist/init/enhancements/index.js.map +1 -0
- package/v3/dist/init/enhancements/types.d.ts +93 -0
- package/v3/dist/init/enhancements/types.d.ts.map +1 -0
- package/v3/dist/init/enhancements/types.js +6 -0
- package/v3/dist/init/enhancements/types.js.map +1 -0
- package/v3/dist/init/index.d.ts +8 -0
- package/v3/dist/init/index.d.ts.map +1 -1
- package/v3/dist/init/index.js +4 -0
- package/v3/dist/init/index.js.map +1 -1
- package/v3/dist/init/migration/config-migrator.d.ts +31 -0
- package/v3/dist/init/migration/config-migrator.d.ts.map +1 -0
- package/v3/dist/init/migration/config-migrator.js +133 -0
- package/v3/dist/init/migration/config-migrator.js.map +1 -0
- package/v3/dist/init/migration/data-migrator.d.ts +72 -0
- package/v3/dist/init/migration/data-migrator.d.ts.map +1 -0
- package/v3/dist/init/migration/data-migrator.js +233 -0
- package/v3/dist/init/migration/data-migrator.js.map +1 -0
- package/v3/dist/init/migration/detector.d.ts +44 -0
- package/v3/dist/init/migration/detector.d.ts.map +1 -0
- package/v3/dist/init/migration/detector.js +106 -0
- package/v3/dist/init/migration/detector.js.map +1 -0
- package/v3/dist/init/migration/index.d.ts +8 -0
- package/v3/dist/init/migration/index.d.ts.map +1 -0
- package/v3/dist/init/migration/index.js +8 -0
- package/v3/dist/init/migration/index.js.map +1 -0
- package/v3/dist/init/orchestrator.d.ts +68 -0
- package/v3/dist/init/orchestrator.d.ts.map +1 -0
- package/v3/dist/init/orchestrator.js +239 -0
- package/v3/dist/init/orchestrator.js.map +1 -0
- package/v3/dist/init/phases/01-detection.d.ts +30 -0
- package/v3/dist/init/phases/01-detection.d.ts.map +1 -0
- package/v3/dist/init/phases/01-detection.js +143 -0
- package/v3/dist/init/phases/01-detection.js.map +1 -0
- package/v3/dist/init/phases/02-analysis.d.ts +18 -0
- package/v3/dist/init/phases/02-analysis.d.ts.map +1 -0
- package/v3/dist/init/phases/02-analysis.js +28 -0
- package/v3/dist/init/phases/02-analysis.js.map +1 -0
- package/v3/dist/init/phases/03-configuration.d.ts +26 -0
- package/v3/dist/init/phases/03-configuration.d.ts.map +1 -0
- package/v3/dist/init/phases/03-configuration.js +98 -0
- package/v3/dist/init/phases/03-configuration.js.map +1 -0
- package/v3/dist/init/phases/04-database.d.ts +22 -0
- package/v3/dist/init/phases/04-database.d.ts.map +1 -0
- package/v3/dist/init/phases/04-database.js +88 -0
- package/v3/dist/init/phases/04-database.js.map +1 -0
- package/v3/dist/init/phases/05-learning.d.ts +28 -0
- package/v3/dist/init/phases/05-learning.d.ts.map +1 -0
- package/v3/dist/init/phases/05-learning.js +98 -0
- package/v3/dist/init/phases/05-learning.js.map +1 -0
- package/v3/dist/init/phases/06-code-intelligence.d.ts +33 -0
- package/v3/dist/init/phases/06-code-intelligence.d.ts.map +1 -0
- package/v3/dist/init/phases/06-code-intelligence.js +115 -0
- package/v3/dist/init/phases/06-code-intelligence.js.map +1 -0
- package/v3/dist/init/phases/07-hooks.d.ts +27 -0
- package/v3/dist/init/phases/07-hooks.d.ts.map +1 -0
- package/v3/dist/init/phases/07-hooks.js +209 -0
- package/v3/dist/init/phases/07-hooks.js.map +1 -0
- package/v3/dist/init/phases/08-mcp.d.ts +22 -0
- package/v3/dist/init/phases/08-mcp.d.ts.map +1 -0
- package/v3/dist/init/phases/08-mcp.js +62 -0
- package/v3/dist/init/phases/08-mcp.js.map +1 -0
- package/v3/dist/init/phases/09-assets.d.ts +23 -0
- package/v3/dist/init/phases/09-assets.d.ts.map +1 -0
- package/v3/dist/init/phases/09-assets.js +82 -0
- package/v3/dist/init/phases/09-assets.js.map +1 -0
- package/v3/dist/init/phases/10-workers.d.ts +23 -0
- package/v3/dist/init/phases/10-workers.d.ts.map +1 -0
- package/v3/dist/init/phases/10-workers.js +111 -0
- package/v3/dist/init/phases/10-workers.js.map +1 -0
- package/v3/dist/init/phases/11-claude-md.d.ts +26 -0
- package/v3/dist/init/phases/11-claude-md.d.ts.map +1 -0
- package/v3/dist/init/phases/11-claude-md.js +121 -0
- package/v3/dist/init/phases/11-claude-md.js.map +1 -0
- package/v3/dist/init/phases/12-verification.d.ts +38 -0
- package/v3/dist/init/phases/12-verification.d.ts.map +1 -0
- package/v3/dist/init/phases/12-verification.js +187 -0
- package/v3/dist/init/phases/12-verification.js.map +1 -0
- package/v3/dist/init/phases/index.d.ts +46 -0
- package/v3/dist/init/phases/index.d.ts.map +1 -0
- package/v3/dist/init/phases/index.js +64 -0
- package/v3/dist/init/phases/index.js.map +1 -0
- package/v3/dist/init/phases/phase-interface.d.ts +193 -0
- package/v3/dist/init/phases/phase-interface.d.ts.map +1 -0
- package/v3/dist/init/phases/phase-interface.js +119 -0
- package/v3/dist/init/phases/phase-interface.js.map +1 -0
- package/v3/dist/integrations/coherence/coherence-service.d.ts +323 -0
- package/v3/dist/integrations/coherence/coherence-service.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/coherence-service.js +799 -0
- package/v3/dist/integrations/coherence/coherence-service.js.map +1 -0
- package/v3/dist/integrations/coherence/engines/category-adapter.d.ts +170 -0
- package/v3/dist/integrations/coherence/engines/category-adapter.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/engines/category-adapter.js +403 -0
- package/v3/dist/integrations/coherence/engines/category-adapter.js.map +1 -0
- package/v3/dist/integrations/coherence/engines/causal-adapter.d.ts +159 -0
- package/v3/dist/integrations/coherence/engines/causal-adapter.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/engines/causal-adapter.js +348 -0
- package/v3/dist/integrations/coherence/engines/causal-adapter.js.map +1 -0
- package/v3/dist/integrations/coherence/engines/cohomology-adapter.d.ts +174 -0
- package/v3/dist/integrations/coherence/engines/cohomology-adapter.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/engines/cohomology-adapter.js +401 -0
- package/v3/dist/integrations/coherence/engines/cohomology-adapter.js.map +1 -0
- package/v3/dist/integrations/coherence/engines/homotopy-adapter.d.ts +201 -0
- package/v3/dist/integrations/coherence/engines/homotopy-adapter.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/engines/homotopy-adapter.js +324 -0
- package/v3/dist/integrations/coherence/engines/homotopy-adapter.js.map +1 -0
- package/v3/dist/integrations/coherence/engines/index.d.ts +20 -0
- package/v3/dist/integrations/coherence/engines/index.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/engines/index.js +26 -0
- package/v3/dist/integrations/coherence/engines/index.js.map +1 -0
- package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts +193 -0
- package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/engines/spectral-adapter.js +476 -0
- package/v3/dist/integrations/coherence/engines/spectral-adapter.js.map +1 -0
- package/v3/dist/integrations/coherence/engines/witness-adapter.d.ts +175 -0
- package/v3/dist/integrations/coherence/engines/witness-adapter.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/engines/witness-adapter.js +377 -0
- package/v3/dist/integrations/coherence/engines/witness-adapter.js.map +1 -0
- package/v3/dist/integrations/coherence/index.d.ts +84 -0
- package/v3/dist/integrations/coherence/index.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/index.js +114 -0
- package/v3/dist/integrations/coherence/index.js.map +1 -0
- package/v3/dist/integrations/coherence/threshold-tuner.d.ts +396 -0
- package/v3/dist/integrations/coherence/threshold-tuner.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/threshold-tuner.js +538 -0
- package/v3/dist/integrations/coherence/threshold-tuner.js.map +1 -0
- package/v3/dist/integrations/coherence/types.d.ts +879 -0
- package/v3/dist/integrations/coherence/types.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/types.js +134 -0
- package/v3/dist/integrations/coherence/types.js.map +1 -0
- package/v3/dist/integrations/coherence/wasm-loader.d.ts +351 -0
- package/v3/dist/integrations/coherence/wasm-loader.d.ts.map +1 -0
- package/v3/dist/integrations/coherence/wasm-loader.js +842 -0
- package/v3/dist/integrations/coherence/wasm-loader.js.map +1 -0
- package/v3/dist/integrations/embeddings/index/HNSWIndex.d.ts.map +1 -1
- package/v3/dist/integrations/embeddings/index/HNSWIndex.js +4 -1
- package/v3/dist/integrations/embeddings/index/HNSWIndex.js.map +1 -1
- package/v3/dist/kernel/interfaces.d.ts +8 -1
- package/v3/dist/kernel/interfaces.d.ts.map +1 -1
- package/v3/dist/learning/aqe-learning-engine.d.ts +272 -0
- package/v3/dist/learning/aqe-learning-engine.d.ts.map +1 -0
- package/v3/dist/learning/aqe-learning-engine.js +708 -0
- package/v3/dist/learning/aqe-learning-engine.js.map +1 -0
- package/v3/dist/learning/causal-verifier.d.ts +244 -0
- package/v3/dist/learning/causal-verifier.d.ts.map +1 -0
- package/v3/dist/learning/causal-verifier.js +300 -0
- package/v3/dist/learning/causal-verifier.js.map +1 -0
- package/v3/dist/learning/experience-capture.d.ts +266 -0
- package/v3/dist/learning/experience-capture.d.ts.map +1 -0
- package/v3/dist/learning/experience-capture.js +647 -0
- package/v3/dist/learning/experience-capture.js.map +1 -0
- package/v3/dist/learning/index.d.ts +8 -0
- package/v3/dist/learning/index.d.ts.map +1 -1
- package/v3/dist/learning/index.js +16 -0
- package/v3/dist/learning/index.js.map +1 -1
- package/v3/dist/learning/memory-auditor.d.ts +235 -0
- package/v3/dist/learning/memory-auditor.d.ts.map +1 -0
- package/v3/dist/learning/memory-auditor.js +478 -0
- package/v3/dist/learning/memory-auditor.js.map +1 -0
- package/v3/dist/learning/pattern-store.d.ts.map +1 -1
- package/v3/dist/learning/pattern-store.js +27 -6
- package/v3/dist/learning/pattern-store.js.map +1 -1
- package/v3/dist/learning/qe-patterns.d.ts +15 -1
- package/v3/dist/learning/qe-patterns.d.ts.map +1 -1
- package/v3/dist/learning/qe-patterns.js +26 -5
- package/v3/dist/learning/qe-patterns.js.map +1 -1
- package/v3/dist/learning/qe-reasoning-bank.d.ts +38 -2
- package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
- package/v3/dist/learning/qe-reasoning-bank.js +86 -4
- package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
- package/v3/dist/learning/real-qe-reasoning-bank.d.ts +32 -2
- package/v3/dist/learning/real-qe-reasoning-bank.d.ts.map +1 -1
- package/v3/dist/learning/real-qe-reasoning-bank.js +61 -6
- package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
- package/v3/dist/mcp/bundle.js +6303 -266
- package/v3/dist/mcp/tools/coherence/audit.d.ts +107 -0
- package/v3/dist/mcp/tools/coherence/audit.d.ts.map +1 -0
- package/v3/dist/mcp/tools/coherence/audit.js +236 -0
- package/v3/dist/mcp/tools/coherence/audit.js.map +1 -0
- package/v3/dist/mcp/tools/coherence/check.d.ts +106 -0
- package/v3/dist/mcp/tools/coherence/check.d.ts.map +1 -0
- package/v3/dist/mcp/tools/coherence/check.js +205 -0
- package/v3/dist/mcp/tools/coherence/check.js.map +1 -0
- package/v3/dist/mcp/tools/coherence/collapse.d.ts +123 -0
- package/v3/dist/mcp/tools/coherence/collapse.d.ts.map +1 -0
- package/v3/dist/mcp/tools/coherence/collapse.js +279 -0
- package/v3/dist/mcp/tools/coherence/collapse.js.map +1 -0
- package/v3/dist/mcp/tools/coherence/consensus.d.ts +100 -0
- package/v3/dist/mcp/tools/coherence/consensus.d.ts.map +1 -0
- package/v3/dist/mcp/tools/coherence/consensus.js +201 -0
- package/v3/dist/mcp/tools/coherence/consensus.js.map +1 -0
- package/v3/dist/mcp/tools/coherence/index.d.ts +31 -0
- package/v3/dist/mcp/tools/coherence/index.d.ts.map +1 -0
- package/v3/dist/mcp/tools/coherence/index.js +42 -0
- package/v3/dist/mcp/tools/coherence/index.js.map +1 -0
- package/v3/dist/mcp/tools/index.d.ts +6 -1
- package/v3/dist/mcp/tools/index.d.ts.map +1 -1
- package/v3/dist/mcp/tools/index.js +9 -1
- package/v3/dist/mcp/tools/index.js.map +1 -1
- package/v3/dist/mcp/tools/mincut/index.d.ts +1 -1
- package/v3/dist/mcp/tools/mincut/index.d.ts.map +1 -1
- package/v3/dist/mcp/tools/mincut/index.js.map +1 -1
- package/v3/dist/mcp/tools/registry.d.ts +4 -0
- package/v3/dist/mcp/tools/registry.d.ts.map +1 -1
- package/v3/dist/mcp/tools/registry.js +5 -0
- package/v3/dist/mcp/tools/registry.js.map +1 -1
- package/v3/dist/mcp/types.d.ts +1 -1
- package/v3/dist/mcp/types.d.ts.map +1 -1
- package/v3/dist/strange-loop/belief-reconciler.d.ts +357 -0
- package/v3/dist/strange-loop/belief-reconciler.d.ts.map +1 -0
- package/v3/dist/strange-loop/belief-reconciler.js +696 -0
- package/v3/dist/strange-loop/belief-reconciler.js.map +1 -0
- package/v3/dist/strange-loop/index.d.ts +1 -0
- package/v3/dist/strange-loop/index.d.ts.map +1 -1
- package/v3/dist/strange-loop/index.js +2 -0
- package/v3/dist/strange-loop/index.js.map +1 -1
- package/v3/dist/strange-loop/strange-loop.d.ts +177 -5
- package/v3/dist/strange-loop/strange-loop.d.ts.map +1 -1
- package/v3/dist/strange-loop/strange-loop.js +452 -9
- package/v3/dist/strange-loop/strange-loop.js.map +1 -1
- package/v3/dist/strange-loop/types.d.ts +205 -1
- package/v3/dist/strange-loop/types.d.ts.map +1 -1
- package/v3/dist/strange-loop/types.js +5 -0
- package/v3/dist/strange-loop/types.js.map +1 -1
- package/v3/package.json +5 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 01: Detection
|
|
3
|
+
* Detects existing AQE v2 installation and v3 markers
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import { createRequire } from 'module';
|
|
8
|
+
import { BasePhase, } from './phase-interface.js';
|
|
9
|
+
const require = createRequire(import.meta.url);
|
|
10
|
+
/**
|
|
11
|
+
* Detection phase - checks for existing AQE installations
|
|
12
|
+
*/
|
|
13
|
+
export class DetectionPhase extends BasePhase {
|
|
14
|
+
name = 'detection';
|
|
15
|
+
description = 'Detect existing installations';
|
|
16
|
+
order = 10;
|
|
17
|
+
critical = true;
|
|
18
|
+
async run(context) {
|
|
19
|
+
const { projectRoot } = context;
|
|
20
|
+
// Detect v2 installation
|
|
21
|
+
const v2Detection = await this.detectV2Installation(projectRoot);
|
|
22
|
+
// Check for v3 markers
|
|
23
|
+
const v3ConfigYaml = existsSync(join(projectRoot, '.agentic-qe', 'config.yaml'));
|
|
24
|
+
const v3Version = v2Detection.version?.startsWith('3.');
|
|
25
|
+
const v2Detected = v2Detection.detected;
|
|
26
|
+
const v3Detected = v3ConfigYaml || v3Version || false;
|
|
27
|
+
const freshInstall = !v2Detected && !v3Detected;
|
|
28
|
+
// Store v2 detection in context for other phases
|
|
29
|
+
context.v2Detection = v2Detection;
|
|
30
|
+
if (v2Detected && !context.options.autoMigrate) {
|
|
31
|
+
context.services.log('');
|
|
32
|
+
context.services.log('═'.repeat(60));
|
|
33
|
+
context.services.log('⚠️ EXISTING V2 INSTALLATION DETECTED');
|
|
34
|
+
context.services.log('═'.repeat(60));
|
|
35
|
+
context.services.log('');
|
|
36
|
+
context.services.log('Found v2 installation at:');
|
|
37
|
+
if (v2Detection.hasMemoryDb) {
|
|
38
|
+
context.services.log(' • Memory DB: .agentic-qe/memory.db');
|
|
39
|
+
}
|
|
40
|
+
if (v2Detection.hasConfig) {
|
|
41
|
+
context.services.log(' • Config: .agentic-qe/config/');
|
|
42
|
+
}
|
|
43
|
+
if (v2Detection.hasAgents) {
|
|
44
|
+
context.services.log(' • Agents: .claude/agents/');
|
|
45
|
+
}
|
|
46
|
+
context.services.log('');
|
|
47
|
+
context.services.log('📋 RECOMMENDED: Run with --auto-migrate:');
|
|
48
|
+
context.services.log(' aqe init --auto-migrate');
|
|
49
|
+
context.services.log('');
|
|
50
|
+
return {
|
|
51
|
+
v2Detected: true,
|
|
52
|
+
v3Detected,
|
|
53
|
+
freshInstall: false,
|
|
54
|
+
v2Detection,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
v2Detected,
|
|
59
|
+
v3Detected,
|
|
60
|
+
freshInstall,
|
|
61
|
+
v2Detection,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Detect existing v2 AQE installation
|
|
66
|
+
*/
|
|
67
|
+
async detectV2Installation(projectRoot) {
|
|
68
|
+
const memoryDbPath = join(projectRoot, '.agentic-qe', 'memory.db');
|
|
69
|
+
const configPath = join(projectRoot, '.agentic-qe', 'config');
|
|
70
|
+
const agentsPath = join(projectRoot, '.claude', 'agents');
|
|
71
|
+
const v2ConfigFile = join(projectRoot, '.agentic-qe', 'config', 'learning.json');
|
|
72
|
+
const hasMemoryDb = existsSync(memoryDbPath);
|
|
73
|
+
const hasConfig = existsSync(configPath);
|
|
74
|
+
const hasAgents = existsSync(agentsPath);
|
|
75
|
+
// Check for v2-specific markers
|
|
76
|
+
const hasV2ConfigFiles = existsSync(v2ConfigFile);
|
|
77
|
+
const hasV3ConfigYaml = existsSync(join(projectRoot, '.agentic-qe', 'config.yaml'));
|
|
78
|
+
// Try to read version from memory.db
|
|
79
|
+
let version;
|
|
80
|
+
let isV3Installation = false;
|
|
81
|
+
if (hasMemoryDb) {
|
|
82
|
+
version = this.readVersionFromDb(memoryDbPath);
|
|
83
|
+
if (version) {
|
|
84
|
+
isV3Installation = version.startsWith('3.');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
version = '2.x.x';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Detected as v2 if:
|
|
91
|
+
// 1. Has memory.db but no v3 version marker, OR
|
|
92
|
+
// 2. Has v2 config files but no v3 config.yaml
|
|
93
|
+
const detected = !isV3Installation && hasMemoryDb && (!version?.startsWith('3.') ||
|
|
94
|
+
(hasV2ConfigFiles && !hasV3ConfigYaml));
|
|
95
|
+
return {
|
|
96
|
+
detected,
|
|
97
|
+
memoryDbPath: hasMemoryDb ? memoryDbPath : undefined,
|
|
98
|
+
configPath: hasConfig ? configPath : undefined,
|
|
99
|
+
agentsPath: hasAgents ? agentsPath : undefined,
|
|
100
|
+
hasMemoryDb,
|
|
101
|
+
hasConfig,
|
|
102
|
+
hasAgents,
|
|
103
|
+
version,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Read AQE version from memory.db
|
|
108
|
+
*/
|
|
109
|
+
readVersionFromDb(dbPath) {
|
|
110
|
+
try {
|
|
111
|
+
const Database = require('better-sqlite3');
|
|
112
|
+
const db = new Database(dbPath, { readonly: true, fileMustExist: true });
|
|
113
|
+
try {
|
|
114
|
+
const tableExists = db.prepare(`
|
|
115
|
+
SELECT name FROM sqlite_master
|
|
116
|
+
WHERE type='table' AND name='kv_store'
|
|
117
|
+
`).get();
|
|
118
|
+
if (!tableExists) {
|
|
119
|
+
db.close();
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
const row = db.prepare(`
|
|
123
|
+
SELECT value FROM kv_store
|
|
124
|
+
WHERE key = 'aqe_version' AND namespace = '_system'
|
|
125
|
+
`).get();
|
|
126
|
+
db.close();
|
|
127
|
+
if (row) {
|
|
128
|
+
return JSON.parse(row.value);
|
|
129
|
+
}
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
db.close();
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Instance exported from index.ts
|
|
143
|
+
//# sourceMappingURL=01-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"01-detection.js","sourceRoot":"","sources":["../../../src/init/phases/01-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 02: Analysis
|
|
3
|
+
* Analyzes project structure, frameworks, and languages
|
|
4
|
+
*/
|
|
5
|
+
import { BasePhase, type InitContext } from './phase-interface.js';
|
|
6
|
+
import type { ProjectAnalysis } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Analysis phase - analyzes project structure
|
|
9
|
+
*/
|
|
10
|
+
export declare class AnalysisPhase extends BasePhase<ProjectAnalysis> {
|
|
11
|
+
readonly name = "analysis";
|
|
12
|
+
readonly description = "Analyze project structure";
|
|
13
|
+
readonly order = 20;
|
|
14
|
+
readonly critical = true;
|
|
15
|
+
readonly requiresPhases: readonly ["detection"];
|
|
16
|
+
protected run(context: InitContext): Promise<ProjectAnalysis>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=02-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"02-analysis.d.ts","sourceRoot":"","sources":["../../../src/init/phases/02-analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAAC,eAAe,CAAC;IAC3D,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,+BAA+B;IACnD,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,QAAQ,QAAQ;IACzB,QAAQ,CAAC,cAAc,yBAA0B;cAEjC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAapE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 02: Analysis
|
|
3
|
+
* Analyzes project structure, frameworks, and languages
|
|
4
|
+
*/
|
|
5
|
+
import { BasePhase, } from './phase-interface.js';
|
|
6
|
+
import { createProjectAnalyzer } from '../project-analyzer.js';
|
|
7
|
+
/**
|
|
8
|
+
* Analysis phase - analyzes project structure
|
|
9
|
+
*/
|
|
10
|
+
export class AnalysisPhase extends BasePhase {
|
|
11
|
+
name = 'analysis';
|
|
12
|
+
description = 'Analyze project structure';
|
|
13
|
+
order = 20;
|
|
14
|
+
critical = true;
|
|
15
|
+
requiresPhases = ['detection'];
|
|
16
|
+
async run(context) {
|
|
17
|
+
const analyzer = createProjectAnalyzer(context.projectRoot);
|
|
18
|
+
const analysis = await analyzer.analyze();
|
|
19
|
+
// Store in context for other phases
|
|
20
|
+
context.analysis = analysis;
|
|
21
|
+
context.services.log(` Project: ${analysis.projectName}`);
|
|
22
|
+
context.services.log(` Languages: ${analysis.languages.join(', ')}`);
|
|
23
|
+
context.services.log(` Frameworks: ${analysis.frameworks.join(', ')}`);
|
|
24
|
+
return analysis;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Instance exported from index.ts
|
|
28
|
+
//# sourceMappingURL=02-analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"02-analysis.js","sourceRoot":"","sources":["../../../src/init/phases/02-analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG/D;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAA0B;IAClD,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAAG,2BAA2B,CAAC;IAC1C,KAAK,GAAG,EAAE,CAAC;IACX,QAAQ,GAAG,IAAI,CAAC;IAChB,cAAc,GAAG,CAAC,WAAW,CAAU,CAAC;IAEvC,KAAK,CAAC,GAAG,CAAC,OAAoB;QACtC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QAE1C,oCAAoC;QACpC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,kCAAkC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 03: Configuration
|
|
3
|
+
* Generates AQE configuration based on analysis and options
|
|
4
|
+
*/
|
|
5
|
+
import { BasePhase, type InitContext } from './phase-interface.js';
|
|
6
|
+
import type { AQEInitConfig } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration phase - generates optimal config
|
|
9
|
+
*/
|
|
10
|
+
export declare class ConfigurationPhase extends BasePhase<AQEInitConfig> {
|
|
11
|
+
readonly name = "configuration";
|
|
12
|
+
readonly description = "Generate configuration";
|
|
13
|
+
readonly order = 30;
|
|
14
|
+
readonly critical = true;
|
|
15
|
+
readonly requiresPhases: readonly ["analysis"];
|
|
16
|
+
protected run(context: InitContext): Promise<AQEInitConfig>;
|
|
17
|
+
/**
|
|
18
|
+
* Apply CLI options to config
|
|
19
|
+
*/
|
|
20
|
+
private applyOptions;
|
|
21
|
+
/**
|
|
22
|
+
* Apply wizard answers to config
|
|
23
|
+
*/
|
|
24
|
+
private applyWizardAnswers;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=03-configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"03-configuration.d.ts","sourceRoot":"","sources":["../../../src/init/phases/03-configuration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,SAAS,CAAC,aAAa,CAAC;IAC9D,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,WAAW,4BAA4B;IAChD,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,QAAQ,QAAQ;IACzB,QAAQ,CAAC,cAAc,wBAAyB;cAEhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBjE;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA8C3B"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 03: Configuration
|
|
3
|
+
* Generates AQE configuration based on analysis and options
|
|
4
|
+
*/
|
|
5
|
+
import { BasePhase, } from './phase-interface.js';
|
|
6
|
+
import { createSelfConfigurator } from '../self-configurator.js';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration phase - generates optimal config
|
|
9
|
+
*/
|
|
10
|
+
export class ConfigurationPhase extends BasePhase {
|
|
11
|
+
name = 'configuration';
|
|
12
|
+
description = 'Generate configuration';
|
|
13
|
+
order = 30;
|
|
14
|
+
critical = true;
|
|
15
|
+
requiresPhases = ['analysis'];
|
|
16
|
+
async run(context) {
|
|
17
|
+
if (!context.analysis) {
|
|
18
|
+
throw new Error('Analysis phase must complete before configuration');
|
|
19
|
+
}
|
|
20
|
+
const configurator = createSelfConfigurator({
|
|
21
|
+
minimal: context.options.minimal,
|
|
22
|
+
});
|
|
23
|
+
// Generate base config from analysis
|
|
24
|
+
let config = configurator.recommend(context.analysis);
|
|
25
|
+
// Apply CLI options
|
|
26
|
+
config = this.applyOptions(config, context);
|
|
27
|
+
// Store in context
|
|
28
|
+
context.config = config;
|
|
29
|
+
context.services.log(` Version: ${config.version}`);
|
|
30
|
+
context.services.log(` Learning: ${config.learning.enabled ? 'enabled' : 'disabled'}`);
|
|
31
|
+
context.services.log(` Workers: ${config.workers.enabled.length}`);
|
|
32
|
+
return config;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Apply CLI options to config
|
|
36
|
+
*/
|
|
37
|
+
applyOptions(config, context) {
|
|
38
|
+
const { options } = context;
|
|
39
|
+
// Minimal mode
|
|
40
|
+
if (options.minimal) {
|
|
41
|
+
config.skills.install = false;
|
|
42
|
+
config.learning.pretrainedPatterns = false;
|
|
43
|
+
config.workers.enabled = [];
|
|
44
|
+
config.workers.daemonAutoStart = false;
|
|
45
|
+
}
|
|
46
|
+
// Skip patterns
|
|
47
|
+
if (options.skipPatterns) {
|
|
48
|
+
config.learning.pretrainedPatterns = false;
|
|
49
|
+
}
|
|
50
|
+
// Apply wizard answers if present
|
|
51
|
+
if (options.wizardAnswers) {
|
|
52
|
+
config = this.applyWizardAnswers(config, options.wizardAnswers);
|
|
53
|
+
}
|
|
54
|
+
return config;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Apply wizard answers to config
|
|
58
|
+
*/
|
|
59
|
+
applyWizardAnswers(config, answers) {
|
|
60
|
+
// Project type override
|
|
61
|
+
if (answers['project-type'] && answers['project-type'] !== 'auto') {
|
|
62
|
+
config.project.type = answers['project-type'];
|
|
63
|
+
}
|
|
64
|
+
// Learning mode
|
|
65
|
+
switch (answers['learning-mode']) {
|
|
66
|
+
case 'full':
|
|
67
|
+
config.learning.enabled = true;
|
|
68
|
+
config.learning.embeddingModel = 'transformer';
|
|
69
|
+
break;
|
|
70
|
+
case 'basic':
|
|
71
|
+
config.learning.enabled = true;
|
|
72
|
+
config.learning.embeddingModel = 'hash';
|
|
73
|
+
break;
|
|
74
|
+
case 'disabled':
|
|
75
|
+
config.learning.enabled = false;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
// Pattern loading
|
|
79
|
+
if (answers['load-patterns'] === false) {
|
|
80
|
+
config.learning.pretrainedPatterns = false;
|
|
81
|
+
}
|
|
82
|
+
// Hooks
|
|
83
|
+
if (answers['hooks'] === false) {
|
|
84
|
+
config.hooks.claudeCode = false;
|
|
85
|
+
}
|
|
86
|
+
// Workers
|
|
87
|
+
if (answers['workers'] === false) {
|
|
88
|
+
config.workers.daemonAutoStart = false;
|
|
89
|
+
}
|
|
90
|
+
// Skills
|
|
91
|
+
if (answers['skills'] === false) {
|
|
92
|
+
config.skills.install = false;
|
|
93
|
+
}
|
|
94
|
+
return config;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Instance exported from index.ts
|
|
98
|
+
//# sourceMappingURL=03-configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"03-configuration.js","sourceRoot":"","sources":["../../../src/init/phases/03-configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 04: Database
|
|
3
|
+
* Initializes SQLite persistence database
|
|
4
|
+
*/
|
|
5
|
+
import { BasePhase, type InitContext } from './phase-interface.js';
|
|
6
|
+
export interface DatabaseResult {
|
|
7
|
+
dbPath: string;
|
|
8
|
+
created: boolean;
|
|
9
|
+
tablesCreated: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Database phase - initializes SQLite persistence
|
|
13
|
+
*/
|
|
14
|
+
export declare class DatabasePhase extends BasePhase<DatabaseResult> {
|
|
15
|
+
readonly name = "database";
|
|
16
|
+
readonly description = "Initialize persistence database";
|
|
17
|
+
readonly order = 40;
|
|
18
|
+
readonly critical = true;
|
|
19
|
+
readonly requiresPhases: readonly ["configuration"];
|
|
20
|
+
protected run(context: InitContext): Promise<DatabaseResult>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=04-database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"04-database.d.ts","sourceRoot":"","sources":["../../../src/init/phases/04-database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,SAAS,EACT,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC1D,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,qCAAqC;IACzD,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,QAAQ,QAAQ;IACzB,QAAQ,CAAC,cAAc,6BAA8B;cAErC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;CAoFnE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 04: Database
|
|
3
|
+
* Initializes SQLite persistence database
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import { BasePhase, } from './phase-interface.js';
|
|
8
|
+
/**
|
|
9
|
+
* Database phase - initializes SQLite persistence
|
|
10
|
+
*/
|
|
11
|
+
export class DatabasePhase extends BasePhase {
|
|
12
|
+
name = 'database';
|
|
13
|
+
description = 'Initialize persistence database';
|
|
14
|
+
order = 40;
|
|
15
|
+
critical = true;
|
|
16
|
+
requiresPhases = ['configuration'];
|
|
17
|
+
async run(context) {
|
|
18
|
+
const { projectRoot } = context;
|
|
19
|
+
// Dynamic import for better-sqlite3
|
|
20
|
+
let Database;
|
|
21
|
+
try {
|
|
22
|
+
const mod = await import('better-sqlite3');
|
|
23
|
+
Database = mod.default;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
throw new Error('SQLite persistence REQUIRED but better-sqlite3 is not installed.\n' +
|
|
27
|
+
'Install it with: npm install better-sqlite3\n' +
|
|
28
|
+
'If you see native compilation errors, ensure build tools are installed.');
|
|
29
|
+
}
|
|
30
|
+
// Create .agentic-qe directory
|
|
31
|
+
const dataDir = join(projectRoot, '.agentic-qe');
|
|
32
|
+
if (!existsSync(dataDir)) {
|
|
33
|
+
mkdirSync(dataDir, { recursive: true });
|
|
34
|
+
}
|
|
35
|
+
const dbPath = join(dataDir, 'memory.db');
|
|
36
|
+
const created = !existsSync(dbPath);
|
|
37
|
+
try {
|
|
38
|
+
const db = new Database(dbPath);
|
|
39
|
+
// Configure for performance
|
|
40
|
+
db.pragma('journal_mode = WAL');
|
|
41
|
+
db.pragma('busy_timeout = 5000');
|
|
42
|
+
// Create tables
|
|
43
|
+
const tablesCreated = [];
|
|
44
|
+
// kv_store table
|
|
45
|
+
db.exec(`
|
|
46
|
+
CREATE TABLE IF NOT EXISTS kv_store (
|
|
47
|
+
key TEXT NOT NULL,
|
|
48
|
+
namespace TEXT NOT NULL,
|
|
49
|
+
value TEXT NOT NULL,
|
|
50
|
+
expires_at INTEGER,
|
|
51
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now') * 1000),
|
|
52
|
+
PRIMARY KEY (namespace, key)
|
|
53
|
+
);
|
|
54
|
+
CREATE INDEX IF NOT EXISTS idx_kv_namespace ON kv_store(namespace);
|
|
55
|
+
CREATE INDEX IF NOT EXISTS idx_kv_expires ON kv_store(expires_at) WHERE expires_at IS NOT NULL;
|
|
56
|
+
`);
|
|
57
|
+
tablesCreated.push('kv_store');
|
|
58
|
+
// Verify the table exists
|
|
59
|
+
const tableCheck = db.prepare(`
|
|
60
|
+
SELECT name FROM sqlite_master WHERE type='table' AND name='kv_store'
|
|
61
|
+
`).get();
|
|
62
|
+
if (!tableCheck) {
|
|
63
|
+
throw new Error('Failed to create kv_store table');
|
|
64
|
+
}
|
|
65
|
+
// Write init test entry
|
|
66
|
+
const stmt = db.prepare(`
|
|
67
|
+
INSERT OR REPLACE INTO kv_store (key, namespace, value)
|
|
68
|
+
VALUES (?, ?, ?)
|
|
69
|
+
`);
|
|
70
|
+
stmt.run('_init_test', '_system', JSON.stringify({ initialized: new Date().toISOString() }));
|
|
71
|
+
db.close();
|
|
72
|
+
context.services.log(` Database: ${dbPath}`);
|
|
73
|
+
context.services.log(` Tables: ${tablesCreated.join(', ')}`);
|
|
74
|
+
return {
|
|
75
|
+
dbPath,
|
|
76
|
+
created,
|
|
77
|
+
tablesCreated,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
throw new Error(`SQLite persistence initialization FAILED: ${error}\n` +
|
|
82
|
+
`Database path: ${dbPath}\n` +
|
|
83
|
+
'Ensure the directory is writable and has sufficient disk space.');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Instance exported from index.ts
|
|
88
|
+
//# sourceMappingURL=04-database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"04-database.js","sourceRoot":"","sources":["../../../src/init/phases/04-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 05: Learning
|
|
3
|
+
* Initializes the learning system with HNSW index and pattern storage
|
|
4
|
+
*/
|
|
5
|
+
import { BasePhase, type InitContext } from './phase-interface.js';
|
|
6
|
+
export interface LearningResult {
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
dataDir: string;
|
|
9
|
+
hnswDir: string;
|
|
10
|
+
patternsLoaded: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Learning phase - initializes pattern learning system
|
|
14
|
+
*/
|
|
15
|
+
export declare class LearningPhase extends BasePhase<LearningResult> {
|
|
16
|
+
readonly name = "learning";
|
|
17
|
+
readonly description = "Initialize learning system";
|
|
18
|
+
readonly order = 50;
|
|
19
|
+
readonly critical = false;
|
|
20
|
+
readonly requiresPhases: readonly ["database", "configuration"];
|
|
21
|
+
shouldRun(context: InitContext): Promise<boolean>;
|
|
22
|
+
protected run(context: InitContext): Promise<LearningResult>;
|
|
23
|
+
/**
|
|
24
|
+
* Load pre-trained patterns from bundled library
|
|
25
|
+
*/
|
|
26
|
+
private loadPretrainedPatterns;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=05-learning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"05-learning.d.ts","sourceRoot":"","sources":["../../../src/init/phases/05-learning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,SAAS,EACT,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC1D,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,gCAAgC;IACpD,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,QAAQ,SAAS;IAC1B,QAAQ,CAAC,cAAc,yCAA0C;IAE3D,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;cAKvC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAyDlE;;OAEG;YACW,sBAAsB;CA4BrC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 05: Learning
|
|
3
|
+
* Initializes the learning system with HNSW index and pattern storage
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import { BasePhase, } from './phase-interface.js';
|
|
8
|
+
/**
|
|
9
|
+
* Learning phase - initializes pattern learning system
|
|
10
|
+
*/
|
|
11
|
+
export class LearningPhase extends BasePhase {
|
|
12
|
+
name = 'learning';
|
|
13
|
+
description = 'Initialize learning system';
|
|
14
|
+
order = 50;
|
|
15
|
+
critical = false;
|
|
16
|
+
requiresPhases = ['database', 'configuration'];
|
|
17
|
+
async shouldRun(context) {
|
|
18
|
+
const config = context.config;
|
|
19
|
+
return config?.learning?.enabled ?? true;
|
|
20
|
+
}
|
|
21
|
+
async run(context) {
|
|
22
|
+
const config = context.config;
|
|
23
|
+
const { projectRoot, options } = context;
|
|
24
|
+
if (!config.learning.enabled) {
|
|
25
|
+
return {
|
|
26
|
+
enabled: false,
|
|
27
|
+
dataDir: '',
|
|
28
|
+
hnswDir: '',
|
|
29
|
+
patternsLoaded: 0,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// Create data directory
|
|
33
|
+
const dataDir = join(projectRoot, '.agentic-qe', 'data');
|
|
34
|
+
if (!existsSync(dataDir)) {
|
|
35
|
+
mkdirSync(dataDir, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
// Create HNSW index directory
|
|
38
|
+
const hnswDir = join(dataDir, 'hnsw');
|
|
39
|
+
if (!existsSync(hnswDir)) {
|
|
40
|
+
mkdirSync(hnswDir, { recursive: true });
|
|
41
|
+
}
|
|
42
|
+
// Write learning system config
|
|
43
|
+
const learningConfigPath = join(dataDir, 'learning-config.json');
|
|
44
|
+
const learningConfig = {
|
|
45
|
+
embeddingModel: config.learning.embeddingModel,
|
|
46
|
+
hnswConfig: config.learning.hnswConfig,
|
|
47
|
+
qualityThreshold: config.learning.qualityThreshold,
|
|
48
|
+
promotionThreshold: config.learning.promotionThreshold,
|
|
49
|
+
databasePath: join(dataDir, 'qe-patterns.db'),
|
|
50
|
+
hnswIndexPath: join(hnswDir, 'index.bin'),
|
|
51
|
+
initialized: new Date().toISOString(),
|
|
52
|
+
};
|
|
53
|
+
writeFileSync(learningConfigPath, JSON.stringify(learningConfig, null, 2), 'utf-8');
|
|
54
|
+
// Load pre-trained patterns if available and not skipped
|
|
55
|
+
let patternsLoaded = 0;
|
|
56
|
+
if (config.learning.pretrainedPatterns && !options.skipPatterns) {
|
|
57
|
+
patternsLoaded = await this.loadPretrainedPatterns(dataDir, context);
|
|
58
|
+
}
|
|
59
|
+
context.services.log(` Data dir: ${dataDir}`);
|
|
60
|
+
context.services.log(` HNSW dir: ${hnswDir}`);
|
|
61
|
+
context.services.log(` Patterns loaded: ${patternsLoaded}`);
|
|
62
|
+
return {
|
|
63
|
+
enabled: true,
|
|
64
|
+
dataDir,
|
|
65
|
+
hnswDir,
|
|
66
|
+
patternsLoaded,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Load pre-trained patterns from bundled library
|
|
71
|
+
*/
|
|
72
|
+
async loadPretrainedPatterns(dataDir, context) {
|
|
73
|
+
try {
|
|
74
|
+
// Try to load pre-trained patterns from bundled location
|
|
75
|
+
const patternsDir = join(dataDir, 'patterns');
|
|
76
|
+
if (!existsSync(patternsDir)) {
|
|
77
|
+
mkdirSync(patternsDir, { recursive: true });
|
|
78
|
+
}
|
|
79
|
+
// Write a placeholder for now - actual patterns would come from
|
|
80
|
+
// @agentic-qe/patterns package or bundled assets
|
|
81
|
+
const indexPath = join(patternsDir, 'index.json');
|
|
82
|
+
if (!existsSync(indexPath)) {
|
|
83
|
+
writeFileSync(indexPath, JSON.stringify({
|
|
84
|
+
version: '3.0.0',
|
|
85
|
+
domains: [],
|
|
86
|
+
loadedAt: new Date().toISOString(),
|
|
87
|
+
}, null, 2), 'utf-8');
|
|
88
|
+
}
|
|
89
|
+
return 0; // Return actual count when patterns are bundled
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
context.services.warn(`Could not load pre-trained patterns: ${error}`);
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Instance exported from index.ts
|
|
98
|
+
//# sourceMappingURL=05-learning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"05-learning.js","sourceRoot":"","sources":["../../../src/init/phases/05-learning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 06: Code Intelligence
|
|
3
|
+
* Pre-scans project and builds knowledge graph
|
|
4
|
+
*/
|
|
5
|
+
import { BasePhase, type InitContext } from './phase-interface.js';
|
|
6
|
+
export interface CodeIntelligenceResult {
|
|
7
|
+
status: 'indexed' | 'existing' | 'skipped' | 'error';
|
|
8
|
+
entries: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Code Intelligence phase - builds knowledge graph
|
|
12
|
+
*/
|
|
13
|
+
export declare class CodeIntelligencePhase extends BasePhase<CodeIntelligenceResult> {
|
|
14
|
+
readonly name = "code-intelligence";
|
|
15
|
+
readonly description = "Code intelligence pre-scan";
|
|
16
|
+
readonly order = 60;
|
|
17
|
+
readonly critical = false;
|
|
18
|
+
readonly requiresPhases: readonly ["database"];
|
|
19
|
+
protected run(context: InitContext): Promise<CodeIntelligenceResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Check if code intelligence index exists
|
|
22
|
+
*/
|
|
23
|
+
private checkCodeIntelligenceIndex;
|
|
24
|
+
/**
|
|
25
|
+
* Get count of KG entries
|
|
26
|
+
*/
|
|
27
|
+
private getKGEntryCount;
|
|
28
|
+
/**
|
|
29
|
+
* Run code intelligence scan
|
|
30
|
+
*/
|
|
31
|
+
private runCodeIntelligenceScan;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=06-code-intelligence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"06-code-intelligence.d.ts","sourceRoot":"","sources":["../../../src/init/phases/06-code-intelligence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,SAAS,EACT,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,SAAS,CAAC,sBAAsB,CAAC;IAC1E,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,gCAAgC;IACpD,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,QAAQ,SAAS;IAC1B,QAAQ,CAAC,cAAc,wBAAyB;cAEhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiB1E;;OAEG;YACW,0BAA0B;IAoBxC;;OAEG;YACW,eAAe;IAgB7B;;OAEG;YACW,uBAAuB;CAgDtC"}
|