mcp-adr-analysis-server 2.0.21 → 2.1.0
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/README.md +94 -839
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/config/ai-config.d.ts.map +1 -1
- package/dist/src/config/ai-config.js +9 -9
- package/dist/src/config/ai-config.js.map +1 -1
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1594 -837
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/analysis-prompts.d.ts +4 -1
- package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
- package/dist/src/prompts/analysis-prompts.js +61 -30
- package/dist/src/prompts/analysis-prompts.js.map +1 -1
- package/dist/src/prompts/index.d.ts +17 -1
- package/dist/src/prompts/index.d.ts.map +1 -1
- package/dist/src/prompts/index.js +325 -1
- package/dist/src/prompts/index.js.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.js +5 -1
- package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
- package/dist/src/prompts/security-prompts.d.ts +6 -1
- package/dist/src/prompts/security-prompts.d.ts.map +1 -1
- package/dist/src/prompts/security-prompts.js +6 -1
- package/dist/src/prompts/security-prompts.js.map +1 -1
- package/dist/src/prompts/todo-prompts.d.ts +49 -0
- package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
- package/dist/src/prompts/todo-prompts.js +824 -0
- package/dist/src/prompts/todo-prompts.js.map +1 -0
- package/dist/src/resources/index.d.ts.map +1 -1
- package/dist/src/resources/index.js +9 -7
- package/dist/src/resources/index.js.map +1 -1
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +330 -32
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/content-masking-tool.d.ts +5 -0
- package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
- package/dist/src/tools/content-masking-tool.js +631 -28
- package/dist/src/tools/content-masking-tool.js.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
- package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.js +1017 -93
- package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
- package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
- package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
- package/dist/src/tools/environment-analysis-tool.js +568 -24
- package/dist/src/tools/environment-analysis-tool.js.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
- package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
- package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-planning-tool.js +316 -183
- package/dist/src/tools/mcp-planning-tool.js.map +1 -1
- package/dist/src/tools/memory-loading-tool.d.ts +60 -0
- package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
- package/dist/src/tools/memory-loading-tool.js +457 -0
- package/dist/src/tools/memory-loading-tool.js.map +1 -0
- package/dist/src/tools/research-integration-tool.d.ts +4 -1
- package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
- package/dist/src/tools/research-integration-tool.js +5 -1
- package/dist/src/tools/research-integration-tool.js.map +1 -1
- package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
- package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
- package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
- package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
- package/dist/src/tools/rule-generation-tool.d.ts +2 -0
- package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
- package/dist/src/tools/rule-generation-tool.js +274 -33
- package/dist/src/tools/rule-generation-tool.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
- package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
- package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
- package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool.js +241 -235
- package/dist/src/tools/smart-git-push-tool.js.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
- package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.js +152 -93
- package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
- package/dist/src/types/ape-framework.d.ts +93 -0
- package/dist/src/types/ape-framework.d.ts.map +1 -1
- package/dist/src/types/ape-framework.js +10 -10
- package/dist/src/types/ape-framework.js.map +1 -1
- package/dist/src/types/enhanced-errors.d.ts +173 -0
- package/dist/src/types/enhanced-errors.d.ts.map +1 -0
- package/dist/src/types/enhanced-errors.js +668 -0
- package/dist/src/types/enhanced-errors.js.map +1 -0
- package/dist/src/types/index.d.ts +129 -3
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +15 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/knowledge-generation.d.ts +78 -0
- package/dist/src/types/knowledge-generation.d.ts.map +1 -1
- package/dist/src/types/knowledge-generation.js +10 -6
- package/dist/src/types/knowledge-generation.js.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
- package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.js +45 -17
- package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
- package/dist/src/types/memory-entities.d.ts +7209 -0
- package/dist/src/types/memory-entities.d.ts.map +1 -0
- package/dist/src/types/memory-entities.js +395 -0
- package/dist/src/types/memory-entities.js.map +1 -0
- package/dist/src/types/reflexion-framework.d.ts +44 -0
- package/dist/src/types/reflexion-framework.d.ts.map +1 -1
- package/dist/src/types/reflexion-framework.js +7 -7
- package/dist/src/types/reflexion-framework.js.map +1 -1
- package/dist/src/types/todo-json-schemas.d.ts +7 -653
- package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
- package/dist/src/types/todo-json-schemas.js +6 -110
- package/dist/src/types/todo-json-schemas.js.map +1 -1
- package/dist/src/types/tool-arguments.d.ts +224 -0
- package/dist/src/types/tool-arguments.d.ts.map +1 -0
- package/dist/src/types/tool-arguments.js +6 -0
- package/dist/src/types/tool-arguments.js.map +1 -0
- package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
- package/dist/src/utils/actual-file-operations.js +25 -9
- package/dist/src/utils/actual-file-operations.js.map +1 -1
- package/dist/src/utils/adr-discovery.d.ts +33 -1
- package/dist/src/utils/adr-discovery.d.ts.map +1 -1
- package/dist/src/utils/adr-discovery.js +14 -9
- package/dist/src/utils/adr-discovery.js.map +1 -1
- package/dist/src/utils/adr-suggestions.d.ts +72 -0
- package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
- package/dist/src/utils/adr-suggestions.js +6 -0
- package/dist/src/utils/adr-suggestions.js.map +1 -1
- package/dist/src/utils/cache.d.ts.map +1 -1
- package/dist/src/utils/cache.js +22 -19
- package/dist/src/utils/cache.js.map +1 -1
- package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
- package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
- package/dist/src/utils/chain-of-thought-template.js +31 -22
- package/dist/src/utils/chain-of-thought-template.js.map +1 -1
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +1 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/directory-compat.js +1 -1
- package/dist/src/utils/directory-compat.js.map +1 -1
- package/dist/src/utils/enhanced-logging.d.ts +195 -0
- package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
- package/dist/src/utils/enhanced-logging.js +449 -0
- package/dist/src/utils/enhanced-logging.js.map +1 -0
- package/dist/src/utils/file-system.d.ts +182 -34
- package/dist/src/utils/file-system.d.ts.map +1 -1
- package/dist/src/utils/file-system.js +648 -774
- package/dist/src/utils/file-system.js.map +1 -1
- package/dist/src/utils/gitleaks-detector.d.ts +50 -0
- package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
- package/dist/src/utils/gitleaks-detector.js +334 -0
- package/dist/src/utils/gitleaks-detector.js.map +1 -0
- package/dist/src/utils/interactive-approval.d.ts +1 -1
- package/dist/src/utils/interactive-approval.d.ts.map +1 -1
- package/dist/src/utils/interactive-approval.js +22 -17
- package/dist/src/utils/interactive-approval.js.map +1 -1
- package/dist/src/utils/json-safe.d.ts.map +1 -1
- package/dist/src/utils/json-safe.js +9 -6
- package/dist/src/utils/json-safe.js.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.js +315 -70
- package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
- package/dist/src/utils/location-filter.d.ts +35 -10
- package/dist/src/utils/location-filter.d.ts.map +1 -1
- package/dist/src/utils/location-filter.js +360 -94
- package/dist/src/utils/location-filter.js.map +1 -1
- package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
- package/dist/src/utils/mcp-response-validator.js +34 -19
- package/dist/src/utils/mcp-response-validator.js.map +1 -1
- package/dist/src/utils/memory-entity-manager.d.ts +134 -0
- package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-entity-manager.js +851 -0
- package/dist/src/utils/memory-entity-manager.js.map +1 -0
- package/dist/src/utils/memory-health-scoring.d.ts +125 -0
- package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
- package/dist/src/utils/memory-health-scoring.js +277 -0
- package/dist/src/utils/memory-health-scoring.js.map +1 -0
- package/dist/src/utils/memory-migration-manager.d.ts +93 -0
- package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-migration-manager.js +842 -0
- package/dist/src/utils/memory-migration-manager.js.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.js +482 -0
- package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
- package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
- package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-rollback-manager.js +575 -0
- package/dist/src/utils/memory-rollback-manager.js.map +1 -0
- package/dist/src/utils/memory-transformation.d.ts +59 -0
- package/dist/src/utils/memory-transformation.d.ts.map +1 -0
- package/dist/src/utils/memory-transformation.js +742 -0
- package/dist/src/utils/memory-transformation.js.map +1 -0
- package/dist/src/utils/output-masking.d.ts +12 -0
- package/dist/src/utils/output-masking.d.ts.map +1 -1
- package/dist/src/utils/output-masking.js +5 -0
- package/dist/src/utils/output-masking.js.map +1 -1
- package/dist/src/utils/prompt-execution.d.ts.map +1 -1
- package/dist/src/utils/prompt-execution.js +72 -51
- package/dist/src/utils/prompt-execution.js.map +1 -1
- package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
- package/dist/src/utils/release-readiness-detector.js +43 -42
- package/dist/src/utils/release-readiness-detector.js.map +1 -1
- package/dist/src/utils/research-integration.d.ts.map +1 -1
- package/dist/src/utils/research-integration.js +73 -44
- package/dist/src/utils/research-integration.js.map +1 -1
- package/dist/src/utils/research-questions.d.ts.map +1 -1
- package/dist/src/utils/research-questions.js +40 -14
- package/dist/src/utils/research-questions.js.map +1 -1
- package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
- package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
- package/dist/src/utils/ripgrep-wrapper.js +255 -0
- package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
- package/dist/src/utils/rule-generation.d.ts.map +1 -1
- package/dist/src/utils/rule-generation.js +26 -15
- package/dist/src/utils/rule-generation.js.map +1 -1
- package/dist/src/utils/todo-file-watcher.d.ts +11 -23
- package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
- package/dist/src/utils/todo-file-watcher.js +18 -156
- package/dist/src/utils/todo-file-watcher.js.map +1 -1
- package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
- package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
- package/dist/src/utils/tree-sitter-analyzer.js +885 -0
- package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
- package/package.json +51 -10
- package/dist/src/tools/smart-score-tool.d.ts +0 -173
- package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
- package/dist/src/tools/smart-score-tool.js +0 -681
- package/dist/src/tools/smart-score-tool.js.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
- package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.js +0 -922
- package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
- package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
- package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
- package/dist/src/utils/project-health-scoring.d.ts +0 -177
- package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
- package/dist/src/utils/project-health-scoring.js +0 -370
- package/dist/src/utils/project-health-scoring.js.map +0 -1
- package/dist/src/utils/todo-json-manager.d.ts +0 -71
- package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
- package/dist/src/utils/todo-json-manager.js +0 -396
- package/dist/src/utils/todo-json-manager.js.map +0 -1
- package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
- package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
- package/dist/src/utils/todo-markdown-converter.js +0 -362
- package/dist/src/utils/todo-markdown-converter.js.map +0 -1
- package/dist/src/utils/todo-migration.d.ts +0 -47
- package/dist/src/utils/todo-migration.d.ts.map +0 -1
- package/dist/src/utils/todo-migration.js +0 -261
- package/dist/src/utils/todo-migration.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-migration-manager.js","sourceRoot":"","sources":["../../../src/utils/memory-migration-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Relationship Mapper
|
|
3
|
+
*
|
|
4
|
+
* Intelligent relationship mapping utility for creating connections between
|
|
5
|
+
* memory entities across different tools. Enables troubleshooting sessions
|
|
6
|
+
* to reference environment snapshots, deployment assessments to validate
|
|
7
|
+
* against ADRs, and builds comprehensive project knowledge graph.
|
|
8
|
+
*/
|
|
9
|
+
import { MemoryEntityManager } from './memory-entity-manager.js';
|
|
10
|
+
import { MemoryRelationship } from '../types/memory-entities.js';
|
|
11
|
+
export interface CrossToolRelationshipConfig {
|
|
12
|
+
temporalThreshold: number;
|
|
13
|
+
contextSimilarityThreshold: number;
|
|
14
|
+
confidenceThreshold: number;
|
|
15
|
+
enableInferenceLearning: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface RelationshipInferenceResult {
|
|
18
|
+
suggestedRelationships: Array<{
|
|
19
|
+
sourceId: string;
|
|
20
|
+
targetId: string;
|
|
21
|
+
type: MemoryRelationship['type'];
|
|
22
|
+
confidence: number;
|
|
23
|
+
reasoning: string;
|
|
24
|
+
evidence: string[];
|
|
25
|
+
}>;
|
|
26
|
+
conflicts: Array<{
|
|
27
|
+
description: string;
|
|
28
|
+
entityIds: string[];
|
|
29
|
+
severity: 'low' | 'medium' | 'high';
|
|
30
|
+
recommendation: string;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
export declare class MemoryRelationshipMapper {
|
|
34
|
+
private memoryManager;
|
|
35
|
+
private logger;
|
|
36
|
+
private config;
|
|
37
|
+
constructor(memoryManager: MemoryEntityManager, config?: Partial<CrossToolRelationshipConfig>);
|
|
38
|
+
/**
|
|
39
|
+
* Create all cross-tool relationships across the knowledge graph
|
|
40
|
+
*/
|
|
41
|
+
createCrossToolRelationships(): Promise<RelationshipInferenceResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Link troubleshooting sessions to environment snapshots
|
|
44
|
+
*/
|
|
45
|
+
private linkTroubleshootingToEnvironment;
|
|
46
|
+
/**
|
|
47
|
+
* Link deployment assessments to ADR compliance
|
|
48
|
+
*/
|
|
49
|
+
private linkDeploymentToADRs;
|
|
50
|
+
/**
|
|
51
|
+
* Link security patterns to architectural decisions
|
|
52
|
+
*/
|
|
53
|
+
private linkSecurityToArchitecture;
|
|
54
|
+
/**
|
|
55
|
+
* Link failure patterns to troubleshooting sessions
|
|
56
|
+
*/
|
|
57
|
+
private linkFailuresToTroubleshooting;
|
|
58
|
+
/**
|
|
59
|
+
* Link environment snapshots to deployment assessments
|
|
60
|
+
*/
|
|
61
|
+
private linkEnvironmentToDeployment;
|
|
62
|
+
/**
|
|
63
|
+
* Auto-create relationships with high confidence scores
|
|
64
|
+
*/
|
|
65
|
+
private autoCreateHighConfidenceRelationships;
|
|
66
|
+
private queryEntitiesByType;
|
|
67
|
+
private findTemporallyRelatedEnvironments;
|
|
68
|
+
private calculateEnvironmentSessionConfidence;
|
|
69
|
+
private calculateAdrComplianceScore;
|
|
70
|
+
private calculateSecurityArchitectureConfidence;
|
|
71
|
+
private hasSecurityArchitectureRelation;
|
|
72
|
+
private hasFailureSessionMatch;
|
|
73
|
+
private calculateFailureSessionConfidence;
|
|
74
|
+
private hasEnvironmentDeploymentRelation;
|
|
75
|
+
private calculateEnvironmentDeploymentConfidence;
|
|
76
|
+
private getTemporalOverlap;
|
|
77
|
+
private getEnvironmentMatch;
|
|
78
|
+
private getContextSimilarity;
|
|
79
|
+
private getTechnicalStackOverlap;
|
|
80
|
+
private getArrayOverlap;
|
|
81
|
+
private getTemporalProximityScore;
|
|
82
|
+
private getErrorSignatureSimilarity;
|
|
83
|
+
private getEnvironmentOverlap;
|
|
84
|
+
private getConfigurationOverlap;
|
|
85
|
+
private extractArchitectureDomain;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=memory-relationship-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-relationship-mapper.d.ts","sourceRoot":"","sources":["../../../src/utils/memory-relationship-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAEL,kBAAkB,EAOnB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0BAA0B,EAAE,MAAM,CAAC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB,EAAE,KAAK,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjC,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC,CAAC;IACH,SAAS,EAAE,KAAK,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAA8B;gBAEhC,aAAa,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC;IAY7F;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAwD1E;;OAEG;YACW,gCAAgC;IA0C9C;;OAEG;YACW,oBAAoB;IA6ClC;;OAEG;YACW,0BAA0B;IAqCxC;;OAEG;YACW,6BAA6B;IAqC3C;;OAEG;YACW,2BAA2B;IAqCzC;;OAEG;YACW,qCAAqC;YAqCrC,mBAAmB;YAOnB,iCAAiC;IAc/C,OAAO,CAAC,qCAAqC;IA8B7C,OAAO,CAAC,2BAA2B;IAkEnC,OAAO,CAAC,uCAAuC;IAmB/C,OAAO,CAAC,+BAA+B;IAcvC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,iCAAiC;IAkBzC,OAAO,CAAC,gCAAgC;IAOxC,OAAO,CAAC,wCAAwC;IAoBhD,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,2BAA2B;IAyBnC,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,yBAAyB;CAYlC"}
|
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Relationship Mapper
|
|
3
|
+
*
|
|
4
|
+
* Intelligent relationship mapping utility for creating connections between
|
|
5
|
+
* memory entities across different tools. Enables troubleshooting sessions
|
|
6
|
+
* to reference environment snapshots, deployment assessments to validate
|
|
7
|
+
* against ADRs, and builds comprehensive project knowledge graph.
|
|
8
|
+
*/
|
|
9
|
+
import { EnhancedLogger } from './enhanced-logging.js';
|
|
10
|
+
import { McpAdrError } from '../types/index.js';
|
|
11
|
+
export class MemoryRelationshipMapper {
|
|
12
|
+
memoryManager;
|
|
13
|
+
logger;
|
|
14
|
+
config;
|
|
15
|
+
constructor(memoryManager, config) {
|
|
16
|
+
this.memoryManager = memoryManager;
|
|
17
|
+
this.logger = new EnhancedLogger();
|
|
18
|
+
this.config = {
|
|
19
|
+
temporalThreshold: 24, // 24 hours
|
|
20
|
+
contextSimilarityThreshold: 0.7,
|
|
21
|
+
confidenceThreshold: 0.8,
|
|
22
|
+
enableInferenceLearning: true,
|
|
23
|
+
...config,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create all cross-tool relationships across the knowledge graph
|
|
28
|
+
*/
|
|
29
|
+
async createCrossToolRelationships() {
|
|
30
|
+
this.logger.info('Starting cross-tool relationship mapping', 'MemoryRelationshipMapper');
|
|
31
|
+
const allResults = {
|
|
32
|
+
suggestedRelationships: [],
|
|
33
|
+
conflicts: [],
|
|
34
|
+
};
|
|
35
|
+
try {
|
|
36
|
+
// 1. Link troubleshooting sessions to environment snapshots
|
|
37
|
+
const troubleshootingEnvResult = await this.linkTroubleshootingToEnvironment();
|
|
38
|
+
allResults.suggestedRelationships.push(...troubleshootingEnvResult.suggestedRelationships);
|
|
39
|
+
allResults.conflicts.push(...troubleshootingEnvResult.conflicts);
|
|
40
|
+
// 2. Link deployment assessments to ADR compliance
|
|
41
|
+
const deploymentAdrResult = await this.linkDeploymentToADRs();
|
|
42
|
+
allResults.suggestedRelationships.push(...deploymentAdrResult.suggestedRelationships);
|
|
43
|
+
allResults.conflicts.push(...deploymentAdrResult.conflicts);
|
|
44
|
+
// 3. Link security patterns to architectural decisions
|
|
45
|
+
const securityArchResult = await this.linkSecurityToArchitecture();
|
|
46
|
+
allResults.suggestedRelationships.push(...securityArchResult.suggestedRelationships);
|
|
47
|
+
allResults.conflicts.push(...securityArchResult.conflicts);
|
|
48
|
+
// 4. Link failure patterns to troubleshooting sessions
|
|
49
|
+
const failureTroubleshootingResult = await this.linkFailuresToTroubleshooting();
|
|
50
|
+
allResults.suggestedRelationships.push(...failureTroubleshootingResult.suggestedRelationships);
|
|
51
|
+
allResults.conflicts.push(...failureTroubleshootingResult.conflicts);
|
|
52
|
+
// 5. Link environment snapshots to deployment assessments
|
|
53
|
+
const envDeploymentResult = await this.linkEnvironmentToDeployment();
|
|
54
|
+
allResults.suggestedRelationships.push(...envDeploymentResult.suggestedRelationships);
|
|
55
|
+
allResults.conflicts.push(...envDeploymentResult.conflicts);
|
|
56
|
+
// 6. Auto-create high-confidence relationships
|
|
57
|
+
await this.autoCreateHighConfidenceRelationships(allResults.suggestedRelationships);
|
|
58
|
+
this.logger.info('Cross-tool relationship mapping completed', 'MemoryRelationshipMapper', {
|
|
59
|
+
suggestedCount: allResults.suggestedRelationships.length,
|
|
60
|
+
conflictCount: allResults.conflicts.length,
|
|
61
|
+
autoCreatedCount: allResults.suggestedRelationships.filter(r => r.confidence >= this.config.confidenceThreshold).length,
|
|
62
|
+
});
|
|
63
|
+
return allResults;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
throw new McpAdrError(`Cross-tool relationship mapping failed: ${error instanceof Error ? error.message : String(error)}`, 'RELATIONSHIP_MAPPING_ERROR');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Link troubleshooting sessions to environment snapshots
|
|
71
|
+
*/
|
|
72
|
+
async linkTroubleshootingToEnvironment() {
|
|
73
|
+
const troubleshootingSessions = (await this.queryEntitiesByType('troubleshooting_session'));
|
|
74
|
+
const environmentSnapshots = (await this.queryEntitiesByType('environment_snapshot'));
|
|
75
|
+
const result = {
|
|
76
|
+
suggestedRelationships: [],
|
|
77
|
+
conflicts: [],
|
|
78
|
+
};
|
|
79
|
+
for (const session of troubleshootingSessions) {
|
|
80
|
+
const relatedEnvs = await this.findTemporallyRelatedEnvironments(session, environmentSnapshots);
|
|
81
|
+
for (const env of relatedEnvs) {
|
|
82
|
+
const confidence = this.calculateEnvironmentSessionConfidence(session, env);
|
|
83
|
+
if (confidence >= 0.6) {
|
|
84
|
+
result.suggestedRelationships.push({
|
|
85
|
+
sourceId: session.id,
|
|
86
|
+
targetId: env.id,
|
|
87
|
+
type: 'occurred_in',
|
|
88
|
+
confidence,
|
|
89
|
+
reasoning: `Troubleshooting session occurred during environment snapshot timeframe with matching context`,
|
|
90
|
+
evidence: [
|
|
91
|
+
`Temporal overlap: ${this.getTemporalOverlap(session.created, env.created)}`,
|
|
92
|
+
`Environment match: ${this.getEnvironmentMatch(session, env)}`,
|
|
93
|
+
`Context similarity: ${this.getContextSimilarity(session.context, env.context)}`,
|
|
94
|
+
],
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Link deployment assessments to ADR compliance
|
|
103
|
+
*/
|
|
104
|
+
async linkDeploymentToADRs() {
|
|
105
|
+
const deploymentAssessments = (await this.queryEntitiesByType('deployment_assessment'));
|
|
106
|
+
const adrs = (await this.queryEntitiesByType('architectural_decision'));
|
|
107
|
+
this.logger.debug(`Found ${deploymentAssessments.length} deployments and ${adrs.length} ADRs`, 'MemoryRelationshipMapper');
|
|
108
|
+
const result = {
|
|
109
|
+
suggestedRelationships: [],
|
|
110
|
+
conflicts: [],
|
|
111
|
+
};
|
|
112
|
+
for (const deployment of deploymentAssessments) {
|
|
113
|
+
for (const adr of adrs) {
|
|
114
|
+
const compliance = this.calculateAdrComplianceScore(deployment, adr);
|
|
115
|
+
if (compliance.isCompliant) {
|
|
116
|
+
result.suggestedRelationships.push({
|
|
117
|
+
sourceId: deployment.id,
|
|
118
|
+
targetId: adr.id,
|
|
119
|
+
type: 'complies_with',
|
|
120
|
+
confidence: compliance.confidence,
|
|
121
|
+
reasoning: `Deployment assessment demonstrates compliance with architectural decision`,
|
|
122
|
+
evidence: compliance.evidence,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else if (compliance.hasConflict) {
|
|
126
|
+
result.conflicts.push({
|
|
127
|
+
description: `Deployment assessment conflicts with architectural decision`,
|
|
128
|
+
entityIds: [deployment.id, adr.id],
|
|
129
|
+
severity: compliance.conflictSeverity,
|
|
130
|
+
recommendation: compliance.recommendation,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Link security patterns to architectural decisions
|
|
139
|
+
*/
|
|
140
|
+
async linkSecurityToArchitecture() {
|
|
141
|
+
const securityPatterns = (await this.queryEntitiesByType('security_pattern'));
|
|
142
|
+
const adrs = (await this.queryEntitiesByType('architectural_decision'));
|
|
143
|
+
const result = {
|
|
144
|
+
suggestedRelationships: [],
|
|
145
|
+
conflicts: [],
|
|
146
|
+
};
|
|
147
|
+
for (const security of securityPatterns) {
|
|
148
|
+
for (const adr of adrs) {
|
|
149
|
+
if (this.hasSecurityArchitectureRelation(security, adr)) {
|
|
150
|
+
const confidence = this.calculateSecurityArchitectureConfidence(security, adr);
|
|
151
|
+
result.suggestedRelationships.push({
|
|
152
|
+
sourceId: security.id,
|
|
153
|
+
targetId: adr.id,
|
|
154
|
+
type: 'detects',
|
|
155
|
+
confidence,
|
|
156
|
+
reasoning: 'Security pattern provides protection for architectural decision',
|
|
157
|
+
evidence: [
|
|
158
|
+
`Security type: ${security.securityData?.contentType || 'unknown'}`,
|
|
159
|
+
`Risk level: ${security.securityData?.riskAssessment?.overallRisk || 'unknown'}`,
|
|
160
|
+
`Architecture domain: ${this.extractArchitectureDomain(adr)}`,
|
|
161
|
+
],
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Link failure patterns to troubleshooting sessions
|
|
170
|
+
*/
|
|
171
|
+
async linkFailuresToTroubleshooting() {
|
|
172
|
+
const failurePatterns = (await this.queryEntitiesByType('failure_pattern'));
|
|
173
|
+
const troubleshootingSessions = (await this.queryEntitiesByType('troubleshooting_session'));
|
|
174
|
+
const result = {
|
|
175
|
+
suggestedRelationships: [],
|
|
176
|
+
conflicts: [],
|
|
177
|
+
};
|
|
178
|
+
for (const failure of failurePatterns) {
|
|
179
|
+
for (const session of troubleshootingSessions) {
|
|
180
|
+
if (this.hasFailureSessionMatch(failure, session)) {
|
|
181
|
+
const confidence = this.calculateFailureSessionConfidence(failure, session);
|
|
182
|
+
result.suggestedRelationships.push({
|
|
183
|
+
sourceId: failure.id,
|
|
184
|
+
targetId: session.id,
|
|
185
|
+
type: 'addresses',
|
|
186
|
+
confidence,
|
|
187
|
+
reasoning: `Failure pattern matches troubleshooting session failure signature`,
|
|
188
|
+
evidence: [
|
|
189
|
+
`Failure type match: ${failure.patternData?.failureType || 'unknown'} === ${session.sessionData?.failurePattern?.failureType || 'unknown'}`,
|
|
190
|
+
`Error signature similarity: ${this.getErrorSignatureSimilarity(failure, session)}`,
|
|
191
|
+
`Environment overlap: ${this.getEnvironmentOverlap(failure, session)}`,
|
|
192
|
+
],
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Link environment snapshots to deployment assessments
|
|
201
|
+
*/
|
|
202
|
+
async linkEnvironmentToDeployment() {
|
|
203
|
+
const environmentSnapshots = (await this.queryEntitiesByType('environment_snapshot'));
|
|
204
|
+
const deploymentAssessments = (await this.queryEntitiesByType('deployment_assessment'));
|
|
205
|
+
const result = {
|
|
206
|
+
suggestedRelationships: [],
|
|
207
|
+
conflicts: [],
|
|
208
|
+
};
|
|
209
|
+
for (const env of environmentSnapshots) {
|
|
210
|
+
for (const deployment of deploymentAssessments) {
|
|
211
|
+
if (this.hasEnvironmentDeploymentRelation(env, deployment)) {
|
|
212
|
+
const confidence = this.calculateEnvironmentDeploymentConfidence(env, deployment);
|
|
213
|
+
result.suggestedRelationships.push({
|
|
214
|
+
sourceId: env.id,
|
|
215
|
+
targetId: deployment.id,
|
|
216
|
+
type: 'validates',
|
|
217
|
+
confidence,
|
|
218
|
+
reasoning: `Environment snapshot validates deployment assessment configuration`,
|
|
219
|
+
evidence: [
|
|
220
|
+
`Environment type: ${env.environmentData?.environmentType || 'unknown'}`,
|
|
221
|
+
`Deployment environment: ${deployment.assessmentData?.environment || 'unknown'}`,
|
|
222
|
+
`Configuration overlap: ${this.getConfigurationOverlap(env, deployment)}`,
|
|
223
|
+
],
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return result;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Auto-create relationships with high confidence scores
|
|
232
|
+
*/
|
|
233
|
+
async autoCreateHighConfidenceRelationships(suggestedRelationships) {
|
|
234
|
+
const highConfidenceRelationships = suggestedRelationships.filter(rel => rel.confidence >= this.config.confidenceThreshold);
|
|
235
|
+
for (const suggestion of highConfidenceRelationships) {
|
|
236
|
+
try {
|
|
237
|
+
await this.memoryManager.upsertRelationship({
|
|
238
|
+
sourceId: suggestion.sourceId,
|
|
239
|
+
targetId: suggestion.targetId,
|
|
240
|
+
type: suggestion.type,
|
|
241
|
+
strength: suggestion.confidence,
|
|
242
|
+
confidence: suggestion.confidence,
|
|
243
|
+
context: suggestion.reasoning,
|
|
244
|
+
evidence: suggestion.evidence,
|
|
245
|
+
});
|
|
246
|
+
this.logger.debug('Auto-created high-confidence relationship', 'MemoryRelationshipMapper', {
|
|
247
|
+
sourceId: suggestion.sourceId,
|
|
248
|
+
targetId: suggestion.targetId,
|
|
249
|
+
type: suggestion.type,
|
|
250
|
+
confidence: suggestion.confidence,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
this.logger.warn('Failed to auto-create relationship', 'MemoryRelationshipMapper', {
|
|
255
|
+
error: error instanceof Error ? error.message : String(error),
|
|
256
|
+
sourceId: suggestion.sourceId,
|
|
257
|
+
targetId: suggestion.targetId,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// Helper methods for relationship inference
|
|
263
|
+
async queryEntitiesByType(type) {
|
|
264
|
+
const result = await this.memoryManager.queryEntities({
|
|
265
|
+
entityTypes: [type],
|
|
266
|
+
});
|
|
267
|
+
return result.entities;
|
|
268
|
+
}
|
|
269
|
+
async findTemporallyRelatedEnvironments(session, environments) {
|
|
270
|
+
const sessionTime = new Date(session.created).getTime();
|
|
271
|
+
const thresholdMs = this.config.temporalThreshold * 60 * 60 * 1000; // Convert hours to ms
|
|
272
|
+
return environments.filter(env => {
|
|
273
|
+
const envTime = new Date(env.created).getTime();
|
|
274
|
+
const timeDiff = Math.abs(sessionTime - envTime);
|
|
275
|
+
return timeDiff <= thresholdMs;
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
calculateEnvironmentSessionConfidence(session, env) {
|
|
279
|
+
let confidence = 0.5; // Base confidence
|
|
280
|
+
// Temporal proximity (0.0 - 0.3)
|
|
281
|
+
const temporalScore = this.getTemporalProximityScore(session.created, env.created);
|
|
282
|
+
confidence += temporalScore * 0.3;
|
|
283
|
+
// Environment type match (0.0 - 0.2)
|
|
284
|
+
const sessionEnv = session.sessionData?.environmentContext?.['environment'] || 'unknown';
|
|
285
|
+
if (sessionEnv === env.environmentData?.environmentType) {
|
|
286
|
+
confidence += 0.2;
|
|
287
|
+
}
|
|
288
|
+
// Context similarity (0.0 - 0.3)
|
|
289
|
+
const contextScore = this.getContextSimilarity(session.context, env.context);
|
|
290
|
+
confidence += contextScore * 0.3;
|
|
291
|
+
// Technical stack overlap (0.0 - 0.2)
|
|
292
|
+
const stackOverlap = this.getTechnicalStackOverlap(session.context.technicalStack, env.context.technicalStack);
|
|
293
|
+
confidence += stackOverlap * 0.2;
|
|
294
|
+
return Math.min(1.0, confidence);
|
|
295
|
+
}
|
|
296
|
+
calculateAdrComplianceScore(deployment, adr) {
|
|
297
|
+
const evidence = [];
|
|
298
|
+
let complianceScore = 0;
|
|
299
|
+
let hasConflict = false;
|
|
300
|
+
let conflictSeverity = 'low';
|
|
301
|
+
// Check if deployment follows ADR decisions
|
|
302
|
+
const deploymentTech = deployment.context.technicalStack;
|
|
303
|
+
// Extract technical stack for comparison
|
|
304
|
+
// Technology alignment
|
|
305
|
+
const techAlignment = this.getTechnicalStackOverlap(deploymentTech, adr.context.technicalStack);
|
|
306
|
+
complianceScore += techAlignment * 0.4;
|
|
307
|
+
evidence.push(`Technology alignment: ${(techAlignment * 100).toFixed(1)}%`);
|
|
308
|
+
// Decision implementation status
|
|
309
|
+
if (adr.decisionData?.implementationStatus === 'completed') {
|
|
310
|
+
complianceScore += 0.3;
|
|
311
|
+
evidence.push('ADR implementation is complete');
|
|
312
|
+
}
|
|
313
|
+
else if (adr.decisionData?.implementationStatus === 'in_progress') {
|
|
314
|
+
complianceScore += 0.2;
|
|
315
|
+
evidence.push('ADR implementation in progress');
|
|
316
|
+
}
|
|
317
|
+
// Check for conflicts
|
|
318
|
+
this.logger.debug(`Checking conflict: readiness=${deployment.assessmentData?.readinessScore || 'unknown'}, status=${adr.decisionData?.status || 'unknown'}`, 'MemoryRelationshipMapper');
|
|
319
|
+
if (deployment.assessmentData?.readinessScore !== null &&
|
|
320
|
+
deployment.assessmentData?.readinessScore !== undefined &&
|
|
321
|
+
deployment.assessmentData.readinessScore < 0.7 &&
|
|
322
|
+
adr.decisionData?.status === 'accepted') {
|
|
323
|
+
hasConflict = true;
|
|
324
|
+
conflictSeverity = deployment.assessmentData.readinessScore < 0.5 ? 'high' : 'medium';
|
|
325
|
+
evidence.push('Low deployment readiness conflicts with accepted ADR');
|
|
326
|
+
this.logger.debug(`Conflict detected: severity=${conflictSeverity}`, 'MemoryRelationshipMapper');
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
isCompliant: complianceScore >= 0.6,
|
|
330
|
+
hasConflict,
|
|
331
|
+
confidence: complianceScore,
|
|
332
|
+
conflictSeverity,
|
|
333
|
+
evidence,
|
|
334
|
+
recommendation: hasConflict
|
|
335
|
+
? 'Review deployment readiness issues and ADR implementation status'
|
|
336
|
+
: 'Deployment demonstrates good ADR compliance',
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
calculateSecurityArchitectureConfidence(security, adr) {
|
|
340
|
+
let confidence = 0.3; // Base confidence
|
|
341
|
+
// Risk level alignment
|
|
342
|
+
const adrRiskMentioned = (adr.decisionData?.consequences?.risks?.length || 0) > 0;
|
|
343
|
+
if (adrRiskMentioned && security.securityData?.riskAssessment?.overallRisk === 'high') {
|
|
344
|
+
confidence += 0.3;
|
|
345
|
+
}
|
|
346
|
+
// Context overlap
|
|
347
|
+
const contextOverlap = this.getContextSimilarity(security.context, adr.context);
|
|
348
|
+
confidence += contextOverlap * 0.4;
|
|
349
|
+
return Math.min(1.0, confidence);
|
|
350
|
+
}
|
|
351
|
+
hasSecurityArchitectureRelation(security, adr) {
|
|
352
|
+
// Check if security pattern is relevant to the architectural decision domain
|
|
353
|
+
const securityTags = security.tags || [];
|
|
354
|
+
const adrTags = adr.tags || [];
|
|
355
|
+
const hasCommonTags = securityTags.some(tag => adrTags.includes(tag));
|
|
356
|
+
const hasSecurityRisks = (adr.decisionData?.consequences?.risks?.length || 0) > 0;
|
|
357
|
+
return hasCommonTags || hasSecurityRisks;
|
|
358
|
+
}
|
|
359
|
+
hasFailureSessionMatch(failure, session) {
|
|
360
|
+
return (failure.patternData?.failureType === session.sessionData?.failurePattern?.failureType &&
|
|
361
|
+
this.getErrorSignatureSimilarity(failure, session) > 0.7);
|
|
362
|
+
}
|
|
363
|
+
calculateFailureSessionConfidence(failure, session) {
|
|
364
|
+
let confidence = 0.3;
|
|
365
|
+
// Failure type exact match
|
|
366
|
+
if (failure.patternData?.failureType === session.sessionData?.failurePattern?.failureType) {
|
|
367
|
+
confidence += 0.4;
|
|
368
|
+
}
|
|
369
|
+
// Error signature similarity
|
|
370
|
+
const errorSimilarity = this.getErrorSignatureSimilarity(failure, session);
|
|
371
|
+
confidence += errorSimilarity * 0.3;
|
|
372
|
+
return Math.min(1.0, confidence);
|
|
373
|
+
}
|
|
374
|
+
hasEnvironmentDeploymentRelation(env, deployment) {
|
|
375
|
+
return env.environmentData?.environmentType === deployment.assessmentData?.environment;
|
|
376
|
+
}
|
|
377
|
+
calculateEnvironmentDeploymentConfidence(env, deployment) {
|
|
378
|
+
let confidence = 0.4; // Base confidence
|
|
379
|
+
// Environment type exact match
|
|
380
|
+
if (env.environmentData?.environmentType === deployment.assessmentData?.environment) {
|
|
381
|
+
confidence += 0.3;
|
|
382
|
+
}
|
|
383
|
+
// Configuration overlap
|
|
384
|
+
const configOverlap = this.getConfigurationOverlap(env, deployment);
|
|
385
|
+
confidence += configOverlap * 0.3;
|
|
386
|
+
return Math.min(1.0, confidence);
|
|
387
|
+
}
|
|
388
|
+
// Utility methods for similarity calculations
|
|
389
|
+
getTemporalOverlap(time1, time2) {
|
|
390
|
+
const diff = Math.abs(new Date(time1).getTime() - new Date(time2).getTime());
|
|
391
|
+
const hours = diff / (1000 * 60 * 60);
|
|
392
|
+
return `${hours.toFixed(1)} hours apart`;
|
|
393
|
+
}
|
|
394
|
+
getEnvironmentMatch(session, env) {
|
|
395
|
+
const sessionEnv = session.sessionData?.environmentContext?.['environment'] || 'unknown';
|
|
396
|
+
const envType = env.environmentData?.environmentType || 'unknown';
|
|
397
|
+
return sessionEnv === envType ? 'exact match' : 'different environments';
|
|
398
|
+
}
|
|
399
|
+
getContextSimilarity(context1, context2) {
|
|
400
|
+
// Simple context similarity based on shared technical stack and environmental factors
|
|
401
|
+
const stack1 = context1.technicalStack || [];
|
|
402
|
+
const stack2 = context2.technicalStack || [];
|
|
403
|
+
const env1 = context1.environmentalFactors || [];
|
|
404
|
+
const env2 = context2.environmentalFactors || [];
|
|
405
|
+
const stackOverlap = this.getTechnicalStackOverlap(stack1, stack2);
|
|
406
|
+
const envOverlap = this.getArrayOverlap(env1, env2);
|
|
407
|
+
return (stackOverlap + envOverlap) / 2;
|
|
408
|
+
}
|
|
409
|
+
getTechnicalStackOverlap(stack1, stack2) {
|
|
410
|
+
if (stack1.length === 0 && stack2.length === 0)
|
|
411
|
+
return 1.0;
|
|
412
|
+
if (stack1.length === 0 || stack2.length === 0)
|
|
413
|
+
return 0.0;
|
|
414
|
+
const commonTech = stack1.filter(tech => stack2.includes(tech));
|
|
415
|
+
const totalUniqueTech = new Set([...stack1, ...stack2]).size;
|
|
416
|
+
return commonTech.length / totalUniqueTech;
|
|
417
|
+
}
|
|
418
|
+
getArrayOverlap(arr1, arr2) {
|
|
419
|
+
if (arr1.length === 0 && arr2.length === 0)
|
|
420
|
+
return 1.0;
|
|
421
|
+
if (arr1.length === 0 || arr2.length === 0)
|
|
422
|
+
return 0.0;
|
|
423
|
+
const common = arr1.filter(item => arr2.includes(item));
|
|
424
|
+
const totalUnique = new Set([...arr1, ...arr2]).size;
|
|
425
|
+
return common.length / totalUnique;
|
|
426
|
+
}
|
|
427
|
+
getTemporalProximityScore(time1, time2) {
|
|
428
|
+
const diff = Math.abs(new Date(time1).getTime() - new Date(time2).getTime());
|
|
429
|
+
const hours = diff / (1000 * 60 * 60);
|
|
430
|
+
if (hours <= 1)
|
|
431
|
+
return 1.0;
|
|
432
|
+
if (hours <= 6)
|
|
433
|
+
return 0.8;
|
|
434
|
+
if (hours <= 24)
|
|
435
|
+
return 0.6;
|
|
436
|
+
if (hours <= 168)
|
|
437
|
+
return 0.4; // 1 week
|
|
438
|
+
return 0.0;
|
|
439
|
+
}
|
|
440
|
+
getErrorSignatureSimilarity(failure, session) {
|
|
441
|
+
const failureSignature = failure.patternData.pattern;
|
|
442
|
+
const sessionSignature = session.sessionData.failurePattern.errorSignature;
|
|
443
|
+
// Simple string similarity (in a real implementation, you might use Levenshtein distance)
|
|
444
|
+
if (failureSignature === sessionSignature)
|
|
445
|
+
return 1.0;
|
|
446
|
+
if (failureSignature.includes(sessionSignature) ||
|
|
447
|
+
sessionSignature.includes(failureSignature)) {
|
|
448
|
+
return 0.8;
|
|
449
|
+
}
|
|
450
|
+
const commonWords = failureSignature
|
|
451
|
+
.split(' ')
|
|
452
|
+
.filter((word) => sessionSignature.includes(word) && word.length > 3);
|
|
453
|
+
const totalWords = new Set([...failureSignature.split(' '), ...sessionSignature.split(' ')])
|
|
454
|
+
.size;
|
|
455
|
+
return commonWords.length / totalWords;
|
|
456
|
+
}
|
|
457
|
+
getEnvironmentOverlap(failure, session) {
|
|
458
|
+
const failureEnvs = failure.patternData.environments || [];
|
|
459
|
+
const sessionEnv = session.sessionData?.environmentContext?.['environment'] || 'unknown';
|
|
460
|
+
return failureEnvs.includes(sessionEnv) ? 'environment match' : 'different environments';
|
|
461
|
+
}
|
|
462
|
+
getConfigurationOverlap(env, _deployment) {
|
|
463
|
+
// Compare configuration elements between environment snapshot and deployment
|
|
464
|
+
const envConfig = env.environmentData.configuration || {};
|
|
465
|
+
// This is a simplified comparison - in practice, you'd compare specific config elements
|
|
466
|
+
if (typeof envConfig === 'object' && Object.keys(envConfig).length > 0) {
|
|
467
|
+
return 0.7; // Assume moderate overlap when config data is present
|
|
468
|
+
}
|
|
469
|
+
return 0.3; // Low overlap when limited config data
|
|
470
|
+
}
|
|
471
|
+
extractArchitectureDomain(adr) {
|
|
472
|
+
const tags = adr.tags || [];
|
|
473
|
+
const commonDomains = ['database', 'frontend', 'backend', 'security', 'infrastructure', 'api'];
|
|
474
|
+
for (const domain of commonDomains) {
|
|
475
|
+
if (tags.some(tag => tag.toLowerCase().includes(domain))) {
|
|
476
|
+
return domain;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
return 'general';
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
//# sourceMappingURL=memory-relationship-mapper.js.map
|