agentic-qe 3.3.3 → 3.3.5
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/README.md +100 -0
- package/.claude/agents/v3/qe-accessibility-auditor.md +112 -11
- package/.claude/agents/v3/qe-bdd-generator.md +40 -0
- package/.claude/agents/v3/qe-coverage-specialist.md +39 -0
- package/.claude/agents/v3/qe-defect-predictor.md +36 -0
- package/.claude/agents/v3/qe-gap-detector.md +39 -0
- package/.claude/agents/v3/qe-pattern-learner.md +31 -0
- package/.claude/agents/v3/qe-product-factors-assessor.md +34 -0
- package/.claude/agents/v3/qe-quality-criteria-recommender.md +32 -0
- package/.claude/agents/v3/qe-quality-gate.md +39 -0
- package/.claude/agents/v3/qe-queen-coordinator.md +332 -166
- package/.claude/agents/v3/qe-requirements-validator.md +37 -0
- package/.claude/agents/v3/qe-risk-assessor.md +33 -0
- package/.claude/agents/v3/qe-tdd-specialist.md +33 -0
- package/.claude/agents/v3/qe-test-architect.md +36 -0
- package/.claude/helpers/statusline-v3.cjs +38 -42
- package/.claude/skills/README.md +30 -104
- package/.claude/skills/a11y-ally/SKILL.md +1658 -0
- package/.claude/skills/qcsd-ideation-swarm/SKILL.md +1750 -0
- package/.claude/skills/skills-manifest.json +78 -8
- package/README.md +18 -4
- package/package.json +1 -1
- package/scripts/cloud-db-config.json +10 -5
- package/scripts/demo-warmup.sh +45 -0
- package/scripts/fetch-content.js +460 -0
- package/scripts/merge-v3-to-root.sql +48 -0
- package/v3/CHANGELOG.md +166 -0
- package/v3/README.md +11 -6
- package/v3/assets/agents/v3/README.md +100 -0
- package/v3/assets/agents/v3/qe-accessibility-auditor.md +112 -11
- package/v3/assets/agents/v3/qe-bdd-generator.md +40 -0
- package/v3/assets/agents/v3/qe-coverage-specialist.md +39 -0
- package/v3/assets/agents/v3/qe-defect-predictor.md +36 -0
- package/v3/assets/agents/v3/qe-gap-detector.md +39 -0
- package/v3/assets/agents/v3/qe-pattern-learner.md +31 -0
- package/v3/assets/agents/v3/qe-product-factors-assessor.md +34 -0
- package/v3/assets/agents/v3/qe-quality-criteria-recommender.md +32 -0
- package/v3/assets/agents/v3/qe-quality-gate.md +39 -0
- package/v3/assets/agents/v3/qe-queen-coordinator.md +332 -166
- package/v3/assets/agents/v3/qe-requirements-validator.md +37 -0
- package/v3/assets/agents/v3/qe-risk-assessor.md +33 -0
- package/v3/assets/agents/v3/qe-tdd-specialist.md +33 -0
- package/v3/assets/agents/v3/qe-test-architect.md +36 -0
- package/v3/assets/hooks/cross-phase-memory.yaml +253 -0
- package/v3/assets/skills/a11y-ally/SKILL.md +1658 -0
- package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +1750 -0
- package/v3/assets/skills/skills-manifest.json +753 -0
- package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts.map +1 -1
- package/v3/dist/adapters/claude-flow/model-router-bridge.js +6 -4
- package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -1
- package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts.map +1 -1
- package/v3/dist/adapters/claude-flow/pretrain-bridge.js +13 -8
- package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -1
- package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts.map +1 -1
- package/v3/dist/adapters/claude-flow/trajectory-bridge.js +9 -6
- package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -1
- package/v3/dist/benchmarks/performance-benchmarks.d.ts.map +1 -1
- package/v3/dist/benchmarks/performance-benchmarks.js +5 -3
- package/v3/dist/benchmarks/performance-benchmarks.js.map +1 -1
- package/v3/dist/cli/bundle.js +27646 -23204
- package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
- package/v3/dist/cli/commands/hooks.js +288 -0
- package/v3/dist/cli/commands/hooks.js.map +1 -1
- package/v3/dist/cli/commands/sync.d.ts.map +1 -1
- package/v3/dist/cli/commands/sync.js +0 -6
- package/v3/dist/cli/commands/sync.js.map +1 -1
- package/v3/dist/cli/handlers/init-handler.d.ts.map +1 -1
- package/v3/dist/cli/handlers/init-handler.js +11 -0
- package/v3/dist/cli/handlers/init-handler.js.map +1 -1
- package/v3/dist/cli/index.js +14 -2
- package/v3/dist/cli/index.js.map +1 -1
- package/v3/dist/cli/scheduler/persistent-scheduler.d.ts.map +1 -1
- package/v3/dist/cli/scheduler/persistent-scheduler.js +3 -2
- package/v3/dist/cli/scheduler/persistent-scheduler.js.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.js +6 -4
- package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
- package/v3/dist/coordination/consensus/providers/claude-provider.js +1 -1
- package/v3/dist/coordination/consensus/providers/gemini-provider.js +1 -1
- package/v3/dist/coordination/consensus/providers/native-learning-provider.d.ts.map +1 -1
- package/v3/dist/coordination/consensus/providers/native-learning-provider.js +10 -8
- package/v3/dist/coordination/consensus/providers/native-learning-provider.js.map +1 -1
- package/v3/dist/coordination/consensus/providers/ollama-provider.d.ts.map +1 -1
- package/v3/dist/coordination/consensus/providers/ollama-provider.js +5 -4
- package/v3/dist/coordination/consensus/providers/ollama-provider.js.map +1 -1
- package/v3/dist/coordination/consensus/providers/openai-provider.d.ts.map +1 -1
- package/v3/dist/coordination/consensus/providers/openai-provider.js +5 -4
- package/v3/dist/coordination/consensus/providers/openai-provider.js.map +1 -1
- package/v3/dist/coordination/constants.d.ts +198 -0
- package/v3/dist/coordination/constants.d.ts.map +1 -0
- package/v3/dist/coordination/constants.js +210 -0
- package/v3/dist/coordination/constants.js.map +1 -0
- package/v3/dist/coordination/mincut/dream-integration.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/dream-integration.js +5 -1
- package/v3/dist/coordination/mincut/dream-integration.js.map +1 -1
- package/v3/dist/coordination/queen-coordinator.d.ts +9 -1
- package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
- package/v3/dist/coordination/queen-coordinator.js +49 -9
- package/v3/dist/coordination/queen-coordinator.js.map +1 -1
- package/v3/dist/coordination/task-executor.d.ts.map +1 -1
- package/v3/dist/coordination/task-executor.js +7 -8
- package/v3/dist/coordination/task-executor.js.map +1 -1
- package/v3/dist/coordination/workflow-orchestrator.d.ts.map +1 -1
- package/v3/dist/coordination/workflow-orchestrator.js +261 -0
- package/v3/dist/coordination/workflow-orchestrator.js.map +1 -1
- package/v3/dist/domains/chaos-resilience/plugin.d.ts +14 -3
- package/v3/dist/domains/chaos-resilience/plugin.d.ts.map +1 -1
- package/v3/dist/domains/chaos-resilience/plugin.js +96 -0
- package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
- package/v3/dist/domains/chaos-resilience/services/performance-profiler.d.ts.map +1 -1
- package/v3/dist/domains/chaos-resilience/services/performance-profiler.js +12 -8
- package/v3/dist/domains/chaos-resilience/services/performance-profiler.js.map +1 -1
- package/v3/dist/domains/code-intelligence/plugin.d.ts +13 -3
- package/v3/dist/domains/code-intelligence/plugin.d.ts.map +1 -1
- package/v3/dist/domains/code-intelligence/plugin.js +85 -0
- package/v3/dist/domains/code-intelligence/plugin.js.map +1 -1
- package/v3/dist/domains/code-intelligence/services/product-factors-bridge.d.ts.map +1 -1
- package/v3/dist/domains/code-intelligence/services/product-factors-bridge.js +3 -2
- package/v3/dist/domains/code-intelligence/services/product-factors-bridge.js.map +1 -1
- package/v3/dist/domains/constants.d.ts +481 -0
- package/v3/dist/domains/constants.d.ts.map +1 -0
- package/v3/dist/domains/constants.js +503 -0
- package/v3/dist/domains/constants.js.map +1 -0
- package/v3/dist/domains/contract-testing/plugin.d.ts +6 -1
- package/v3/dist/domains/contract-testing/plugin.d.ts.map +1 -1
- package/v3/dist/domains/contract-testing/plugin.js +80 -1
- package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
- package/v3/dist/domains/contract-testing/services/contract-validator.d.ts.map +1 -1
- package/v3/dist/domains/contract-testing/services/contract-validator.js +5 -4
- package/v3/dist/domains/contract-testing/services/contract-validator.js.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/hnsw-index.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/hnsw-index.js +1 -0
- package/v3/dist/domains/coverage-analysis/services/hnsw-index.js.map +1 -1
- package/v3/dist/domains/defect-intelligence/coordinator.d.ts +2 -2
- package/v3/dist/domains/defect-intelligence/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/defect-intelligence/coordinator.js.map +1 -1
- package/v3/dist/domains/defect-intelligence/plugin.d.ts +6 -1
- package/v3/dist/domains/defect-intelligence/plugin.d.ts.map +1 -1
- package/v3/dist/domains/defect-intelligence/plugin.js +101 -0
- package/v3/dist/domains/defect-intelligence/plugin.js.map +1 -1
- package/v3/dist/domains/defect-intelligence/services/defect-predictor.d.ts.map +1 -1
- package/v3/dist/domains/defect-intelligence/services/defect-predictor.js +3 -2
- package/v3/dist/domains/defect-intelligence/services/defect-predictor.js.map +1 -1
- package/v3/dist/domains/domain-interface.d.ts.map +1 -1
- package/v3/dist/domains/domain-interface.js +24 -9
- package/v3/dist/domains/domain-interface.js.map +1 -1
- package/v3/dist/domains/learning-optimization/plugin.d.ts +2 -1
- package/v3/dist/domains/learning-optimization/plugin.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/plugin.js +49 -0
- package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
- package/v3/dist/domains/quality-assessment/coordinator.d.ts +90 -1
- package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/coordinator.js +310 -0
- package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
- package/v3/dist/domains/requirements-validation/index.d.ts +1 -0
- package/v3/dist/domains/requirements-validation/index.d.ts.map +1 -1
- package/v3/dist/domains/requirements-validation/index.js +2 -0
- package/v3/dist/domains/requirements-validation/index.js.map +1 -1
- package/v3/dist/domains/requirements-validation/plugin.d.ts +13 -1
- package/v3/dist/domains/requirements-validation/plugin.d.ts.map +1 -1
- package/v3/dist/domains/requirements-validation/plugin.js +94 -0
- package/v3/dist/domains/requirements-validation/plugin.js.map +1 -1
- package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.d.ts +245 -0
- package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.d.ts.map +1 -0
- package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.js +1143 -0
- package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.js.map +1 -0
- package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.d.ts.map +1 -1
- package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js +3 -2
- package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js.map +1 -1
- package/v3/dist/domains/security-compliance/plugin.d.ts +3 -2
- package/v3/dist/domains/security-compliance/plugin.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/plugin.js +64 -0
- package/v3/dist/domains/security-compliance/plugin.js.map +1 -1
- package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +25 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +160 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +48 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.js +385 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +20 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +99 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +62 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.js +329 -0
- package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts +46 -0
- package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.js +180 -0
- package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/index.d.ts +14 -0
- package/v3/dist/domains/security-compliance/services/scanners/index.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/index.js +16 -0
- package/v3/dist/domains/security-compliance/services/scanners/index.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +92 -0
- package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js +440 -0
- package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.d.ts +78 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +179 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +91 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-types.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-types.js +15 -0
- package/v3/dist/domains/security-compliance/services/scanners/scanner-types.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/security-patterns.d.ts +16 -0
- package/v3/dist/domains/security-compliance/services/scanners/security-patterns.d.ts.map +1 -0
- package/v3/dist/domains/security-compliance/services/scanners/security-patterns.js +507 -0
- package/v3/dist/domains/security-compliance/services/scanners/security-patterns.js.map +1 -0
- package/v3/dist/domains/security-compliance/services/security-auditor.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/services/security-auditor.js +2 -1
- package/v3/dist/domains/security-compliance/services/security-auditor.js.map +1 -1
- package/v3/dist/domains/security-compliance/services/security-scanner.d.ts +20 -213
- package/v3/dist/domains/security-compliance/services/security-scanner.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/services/security-scanner.js +37 -2013
- package/v3/dist/domains/security-compliance/services/security-scanner.js.map +1 -1
- package/v3/dist/domains/security-compliance/services/semgrep-integration.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/services/semgrep-integration.js +7 -6
- package/v3/dist/domains/security-compliance/services/semgrep-integration.js.map +1 -1
- package/v3/dist/domains/test-execution/services/auth-state-manager.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/services/auth-state-manager.js +6 -4
- package/v3/dist/domains/test-execution/services/auth-state-manager.js.map +1 -1
- package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.d.ts +55 -0
- package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.js +407 -0
- package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts +122 -0
- package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.js +325 -0
- package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts +97 -0
- package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.js +297 -0
- package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/index.d.ts +22 -0
- package/v3/dist/domains/test-execution/services/e2e/index.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/index.js +52 -0
- package/v3/dist/domains/test-execution/services/e2e/index.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/result-collector.d.ts +51 -0
- package/v3/dist/domains/test-execution/services/e2e/result-collector.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/result-collector.js +133 -0
- package/v3/dist/domains/test-execution/services/e2e/result-collector.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/step-executors.d.ts +48 -0
- package/v3/dist/domains/test-execution/services/e2e/step-executors.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/step-executors.js +422 -0
- package/v3/dist/domains/test-execution/services/e2e/step-executors.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.d.ts +49 -0
- package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.js +146 -0
- package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/types.d.ts +138 -0
- package/v3/dist/domains/test-execution/services/e2e/types.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/types.js +65 -0
- package/v3/dist/domains/test-execution/services/e2e/types.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.d.ts +33 -0
- package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.d.ts.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.js +114 -0
- package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.js.map +1 -0
- package/v3/dist/domains/test-execution/services/e2e-runner.d.ts +18 -392
- package/v3/dist/domains/test-execution/services/e2e-runner.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/services/e2e-runner.js +25 -1757
- package/v3/dist/domains/test-execution/services/e2e-runner.js.map +1 -1
- package/v3/dist/domains/test-execution/services/flaky-detector.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/services/flaky-detector.js +12 -9
- package/v3/dist/domains/test-execution/services/flaky-detector.js.map +1 -1
- package/v3/dist/domains/test-execution/services/retry-handler.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/services/retry-handler.js +7 -5
- package/v3/dist/domains/test-execution/services/retry-handler.js.map +1 -1
- package/v3/dist/domains/test-execution/services/test-executor.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/services/test-executor.js +4 -3
- package/v3/dist/domains/test-execution/services/test-executor.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/coordinator.d.ts +70 -0
- package/v3/dist/domains/visual-accessibility/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/coordinator.js +172 -0
- package/v3/dist/domains/visual-accessibility/coordinator.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/plugin.d.ts +2 -1
- package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/plugin.js +63 -0
- package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -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 +3 -2
- package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.js +22 -12
- package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/viewport-capture.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/viewport-capture.js +3 -2
- package/v3/dist/domains/visual-accessibility/services/viewport-capture.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/visual-regression.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/visual-regression.js +3 -2
- package/v3/dist/domains/visual-accessibility/services/visual-regression.js.map +1 -1
- package/v3/dist/hooks/cross-phase-hooks.d.ts +42 -0
- package/v3/dist/hooks/cross-phase-hooks.d.ts.map +1 -0
- package/v3/dist/hooks/cross-phase-hooks.js +338 -0
- package/v3/dist/hooks/cross-phase-hooks.js.map +1 -0
- package/v3/dist/hooks/index.d.ts +9 -0
- package/v3/dist/hooks/index.d.ts.map +1 -0
- package/v3/dist/hooks/index.js +9 -0
- package/v3/dist/hooks/index.js.map +1 -0
- package/v3/dist/init/agents-installer.d.ts.map +1 -1
- package/v3/dist/init/agents-installer.js +6 -4
- package/v3/dist/init/agents-installer.js.map +1 -1
- package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -1
- package/v3/dist/init/enhancements/claude-flow-adapter.js +15 -9
- package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -1
- package/v3/dist/init/enhancements/detector.js +6 -4
- package/v3/dist/init/enhancements/detector.js.map +1 -1
- package/v3/dist/init/init-wizard.d.ts +5 -0
- package/v3/dist/init/init-wizard.d.ts.map +1 -1
- package/v3/dist/init/init-wizard.js +77 -14
- package/v3/dist/init/init-wizard.js.map +1 -1
- package/v3/dist/init/migration/data-migrator.d.ts.map +1 -1
- package/v3/dist/init/migration/data-migrator.js +6 -4
- package/v3/dist/init/migration/data-migrator.js.map +1 -1
- package/v3/dist/init/phases/02-analysis.js +2 -2
- package/v3/dist/init/phases/02-analysis.js.map +1 -1
- package/v3/dist/init/phases/04-database.d.ts.map +1 -1
- package/v3/dist/init/phases/04-database.js +0 -1
- package/v3/dist/init/phases/04-database.js.map +1 -1
- package/v3/dist/init/phases/05-learning.js +1 -1
- package/v3/dist/init/phases/05-learning.js.map +1 -1
- package/v3/dist/init/phases/11-claude-md.d.ts.map +1 -1
- package/v3/dist/init/phases/11-claude-md.js +25 -0
- package/v3/dist/init/phases/11-claude-md.js.map +1 -1
- package/v3/dist/init/phases/12-verification.d.ts.map +1 -1
- package/v3/dist/init/phases/12-verification.js +2 -1
- package/v3/dist/init/phases/12-verification.js.map +1 -1
- package/v3/dist/init/project-analyzer.d.ts.map +1 -1
- package/v3/dist/init/project-analyzer.js +12 -8
- package/v3/dist/init/project-analyzer.js.map +1 -1
- package/v3/dist/init/skills-installer.d.ts.map +1 -1
- package/v3/dist/init/skills-installer.js +6 -4
- package/v3/dist/init/skills-installer.js.map +1 -1
- package/v3/dist/init/token-bootstrap.d.ts.map +1 -1
- package/v3/dist/init/token-bootstrap.js +2 -1
- package/v3/dist/init/token-bootstrap.js.map +1 -1
- package/v3/dist/integrations/agent-booster-wasm/index.d.ts.map +1 -1
- package/v3/dist/integrations/agent-booster-wasm/index.js +8 -4
- package/v3/dist/integrations/agent-booster-wasm/index.js.map +1 -1
- package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts.map +1 -1
- package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js +3 -2
- package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js.map +1 -1
- package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts.map +1 -1
- package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js.map +1 -1
- package/v3/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.d.ts.map +1 -1
- package/v3/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.js.map +1 -1
- package/v3/dist/integrations/browser/agent-browser/client.d.ts.map +1 -1
- package/v3/dist/integrations/browser/agent-browser/client.js +9 -6
- package/v3/dist/integrations/browser/agent-browser/client.js.map +1 -1
- package/v3/dist/integrations/browser/agent-browser/command-executor.d.ts.map +1 -1
- package/v3/dist/integrations/browser/agent-browser/command-executor.js +3 -2
- package/v3/dist/integrations/browser/agent-browser/command-executor.js.map +1 -1
- package/v3/dist/integrations/browser/index.d.ts +1 -0
- package/v3/dist/integrations/browser/index.d.ts.map +1 -1
- package/v3/dist/integrations/browser/index.js +6 -0
- package/v3/dist/integrations/browser/index.js.map +1 -1
- package/v3/dist/integrations/browser/web-content-fetcher.d.ts +154 -0
- package/v3/dist/integrations/browser/web-content-fetcher.d.ts.map +1 -0
- package/v3/dist/integrations/browser/web-content-fetcher.js +529 -0
- package/v3/dist/integrations/browser/web-content-fetcher.js.map +1 -0
- package/v3/dist/integrations/coherence/threshold-tuner.d.ts.map +1 -1
- package/v3/dist/integrations/coherence/threshold-tuner.js +3 -2
- package/v3/dist/integrations/coherence/threshold-tuner.js.map +1 -1
- package/v3/dist/integrations/coherence/wasm-loader.d.ts.map +1 -1
- package/v3/dist/integrations/coherence/wasm-loader.js +3 -2
- package/v3/dist/integrations/coherence/wasm-loader.js.map +1 -1
- package/v3/dist/integrations/n8n/agent-factory.d.ts.map +1 -1
- package/v3/dist/integrations/n8n/agent-factory.js +6 -4
- package/v3/dist/integrations/n8n/agent-factory.js.map +1 -1
- package/v3/dist/integrations/rl-suite/persistence/q-value-store.d.ts.map +1 -1
- package/v3/dist/integrations/rl-suite/persistence/q-value-store.js.map +1 -1
- package/v3/dist/integrations/ruvector/interfaces.js +1 -1
- package/v3/dist/integrations/ruvector/interfaces.js.map +1 -1
- package/v3/dist/integrations/ruvector/sona-persistence.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/sona-persistence.js +6 -4
- package/v3/dist/integrations/ruvector/sona-persistence.js.map +1 -1
- package/v3/dist/integrations/vibium/client.d.ts.map +1 -1
- package/v3/dist/integrations/vibium/client.js +3 -2
- package/v3/dist/integrations/vibium/client.js.map +1 -1
- package/v3/dist/kernel/agent-coordinator.d.ts +1 -1
- package/v3/dist/kernel/agent-coordinator.d.ts.map +1 -1
- package/v3/dist/kernel/agent-coordinator.js +4 -4
- package/v3/dist/kernel/agent-coordinator.js.map +1 -1
- package/v3/dist/kernel/constants.d.ts +155 -0
- package/v3/dist/kernel/constants.d.ts.map +1 -0
- package/v3/dist/kernel/constants.js +169 -0
- package/v3/dist/kernel/constants.js.map +1 -0
- package/v3/dist/kernel/event-bus.d.ts +8 -0
- package/v3/dist/kernel/event-bus.d.ts.map +1 -1
- package/v3/dist/kernel/event-bus.js +79 -17
- package/v3/dist/kernel/event-bus.js.map +1 -1
- package/v3/dist/kernel/hybrid-backend.d.ts.map +1 -1
- package/v3/dist/kernel/hybrid-backend.js +4 -3
- package/v3/dist/kernel/hybrid-backend.js.map +1 -1
- package/v3/dist/kernel/index.d.ts +1 -1
- package/v3/dist/kernel/index.d.ts.map +1 -1
- package/v3/dist/kernel/index.js +3 -1
- package/v3/dist/kernel/index.js.map +1 -1
- package/v3/dist/kernel/kernel.d.ts.map +1 -1
- package/v3/dist/kernel/kernel.js +3 -2
- package/v3/dist/kernel/kernel.js.map +1 -1
- package/v3/dist/kernel/memory-backend.d.ts.map +1 -1
- package/v3/dist/kernel/memory-backend.js +4 -3
- package/v3/dist/kernel/memory-backend.js.map +1 -1
- package/v3/dist/kernel/unified-memory.d.ts +26 -0
- package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
- package/v3/dist/kernel/unified-memory.js +68 -13
- package/v3/dist/kernel/unified-memory.js.map +1 -1
- package/v3/dist/kernel/unified-persistence.js +3 -2
- package/v3/dist/kernel/unified-persistence.js.map +1 -1
- package/v3/dist/learning/aqe-learning-engine.d.ts.map +1 -1
- package/v3/dist/learning/aqe-learning-engine.js +12 -8
- package/v3/dist/learning/aqe-learning-engine.js.map +1 -1
- package/v3/dist/learning/dream/index.d.ts +1 -1
- package/v3/dist/learning/dream/index.d.ts.map +1 -1
- package/v3/dist/learning/dream/index.js +3 -1
- package/v3/dist/learning/dream/index.js.map +1 -1
- package/v3/dist/learning/dream/spreading-activation.d.ts +41 -0
- package/v3/dist/learning/dream/spreading-activation.d.ts.map +1 -1
- package/v3/dist/learning/dream/spreading-activation.js +79 -0
- package/v3/dist/learning/dream/spreading-activation.js.map +1 -1
- package/v3/dist/learning/pattern-store.d.ts.map +1 -1
- package/v3/dist/learning/pattern-store.js +16 -6
- package/v3/dist/learning/pattern-store.js.map +1 -1
- package/v3/dist/learning/qe-unified-memory.js +1 -1
- package/v3/dist/learning/qe-unified-memory.js.map +1 -1
- package/v3/dist/learning/real-embeddings.d.ts.map +1 -1
- package/v3/dist/learning/real-embeddings.js +7 -1
- package/v3/dist/learning/real-embeddings.js.map +1 -1
- package/v3/dist/learning/real-qe-reasoning-bank.js +2 -2
- package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
- package/v3/dist/learning/sqlite-persistence.d.ts +2 -2
- package/v3/dist/learning/sqlite-persistence.d.ts.map +1 -1
- package/v3/dist/learning/sqlite-persistence.js +1 -1
- package/v3/dist/learning/sqlite-persistence.js.map +1 -1
- package/v3/dist/learning/v2-to-v3-migration.d.ts +2 -2
- package/v3/dist/learning/v2-to-v3-migration.d.ts.map +1 -1
- package/v3/dist/learning/v2-to-v3-migration.js +2 -2
- package/v3/dist/learning/v2-to-v3-migration.js.map +1 -1
- package/v3/dist/logging/console-logger.d.ts +96 -0
- package/v3/dist/logging/console-logger.d.ts.map +1 -0
- package/v3/dist/logging/console-logger.js +247 -0
- package/v3/dist/logging/console-logger.js.map +1 -0
- package/v3/dist/logging/index.d.ts +42 -0
- package/v3/dist/logging/index.d.ts.map +1 -0
- package/v3/dist/logging/index.js +39 -0
- package/v3/dist/logging/index.js.map +1 -0
- package/v3/dist/logging/logger-factory.d.ts +145 -0
- package/v3/dist/logging/logger-factory.d.ts.map +1 -0
- package/v3/dist/logging/logger-factory.js +218 -0
- package/v3/dist/logging/logger-factory.js.map +1 -0
- package/v3/dist/logging/logger.d.ts +89 -0
- package/v3/dist/logging/logger.d.ts.map +1 -0
- package/v3/dist/logging/logger.js +74 -0
- package/v3/dist/logging/logger.js.map +1 -0
- package/v3/dist/mcp/bundle.js +11385 -7526
- package/v3/dist/mcp/handlers/agent-handlers.js +2 -2
- package/v3/dist/mcp/handlers/agent-handlers.js.map +1 -1
- package/v3/dist/mcp/handlers/core-handlers.d.ts +2 -0
- package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/core-handlers.js +33 -0
- package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
- package/v3/dist/mcp/handlers/cross-phase-handlers.d.ts +110 -0
- package/v3/dist/mcp/handlers/cross-phase-handlers.d.ts.map +1 -0
- package/v3/dist/mcp/handlers/cross-phase-handlers.js +216 -0
- package/v3/dist/mcp/handlers/cross-phase-handlers.js.map +1 -0
- package/v3/dist/mcp/handlers/domain-handler-configs.d.ts +151 -0
- package/v3/dist/mcp/handlers/domain-handler-configs.d.ts.map +1 -0
- package/v3/dist/mcp/handlers/domain-handler-configs.js +486 -0
- package/v3/dist/mcp/handlers/domain-handler-configs.js.map +1 -0
- package/v3/dist/mcp/handlers/domain-handlers.d.ts +174 -120
- package/v3/dist/mcp/handlers/domain-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/domain-handlers.js +178 -1049
- package/v3/dist/mcp/handlers/domain-handlers.js.map +1 -1
- package/v3/dist/mcp/handlers/handler-factory.d.ts +182 -0
- package/v3/dist/mcp/handlers/handler-factory.d.ts.map +1 -0
- package/v3/dist/mcp/handlers/handler-factory.js +327 -0
- package/v3/dist/mcp/handlers/handler-factory.js.map +1 -0
- package/v3/dist/mcp/handlers/index.d.ts +1 -0
- package/v3/dist/mcp/handlers/index.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/index.js +2 -0
- package/v3/dist/mcp/handlers/index.js.map +1 -1
- package/v3/dist/mcp/handlers/task-handlers.d.ts +1 -0
- package/v3/dist/mcp/handlers/task-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/task-handlers.js +91 -7
- package/v3/dist/mcp/handlers/task-handlers.js.map +1 -1
- package/v3/dist/mcp/server.d.ts.map +1 -1
- package/v3/dist/mcp/server.js +107 -1
- package/v3/dist/mcp/server.js.map +1 -1
- package/v3/dist/mcp/types.d.ts +5 -3
- package/v3/dist/mcp/types.d.ts.map +1 -1
- package/v3/dist/memory/cross-phase-memory.d.ts +55 -0
- package/v3/dist/memory/cross-phase-memory.d.ts.map +1 -0
- package/v3/dist/memory/cross-phase-memory.js +265 -0
- package/v3/dist/memory/cross-phase-memory.js.map +1 -0
- package/v3/dist/memory/index.d.ts +9 -0
- package/v3/dist/memory/index.d.ts.map +1 -0
- package/v3/dist/memory/index.js +9 -0
- package/v3/dist/memory/index.js.map +1 -0
- package/v3/dist/shared/io/file-reader.d.ts.map +1 -1
- package/v3/dist/shared/io/file-reader.js +3 -2
- package/v3/dist/shared/io/file-reader.js.map +1 -1
- package/v3/dist/shared/utils/binary-insert.d.ts +85 -0
- package/v3/dist/shared/utils/binary-insert.d.ts.map +1 -0
- package/v3/dist/shared/utils/binary-insert.js +122 -0
- package/v3/dist/shared/utils/binary-insert.js.map +1 -0
- package/v3/dist/shared/utils/index.d.ts +1 -0
- package/v3/dist/shared/utils/index.d.ts.map +1 -1
- package/v3/dist/shared/utils/index.js +1 -0
- package/v3/dist/shared/utils/index.js.map +1 -1
- package/v3/dist/strange-loop/belief-reconciler.d.ts.map +1 -1
- package/v3/dist/strange-loop/belief-reconciler.js +3 -2
- package/v3/dist/strange-loop/belief-reconciler.js.map +1 -1
- package/v3/dist/sync/claude-flow-bridge.d.ts +1 -1
- package/v3/dist/sync/claude-flow-bridge.d.ts.map +1 -1
- package/v3/dist/sync/claude-flow-bridge.js +7 -5
- package/v3/dist/sync/claude-flow-bridge.js.map +1 -1
- package/v3/dist/sync/cloud/postgres-writer.d.ts.map +1 -1
- package/v3/dist/sync/cloud/postgres-writer.js +0 -1
- package/v3/dist/sync/cloud/postgres-writer.js.map +1 -1
- package/v3/dist/sync/interfaces.d.ts +6 -0
- package/v3/dist/sync/interfaces.d.ts.map +1 -1
- package/v3/dist/sync/interfaces.js +34 -47
- package/v3/dist/sync/interfaces.js.map +1 -1
- package/v3/dist/sync/readers/sqlite-reader.d.ts +1 -1
- package/v3/dist/sync/readers/sqlite-reader.d.ts.map +1 -1
- package/v3/dist/sync/readers/sqlite-reader.js +4 -3
- package/v3/dist/sync/readers/sqlite-reader.js.map +1 -1
- package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.d.ts.map +1 -1
- package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.js +3 -2
- package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.js.map +1 -1
- package/v3/dist/test-scheduling/git-aware/test-selector.d.ts.map +1 -1
- package/v3/dist/test-scheduling/git-aware/test-selector.js +3 -2
- package/v3/dist/test-scheduling/git-aware/test-selector.js.map +1 -1
- package/v3/dist/types/cross-phase-signals.d.ts +119 -0
- package/v3/dist/types/cross-phase-signals.d.ts.map +1 -0
- package/v3/dist/types/cross-phase-signals.js +33 -0
- package/v3/dist/types/cross-phase-signals.js.map +1 -0
- package/v3/dist/types/index.d.ts +9 -0
- package/v3/dist/types/index.d.ts.map +1 -0
- package/v3/dist/types/index.js +9 -0
- package/v3/dist/types/index.js.map +1 -0
- package/v3/dist/workers/worker-manager.d.ts.map +1 -1
- package/v3/dist/workers/worker-manager.js +3 -2
- package/v3/dist/workers/worker-manager.js.map +1 -1
- package/v3/dist/workflows/browser/workflow-loader.d.ts +3 -3
- package/v3/dist/workflows/browser/workflow-loader.d.ts.map +1 -1
- package/v3/dist/workflows/browser/workflow-loader.js.map +1 -1
- package/v3/package.json +4 -1
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Fetch Content CLI - 5-Tier Browser Cascade with Per-Tier Timeouts
|
|
4
|
+
*
|
|
5
|
+
* Single entry point for all browser content fetching operations.
|
|
6
|
+
* Automatically cascades through tiers with 30s timeout each.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* node scripts/fetch-content.js <URL> <OUTPUT_DIR> [OPTIONS]
|
|
10
|
+
*
|
|
11
|
+
* Options:
|
|
12
|
+
* --timeout <ms> Per-tier timeout (default: 30000)
|
|
13
|
+
* --skip-tiers <list> Comma-separated tiers to skip
|
|
14
|
+
* --locale <locale> Browser locale (default: en-US)
|
|
15
|
+
*
|
|
16
|
+
* Output:
|
|
17
|
+
* - <OUTPUT_DIR>/content.html Fetched HTML content
|
|
18
|
+
* - <OUTPUT_DIR>/screenshot.png Page screenshot
|
|
19
|
+
* - <OUTPUT_DIR>/fetch-result.json Structured result with metadata
|
|
20
|
+
*
|
|
21
|
+
* Exit codes:
|
|
22
|
+
* 0 - Success
|
|
23
|
+
* 1 - All tiers failed
|
|
24
|
+
* 2 - Invalid arguments
|
|
25
|
+
*
|
|
26
|
+
* @version 1.0.0
|
|
27
|
+
* @since v3
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
const { exec, execSync, spawn } = require('child_process');
|
|
31
|
+
const { promisify } = require('util');
|
|
32
|
+
const fs = require('fs');
|
|
33
|
+
const path = require('path');
|
|
34
|
+
|
|
35
|
+
const execAsync = promisify(exec);
|
|
36
|
+
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Configuration
|
|
39
|
+
// ============================================================================
|
|
40
|
+
|
|
41
|
+
const DEFAULT_TIER_TIMEOUT = 30000; // 30 seconds per tier
|
|
42
|
+
const DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36';
|
|
43
|
+
|
|
44
|
+
const TIERS = [
|
|
45
|
+
'vibium',
|
|
46
|
+
'playwright-stealth',
|
|
47
|
+
'http-fetch',
|
|
48
|
+
'websearch-fallback'
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Argument Parsing
|
|
53
|
+
// ============================================================================
|
|
54
|
+
|
|
55
|
+
function parseArgs() {
|
|
56
|
+
const args = process.argv.slice(2);
|
|
57
|
+
|
|
58
|
+
if (args.length < 2) {
|
|
59
|
+
console.error('Usage: node fetch-content.js <URL> <OUTPUT_DIR> [OPTIONS]');
|
|
60
|
+
console.error('');
|
|
61
|
+
console.error('Options:');
|
|
62
|
+
console.error(' --timeout <ms> Per-tier timeout (default: 30000)');
|
|
63
|
+
console.error(' --skip-tiers <list> Comma-separated tiers to skip');
|
|
64
|
+
console.error(' --locale <locale> Browser locale (default: en-US)');
|
|
65
|
+
process.exit(2);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const options = {
|
|
69
|
+
url: args[0],
|
|
70
|
+
outputDir: args[1],
|
|
71
|
+
timeout: DEFAULT_TIER_TIMEOUT,
|
|
72
|
+
skipTiers: [],
|
|
73
|
+
locale: 'en-US',
|
|
74
|
+
userAgent: DEFAULT_USER_AGENT
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
for (let i = 2; i < args.length; i++) {
|
|
78
|
+
switch (args[i]) {
|
|
79
|
+
case '--timeout':
|
|
80
|
+
options.timeout = parseInt(args[++i], 10);
|
|
81
|
+
break;
|
|
82
|
+
case '--skip-tiers':
|
|
83
|
+
options.skipTiers = args[++i].split(',').map(t => t.trim());
|
|
84
|
+
break;
|
|
85
|
+
case '--locale':
|
|
86
|
+
options.locale = args[++i];
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return options;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// ============================================================================
|
|
95
|
+
// Utility Functions
|
|
96
|
+
// ============================================================================
|
|
97
|
+
|
|
98
|
+
function log(tier, message, data = {}) {
|
|
99
|
+
const entry = {
|
|
100
|
+
timestamp: new Date().toISOString(),
|
|
101
|
+
tier,
|
|
102
|
+
message,
|
|
103
|
+
...data
|
|
104
|
+
};
|
|
105
|
+
console.error(`[${entry.timestamp}] [${tier}] ${message}`);
|
|
106
|
+
return entry;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function withTimeout(promise, ms, tierName) {
|
|
110
|
+
return new Promise((resolve, reject) => {
|
|
111
|
+
const timer = setTimeout(() => {
|
|
112
|
+
reject(new Error(`${tierName} timed out after ${ms}ms`));
|
|
113
|
+
}, ms);
|
|
114
|
+
|
|
115
|
+
promise
|
|
116
|
+
.then(result => {
|
|
117
|
+
clearTimeout(timer);
|
|
118
|
+
resolve(result);
|
|
119
|
+
})
|
|
120
|
+
.catch(err => {
|
|
121
|
+
clearTimeout(timer);
|
|
122
|
+
reject(err);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// ============================================================================
|
|
128
|
+
// Tier Implementations
|
|
129
|
+
// ============================================================================
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Tier 1: Vibium MCP Browser
|
|
133
|
+
* Note: Vibium requires MCP context - skip in CLI mode
|
|
134
|
+
*/
|
|
135
|
+
async function fetchWithVibium(options) {
|
|
136
|
+
log('vibium', 'Skipping - requires MCP context');
|
|
137
|
+
throw new Error('Vibium requires MCP context, not available in CLI');
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Tier 2: Playwright + Stealth (PRIMARY for CLI)
|
|
142
|
+
*/
|
|
143
|
+
async function fetchWithPlaywrightStealth(options) {
|
|
144
|
+
log('playwright-stealth', 'Starting fetch', { url: options.url });
|
|
145
|
+
|
|
146
|
+
const workDir = path.join(options.outputDir, '.playwright-work');
|
|
147
|
+
fs.mkdirSync(workDir, { recursive: true });
|
|
148
|
+
|
|
149
|
+
// Check if playwright is installed globally or locally
|
|
150
|
+
const packageJsonPath = path.join(workDir, 'package.json');
|
|
151
|
+
if (!fs.existsSync(path.join(workDir, 'node_modules', 'playwright-extra'))) {
|
|
152
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify({ name: 'pw-fetch', type: 'commonjs' }));
|
|
153
|
+
|
|
154
|
+
log('playwright-stealth', 'Installing dependencies...');
|
|
155
|
+
try {
|
|
156
|
+
execSync('npm install playwright-extra puppeteer-extra-plugin-stealth playwright 2>/dev/null', {
|
|
157
|
+
cwd: workDir,
|
|
158
|
+
stdio: 'pipe',
|
|
159
|
+
timeout: 60000
|
|
160
|
+
});
|
|
161
|
+
} catch (e) {
|
|
162
|
+
log('playwright-stealth', 'Install warning', { error: e.message });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const scriptPath = path.join(workDir, 'fetch.js');
|
|
167
|
+
const contentPath = path.join(options.outputDir, 'content.html');
|
|
168
|
+
const screenshotPath = path.join(options.outputDir, 'screenshot.png');
|
|
169
|
+
|
|
170
|
+
const script = `
|
|
171
|
+
const { chromium } = require('playwright-extra');
|
|
172
|
+
const stealth = require('puppeteer-extra-plugin-stealth')();
|
|
173
|
+
chromium.use(stealth);
|
|
174
|
+
|
|
175
|
+
(async () => {
|
|
176
|
+
const browser = await chromium.launch({
|
|
177
|
+
headless: true,
|
|
178
|
+
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-gpu']
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
const context = await browser.newContext({
|
|
182
|
+
userAgent: ${JSON.stringify(options.userAgent)},
|
|
183
|
+
viewport: { width: 1920, height: 1080 },
|
|
184
|
+
locale: ${JSON.stringify(options.locale)}
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
const page = await context.newPage();
|
|
188
|
+
|
|
189
|
+
try {
|
|
190
|
+
await page.goto(${JSON.stringify(options.url)}, {
|
|
191
|
+
waitUntil: 'domcontentloaded',
|
|
192
|
+
timeout: ${options.timeout - 5000}
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
await page.waitForTimeout(2000);
|
|
196
|
+
|
|
197
|
+
// Dismiss cookie banners
|
|
198
|
+
const cookieSelectors = [
|
|
199
|
+
'[data-testid="consent-accept-all"]',
|
|
200
|
+
'#onetrust-accept-btn-handler',
|
|
201
|
+
'button[id*="accept"]',
|
|
202
|
+
'[class*="cookie"] button',
|
|
203
|
+
'button:has-text("Accept")',
|
|
204
|
+
'button:has-text("Acceptă")'
|
|
205
|
+
];
|
|
206
|
+
|
|
207
|
+
for (const sel of cookieSelectors) {
|
|
208
|
+
try {
|
|
209
|
+
const btn = await page.$(sel);
|
|
210
|
+
if (btn) {
|
|
211
|
+
await btn.click();
|
|
212
|
+
await page.waitForTimeout(1000);
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
} catch (e) {}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
const content = await page.content();
|
|
219
|
+
require('fs').writeFileSync(${JSON.stringify(contentPath)}, content);
|
|
220
|
+
await page.screenshot({ path: ${JSON.stringify(screenshotPath)} });
|
|
221
|
+
|
|
222
|
+
console.log(JSON.stringify({
|
|
223
|
+
success: true,
|
|
224
|
+
size: content.length,
|
|
225
|
+
title: await page.title(),
|
|
226
|
+
url: page.url()
|
|
227
|
+
}));
|
|
228
|
+
} finally {
|
|
229
|
+
await browser.close();
|
|
230
|
+
}
|
|
231
|
+
})().catch(e => {
|
|
232
|
+
console.log(JSON.stringify({ success: false, error: e.message }));
|
|
233
|
+
process.exit(1);
|
|
234
|
+
});
|
|
235
|
+
`;
|
|
236
|
+
|
|
237
|
+
fs.writeFileSync(scriptPath, script);
|
|
238
|
+
|
|
239
|
+
const { stdout } = await execAsync(`node "${scriptPath}"`, {
|
|
240
|
+
cwd: workDir,
|
|
241
|
+
timeout: options.timeout
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
const result = JSON.parse(stdout.trim());
|
|
245
|
+
if (!result.success) {
|
|
246
|
+
throw new Error(result.error);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const content = fs.readFileSync(contentPath, 'utf8');
|
|
250
|
+
|
|
251
|
+
return {
|
|
252
|
+
success: true,
|
|
253
|
+
content,
|
|
254
|
+
contentSize: content.length,
|
|
255
|
+
screenshotPath,
|
|
256
|
+
metadata: { title: result.title, finalUrl: result.url }
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Tier 3: HTTP Fetch (for simple/static sites)
|
|
262
|
+
*/
|
|
263
|
+
async function fetchWithHttp(options) {
|
|
264
|
+
log('http-fetch', 'Starting fetch', { url: options.url });
|
|
265
|
+
|
|
266
|
+
const response = await fetch(options.url, {
|
|
267
|
+
headers: {
|
|
268
|
+
'User-Agent': options.userAgent,
|
|
269
|
+
'Accept': 'text/html,application/xhtml+xml,*/*',
|
|
270
|
+
'Accept-Language': `${options.locale},en;q=0.5`
|
|
271
|
+
},
|
|
272
|
+
signal: AbortSignal.timeout(options.timeout)
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
if (!response.ok) {
|
|
276
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
const content = await response.text();
|
|
280
|
+
|
|
281
|
+
if (content.length < 500) {
|
|
282
|
+
throw new Error('HTTP fetch returned insufficient content (bot blocked?)');
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
const contentPath = path.join(options.outputDir, 'content.html');
|
|
286
|
+
fs.writeFileSync(contentPath, content);
|
|
287
|
+
|
|
288
|
+
return {
|
|
289
|
+
success: true,
|
|
290
|
+
content,
|
|
291
|
+
contentSize: content.length,
|
|
292
|
+
metadata: { statusCode: response.status }
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Tier 4: WebSearch Fallback (research-based, degraded mode)
|
|
298
|
+
*/
|
|
299
|
+
async function fetchWithWebSearch(options) {
|
|
300
|
+
log('websearch-fallback', 'Creating research-based content', { url: options.url });
|
|
301
|
+
|
|
302
|
+
// This tier creates a placeholder indicating manual research is needed
|
|
303
|
+
const urlObj = new URL(options.url);
|
|
304
|
+
const domain = urlObj.hostname;
|
|
305
|
+
|
|
306
|
+
const researchContent = `
|
|
307
|
+
<!DOCTYPE html>
|
|
308
|
+
<html>
|
|
309
|
+
<head>
|
|
310
|
+
<title>Research Required: ${options.url}</title>
|
|
311
|
+
<meta name="fetch-method" content="websearch-fallback">
|
|
312
|
+
<meta name="fetch-status" content="degraded">
|
|
313
|
+
<meta name="original-url" content="${options.url}">
|
|
314
|
+
<meta name="fetch-date" content="${new Date().toISOString()}">
|
|
315
|
+
</head>
|
|
316
|
+
<body>
|
|
317
|
+
<h1>Manual Research Required</h1>
|
|
318
|
+
<p><strong>Status:</strong> All automated fetch tiers failed.</p>
|
|
319
|
+
<p><strong>Target URL:</strong> ${options.url}</p>
|
|
320
|
+
<p><strong>Domain:</strong> ${domain}</p>
|
|
321
|
+
<hr>
|
|
322
|
+
<h2>Recommended Actions:</h2>
|
|
323
|
+
<ol>
|
|
324
|
+
<li>Use WebSearch tool to research "${domain} features functionality"</li>
|
|
325
|
+
<li>Check if site requires authentication or has strict bot protection</li>
|
|
326
|
+
<li>Consider manual browser inspection</li>
|
|
327
|
+
</ol>
|
|
328
|
+
<p><em>This is a degraded fallback. Analysis based on this content will be limited.</em></p>
|
|
329
|
+
</body>
|
|
330
|
+
</html>
|
|
331
|
+
`;
|
|
332
|
+
|
|
333
|
+
const contentPath = path.join(options.outputDir, 'content.html');
|
|
334
|
+
fs.writeFileSync(contentPath, researchContent);
|
|
335
|
+
|
|
336
|
+
return {
|
|
337
|
+
success: true,
|
|
338
|
+
content: researchContent,
|
|
339
|
+
contentSize: researchContent.length,
|
|
340
|
+
metadata: {
|
|
341
|
+
note: 'Degraded mode - research-based content',
|
|
342
|
+
manualResearchRequired: true
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// ============================================================================
|
|
348
|
+
// Tier Dispatcher
|
|
349
|
+
// ============================================================================
|
|
350
|
+
|
|
351
|
+
const TIER_HANDLERS = {
|
|
352
|
+
'vibium': fetchWithVibium,
|
|
353
|
+
'playwright-stealth': fetchWithPlaywrightStealth,
|
|
354
|
+
'http-fetch': fetchWithHttp,
|
|
355
|
+
'websearch-fallback': fetchWithWebSearch
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
// ============================================================================
|
|
359
|
+
// Main Cascade Logic
|
|
360
|
+
// ============================================================================
|
|
361
|
+
|
|
362
|
+
async function fetchWithCascade(options) {
|
|
363
|
+
fs.mkdirSync(options.outputDir, { recursive: true });
|
|
364
|
+
|
|
365
|
+
const result = {
|
|
366
|
+
success: false,
|
|
367
|
+
url: options.url,
|
|
368
|
+
tier: null,
|
|
369
|
+
status: 'failed',
|
|
370
|
+
content: null,
|
|
371
|
+
contentSize: 0,
|
|
372
|
+
screenshotPath: null,
|
|
373
|
+
tiersAttempted: [],
|
|
374
|
+
tierErrors: {},
|
|
375
|
+
metadata: {}
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
const tiersToTry = TIERS.filter(t => !options.skipTiers.includes(t));
|
|
379
|
+
|
|
380
|
+
for (const tier of tiersToTry) {
|
|
381
|
+
result.tiersAttempted.push(tier);
|
|
382
|
+
log(tier, `Attempting fetch (timeout: ${options.timeout}ms)`);
|
|
383
|
+
|
|
384
|
+
try {
|
|
385
|
+
const handler = TIER_HANDLERS[tier];
|
|
386
|
+
const tierResult = await withTimeout(
|
|
387
|
+
handler(options),
|
|
388
|
+
options.timeout,
|
|
389
|
+
tier
|
|
390
|
+
);
|
|
391
|
+
|
|
392
|
+
if (tierResult.success && tierResult.content) {
|
|
393
|
+
result.success = true;
|
|
394
|
+
result.tier = tier;
|
|
395
|
+
result.status = tier === 'websearch-fallback' ? 'degraded' : 'success';
|
|
396
|
+
result.content = tierResult.content;
|
|
397
|
+
result.contentSize = tierResult.contentSize;
|
|
398
|
+
result.screenshotPath = tierResult.screenshotPath || null;
|
|
399
|
+
result.metadata = tierResult.metadata || {};
|
|
400
|
+
|
|
401
|
+
log(tier, `SUCCESS: ${result.contentSize} bytes`);
|
|
402
|
+
break;
|
|
403
|
+
}
|
|
404
|
+
} catch (error) {
|
|
405
|
+
const errorMsg = error.message || String(error);
|
|
406
|
+
result.tierErrors[tier] = errorMsg;
|
|
407
|
+
log(tier, `FAILED: ${errorMsg}`);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// Save result metadata
|
|
412
|
+
const resultPath = path.join(options.outputDir, 'fetch-result.json');
|
|
413
|
+
const resultData = { ...result };
|
|
414
|
+
delete resultData.content; // Don't duplicate content in JSON
|
|
415
|
+
fs.writeFileSync(resultPath, JSON.stringify(resultData, null, 2));
|
|
416
|
+
|
|
417
|
+
return result;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// ============================================================================
|
|
421
|
+
// Entry Point
|
|
422
|
+
// ============================================================================
|
|
423
|
+
|
|
424
|
+
async function main() {
|
|
425
|
+
const options = parseArgs();
|
|
426
|
+
|
|
427
|
+
console.error('');
|
|
428
|
+
console.error('╔════════════════════════════════════════════════════════════════╗');
|
|
429
|
+
console.error('║ FETCH CONTENT - 5-TIER CASCADE ║');
|
|
430
|
+
console.error('╠════════════════════════════════════════════════════════════════╣');
|
|
431
|
+
console.error(`║ URL: ${options.url.substring(0, 54).padEnd(54)} ║`);
|
|
432
|
+
console.error(`║ Output: ${options.outputDir.substring(0, 51).padEnd(51)} ║`);
|
|
433
|
+
console.error(`║ Timeout per tier: ${options.timeout}ms ║`);
|
|
434
|
+
console.error('╚════════════════════════════════════════════════════════════════╝');
|
|
435
|
+
console.error('');
|
|
436
|
+
|
|
437
|
+
try {
|
|
438
|
+
const result = await fetchWithCascade(options);
|
|
439
|
+
|
|
440
|
+
// Output final result to stdout (for programmatic use)
|
|
441
|
+
console.log(JSON.stringify({
|
|
442
|
+
success: result.success,
|
|
443
|
+
tier: result.tier,
|
|
444
|
+
status: result.status,
|
|
445
|
+
contentSize: result.contentSize,
|
|
446
|
+
screenshotPath: result.screenshotPath,
|
|
447
|
+
contentPath: path.join(options.outputDir, 'content.html'),
|
|
448
|
+
resultPath: path.join(options.outputDir, 'fetch-result.json'),
|
|
449
|
+
tiersAttempted: result.tiersAttempted,
|
|
450
|
+
tierErrors: result.tierErrors
|
|
451
|
+
}, null, 2));
|
|
452
|
+
|
|
453
|
+
process.exit(result.success ? 0 : 1);
|
|
454
|
+
} catch (error) {
|
|
455
|
+
console.error(`Fatal error: ${error.message}`);
|
|
456
|
+
process.exit(1);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
main();
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
-- Merge V3 unique data to Root database
|
|
2
|
+
-- Run with: sqlite3 .agentic-qe/memory.db < scripts/merge-v3-to-root.sql
|
|
3
|
+
|
|
4
|
+
-- Attach V3 database
|
|
5
|
+
ATTACH DATABASE 'v3/.agentic-qe/memory.db' AS v3db;
|
|
6
|
+
|
|
7
|
+
-- ============================================================================
|
|
8
|
+
-- Merge SONA Patterns (schema compatible)
|
|
9
|
+
-- ============================================================================
|
|
10
|
+
INSERT OR IGNORE INTO sona_patterns
|
|
11
|
+
SELECT * FROM v3db.sona_patterns
|
|
12
|
+
WHERE id NOT IN (SELECT id FROM sona_patterns);
|
|
13
|
+
|
|
14
|
+
-- ============================================================================
|
|
15
|
+
-- Merge GOAP Actions (explicit columns due to schema difference)
|
|
16
|
+
-- V3 has extra 'qe_domain' column, root has 'duration_estimate' vs 'estimated_duration_ms'
|
|
17
|
+
-- ============================================================================
|
|
18
|
+
INSERT OR IGNORE INTO goap_actions (
|
|
19
|
+
id, name, description, agent_type, preconditions, effects,
|
|
20
|
+
cost, duration_estimate, success_rate, execution_count, category,
|
|
21
|
+
created_at, updated_at
|
|
22
|
+
)
|
|
23
|
+
SELECT
|
|
24
|
+
id, name, description, agent_type, preconditions, effects,
|
|
25
|
+
cost, estimated_duration_ms, success_rate, execution_count, category,
|
|
26
|
+
created_at, updated_at
|
|
27
|
+
FROM v3db.goap_actions
|
|
28
|
+
WHERE id NOT IN (SELECT id FROM goap_actions);
|
|
29
|
+
|
|
30
|
+
-- ============================================================================
|
|
31
|
+
-- Merge KV Store entries (schema compatible - both have same columns)
|
|
32
|
+
-- ============================================================================
|
|
33
|
+
INSERT OR IGNORE INTO kv_store (key, namespace, value, created_at, expires_at)
|
|
34
|
+
SELECT key, namespace, value, created_at, expires_at
|
|
35
|
+
FROM v3db.kv_store
|
|
36
|
+
WHERE namespace || ':' || key NOT IN (SELECT namespace || ':' || key FROM kv_store);
|
|
37
|
+
|
|
38
|
+
-- ============================================================================
|
|
39
|
+
-- Verify merge counts
|
|
40
|
+
-- ============================================================================
|
|
41
|
+
SELECT 'sona_patterns' as table_name, COUNT(*) as count FROM sona_patterns
|
|
42
|
+
UNION ALL
|
|
43
|
+
SELECT 'goap_actions', COUNT(*) FROM goap_actions
|
|
44
|
+
UNION ALL
|
|
45
|
+
SELECT 'kv_store', COUNT(*) FROM kv_store;
|
|
46
|
+
|
|
47
|
+
-- Detach
|
|
48
|
+
DETACH DATABASE v3db;
|
package/v3/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,172 @@ All notable changes to Agentic QE will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.3.5] - 2026-01-30
|
|
9
|
+
|
|
10
|
+
### 🎯 Highlights
|
|
11
|
+
|
|
12
|
+
**QE Queen MCP-Powered Orchestration** - Complete rewrite of `qe-queen-coordinator` to use MCP tools for real fleet coordination. Queen now actually spawns agents via `mcp__agentic-qe__agent_spawn`, monitors task completion, and stores learnings - instead of just describing what agents would do.
|
|
13
|
+
|
|
14
|
+
**Unified Database Architecture** - All databases consolidated to single `{project-root}/.agentic-qe/memory.db` with automatic project root detection. Eliminates scattered database files and ensures consistent data storage.
|
|
15
|
+
|
|
16
|
+
**252 New Tests for Coordination Module** - Comprehensive test coverage for previously untested consensus providers, protocols, services, and cross-domain router.
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
#### QE Queen MCP-Powered Orchestration (v3.1.0)
|
|
21
|
+
- **Mandatory 10-phase execution protocol** - fleet_init → memory_store
|
|
22
|
+
- **Real agent spawning** via `mcp__agentic-qe__agent_spawn`
|
|
23
|
+
- **Task monitoring loop** - polls `task_list` until completion
|
|
24
|
+
- **Learning persistence** - stores patterns after each orchestration
|
|
25
|
+
- **Task-to-domain routing table** - automatic agent selection by task type
|
|
26
|
+
- **MCP tools reference** - fleet, agent, task, QE, and memory operations
|
|
27
|
+
- **Execution examples** - comprehensive and coverage-specific
|
|
28
|
+
|
|
29
|
+
#### Unified Database Architecture
|
|
30
|
+
- **Project root detection** - finds nearest package.json/git root
|
|
31
|
+
- **Single memory.db** - all tables in one SQLite database
|
|
32
|
+
- **Automatic migration** - moves data from scattered locations
|
|
33
|
+
- **Cross-phase memory hooks** - auto-installed on `aqe init`
|
|
34
|
+
|
|
35
|
+
#### New Test Coverage (252 tests, all passing)
|
|
36
|
+
- **consensus/providers/** - 6 provider test files
|
|
37
|
+
- `claude-provider.test.ts` (366 lines)
|
|
38
|
+
- `gemini-provider.test.ts` (391 lines)
|
|
39
|
+
- `native-learning-provider.test.ts` (500 lines)
|
|
40
|
+
- `ollama-provider.test.ts` (440 lines)
|
|
41
|
+
- `openai-provider.test.ts` (373 lines)
|
|
42
|
+
- `openrouter-provider.test.ts` (393 lines)
|
|
43
|
+
- **protocols/** - 4 protocol test files
|
|
44
|
+
- `defect-investigation.test.ts` (618 lines)
|
|
45
|
+
- `learning-consolidation.test.ts` (594 lines)
|
|
46
|
+
- `morning-sync.test.ts` (853 lines)
|
|
47
|
+
- `quality-gate.test.ts` (727 lines)
|
|
48
|
+
- **services/** - 2 service test files
|
|
49
|
+
- `task-audit-logger.test.ts` (611 lines)
|
|
50
|
+
- `index.test.ts` (103 lines)
|
|
51
|
+
- **cross-domain-router.test.ts** (686 lines)
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
#### QE Queen Coordinator
|
|
56
|
+
- Upgraded from v3.0.0 to v3.1.0
|
|
57
|
+
- Now uses MCP tools instead of descriptions
|
|
58
|
+
- Added prohibited behaviors section
|
|
59
|
+
- Added domain topology diagram
|
|
60
|
+
|
|
61
|
+
#### CLI Hook Commands
|
|
62
|
+
- Updated to use `aqe` binary instead of `npx`
|
|
63
|
+
- Implemented missing CLI hook commands for Claude Code integration
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
|
|
67
|
+
- **CI timeout** - Increased Fast Tests timeout from 5m to 10m
|
|
68
|
+
- **Workflow permissions** - Added permissions block to sauce-demo-e2e workflow
|
|
69
|
+
- **Hook commands** - Fixed CLI hook commands to use correct binary
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## [3.3.4] - 2026-01-29
|
|
74
|
+
|
|
75
|
+
### 🎯 Highlights
|
|
76
|
+
|
|
77
|
+
**QCSD Ideation Phase Complete** - Full Quality Conscious Software Delivery (QCSD) Ideation phase implementation with HTSM v6.3 quality criteria analysis, SFDIPOT product factors assessment, and cross-phase memory feedback loops.
|
|
78
|
+
|
|
79
|
+
**Cross-Phase Memory System** - New persistent memory architecture enabling automated learning between QCSD phases (Production→Ideation, Production→Grooming, CI/CD→Development, Development→Grooming).
|
|
80
|
+
|
|
81
|
+
**Comprehensive Test Coverage** - 358 files changed with 83,990+ lines of new tests across all 12 domains, kernel, MCP handlers, routing, and workers.
|
|
82
|
+
|
|
83
|
+
### Added
|
|
84
|
+
|
|
85
|
+
#### QCSD Ideation Phase Agents
|
|
86
|
+
- **qe-quality-criteria-recommender** - HTSM v6.3 quality criteria analysis with 10 categories
|
|
87
|
+
- **qe-product-factors-assessor** - SFDIPOT framework with 7 factors, 37 subcategories
|
|
88
|
+
- **qe-risk-assessor** - Multi-factor risk scoring with mitigation recommendations
|
|
89
|
+
- **qe-test-idea-rewriter** - Transform passive "Verify X" patterns to active test actions
|
|
90
|
+
|
|
91
|
+
#### Cross-Phase Memory System
|
|
92
|
+
- **CrossPhaseMemoryService** - File-based persistence for QCSD feedback loops
|
|
93
|
+
- **Cross-phase MCP handlers** - 8 new tools for signal storage/retrieval
|
|
94
|
+
- **Hook executor** - Automatic trigger of cross-phase hooks on agent completion
|
|
95
|
+
- **4 feedback loops** - Strategic, Tactical, Operational, Quality Criteria
|
|
96
|
+
|
|
97
|
+
#### New Skills
|
|
98
|
+
- **a11y-ally** - Comprehensive WCAG accessibility audit with video caption generation
|
|
99
|
+
- **qcsd-ideation-swarm** - Multi-agent swarm for QCSD Ideation phase
|
|
100
|
+
- **skills-manifest.json** - Centralized skill registration
|
|
101
|
+
|
|
102
|
+
#### Comprehensive Test Coverage (83,990+ lines)
|
|
103
|
+
- **Kernel tests** - unified-memory, hybrid-backend, kernel, plugin-loader
|
|
104
|
+
- **MCP handler tests** - All domain handlers, handler-factory, task-handlers
|
|
105
|
+
- **Domain tests** - All 12 domain plugins with coordinator tests
|
|
106
|
+
- **Learning tests** - pattern-store, experience-capture, v2-to-v3-migration
|
|
107
|
+
- **Routing tests** - tiny-dancer-router, task-classifier, routing-config
|
|
108
|
+
- **Sync tests** - claude-flow-bridge, sync-agent, json/sqlite readers
|
|
109
|
+
- **Worker tests** - All 10 background workers
|
|
110
|
+
|
|
111
|
+
#### E2E Test Framework
|
|
112
|
+
- Moved e2e tests to v3/tests/e2e/
|
|
113
|
+
- Sauce Demo test suite with accessibility, cart, checkout, security specs
|
|
114
|
+
- Page Object Model with BasePage, CartPage, CheckoutPage, etc.
|
|
115
|
+
|
|
116
|
+
#### Documentation Updates
|
|
117
|
+
- Updated agent catalog with QCSD Ideation agents
|
|
118
|
+
- Added HTSM v6.3 quality categories reference
|
|
119
|
+
- Added SFDIPOT framework documentation
|
|
120
|
+
- Updated skill counts: 61 → 63 QE Skills
|
|
121
|
+
- Updated agent counts with new QCSD agents
|
|
122
|
+
|
|
123
|
+
### Changed
|
|
124
|
+
|
|
125
|
+
#### Handler Factory Migration
|
|
126
|
+
- All 11 domain handlers now use centralized handler-factory.ts
|
|
127
|
+
- Experience capture middleware wraps all domain operations
|
|
128
|
+
- Consistent error handling across handlers
|
|
129
|
+
|
|
130
|
+
#### Security Scanner Refactoring
|
|
131
|
+
- Split monolithic security-scanner.ts into modular components
|
|
132
|
+
- New scanner-orchestrator.ts for coordinating SAST/DAST scans
|
|
133
|
+
- Separate sast-scanner.ts and dast-scanner.ts modules
|
|
134
|
+
- security-patterns.ts for pattern definitions
|
|
135
|
+
|
|
136
|
+
#### E2E Runner Modularization
|
|
137
|
+
- Split e2e-runner.ts into 9 focused modules
|
|
138
|
+
- browser-orchestrator.ts - Browser session management
|
|
139
|
+
- step-executors.ts - Step execution logic
|
|
140
|
+
- assertion-handlers.ts - Assertion processing
|
|
141
|
+
- result-collector.ts - Test result aggregation
|
|
142
|
+
|
|
143
|
+
### Fixed
|
|
144
|
+
|
|
145
|
+
#### Test Timeout Fixes
|
|
146
|
+
- Fixed 6 timeout failures in security-compliance/coordinator.test.ts
|
|
147
|
+
- Added proper class-based mocks for SecurityScannerService
|
|
148
|
+
- Added mocks for SecurityAuditorService and ComplianceValidatorService
|
|
149
|
+
|
|
150
|
+
#### TypeScript Compilation
|
|
151
|
+
- Fixed all TypeScript errors from PR #215 merge
|
|
152
|
+
- Fixed history.length on unknown type casting
|
|
153
|
+
- Fixed performTask payload access patterns
|
|
154
|
+
- Fixed Map iteration with Array.from()
|
|
155
|
+
|
|
156
|
+
#### Architecture Cleanup
|
|
157
|
+
- Removed wrong-pattern TypeScript agent classes (QualityCriteriaRecommenderAgent, RiskAssessorAgent)
|
|
158
|
+
- Removed orphaned QCSD agent tests
|
|
159
|
+
- Moved n8n-validator to v3/packages/
|
|
160
|
+
|
|
161
|
+
### Security
|
|
162
|
+
|
|
163
|
+
- SSRF protection recommendations for DAST scanner (private IP blocking)
|
|
164
|
+
- Path traversal edge case fix recommendation (startsWith + path.sep)
|
|
165
|
+
- npm audit: 0 vulnerabilities
|
|
166
|
+
|
|
167
|
+
### Deprecated
|
|
168
|
+
|
|
169
|
+
- Root-level tests/e2e/ directory (moved to v3/tests/e2e/)
|
|
170
|
+
- Root-level src/agents/ TypeScript classes (use .claude/agents/v3/*.md instead)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
8
174
|
## [3.3.3] - 2026-01-27
|
|
9
175
|
|
|
10
176
|
### 🎯 Highlights
|