agentic-qe 3.8.4 → 3.8.6
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/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +12 -0
- package/dist/cli/bundle.js +694 -694
- package/dist/cli/commands/hooks-handlers/command-hooks.d.ts +12 -0
- package/dist/cli/commands/hooks-handlers/command-hooks.js +253 -0
- package/dist/cli/commands/hooks-handlers/editing-hooks.d.ts +12 -0
- package/dist/cli/commands/hooks-handlers/editing-hooks.js +161 -0
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.d.ts +57 -0
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +263 -0
- package/dist/cli/commands/hooks-handlers/hooks-shared.d.ts +52 -0
- package/dist/cli/commands/hooks-handlers/hooks-shared.js +223 -0
- package/dist/cli/commands/hooks-handlers/routing-hooks.d.ts +12 -0
- package/dist/cli/commands/hooks-handlers/routing-hooks.js +107 -0
- package/dist/cli/commands/hooks-handlers/session-hooks.d.ts +12 -0
- package/dist/cli/commands/hooks-handlers/session-hooks.js +171 -0
- package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +12 -0
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +248 -0
- package/dist/cli/commands/hooks-handlers/task-hooks.d.ts +12 -0
- package/dist/cli/commands/hooks-handlers/task-hooks.js +152 -0
- package/dist/cli/commands/hooks.d.ts +3 -23
- package/dist/cli/commands/hooks.js +16 -1459
- package/dist/coordination/mincut/phase-executor.d.ts +27 -0
- package/dist/coordination/mincut/phase-executor.js +70 -0
- package/dist/coordination/mincut/time-crystal-analysis.d.ts +35 -0
- package/dist/coordination/mincut/time-crystal-analysis.js +237 -0
- package/dist/coordination/mincut/time-crystal-persistence.d.ts +35 -0
- package/dist/coordination/mincut/time-crystal-persistence.js +81 -0
- package/dist/coordination/mincut/time-crystal-scheduling.d.ts +34 -0
- package/dist/coordination/mincut/time-crystal-scheduling.js +213 -0
- package/dist/coordination/mincut/time-crystal-types.d.ts +278 -0
- package/dist/coordination/mincut/time-crystal-types.js +67 -0
- package/dist/coordination/mincut/time-crystal.d.ts +8 -438
- package/dist/coordination/mincut/time-crystal.js +87 -905
- package/dist/domains/base-domain-coordinator.d.ts +0 -15
- package/dist/domains/base-domain-coordinator.js +7 -5
- package/dist/domains/chaos-resilience/coordinator.d.ts +0 -4
- package/dist/domains/chaos-resilience/coordinator.js +24 -22
- package/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +0 -4
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +47 -45
- package/dist/domains/chaos-resilience/services/performance-profiler.d.ts +0 -4
- package/dist/domains/chaos-resilience/services/performance-profiler.js +10 -8
- package/dist/domains/code-intelligence/coordinator-consensus.d.ts +0 -3
- package/dist/domains/code-intelligence/coordinator-consensus.js +8 -6
- package/dist/domains/code-intelligence/coordinator-gnn.d.ts +0 -3
- package/dist/domains/code-intelligence/coordinator-gnn.js +8 -6
- package/dist/domains/code-intelligence/coordinator-hypergraph.d.ts +0 -3
- package/dist/domains/code-intelligence/coordinator-hypergraph.js +13 -11
- package/dist/domains/code-intelligence/coordinator.d.ts +0 -3
- package/dist/domains/code-intelligence/coordinator.js +21 -19
- package/dist/domains/code-intelligence/services/c4-model/index.d.ts +0 -3
- package/dist/domains/code-intelligence/services/c4-model/index.js +5 -3
- package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +0 -6
- package/dist/domains/code-intelligence/services/knowledge-graph.js +4 -2
- package/dist/domains/code-intelligence/services/product-factors-bridge.d.ts +0 -5
- package/dist/domains/code-intelligence/services/product-factors-bridge.js +9 -7
- package/dist/domains/contract-testing/coordinator.d.ts +0 -6
- package/dist/domains/contract-testing/coordinator.js +25 -23
- package/dist/domains/contract-testing/services/contract-validator.d.ts +0 -4
- package/dist/domains/contract-testing/services/contract-validator.js +4 -2
- package/dist/domains/contract-testing/services/schema-validator.js +1 -1
- package/dist/domains/coverage-analysis/coordinator.js +13 -11
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +4 -2
- package/dist/domains/coverage-analysis/services/gap-detector.js +3 -1
- package/dist/domains/coverage-analysis/services/hnsw-index.d.ts +0 -15
- package/dist/domains/coverage-analysis/services/hnsw-index.js +3 -1
- package/dist/domains/coverage-analysis/services/sublinear-analyzer.d.ts +0 -26
- package/dist/domains/coverage-analysis/services/sublinear-analyzer.js +3 -1
- package/dist/domains/defect-intelligence/coordinator.d.ts +1 -10
- package/dist/domains/defect-intelligence/coordinator.js +5 -3
- package/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.d.ts +0 -6
- package/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.js +3 -1
- package/dist/domains/defect-intelligence/services/defect-predictor.d.ts +0 -6
- package/dist/domains/defect-intelligence/services/defect-predictor.js +5 -3
- package/dist/domains/defect-intelligence/services/pattern-learner.d.ts +0 -4
- package/dist/domains/defect-intelligence/services/pattern-learner.js +3 -1
- package/dist/domains/defect-intelligence/services/root-cause-analyzer.d.ts +0 -6
- package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +3 -1
- package/dist/domains/enterprise-integration/coordinator.js +6 -4
- package/dist/domains/learning-optimization/coordinator-consensus.d.ts +0 -3
- package/dist/domains/learning-optimization/coordinator-consensus.js +8 -6
- package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
- package/dist/domains/learning-optimization/coordinator.js +15 -13
- package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +0 -4
- package/dist/domains/learning-optimization/services/learning-coordinator.js +4 -2
- package/dist/domains/quality-assessment/coordinator-claim-verifier.d.ts +0 -3
- package/dist/domains/quality-assessment/coordinator-claim-verifier.js +6 -4
- package/dist/domains/quality-assessment/coordinator-gate-evaluation.d.ts +0 -4
- package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +9 -7
- package/dist/domains/quality-assessment/coordinator-rl-integration.d.ts +0 -3
- package/dist/domains/quality-assessment/coordinator-rl-integration.js +10 -8
- package/dist/domains/quality-assessment/coordinator.d.ts +0 -15
- package/dist/domains/quality-assessment/coordinator.js +14 -12
- package/dist/domains/quality-assessment/services/deployment-advisor.d.ts +0 -10
- package/dist/domains/quality-assessment/services/deployment-advisor.js +4 -2
- package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +0 -6
- package/dist/domains/quality-assessment/services/quality-analyzer.js +4 -2
- package/dist/domains/requirements-validation/coordinator.d.ts +0 -3
- package/dist/domains/requirements-validation/coordinator.js +15 -13
- package/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.d.ts +0 -5
- package/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js +15 -13
- package/dist/domains/requirements-validation/services/product-factors-assessment/product-factors-service.d.ts +0 -6
- package/dist/domains/requirements-validation/services/product-factors-assessment/product-factors-service.js +9 -7
- package/dist/domains/requirements-validation/services/requirements-validator.d.ts +0 -6
- package/dist/domains/requirements-validation/services/requirements-validator.js +4 -2
- package/dist/domains/security-compliance/coordinator.js +24 -22
- package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +0 -21
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +4 -2
- package/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +0 -4
- package/dist/domains/security-compliance/services/scanners/sast-scanner.js +3 -1
- package/dist/domains/security-compliance/services/security-auditor-dast.d.ts +0 -4
- package/dist/domains/security-compliance/services/security-auditor-dast.js +3 -1
- package/dist/domains/security-compliance/services/security-auditor-sast.d.ts +0 -3
- package/dist/domains/security-compliance/services/security-auditor-sast.js +3 -1
- package/dist/domains/security-compliance/services/security-auditor-secrets.d.ts +0 -3
- package/dist/domains/security-compliance/services/security-auditor-secrets.js +3 -1
- package/dist/domains/security-compliance/services/security-auditor.js +11 -9
- package/dist/domains/test-execution/coordinator.js +11 -9
- package/dist/domains/test-execution/services/auth-state-manager.d.ts +0 -3
- package/dist/domains/test-execution/services/auth-state-manager.js +4 -2
- package/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts +0 -14
- package/dist/domains/test-execution/services/e2e/e2e-coordinator.js +3 -1
- package/dist/domains/test-execution/services/flaky-detector.js +4 -2
- package/dist/domains/test-execution/services/retry-handler.js +3 -1
- package/dist/domains/test-execution/services/test-executor.js +3 -1
- package/dist/domains/test-generation/coordinator.d.ts +0 -17
- package/dist/domains/test-generation/coordinator.js +33 -31
- package/dist/domains/test-generation/pattern-injection/edge-case-injector.d.ts +0 -5
- package/dist/domains/test-generation/pattern-injection/edge-case-injector.js +3 -1
- package/dist/domains/test-generation/services/code-transform-integration.d.ts +0 -7
- package/dist/domains/test-generation/services/code-transform-integration.js +3 -1
- package/dist/domains/test-generation/services/coherence-gate-service.d.ts +0 -3
- package/dist/domains/test-generation/services/coherence-gate-service.js +3 -1
- package/dist/domains/test-generation/services/test-generator.d.ts +0 -8
- package/dist/domains/test-generation/services/test-generator.js +5 -3
- package/dist/domains/visual-accessibility/coordinator.d.ts +0 -3
- package/dist/domains/visual-accessibility/coordinator.js +14 -12
- package/dist/domains/visual-accessibility/services/accessibility-tester-browser.d.ts +0 -3
- package/dist/domains/visual-accessibility/services/accessibility-tester-browser.js +52 -50
- package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +0 -4
- package/dist/domains/visual-accessibility/services/accessibility-tester.js +8 -6
- package/dist/domains/visual-accessibility/services/axe-core-integration.d.ts +0 -3
- package/dist/domains/visual-accessibility/services/axe-core-integration.js +20 -18
- package/dist/domains/visual-accessibility/services/browser-security-scanner.d.ts +0 -4
- package/dist/domains/visual-accessibility/services/browser-security-scanner.js +6 -4
- package/dist/domains/visual-accessibility/services/browser-swarm-coordinator.d.ts +0 -30
- package/dist/domains/visual-accessibility/services/browser-swarm-coordinator.js +5 -3
- package/dist/domains/visual-accessibility/services/viewport-capture.d.ts +0 -27
- package/dist/domains/visual-accessibility/services/viewport-capture.js +6 -4
- package/dist/domains/visual-accessibility/services/visual-regression.d.ts +0 -26
- package/dist/domains/visual-accessibility/services/visual-regression.js +4 -2
- package/dist/domains/visual-accessibility/services/visual-tester.d.ts +0 -4
- package/dist/domains/visual-accessibility/services/visual-tester.js +4 -2
- package/dist/governance/deterministic-gateway-integration.js +1 -1
- package/dist/learning/agent-routing.d.ts +53 -0
- package/dist/learning/agent-routing.js +142 -0
- package/dist/learning/embedding-utils.d.ts +34 -0
- package/dist/learning/embedding-utils.js +95 -0
- package/dist/learning/pattern-promotion.d.ts +63 -0
- package/dist/learning/pattern-promotion.js +187 -0
- package/dist/learning/pretrained-patterns.d.ts +14 -0
- package/dist/learning/pretrained-patterns.js +726 -0
- package/dist/learning/qe-reasoning-bank-types.d.ts +174 -0
- package/dist/learning/qe-reasoning-bank-types.js +24 -0
- package/dist/learning/qe-reasoning-bank.d.ts +9 -192
- package/dist/learning/qe-reasoning-bank.js +48 -1093
- package/dist/mcp/bundle.js +335 -335
- package/dist/mcp/security/validators/command-validator.d.ts +1 -40
- package/dist/mcp/security/validators/command-validator.js +2 -122
- package/dist/mcp/security/validators/crypto-validator.d.ts +1 -39
- package/dist/mcp/security/validators/crypto-validator.js +2 -71
- package/dist/mcp/security/validators/input-sanitizer.d.ts +1 -55
- package/dist/mcp/security/validators/input-sanitizer.js +2 -156
- package/dist/mcp/security/validators/interfaces.d.ts +1 -163
- package/dist/mcp/security/validators/interfaces.js +2 -5
- package/dist/mcp/security/validators/path-traversal-validator.d.ts +1 -49
- package/dist/mcp/security/validators/path-traversal-validator.js +2 -241
- package/dist/mcp/security/validators/regex-safety-validator.d.ts +1 -49
- package/dist/mcp/security/validators/regex-safety-validator.js +2 -182
- package/dist/mcp/security/validators/validation-orchestrator.d.ts +1 -65
- package/dist/mcp/security/validators/validation-orchestrator.js +2 -145
- package/dist/shared/io/file-reader.js +1 -1
- package/dist/shared/security/command-validator.d.ts +44 -0
- package/dist/shared/security/command-validator.js +126 -0
- package/dist/shared/security/crypto-validator.d.ts +43 -0
- package/dist/shared/security/crypto-validator.js +75 -0
- package/dist/shared/security/index.d.ts +7 -0
- package/dist/shared/security/index.js +15 -0
- package/dist/shared/security/input-sanitizer.d.ts +59 -0
- package/dist/shared/security/input-sanitizer.js +160 -0
- package/dist/shared/security/path-traversal-validator.d.ts +53 -0
- package/dist/shared/security/path-traversal-validator.js +245 -0
- package/dist/shared/security/regex-safety-validator.d.ts +53 -0
- package/dist/shared/security/regex-safety-validator.js +186 -0
- package/dist/shared/security/validation-orchestrator.d.ts +69 -0
- package/dist/shared/security/validation-orchestrator.js +149 -0
- package/dist/shared/security/validators-interfaces.d.ts +167 -0
- package/dist/shared/security/validators-interfaces.js +9 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Agentic QE v3 - Performance Profiler Service
|
|
3
3
|
* Implements IResilienceTestingService for recovery, failover, and resilience testing
|
|
4
4
|
*/
|
|
5
|
+
import { LoggerFactory } from '../../../logging/index.js';
|
|
5
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
7
|
import { ok, err } from '../../../shared/types';
|
|
7
8
|
import { createHttpClient } from '../../../shared/http';
|
|
@@ -19,6 +20,7 @@ const DEFAULT_CONFIG = {
|
|
|
19
20
|
* Performance Profiler Service Implementation
|
|
20
21
|
* Tests system resilience, recovery, failover, circuit breakers, and rate limiting
|
|
21
22
|
*/
|
|
23
|
+
const logger = LoggerFactory.create('chaos-resilience/performance-profiler');
|
|
22
24
|
export class PerformanceProfilerService {
|
|
23
25
|
memory;
|
|
24
26
|
config;
|
|
@@ -420,11 +422,11 @@ export class PerformanceProfilerService {
|
|
|
420
422
|
}
|
|
421
423
|
catch (error) {
|
|
422
424
|
// Non-critical: real chaos API unavailable, using simulation
|
|
423
|
-
|
|
425
|
+
logger.debug('Fault injection API failed:');
|
|
424
426
|
}
|
|
425
427
|
}
|
|
426
428
|
// Simulation mode
|
|
427
|
-
|
|
429
|
+
logger.info(`Injecting fault ${faultType} into service: ${service}`);
|
|
428
430
|
await this.sleep(100);
|
|
429
431
|
}
|
|
430
432
|
async removeFault(service, faultType) {
|
|
@@ -437,11 +439,11 @@ export class PerformanceProfilerService {
|
|
|
437
439
|
}
|
|
438
440
|
catch (error) {
|
|
439
441
|
// Non-critical: real chaos API unavailable, using simulation
|
|
440
|
-
|
|
442
|
+
logger.debug('Fault removal API failed:');
|
|
441
443
|
}
|
|
442
444
|
}
|
|
443
445
|
// Simulation mode
|
|
444
|
-
|
|
446
|
+
logger.info(`Removing fault ${faultType} from service: ${service}`);
|
|
445
447
|
await this.sleep(50);
|
|
446
448
|
}
|
|
447
449
|
async captureServiceState(service) {
|
|
@@ -468,7 +470,7 @@ export class PerformanceProfilerService {
|
|
|
468
470
|
}
|
|
469
471
|
catch (error) {
|
|
470
472
|
// Non-critical: real state capture unavailable, using memory snapshot
|
|
471
|
-
|
|
473
|
+
logger.debug('State capture API failed:');
|
|
472
474
|
}
|
|
473
475
|
}
|
|
474
476
|
// Default state capture: use memory snapshot
|
|
@@ -548,7 +550,7 @@ export class PerformanceProfilerService {
|
|
|
548
550
|
this.httpClient.resetCircuit(service);
|
|
549
551
|
}
|
|
550
552
|
catch {
|
|
551
|
-
|
|
553
|
+
logger.info(`Resetting circuit breaker for: ${service}`);
|
|
552
554
|
}
|
|
553
555
|
}
|
|
554
556
|
async generateError(service) {
|
|
@@ -561,10 +563,10 @@ export class PerformanceProfilerService {
|
|
|
561
563
|
}
|
|
562
564
|
catch (error) {
|
|
563
565
|
// Non-critical: real chaos API unavailable, using simulation
|
|
564
|
-
|
|
566
|
+
logger.debug('Error generation API failed:');
|
|
565
567
|
}
|
|
566
568
|
}
|
|
567
|
-
|
|
569
|
+
logger.info(`Generating error for: ${service}`);
|
|
568
570
|
}
|
|
569
571
|
async sendSuccessfulRequest(service) {
|
|
570
572
|
// Skip real HTTP for non-HTTP URLs - return success deterministically
|
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
* Contains: consensus verification for code patterns, impact analysis, dependency mapping
|
|
6
6
|
*/
|
|
7
7
|
import type { ConsensusEnabledMixin } from '../../coordination/mixins/consensus-enabled-domain';
|
|
8
|
-
/**
|
|
9
|
-
* Verify a code pattern detection using multi-model consensus
|
|
10
|
-
*/
|
|
11
8
|
export declare function verifyCodePatternDetection(pattern: {
|
|
12
9
|
id: string;
|
|
13
10
|
name: string;
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Contains: consensus verification for code patterns, impact analysis, dependency mapping
|
|
6
6
|
*/
|
|
7
|
+
import { LoggerFactory } from '../../logging/index.js';
|
|
7
8
|
import { v4 as uuidv4 } from 'uuid';
|
|
8
9
|
import { createDomainFinding, } from '../../coordination/consensus/domain-findings';
|
|
9
10
|
/**
|
|
10
11
|
* Verify a code pattern detection using multi-model consensus
|
|
11
12
|
*/
|
|
13
|
+
const logger = LoggerFactory.create('code-intelligence/consensus');
|
|
12
14
|
export async function verifyCodePatternDetection(pattern, confidence, consensusMixin, domainName) {
|
|
13
15
|
const finding = createDomainFinding({
|
|
14
16
|
id: uuidv4(),
|
|
@@ -22,10 +24,10 @@ export async function verifyCodePatternDetection(pattern, confidence, consensusM
|
|
|
22
24
|
if (consensusMixin.requiresConsensus(finding)) {
|
|
23
25
|
const result = await consensusMixin.verifyFinding(finding);
|
|
24
26
|
if (result.success && result.value.verdict === 'verified') {
|
|
25
|
-
|
|
27
|
+
logger.info(`Code pattern '${pattern.name}' verified by consensus`);
|
|
26
28
|
return true;
|
|
27
29
|
}
|
|
28
|
-
|
|
30
|
+
logger.warn(`Code pattern '${pattern.name}' NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
|
|
29
31
|
return false;
|
|
30
32
|
}
|
|
31
33
|
return true;
|
|
@@ -46,10 +48,10 @@ export async function verifyImpactAnalysis(impact, confidence, consensusMixin, d
|
|
|
46
48
|
if (consensusMixin.requiresConsensus(finding)) {
|
|
47
49
|
const result = await consensusMixin.verifyFinding(finding);
|
|
48
50
|
if (result.success && result.value.verdict === 'verified') {
|
|
49
|
-
|
|
51
|
+
logger.info(`Impact analysis verified by consensus (risk=${impact.riskLevel})`);
|
|
50
52
|
return true;
|
|
51
53
|
}
|
|
52
|
-
|
|
54
|
+
logger.warn(`Impact analysis NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
|
|
53
55
|
return false;
|
|
54
56
|
}
|
|
55
57
|
return true;
|
|
@@ -70,10 +72,10 @@ export async function verifyDependencyMapping(dependency, confidence, consensusM
|
|
|
70
72
|
if (consensusMixin.requiresConsensus(finding)) {
|
|
71
73
|
const result = await consensusMixin.verifyFinding(finding);
|
|
72
74
|
if (result.success && result.value.verdict === 'verified') {
|
|
73
|
-
|
|
75
|
+
logger.info(`Dependency mapping verified by consensus`);
|
|
74
76
|
return true;
|
|
75
77
|
}
|
|
76
|
-
|
|
78
|
+
logger.warn(`Dependency mapping NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
|
|
77
79
|
return false;
|
|
78
80
|
}
|
|
79
81
|
return true;
|
|
@@ -7,9 +7,6 @@
|
|
|
7
7
|
import { QEGNNEmbeddingIndex } from '../../integrations/ruvector/wrappers';
|
|
8
8
|
import type { ImpactRequest, SearchResult } from './interfaces';
|
|
9
9
|
import { FileReader } from '../../shared/io';
|
|
10
|
-
/**
|
|
11
|
-
* Initialize GNN for code graph embeddings
|
|
12
|
-
*/
|
|
13
10
|
export declare function initializeGNNIndex(domainKey: string): QEGNNEmbeddingIndex;
|
|
14
11
|
/**
|
|
15
12
|
* Index code embeddings in GNN for fast similarity search
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Contains: GNN embedding indexing, code embedding generation, GNN search
|
|
6
6
|
*/
|
|
7
|
+
import { LoggerFactory } from '../../logging/index.js';
|
|
7
8
|
import { QEGNNIndexFactory, initGNN, } from '../../integrations/ruvector/wrappers';
|
|
8
9
|
/**
|
|
9
10
|
* Initialize GNN for code graph embeddings
|
|
10
11
|
*/
|
|
12
|
+
const logger = LoggerFactory.create('code-intelligence/gnn');
|
|
11
13
|
export function initializeGNNIndex(domainKey) {
|
|
12
14
|
initGNN();
|
|
13
15
|
const gnnIndex = QEGNNIndexFactory.getInstance(domainKey, {
|
|
@@ -44,13 +46,13 @@ export async function indexCodeEmbeddings(gnnIndex, fileReader, paths) {
|
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
48
|
catch (error) {
|
|
47
|
-
|
|
49
|
+
logger.error(`Failed to index ${path}:`, error instanceof Error ? error : undefined);
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
logger.info(`Indexed ${paths.length} code embeddings`);
|
|
51
53
|
}
|
|
52
54
|
catch (error) {
|
|
53
|
-
|
|
55
|
+
logger.error('Failed to index code embeddings:', error instanceof Error ? error : undefined);
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
@@ -102,7 +104,7 @@ export async function searchCodeWithGNN(gnnIndex, query) {
|
|
|
102
104
|
}));
|
|
103
105
|
}
|
|
104
106
|
catch (error) {
|
|
105
|
-
|
|
107
|
+
logger.error('Failed to search with GNN:', error instanceof Error ? error : undefined);
|
|
106
108
|
return [];
|
|
107
109
|
}
|
|
108
110
|
}
|
|
@@ -128,12 +130,12 @@ export async function enhanceImpactAnalysisWithGNN(gnnIndex, fileReader, request
|
|
|
128
130
|
limit: 5,
|
|
129
131
|
namespace: 'code',
|
|
130
132
|
});
|
|
131
|
-
|
|
133
|
+
logger.info(`Found ${similar.length} semantically similar files to ${changedFile}`);
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
}
|
|
135
137
|
catch (error) {
|
|
136
|
-
|
|
138
|
+
logger.error('Failed to enhance impact analysis:', error instanceof Error ? error : undefined);
|
|
137
139
|
}
|
|
138
140
|
}
|
|
139
141
|
/**
|
|
@@ -10,9 +10,6 @@ import { HypergraphEngine, type BuildResult as HypergraphBuildResult, type CodeI
|
|
|
10
10
|
import { type HypergraphNode } from '../../integrations/ruvector/hypergraph-schema.js';
|
|
11
11
|
import type { EventBus, MemoryBackend } from '../../kernel/interfaces';
|
|
12
12
|
import type { ImpactRequest, ImpactAnalysis } from './interfaces';
|
|
13
|
-
/**
|
|
14
|
-
* Initialize V3 Hypergraph Engine for code intelligence
|
|
15
|
-
*/
|
|
16
13
|
export declare function initializeHypergraph(hypergraphDbPath: string | undefined, enableGNN: boolean): Promise<{
|
|
17
14
|
engine: HypergraphEngine;
|
|
18
15
|
db: import('better-sqlite3').Database;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Contains: Hypergraph initialization, untested functions, impacted tests,
|
|
6
6
|
* coverage gaps, build from index, impact enhancement
|
|
7
7
|
*/
|
|
8
|
+
import { LoggerFactory } from '../../logging/index.js';
|
|
8
9
|
import { err } from '../../shared/types';
|
|
9
10
|
import { toError } from '../../shared/error-utils.js';
|
|
10
11
|
import { createHypergraphEngine, } from '../../integrations/ruvector/hypergraph-engine.js';
|
|
@@ -12,6 +13,7 @@ import { createEvent } from '../../shared/events/domain-events';
|
|
|
12
13
|
/**
|
|
13
14
|
* Initialize V3 Hypergraph Engine for code intelligence
|
|
14
15
|
*/
|
|
16
|
+
const logger = LoggerFactory.create('code-intelligence/hypergraph');
|
|
15
17
|
export async function initializeHypergraph(hypergraphDbPath, enableGNN) {
|
|
16
18
|
const { openDatabase } = await import('../../shared/safe-db.js');
|
|
17
19
|
const fs = await import('fs');
|
|
@@ -30,7 +32,7 @@ export async function initializeHypergraph(hypergraphDbPath, enableGNN) {
|
|
|
30
32
|
maxQueryResults: 1000,
|
|
31
33
|
enableVectorSearch: enableGNN,
|
|
32
34
|
});
|
|
33
|
-
|
|
35
|
+
logger.info(`Hypergraph Engine initialized at ${dbPath}`);
|
|
34
36
|
return { engine, db };
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
@@ -39,7 +41,7 @@ export async function initializeHypergraph(hypergraphDbPath, enableGNN) {
|
|
|
39
41
|
export async function findUntestedFunctions(hypergraph, eventBus, publishEvents) {
|
|
40
42
|
try {
|
|
41
43
|
const untestedFunctions = await hypergraph.findUntestedFunctions();
|
|
42
|
-
|
|
44
|
+
logger.info(`[CodeIntelligence] Found ${untestedFunctions.length} untested functions via hypergraph`);
|
|
43
45
|
if (publishEvents) {
|
|
44
46
|
const event = createEvent('code-intelligence.UntestedFunctionsFound', 'code-intelligence', {
|
|
45
47
|
count: untestedFunctions.length,
|
|
@@ -55,7 +57,7 @@ export async function findUntestedFunctions(hypergraph, eventBus, publishEvents)
|
|
|
55
57
|
}
|
|
56
58
|
catch (error) {
|
|
57
59
|
const errorObj = toError(error);
|
|
58
|
-
|
|
60
|
+
logger.error('Failed to find untested functions:');
|
|
59
61
|
return err(errorObj);
|
|
60
62
|
}
|
|
61
63
|
}
|
|
@@ -68,7 +70,7 @@ export async function findImpactedTestsFromHypergraph(hypergraph, changedFiles,
|
|
|
68
70
|
}
|
|
69
71
|
try {
|
|
70
72
|
const impactedTests = await hypergraph.findImpactedTests(changedFiles);
|
|
71
|
-
|
|
73
|
+
logger.info(`[CodeIntelligence] Found ${impactedTests.length} impacted tests for ` +
|
|
72
74
|
`${changedFiles.length} changed files via hypergraph`);
|
|
73
75
|
if (publishEvents) {
|
|
74
76
|
const event = createEvent('code-intelligence.ImpactedTestsFound', 'code-intelligence', {
|
|
@@ -85,7 +87,7 @@ export async function findImpactedTestsFromHypergraph(hypergraph, changedFiles,
|
|
|
85
87
|
}
|
|
86
88
|
catch (error) {
|
|
87
89
|
const errorObj = toError(error);
|
|
88
|
-
|
|
90
|
+
logger.error('Failed to find impacted tests:');
|
|
89
91
|
return err(errorObj);
|
|
90
92
|
}
|
|
91
93
|
}
|
|
@@ -95,7 +97,7 @@ export async function findImpactedTestsFromHypergraph(hypergraph, changedFiles,
|
|
|
95
97
|
export async function findCoverageGapsFromHypergraph(hypergraph, maxCoverage, eventBus, publishEvents) {
|
|
96
98
|
try {
|
|
97
99
|
const coverageGaps = await hypergraph.findCoverageGaps(maxCoverage);
|
|
98
|
-
|
|
100
|
+
logger.info(`[CodeIntelligence] Found ${coverageGaps.length} coverage gaps ` +
|
|
99
101
|
`(functions with <=${maxCoverage}% coverage) via hypergraph`);
|
|
100
102
|
if (publishEvents) {
|
|
101
103
|
const event = createEvent('code-intelligence.CoverageGapsFound', 'code-intelligence', {
|
|
@@ -114,7 +116,7 @@ export async function findCoverageGapsFromHypergraph(hypergraph, maxCoverage, ev
|
|
|
114
116
|
}
|
|
115
117
|
catch (error) {
|
|
116
118
|
const errorObj = toError(error);
|
|
117
|
-
|
|
119
|
+
logger.error('Failed to find coverage gaps:');
|
|
118
120
|
return err(errorObj);
|
|
119
121
|
}
|
|
120
122
|
}
|
|
@@ -123,9 +125,9 @@ export async function findCoverageGapsFromHypergraph(hypergraph, maxCoverage, ev
|
|
|
123
125
|
*/
|
|
124
126
|
export async function buildHypergraphFromIndex(hypergraph, indexResult, memory, eventBus, publishEvents) {
|
|
125
127
|
try {
|
|
126
|
-
|
|
128
|
+
logger.info(`[CodeIntelligence] Building hypergraph from ${indexResult.files.length} indexed files`);
|
|
127
129
|
const buildResult = await hypergraph.buildFromIndexResult(indexResult);
|
|
128
|
-
|
|
130
|
+
logger.info(`[CodeIntelligence] Hypergraph built: ` +
|
|
129
131
|
`${buildResult.nodesCreated} nodes created, ` +
|
|
130
132
|
`${buildResult.nodesUpdated} nodes updated, ` +
|
|
131
133
|
`${buildResult.edgesCreated} edges created ` +
|
|
@@ -148,7 +150,7 @@ export async function buildHypergraphFromIndex(hypergraph, indexResult, memory,
|
|
|
148
150
|
}
|
|
149
151
|
catch (error) {
|
|
150
152
|
const errorObj = toError(error);
|
|
151
|
-
|
|
153
|
+
logger.error('Failed to build hypergraph:');
|
|
152
154
|
return err(errorObj);
|
|
153
155
|
}
|
|
154
156
|
}
|
|
@@ -184,7 +186,7 @@ export async function enhanceImpactWithHypergraph(hypergraph, request, baseAnaly
|
|
|
184
186
|
};
|
|
185
187
|
}
|
|
186
188
|
catch (error) {
|
|
187
|
-
|
|
189
|
+
logger.error('Failed to enhance impact with hypergraph:', error instanceof Error ? error : undefined);
|
|
188
190
|
return baseAnalysis;
|
|
189
191
|
}
|
|
190
192
|
}
|
|
@@ -125,9 +125,6 @@ export interface CoordinatorConfig extends BaseDomainCoordinatorConfig {
|
|
|
125
125
|
* Orchestrates code intelligence workflows and coordinates with agents
|
|
126
126
|
*/
|
|
127
127
|
type CodeIntelligenceWorkflowType = 'index' | 'search' | 'impact' | 'dependency' | 'query';
|
|
128
|
-
/**
|
|
129
|
-
* CQ-002: Extends BaseDomainCoordinator
|
|
130
|
-
*/
|
|
131
128
|
export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<CoordinatorConfig, CodeIntelligenceWorkflowType> implements ICodeIntelligenceCoordinator {
|
|
132
129
|
private readonly memory;
|
|
133
130
|
private readonly agentCoordinator;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* - QEGNNEmbeddingIndex: Code graph embeddings with HNSW for fast similarity search
|
|
7
7
|
* - QESONA: Learns and adapts code patterns for improved intelligence
|
|
8
8
|
*/
|
|
9
|
+
import { LoggerFactory } from '../../logging/index.js';
|
|
9
10
|
import { v4 as uuidv4 } from 'uuid';
|
|
10
11
|
import { err } from '../../shared/types';
|
|
11
12
|
import { toError } from '../../shared/error-utils.js';
|
|
@@ -53,6 +54,7 @@ const DEFAULT_CONFIG = {
|
|
|
53
54
|
/**
|
|
54
55
|
* CQ-002: Extends BaseDomainCoordinator
|
|
55
56
|
*/
|
|
57
|
+
const logger = LoggerFactory.create('code-intelligence');
|
|
56
58
|
export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
57
59
|
memory;
|
|
58
60
|
agentCoordinator;
|
|
@@ -109,7 +111,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
109
111
|
enableCache: true,
|
|
110
112
|
cacheTTL: 300000, // 5 minutes
|
|
111
113
|
});
|
|
112
|
-
|
|
114
|
+
logger.info('MetricCollector initialized for real code metrics');
|
|
113
115
|
}
|
|
114
116
|
// V3: Initialize Hypergraph Engine for intelligent code analysis (GOAP Action 7)
|
|
115
117
|
if (this.config.enableHypergraph) {
|
|
@@ -146,10 +148,10 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
146
148
|
maxQueryResults: 1000,
|
|
147
149
|
enableVectorSearch: this.config.enableGNN,
|
|
148
150
|
});
|
|
149
|
-
|
|
151
|
+
logger.info(`Hypergraph Engine initialized at ${dbPath}`);
|
|
150
152
|
}
|
|
151
153
|
catch (error) {
|
|
152
|
-
|
|
154
|
+
logger.error('Failed to initialize Hypergraph Engine:', error instanceof Error ? error : undefined);
|
|
153
155
|
// Don't throw - hypergraph is optional, coordinator should still work
|
|
154
156
|
this.hypergraph = undefined;
|
|
155
157
|
this.hypergraphDb = undefined;
|
|
@@ -183,10 +185,10 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
183
185
|
maxPatterns: 10000,
|
|
184
186
|
minConfidence: 0.6,
|
|
185
187
|
});
|
|
186
|
-
|
|
188
|
+
logger.info('PersistentSONAEngine initialized for code pattern learning');
|
|
187
189
|
}
|
|
188
190
|
catch (error) {
|
|
189
|
-
|
|
191
|
+
logger.error('Failed to initialize PersistentSONAEngine:', error instanceof Error ? error : undefined);
|
|
190
192
|
// Continue without SONA - it's optional
|
|
191
193
|
this.sonaEngine = undefined;
|
|
192
194
|
}
|
|
@@ -194,7 +196,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
194
196
|
this.rlInitialized = true;
|
|
195
197
|
}
|
|
196
198
|
catch (error) {
|
|
197
|
-
|
|
199
|
+
logger.error('Failed to initialize RL integrations:', error instanceof Error ? error : undefined);
|
|
198
200
|
throw error;
|
|
199
201
|
}
|
|
200
202
|
}
|
|
@@ -216,7 +218,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
216
218
|
this.sonaEngine = undefined;
|
|
217
219
|
}
|
|
218
220
|
catch (error) {
|
|
219
|
-
|
|
221
|
+
logger.error('Error closing SONA engine:', error instanceof Error ? error : undefined);
|
|
220
222
|
}
|
|
221
223
|
}
|
|
222
224
|
// V3: Clean up Hypergraph Engine (GOAP Action 7)
|
|
@@ -225,7 +227,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
225
227
|
this.hypergraphDb.close();
|
|
226
228
|
}
|
|
227
229
|
catch (error) {
|
|
228
|
-
|
|
230
|
+
logger.error('Error closing hypergraph database:', error instanceof Error ? error : undefined);
|
|
229
231
|
}
|
|
230
232
|
this.hypergraphDb = undefined;
|
|
231
233
|
}
|
|
@@ -251,7 +253,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
251
253
|
this.startWorkflow(workflowId, 'index');
|
|
252
254
|
// ADR-047: Check topology health before expensive operations
|
|
253
255
|
if (this.config.enableMinCutAwareness && !this.isTopologyHealthy()) {
|
|
254
|
-
|
|
256
|
+
logger.warn(`Topology degraded, using conservative strategy`);
|
|
255
257
|
// Continue with reduced parallelism when topology is unhealthy
|
|
256
258
|
}
|
|
257
259
|
// ADR-047: Check if operations should be paused due to critical topology
|
|
@@ -328,7 +330,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
328
330
|
if (this.config.enableSONA && this.sonaEngine) {
|
|
329
331
|
const pattern = await this.adaptSearchPattern(request);
|
|
330
332
|
if (pattern.success && pattern.pattern) {
|
|
331
|
-
|
|
333
|
+
logger.info(`Adapted search pattern with ${pattern.similarity.toFixed(3)} similarity`);
|
|
332
334
|
}
|
|
333
335
|
}
|
|
334
336
|
// V3: Use GNN for enhanced code similarity search
|
|
@@ -373,7 +375,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
373
375
|
this.startWorkflow(workflowId, 'impact');
|
|
374
376
|
// ADR-047: Check topology health before expensive operations
|
|
375
377
|
if (this.config.enableMinCutAwareness && !this.isTopologyHealthy()) {
|
|
376
|
-
|
|
378
|
+
logger.warn(`Topology degraded, using conservative impact analysis`);
|
|
377
379
|
}
|
|
378
380
|
// ADR-047: Check if operations should be paused due to critical topology
|
|
379
381
|
if (this.minCutMixin.shouldPauseOperations()) {
|
|
@@ -526,7 +528,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
526
528
|
};
|
|
527
529
|
}
|
|
528
530
|
catch (error) {
|
|
529
|
-
|
|
531
|
+
logger.error('Failed to adapt search pattern:', error instanceof Error ? error : undefined);
|
|
530
532
|
return { success: false, pattern: null, similarity: 0 };
|
|
531
533
|
}
|
|
532
534
|
}
|
|
@@ -563,10 +565,10 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
563
565
|
impactCount: analysis.directImpact.length + analysis.transitiveImpact.length,
|
|
564
566
|
testImpactCount: analysis.impactedTests.length,
|
|
565
567
|
});
|
|
566
|
-
|
|
568
|
+
logger.info(`Stored impact pattern ${pattern.id}`);
|
|
567
569
|
}
|
|
568
570
|
catch (error) {
|
|
569
|
-
|
|
571
|
+
logger.error('Failed to store impact pattern:', error instanceof Error ? error : undefined);
|
|
570
572
|
}
|
|
571
573
|
}
|
|
572
574
|
// ============================================================================
|
|
@@ -770,7 +772,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
770
772
|
this.updateWorkflowProgress(workflowId, 100);
|
|
771
773
|
this.completeWorkflow(workflowId);
|
|
772
774
|
// The bridge already publishes the event, but we can add correlation here
|
|
773
|
-
|
|
775
|
+
logger.info(`[CodeIntelligenceCoordinator] C4 diagrams generated for ${projectPath}: ` +
|
|
774
776
|
`${result.value.components.length} components, ` +
|
|
775
777
|
`${result.value.externalSystems.length} external systems`);
|
|
776
778
|
}
|
|
@@ -829,18 +831,18 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
829
831
|
return err(new Error('MetricCollector is not enabled'));
|
|
830
832
|
}
|
|
831
833
|
try {
|
|
832
|
-
|
|
834
|
+
logger.info(`Collecting real metrics for ${projectPath}`);
|
|
833
835
|
// Collect all metrics using actual tooling
|
|
834
836
|
const metrics = await this.metricCollector.collectAll(projectPath);
|
|
835
837
|
// Fix #281: Log tool source; node-native is accurate, only legacy 'fallback' is approximate
|
|
836
838
|
const toolsLabel = metrics.toolsUsed.length > 0
|
|
837
839
|
? metrics.toolsUsed.join(', ')
|
|
838
840
|
: metrics.loc.source === 'node-native' ? 'node-native' : 'fallback';
|
|
839
|
-
|
|
841
|
+
logger.info(`[CodeIntelligence] Real metrics collected: ` +
|
|
840
842
|
`${metrics.loc.total} LOC, ${metrics.tests.total} tests, ` +
|
|
841
843
|
`tools: ${toolsLabel}`);
|
|
842
844
|
if (metrics.loc.source === 'node-native') {
|
|
843
|
-
|
|
845
|
+
logger.info(`[CodeIntelligence] Using Node.js-native line counter (no cloc/tokei needed)`);
|
|
844
846
|
}
|
|
845
847
|
// Store metrics in memory for cross-domain access
|
|
846
848
|
await this.storeProjectMetricsInMemory(projectPath, metrics);
|
|
@@ -858,7 +860,7 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
858
860
|
}
|
|
859
861
|
catch (error) {
|
|
860
862
|
const errorObj = toError(error);
|
|
861
|
-
|
|
863
|
+
logger.error('Failed to collect metrics:');
|
|
862
864
|
return err(errorObj);
|
|
863
865
|
}
|
|
864
866
|
}
|
|
@@ -35,9 +35,6 @@ export interface IC4ModelService {
|
|
|
35
35
|
/** Analyze architecture from component diagram */
|
|
36
36
|
analyzeArchitecture(diagram: C4ComponentDiagram): Promise<Result<ArchitectureAnalysis, Error>>;
|
|
37
37
|
}
|
|
38
|
-
/**
|
|
39
|
-
* C4 Model Service for generating architecture diagrams
|
|
40
|
-
*/
|
|
41
38
|
export declare class C4ModelService implements IC4ModelService {
|
|
42
39
|
private readonly memory;
|
|
43
40
|
private readonly embedder;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* - Memory-backed storage for diagram retrieval
|
|
10
10
|
* - Integration with graph-boundaries analyzer
|
|
11
11
|
*/
|
|
12
|
+
import { LoggerFactory } from '../../../../logging/index.js';
|
|
12
13
|
import { ok, err } from '@shared/types';
|
|
13
14
|
import { NomicEmbedder } from '@shared/embeddings';
|
|
14
15
|
// Re-export types
|
|
@@ -24,6 +25,7 @@ const DEFAULT_MEMORY_NAMESPACE = 'code-intelligence:c4';
|
|
|
24
25
|
/**
|
|
25
26
|
* C4 Model Service for generating architecture diagrams
|
|
26
27
|
*/
|
|
28
|
+
const logger = LoggerFactory.create('code-intelligence/c4-model');
|
|
27
29
|
export class C4ModelService {
|
|
28
30
|
memory;
|
|
29
31
|
embedder;
|
|
@@ -98,7 +100,7 @@ export class C4ModelService {
|
|
|
98
100
|
}
|
|
99
101
|
catch (embedError) {
|
|
100
102
|
// Non-fatal: continue without embedding
|
|
101
|
-
|
|
103
|
+
logger.warn('Failed to generate embedding:');
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
106
|
// Build diagram
|
|
@@ -170,7 +172,7 @@ export class C4ModelService {
|
|
|
170
172
|
metadata.embedding = await this.embedder.embed(embeddingText);
|
|
171
173
|
}
|
|
172
174
|
catch (embedError) {
|
|
173
|
-
|
|
175
|
+
logger.warn('Failed to generate embedding:');
|
|
174
176
|
}
|
|
175
177
|
}
|
|
176
178
|
// Build diagram
|
|
@@ -251,7 +253,7 @@ export class C4ModelService {
|
|
|
251
253
|
metadata.embedding = await this.embedder.embed(embeddingText);
|
|
252
254
|
}
|
|
253
255
|
catch (embedError) {
|
|
254
|
-
|
|
256
|
+
logger.warn('Failed to generate embedding:');
|
|
255
257
|
}
|
|
256
258
|
}
|
|
257
259
|
// Build diagram
|
|
@@ -50,12 +50,6 @@ export interface KnowledgeGraphDependencies {
|
|
|
50
50
|
/** ADR-051: Optional LLM router for AI-enhanced extraction */
|
|
51
51
|
llmRouter?: HybridRouter;
|
|
52
52
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Knowledge Graph Service Implementation
|
|
55
|
-
* Builds and manages the code knowledge graph with relationships
|
|
56
|
-
*
|
|
57
|
-
* ADR-051: Added LLM enhancement for AI-powered knowledge extraction
|
|
58
|
-
*/
|
|
59
53
|
export declare class KnowledgeGraphService implements IKnowledgeGraphService {
|
|
60
54
|
private readonly config;
|
|
61
55
|
private readonly memory;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Agentic QE v3 - Knowledge Graph Service
|
|
3
3
|
* Builds and queries knowledge graph for code relationships
|
|
4
4
|
*/
|
|
5
|
+
import { LoggerFactory } from '../../../logging/index.js';
|
|
5
6
|
import { ok, err } from '../../../shared/types';
|
|
6
7
|
import { TypeScriptParser } from '../../../shared/parsers';
|
|
7
8
|
import { FileReader } from '../../../shared/io';
|
|
@@ -24,6 +25,7 @@ const DEFAULT_CONFIG = {
|
|
|
24
25
|
*
|
|
25
26
|
* ADR-051: Added LLM enhancement for AI-powered knowledge extraction
|
|
26
27
|
*/
|
|
28
|
+
const logger = LoggerFactory.create('code-intelligence/knowledge-graph');
|
|
27
29
|
export class KnowledgeGraphService {
|
|
28
30
|
config;
|
|
29
31
|
memory;
|
|
@@ -289,7 +291,7 @@ Be precise and only report high-confidence findings.`,
|
|
|
289
291
|
return { semanticRelationships: [], designPatterns: [], architecturalBoundaries: [], dependencyImpacts: [] };
|
|
290
292
|
}
|
|
291
293
|
catch (error) {
|
|
292
|
-
|
|
294
|
+
logger.warn('LLM relationship extraction failed:');
|
|
293
295
|
return { semanticRelationships: [], designPatterns: [], architecturalBoundaries: [], dependencyImpacts: [] };
|
|
294
296
|
}
|
|
295
297
|
}
|
|
@@ -400,7 +402,7 @@ Return JSON: { "rankedIds": ["id1", "id2", ...], "insights": ["insight1", "insig
|
|
|
400
402
|
return { enhancedResults: results, insights: [] };
|
|
401
403
|
}
|
|
402
404
|
catch (error) {
|
|
403
|
-
|
|
405
|
+
logger.warn('LLM query enhancement failed:');
|
|
404
406
|
return { enhancedResults: results, insights: [] };
|
|
405
407
|
}
|
|
406
408
|
}
|
|
@@ -40,11 +40,6 @@ export interface IProductFactorsBridge {
|
|
|
40
40
|
/** Get components for a project */
|
|
41
41
|
getComponents(projectPath: string): Promise<Result<DetectedComponent[], Error>>;
|
|
42
42
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Product Factors Bridge Service
|
|
45
|
-
*
|
|
46
|
-
* Bridges code-intelligence C4 capabilities with product-factors-assessor.
|
|
47
|
-
*/
|
|
48
43
|
export declare class ProductFactorsBridgeService implements IProductFactorsBridge, IC4DiagramGenerator {
|
|
49
44
|
private readonly eventBus;
|
|
50
45
|
private readonly memory;
|