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
@@ -1,21 +1,35 @@
1
1
  import * as fs from 'fs/promises';
2
2
  import path from 'path';
3
+ import * as os from 'os';
3
4
  import crypto from 'crypto';
4
- import { TodoSyncStateSchema, KnowledgeGraphSnapshotSchema } from '../types/knowledge-graph-schemas.js';
5
+ import { TodoSyncStateSchema, KnowledgeGraphSnapshotSchema, } from '../types/knowledge-graph-schemas.js';
5
6
  import { loadConfig } from './config.js';
6
- import { ProjectHealthScoring } from './project-health-scoring.js';
7
+ // Using new MemoryHealthScoring instead of deprecated ProjectHealthScoring
8
+ import { MemoryHealthScoring } from './memory-health-scoring.js';
9
+ /**
10
+ * Manages knowledge graph snapshots and todo synchronization state
11
+ * Provides persistent storage and retrieval of architectural knowledge
12
+ */
7
13
  export class KnowledgeGraphManager {
8
14
  cacheDir;
9
15
  snapshotsFile;
10
16
  syncStateFile;
11
- healthScoring;
17
+ memoryScoring;
18
+ /**
19
+ * Initialize the knowledge graph manager with cache directory setup
20
+ */
12
21
  constructor() {
13
22
  const config = loadConfig();
14
- this.cacheDir = path.join(config.projectPath, '.mcp-adr-cache');
23
+ // Use OS temp directory for cache
24
+ const projectName = path.basename(config.projectPath);
25
+ this.cacheDir = path.join(os.tmpdir(), projectName, 'cache');
15
26
  this.snapshotsFile = path.join(this.cacheDir, 'knowledge-graph-snapshots.json');
16
27
  this.syncStateFile = path.join(this.cacheDir, 'todo-sync-state.json');
17
- this.healthScoring = new ProjectHealthScoring(config.projectPath);
28
+ this.memoryScoring = new MemoryHealthScoring();
18
29
  }
30
+ /**
31
+ * Ensure the cache directory exists, creating it if necessary
32
+ */
19
33
  async ensureCacheDirectory() {
20
34
  try {
21
35
  await fs.access(this.cacheDir);
@@ -24,6 +38,10 @@ export class KnowledgeGraphManager {
24
38
  await fs.mkdir(this.cacheDir, { recursive: true });
25
39
  }
26
40
  }
41
+ /**
42
+ * Load the knowledge graph snapshot from cache
43
+ * @returns Promise resolving to the knowledge graph snapshot
44
+ */
27
45
  async loadKnowledgeGraph() {
28
46
  await this.ensureCacheDirectory();
29
47
  try {
@@ -44,9 +62,9 @@ export class KnowledgeGraphManager {
44
62
  activeIntents: 0,
45
63
  averageGoalCompletion: 0,
46
64
  mostUsedTools: [],
47
- successfulPatterns: []
65
+ successfulPatterns: [],
48
66
  },
49
- scoreHistory: []
67
+ scoreHistory: [],
50
68
  };
51
69
  await this.saveKnowledgeGraph(defaultSnapshot);
52
70
  // Also create the separate sync state file
@@ -62,7 +80,9 @@ export class KnowledgeGraphManager {
62
80
  const intentId = crypto.randomUUID();
63
81
  const timestamp = new Date().toISOString();
64
82
  // Get current score as baseline
65
- const currentScore = await this.healthScoring.getProjectHealthScore();
83
+ // Calculate memory-based health score
84
+ const kgData = await this.loadKnowledgeGraph();
85
+ const currentScore = await this.calculateMemoryScore(kgData);
66
86
  const intent = {
67
87
  intentId,
68
88
  humanRequest,
@@ -76,37 +96,37 @@ export class KnowledgeGraphManager {
76
96
  initialScore: currentScore.overall,
77
97
  currentScore: currentScore.overall,
78
98
  componentScores: {
79
- taskCompletion: currentScore.taskCompletion,
80
- deploymentReadiness: currentScore.deploymentReadiness,
81
- architectureCompliance: currentScore.architectureCompliance,
82
- securityPosture: currentScore.securityPosture,
83
- codeQuality: currentScore.codeQuality
99
+ taskCompletion: currentScore.memoryQuality,
100
+ deploymentReadiness: currentScore.retrievalPerformance,
101
+ architectureCompliance: currentScore.entityCoherence,
102
+ securityPosture: currentScore.contextUtilization,
103
+ codeQuality: currentScore.decisionAlignment,
84
104
  },
85
- lastScoreUpdate: timestamp
86
- }
105
+ lastScoreUpdate: timestamp,
106
+ },
87
107
  };
88
- const kg = await this.loadKnowledgeGraph();
89
- kg.intents.push(intent);
90
- kg.analytics.totalIntents = kg.intents.length;
91
- kg.analytics.activeIntents = kg.intents.filter(i => i.currentStatus !== 'completed').length;
108
+ const kgUpdate = await this.loadKnowledgeGraph();
109
+ kgUpdate.intents.push(intent);
110
+ kgUpdate.analytics.totalIntents = kgUpdate.intents.length;
111
+ kgUpdate.analytics.activeIntents = kgUpdate.intents.filter(i => i.currentStatus !== 'completed').length;
92
112
  // Add score history entry
93
- if (!kg.scoreHistory)
94
- kg.scoreHistory = [];
95
- kg.scoreHistory.push({
113
+ if (!kgUpdate.scoreHistory)
114
+ kgUpdate.scoreHistory = [];
115
+ kgUpdate.scoreHistory.push({
96
116
  timestamp,
97
117
  intentId,
98
118
  overallScore: currentScore.overall,
99
119
  componentScores: {
100
- taskCompletion: currentScore.taskCompletion,
101
- deploymentReadiness: currentScore.deploymentReadiness,
102
- architectureCompliance: currentScore.architectureCompliance,
103
- securityPosture: currentScore.securityPosture,
104
- codeQuality: currentScore.codeQuality
120
+ taskCompletion: currentScore.memoryQuality,
121
+ deploymentReadiness: currentScore.retrievalPerformance,
122
+ architectureCompliance: currentScore.entityCoherence,
123
+ securityPosture: currentScore.contextUtilization,
124
+ codeQuality: currentScore.decisionAlignment,
105
125
  },
106
126
  triggerEvent: `Intent created: ${humanRequest.substring(0, 100)}...`,
107
- confidence: currentScore.confidence
127
+ confidence: currentScore.confidence,
108
128
  });
109
- await this.saveKnowledgeGraph(kg);
129
+ await this.saveKnowledgeGraph(kgUpdate);
110
130
  return intentId;
111
131
  }
112
132
  async addToolExecution(intentId, toolName, parameters, result, success, todoTasksCreated = [], todoTasksModified = [], error) {
@@ -116,7 +136,8 @@ export class KnowledgeGraphManager {
116
136
  throw new Error(`Intent ${intentId} not found`);
117
137
  }
118
138
  // Capture before score
119
- const beforeScore = await this.healthScoring.getProjectHealthScore();
139
+ // ProjectHealthScoring removed - get current memory score
140
+ const beforeScore = await this.memoryScoring.calculateMemoryHealth([], {}, {});
120
141
  const execution = {
121
142
  toolName,
122
143
  parameters,
@@ -125,7 +146,7 @@ export class KnowledgeGraphManager {
125
146
  todoTasksModified,
126
147
  executionTime: new Date().toISOString(),
127
148
  success,
128
- error
149
+ error,
129
150
  };
130
151
  intent.toolChain.push(execution);
131
152
  intent.currentStatus = success ? 'executing' : 'failed';
@@ -134,6 +155,74 @@ export class KnowledgeGraphManager {
134
155
  this.updateAnalytics(kg);
135
156
  await this.saveKnowledgeGraph(kg);
136
157
  }
158
+ async addMemoryExecution(toolName, action, entityType, success, details) {
159
+ try {
160
+ const kg = await this.loadKnowledgeGraph();
161
+ // Create memory execution record
162
+ const memoryExecution = {
163
+ toolName,
164
+ action,
165
+ entityType,
166
+ success,
167
+ details: details || {},
168
+ timestamp: new Date().toISOString(),
169
+ };
170
+ // Initialize memory operations array if it doesn't exist
171
+ if (!kg.memoryOperations) {
172
+ kg.memoryOperations = [];
173
+ }
174
+ // Add memory execution to knowledge graph
175
+ kg.memoryOperations.push(memoryExecution);
176
+ // Limit memory operations history to last 1000 entries
177
+ if (kg.memoryOperations.length > 1000) {
178
+ kg.memoryOperations = kg.memoryOperations.slice(-1000);
179
+ }
180
+ // Update analytics to include memory operation metrics
181
+ this.updateMemoryAnalytics(kg);
182
+ await this.saveKnowledgeGraph(kg);
183
+ }
184
+ catch (error) {
185
+ console.error('[WARN] Failed to track memory execution:', error);
186
+ // Don't throw - memory tracking shouldn't break tool execution
187
+ }
188
+ }
189
+ updateMemoryAnalytics(kg) {
190
+ if (!kg.memoryOperations || kg.memoryOperations.length === 0) {
191
+ return;
192
+ }
193
+ // Calculate memory operation statistics
194
+ const totalOps = kg.memoryOperations.length;
195
+ const successfulOps = kg.memoryOperations.filter((op) => op.success).length;
196
+ const successRate = totalOps > 0 ? successfulOps / totalOps : 0;
197
+ // Group by entity type
198
+ const byEntityType = {};
199
+ const byAction = {};
200
+ const byTool = {};
201
+ for (const op of kg.memoryOperations) {
202
+ byEntityType[op.entityType] = (byEntityType[op.entityType] || 0) + 1;
203
+ byAction[op.action] = (byAction[op.action] || 0) + 1;
204
+ byTool[op.toolName] = (byTool[op.toolName] || 0) + 1;
205
+ }
206
+ // Add memory analytics to knowledge graph
207
+ if (!kg.analytics) {
208
+ kg.analytics = {
209
+ totalIntents: 0,
210
+ completedIntents: 0,
211
+ activeIntents: 0,
212
+ averageGoalCompletion: 0,
213
+ mostUsedTools: [],
214
+ successfulPatterns: [],
215
+ };
216
+ }
217
+ kg.analytics.memoryOperations = {
218
+ totalOperations: totalOps,
219
+ successRate,
220
+ byEntityType,
221
+ byAction,
222
+ byTool,
223
+ lastMemoryOperation: kg.memoryOperations[kg.memoryOperations.length - 1]?.timestamp,
224
+ };
225
+ }
137
226
  async updateIntentStatus(intentId, status) {
138
227
  const kg = await this.loadKnowledgeGraph();
139
228
  const intent = kg.intents.find(i => i.intentId === intentId);
@@ -190,7 +279,7 @@ export class KnowledgeGraphManager {
190
279
  knowledgeGraphHash: '',
191
280
  syncStatus: 'synced',
192
281
  lastModifiedBy: 'tool',
193
- version: 1
282
+ version: 1,
194
283
  };
195
284
  }
196
285
  updateAnalytics(kg) {
@@ -199,7 +288,8 @@ export class KnowledgeGraphManager {
199
288
  kg.analytics.completedIntents = intents.filter(i => i.currentStatus === 'completed').length;
200
289
  kg.analytics.activeIntents = intents.filter(i => i.currentStatus !== 'completed' && i.currentStatus !== 'failed').length;
201
290
  if (kg.analytics.totalIntents > 0) {
202
- kg.analytics.averageGoalCompletion = kg.analytics.completedIntents / kg.analytics.totalIntents;
291
+ kg.analytics.averageGoalCompletion =
292
+ kg.analytics.completedIntents / kg.analytics.totalIntents;
203
293
  }
204
294
  const toolUsage = new Map();
205
295
  intents.forEach(intent => {
@@ -227,7 +317,7 @@ export class KnowledgeGraphManager {
227
317
  return {
228
318
  hasChanges: currentHash !== syncState.todoMdHash,
229
319
  currentHash,
230
- lastHash: syncState.todoMdHash
320
+ lastHash: syncState.todoMdHash,
231
321
  };
232
322
  }
233
323
  /**
@@ -239,31 +329,31 @@ export class KnowledgeGraphManager {
239
329
  if (!intent)
240
330
  return;
241
331
  // Get current score after tool execution
242
- const afterScore = await this.healthScoring.getProjectHealthScore();
243
- // Calculate score impact
332
+ const afterScore = await this.calculateMemoryScore(kg);
333
+ // Calculate score impact - map memory scores to legacy component names
244
334
  const scoreImpact = {
245
335
  beforeScore: beforeScore.overall,
246
336
  afterScore: afterScore.overall,
247
337
  componentImpacts: {
248
- taskCompletion: afterScore.taskCompletion - beforeScore.taskCompletion,
249
- deploymentReadiness: afterScore.deploymentReadiness - beforeScore.deploymentReadiness,
250
- architectureCompliance: afterScore.architectureCompliance - beforeScore.architectureCompliance,
251
- securityPosture: afterScore.securityPosture - beforeScore.securityPosture,
252
- codeQuality: afterScore.codeQuality - beforeScore.codeQuality
338
+ taskCompletion: afterScore.memoryQuality - beforeScore.memoryQuality,
339
+ deploymentReadiness: afterScore.retrievalPerformance - beforeScore.retrievalPerformance,
340
+ architectureCompliance: afterScore.entityCoherence - beforeScore.entityCoherence,
341
+ securityPosture: afterScore.contextUtilization - beforeScore.contextUtilization,
342
+ codeQuality: afterScore.decisionAlignment - beforeScore.decisionAlignment,
253
343
  },
254
- scoreConfidence: afterScore.confidence
344
+ scoreConfidence: afterScore.confidence,
255
345
  };
256
346
  // Update execution with score impact
257
347
  execution.scoreImpact = scoreImpact;
258
- // Update intent score tracking
348
+ // Update intent score tracking - map memory scores to legacy component names
259
349
  if (intent.scoreTracking) {
260
350
  intent.scoreTracking.currentScore = afterScore.overall;
261
351
  intent.scoreTracking.componentScores = {
262
- taskCompletion: afterScore.taskCompletion,
263
- deploymentReadiness: afterScore.deploymentReadiness,
264
- architectureCompliance: afterScore.architectureCompliance,
265
- securityPosture: afterScore.securityPosture,
266
- codeQuality: afterScore.codeQuality
352
+ taskCompletion: afterScore.memoryQuality,
353
+ deploymentReadiness: afterScore.retrievalPerformance,
354
+ architectureCompliance: afterScore.entityCoherence,
355
+ securityPosture: afterScore.contextUtilization,
356
+ codeQuality: afterScore.decisionAlignment,
267
357
  };
268
358
  intent.scoreTracking.lastScoreUpdate = new Date().toISOString();
269
359
  // Calculate progress if we have initial score
@@ -274,9 +364,10 @@ export class KnowledgeGraphManager {
274
364
  // Calculate progress as percentage of improvement toward target
275
365
  const totalPossibleImprovement = targetScore - initialScore;
276
366
  const actualImprovement = currentScore - initialScore;
277
- intent.scoreTracking.scoreProgress = totalPossibleImprovement > 0
278
- ? Math.min(100, (actualImprovement / totalPossibleImprovement) * 100)
279
- : 0;
367
+ intent.scoreTracking.scoreProgress =
368
+ totalPossibleImprovement > 0
369
+ ? Math.min(100, (actualImprovement / totalPossibleImprovement) * 100)
370
+ : 0;
280
371
  }
281
372
  }
282
373
  // Add to score history
@@ -287,14 +378,14 @@ export class KnowledgeGraphManager {
287
378
  intentId,
288
379
  overallScore: afterScore.overall,
289
380
  componentScores: {
290
- taskCompletion: afterScore.taskCompletion,
291
- deploymentReadiness: afterScore.deploymentReadiness,
292
- architectureCompliance: afterScore.architectureCompliance,
293
- securityPosture: afterScore.securityPosture,
294
- codeQuality: afterScore.codeQuality
381
+ taskCompletion: afterScore.memoryQuality,
382
+ deploymentReadiness: afterScore.retrievalPerformance,
383
+ architectureCompliance: afterScore.entityCoherence,
384
+ securityPosture: afterScore.contextUtilization,
385
+ codeQuality: afterScore.decisionAlignment,
295
386
  },
296
387
  triggerEvent: `Tool executed: ${toolName}`,
297
- confidence: afterScore.confidence
388
+ confidence: afterScore.confidence,
298
389
  });
299
390
  // Keep only last 100 score history entries
300
391
  if (kg.scoreHistory.length > 100) {
@@ -319,8 +410,8 @@ export class KnowledgeGraphManager {
319
410
  scoreHistory: scoreHistory.map(h => ({
320
411
  timestamp: h.timestamp,
321
412
  score: h.overallScore,
322
- triggerEvent: h.triggerEvent
323
- }))
413
+ triggerEvent: h.triggerEvent,
414
+ })),
324
415
  };
325
416
  }
326
417
  /**
@@ -328,14 +419,16 @@ export class KnowledgeGraphManager {
328
419
  */
329
420
  async getProjectScoreTrends() {
330
421
  const kg = await this.loadKnowledgeGraph();
331
- const currentScore = await this.healthScoring.getProjectHealthScore();
422
+ // Calculate memory-based health score
423
+ const kgData = await this.loadKnowledgeGraph();
424
+ const currentScore = await this.calculateMemoryScore(kgData);
332
425
  const scoreHistory = kg.scoreHistory || [];
333
426
  const intentImpacts = kg.intents
334
427
  .filter(i => i.scoreTracking?.initialScore !== undefined && i.scoreTracking?.currentScore !== undefined)
335
428
  .map(i => ({
336
429
  intentId: i.intentId,
337
430
  humanRequest: i.humanRequest,
338
- scoreImprovement: (i.scoreTracking.currentScore - i.scoreTracking.initialScore)
431
+ scoreImprovement: i.scoreTracking.currentScore - i.scoreTracking.initialScore,
339
432
  }))
340
433
  .sort((a, b) => b.scoreImprovement - a.scoreImprovement)
341
434
  .slice(0, 5);
@@ -348,10 +441,10 @@ export class KnowledgeGraphManager {
348
441
  timestamp: h.timestamp,
349
442
  score: h.overallScore,
350
443
  triggerEvent: h.triggerEvent,
351
- ...(h.intentId && { intentId: h.intentId })
444
+ ...(h.intentId && { intentId: h.intentId }),
352
445
  })),
353
446
  averageImprovement,
354
- topImpactingIntents: intentImpacts
447
+ topImpactingIntents: intentImpacts,
355
448
  };
356
449
  }
357
450
  /**
@@ -365,11 +458,12 @@ export class KnowledgeGraphManager {
365
458
  parsedGoals: [
366
459
  `Analyze project structure at ${structureSnapshot.projectPath}`,
367
460
  `Record directory structure and technology patterns`,
368
- `Track architectural decisions and dependencies`
461
+ `Track architectural decisions and dependencies`,
369
462
  ],
370
463
  priority: 'medium',
371
464
  timestamp: structureSnapshot.timestamp,
372
- toolChain: [{
465
+ toolChain: [
466
+ {
373
467
  toolName: 'analyze_project_ecosystem',
374
468
  parameters: {
375
469
  projectPath: structureSnapshot.projectPath,
@@ -377,22 +471,173 @@ export class KnowledgeGraphManager {
377
471
  recursiveDepth: structureSnapshot.recursiveDepth,
378
472
  technologyFocus: structureSnapshot.technologyFocus,
379
473
  analysisScope: structureSnapshot.analysisScope,
380
- includeEnvironment: structureSnapshot.includeEnvironment
474
+ includeEnvironment: structureSnapshot.includeEnvironment,
381
475
  },
382
476
  result: {
383
477
  structureData: structureSnapshot.structureData,
384
- timestamp: structureSnapshot.timestamp
478
+ timestamp: structureSnapshot.timestamp,
385
479
  },
386
480
  todoTasksCreated: [],
387
481
  todoTasksModified: [],
388
482
  executionTime: structureSnapshot.timestamp,
389
- success: true
390
- }],
483
+ success: true,
484
+ },
485
+ ],
391
486
  currentStatus: 'completed',
392
487
  todoMdSnapshot: '', // No specific TODO.md impact for structure analysis
393
- tags: ['project-structure', 'ecosystem-analysis', 'architecture']
488
+ tags: ['project-structure', 'ecosystem-analysis', 'architecture'],
394
489
  };
395
490
  await this.createIntent(intent.humanRequest, intent.parsedGoals, intent.priority);
396
491
  }
492
+ /**
493
+ * Calculate memory-based health score from knowledge graph
494
+ */
495
+ async calculateMemoryScore(kg) {
496
+ // Extract memories from intents and their tool executions
497
+ const memories = this.extractMemoriesFromKG(kg);
498
+ // Calculate retrieval metrics from tool execution patterns
499
+ const retrievalMetrics = this.calculateRetrievalMetrics(kg);
500
+ // Build entity graph from intents and relationships
501
+ const entityGraph = this.buildEntityGraph(kg);
502
+ return this.memoryScoring.calculateMemoryHealth(memories, retrievalMetrics, entityGraph);
503
+ }
504
+ /**
505
+ * Extract memory representations from knowledge graph
506
+ */
507
+ extractMemoriesFromKG(kg) {
508
+ const memories = [];
509
+ kg.intents.forEach(intent => {
510
+ // Each intent is a memory
511
+ memories.push({
512
+ id: intent.intentId,
513
+ content: intent.humanRequest,
514
+ context: {
515
+ goals: intent.parsedGoals,
516
+ priority: intent.priority,
517
+ status: intent.currentStatus,
518
+ },
519
+ timestamp: intent.timestamp,
520
+ metadata: {
521
+ relevanceScore: this.calculateIntentRelevance(intent),
522
+ toolExecutions: intent.toolChain.length,
523
+ },
524
+ relatedDecisions: intent.adrsCreated || [],
525
+ });
526
+ // Each tool execution is also a memory
527
+ intent.toolChain.forEach(tool => {
528
+ memories.push({
529
+ id: `${intent.intentId}-${tool.toolName}`,
530
+ content: `${tool.toolName} execution`,
531
+ context: {
532
+ parameters: tool.parameters,
533
+ result: tool.result,
534
+ success: tool.success,
535
+ },
536
+ timestamp: tool.executionTime,
537
+ metadata: {
538
+ relevanceScore: tool.success ? 0.8 : 0.3,
539
+ parentIntent: intent.intentId,
540
+ },
541
+ });
542
+ });
543
+ });
544
+ return memories;
545
+ }
546
+ /**
547
+ * Calculate retrieval metrics from tool execution patterns
548
+ */
549
+ calculateRetrievalMetrics(kg) {
550
+ let totalRetrievals = 0;
551
+ let successfulRetrievals = 0;
552
+ let totalTime = 0;
553
+ kg.intents.forEach(intent => {
554
+ intent.toolChain.forEach(tool => {
555
+ totalRetrievals++;
556
+ if (tool.success)
557
+ successfulRetrievals++;
558
+ // Estimate retrieval time (would be actual in production)
559
+ totalTime += tool.executionTime ? 50 : 100;
560
+ });
561
+ });
562
+ return {
563
+ totalRetrievals,
564
+ successfulRetrievals,
565
+ averageRetrievalTime: totalRetrievals > 0 ? totalTime / totalRetrievals : 0,
566
+ precisionScore: 0.8, // Placeholder - would calculate from actual retrievals
567
+ recallScore: 0.7, // Placeholder - would calculate from actual retrievals
568
+ };
569
+ }
570
+ /**
571
+ * Build entity graph from knowledge graph
572
+ */
573
+ buildEntityGraph(kg) {
574
+ const entities = [];
575
+ const relationships = [];
576
+ // Intents as entities
577
+ kg.intents.forEach(intent => {
578
+ entities.push({
579
+ id: intent.intentId,
580
+ type: 'intent',
581
+ name: intent.humanRequest.substring(0, 50),
582
+ });
583
+ // Create relationships between intents and their tools
584
+ intent.toolChain.forEach(tool => {
585
+ entities.push({
586
+ id: `tool-${tool.toolName}`,
587
+ type: 'tool',
588
+ name: tool.toolName,
589
+ });
590
+ relationships.push({
591
+ sourceId: intent.intentId,
592
+ targetId: `tool-${tool.toolName}`,
593
+ type: 'uses',
594
+ strength: tool.success ? 0.9 : 0.3,
595
+ });
596
+ });
597
+ });
598
+ // Add ADR entities and relationships
599
+ kg.intents.forEach(intent => {
600
+ (intent.adrsCreated || []).forEach((adrId) => {
601
+ entities.push({
602
+ id: `adr-${adrId}`,
603
+ type: 'decision',
604
+ name: `ADR ${adrId}`,
605
+ });
606
+ relationships.push({
607
+ sourceId: intent.intentId,
608
+ targetId: `adr-${adrId}`,
609
+ type: 'created',
610
+ strength: 0.95,
611
+ });
612
+ });
613
+ });
614
+ return {
615
+ entities,
616
+ relationships,
617
+ decisions: entities.filter(e => e.type === 'decision'),
618
+ };
619
+ }
620
+ /**
621
+ * Calculate relevance score for an intent
622
+ */
623
+ calculateIntentRelevance(intent) {
624
+ const now = new Date();
625
+ const age = now.getTime() - new Date(intent.timestamp).getTime();
626
+ const ageInDays = age / (24 * 60 * 60 * 1000);
627
+ // Base relevance on status and age
628
+ let relevance = 0.5;
629
+ if (intent.currentStatus === 'executing')
630
+ relevance = 0.9;
631
+ else if (intent.currentStatus === 'planning')
632
+ relevance = 0.8;
633
+ else if (intent.currentStatus === 'completed')
634
+ relevance = 0.6;
635
+ // Decay relevance over time
636
+ relevance *= Math.max(0.3, 1 - ageInDays / 30);
637
+ // Boost relevance if it has successful tool executions
638
+ const successRate = intent.toolChain.filter(t => t.success).length / (intent.toolChain.length || 1);
639
+ relevance = (relevance + successRate) / 2;
640
+ return relevance;
641
+ }
397
642
  }
398
643
  //# sourceMappingURL=knowledge-graph-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-graph-manager.js","sourceRoot":"","sources":["../../../src/utils/knowledge-graph-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-graph-manager.js","sourceRoot":"","sources":["../../../src/utils/knowledge-graph-manager.ts"],"names":[],"mappings":"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"}