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.
Files changed (553) hide show
  1. package/.claude/agents/v3/README.md +100 -0
  2. package/.claude/agents/v3/qe-accessibility-auditor.md +112 -11
  3. package/.claude/agents/v3/qe-bdd-generator.md +40 -0
  4. package/.claude/agents/v3/qe-coverage-specialist.md +39 -0
  5. package/.claude/agents/v3/qe-defect-predictor.md +36 -0
  6. package/.claude/agents/v3/qe-gap-detector.md +39 -0
  7. package/.claude/agents/v3/qe-pattern-learner.md +31 -0
  8. package/.claude/agents/v3/qe-product-factors-assessor.md +34 -0
  9. package/.claude/agents/v3/qe-quality-criteria-recommender.md +32 -0
  10. package/.claude/agents/v3/qe-quality-gate.md +39 -0
  11. package/.claude/agents/v3/qe-queen-coordinator.md +332 -166
  12. package/.claude/agents/v3/qe-requirements-validator.md +37 -0
  13. package/.claude/agents/v3/qe-risk-assessor.md +33 -0
  14. package/.claude/agents/v3/qe-tdd-specialist.md +33 -0
  15. package/.claude/agents/v3/qe-test-architect.md +36 -0
  16. package/.claude/helpers/statusline-v3.cjs +38 -42
  17. package/.claude/skills/README.md +30 -104
  18. package/.claude/skills/a11y-ally/SKILL.md +1658 -0
  19. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +1750 -0
  20. package/.claude/skills/skills-manifest.json +78 -8
  21. package/README.md +18 -4
  22. package/package.json +1 -1
  23. package/scripts/cloud-db-config.json +10 -5
  24. package/scripts/demo-warmup.sh +45 -0
  25. package/scripts/fetch-content.js +460 -0
  26. package/scripts/merge-v3-to-root.sql +48 -0
  27. package/v3/CHANGELOG.md +166 -0
  28. package/v3/README.md +11 -6
  29. package/v3/assets/agents/v3/README.md +100 -0
  30. package/v3/assets/agents/v3/qe-accessibility-auditor.md +112 -11
  31. package/v3/assets/agents/v3/qe-bdd-generator.md +40 -0
  32. package/v3/assets/agents/v3/qe-coverage-specialist.md +39 -0
  33. package/v3/assets/agents/v3/qe-defect-predictor.md +36 -0
  34. package/v3/assets/agents/v3/qe-gap-detector.md +39 -0
  35. package/v3/assets/agents/v3/qe-pattern-learner.md +31 -0
  36. package/v3/assets/agents/v3/qe-product-factors-assessor.md +34 -0
  37. package/v3/assets/agents/v3/qe-quality-criteria-recommender.md +32 -0
  38. package/v3/assets/agents/v3/qe-quality-gate.md +39 -0
  39. package/v3/assets/agents/v3/qe-queen-coordinator.md +332 -166
  40. package/v3/assets/agents/v3/qe-requirements-validator.md +37 -0
  41. package/v3/assets/agents/v3/qe-risk-assessor.md +33 -0
  42. package/v3/assets/agents/v3/qe-tdd-specialist.md +33 -0
  43. package/v3/assets/agents/v3/qe-test-architect.md +36 -0
  44. package/v3/assets/hooks/cross-phase-memory.yaml +253 -0
  45. package/v3/assets/skills/a11y-ally/SKILL.md +1658 -0
  46. package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +1750 -0
  47. package/v3/assets/skills/skills-manifest.json +753 -0
  48. package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts.map +1 -1
  49. package/v3/dist/adapters/claude-flow/model-router-bridge.js +6 -4
  50. package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -1
  51. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts.map +1 -1
  52. package/v3/dist/adapters/claude-flow/pretrain-bridge.js +13 -8
  53. package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -1
  54. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts.map +1 -1
  55. package/v3/dist/adapters/claude-flow/trajectory-bridge.js +9 -6
  56. package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -1
  57. package/v3/dist/benchmarks/performance-benchmarks.d.ts.map +1 -1
  58. package/v3/dist/benchmarks/performance-benchmarks.js +5 -3
  59. package/v3/dist/benchmarks/performance-benchmarks.js.map +1 -1
  60. package/v3/dist/cli/bundle.js +27646 -23204
  61. package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
  62. package/v3/dist/cli/commands/hooks.js +288 -0
  63. package/v3/dist/cli/commands/hooks.js.map +1 -1
  64. package/v3/dist/cli/commands/sync.d.ts.map +1 -1
  65. package/v3/dist/cli/commands/sync.js +0 -6
  66. package/v3/dist/cli/commands/sync.js.map +1 -1
  67. package/v3/dist/cli/handlers/init-handler.d.ts.map +1 -1
  68. package/v3/dist/cli/handlers/init-handler.js +11 -0
  69. package/v3/dist/cli/handlers/init-handler.js.map +1 -1
  70. package/v3/dist/cli/index.js +14 -2
  71. package/v3/dist/cli/index.js.map +1 -1
  72. package/v3/dist/cli/scheduler/persistent-scheduler.d.ts.map +1 -1
  73. package/v3/dist/cli/scheduler/persistent-scheduler.js +3 -2
  74. package/v3/dist/cli/scheduler/persistent-scheduler.js.map +1 -1
  75. package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
  76. package/v3/dist/cli/wizards/test-wizard.js +6 -4
  77. package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
  78. package/v3/dist/coordination/consensus/providers/claude-provider.js +1 -1
  79. package/v3/dist/coordination/consensus/providers/gemini-provider.js +1 -1
  80. package/v3/dist/coordination/consensus/providers/native-learning-provider.d.ts.map +1 -1
  81. package/v3/dist/coordination/consensus/providers/native-learning-provider.js +10 -8
  82. package/v3/dist/coordination/consensus/providers/native-learning-provider.js.map +1 -1
  83. package/v3/dist/coordination/consensus/providers/ollama-provider.d.ts.map +1 -1
  84. package/v3/dist/coordination/consensus/providers/ollama-provider.js +5 -4
  85. package/v3/dist/coordination/consensus/providers/ollama-provider.js.map +1 -1
  86. package/v3/dist/coordination/consensus/providers/openai-provider.d.ts.map +1 -1
  87. package/v3/dist/coordination/consensus/providers/openai-provider.js +5 -4
  88. package/v3/dist/coordination/consensus/providers/openai-provider.js.map +1 -1
  89. package/v3/dist/coordination/constants.d.ts +198 -0
  90. package/v3/dist/coordination/constants.d.ts.map +1 -0
  91. package/v3/dist/coordination/constants.js +210 -0
  92. package/v3/dist/coordination/constants.js.map +1 -0
  93. package/v3/dist/coordination/mincut/dream-integration.d.ts.map +1 -1
  94. package/v3/dist/coordination/mincut/dream-integration.js +5 -1
  95. package/v3/dist/coordination/mincut/dream-integration.js.map +1 -1
  96. package/v3/dist/coordination/queen-coordinator.d.ts +9 -1
  97. package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
  98. package/v3/dist/coordination/queen-coordinator.js +49 -9
  99. package/v3/dist/coordination/queen-coordinator.js.map +1 -1
  100. package/v3/dist/coordination/task-executor.d.ts.map +1 -1
  101. package/v3/dist/coordination/task-executor.js +7 -8
  102. package/v3/dist/coordination/task-executor.js.map +1 -1
  103. package/v3/dist/coordination/workflow-orchestrator.d.ts.map +1 -1
  104. package/v3/dist/coordination/workflow-orchestrator.js +261 -0
  105. package/v3/dist/coordination/workflow-orchestrator.js.map +1 -1
  106. package/v3/dist/domains/chaos-resilience/plugin.d.ts +14 -3
  107. package/v3/dist/domains/chaos-resilience/plugin.d.ts.map +1 -1
  108. package/v3/dist/domains/chaos-resilience/plugin.js +96 -0
  109. package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
  110. package/v3/dist/domains/chaos-resilience/services/performance-profiler.d.ts.map +1 -1
  111. package/v3/dist/domains/chaos-resilience/services/performance-profiler.js +12 -8
  112. package/v3/dist/domains/chaos-resilience/services/performance-profiler.js.map +1 -1
  113. package/v3/dist/domains/code-intelligence/plugin.d.ts +13 -3
  114. package/v3/dist/domains/code-intelligence/plugin.d.ts.map +1 -1
  115. package/v3/dist/domains/code-intelligence/plugin.js +85 -0
  116. package/v3/dist/domains/code-intelligence/plugin.js.map +1 -1
  117. package/v3/dist/domains/code-intelligence/services/product-factors-bridge.d.ts.map +1 -1
  118. package/v3/dist/domains/code-intelligence/services/product-factors-bridge.js +3 -2
  119. package/v3/dist/domains/code-intelligence/services/product-factors-bridge.js.map +1 -1
  120. package/v3/dist/domains/constants.d.ts +481 -0
  121. package/v3/dist/domains/constants.d.ts.map +1 -0
  122. package/v3/dist/domains/constants.js +503 -0
  123. package/v3/dist/domains/constants.js.map +1 -0
  124. package/v3/dist/domains/contract-testing/plugin.d.ts +6 -1
  125. package/v3/dist/domains/contract-testing/plugin.d.ts.map +1 -1
  126. package/v3/dist/domains/contract-testing/plugin.js +80 -1
  127. package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
  128. package/v3/dist/domains/contract-testing/services/contract-validator.d.ts.map +1 -1
  129. package/v3/dist/domains/contract-testing/services/contract-validator.js +5 -4
  130. package/v3/dist/domains/contract-testing/services/contract-validator.js.map +1 -1
  131. package/v3/dist/domains/coverage-analysis/services/hnsw-index.d.ts.map +1 -1
  132. package/v3/dist/domains/coverage-analysis/services/hnsw-index.js +1 -0
  133. package/v3/dist/domains/coverage-analysis/services/hnsw-index.js.map +1 -1
  134. package/v3/dist/domains/defect-intelligence/coordinator.d.ts +2 -2
  135. package/v3/dist/domains/defect-intelligence/coordinator.d.ts.map +1 -1
  136. package/v3/dist/domains/defect-intelligence/coordinator.js.map +1 -1
  137. package/v3/dist/domains/defect-intelligence/plugin.d.ts +6 -1
  138. package/v3/dist/domains/defect-intelligence/plugin.d.ts.map +1 -1
  139. package/v3/dist/domains/defect-intelligence/plugin.js +101 -0
  140. package/v3/dist/domains/defect-intelligence/plugin.js.map +1 -1
  141. package/v3/dist/domains/defect-intelligence/services/defect-predictor.d.ts.map +1 -1
  142. package/v3/dist/domains/defect-intelligence/services/defect-predictor.js +3 -2
  143. package/v3/dist/domains/defect-intelligence/services/defect-predictor.js.map +1 -1
  144. package/v3/dist/domains/domain-interface.d.ts.map +1 -1
  145. package/v3/dist/domains/domain-interface.js +24 -9
  146. package/v3/dist/domains/domain-interface.js.map +1 -1
  147. package/v3/dist/domains/learning-optimization/plugin.d.ts +2 -1
  148. package/v3/dist/domains/learning-optimization/plugin.d.ts.map +1 -1
  149. package/v3/dist/domains/learning-optimization/plugin.js +49 -0
  150. package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
  151. package/v3/dist/domains/quality-assessment/coordinator.d.ts +90 -1
  152. package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
  153. package/v3/dist/domains/quality-assessment/coordinator.js +310 -0
  154. package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
  155. package/v3/dist/domains/requirements-validation/index.d.ts +1 -0
  156. package/v3/dist/domains/requirements-validation/index.d.ts.map +1 -1
  157. package/v3/dist/domains/requirements-validation/index.js +2 -0
  158. package/v3/dist/domains/requirements-validation/index.js.map +1 -1
  159. package/v3/dist/domains/requirements-validation/plugin.d.ts +13 -1
  160. package/v3/dist/domains/requirements-validation/plugin.d.ts.map +1 -1
  161. package/v3/dist/domains/requirements-validation/plugin.js +94 -0
  162. package/v3/dist/domains/requirements-validation/plugin.js.map +1 -1
  163. package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.d.ts +245 -0
  164. package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.d.ts.map +1 -0
  165. package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.js +1143 -0
  166. package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.js.map +1 -0
  167. package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.d.ts.map +1 -1
  168. package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js +3 -2
  169. package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js.map +1 -1
  170. package/v3/dist/domains/security-compliance/plugin.d.ts +3 -2
  171. package/v3/dist/domains/security-compliance/plugin.d.ts.map +1 -1
  172. package/v3/dist/domains/security-compliance/plugin.js +64 -0
  173. package/v3/dist/domains/security-compliance/plugin.js.map +1 -1
  174. package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +25 -0
  175. package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts.map +1 -0
  176. package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +160 -0
  177. package/v3/dist/domains/security-compliance/services/scanners/dast-auth-testing.js.map +1 -0
  178. package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +48 -0
  179. package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts.map +1 -0
  180. package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.js +385 -0
  181. package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.js.map +1 -0
  182. package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +20 -0
  183. package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts.map +1 -0
  184. package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +99 -0
  185. package/v3/dist/domains/security-compliance/services/scanners/dast-injection-testing.js.map +1 -0
  186. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +62 -0
  187. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts.map +1 -0
  188. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.js +329 -0
  189. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.js.map +1 -0
  190. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts +46 -0
  191. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts.map +1 -0
  192. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.js +180 -0
  193. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.js.map +1 -0
  194. package/v3/dist/domains/security-compliance/services/scanners/index.d.ts +14 -0
  195. package/v3/dist/domains/security-compliance/services/scanners/index.d.ts.map +1 -0
  196. package/v3/dist/domains/security-compliance/services/scanners/index.js +16 -0
  197. package/v3/dist/domains/security-compliance/services/scanners/index.js.map +1 -0
  198. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +92 -0
  199. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts.map +1 -0
  200. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js +440 -0
  201. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js.map +1 -0
  202. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.d.ts +78 -0
  203. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.d.ts.map +1 -0
  204. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +179 -0
  205. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js.map +1 -0
  206. package/v3/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +91 -0
  207. package/v3/dist/domains/security-compliance/services/scanners/scanner-types.d.ts.map +1 -0
  208. package/v3/dist/domains/security-compliance/services/scanners/scanner-types.js +15 -0
  209. package/v3/dist/domains/security-compliance/services/scanners/scanner-types.js.map +1 -0
  210. package/v3/dist/domains/security-compliance/services/scanners/security-patterns.d.ts +16 -0
  211. package/v3/dist/domains/security-compliance/services/scanners/security-patterns.d.ts.map +1 -0
  212. package/v3/dist/domains/security-compliance/services/scanners/security-patterns.js +507 -0
  213. package/v3/dist/domains/security-compliance/services/scanners/security-patterns.js.map +1 -0
  214. package/v3/dist/domains/security-compliance/services/security-auditor.d.ts.map +1 -1
  215. package/v3/dist/domains/security-compliance/services/security-auditor.js +2 -1
  216. package/v3/dist/domains/security-compliance/services/security-auditor.js.map +1 -1
  217. package/v3/dist/domains/security-compliance/services/security-scanner.d.ts +20 -213
  218. package/v3/dist/domains/security-compliance/services/security-scanner.d.ts.map +1 -1
  219. package/v3/dist/domains/security-compliance/services/security-scanner.js +37 -2013
  220. package/v3/dist/domains/security-compliance/services/security-scanner.js.map +1 -1
  221. package/v3/dist/domains/security-compliance/services/semgrep-integration.d.ts.map +1 -1
  222. package/v3/dist/domains/security-compliance/services/semgrep-integration.js +7 -6
  223. package/v3/dist/domains/security-compliance/services/semgrep-integration.js.map +1 -1
  224. package/v3/dist/domains/test-execution/services/auth-state-manager.d.ts.map +1 -1
  225. package/v3/dist/domains/test-execution/services/auth-state-manager.js +6 -4
  226. package/v3/dist/domains/test-execution/services/auth-state-manager.js.map +1 -1
  227. package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.d.ts +55 -0
  228. package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.d.ts.map +1 -0
  229. package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.js +407 -0
  230. package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.js.map +1 -0
  231. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts +122 -0
  232. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts.map +1 -0
  233. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.js +325 -0
  234. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.js.map +1 -0
  235. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts +97 -0
  236. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts.map +1 -0
  237. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.js +297 -0
  238. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.js.map +1 -0
  239. package/v3/dist/domains/test-execution/services/e2e/index.d.ts +22 -0
  240. package/v3/dist/domains/test-execution/services/e2e/index.d.ts.map +1 -0
  241. package/v3/dist/domains/test-execution/services/e2e/index.js +52 -0
  242. package/v3/dist/domains/test-execution/services/e2e/index.js.map +1 -0
  243. package/v3/dist/domains/test-execution/services/e2e/result-collector.d.ts +51 -0
  244. package/v3/dist/domains/test-execution/services/e2e/result-collector.d.ts.map +1 -0
  245. package/v3/dist/domains/test-execution/services/e2e/result-collector.js +133 -0
  246. package/v3/dist/domains/test-execution/services/e2e/result-collector.js.map +1 -0
  247. package/v3/dist/domains/test-execution/services/e2e/step-executors.d.ts +48 -0
  248. package/v3/dist/domains/test-execution/services/e2e/step-executors.d.ts.map +1 -0
  249. package/v3/dist/domains/test-execution/services/e2e/step-executors.js +422 -0
  250. package/v3/dist/domains/test-execution/services/e2e/step-executors.js.map +1 -0
  251. package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.d.ts +49 -0
  252. package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.d.ts.map +1 -0
  253. package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.js +146 -0
  254. package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.js.map +1 -0
  255. package/v3/dist/domains/test-execution/services/e2e/types.d.ts +138 -0
  256. package/v3/dist/domains/test-execution/services/e2e/types.d.ts.map +1 -0
  257. package/v3/dist/domains/test-execution/services/e2e/types.js +65 -0
  258. package/v3/dist/domains/test-execution/services/e2e/types.js.map +1 -0
  259. package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.d.ts +33 -0
  260. package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.d.ts.map +1 -0
  261. package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.js +114 -0
  262. package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.js.map +1 -0
  263. package/v3/dist/domains/test-execution/services/e2e-runner.d.ts +18 -392
  264. package/v3/dist/domains/test-execution/services/e2e-runner.d.ts.map +1 -1
  265. package/v3/dist/domains/test-execution/services/e2e-runner.js +25 -1757
  266. package/v3/dist/domains/test-execution/services/e2e-runner.js.map +1 -1
  267. package/v3/dist/domains/test-execution/services/flaky-detector.d.ts.map +1 -1
  268. package/v3/dist/domains/test-execution/services/flaky-detector.js +12 -9
  269. package/v3/dist/domains/test-execution/services/flaky-detector.js.map +1 -1
  270. package/v3/dist/domains/test-execution/services/retry-handler.d.ts.map +1 -1
  271. package/v3/dist/domains/test-execution/services/retry-handler.js +7 -5
  272. package/v3/dist/domains/test-execution/services/retry-handler.js.map +1 -1
  273. package/v3/dist/domains/test-execution/services/test-executor.d.ts.map +1 -1
  274. package/v3/dist/domains/test-execution/services/test-executor.js +4 -3
  275. package/v3/dist/domains/test-execution/services/test-executor.js.map +1 -1
  276. package/v3/dist/domains/visual-accessibility/coordinator.d.ts +70 -0
  277. package/v3/dist/domains/visual-accessibility/coordinator.d.ts.map +1 -1
  278. package/v3/dist/domains/visual-accessibility/coordinator.js +172 -0
  279. package/v3/dist/domains/visual-accessibility/coordinator.js.map +1 -1
  280. package/v3/dist/domains/visual-accessibility/plugin.d.ts +2 -1
  281. package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
  282. package/v3/dist/domains/visual-accessibility/plugin.js +63 -0
  283. package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
  284. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts.map +1 -1
  285. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js +3 -2
  286. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js.map +1 -1
  287. package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.d.ts.map +1 -1
  288. package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.js +22 -12
  289. package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.js.map +1 -1
  290. package/v3/dist/domains/visual-accessibility/services/viewport-capture.d.ts.map +1 -1
  291. package/v3/dist/domains/visual-accessibility/services/viewport-capture.js +3 -2
  292. package/v3/dist/domains/visual-accessibility/services/viewport-capture.js.map +1 -1
  293. package/v3/dist/domains/visual-accessibility/services/visual-regression.d.ts.map +1 -1
  294. package/v3/dist/domains/visual-accessibility/services/visual-regression.js +3 -2
  295. package/v3/dist/domains/visual-accessibility/services/visual-regression.js.map +1 -1
  296. package/v3/dist/hooks/cross-phase-hooks.d.ts +42 -0
  297. package/v3/dist/hooks/cross-phase-hooks.d.ts.map +1 -0
  298. package/v3/dist/hooks/cross-phase-hooks.js +338 -0
  299. package/v3/dist/hooks/cross-phase-hooks.js.map +1 -0
  300. package/v3/dist/hooks/index.d.ts +9 -0
  301. package/v3/dist/hooks/index.d.ts.map +1 -0
  302. package/v3/dist/hooks/index.js +9 -0
  303. package/v3/dist/hooks/index.js.map +1 -0
  304. package/v3/dist/init/agents-installer.d.ts.map +1 -1
  305. package/v3/dist/init/agents-installer.js +6 -4
  306. package/v3/dist/init/agents-installer.js.map +1 -1
  307. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -1
  308. package/v3/dist/init/enhancements/claude-flow-adapter.js +15 -9
  309. package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -1
  310. package/v3/dist/init/enhancements/detector.js +6 -4
  311. package/v3/dist/init/enhancements/detector.js.map +1 -1
  312. package/v3/dist/init/init-wizard.d.ts +5 -0
  313. package/v3/dist/init/init-wizard.d.ts.map +1 -1
  314. package/v3/dist/init/init-wizard.js +77 -14
  315. package/v3/dist/init/init-wizard.js.map +1 -1
  316. package/v3/dist/init/migration/data-migrator.d.ts.map +1 -1
  317. package/v3/dist/init/migration/data-migrator.js +6 -4
  318. package/v3/dist/init/migration/data-migrator.js.map +1 -1
  319. package/v3/dist/init/phases/02-analysis.js +2 -2
  320. package/v3/dist/init/phases/02-analysis.js.map +1 -1
  321. package/v3/dist/init/phases/04-database.d.ts.map +1 -1
  322. package/v3/dist/init/phases/04-database.js +0 -1
  323. package/v3/dist/init/phases/04-database.js.map +1 -1
  324. package/v3/dist/init/phases/05-learning.js +1 -1
  325. package/v3/dist/init/phases/05-learning.js.map +1 -1
  326. package/v3/dist/init/phases/11-claude-md.d.ts.map +1 -1
  327. package/v3/dist/init/phases/11-claude-md.js +25 -0
  328. package/v3/dist/init/phases/11-claude-md.js.map +1 -1
  329. package/v3/dist/init/phases/12-verification.d.ts.map +1 -1
  330. package/v3/dist/init/phases/12-verification.js +2 -1
  331. package/v3/dist/init/phases/12-verification.js.map +1 -1
  332. package/v3/dist/init/project-analyzer.d.ts.map +1 -1
  333. package/v3/dist/init/project-analyzer.js +12 -8
  334. package/v3/dist/init/project-analyzer.js.map +1 -1
  335. package/v3/dist/init/skills-installer.d.ts.map +1 -1
  336. package/v3/dist/init/skills-installer.js +6 -4
  337. package/v3/dist/init/skills-installer.js.map +1 -1
  338. package/v3/dist/init/token-bootstrap.d.ts.map +1 -1
  339. package/v3/dist/init/token-bootstrap.js +2 -1
  340. package/v3/dist/init/token-bootstrap.js.map +1 -1
  341. package/v3/dist/integrations/agent-booster-wasm/index.d.ts.map +1 -1
  342. package/v3/dist/integrations/agent-booster-wasm/index.js +8 -4
  343. package/v3/dist/integrations/agent-booster-wasm/index.js.map +1 -1
  344. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts.map +1 -1
  345. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js +3 -2
  346. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js.map +1 -1
  347. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts.map +1 -1
  348. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js.map +1 -1
  349. package/v3/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.d.ts.map +1 -1
  350. package/v3/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.js.map +1 -1
  351. package/v3/dist/integrations/browser/agent-browser/client.d.ts.map +1 -1
  352. package/v3/dist/integrations/browser/agent-browser/client.js +9 -6
  353. package/v3/dist/integrations/browser/agent-browser/client.js.map +1 -1
  354. package/v3/dist/integrations/browser/agent-browser/command-executor.d.ts.map +1 -1
  355. package/v3/dist/integrations/browser/agent-browser/command-executor.js +3 -2
  356. package/v3/dist/integrations/browser/agent-browser/command-executor.js.map +1 -1
  357. package/v3/dist/integrations/browser/index.d.ts +1 -0
  358. package/v3/dist/integrations/browser/index.d.ts.map +1 -1
  359. package/v3/dist/integrations/browser/index.js +6 -0
  360. package/v3/dist/integrations/browser/index.js.map +1 -1
  361. package/v3/dist/integrations/browser/web-content-fetcher.d.ts +154 -0
  362. package/v3/dist/integrations/browser/web-content-fetcher.d.ts.map +1 -0
  363. package/v3/dist/integrations/browser/web-content-fetcher.js +529 -0
  364. package/v3/dist/integrations/browser/web-content-fetcher.js.map +1 -0
  365. package/v3/dist/integrations/coherence/threshold-tuner.d.ts.map +1 -1
  366. package/v3/dist/integrations/coherence/threshold-tuner.js +3 -2
  367. package/v3/dist/integrations/coherence/threshold-tuner.js.map +1 -1
  368. package/v3/dist/integrations/coherence/wasm-loader.d.ts.map +1 -1
  369. package/v3/dist/integrations/coherence/wasm-loader.js +3 -2
  370. package/v3/dist/integrations/coherence/wasm-loader.js.map +1 -1
  371. package/v3/dist/integrations/n8n/agent-factory.d.ts.map +1 -1
  372. package/v3/dist/integrations/n8n/agent-factory.js +6 -4
  373. package/v3/dist/integrations/n8n/agent-factory.js.map +1 -1
  374. package/v3/dist/integrations/rl-suite/persistence/q-value-store.d.ts.map +1 -1
  375. package/v3/dist/integrations/rl-suite/persistence/q-value-store.js.map +1 -1
  376. package/v3/dist/integrations/ruvector/interfaces.js +1 -1
  377. package/v3/dist/integrations/ruvector/interfaces.js.map +1 -1
  378. package/v3/dist/integrations/ruvector/sona-persistence.d.ts.map +1 -1
  379. package/v3/dist/integrations/ruvector/sona-persistence.js +6 -4
  380. package/v3/dist/integrations/ruvector/sona-persistence.js.map +1 -1
  381. package/v3/dist/integrations/vibium/client.d.ts.map +1 -1
  382. package/v3/dist/integrations/vibium/client.js +3 -2
  383. package/v3/dist/integrations/vibium/client.js.map +1 -1
  384. package/v3/dist/kernel/agent-coordinator.d.ts +1 -1
  385. package/v3/dist/kernel/agent-coordinator.d.ts.map +1 -1
  386. package/v3/dist/kernel/agent-coordinator.js +4 -4
  387. package/v3/dist/kernel/agent-coordinator.js.map +1 -1
  388. package/v3/dist/kernel/constants.d.ts +155 -0
  389. package/v3/dist/kernel/constants.d.ts.map +1 -0
  390. package/v3/dist/kernel/constants.js +169 -0
  391. package/v3/dist/kernel/constants.js.map +1 -0
  392. package/v3/dist/kernel/event-bus.d.ts +8 -0
  393. package/v3/dist/kernel/event-bus.d.ts.map +1 -1
  394. package/v3/dist/kernel/event-bus.js +79 -17
  395. package/v3/dist/kernel/event-bus.js.map +1 -1
  396. package/v3/dist/kernel/hybrid-backend.d.ts.map +1 -1
  397. package/v3/dist/kernel/hybrid-backend.js +4 -3
  398. package/v3/dist/kernel/hybrid-backend.js.map +1 -1
  399. package/v3/dist/kernel/index.d.ts +1 -1
  400. package/v3/dist/kernel/index.d.ts.map +1 -1
  401. package/v3/dist/kernel/index.js +3 -1
  402. package/v3/dist/kernel/index.js.map +1 -1
  403. package/v3/dist/kernel/kernel.d.ts.map +1 -1
  404. package/v3/dist/kernel/kernel.js +3 -2
  405. package/v3/dist/kernel/kernel.js.map +1 -1
  406. package/v3/dist/kernel/memory-backend.d.ts.map +1 -1
  407. package/v3/dist/kernel/memory-backend.js +4 -3
  408. package/v3/dist/kernel/memory-backend.js.map +1 -1
  409. package/v3/dist/kernel/unified-memory.d.ts +26 -0
  410. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  411. package/v3/dist/kernel/unified-memory.js +68 -13
  412. package/v3/dist/kernel/unified-memory.js.map +1 -1
  413. package/v3/dist/kernel/unified-persistence.js +3 -2
  414. package/v3/dist/kernel/unified-persistence.js.map +1 -1
  415. package/v3/dist/learning/aqe-learning-engine.d.ts.map +1 -1
  416. package/v3/dist/learning/aqe-learning-engine.js +12 -8
  417. package/v3/dist/learning/aqe-learning-engine.js.map +1 -1
  418. package/v3/dist/learning/dream/index.d.ts +1 -1
  419. package/v3/dist/learning/dream/index.d.ts.map +1 -1
  420. package/v3/dist/learning/dream/index.js +3 -1
  421. package/v3/dist/learning/dream/index.js.map +1 -1
  422. package/v3/dist/learning/dream/spreading-activation.d.ts +41 -0
  423. package/v3/dist/learning/dream/spreading-activation.d.ts.map +1 -1
  424. package/v3/dist/learning/dream/spreading-activation.js +79 -0
  425. package/v3/dist/learning/dream/spreading-activation.js.map +1 -1
  426. package/v3/dist/learning/pattern-store.d.ts.map +1 -1
  427. package/v3/dist/learning/pattern-store.js +16 -6
  428. package/v3/dist/learning/pattern-store.js.map +1 -1
  429. package/v3/dist/learning/qe-unified-memory.js +1 -1
  430. package/v3/dist/learning/qe-unified-memory.js.map +1 -1
  431. package/v3/dist/learning/real-embeddings.d.ts.map +1 -1
  432. package/v3/dist/learning/real-embeddings.js +7 -1
  433. package/v3/dist/learning/real-embeddings.js.map +1 -1
  434. package/v3/dist/learning/real-qe-reasoning-bank.js +2 -2
  435. package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
  436. package/v3/dist/learning/sqlite-persistence.d.ts +2 -2
  437. package/v3/dist/learning/sqlite-persistence.d.ts.map +1 -1
  438. package/v3/dist/learning/sqlite-persistence.js +1 -1
  439. package/v3/dist/learning/sqlite-persistence.js.map +1 -1
  440. package/v3/dist/learning/v2-to-v3-migration.d.ts +2 -2
  441. package/v3/dist/learning/v2-to-v3-migration.d.ts.map +1 -1
  442. package/v3/dist/learning/v2-to-v3-migration.js +2 -2
  443. package/v3/dist/learning/v2-to-v3-migration.js.map +1 -1
  444. package/v3/dist/logging/console-logger.d.ts +96 -0
  445. package/v3/dist/logging/console-logger.d.ts.map +1 -0
  446. package/v3/dist/logging/console-logger.js +247 -0
  447. package/v3/dist/logging/console-logger.js.map +1 -0
  448. package/v3/dist/logging/index.d.ts +42 -0
  449. package/v3/dist/logging/index.d.ts.map +1 -0
  450. package/v3/dist/logging/index.js +39 -0
  451. package/v3/dist/logging/index.js.map +1 -0
  452. package/v3/dist/logging/logger-factory.d.ts +145 -0
  453. package/v3/dist/logging/logger-factory.d.ts.map +1 -0
  454. package/v3/dist/logging/logger-factory.js +218 -0
  455. package/v3/dist/logging/logger-factory.js.map +1 -0
  456. package/v3/dist/logging/logger.d.ts +89 -0
  457. package/v3/dist/logging/logger.d.ts.map +1 -0
  458. package/v3/dist/logging/logger.js +74 -0
  459. package/v3/dist/logging/logger.js.map +1 -0
  460. package/v3/dist/mcp/bundle.js +11385 -7526
  461. package/v3/dist/mcp/handlers/agent-handlers.js +2 -2
  462. package/v3/dist/mcp/handlers/agent-handlers.js.map +1 -1
  463. package/v3/dist/mcp/handlers/core-handlers.d.ts +2 -0
  464. package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
  465. package/v3/dist/mcp/handlers/core-handlers.js +33 -0
  466. package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
  467. package/v3/dist/mcp/handlers/cross-phase-handlers.d.ts +110 -0
  468. package/v3/dist/mcp/handlers/cross-phase-handlers.d.ts.map +1 -0
  469. package/v3/dist/mcp/handlers/cross-phase-handlers.js +216 -0
  470. package/v3/dist/mcp/handlers/cross-phase-handlers.js.map +1 -0
  471. package/v3/dist/mcp/handlers/domain-handler-configs.d.ts +151 -0
  472. package/v3/dist/mcp/handlers/domain-handler-configs.d.ts.map +1 -0
  473. package/v3/dist/mcp/handlers/domain-handler-configs.js +486 -0
  474. package/v3/dist/mcp/handlers/domain-handler-configs.js.map +1 -0
  475. package/v3/dist/mcp/handlers/domain-handlers.d.ts +174 -120
  476. package/v3/dist/mcp/handlers/domain-handlers.d.ts.map +1 -1
  477. package/v3/dist/mcp/handlers/domain-handlers.js +178 -1049
  478. package/v3/dist/mcp/handlers/domain-handlers.js.map +1 -1
  479. package/v3/dist/mcp/handlers/handler-factory.d.ts +182 -0
  480. package/v3/dist/mcp/handlers/handler-factory.d.ts.map +1 -0
  481. package/v3/dist/mcp/handlers/handler-factory.js +327 -0
  482. package/v3/dist/mcp/handlers/handler-factory.js.map +1 -0
  483. package/v3/dist/mcp/handlers/index.d.ts +1 -0
  484. package/v3/dist/mcp/handlers/index.d.ts.map +1 -1
  485. package/v3/dist/mcp/handlers/index.js +2 -0
  486. package/v3/dist/mcp/handlers/index.js.map +1 -1
  487. package/v3/dist/mcp/handlers/task-handlers.d.ts +1 -0
  488. package/v3/dist/mcp/handlers/task-handlers.d.ts.map +1 -1
  489. package/v3/dist/mcp/handlers/task-handlers.js +91 -7
  490. package/v3/dist/mcp/handlers/task-handlers.js.map +1 -1
  491. package/v3/dist/mcp/server.d.ts.map +1 -1
  492. package/v3/dist/mcp/server.js +107 -1
  493. package/v3/dist/mcp/server.js.map +1 -1
  494. package/v3/dist/mcp/types.d.ts +5 -3
  495. package/v3/dist/mcp/types.d.ts.map +1 -1
  496. package/v3/dist/memory/cross-phase-memory.d.ts +55 -0
  497. package/v3/dist/memory/cross-phase-memory.d.ts.map +1 -0
  498. package/v3/dist/memory/cross-phase-memory.js +265 -0
  499. package/v3/dist/memory/cross-phase-memory.js.map +1 -0
  500. package/v3/dist/memory/index.d.ts +9 -0
  501. package/v3/dist/memory/index.d.ts.map +1 -0
  502. package/v3/dist/memory/index.js +9 -0
  503. package/v3/dist/memory/index.js.map +1 -0
  504. package/v3/dist/shared/io/file-reader.d.ts.map +1 -1
  505. package/v3/dist/shared/io/file-reader.js +3 -2
  506. package/v3/dist/shared/io/file-reader.js.map +1 -1
  507. package/v3/dist/shared/utils/binary-insert.d.ts +85 -0
  508. package/v3/dist/shared/utils/binary-insert.d.ts.map +1 -0
  509. package/v3/dist/shared/utils/binary-insert.js +122 -0
  510. package/v3/dist/shared/utils/binary-insert.js.map +1 -0
  511. package/v3/dist/shared/utils/index.d.ts +1 -0
  512. package/v3/dist/shared/utils/index.d.ts.map +1 -1
  513. package/v3/dist/shared/utils/index.js +1 -0
  514. package/v3/dist/shared/utils/index.js.map +1 -1
  515. package/v3/dist/strange-loop/belief-reconciler.d.ts.map +1 -1
  516. package/v3/dist/strange-loop/belief-reconciler.js +3 -2
  517. package/v3/dist/strange-loop/belief-reconciler.js.map +1 -1
  518. package/v3/dist/sync/claude-flow-bridge.d.ts +1 -1
  519. package/v3/dist/sync/claude-flow-bridge.d.ts.map +1 -1
  520. package/v3/dist/sync/claude-flow-bridge.js +7 -5
  521. package/v3/dist/sync/claude-flow-bridge.js.map +1 -1
  522. package/v3/dist/sync/cloud/postgres-writer.d.ts.map +1 -1
  523. package/v3/dist/sync/cloud/postgres-writer.js +0 -1
  524. package/v3/dist/sync/cloud/postgres-writer.js.map +1 -1
  525. package/v3/dist/sync/interfaces.d.ts +6 -0
  526. package/v3/dist/sync/interfaces.d.ts.map +1 -1
  527. package/v3/dist/sync/interfaces.js +34 -47
  528. package/v3/dist/sync/interfaces.js.map +1 -1
  529. package/v3/dist/sync/readers/sqlite-reader.d.ts +1 -1
  530. package/v3/dist/sync/readers/sqlite-reader.d.ts.map +1 -1
  531. package/v3/dist/sync/readers/sqlite-reader.js +4 -3
  532. package/v3/dist/sync/readers/sqlite-reader.js.map +1 -1
  533. package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.d.ts.map +1 -1
  534. package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.js +3 -2
  535. package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.js.map +1 -1
  536. package/v3/dist/test-scheduling/git-aware/test-selector.d.ts.map +1 -1
  537. package/v3/dist/test-scheduling/git-aware/test-selector.js +3 -2
  538. package/v3/dist/test-scheduling/git-aware/test-selector.js.map +1 -1
  539. package/v3/dist/types/cross-phase-signals.d.ts +119 -0
  540. package/v3/dist/types/cross-phase-signals.d.ts.map +1 -0
  541. package/v3/dist/types/cross-phase-signals.js +33 -0
  542. package/v3/dist/types/cross-phase-signals.js.map +1 -0
  543. package/v3/dist/types/index.d.ts +9 -0
  544. package/v3/dist/types/index.d.ts.map +1 -0
  545. package/v3/dist/types/index.js +9 -0
  546. package/v3/dist/types/index.js.map +1 -0
  547. package/v3/dist/workers/worker-manager.d.ts.map +1 -1
  548. package/v3/dist/workers/worker-manager.js +3 -2
  549. package/v3/dist/workers/worker-manager.js.map +1 -1
  550. package/v3/dist/workflows/browser/workflow-loader.d.ts +3 -3
  551. package/v3/dist/workflows/browser/workflow-loader.d.ts.map +1 -1
  552. package/v3/dist/workflows/browser/workflow-loader.js.map +1 -1
  553. 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