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.
Files changed (263) hide show
  1. package/README.md +94 -839
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/config/ai-config.d.ts.map +1 -1
  4. package/dist/src/config/ai-config.js +9 -9
  5. package/dist/src/config/ai-config.js.map +1 -1
  6. package/dist/src/index.d.ts +15 -0
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +1594 -837
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/prompts/analysis-prompts.d.ts +4 -1
  11. package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
  12. package/dist/src/prompts/analysis-prompts.js +61 -30
  13. package/dist/src/prompts/analysis-prompts.js.map +1 -1
  14. package/dist/src/prompts/index.d.ts +17 -1
  15. package/dist/src/prompts/index.d.ts.map +1 -1
  16. package/dist/src/prompts/index.js +325 -1
  17. package/dist/src/prompts/index.js.map +1 -1
  18. package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
  19. package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
  20. package/dist/src/prompts/rule-generation-prompts.js +5 -1
  21. package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
  22. package/dist/src/prompts/security-prompts.d.ts +6 -1
  23. package/dist/src/prompts/security-prompts.d.ts.map +1 -1
  24. package/dist/src/prompts/security-prompts.js +6 -1
  25. package/dist/src/prompts/security-prompts.js.map +1 -1
  26. package/dist/src/prompts/todo-prompts.d.ts +49 -0
  27. package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
  28. package/dist/src/prompts/todo-prompts.js +824 -0
  29. package/dist/src/prompts/todo-prompts.js.map +1 -0
  30. package/dist/src/resources/index.d.ts.map +1 -1
  31. package/dist/src/resources/index.js +9 -7
  32. package/dist/src/resources/index.js.map +1 -1
  33. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
  34. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
  35. package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
  36. package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
  37. package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
  38. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  39. package/dist/src/tools/adr-suggestion-tool.js +330 -32
  40. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  41. package/dist/src/tools/content-masking-tool.d.ts +5 -0
  42. package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
  43. package/dist/src/tools/content-masking-tool.js +631 -28
  44. package/dist/src/tools/content-masking-tool.js.map +1 -1
  45. package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
  46. package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
  47. package/dist/src/tools/deployment-readiness-tool.js +1017 -93
  48. package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
  49. package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
  50. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  51. package/dist/src/tools/environment-analysis-tool.js +568 -24
  52. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  53. package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
  54. package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
  55. package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
  56. package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
  57. package/dist/src/tools/mcp-planning-tool.js +316 -183
  58. package/dist/src/tools/mcp-planning-tool.js.map +1 -1
  59. package/dist/src/tools/memory-loading-tool.d.ts +60 -0
  60. package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
  61. package/dist/src/tools/memory-loading-tool.js +457 -0
  62. package/dist/src/tools/memory-loading-tool.js.map +1 -0
  63. package/dist/src/tools/research-integration-tool.d.ts +4 -1
  64. package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
  65. package/dist/src/tools/research-integration-tool.js +5 -1
  66. package/dist/src/tools/research-integration-tool.js.map +1 -1
  67. package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
  68. package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
  69. package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
  70. package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
  71. package/dist/src/tools/rule-generation-tool.d.ts +2 -0
  72. package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
  73. package/dist/src/tools/rule-generation-tool.js +274 -33
  74. package/dist/src/tools/rule-generation-tool.js.map +1 -1
  75. package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
  76. package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
  77. package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
  78. package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
  79. package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
  80. package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
  81. package/dist/src/tools/smart-git-push-tool.js +241 -235
  82. package/dist/src/tools/smart-git-push-tool.js.map +1 -1
  83. package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
  84. package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
  85. package/dist/src/tools/tool-chain-orchestrator.js +152 -93
  86. package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
  87. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
  88. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
  89. package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
  90. package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
  91. package/dist/src/types/ape-framework.d.ts +93 -0
  92. package/dist/src/types/ape-framework.d.ts.map +1 -1
  93. package/dist/src/types/ape-framework.js +10 -10
  94. package/dist/src/types/ape-framework.js.map +1 -1
  95. package/dist/src/types/enhanced-errors.d.ts +173 -0
  96. package/dist/src/types/enhanced-errors.d.ts.map +1 -0
  97. package/dist/src/types/enhanced-errors.js +668 -0
  98. package/dist/src/types/enhanced-errors.js.map +1 -0
  99. package/dist/src/types/index.d.ts +129 -3
  100. package/dist/src/types/index.d.ts.map +1 -1
  101. package/dist/src/types/index.js +15 -0
  102. package/dist/src/types/index.js.map +1 -1
  103. package/dist/src/types/knowledge-generation.d.ts +78 -0
  104. package/dist/src/types/knowledge-generation.d.ts.map +1 -1
  105. package/dist/src/types/knowledge-generation.js +10 -6
  106. package/dist/src/types/knowledge-generation.js.map +1 -1
  107. package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
  108. package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
  109. package/dist/src/types/knowledge-graph-schemas.js +45 -17
  110. package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
  111. package/dist/src/types/memory-entities.d.ts +7209 -0
  112. package/dist/src/types/memory-entities.d.ts.map +1 -0
  113. package/dist/src/types/memory-entities.js +395 -0
  114. package/dist/src/types/memory-entities.js.map +1 -0
  115. package/dist/src/types/reflexion-framework.d.ts +44 -0
  116. package/dist/src/types/reflexion-framework.d.ts.map +1 -1
  117. package/dist/src/types/reflexion-framework.js +7 -7
  118. package/dist/src/types/reflexion-framework.js.map +1 -1
  119. package/dist/src/types/todo-json-schemas.d.ts +7 -653
  120. package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
  121. package/dist/src/types/todo-json-schemas.js +6 -110
  122. package/dist/src/types/todo-json-schemas.js.map +1 -1
  123. package/dist/src/types/tool-arguments.d.ts +224 -0
  124. package/dist/src/types/tool-arguments.d.ts.map +1 -0
  125. package/dist/src/types/tool-arguments.js +6 -0
  126. package/dist/src/types/tool-arguments.js.map +1 -0
  127. package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
  128. package/dist/src/utils/actual-file-operations.js +25 -9
  129. package/dist/src/utils/actual-file-operations.js.map +1 -1
  130. package/dist/src/utils/adr-discovery.d.ts +33 -1
  131. package/dist/src/utils/adr-discovery.d.ts.map +1 -1
  132. package/dist/src/utils/adr-discovery.js +14 -9
  133. package/dist/src/utils/adr-discovery.js.map +1 -1
  134. package/dist/src/utils/adr-suggestions.d.ts +72 -0
  135. package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
  136. package/dist/src/utils/adr-suggestions.js +6 -0
  137. package/dist/src/utils/adr-suggestions.js.map +1 -1
  138. package/dist/src/utils/cache.d.ts.map +1 -1
  139. package/dist/src/utils/cache.js +22 -19
  140. package/dist/src/utils/cache.js.map +1 -1
  141. package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
  142. package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
  143. package/dist/src/utils/chain-of-thought-template.js +31 -22
  144. package/dist/src/utils/chain-of-thought-template.js.map +1 -1
  145. package/dist/src/utils/config.d.ts.map +1 -1
  146. package/dist/src/utils/config.js +1 -0
  147. package/dist/src/utils/config.js.map +1 -1
  148. package/dist/src/utils/directory-compat.js +1 -1
  149. package/dist/src/utils/directory-compat.js.map +1 -1
  150. package/dist/src/utils/enhanced-logging.d.ts +195 -0
  151. package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
  152. package/dist/src/utils/enhanced-logging.js +449 -0
  153. package/dist/src/utils/enhanced-logging.js.map +1 -0
  154. package/dist/src/utils/file-system.d.ts +182 -34
  155. package/dist/src/utils/file-system.d.ts.map +1 -1
  156. package/dist/src/utils/file-system.js +648 -774
  157. package/dist/src/utils/file-system.js.map +1 -1
  158. package/dist/src/utils/gitleaks-detector.d.ts +50 -0
  159. package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
  160. package/dist/src/utils/gitleaks-detector.js +334 -0
  161. package/dist/src/utils/gitleaks-detector.js.map +1 -0
  162. package/dist/src/utils/interactive-approval.d.ts +1 -1
  163. package/dist/src/utils/interactive-approval.d.ts.map +1 -1
  164. package/dist/src/utils/interactive-approval.js +22 -17
  165. package/dist/src/utils/interactive-approval.js.map +1 -1
  166. package/dist/src/utils/json-safe.d.ts.map +1 -1
  167. package/dist/src/utils/json-safe.js +9 -6
  168. package/dist/src/utils/json-safe.js.map +1 -1
  169. package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
  170. package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
  171. package/dist/src/utils/knowledge-graph-manager.js +315 -70
  172. package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
  173. package/dist/src/utils/location-filter.d.ts +35 -10
  174. package/dist/src/utils/location-filter.d.ts.map +1 -1
  175. package/dist/src/utils/location-filter.js +360 -94
  176. package/dist/src/utils/location-filter.js.map +1 -1
  177. package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
  178. package/dist/src/utils/mcp-response-validator.js +34 -19
  179. package/dist/src/utils/mcp-response-validator.js.map +1 -1
  180. package/dist/src/utils/memory-entity-manager.d.ts +134 -0
  181. package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
  182. package/dist/src/utils/memory-entity-manager.js +851 -0
  183. package/dist/src/utils/memory-entity-manager.js.map +1 -0
  184. package/dist/src/utils/memory-health-scoring.d.ts +125 -0
  185. package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
  186. package/dist/src/utils/memory-health-scoring.js +277 -0
  187. package/dist/src/utils/memory-health-scoring.js.map +1 -0
  188. package/dist/src/utils/memory-migration-manager.d.ts +93 -0
  189. package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
  190. package/dist/src/utils/memory-migration-manager.js +842 -0
  191. package/dist/src/utils/memory-migration-manager.js.map +1 -0
  192. package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
  193. package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
  194. package/dist/src/utils/memory-relationship-mapper.js +482 -0
  195. package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
  196. package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
  197. package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
  198. package/dist/src/utils/memory-rollback-manager.js +575 -0
  199. package/dist/src/utils/memory-rollback-manager.js.map +1 -0
  200. package/dist/src/utils/memory-transformation.d.ts +59 -0
  201. package/dist/src/utils/memory-transformation.d.ts.map +1 -0
  202. package/dist/src/utils/memory-transformation.js +742 -0
  203. package/dist/src/utils/memory-transformation.js.map +1 -0
  204. package/dist/src/utils/output-masking.d.ts +12 -0
  205. package/dist/src/utils/output-masking.d.ts.map +1 -1
  206. package/dist/src/utils/output-masking.js +5 -0
  207. package/dist/src/utils/output-masking.js.map +1 -1
  208. package/dist/src/utils/prompt-execution.d.ts.map +1 -1
  209. package/dist/src/utils/prompt-execution.js +72 -51
  210. package/dist/src/utils/prompt-execution.js.map +1 -1
  211. package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
  212. package/dist/src/utils/release-readiness-detector.js +43 -42
  213. package/dist/src/utils/release-readiness-detector.js.map +1 -1
  214. package/dist/src/utils/research-integration.d.ts.map +1 -1
  215. package/dist/src/utils/research-integration.js +73 -44
  216. package/dist/src/utils/research-integration.js.map +1 -1
  217. package/dist/src/utils/research-questions.d.ts.map +1 -1
  218. package/dist/src/utils/research-questions.js +40 -14
  219. package/dist/src/utils/research-questions.js.map +1 -1
  220. package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
  221. package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
  222. package/dist/src/utils/ripgrep-wrapper.js +255 -0
  223. package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
  224. package/dist/src/utils/rule-generation.d.ts.map +1 -1
  225. package/dist/src/utils/rule-generation.js +26 -15
  226. package/dist/src/utils/rule-generation.js.map +1 -1
  227. package/dist/src/utils/todo-file-watcher.d.ts +11 -23
  228. package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
  229. package/dist/src/utils/todo-file-watcher.js +18 -156
  230. package/dist/src/utils/todo-file-watcher.js.map +1 -1
  231. package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
  232. package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
  233. package/dist/src/utils/tree-sitter-analyzer.js +885 -0
  234. package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
  235. package/package.json +51 -10
  236. package/dist/src/tools/smart-score-tool.d.ts +0 -173
  237. package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
  238. package/dist/src/tools/smart-score-tool.js +0 -681
  239. package/dist/src/tools/smart-score-tool.js.map +0 -1
  240. package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
  241. package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
  242. package/dist/src/tools/todo-management-tool-v2.js +0 -922
  243. package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
  244. package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
  245. package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
  246. package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
  247. package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
  248. package/dist/src/utils/project-health-scoring.d.ts +0 -177
  249. package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
  250. package/dist/src/utils/project-health-scoring.js +0 -370
  251. package/dist/src/utils/project-health-scoring.js.map +0 -1
  252. package/dist/src/utils/todo-json-manager.d.ts +0 -71
  253. package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
  254. package/dist/src/utils/todo-json-manager.js +0 -396
  255. package/dist/src/utils/todo-json-manager.js.map +0 -1
  256. package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
  257. package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
  258. package/dist/src/utils/todo-markdown-converter.js +0 -362
  259. package/dist/src/utils/todo-markdown-converter.js.map +0 -1
  260. package/dist/src/utils/todo-migration.d.ts +0 -47
  261. package/dist/src/utils/todo-migration.d.ts.map +0 -1
  262. package/dist/src/utils/todo-migration.js +0 -261
  263. 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