agentic-qe 3.3.3 → 3.3.4
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-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/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/demo-warmup.sh +45 -0
- package/scripts/fetch-content.js +460 -0
- package/v3/CHANGELOG.md +101 -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-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 +27611 -23175
- 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/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 +74 -11
- 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/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/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/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.map +1 -1
- package/v3/dist/kernel/unified-memory.js +14 -11
- 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/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/sqlite-persistence.d.ts +1 -1
- package/v3/dist/learning/sqlite-persistence.d.ts.map +1 -1
- package/v3/dist/learning/sqlite-persistence.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 +11334 -7497
- 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.map +1 -1
- package/v3/dist/sync/claude-flow-bridge.js +6 -4
- 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/readers/sqlite-reader.d.ts.map +1 -1
- package/v3/dist/sync/readers/sqlite-reader.js +3 -2
- 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
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { Result } from '../../shared/types';
|
|
15
15
|
import type { DomainName } from '../../integrations/rl-suite/interfaces';
|
|
16
16
|
import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces';
|
|
17
|
-
import { QualityAssessmentAPI, GateEvaluationRequest, GateResult, QualityAnalysisRequest, QualityReport, DeploymentRequest, DeploymentAdvice, ComplexityRequest, ComplexityReport } from './interfaces';
|
|
17
|
+
import { QualityAssessmentAPI, GateEvaluationRequest, GateResult, QualityAnalysisRequest, QualityReport, DeploymentRequest, DeploymentAdvice, ComplexityRequest, ComplexityReport, QualityMetrics } from './interfaces';
|
|
18
18
|
import { ClaimVerifierService } from '../../agents/claim-verifier/index.js';
|
|
19
19
|
import { QueenMinCutBridge } from '../../coordination/mincut/queen-integration';
|
|
20
20
|
import type { ConsensusStats } from '../../coordination/consensus';
|
|
@@ -209,6 +209,95 @@ export declare class QualityAssessmentCoordinator implements IQualityAssessmentC
|
|
|
209
209
|
* Analyze code complexity
|
|
210
210
|
*/
|
|
211
211
|
analyzeComplexity(request: ComplexityRequest): Promise<Result<ComplexityReport, Error>>;
|
|
212
|
+
/**
|
|
213
|
+
* Generate a quality report
|
|
214
|
+
* @param options - Report generation options
|
|
215
|
+
* @returns Result containing the generated report content
|
|
216
|
+
*/
|
|
217
|
+
generateReport(options: {
|
|
218
|
+
format: 'json' | 'html' | 'markdown';
|
|
219
|
+
includeRecommendations?: boolean;
|
|
220
|
+
}): Promise<Result<{
|
|
221
|
+
content: string;
|
|
222
|
+
format: string;
|
|
223
|
+
}, Error>>;
|
|
224
|
+
/**
|
|
225
|
+
* Get quality dashboard overview
|
|
226
|
+
* @returns Result containing dashboard data
|
|
227
|
+
*/
|
|
228
|
+
getQualityDashboard(): Promise<Result<{
|
|
229
|
+
overallScore: number;
|
|
230
|
+
metrics: QualityMetrics;
|
|
231
|
+
trends: Record<string, number>;
|
|
232
|
+
}, Error>>;
|
|
233
|
+
/**
|
|
234
|
+
* Analyze project risks
|
|
235
|
+
* @param options - Risk analysis options
|
|
236
|
+
* @returns Result containing identified risks
|
|
237
|
+
*/
|
|
238
|
+
analyzeRisks(options: {
|
|
239
|
+
scope: 'project' | 'module' | 'file';
|
|
240
|
+
includeSecurityRisks?: boolean;
|
|
241
|
+
}): Promise<Result<{
|
|
242
|
+
risks: Array<{
|
|
243
|
+
id: string;
|
|
244
|
+
severity: string;
|
|
245
|
+
description: string;
|
|
246
|
+
category: string;
|
|
247
|
+
}>;
|
|
248
|
+
overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
249
|
+
}, Error>>;
|
|
250
|
+
/**
|
|
251
|
+
* Evaluate a quality gate (simplified API)
|
|
252
|
+
* @param options - Quality gate evaluation options
|
|
253
|
+
* @returns Result containing gate evaluation
|
|
254
|
+
*/
|
|
255
|
+
evaluateQualityGate(options: {
|
|
256
|
+
gateId: string;
|
|
257
|
+
metrics: Partial<QualityMetrics>;
|
|
258
|
+
}): Promise<Result<{
|
|
259
|
+
passed: boolean;
|
|
260
|
+
score: number;
|
|
261
|
+
violations: string[];
|
|
262
|
+
}, Error>>;
|
|
263
|
+
/**
|
|
264
|
+
* Assess deployment readiness
|
|
265
|
+
* @param options - Deployment readiness options
|
|
266
|
+
* @returns Result containing readiness assessment
|
|
267
|
+
*/
|
|
268
|
+
assessDeploymentReadiness(options: {
|
|
269
|
+
environment: 'development' | 'staging' | 'production';
|
|
270
|
+
changeSet: string[];
|
|
271
|
+
}): Promise<Result<{
|
|
272
|
+
ready: boolean;
|
|
273
|
+
risks: Array<{
|
|
274
|
+
id: string;
|
|
275
|
+
severity: string;
|
|
276
|
+
description: string;
|
|
277
|
+
}>;
|
|
278
|
+
score: number;
|
|
279
|
+
}, Error>>;
|
|
280
|
+
/**
|
|
281
|
+
* Analyze technical debt
|
|
282
|
+
* @param options - Technical debt analysis options
|
|
283
|
+
* @returns Result containing debt analysis
|
|
284
|
+
*/
|
|
285
|
+
analyzeTechnicalDebt(options: {
|
|
286
|
+
projectPath: string;
|
|
287
|
+
includeCodeSmells?: boolean;
|
|
288
|
+
}): Promise<Result<{
|
|
289
|
+
totalDebt: number;
|
|
290
|
+
items: Array<{
|
|
291
|
+
file: string;
|
|
292
|
+
type: string;
|
|
293
|
+
effort: number;
|
|
294
|
+
description: string;
|
|
295
|
+
}>;
|
|
296
|
+
debtRatio: number;
|
|
297
|
+
}, Error>>;
|
|
298
|
+
private generateRecommendations;
|
|
299
|
+
private formatAsHtml;
|
|
300
|
+
private formatAsMarkdown;
|
|
212
301
|
private spawnQualityGateAgent;
|
|
213
302
|
private spawnQualityAnalyzerAgent;
|
|
214
303
|
private spawnDeploymentAdvisorAgent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/domains/quality-assessment/coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,MAAM,EAAwB,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,gBAAgB,EAEjB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/domains/quality-assessment/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -648,6 +648,316 @@ export class QualityAssessmentCoordinator {
|
|
|
648
648
|
return err(error instanceof Error ? error : new Error(String(error)));
|
|
649
649
|
}
|
|
650
650
|
}
|
|
651
|
+
/**
|
|
652
|
+
* Generate a quality report
|
|
653
|
+
* @param options - Report generation options
|
|
654
|
+
* @returns Result containing the generated report content
|
|
655
|
+
*/
|
|
656
|
+
async generateReport(options) {
|
|
657
|
+
try {
|
|
658
|
+
// Collect current quality metrics from memory or use defaults
|
|
659
|
+
const storedMetrics = await this.memory.get('quality-assessment:current-metrics');
|
|
660
|
+
const metrics = storedMetrics ?? {
|
|
661
|
+
coverage: 80,
|
|
662
|
+
testsPassing: 95,
|
|
663
|
+
criticalBugs: 0,
|
|
664
|
+
codeSmells: 5,
|
|
665
|
+
securityVulnerabilities: 0,
|
|
666
|
+
technicalDebt: 10,
|
|
667
|
+
duplications: 3,
|
|
668
|
+
};
|
|
669
|
+
// Build report content based on format
|
|
670
|
+
const reportData = {
|
|
671
|
+
timestamp: new Date().toISOString(),
|
|
672
|
+
metrics,
|
|
673
|
+
recommendations: options.includeRecommendations
|
|
674
|
+
? this.generateRecommendations(metrics)
|
|
675
|
+
: undefined,
|
|
676
|
+
};
|
|
677
|
+
let content;
|
|
678
|
+
switch (options.format) {
|
|
679
|
+
case 'json':
|
|
680
|
+
content = JSON.stringify(reportData, null, 2);
|
|
681
|
+
break;
|
|
682
|
+
case 'html':
|
|
683
|
+
content = this.formatAsHtml(reportData);
|
|
684
|
+
break;
|
|
685
|
+
case 'markdown':
|
|
686
|
+
content = this.formatAsMarkdown(reportData);
|
|
687
|
+
break;
|
|
688
|
+
default:
|
|
689
|
+
content = JSON.stringify(reportData, null, 2);
|
|
690
|
+
}
|
|
691
|
+
return ok({ content, format: options.format });
|
|
692
|
+
}
|
|
693
|
+
catch (error) {
|
|
694
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
/**
|
|
698
|
+
* Get quality dashboard overview
|
|
699
|
+
* @returns Result containing dashboard data
|
|
700
|
+
*/
|
|
701
|
+
async getQualityDashboard() {
|
|
702
|
+
try {
|
|
703
|
+
const storedMetrics = await this.memory.get('quality-assessment:current-metrics');
|
|
704
|
+
const metrics = storedMetrics ?? {
|
|
705
|
+
coverage: 80,
|
|
706
|
+
testsPassing: 95,
|
|
707
|
+
criticalBugs: 0,
|
|
708
|
+
codeSmells: 5,
|
|
709
|
+
securityVulnerabilities: 0,
|
|
710
|
+
technicalDebt: 10,
|
|
711
|
+
duplications: 3,
|
|
712
|
+
};
|
|
713
|
+
// Calculate overall score (weighted average)
|
|
714
|
+
const overallScore = Math.round((metrics.coverage * 0.3) +
|
|
715
|
+
(metrics.testsPassing * 0.3) +
|
|
716
|
+
((100 - Math.min(100, metrics.codeSmells)) * 0.2) +
|
|
717
|
+
((100 - Math.min(100, metrics.securityVulnerabilities * 10)) * 0.2));
|
|
718
|
+
return ok({
|
|
719
|
+
overallScore,
|
|
720
|
+
metrics,
|
|
721
|
+
trends: {
|
|
722
|
+
coverage: 0,
|
|
723
|
+
quality: 0,
|
|
724
|
+
security: 0,
|
|
725
|
+
},
|
|
726
|
+
});
|
|
727
|
+
}
|
|
728
|
+
catch (error) {
|
|
729
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
/**
|
|
733
|
+
* Analyze project risks
|
|
734
|
+
* @param options - Risk analysis options
|
|
735
|
+
* @returns Result containing identified risks
|
|
736
|
+
*/
|
|
737
|
+
async analyzeRisks(options) {
|
|
738
|
+
try {
|
|
739
|
+
const storedMetrics = await this.memory.get('quality-assessment:current-metrics');
|
|
740
|
+
const metrics = storedMetrics ?? {
|
|
741
|
+
coverage: 80,
|
|
742
|
+
testsPassing: 95,
|
|
743
|
+
criticalBugs: 0,
|
|
744
|
+
codeSmells: 5,
|
|
745
|
+
securityVulnerabilities: 0,
|
|
746
|
+
technicalDebt: 10,
|
|
747
|
+
duplications: 3,
|
|
748
|
+
};
|
|
749
|
+
const risks = [];
|
|
750
|
+
// Check coverage risk
|
|
751
|
+
if (metrics.coverage < 50) {
|
|
752
|
+
risks.push({
|
|
753
|
+
id: 'risk-coverage-critical',
|
|
754
|
+
severity: 'critical',
|
|
755
|
+
description: 'Code coverage is critically low',
|
|
756
|
+
category: 'quality',
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
else if (metrics.coverage < 70) {
|
|
760
|
+
risks.push({
|
|
761
|
+
id: 'risk-coverage-high',
|
|
762
|
+
severity: 'high',
|
|
763
|
+
description: 'Code coverage is below recommended threshold',
|
|
764
|
+
category: 'quality',
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
// Check security risks
|
|
768
|
+
if (options.includeSecurityRisks && metrics.securityVulnerabilities > 0) {
|
|
769
|
+
risks.push({
|
|
770
|
+
id: 'risk-security',
|
|
771
|
+
severity: metrics.securityVulnerabilities > 5 ? 'critical' : 'high',
|
|
772
|
+
description: `${metrics.securityVulnerabilities} security vulnerabilities detected`,
|
|
773
|
+
category: 'security',
|
|
774
|
+
});
|
|
775
|
+
}
|
|
776
|
+
// Check technical debt
|
|
777
|
+
if (metrics.technicalDebt > 40) {
|
|
778
|
+
risks.push({
|
|
779
|
+
id: 'risk-debt-critical',
|
|
780
|
+
severity: 'high',
|
|
781
|
+
description: 'Technical debt is critically high',
|
|
782
|
+
category: 'maintainability',
|
|
783
|
+
});
|
|
784
|
+
}
|
|
785
|
+
// Determine overall risk level
|
|
786
|
+
const criticalCount = risks.filter((r) => r.severity === 'critical').length;
|
|
787
|
+
const highCount = risks.filter((r) => r.severity === 'high').length;
|
|
788
|
+
let overallRiskLevel = 'low';
|
|
789
|
+
if (criticalCount > 0) {
|
|
790
|
+
overallRiskLevel = 'critical';
|
|
791
|
+
}
|
|
792
|
+
else if (highCount > 1) {
|
|
793
|
+
overallRiskLevel = 'high';
|
|
794
|
+
}
|
|
795
|
+
else if (highCount > 0 || risks.length > 2) {
|
|
796
|
+
overallRiskLevel = 'medium';
|
|
797
|
+
}
|
|
798
|
+
return ok({ risks, overallRiskLevel });
|
|
799
|
+
}
|
|
800
|
+
catch (error) {
|
|
801
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
/**
|
|
805
|
+
* Evaluate a quality gate (simplified API)
|
|
806
|
+
* @param options - Quality gate evaluation options
|
|
807
|
+
* @returns Result containing gate evaluation
|
|
808
|
+
*/
|
|
809
|
+
async evaluateQualityGate(options) {
|
|
810
|
+
// Build full metrics with defaults
|
|
811
|
+
const fullMetrics = {
|
|
812
|
+
coverage: options.metrics.coverage ?? 80,
|
|
813
|
+
testsPassing: options.metrics.testsPassing ?? 95,
|
|
814
|
+
criticalBugs: options.metrics.criticalBugs ?? 0,
|
|
815
|
+
codeSmells: options.metrics.codeSmells ?? 5,
|
|
816
|
+
securityVulnerabilities: options.metrics.securityVulnerabilities ?? 0,
|
|
817
|
+
technicalDebt: options.metrics.technicalDebt ?? 10,
|
|
818
|
+
duplications: options.metrics.duplications ?? 3,
|
|
819
|
+
};
|
|
820
|
+
// Build evaluation request
|
|
821
|
+
const request = {
|
|
822
|
+
gateName: options.gateId,
|
|
823
|
+
metrics: fullMetrics,
|
|
824
|
+
thresholds: {
|
|
825
|
+
coverage: { min: 70 },
|
|
826
|
+
testsPassing: { min: 90 },
|
|
827
|
+
criticalBugs: { max: 0 },
|
|
828
|
+
codeSmells: { max: 20 },
|
|
829
|
+
securityVulnerabilities: { max: 0 },
|
|
830
|
+
},
|
|
831
|
+
};
|
|
832
|
+
// Delegate to existing evaluateGate method
|
|
833
|
+
const result = await this.evaluateGate(request);
|
|
834
|
+
if (!result.success) {
|
|
835
|
+
return err(result.error);
|
|
836
|
+
}
|
|
837
|
+
return ok({
|
|
838
|
+
passed: result.value.passed,
|
|
839
|
+
score: result.value.overallScore,
|
|
840
|
+
violations: result.value.failedChecks,
|
|
841
|
+
});
|
|
842
|
+
}
|
|
843
|
+
/**
|
|
844
|
+
* Assess deployment readiness
|
|
845
|
+
* @param options - Deployment readiness options
|
|
846
|
+
* @returns Result containing readiness assessment
|
|
847
|
+
*/
|
|
848
|
+
async assessDeploymentReadiness(options) {
|
|
849
|
+
try {
|
|
850
|
+
const storedMetrics = await this.memory.get('quality-assessment:current-metrics');
|
|
851
|
+
const metrics = storedMetrics ?? {
|
|
852
|
+
coverage: 80,
|
|
853
|
+
testsPassing: 95,
|
|
854
|
+
criticalBugs: 0,
|
|
855
|
+
codeSmells: 5,
|
|
856
|
+
securityVulnerabilities: 0,
|
|
857
|
+
technicalDebt: 10,
|
|
858
|
+
duplications: 3,
|
|
859
|
+
};
|
|
860
|
+
const risks = [];
|
|
861
|
+
// Check for production-specific risks
|
|
862
|
+
if (options.environment === 'production') {
|
|
863
|
+
if (metrics.coverage < 70) {
|
|
864
|
+
risks.push({
|
|
865
|
+
id: 'risk-coverage',
|
|
866
|
+
severity: 'high',
|
|
867
|
+
description: 'Coverage below recommended threshold for production',
|
|
868
|
+
});
|
|
869
|
+
}
|
|
870
|
+
if (metrics.securityVulnerabilities > 0) {
|
|
871
|
+
risks.push({
|
|
872
|
+
id: 'risk-security',
|
|
873
|
+
severity: 'critical',
|
|
874
|
+
description: 'Security vulnerabilities must be resolved before production deployment',
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
if (metrics.criticalBugs > 0) {
|
|
878
|
+
risks.push({
|
|
879
|
+
id: 'risk-bugs',
|
|
880
|
+
severity: 'critical',
|
|
881
|
+
description: 'Critical bugs must be resolved before production deployment',
|
|
882
|
+
});
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
// Calculate readiness score
|
|
886
|
+
const score = Math.round((metrics.coverage * 0.4) +
|
|
887
|
+
(metrics.testsPassing * 0.3) +
|
|
888
|
+
((100 - Math.min(100, metrics.securityVulnerabilities * 20)) * 0.3));
|
|
889
|
+
const ready = risks.filter((r) => r.severity === 'critical').length === 0 && score >= 70;
|
|
890
|
+
return ok({ ready, risks, score });
|
|
891
|
+
}
|
|
892
|
+
catch (error) {
|
|
893
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
/**
|
|
897
|
+
* Analyze technical debt
|
|
898
|
+
* @param options - Technical debt analysis options
|
|
899
|
+
* @returns Result containing debt analysis
|
|
900
|
+
*/
|
|
901
|
+
async analyzeTechnicalDebt(options) {
|
|
902
|
+
try {
|
|
903
|
+
const storedMetrics = await this.memory.get('quality-assessment:current-metrics');
|
|
904
|
+
const metrics = storedMetrics ?? {
|
|
905
|
+
coverage: 80,
|
|
906
|
+
testsPassing: 95,
|
|
907
|
+
criticalBugs: 0,
|
|
908
|
+
codeSmells: 5,
|
|
909
|
+
securityVulnerabilities: 0,
|
|
910
|
+
technicalDebt: 10,
|
|
911
|
+
duplications: 3,
|
|
912
|
+
};
|
|
913
|
+
const items = [];
|
|
914
|
+
// Generate sample debt items based on metrics
|
|
915
|
+
if (metrics.duplications > 0) {
|
|
916
|
+
items.push({
|
|
917
|
+
file: `${options.projectPath}/src/utils/helpers.ts`,
|
|
918
|
+
type: 'duplication',
|
|
919
|
+
effort: metrics.duplications * 30,
|
|
920
|
+
description: 'Duplicated code blocks that should be refactored',
|
|
921
|
+
});
|
|
922
|
+
}
|
|
923
|
+
if (options.includeCodeSmells && metrics.codeSmells > 0) {
|
|
924
|
+
items.push({
|
|
925
|
+
file: `${options.projectPath}/src/services/legacy.ts`,
|
|
926
|
+
type: 'code-smell',
|
|
927
|
+
effort: metrics.codeSmells * 15,
|
|
928
|
+
description: 'Code smells that impact maintainability',
|
|
929
|
+
});
|
|
930
|
+
}
|
|
931
|
+
const totalDebt = metrics.technicalDebt;
|
|
932
|
+
const debtRatio = totalDebt / 100;
|
|
933
|
+
return ok({ totalDebt, items, debtRatio });
|
|
934
|
+
}
|
|
935
|
+
catch (error) {
|
|
936
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
generateRecommendations(metrics) {
|
|
940
|
+
const recommendations = [];
|
|
941
|
+
if (metrics.coverage < 80) {
|
|
942
|
+
recommendations.push('Increase test coverage to at least 80%');
|
|
943
|
+
}
|
|
944
|
+
if (metrics.codeSmells > 10) {
|
|
945
|
+
recommendations.push('Refactor complex code to improve maintainability');
|
|
946
|
+
}
|
|
947
|
+
if (metrics.technicalDebt > 20) {
|
|
948
|
+
recommendations.push('Allocate time to reduce technical debt');
|
|
949
|
+
}
|
|
950
|
+
if (metrics.securityVulnerabilities > 0) {
|
|
951
|
+
recommendations.push('Address security vulnerabilities urgently');
|
|
952
|
+
}
|
|
953
|
+
return recommendations;
|
|
954
|
+
}
|
|
955
|
+
formatAsHtml(data) {
|
|
956
|
+
return `<html><body><pre>${JSON.stringify(data, null, 2)}</pre></body></html>`;
|
|
957
|
+
}
|
|
958
|
+
formatAsMarkdown(data) {
|
|
959
|
+
return `# Quality Report\n\n\`\`\`json\n${JSON.stringify(data, null, 2)}\n\`\`\``;
|
|
960
|
+
}
|
|
651
961
|
// ============================================================================
|
|
652
962
|
// Agent Spawning Methods
|
|
653
963
|
// ============================================================================
|