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.
- package/.claude/agents/n8n/n8n-base-agent.md +4 -35
- package/.claude/agents/n8n/n8n-bdd-scenario-tester.md +4 -25
- package/.claude/agents/n8n/n8n-chaos-tester.md +4 -26
- package/.claude/agents/n8n/n8n-ci-orchestrator.md +4 -27
- package/.claude/agents/n8n/n8n-compliance-validator.md +4 -25
- package/.claude/agents/n8n/n8n-expression-validator.md +4 -25
- package/.claude/agents/n8n/n8n-integration-test.md +4 -27
- package/.claude/agents/n8n/n8n-monitoring-validator.md +4 -26
- package/.claude/agents/n8n/n8n-node-validator.md +4 -25
- package/.claude/agents/n8n/n8n-performance-tester.md +4 -29
- package/.claude/agents/n8n/n8n-security-auditor.md +4 -26
- package/.claude/agents/n8n/n8n-trigger-test.md +4 -27
- package/.claude/agents/n8n/n8n-unit-tester.md +4 -25
- package/.claude/agents/n8n/n8n-version-comparator.md +4 -26
- package/.claude/agents/n8n/n8n-workflow-executor.md +4 -26
- package/.claude/agents/v3/qe-accessibility-auditor.md +21 -55
- package/.claude/agents/v3/qe-bdd-generator.md +23 -58
- package/.claude/agents/v3/qe-chaos-engineer.md +21 -54
- package/.claude/agents/v3/qe-code-complexity.md +21 -54
- package/.claude/agents/v3/qe-code-intelligence.md +21 -54
- package/.claude/agents/v3/qe-contract-validator.md +21 -53
- package/.claude/agents/v3/qe-coverage-specialist.md +23 -79
- package/.claude/agents/v3/qe-defect-predictor.md +23 -76
- package/.claude/agents/v3/qe-dependency-mapper.md +21 -53
- package/.claude/agents/v3/qe-deployment-advisor.md +21 -54
- package/.claude/agents/v3/qe-devils-advocate.md +212 -238
- package/.claude/agents/v3/qe-flaky-hunter.md +21 -53
- package/.claude/agents/v3/qe-fleet-commander.md +21 -54
- package/.claude/agents/v3/qe-gap-detector.md +23 -79
- package/.claude/agents/v3/qe-graphql-tester.md +21 -54
- package/.claude/agents/v3/qe-impact-analyzer.md +21 -53
- package/.claude/agents/v3/qe-integration-architect.md +2 -2
- package/.claude/agents/v3/qe-integration-tester.md +15 -36
- package/.claude/agents/v3/qe-kg-builder.md +21 -53
- package/.claude/agents/v3/qe-learning-coordinator.md +21 -51
- package/.claude/agents/v3/qe-load-tester.md +21 -55
- package/.claude/agents/v3/qe-message-broker-tester.md +345 -385
- package/.claude/agents/v3/qe-metrics-optimizer.md +21 -54
- package/.claude/agents/v3/qe-middleware-validator.md +389 -428
- package/.claude/agents/v3/qe-mutation-tester.md +21 -54
- package/.claude/agents/v3/qe-odata-contract-tester.md +443 -489
- package/.claude/agents/v3/qe-parallel-executor.md +21 -52
- package/.claude/agents/v3/qe-pattern-learner.md +23 -70
- package/.claude/agents/v3/qe-pentest-validator.md +322 -359
- package/.claude/agents/v3/qe-performance-tester.md +21 -54
- package/.claude/agents/v3/qe-product-factors-assessor.md +339 -376
- package/.claude/agents/v3/qe-property-tester.md +21 -53
- package/.claude/agents/v3/qe-quality-criteria-recommender.md +379 -410
- package/.claude/agents/v3/qe-quality-gate.md +17 -64
- package/.claude/agents/v3/qe-queen-coordinator.md +71 -121
- package/.claude/agents/v3/qe-qx-partner.md +23 -64
- package/.claude/agents/v3/qe-regression-analyzer.md +21 -54
- package/.claude/agents/v3/qe-requirements-validator.md +23 -66
- package/.claude/agents/v3/qe-responsive-tester.md +21 -54
- package/.claude/agents/v3/qe-retry-handler.md +21 -53
- package/.claude/agents/v3/qe-risk-assessor.md +23 -58
- package/.claude/agents/v3/qe-root-cause-analyzer.md +21 -53
- package/.claude/agents/v3/qe-sap-idoc-tester.md +371 -412
- package/.claude/agents/v3/qe-sap-rfc-tester.md +323 -362
- package/.claude/agents/v3/qe-security-auditor.md +21 -54
- package/.claude/agents/v3/qe-security-scanner.md +21 -58
- package/.claude/agents/v3/qe-soap-tester.md +307 -345
- package/.claude/agents/v3/qe-sod-analyzer.md +486 -533
- package/.claude/agents/v3/qe-tdd-specialist.md +17 -42
- package/.claude/agents/v3/qe-test-architect.md +23 -58
- package/.claude/agents/v3/qe-test-idea-rewriter.md +351 -375
- package/.claude/agents/v3/qe-transfer-specialist.md +21 -55
- package/.claude/agents/v3/qe-visual-tester.md +15 -37
- package/.claude/agents/v3/subagents/qe-code-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-integration-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-performance-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-security-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-tdd-green.md +21 -53
- package/.claude/agents/v3/subagents/qe-tdd-red.md +21 -53
- package/.claude/agents/v3/subagents/qe-tdd-refactor.md +21 -53
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +5 -5
- package/.claude/skills/.validation/skill-validation-mcp-integration.md +32 -81
- package/.claude/skills/agentic-quality-engineering/SKILL.md +31 -60
- package/.claude/skills/iterative-loop/SKILL.md +2 -2
- package/.claude/skills/pair-programming/SKILL.md +2 -2
- package/.claude/skills/performance-testing/SKILL.md +1 -1
- package/.claude/skills/qcsd-cicd-swarm/steps/01-flag-detection.md +2 -2
- package/.claude/skills/qcsd-cicd-swarm/steps/07-learning-persistence.md +6 -6
- package/.claude/skills/qcsd-development-swarm/steps/01-flag-detection.md +2 -2
- package/.claude/skills/qcsd-development-swarm/steps/07-learning-persistence.md +6 -6
- package/.claude/skills/qcsd-ideation-swarm/steps/07-learning-persistence.md +6 -6
- package/.claude/skills/qcsd-production-swarm/steps/01-flag-detection.md +202 -206
- package/.claude/skills/qcsd-production-swarm/steps/07-learning-persistence.md +157 -185
- package/.claude/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +87 -91
- package/.claude/skills/qcsd-refinement-swarm/steps/07-learning-persistence.md +49 -53
- package/.claude/skills/qe-chaos-resilience/SKILL.md +2 -2
- package/.claude/skills/qe-code-intelligence/SKILL.md +2 -2
- package/.claude/skills/qe-coverage-analysis/SKILL.md +2 -2
- package/.claude/skills/qe-defect-intelligence/SKILL.md +2 -2
- package/.claude/skills/qe-iterative-loop/SKILL.md +12 -12
- package/.claude/skills/qe-learning-optimization/SKILL.md +2 -2
- package/.claude/skills/qe-quality-assessment/SKILL.md +2 -2
- package/.claude/skills/qe-requirements-validation/SKILL.md +2 -2
- package/.claude/skills/qe-test-execution/SKILL.md +2 -2
- package/.claude/skills/qe-test-generation/SKILL.md +2 -2
- package/.claude/skills/qe-visual-accessibility/SKILL.md +2 -2
- package/.claude/skills/quality-metrics/SKILL.md +1 -1
- package/.claude/skills/security-testing/SKILL.md +1 -1
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/validation-pipeline/SKILL.md +2 -2
- package/.claude/skills/verification-quality/SKILL.md +2 -2
- package/CHANGELOG.md +41 -0
- package/assets/agents/v3/qe-accessibility-auditor.md +21 -55
- package/assets/agents/v3/qe-bdd-generator.md +23 -58
- package/assets/agents/v3/qe-chaos-engineer.md +21 -54
- package/assets/agents/v3/qe-code-complexity.md +21 -54
- package/assets/agents/v3/qe-code-intelligence.md +21 -54
- package/assets/agents/v3/qe-contract-validator.md +21 -53
- package/assets/agents/v3/qe-coverage-specialist.md +23 -79
- package/assets/agents/v3/qe-defect-predictor.md +23 -76
- package/assets/agents/v3/qe-dependency-mapper.md +21 -53
- package/assets/agents/v3/qe-deployment-advisor.md +21 -54
- package/assets/agents/v3/qe-devils-advocate.md +212 -238
- package/assets/agents/v3/qe-flaky-hunter.md +21 -53
- package/assets/agents/v3/qe-fleet-commander.md +21 -54
- package/assets/agents/v3/qe-gap-detector.md +23 -79
- package/assets/agents/v3/qe-graphql-tester.md +21 -54
- package/assets/agents/v3/qe-impact-analyzer.md +21 -53
- package/assets/agents/v3/qe-integration-architect.md +2 -2
- package/assets/agents/v3/qe-integration-tester.md +15 -36
- package/assets/agents/v3/qe-kg-builder.md +21 -53
- package/assets/agents/v3/qe-learning-coordinator.md +21 -51
- package/assets/agents/v3/qe-load-tester.md +21 -55
- package/assets/agents/v3/qe-message-broker-tester.md +345 -385
- package/assets/agents/v3/qe-metrics-optimizer.md +21 -54
- package/assets/agents/v3/qe-middleware-validator.md +389 -428
- package/assets/agents/v3/qe-mutation-tester.md +21 -54
- package/assets/agents/v3/qe-odata-contract-tester.md +443 -489
- package/assets/agents/v3/qe-parallel-executor.md +21 -52
- package/assets/agents/v3/qe-pattern-learner.md +23 -70
- package/assets/agents/v3/qe-pentest-validator.md +322 -359
- package/assets/agents/v3/qe-performance-tester.md +21 -54
- package/assets/agents/v3/qe-product-factors-assessor.md +339 -376
- package/assets/agents/v3/qe-property-tester.md +21 -53
- package/assets/agents/v3/qe-quality-criteria-recommender.md +379 -410
- package/assets/agents/v3/qe-quality-gate.md +17 -64
- package/assets/agents/v3/qe-queen-coordinator.md +71 -121
- package/assets/agents/v3/qe-qx-partner.md +23 -64
- package/assets/agents/v3/qe-regression-analyzer.md +21 -54
- package/assets/agents/v3/qe-requirements-validator.md +23 -66
- package/assets/agents/v3/qe-responsive-tester.md +21 -54
- package/assets/agents/v3/qe-retry-handler.md +21 -53
- package/assets/agents/v3/qe-risk-assessor.md +23 -58
- package/assets/agents/v3/qe-root-cause-analyzer.md +21 -53
- package/assets/agents/v3/qe-sap-idoc-tester.md +371 -412
- package/assets/agents/v3/qe-sap-rfc-tester.md +323 -362
- package/assets/agents/v3/qe-security-auditor.md +21 -54
- package/assets/agents/v3/qe-security-scanner.md +21 -58
- package/assets/agents/v3/qe-soap-tester.md +307 -345
- package/assets/agents/v3/qe-sod-analyzer.md +486 -533
- package/assets/agents/v3/qe-tdd-specialist.md +17 -42
- package/assets/agents/v3/qe-test-architect.md +23 -58
- package/assets/agents/v3/qe-test-idea-rewriter.md +351 -375
- package/assets/agents/v3/qe-transfer-specialist.md +21 -55
- package/assets/agents/v3/qe-visual-tester.md +15 -37
- package/assets/agents/v3/subagents/qe-code-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-integration-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-performance-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-security-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-tdd-green.md +21 -53
- package/assets/agents/v3/subagents/qe-tdd-red.md +21 -53
- package/assets/agents/v3/subagents/qe-tdd-refactor.md +21 -53
- package/assets/governance/constitution.md +1 -1
- package/assets/governance/shards/chaos-resilience.shard.md +1 -1
- package/assets/governance/shards/code-intelligence.shard.md +1 -1
- package/assets/governance/shards/contract-testing.shard.md +1 -1
- package/assets/governance/shards/coverage-analysis.shard.md +1 -1
- package/assets/governance/shards/defect-intelligence.shard.md +1 -1
- package/assets/governance/shards/learning-optimization.shard.md +1 -1
- package/assets/governance/shards/quality-assessment.shard.md +1 -1
- package/assets/governance/shards/requirements-validation.shard.md +1 -1
- package/assets/governance/shards/security-compliance.shard.md +1 -1
- package/assets/governance/shards/test-execution.shard.md +1 -1
- package/assets/governance/shards/test-generation.shard.md +1 -1
- package/assets/governance/shards/visual-accessibility.shard.md +1 -1
- package/assets/grammars/tree-sitter-c_sharp.wasm +0 -0
- package/assets/grammars/tree-sitter-java.wasm +0 -0
- package/assets/grammars/tree-sitter-python.wasm +0 -0
- package/assets/grammars/tree-sitter-rust.wasm +0 -0
- package/assets/grammars/tree-sitter-swift.wasm +0 -0
- package/assets/skills/.validation/schemas/skill-eval.schema.json +5 -5
- package/assets/skills/.validation/skill-validation-mcp-integration.md +32 -81
- package/assets/skills/agentic-quality-engineering/SKILL.md +31 -60
- package/assets/skills/pair-programming/SKILL.md +2 -2
- package/assets/skills/performance-testing/SKILL.md +1 -1
- package/assets/skills/qcsd-cicd-swarm/steps/01-flag-detection.md +2 -2
- package/assets/skills/qcsd-cicd-swarm/steps/07-learning-persistence.md +6 -6
- package/assets/skills/qcsd-development-swarm/steps/01-flag-detection.md +2 -2
- package/assets/skills/qcsd-development-swarm/steps/07-learning-persistence.md +6 -6
- package/assets/skills/qcsd-ideation-swarm/steps/07-learning-persistence.md +6 -6
- package/assets/skills/qcsd-production-swarm/steps/01-flag-detection.md +202 -206
- package/assets/skills/qcsd-production-swarm/steps/07-learning-persistence.md +157 -185
- package/assets/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +87 -91
- package/assets/skills/qcsd-refinement-swarm/steps/07-learning-persistence.md +49 -53
- package/assets/skills/qe-chaos-resilience/SKILL.md +2 -2
- package/assets/skills/qe-code-intelligence/SKILL.md +2 -2
- package/assets/skills/qe-coverage-analysis/SKILL.md +2 -2
- package/assets/skills/qe-defect-intelligence/SKILL.md +2 -2
- package/assets/skills/qe-iterative-loop/SKILL.md +12 -12
- package/assets/skills/qe-learning-optimization/SKILL.md +2 -2
- package/assets/skills/qe-quality-assessment/SKILL.md +2 -2
- package/assets/skills/qe-requirements-validation/SKILL.md +2 -2
- package/assets/skills/qe-test-execution/SKILL.md +2 -2
- package/assets/skills/qe-test-generation/SKILL.md +2 -2
- package/assets/skills/qe-visual-accessibility/SKILL.md +2 -2
- package/assets/skills/quality-metrics/SKILL.md +1 -1
- package/assets/skills/security-testing/SKILL.md +1 -1
- package/assets/skills/validation-pipeline/SKILL.md +2 -2
- package/assets/skills/verification-quality/SKILL.md +2 -2
- package/dist/cli/bundle.js +5240 -4631
- package/dist/cli/command-registry.js +3 -1
- package/dist/cli/commands/init.js +2 -0
- package/dist/cli/commands/memory.d.ts +11 -0
- package/dist/cli/commands/memory.js +333 -0
- package/dist/cli/completions/index.d.ts +17 -0
- package/dist/cli/completions/index.js +49 -1
- package/dist/cli/handlers/hypergraph-handler.d.ts +27 -0
- package/dist/cli/handlers/hypergraph-handler.js +248 -0
- package/dist/cli/handlers/index.d.ts +1 -0
- package/dist/cli/handlers/index.js +1 -0
- package/dist/cli/handlers/init-handler.d.ts +1 -0
- package/dist/cli/handlers/init-handler.js +18 -6
- package/dist/cli/index.js +2 -0
- package/dist/coordination/protocols/code-intelligence-index.js +2 -11
- package/dist/domains/code-intelligence/coordinator-hypergraph.js +1 -1
- package/dist/domains/code-intelligence/coordinator.d.ts +5 -0
- package/dist/domains/code-intelligence/coordinator.js +35 -3
- package/dist/init/phases/06-code-intelligence.d.ts +8 -3
- package/dist/init/phases/06-code-intelligence.js +70 -32
- package/dist/init/phases/08-mcp.js +10 -0
- package/dist/init/phases/phase-interface.d.ts +2 -0
- package/dist/mcp/bundle.js +1507 -1506
- package/dist/mcp/handlers/hypergraph-handler.d.ts +27 -0
- package/dist/mcp/handlers/hypergraph-handler.js +140 -0
- package/dist/mcp/handlers/index.d.ts +1 -0
- package/dist/mcp/handlers/index.js +2 -0
- package/dist/mcp/server.js +19 -0
- package/dist/mcp/tool-scoping.js +5 -0
- package/dist/shared/code-index-extractor.d.ts +23 -0
- package/dist/shared/code-index-extractor.js +101 -0
- package/dist/shared/parsers/multi-language-parser.d.ts +4 -1
- package/dist/shared/parsers/multi-language-parser.js +73 -1
- package/dist/shared/parsers/tree-sitter-wasm-parser.d.ts +32 -0
- package/dist/shared/parsers/tree-sitter-wasm-parser.js +1034 -0
- 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
|