agentic-qe 3.8.6 → 3.8.8

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 (250) hide show
  1. package/.claude/agents/n8n/n8n-base-agent.md +4 -35
  2. package/.claude/agents/n8n/n8n-bdd-scenario-tester.md +4 -25
  3. package/.claude/agents/n8n/n8n-chaos-tester.md +4 -26
  4. package/.claude/agents/n8n/n8n-ci-orchestrator.md +4 -27
  5. package/.claude/agents/n8n/n8n-compliance-validator.md +4 -25
  6. package/.claude/agents/n8n/n8n-expression-validator.md +4 -25
  7. package/.claude/agents/n8n/n8n-integration-test.md +4 -27
  8. package/.claude/agents/n8n/n8n-monitoring-validator.md +4 -26
  9. package/.claude/agents/n8n/n8n-node-validator.md +4 -25
  10. package/.claude/agents/n8n/n8n-performance-tester.md +4 -29
  11. package/.claude/agents/n8n/n8n-security-auditor.md +4 -26
  12. package/.claude/agents/n8n/n8n-trigger-test.md +4 -27
  13. package/.claude/agents/n8n/n8n-unit-tester.md +4 -25
  14. package/.claude/agents/n8n/n8n-version-comparator.md +4 -26
  15. package/.claude/agents/n8n/n8n-workflow-executor.md +4 -26
  16. package/.claude/agents/v3/qe-accessibility-auditor.md +21 -55
  17. package/.claude/agents/v3/qe-bdd-generator.md +23 -58
  18. package/.claude/agents/v3/qe-chaos-engineer.md +21 -54
  19. package/.claude/agents/v3/qe-code-complexity.md +21 -54
  20. package/.claude/agents/v3/qe-code-intelligence.md +21 -54
  21. package/.claude/agents/v3/qe-contract-validator.md +21 -53
  22. package/.claude/agents/v3/qe-coverage-specialist.md +23 -79
  23. package/.claude/agents/v3/qe-defect-predictor.md +23 -76
  24. package/.claude/agents/v3/qe-dependency-mapper.md +21 -53
  25. package/.claude/agents/v3/qe-deployment-advisor.md +21 -54
  26. package/.claude/agents/v3/qe-devils-advocate.md +212 -238
  27. package/.claude/agents/v3/qe-flaky-hunter.md +21 -53
  28. package/.claude/agents/v3/qe-fleet-commander.md +21 -54
  29. package/.claude/agents/v3/qe-gap-detector.md +23 -79
  30. package/.claude/agents/v3/qe-graphql-tester.md +21 -54
  31. package/.claude/agents/v3/qe-impact-analyzer.md +21 -53
  32. package/.claude/agents/v3/qe-integration-architect.md +2 -2
  33. package/.claude/agents/v3/qe-integration-tester.md +15 -36
  34. package/.claude/agents/v3/qe-kg-builder.md +21 -53
  35. package/.claude/agents/v3/qe-learning-coordinator.md +21 -51
  36. package/.claude/agents/v3/qe-load-tester.md +21 -55
  37. package/.claude/agents/v3/qe-message-broker-tester.md +345 -385
  38. package/.claude/agents/v3/qe-metrics-optimizer.md +21 -54
  39. package/.claude/agents/v3/qe-middleware-validator.md +389 -428
  40. package/.claude/agents/v3/qe-mutation-tester.md +21 -54
  41. package/.claude/agents/v3/qe-odata-contract-tester.md +443 -489
  42. package/.claude/agents/v3/qe-parallel-executor.md +21 -52
  43. package/.claude/agents/v3/qe-pattern-learner.md +23 -70
  44. package/.claude/agents/v3/qe-pentest-validator.md +322 -359
  45. package/.claude/agents/v3/qe-performance-tester.md +21 -54
  46. package/.claude/agents/v3/qe-product-factors-assessor.md +339 -376
  47. package/.claude/agents/v3/qe-property-tester.md +21 -53
  48. package/.claude/agents/v3/qe-quality-criteria-recommender.md +379 -410
  49. package/.claude/agents/v3/qe-quality-gate.md +17 -64
  50. package/.claude/agents/v3/qe-queen-coordinator.md +71 -121
  51. package/.claude/agents/v3/qe-qx-partner.md +23 -64
  52. package/.claude/agents/v3/qe-regression-analyzer.md +21 -54
  53. package/.claude/agents/v3/qe-requirements-validator.md +23 -66
  54. package/.claude/agents/v3/qe-responsive-tester.md +21 -54
  55. package/.claude/agents/v3/qe-retry-handler.md +21 -53
  56. package/.claude/agents/v3/qe-risk-assessor.md +23 -58
  57. package/.claude/agents/v3/qe-root-cause-analyzer.md +21 -53
  58. package/.claude/agents/v3/qe-sap-idoc-tester.md +371 -412
  59. package/.claude/agents/v3/qe-sap-rfc-tester.md +323 -362
  60. package/.claude/agents/v3/qe-security-auditor.md +21 -54
  61. package/.claude/agents/v3/qe-security-scanner.md +21 -58
  62. package/.claude/agents/v3/qe-soap-tester.md +307 -345
  63. package/.claude/agents/v3/qe-sod-analyzer.md +486 -533
  64. package/.claude/agents/v3/qe-tdd-specialist.md +17 -42
  65. package/.claude/agents/v3/qe-test-architect.md +23 -58
  66. package/.claude/agents/v3/qe-test-idea-rewriter.md +351 -375
  67. package/.claude/agents/v3/qe-transfer-specialist.md +21 -55
  68. package/.claude/agents/v3/qe-visual-tester.md +15 -37
  69. package/.claude/agents/v3/subagents/qe-code-reviewer.md +21 -54
  70. package/.claude/agents/v3/subagents/qe-integration-reviewer.md +21 -54
  71. package/.claude/agents/v3/subagents/qe-performance-reviewer.md +21 -54
  72. package/.claude/agents/v3/subagents/qe-security-reviewer.md +21 -54
  73. package/.claude/agents/v3/subagents/qe-tdd-green.md +21 -53
  74. package/.claude/agents/v3/subagents/qe-tdd-red.md +21 -53
  75. package/.claude/agents/v3/subagents/qe-tdd-refactor.md +21 -53
  76. package/.claude/skills/.validation/schemas/skill-eval.schema.json +5 -5
  77. package/.claude/skills/.validation/skill-validation-mcp-integration.md +32 -81
  78. package/.claude/skills/agentic-quality-engineering/SKILL.md +31 -60
  79. package/.claude/skills/iterative-loop/SKILL.md +2 -2
  80. package/.claude/skills/pair-programming/SKILL.md +2 -2
  81. package/.claude/skills/performance-testing/SKILL.md +1 -1
  82. package/.claude/skills/qcsd-cicd-swarm/steps/01-flag-detection.md +2 -2
  83. package/.claude/skills/qcsd-cicd-swarm/steps/07-learning-persistence.md +6 -6
  84. package/.claude/skills/qcsd-development-swarm/steps/01-flag-detection.md +2 -2
  85. package/.claude/skills/qcsd-development-swarm/steps/07-learning-persistence.md +6 -6
  86. package/.claude/skills/qcsd-ideation-swarm/steps/07-learning-persistence.md +6 -6
  87. package/.claude/skills/qcsd-production-swarm/steps/01-flag-detection.md +202 -206
  88. package/.claude/skills/qcsd-production-swarm/steps/07-learning-persistence.md +157 -185
  89. package/.claude/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +87 -91
  90. package/.claude/skills/qcsd-refinement-swarm/steps/07-learning-persistence.md +49 -53
  91. package/.claude/skills/qe-chaos-resilience/SKILL.md +2 -2
  92. package/.claude/skills/qe-code-intelligence/SKILL.md +2 -2
  93. package/.claude/skills/qe-coverage-analysis/SKILL.md +2 -2
  94. package/.claude/skills/qe-defect-intelligence/SKILL.md +2 -2
  95. package/.claude/skills/qe-iterative-loop/SKILL.md +12 -12
  96. package/.claude/skills/qe-learning-optimization/SKILL.md +2 -2
  97. package/.claude/skills/qe-quality-assessment/SKILL.md +2 -2
  98. package/.claude/skills/qe-requirements-validation/SKILL.md +2 -2
  99. package/.claude/skills/qe-test-execution/SKILL.md +2 -2
  100. package/.claude/skills/qe-test-generation/SKILL.md +2 -2
  101. package/.claude/skills/qe-visual-accessibility/SKILL.md +2 -2
  102. package/.claude/skills/quality-metrics/SKILL.md +1 -1
  103. package/.claude/skills/security-testing/SKILL.md +1 -1
  104. package/.claude/skills/skills-manifest.json +1 -1
  105. package/.claude/skills/validation-pipeline/SKILL.md +2 -2
  106. package/.claude/skills/verification-quality/SKILL.md +2 -2
  107. package/CHANGELOG.md +41 -0
  108. package/assets/agents/v3/qe-accessibility-auditor.md +21 -55
  109. package/assets/agents/v3/qe-bdd-generator.md +23 -58
  110. package/assets/agents/v3/qe-chaos-engineer.md +21 -54
  111. package/assets/agents/v3/qe-code-complexity.md +21 -54
  112. package/assets/agents/v3/qe-code-intelligence.md +21 -54
  113. package/assets/agents/v3/qe-contract-validator.md +21 -53
  114. package/assets/agents/v3/qe-coverage-specialist.md +23 -79
  115. package/assets/agents/v3/qe-defect-predictor.md +23 -76
  116. package/assets/agents/v3/qe-dependency-mapper.md +21 -53
  117. package/assets/agents/v3/qe-deployment-advisor.md +21 -54
  118. package/assets/agents/v3/qe-devils-advocate.md +212 -238
  119. package/assets/agents/v3/qe-flaky-hunter.md +21 -53
  120. package/assets/agents/v3/qe-fleet-commander.md +21 -54
  121. package/assets/agents/v3/qe-gap-detector.md +23 -79
  122. package/assets/agents/v3/qe-graphql-tester.md +21 -54
  123. package/assets/agents/v3/qe-impact-analyzer.md +21 -53
  124. package/assets/agents/v3/qe-integration-architect.md +2 -2
  125. package/assets/agents/v3/qe-integration-tester.md +15 -36
  126. package/assets/agents/v3/qe-kg-builder.md +21 -53
  127. package/assets/agents/v3/qe-learning-coordinator.md +21 -51
  128. package/assets/agents/v3/qe-load-tester.md +21 -55
  129. package/assets/agents/v3/qe-message-broker-tester.md +345 -385
  130. package/assets/agents/v3/qe-metrics-optimizer.md +21 -54
  131. package/assets/agents/v3/qe-middleware-validator.md +389 -428
  132. package/assets/agents/v3/qe-mutation-tester.md +21 -54
  133. package/assets/agents/v3/qe-odata-contract-tester.md +443 -489
  134. package/assets/agents/v3/qe-parallel-executor.md +21 -52
  135. package/assets/agents/v3/qe-pattern-learner.md +23 -70
  136. package/assets/agents/v3/qe-pentest-validator.md +322 -359
  137. package/assets/agents/v3/qe-performance-tester.md +21 -54
  138. package/assets/agents/v3/qe-product-factors-assessor.md +339 -376
  139. package/assets/agents/v3/qe-property-tester.md +21 -53
  140. package/assets/agents/v3/qe-quality-criteria-recommender.md +379 -410
  141. package/assets/agents/v3/qe-quality-gate.md +17 -64
  142. package/assets/agents/v3/qe-queen-coordinator.md +71 -121
  143. package/assets/agents/v3/qe-qx-partner.md +23 -64
  144. package/assets/agents/v3/qe-regression-analyzer.md +21 -54
  145. package/assets/agents/v3/qe-requirements-validator.md +23 -66
  146. package/assets/agents/v3/qe-responsive-tester.md +21 -54
  147. package/assets/agents/v3/qe-retry-handler.md +21 -53
  148. package/assets/agents/v3/qe-risk-assessor.md +23 -58
  149. package/assets/agents/v3/qe-root-cause-analyzer.md +21 -53
  150. package/assets/agents/v3/qe-sap-idoc-tester.md +371 -412
  151. package/assets/agents/v3/qe-sap-rfc-tester.md +323 -362
  152. package/assets/agents/v3/qe-security-auditor.md +21 -54
  153. package/assets/agents/v3/qe-security-scanner.md +21 -58
  154. package/assets/agents/v3/qe-soap-tester.md +307 -345
  155. package/assets/agents/v3/qe-sod-analyzer.md +486 -533
  156. package/assets/agents/v3/qe-tdd-specialist.md +17 -42
  157. package/assets/agents/v3/qe-test-architect.md +23 -58
  158. package/assets/agents/v3/qe-test-idea-rewriter.md +351 -375
  159. package/assets/agents/v3/qe-transfer-specialist.md +21 -55
  160. package/assets/agents/v3/qe-visual-tester.md +15 -37
  161. package/assets/agents/v3/subagents/qe-code-reviewer.md +21 -54
  162. package/assets/agents/v3/subagents/qe-integration-reviewer.md +21 -54
  163. package/assets/agents/v3/subagents/qe-performance-reviewer.md +21 -54
  164. package/assets/agents/v3/subagents/qe-security-reviewer.md +21 -54
  165. package/assets/agents/v3/subagents/qe-tdd-green.md +21 -53
  166. package/assets/agents/v3/subagents/qe-tdd-red.md +21 -53
  167. package/assets/agents/v3/subagents/qe-tdd-refactor.md +21 -53
  168. package/assets/governance/constitution.md +1 -1
  169. package/assets/governance/shards/chaos-resilience.shard.md +1 -1
  170. package/assets/governance/shards/code-intelligence.shard.md +1 -1
  171. package/assets/governance/shards/contract-testing.shard.md +1 -1
  172. package/assets/governance/shards/coverage-analysis.shard.md +1 -1
  173. package/assets/governance/shards/defect-intelligence.shard.md +1 -1
  174. package/assets/governance/shards/learning-optimization.shard.md +1 -1
  175. package/assets/governance/shards/quality-assessment.shard.md +1 -1
  176. package/assets/governance/shards/requirements-validation.shard.md +1 -1
  177. package/assets/governance/shards/security-compliance.shard.md +1 -1
  178. package/assets/governance/shards/test-execution.shard.md +1 -1
  179. package/assets/governance/shards/test-generation.shard.md +1 -1
  180. package/assets/governance/shards/visual-accessibility.shard.md +1 -1
  181. package/assets/grammars/tree-sitter-c_sharp.wasm +0 -0
  182. package/assets/grammars/tree-sitter-java.wasm +0 -0
  183. package/assets/grammars/tree-sitter-python.wasm +0 -0
  184. package/assets/grammars/tree-sitter-rust.wasm +0 -0
  185. package/assets/grammars/tree-sitter-swift.wasm +0 -0
  186. package/assets/skills/.validation/schemas/skill-eval.schema.json +5 -5
  187. package/assets/skills/.validation/skill-validation-mcp-integration.md +32 -81
  188. package/assets/skills/agentic-quality-engineering/SKILL.md +31 -60
  189. package/assets/skills/pair-programming/SKILL.md +2 -2
  190. package/assets/skills/performance-testing/SKILL.md +1 -1
  191. package/assets/skills/qcsd-cicd-swarm/steps/01-flag-detection.md +2 -2
  192. package/assets/skills/qcsd-cicd-swarm/steps/07-learning-persistence.md +6 -6
  193. package/assets/skills/qcsd-development-swarm/steps/01-flag-detection.md +2 -2
  194. package/assets/skills/qcsd-development-swarm/steps/07-learning-persistence.md +6 -6
  195. package/assets/skills/qcsd-ideation-swarm/steps/07-learning-persistence.md +6 -6
  196. package/assets/skills/qcsd-production-swarm/steps/01-flag-detection.md +202 -206
  197. package/assets/skills/qcsd-production-swarm/steps/07-learning-persistence.md +157 -185
  198. package/assets/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +87 -91
  199. package/assets/skills/qcsd-refinement-swarm/steps/07-learning-persistence.md +49 -53
  200. package/assets/skills/qe-chaos-resilience/SKILL.md +2 -2
  201. package/assets/skills/qe-code-intelligence/SKILL.md +2 -2
  202. package/assets/skills/qe-coverage-analysis/SKILL.md +2 -2
  203. package/assets/skills/qe-defect-intelligence/SKILL.md +2 -2
  204. package/assets/skills/qe-iterative-loop/SKILL.md +12 -12
  205. package/assets/skills/qe-learning-optimization/SKILL.md +2 -2
  206. package/assets/skills/qe-quality-assessment/SKILL.md +2 -2
  207. package/assets/skills/qe-requirements-validation/SKILL.md +2 -2
  208. package/assets/skills/qe-test-execution/SKILL.md +2 -2
  209. package/assets/skills/qe-test-generation/SKILL.md +2 -2
  210. package/assets/skills/qe-visual-accessibility/SKILL.md +2 -2
  211. package/assets/skills/quality-metrics/SKILL.md +1 -1
  212. package/assets/skills/security-testing/SKILL.md +1 -1
  213. package/assets/skills/validation-pipeline/SKILL.md +2 -2
  214. package/assets/skills/verification-quality/SKILL.md +2 -2
  215. package/dist/cli/bundle.js +5240 -4631
  216. package/dist/cli/command-registry.js +3 -1
  217. package/dist/cli/commands/init.js +2 -0
  218. package/dist/cli/commands/memory.d.ts +11 -0
  219. package/dist/cli/commands/memory.js +333 -0
  220. package/dist/cli/completions/index.d.ts +17 -0
  221. package/dist/cli/completions/index.js +49 -1
  222. package/dist/cli/handlers/hypergraph-handler.d.ts +27 -0
  223. package/dist/cli/handlers/hypergraph-handler.js +248 -0
  224. package/dist/cli/handlers/index.d.ts +1 -0
  225. package/dist/cli/handlers/index.js +1 -0
  226. package/dist/cli/handlers/init-handler.d.ts +1 -0
  227. package/dist/cli/handlers/init-handler.js +18 -6
  228. package/dist/cli/index.js +2 -0
  229. package/dist/coordination/protocols/code-intelligence-index.js +2 -11
  230. package/dist/domains/code-intelligence/coordinator-hypergraph.js +1 -1
  231. package/dist/domains/code-intelligence/coordinator.d.ts +5 -0
  232. package/dist/domains/code-intelligence/coordinator.js +35 -3
  233. package/dist/init/phases/06-code-intelligence.d.ts +8 -3
  234. package/dist/init/phases/06-code-intelligence.js +70 -32
  235. package/dist/init/phases/08-mcp.js +10 -0
  236. package/dist/init/phases/phase-interface.d.ts +2 -0
  237. package/dist/mcp/bundle.js +1507 -1506
  238. package/dist/mcp/handlers/hypergraph-handler.d.ts +27 -0
  239. package/dist/mcp/handlers/hypergraph-handler.js +140 -0
  240. package/dist/mcp/handlers/index.d.ts +1 -0
  241. package/dist/mcp/handlers/index.js +2 -0
  242. package/dist/mcp/server.js +19 -0
  243. package/dist/mcp/tool-scoping.js +5 -0
  244. package/dist/shared/code-index-extractor.d.ts +23 -0
  245. package/dist/shared/code-index-extractor.js +101 -0
  246. package/dist/shared/parsers/multi-language-parser.d.ts +4 -1
  247. package/dist/shared/parsers/multi-language-parser.js +73 -1
  248. package/dist/shared/parsers/tree-sitter-wasm-parser.d.ts +32 -0
  249. package/dist/shared/parsers/tree-sitter-wasm-parser.js +1034 -0
  250. package/package.json +2 -1
@@ -4,7 +4,7 @@
4
4
  * Central registry for all CLI command handlers.
5
5
  * Provides command routing and management.
6
6
  */
7
- import { createInitHandler, createStatusHandler, createHealthHandler, createTaskHandler, createAgentHandler, createDomainHandler, createProtocolHandler, createBrainHandler, } from './handlers/index.js';
7
+ import { createInitHandler, createStatusHandler, createHealthHandler, createTaskHandler, createAgentHandler, createDomainHandler, createProtocolHandler, createBrainHandler, createHypergraphHandler, } from './handlers/index.js';
8
8
  // ============================================================================
9
9
  // Command Registry
10
10
  // ============================================================================
@@ -80,6 +80,8 @@ export class CommandRegistry {
80
80
  this.register(createProtocolHandler(this.cleanupAndExit, this.ensureInitialized));
81
81
  // Brain export/import
82
82
  this.register(createBrainHandler(this.cleanupAndExit, this.ensureInitialized));
83
+ // Hypergraph queries
84
+ this.register(createHypergraphHandler(this.cleanupAndExit, this.ensureInitialized));
83
85
  }
84
86
  /**
85
87
  * Get help for all commands
@@ -41,6 +41,7 @@ export function createInitCommand() {
41
41
  .option('--with-codex', 'Include OpenAI Codex CLI MCP config and AGENTS.md')
42
42
  .option('--with-windsurf', 'Include Windsurf MCP config and rules')
43
43
  .option('--with-continuedev', 'Include Continue.dev MCP config and rules')
44
+ .option('--with-mcp', 'Include MCP server config in .mcp.json (opt-in — CLI works without MCP)')
44
45
  .option('--with-all-platforms', 'Include all coding agent platform configurations')
45
46
  .option('--with-claude-flow', 'Force Claude Flow integration setup')
46
47
  .option('--skip-claude-flow', 'Skip Claude Flow integration')
@@ -113,6 +114,7 @@ async function runInit(options) {
113
114
  withCodex: options.withCodex,
114
115
  withWindsurf: options.withWindsurf,
115
116
  withContinueDev: options.withContinuedev,
117
+ withMcp: options.withMcp,
116
118
  noGovernance: options.noGovernance,
117
119
  });
118
120
  // Run initialization
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Agentic QE v3 - Memory CLI Commands
3
+ *
4
+ * CLI interface for memory store/get/search/delete/share operations.
5
+ * Provides CLI parity with MCP memory_store, memory_retrieve, memory_query,
6
+ * memory_delete, and memory_share tools to reduce MCP dependency in agents/skills.
7
+ */
8
+ import { Command } from 'commander';
9
+ import type { CLIContext } from '../handlers/interfaces.js';
10
+ export declare function createMemoryCommand(context: CLIContext, cleanupAndExit: (code: number) => Promise<never>, ensureInitialized: () => Promise<boolean>): Command;
11
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Agentic QE v3 - Memory CLI Commands
3
+ *
4
+ * CLI interface for memory store/get/search/delete/share operations.
5
+ * Provides CLI parity with MCP memory_store, memory_retrieve, memory_query,
6
+ * memory_delete, and memory_share tools to reduce MCP dependency in agents/skills.
7
+ */
8
+ import { Command } from 'commander';
9
+ import chalk from 'chalk';
10
+ import { toErrorMessage } from '../../shared/error-utils.js';
11
+ export function createMemoryCommand(context, cleanupAndExit, ensureInitialized) {
12
+ const memory = new Command('memory')
13
+ .description('Memory store, retrieve, search, and delete operations')
14
+ .addHelpText('after', `
15
+ Examples:
16
+ # Store a value
17
+ aqe memory store --key "auth-pattern" --value "JWT with refresh tokens" --namespace patterns
18
+
19
+ # Retrieve a value
20
+ aqe memory get --key "auth-pattern" --namespace patterns
21
+
22
+ # Search by pattern (glob)
23
+ aqe memory search --pattern "auth*" --namespace patterns
24
+
25
+ # Search semantically (natural language)
26
+ aqe memory search --query "authentication patterns" --semantic
27
+
28
+ # List all entries in a namespace
29
+ aqe memory list --namespace patterns --limit 20
30
+
31
+ # Delete a key
32
+ aqe memory delete --key "auth-pattern" --namespace patterns
33
+
34
+ # Share knowledge between agents
35
+ aqe memory share --from agent-1 --to agent-2,agent-3 --domain testing --content '{"finding": "flaky"}'
36
+
37
+ # Show usage stats
38
+ aqe memory usage
39
+ `);
40
+ // ── store ──────────────────────────────────────────────────────────────
41
+ memory
42
+ .command('store')
43
+ .description('Store a key-value pair in memory')
44
+ .requiredOption('--key <key>', 'Memory key')
45
+ .requiredOption('--value <value>', 'Value to store (string or JSON)')
46
+ .option('--namespace <ns>', 'Namespace for grouping', 'default')
47
+ .option('--ttl <seconds>', 'Time-to-live in seconds')
48
+ .option('--json', 'Output as JSON')
49
+ .action(async (options) => {
50
+ if (!await ensureInitialized())
51
+ return;
52
+ try {
53
+ const { handleMemoryStore } = await import('../../mcp/handlers/memory-handlers.js');
54
+ // Try to parse value as JSON, otherwise store as string
55
+ let value = options.value;
56
+ try {
57
+ value = JSON.parse(options.value);
58
+ }
59
+ catch { /* keep as string */ }
60
+ const result = await handleMemoryStore({
61
+ key: options.key,
62
+ value,
63
+ namespace: options.namespace,
64
+ ttl: options.ttl ? parseInt(options.ttl, 10) : undefined,
65
+ });
66
+ if (options.json) {
67
+ console.log(JSON.stringify(result, null, 2));
68
+ }
69
+ else if (result.success) {
70
+ console.log(chalk.green(` ✓ Stored "${options.key}" in namespace "${options.namespace}"`));
71
+ }
72
+ else {
73
+ console.error(chalk.red(` ✗ ${result.error}`));
74
+ await cleanupAndExit(1);
75
+ }
76
+ }
77
+ catch (error) {
78
+ console.error(chalk.red(` Error: ${toErrorMessage(error)}`));
79
+ await cleanupAndExit(1);
80
+ }
81
+ });
82
+ // ── get ─────────────────────────────────────────────────────────────────
83
+ memory
84
+ .command('get')
85
+ .description('Retrieve a value by key')
86
+ .requiredOption('--key <key>', 'Memory key to retrieve')
87
+ .option('--namespace <ns>', 'Namespace', 'default')
88
+ .option('--include-metadata', 'Include metadata in response')
89
+ .option('--json', 'Output as JSON')
90
+ .action(async (options) => {
91
+ if (!await ensureInitialized())
92
+ return;
93
+ try {
94
+ const { handleMemoryRetrieve } = await import('../../mcp/handlers/memory-handlers.js');
95
+ const result = await handleMemoryRetrieve({
96
+ key: options.key,
97
+ namespace: options.namespace,
98
+ includeMetadata: options.includeMetadata,
99
+ });
100
+ if (options.json) {
101
+ console.log(JSON.stringify(result, null, 2));
102
+ }
103
+ else if (result.success && result.data) {
104
+ if (result.data.found) {
105
+ const val = typeof result.data.value === 'string'
106
+ ? result.data.value
107
+ : JSON.stringify(result.data.value, null, 2);
108
+ console.log(chalk.green(` ${options.key}`) + chalk.gray(` [${options.namespace}]`));
109
+ console.log(` ${val}`);
110
+ }
111
+ else {
112
+ console.log(chalk.yellow(` Key "${options.key}" not found in namespace "${options.namespace}"`));
113
+ }
114
+ }
115
+ else {
116
+ console.error(chalk.red(` ✗ ${result.error}`));
117
+ await cleanupAndExit(1);
118
+ }
119
+ }
120
+ catch (error) {
121
+ console.error(chalk.red(` Error: ${toErrorMessage(error)}`));
122
+ await cleanupAndExit(1);
123
+ }
124
+ });
125
+ // ── search ──────────────────────────────────────────────────────────────
126
+ memory
127
+ .command('search')
128
+ .description('Search memory by pattern (glob) or semantic query')
129
+ .option('--pattern <glob>', 'Glob pattern to match keys (e.g., "auth*")')
130
+ .option('--query <text>', 'Natural language query (implies --semantic)')
131
+ .option('--semantic', 'Use HNSW vector search for semantic matching')
132
+ .option('--namespace <ns>', 'Namespace to search in', 'default')
133
+ .option('--limit <n>', 'Maximum results', '20')
134
+ .option('--offset <n>', 'Skip first N results', '0')
135
+ .option('--json', 'Output as JSON')
136
+ .action(async (options) => {
137
+ if (!options.pattern && !options.query) {
138
+ console.error(chalk.red(' Either --pattern or --query is required'));
139
+ await cleanupAndExit(1);
140
+ }
141
+ if (!await ensureInitialized())
142
+ return;
143
+ try {
144
+ const { handleMemoryQuery } = await import('../../mcp/handlers/memory-handlers.js');
145
+ const searchPattern = options.query || options.pattern;
146
+ const useSemantic = options.semantic || !!options.query;
147
+ const result = await handleMemoryQuery({
148
+ pattern: searchPattern,
149
+ namespace: options.namespace,
150
+ limit: parseInt(options.limit, 10),
151
+ offset: parseInt(options.offset, 10),
152
+ semantic: useSemantic,
153
+ });
154
+ if (options.json) {
155
+ console.log(JSON.stringify(result, null, 2));
156
+ }
157
+ else if (result.success && result.data) {
158
+ const { entries, total, searchType } = result.data;
159
+ console.log(chalk.blue(` ${total} result(s) via ${searchType} search\n`));
160
+ for (const entry of entries) {
161
+ const score = entry.score !== undefined ? chalk.gray(` (score: ${entry.score.toFixed(3)})`) : '';
162
+ console.log(` ${chalk.green(entry.key)} ${chalk.gray(`[${entry.namespace}]`)}${score}`);
163
+ }
164
+ if (result.data.hasMore) {
165
+ console.log(chalk.gray(`\n ... and more. Use --offset ${parseInt(options.offset, 10) + parseInt(options.limit, 10)} to see next page`));
166
+ }
167
+ }
168
+ else {
169
+ console.error(chalk.red(` ✗ ${result.error}`));
170
+ await cleanupAndExit(1);
171
+ }
172
+ }
173
+ catch (error) {
174
+ console.error(chalk.red(` Error: ${toErrorMessage(error)}`));
175
+ await cleanupAndExit(1);
176
+ }
177
+ });
178
+ // ── list ────────────────────────────────────────────────────────────────
179
+ memory
180
+ .command('list')
181
+ .description('List all memory entries in a namespace')
182
+ .option('--namespace <ns>', 'Namespace to list', 'default')
183
+ .option('--limit <n>', 'Maximum results', '50')
184
+ .option('--json', 'Output as JSON')
185
+ .action(async (options) => {
186
+ if (!await ensureInitialized())
187
+ return;
188
+ try {
189
+ const { handleMemoryQuery } = await import('../../mcp/handlers/memory-handlers.js');
190
+ const result = await handleMemoryQuery({
191
+ pattern: '*',
192
+ namespace: options.namespace,
193
+ limit: parseInt(options.limit, 10),
194
+ });
195
+ if (options.json) {
196
+ console.log(JSON.stringify(result, null, 2));
197
+ }
198
+ else if (result.success && result.data) {
199
+ console.log(chalk.blue(` ${result.data.total} entries in namespace "${options.namespace}"\n`));
200
+ for (const entry of result.data.entries) {
201
+ console.log(` ${chalk.green(entry.key)}`);
202
+ }
203
+ if (result.data.hasMore) {
204
+ console.log(chalk.gray(`\n ... more entries exist. Use --limit to see more.`));
205
+ }
206
+ }
207
+ else {
208
+ console.error(chalk.red(` ✗ ${result.error}`));
209
+ await cleanupAndExit(1);
210
+ }
211
+ }
212
+ catch (error) {
213
+ console.error(chalk.red(` Error: ${toErrorMessage(error)}`));
214
+ await cleanupAndExit(1);
215
+ }
216
+ });
217
+ // ── delete ──────────────────────────────────────────────────────────────
218
+ memory
219
+ .command('delete')
220
+ .description('Delete a memory entry by key')
221
+ .requiredOption('--key <key>', 'Memory key to delete')
222
+ .option('--namespace <ns>', 'Namespace', 'default')
223
+ .option('--json', 'Output as JSON')
224
+ .action(async (options) => {
225
+ if (!await ensureInitialized())
226
+ return;
227
+ try {
228
+ const { handleMemoryDelete } = await import('../../mcp/handlers/memory-handlers.js');
229
+ const result = await handleMemoryDelete({
230
+ key: options.key,
231
+ namespace: options.namespace,
232
+ });
233
+ if (options.json) {
234
+ console.log(JSON.stringify(result, null, 2));
235
+ }
236
+ else if (result.success && result.data) {
237
+ if (result.data.deleted) {
238
+ console.log(chalk.green(` ✓ Deleted "${options.key}" from namespace "${options.namespace}"`));
239
+ }
240
+ else {
241
+ console.log(chalk.yellow(` Key "${options.key}" not found in namespace "${options.namespace}"`));
242
+ }
243
+ }
244
+ else {
245
+ console.error(chalk.red(` ✗ ${result.error}`));
246
+ await cleanupAndExit(1);
247
+ }
248
+ }
249
+ catch (error) {
250
+ console.error(chalk.red(` Error: ${toErrorMessage(error)}`));
251
+ await cleanupAndExit(1);
252
+ }
253
+ });
254
+ // ── share ───────────────────────────────────────────────────────────────
255
+ memory
256
+ .command('share')
257
+ .description('Share knowledge between agents')
258
+ .requiredOption('--from <agentId>', 'Source agent ID')
259
+ .requiredOption('--to <agentIds>', 'Comma-separated target agent IDs')
260
+ .requiredOption('--domain <domain>', 'Knowledge domain')
261
+ .requiredOption('--content <json>', 'JSON content to share')
262
+ .option('--json', 'Output as JSON')
263
+ .action(async (options) => {
264
+ if (!await ensureInitialized())
265
+ return;
266
+ try {
267
+ const { handleMemoryShare } = await import('../../mcp/handlers/memory-handlers.js');
268
+ let content;
269
+ try {
270
+ content = JSON.parse(options.content);
271
+ }
272
+ catch {
273
+ console.error(chalk.red(' --content must be valid JSON'));
274
+ await cleanupAndExit(1);
275
+ return; // unreachable but satisfies TS
276
+ }
277
+ const targetIds = options.to.split(',').map((s) => s.trim());
278
+ const result = await handleMemoryShare({
279
+ sourceAgentId: options.from,
280
+ targetAgentIds: targetIds,
281
+ knowledgeDomain: options.domain,
282
+ knowledgeContent: content,
283
+ });
284
+ if (options.json) {
285
+ console.log(JSON.stringify(result, null, 2));
286
+ }
287
+ else if (result.success && result.data) {
288
+ console.log(chalk.green(` ✓ Shared knowledge from ${result.data.sourceAgent} to ${result.data.targetAgents.join(', ')}`));
289
+ console.log(chalk.gray(` Domain: ${result.data.domain}`));
290
+ }
291
+ else {
292
+ console.error(chalk.red(` ✗ ${result.error}`));
293
+ await cleanupAndExit(1);
294
+ }
295
+ }
296
+ catch (error) {
297
+ console.error(chalk.red(` Error: ${toErrorMessage(error)}`));
298
+ await cleanupAndExit(1);
299
+ }
300
+ });
301
+ // ── usage ───────────────────────────────────────────────────────────────
302
+ memory
303
+ .command('usage')
304
+ .description('Show memory usage statistics')
305
+ .option('--json', 'Output as JSON')
306
+ .action(async (options) => {
307
+ if (!await ensureInitialized())
308
+ return;
309
+ try {
310
+ const { handleMemoryUsage } = await import('../../mcp/handlers/memory-handlers.js');
311
+ const result = await handleMemoryUsage();
312
+ if (options.json) {
313
+ console.log(JSON.stringify(result, null, 2));
314
+ }
315
+ else if (result.success && result.data) {
316
+ console.log(chalk.blue(' Memory Usage\n'));
317
+ console.log(` Entries: ${chalk.green(String(result.data.entries))}`);
318
+ console.log(` Vectors: ${chalk.green(String(result.data.vectors))}`);
319
+ console.log(` Namespaces: ${chalk.green(String(result.data.namespaces))}`);
320
+ }
321
+ else {
322
+ console.error(chalk.red(` ✗ ${result.error}`));
323
+ await cleanupAndExit(1);
324
+ }
325
+ }
326
+ catch (error) {
327
+ console.error(chalk.red(` Error: ${toErrorMessage(error)}`));
328
+ await cleanupAndExit(1);
329
+ }
330
+ });
331
+ return memory;
332
+ }
333
+ //# sourceMappingURL=memory.js.map
@@ -115,6 +115,23 @@ export declare const COMMANDS: {
115
115
  readonly description: "V2 to V3 migration";
116
116
  readonly options: readonly ["--dry-run", "--backup", "--skip-memory", "--skip-patterns", "--skip-config", "--force"];
117
117
  };
118
+ readonly hypergraph: {
119
+ readonly description: "Query the code knowledge hypergraph";
120
+ readonly subcommands: {
121
+ readonly stats: {
122
+ readonly options: readonly ["--db"];
123
+ };
124
+ readonly untested: {
125
+ readonly options: readonly ["--db", "--limit"];
126
+ };
127
+ readonly impacted: {
128
+ readonly options: readonly ["--db"];
129
+ };
130
+ readonly gaps: {
131
+ readonly options: readonly ["--db", "--max-coverage", "--limit"];
132
+ };
133
+ };
134
+ };
118
135
  readonly completions: {
119
136
  readonly description: "Generate shell completions";
120
137
  readonly subcommands: {
@@ -210,6 +210,16 @@ export const COMMANDS = {
210
210
  description: 'V2 to V3 migration',
211
211
  options: ['--dry-run', '--backup', '--skip-memory', '--skip-patterns', '--skip-config', '--force'],
212
212
  },
213
+ // Hypergraph queries
214
+ hypergraph: {
215
+ description: 'Query the code knowledge hypergraph',
216
+ subcommands: {
217
+ stats: { options: ['--db'] },
218
+ untested: { options: ['--db', '--limit'] },
219
+ impacted: { options: ['--db'] },
220
+ gaps: { options: ['--db', '--max-coverage', '--limit'] },
221
+ },
222
+ },
213
223
  // Completions command (meta)
214
224
  completions: {
215
225
  description: 'Generate shell completions',
@@ -315,7 +325,7 @@ _aqe_completions() {
315
325
  local cur prev words cword
316
326
  _init_completion || return
317
327
 
318
- local commands="init status health task agent domain protocol test coverage quality security code migrate completions"
328
+ local commands="init status health task agent domain protocol test coverage quality security code migrate hypergraph completions"
319
329
  local task_subcmds="submit list cancel status"
320
330
  local agent_subcmds="list spawn"
321
331
  local domain_subcmds="list health"
@@ -614,6 +624,23 @@ _aqe_completions() {
614
624
  ;;
615
625
  esac
616
626
  ;;
627
+ hypergraph)
628
+ local hg_subcmds="stats untested impacted gaps"
629
+ case "\${words[2]}" in
630
+ stats|untested|gaps)
631
+ COMPREPLY=( $(compgen -W "--db --limit --max-coverage" -- "$cur") )
632
+ return
633
+ ;;
634
+ impacted)
635
+ COMPREPLY=( $(compgen -f -- "$cur") )
636
+ return
637
+ ;;
638
+ *)
639
+ COMPREPLY=( $(compgen -W "$hg_subcmds" -- "$cur") )
640
+ return
641
+ ;;
642
+ esac
643
+ ;;
617
644
  migrate)
618
645
  COMPREPLY=( $(compgen -W "--dry-run --backup --skip-memory --skip-patterns --skip-config --force" -- "$cur") )
619
646
  return
@@ -692,6 +719,7 @@ _aqe() {
692
719
  'quality:Quality assessment'
693
720
  'security:Security scanning'
694
721
  'code:Code intelligence'
722
+ 'hypergraph:Query the code knowledge hypergraph'
695
723
  'migrate:V2 to V3 migration'
696
724
  'completions:Generate shell completions'
697
725
  )
@@ -939,6 +967,20 @@ _aqe() {
939
967
  '--depth[Analysis depth]:depth:(1 2 3 4 5)' \\
940
968
  '--include-tests[Include test files]'
941
969
  ;;
970
+ hypergraph)
971
+ local -a hg_commands
972
+ hg_commands=(
973
+ 'stats:Show hypergraph statistics'
974
+ 'untested:Find untested functions'
975
+ 'impacted:Find impacted tests'
976
+ 'gaps:Find coverage gaps'
977
+ )
978
+ _arguments -C \\
979
+ '1:command:_describe command hg_commands' \\
980
+ '--db[Database path]:path:_files' \\
981
+ '--limit[Max results]:number:' \\
982
+ '--max-coverage[Coverage threshold]:number:'
983
+ ;;
942
984
  migrate)
943
985
  _arguments \\
944
986
  '--dry-run[Preview migration without changes]' \\
@@ -1015,6 +1057,11 @@ complete -c aqe -n "__fish_use_subcommand" -a "coverage" -d "Coverage analysis"
1015
1057
  complete -c aqe -n "__fish_use_subcommand" -a "quality" -d "Quality assessment"
1016
1058
  complete -c aqe -n "__fish_use_subcommand" -a "security" -d "Security scanning"
1017
1059
  complete -c aqe -n "__fish_use_subcommand" -a "code" -d "Code intelligence"
1060
+ complete -c aqe -n "__fish_use_subcommand" -a "hypergraph" -d "Query the code knowledge hypergraph"
1061
+ complete -c aqe -n "__fish_seen_subcommand_from hypergraph; and not __fish_seen_subcommand_from stats untested impacted gaps" -a "stats" -d "Show hypergraph statistics"
1062
+ complete -c aqe -n "__fish_seen_subcommand_from hypergraph; and not __fish_seen_subcommand_from stats untested impacted gaps" -a "untested" -d "Find untested functions"
1063
+ complete -c aqe -n "__fish_seen_subcommand_from hypergraph; and not __fish_seen_subcommand_from stats untested impacted gaps" -a "impacted" -d "Find impacted tests"
1064
+ complete -c aqe -n "__fish_seen_subcommand_from hypergraph; and not __fish_seen_subcommand_from stats untested impacted gaps" -a "gaps" -d "Find coverage gaps"
1018
1065
  complete -c aqe -n "__fish_use_subcommand" -a "migrate" -d "V2 to V3 migration"
1019
1066
  complete -c aqe -n "__fish_use_subcommand" -a "completions" -d "Generate shell completions"
1020
1067
 
@@ -1217,6 +1264,7 @@ $script:AQE_COMMANDS = @{
1217
1264
  'quality' = 'Quality assessment'
1218
1265
  'security' = 'Security scanning'
1219
1266
  'code' = 'Code intelligence'
1267
+ 'hypergraph' = 'Query the code knowledge hypergraph'
1220
1268
  'migrate' = 'V2 to V3 migration'
1221
1269
  'completions' = 'Generate shell completions'
1222
1270
  }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Agentic QE v3 - Hypergraph Command Handler
3
+ *
4
+ * Exposes hypergraph queries to users via CLI:
5
+ * aqe hypergraph stats - Show node/edge counts by type
6
+ * aqe hypergraph untested - Find functions with no test coverage
7
+ * aqe hypergraph impacted - Find tests impacted by changed files
8
+ * aqe hypergraph gaps - Find functions with low coverage
9
+ */
10
+ import { Command } from 'commander';
11
+ import { ICommandHandler, CLIContext } from './interfaces.js';
12
+ export declare class HypergraphHandler implements ICommandHandler {
13
+ readonly name = "hypergraph";
14
+ readonly description = "Query the code knowledge hypergraph";
15
+ private cleanupAndExit;
16
+ private ensureInitialized;
17
+ constructor(cleanupAndExit: (code: number) => Promise<never>, ensureInitialized: () => Promise<boolean>);
18
+ register(program: Command, _context: CLIContext): void;
19
+ private executeStats;
20
+ private executeUntested;
21
+ private executeImpacted;
22
+ private executeGaps;
23
+ private openEngine;
24
+ getHelp(): string;
25
+ }
26
+ export declare function createHypergraphHandler(cleanupAndExit: (code: number) => Promise<never>, ensureInitialized: () => Promise<boolean>): HypergraphHandler;
27
+ //# sourceMappingURL=hypergraph-handler.d.ts.map