@pcircle/memesh 2.10.1 → 3.0.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 (818) hide show
  1. package/.mcp.json +2 -5
  2. package/README.md +122 -221
  3. package/dist/cli/assets/d3.v7.min.js +2 -0
  4. package/dist/cli/view.d.ts +4 -0
  5. package/dist/cli/view.d.ts.map +1 -0
  6. package/dist/cli/view.js +2672 -0
  7. package/dist/cli/view.js.map +1 -0
  8. package/dist/core/config.d.ts +33 -0
  9. package/dist/core/config.d.ts.map +1 -0
  10. package/dist/core/config.js +70 -0
  11. package/dist/core/config.js.map +1 -0
  12. package/dist/core/extractor.d.ts +26 -0
  13. package/dist/core/extractor.d.ts.map +1 -0
  14. package/dist/core/extractor.js +106 -0
  15. package/dist/core/extractor.js.map +1 -0
  16. package/dist/core/lifecycle.d.ts +9 -0
  17. package/dist/core/lifecycle.d.ts.map +1 -0
  18. package/dist/core/lifecycle.js +51 -0
  19. package/dist/core/lifecycle.js.map +1 -0
  20. package/dist/core/operations.d.ts +9 -0
  21. package/dist/core/operations.d.ts.map +1 -0
  22. package/dist/core/operations.js +342 -0
  23. package/dist/core/operations.js.map +1 -0
  24. package/dist/core/query-expander.d.ts +4 -0
  25. package/dist/core/query-expander.d.ts.map +1 -0
  26. package/dist/core/query-expander.js +114 -0
  27. package/dist/core/query-expander.js.map +1 -0
  28. package/dist/core/schema-export.d.ts +2 -0
  29. package/dist/core/schema-export.d.ts.map +1 -0
  30. package/dist/core/schema-export.js +67 -0
  31. package/dist/core/schema-export.js.map +1 -0
  32. package/dist/core/scoring.d.ts +25 -0
  33. package/dist/core/scoring.d.ts.map +1 -0
  34. package/dist/core/scoring.js +40 -0
  35. package/dist/core/scoring.js.map +1 -0
  36. package/dist/core/types.d.ts +116 -58
  37. package/dist/core/types.d.ts.map +1 -1
  38. package/dist/core/types.js +1 -10
  39. package/dist/core/types.js.map +1 -1
  40. package/dist/core/version-check.d.ts +10 -0
  41. package/dist/core/version-check.d.ts.map +1 -0
  42. package/dist/core/version-check.js +44 -0
  43. package/dist/core/version-check.js.map +1 -0
  44. package/dist/db.d.ts +5 -0
  45. package/dist/db.d.ts.map +1 -0
  46. package/dist/db.js +113 -0
  47. package/dist/db.js.map +1 -0
  48. package/dist/index.d.ts +3 -6
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +2 -33
  51. package/dist/index.js.map +1 -1
  52. package/dist/knowledge-graph.d.ts +34 -0
  53. package/dist/knowledge-graph.d.ts.map +1 -0
  54. package/dist/knowledge-graph.js +367 -0
  55. package/dist/knowledge-graph.js.map +1 -0
  56. package/dist/mcp/server.d.ts +1 -25
  57. package/dist/mcp/server.d.ts.map +1 -1
  58. package/dist/mcp/server.js +39 -318
  59. package/dist/mcp/server.js.map +1 -1
  60. package/dist/mcp/tools.d.ts +2 -0
  61. package/dist/mcp/tools.d.ts.map +1 -0
  62. package/dist/mcp/tools.js +2 -0
  63. package/dist/mcp/tools.js.map +1 -0
  64. package/dist/transports/cli/cli.d.ts +3 -0
  65. package/dist/transports/cli/cli.d.ts.map +1 -0
  66. package/dist/transports/cli/cli.js +378 -0
  67. package/dist/transports/cli/cli.js.map +1 -0
  68. package/dist/transports/http/server.d.ts +5 -0
  69. package/dist/transports/http/server.d.ts.map +1 -0
  70. package/dist/transports/http/server.js +314 -0
  71. package/dist/transports/http/server.js.map +1 -0
  72. package/dist/transports/mcp/handlers.d.ts +184 -0
  73. package/dist/transports/mcp/handlers.d.ts.map +1 -0
  74. package/dist/transports/mcp/handlers.js +271 -0
  75. package/dist/transports/mcp/handlers.js.map +1 -0
  76. package/hooks/hooks.json +8 -24
  77. package/package.json +26 -90
  78. package/plugin.json +7 -10
  79. package/scripts/hooks/post-commit.js +160 -298
  80. package/scripts/hooks/pre-compact.js +198 -0
  81. package/scripts/hooks/session-start.js +130 -627
  82. package/scripts/hooks/session-summary.js +255 -0
  83. package/README.de.md +0 -212
  84. package/README.es.md +0 -212
  85. package/README.fr.md +0 -212
  86. package/README.id.md +0 -212
  87. package/README.ja.md +0 -212
  88. package/README.ko.md +0 -212
  89. package/README.th.md +0 -212
  90. package/README.vi.md +0 -212
  91. package/README.zh-CN.md +0 -212
  92. package/README.zh-TW.md +0 -286
  93. package/dist/cli/config.d.ts +0 -36
  94. package/dist/cli/config.d.ts.map +0 -1
  95. package/dist/cli/config.js +0 -398
  96. package/dist/cli/config.js.map +0 -1
  97. package/dist/cli/credentials.d.ts +0 -12
  98. package/dist/cli/credentials.d.ts.map +0 -1
  99. package/dist/cli/credentials.js +0 -44
  100. package/dist/cli/credentials.js.map +0 -1
  101. package/dist/cli/daemon.d.ts +0 -3
  102. package/dist/cli/daemon.d.ts.map +0 -1
  103. package/dist/cli/daemon.js +0 -413
  104. package/dist/cli/daemon.js.map +0 -1
  105. package/dist/cli/dashboard.d.ts +0 -2
  106. package/dist/cli/dashboard.d.ts.map +0 -1
  107. package/dist/cli/dashboard.js +0 -300
  108. package/dist/cli/dashboard.js.map +0 -1
  109. package/dist/cli/index.d.ts +0 -3
  110. package/dist/cli/index.d.ts.map +0 -1
  111. package/dist/cli/index.js +0 -188
  112. package/dist/cli/index.js.map +0 -1
  113. package/dist/cli/login.d.ts +0 -4
  114. package/dist/cli/login.d.ts.map +0 -1
  115. package/dist/cli/login.js +0 -230
  116. package/dist/cli/login.js.map +0 -1
  117. package/dist/cli/logout.d.ts +0 -3
  118. package/dist/cli/logout.d.ts.map +0 -1
  119. package/dist/cli/logout.js +0 -23
  120. package/dist/cli/logout.js.map +0 -1
  121. package/dist/cli/setup-wizard.d.ts +0 -18
  122. package/dist/cli/setup-wizard.d.ts.map +0 -1
  123. package/dist/cli/setup-wizard.js +0 -267
  124. package/dist/cli/setup-wizard.js.map +0 -1
  125. package/dist/cli/stats.d.ts +0 -34
  126. package/dist/cli/stats.d.ts.map +0 -1
  127. package/dist/cli/stats.js +0 -479
  128. package/dist/cli/stats.js.map +0 -1
  129. package/dist/cli/tutorial.d.ts +0 -27
  130. package/dist/cli/tutorial.d.ts.map +0 -1
  131. package/dist/cli/tutorial.js +0 -430
  132. package/dist/cli/tutorial.js.map +0 -1
  133. package/dist/cloud/MeMeshCloudClient.d.ts +0 -88
  134. package/dist/cloud/MeMeshCloudClient.d.ts.map +0 -1
  135. package/dist/cloud/MeMeshCloudClient.js +0 -177
  136. package/dist/cloud/MeMeshCloudClient.js.map +0 -1
  137. package/dist/cloud/index.d.ts +0 -3
  138. package/dist/cloud/index.d.ts.map +0 -1
  139. package/dist/cloud/index.js +0 -2
  140. package/dist/cloud/index.js.map +0 -1
  141. package/dist/config/index.d.ts +0 -61
  142. package/dist/config/index.d.ts.map +0 -1
  143. package/dist/config/index.js +0 -105
  144. package/dist/config/index.js.map +0 -1
  145. package/dist/config/models.d.ts +0 -47
  146. package/dist/config/models.d.ts.map +0 -1
  147. package/dist/config/models.js +0 -57
  148. package/dist/config/models.js.map +0 -1
  149. package/dist/config/simple-config.d.ts +0 -35
  150. package/dist/config/simple-config.d.ts.map +0 -1
  151. package/dist/config/simple-config.js +0 -246
  152. package/dist/config/simple-config.js.map +0 -1
  153. package/dist/core/AgentRegistry.d.ts +0 -31
  154. package/dist/core/AgentRegistry.d.ts.map +0 -1
  155. package/dist/core/AgentRegistry.js +0 -281
  156. package/dist/core/AgentRegistry.js.map +0 -1
  157. package/dist/core/CheckpointDetector.d.ts +0 -25
  158. package/dist/core/CheckpointDetector.d.ts.map +0 -1
  159. package/dist/core/CheckpointDetector.js +0 -67
  160. package/dist/core/CheckpointDetector.js.map +0 -1
  161. package/dist/core/GitCommandParser.d.ts +0 -11
  162. package/dist/core/GitCommandParser.d.ts.map +0 -1
  163. package/dist/core/GitCommandParser.js +0 -43
  164. package/dist/core/GitCommandParser.js.map +0 -1
  165. package/dist/core/HealthCheck.d.ts +0 -39
  166. package/dist/core/HealthCheck.d.ts.map +0 -1
  167. package/dist/core/HealthCheck.js +0 -219
  168. package/dist/core/HealthCheck.js.map +0 -1
  169. package/dist/core/HookIntegration.d.ts +0 -47
  170. package/dist/core/HookIntegration.d.ts.map +0 -1
  171. package/dist/core/HookIntegration.js +0 -275
  172. package/dist/core/HookIntegration.js.map +0 -1
  173. package/dist/core/MCPToolInterface.d.ts +0 -120
  174. package/dist/core/MCPToolInterface.d.ts.map +0 -1
  175. package/dist/core/MCPToolInterface.js +0 -376
  176. package/dist/core/MCPToolInterface.js.map +0 -1
  177. package/dist/core/MistakePatternManager.d.ts +0 -31
  178. package/dist/core/MistakePatternManager.d.ts.map +0 -1
  179. package/dist/core/MistakePatternManager.js +0 -137
  180. package/dist/core/MistakePatternManager.js.map +0 -1
  181. package/dist/core/ResourceMonitor.d.ts +0 -32
  182. package/dist/core/ResourceMonitor.d.ts.map +0 -1
  183. package/dist/core/ResourceMonitor.js +0 -243
  184. package/dist/core/ResourceMonitor.js.map +0 -1
  185. package/dist/core/ServiceLocator.d.ts +0 -10
  186. package/dist/core/ServiceLocator.d.ts.map +0 -1
  187. package/dist/core/ServiceLocator.js +0 -30
  188. package/dist/core/ServiceLocator.js.map +0 -1
  189. package/dist/core/TestOutputParser.d.ts +0 -20
  190. package/dist/core/TestOutputParser.d.ts.map +0 -1
  191. package/dist/core/TestOutputParser.js +0 -144
  192. package/dist/core/TestOutputParser.js.map +0 -1
  193. package/dist/db/ConnectionPool.d.ts +0 -50
  194. package/dist/db/ConnectionPool.d.ts.map +0 -1
  195. package/dist/db/ConnectionPool.js +0 -569
  196. package/dist/db/ConnectionPool.js.map +0 -1
  197. package/dist/db/IDatabaseAdapter.d.ts +0 -25
  198. package/dist/db/IDatabaseAdapter.d.ts.map +0 -1
  199. package/dist/db/IDatabaseAdapter.js +0 -2
  200. package/dist/db/IDatabaseAdapter.js.map +0 -1
  201. package/dist/db/QueryCache.d.ts +0 -46
  202. package/dist/db/QueryCache.d.ts.map +0 -1
  203. package/dist/db/QueryCache.js +0 -232
  204. package/dist/db/QueryCache.js.map +0 -1
  205. package/dist/db/adapters/BetterSqlite3Adapter.d.ts +0 -15
  206. package/dist/db/adapters/BetterSqlite3Adapter.d.ts.map +0 -1
  207. package/dist/db/adapters/BetterSqlite3Adapter.js +0 -127
  208. package/dist/db/adapters/BetterSqlite3Adapter.js.map +0 -1
  209. package/dist/embeddings/EmbeddingService.d.ts +0 -23
  210. package/dist/embeddings/EmbeddingService.d.ts.map +0 -1
  211. package/dist/embeddings/EmbeddingService.js +0 -131
  212. package/dist/embeddings/EmbeddingService.js.map +0 -1
  213. package/dist/embeddings/InMemoryVectorAdapter.d.ts +0 -15
  214. package/dist/embeddings/InMemoryVectorAdapter.d.ts.map +0 -1
  215. package/dist/embeddings/InMemoryVectorAdapter.js +0 -58
  216. package/dist/embeddings/InMemoryVectorAdapter.js.map +0 -1
  217. package/dist/embeddings/ModelManager.d.ts +0 -18
  218. package/dist/embeddings/ModelManager.d.ts.map +0 -1
  219. package/dist/embeddings/ModelManager.js +0 -84
  220. package/dist/embeddings/ModelManager.js.map +0 -1
  221. package/dist/embeddings/SqliteVecAdapter.d.ts +0 -15
  222. package/dist/embeddings/SqliteVecAdapter.d.ts.map +0 -1
  223. package/dist/embeddings/SqliteVecAdapter.js +0 -107
  224. package/dist/embeddings/SqliteVecAdapter.js.map +0 -1
  225. package/dist/embeddings/VectorExtension.d.ts +0 -17
  226. package/dist/embeddings/VectorExtension.d.ts.map +0 -1
  227. package/dist/embeddings/VectorExtension.js +0 -107
  228. package/dist/embeddings/VectorExtension.js.map +0 -1
  229. package/dist/embeddings/VectorSearchAdapter.d.ts +0 -17
  230. package/dist/embeddings/VectorSearchAdapter.d.ts.map +0 -1
  231. package/dist/embeddings/VectorSearchAdapter.js +0 -2
  232. package/dist/embeddings/VectorSearchAdapter.js.map +0 -1
  233. package/dist/embeddings/index.d.ts +0 -9
  234. package/dist/embeddings/index.d.ts.map +0 -1
  235. package/dist/embeddings/index.js +0 -7
  236. package/dist/embeddings/index.js.map +0 -1
  237. package/dist/errors/ErrorClassifier.d.ts +0 -60
  238. package/dist/errors/ErrorClassifier.d.ts.map +0 -1
  239. package/dist/errors/ErrorClassifier.js +0 -415
  240. package/dist/errors/ErrorClassifier.js.map +0 -1
  241. package/dist/errors/index.d.ts +0 -63
  242. package/dist/errors/index.d.ts.map +0 -1
  243. package/dist/errors/index.js +0 -127
  244. package/dist/errors/index.js.map +0 -1
  245. package/dist/i18n/index.d.ts +0 -9
  246. package/dist/i18n/index.d.ts.map +0 -1
  247. package/dist/i18n/index.js +0 -78
  248. package/dist/i18n/index.js.map +0 -1
  249. package/dist/i18n/locales/en.d.ts +0 -3
  250. package/dist/i18n/locales/en.d.ts.map +0 -1
  251. package/dist/i18n/locales/en.js +0 -32
  252. package/dist/i18n/locales/en.js.map +0 -1
  253. package/dist/i18n/locales/index.d.ts +0 -5
  254. package/dist/i18n/locales/index.d.ts.map +0 -1
  255. package/dist/i18n/locales/index.js +0 -5
  256. package/dist/i18n/locales/index.js.map +0 -1
  257. package/dist/i18n/locales/ja.d.ts +0 -3
  258. package/dist/i18n/locales/ja.d.ts.map +0 -1
  259. package/dist/i18n/locales/ja.js +0 -30
  260. package/dist/i18n/locales/ja.js.map +0 -1
  261. package/dist/i18n/locales/zh-CN.d.ts +0 -3
  262. package/dist/i18n/locales/zh-CN.d.ts.map +0 -1
  263. package/dist/i18n/locales/zh-CN.js +0 -30
  264. package/dist/i18n/locales/zh-CN.js.map +0 -1
  265. package/dist/i18n/locales/zh-TW.d.ts +0 -3
  266. package/dist/i18n/locales/zh-TW.d.ts.map +0 -1
  267. package/dist/i18n/locales/zh-TW.js +0 -30
  268. package/dist/i18n/locales/zh-TW.js.map +0 -1
  269. package/dist/i18n/types.d.ts +0 -11
  270. package/dist/i18n/types.d.ts.map +0 -1
  271. package/dist/i18n/types.js +0 -3
  272. package/dist/i18n/types.js.map +0 -1
  273. package/dist/integrations/session-memory/SessionContextInjector.d.ts +0 -30
  274. package/dist/integrations/session-memory/SessionContextInjector.d.ts.map +0 -1
  275. package/dist/integrations/session-memory/SessionContextInjector.js +0 -192
  276. package/dist/integrations/session-memory/SessionContextInjector.js.map +0 -1
  277. package/dist/integrations/session-memory/SessionMemoryIngester.d.ts +0 -15
  278. package/dist/integrations/session-memory/SessionMemoryIngester.d.ts.map +0 -1
  279. package/dist/integrations/session-memory/SessionMemoryIngester.js +0 -229
  280. package/dist/integrations/session-memory/SessionMemoryIngester.js.map +0 -1
  281. package/dist/integrations/session-memory/SessionMemoryParser.d.ts +0 -16
  282. package/dist/integrations/session-memory/SessionMemoryParser.d.ts.map +0 -1
  283. package/dist/integrations/session-memory/SessionMemoryParser.js +0 -271
  284. package/dist/integrations/session-memory/SessionMemoryParser.js.map +0 -1
  285. package/dist/integrations/session-memory/SessionMemoryPipeline.d.ts +0 -20
  286. package/dist/integrations/session-memory/SessionMemoryPipeline.d.ts.map +0 -1
  287. package/dist/integrations/session-memory/SessionMemoryPipeline.js +0 -60
  288. package/dist/integrations/session-memory/SessionMemoryPipeline.js.map +0 -1
  289. package/dist/integrations/session-memory/SessionMemoryWatcher.d.ts +0 -27
  290. package/dist/integrations/session-memory/SessionMemoryWatcher.d.ts.map +0 -1
  291. package/dist/integrations/session-memory/SessionMemoryWatcher.js +0 -145
  292. package/dist/integrations/session-memory/SessionMemoryWatcher.js.map +0 -1
  293. package/dist/integrations/session-memory/index.d.ts +0 -9
  294. package/dist/integrations/session-memory/index.d.ts.map +0 -1
  295. package/dist/integrations/session-memory/index.js +0 -6
  296. package/dist/integrations/session-memory/index.js.map +0 -1
  297. package/dist/integrations/session-memory/types.d.ts +0 -74
  298. package/dist/integrations/session-memory/types.d.ts.map +0 -1
  299. package/dist/integrations/session-memory/types.js +0 -22
  300. package/dist/integrations/session-memory/types.js.map +0 -1
  301. package/dist/knowledge-graph/ContentHasher.d.ts +0 -4
  302. package/dist/knowledge-graph/ContentHasher.d.ts.map +0 -1
  303. package/dist/knowledge-graph/ContentHasher.js +0 -8
  304. package/dist/knowledge-graph/ContentHasher.js.map +0 -1
  305. package/dist/knowledge-graph/KGSearchEngine.d.ts +0 -37
  306. package/dist/knowledge-graph/KGSearchEngine.d.ts.map +0 -1
  307. package/dist/knowledge-graph/KGSearchEngine.js +0 -257
  308. package/dist/knowledge-graph/KGSearchEngine.js.map +0 -1
  309. package/dist/knowledge-graph/index.d.ts +0 -64
  310. package/dist/knowledge-graph/index.d.ts.map +0 -1
  311. package/dist/knowledge-graph/index.js +0 -681
  312. package/dist/knowledge-graph/index.js.map +0 -1
  313. package/dist/knowledge-graph/types.d.ts +0 -38
  314. package/dist/knowledge-graph/types.d.ts.map +0 -1
  315. package/dist/knowledge-graph/types.js +0 -2
  316. package/dist/knowledge-graph/types.js.map +0 -1
  317. package/dist/management/UninstallManager.d.ts +0 -23
  318. package/dist/management/UninstallManager.d.ts.map +0 -1
  319. package/dist/management/UninstallManager.js +0 -186
  320. package/dist/management/UninstallManager.js.map +0 -1
  321. package/dist/management/index.d.ts +0 -3
  322. package/dist/management/index.d.ts.map +0 -1
  323. package/dist/management/index.js +0 -2
  324. package/dist/management/index.js.map +0 -1
  325. package/dist/mcp/BuddyCommands.d.ts +0 -24
  326. package/dist/mcp/BuddyCommands.d.ts.map +0 -1
  327. package/dist/mcp/BuddyCommands.js +0 -423
  328. package/dist/mcp/BuddyCommands.js.map +0 -1
  329. package/dist/mcp/ClaudeMdReloader.d.ts +0 -37
  330. package/dist/mcp/ClaudeMdReloader.d.ts.map +0 -1
  331. package/dist/mcp/ClaudeMdReloader.js +0 -92
  332. package/dist/mcp/ClaudeMdReloader.js.map +0 -1
  333. package/dist/mcp/HumanInLoopUI.d.ts +0 -23
  334. package/dist/mcp/HumanInLoopUI.d.ts.map +0 -1
  335. package/dist/mcp/HumanInLoopUI.js +0 -92
  336. package/dist/mcp/HumanInLoopUI.js.map +0 -1
  337. package/dist/mcp/ProgressReporter.d.ts +0 -14
  338. package/dist/mcp/ProgressReporter.d.ts.map +0 -1
  339. package/dist/mcp/ProgressReporter.js +0 -22
  340. package/dist/mcp/ProgressReporter.js.map +0 -1
  341. package/dist/mcp/SamplingClient.d.ts +0 -32
  342. package/dist/mcp/SamplingClient.d.ts.map +0 -1
  343. package/dist/mcp/SamplingClient.js +0 -63
  344. package/dist/mcp/SamplingClient.js.map +0 -1
  345. package/dist/mcp/ServerInitializer.d.ts +0 -40
  346. package/dist/mcp/ServerInitializer.d.ts.map +0 -1
  347. package/dist/mcp/ServerInitializer.js +0 -147
  348. package/dist/mcp/ServerInitializer.js.map +0 -1
  349. package/dist/mcp/SessionBootstrapper.d.ts +0 -13
  350. package/dist/mcp/SessionBootstrapper.d.ts.map +0 -1
  351. package/dist/mcp/SessionBootstrapper.js +0 -82
  352. package/dist/mcp/SessionBootstrapper.js.map +0 -1
  353. package/dist/mcp/StdinBufferManager.d.ts +0 -11
  354. package/dist/mcp/StdinBufferManager.d.ts.map +0 -1
  355. package/dist/mcp/StdinBufferManager.js +0 -62
  356. package/dist/mcp/StdinBufferManager.js.map +0 -1
  357. package/dist/mcp/ToolDefinitions.d.ts +0 -44
  358. package/dist/mcp/ToolDefinitions.d.ts.map +0 -1
  359. package/dist/mcp/ToolDefinitions.js +0 -445
  360. package/dist/mcp/ToolDefinitions.js.map +0 -1
  361. package/dist/mcp/ToolRouter.d.ts +0 -27
  362. package/dist/mcp/ToolRouter.d.ts.map +0 -1
  363. package/dist/mcp/ToolRouter.js +0 -179
  364. package/dist/mcp/ToolRouter.js.map +0 -1
  365. package/dist/mcp/daemon/DaemonBootstrap.d.ts +0 -33
  366. package/dist/mcp/daemon/DaemonBootstrap.d.ts.map +0 -1
  367. package/dist/mcp/daemon/DaemonBootstrap.js +0 -155
  368. package/dist/mcp/daemon/DaemonBootstrap.js.map +0 -1
  369. package/dist/mcp/daemon/DaemonLockManager.d.ts +0 -47
  370. package/dist/mcp/daemon/DaemonLockManager.d.ts.map +0 -1
  371. package/dist/mcp/daemon/DaemonLockManager.js +0 -417
  372. package/dist/mcp/daemon/DaemonLockManager.js.map +0 -1
  373. package/dist/mcp/daemon/DaemonProtocol.d.ts +0 -127
  374. package/dist/mcp/daemon/DaemonProtocol.d.ts.map +0 -1
  375. package/dist/mcp/daemon/DaemonProtocol.js +0 -452
  376. package/dist/mcp/daemon/DaemonProtocol.js.map +0 -1
  377. package/dist/mcp/daemon/DaemonSocketServer.d.ts +0 -71
  378. package/dist/mcp/daemon/DaemonSocketServer.d.ts.map +0 -1
  379. package/dist/mcp/daemon/DaemonSocketServer.js +0 -384
  380. package/dist/mcp/daemon/DaemonSocketServer.js.map +0 -1
  381. package/dist/mcp/daemon/GracefulShutdownCoordinator.d.ts +0 -67
  382. package/dist/mcp/daemon/GracefulShutdownCoordinator.d.ts.map +0 -1
  383. package/dist/mcp/daemon/GracefulShutdownCoordinator.js +0 -206
  384. package/dist/mcp/daemon/GracefulShutdownCoordinator.js.map +0 -1
  385. package/dist/mcp/daemon/IpcTransport.d.ts +0 -42
  386. package/dist/mcp/daemon/IpcTransport.d.ts.map +0 -1
  387. package/dist/mcp/daemon/IpcTransport.js +0 -231
  388. package/dist/mcp/daemon/IpcTransport.js.map +0 -1
  389. package/dist/mcp/daemon/StdioProxyClient.d.ts +0 -84
  390. package/dist/mcp/daemon/StdioProxyClient.d.ts.map +0 -1
  391. package/dist/mcp/daemon/StdioProxyClient.js +0 -574
  392. package/dist/mcp/daemon/StdioProxyClient.js.map +0 -1
  393. package/dist/mcp/daemon/VersionManager.d.ts +0 -35
  394. package/dist/mcp/daemon/VersionManager.d.ts.map +0 -1
  395. package/dist/mcp/daemon/VersionManager.js +0 -169
  396. package/dist/mcp/daemon/VersionManager.js.map +0 -1
  397. package/dist/mcp/daemon/index.d.ts +0 -9
  398. package/dist/mcp/daemon/index.d.ts.map +0 -1
  399. package/dist/mcp/daemon/index.js +0 -9
  400. package/dist/mcp/daemon/index.js.map +0 -1
  401. package/dist/mcp/handlers/BuddyHandlers.d.ts +0 -18
  402. package/dist/mcp/handlers/BuddyHandlers.d.ts.map +0 -1
  403. package/dist/mcp/handlers/BuddyHandlers.js +0 -179
  404. package/dist/mcp/handlers/BuddyHandlers.js.map +0 -1
  405. package/dist/mcp/handlers/BuddyRecordMistake.d.ts +0 -17
  406. package/dist/mcp/handlers/BuddyRecordMistake.d.ts.map +0 -1
  407. package/dist/mcp/handlers/BuddyRecordMistake.js +0 -147
  408. package/dist/mcp/handlers/BuddyRecordMistake.js.map +0 -1
  409. package/dist/mcp/handlers/HookToolHandler.d.ts +0 -10
  410. package/dist/mcp/handlers/HookToolHandler.d.ts.map +0 -1
  411. package/dist/mcp/handlers/HookToolHandler.js +0 -92
  412. package/dist/mcp/handlers/HookToolHandler.js.map +0 -1
  413. package/dist/mcp/handlers/MemoryToolHandler.d.ts +0 -21
  414. package/dist/mcp/handlers/MemoryToolHandler.d.ts.map +0 -1
  415. package/dist/mcp/handlers/MemoryToolHandler.js +0 -433
  416. package/dist/mcp/handlers/MemoryToolHandler.js.map +0 -1
  417. package/dist/mcp/handlers/ResourceHandlers.d.ts +0 -3
  418. package/dist/mcp/handlers/ResourceHandlers.d.ts.map +0 -1
  419. package/dist/mcp/handlers/ResourceHandlers.js +0 -133
  420. package/dist/mcp/handlers/ResourceHandlers.js.map +0 -1
  421. package/dist/mcp/handlers/SystemToolHandler.d.ts +0 -14
  422. package/dist/mcp/handlers/SystemToolHandler.d.ts.map +0 -1
  423. package/dist/mcp/handlers/SystemToolHandler.js +0 -224
  424. package/dist/mcp/handlers/SystemToolHandler.js.map +0 -1
  425. package/dist/mcp/handlers/ToolHandlers.d.ts +0 -26
  426. package/dist/mcp/handlers/ToolHandlers.d.ts.map +0 -1
  427. package/dist/mcp/handlers/ToolHandlers.js +0 -41
  428. package/dist/mcp/handlers/ToolHandlers.js.map +0 -1
  429. package/dist/mcp/handlers/index.d.ts +0 -7
  430. package/dist/mcp/handlers/index.d.ts.map +0 -1
  431. package/dist/mcp/handlers/index.js +0 -7
  432. package/dist/mcp/handlers/index.js.map +0 -1
  433. package/dist/mcp/index.d.ts +0 -5
  434. package/dist/mcp/index.d.ts.map +0 -1
  435. package/dist/mcp/index.js +0 -3
  436. package/dist/mcp/index.js.map +0 -1
  437. package/dist/mcp/resources/ResourceRegistry.d.ts +0 -23
  438. package/dist/mcp/resources/ResourceRegistry.d.ts.map +0 -1
  439. package/dist/mcp/resources/ResourceRegistry.js +0 -26
  440. package/dist/mcp/resources/ResourceRegistry.js.map +0 -1
  441. package/dist/mcp/resources/URITemplateHandler.d.ts +0 -8
  442. package/dist/mcp/resources/URITemplateHandler.d.ts.map +0 -1
  443. package/dist/mcp/resources/URITemplateHandler.js +0 -29
  444. package/dist/mcp/resources/URITemplateHandler.js.map +0 -1
  445. package/dist/mcp/resources/best-practices.md +0 -53
  446. package/dist/mcp/resources/buddy-do-skill.md +0 -84
  447. package/dist/mcp/resources/ccb-complete-guide.md +0 -247
  448. package/dist/mcp/resources/examples.md +0 -47
  449. package/dist/mcp/resources/handlers/AgentStatusHandler.d.ts +0 -7
  450. package/dist/mcp/resources/handlers/AgentStatusHandler.d.ts.map +0 -1
  451. package/dist/mcp/resources/handlers/AgentStatusHandler.js +0 -41
  452. package/dist/mcp/resources/handlers/AgentStatusHandler.js.map +0 -1
  453. package/dist/mcp/resources/handlers/TaskLogsHandler.d.ts +0 -7
  454. package/dist/mcp/resources/handlers/TaskLogsHandler.d.ts.map +0 -1
  455. package/dist/mcp/resources/handlers/TaskLogsHandler.js +0 -35
  456. package/dist/mcp/resources/handlers/TaskLogsHandler.js.map +0 -1
  457. package/dist/mcp/resources/quick-reference.md +0 -71
  458. package/dist/mcp/resources/usage-guide.md +0 -74
  459. package/dist/mcp/schemas/OutputSchemas.d.ts +0 -437
  460. package/dist/mcp/schemas/OutputSchemas.d.ts.map +0 -1
  461. package/dist/mcp/schemas/OutputSchemas.js +0 -215
  462. package/dist/mcp/schemas/OutputSchemas.js.map +0 -1
  463. package/dist/mcp/server-bootstrap.d.ts +0 -3
  464. package/dist/mcp/server-bootstrap.d.ts.map +0 -1
  465. package/dist/mcp/server-bootstrap.js +0 -391
  466. package/dist/mcp/server-bootstrap.js.map +0 -1
  467. package/dist/mcp/tools/add-observations.d.ts +0 -48
  468. package/dist/mcp/tools/add-observations.d.ts.map +0 -1
  469. package/dist/mcp/tools/add-observations.js +0 -64
  470. package/dist/mcp/tools/add-observations.js.map +0 -1
  471. package/dist/mcp/tools/buddy-do.d.ts +0 -15
  472. package/dist/mcp/tools/buddy-do.d.ts.map +0 -1
  473. package/dist/mcp/tools/buddy-do.js +0 -191
  474. package/dist/mcp/tools/buddy-do.js.map +0 -1
  475. package/dist/mcp/tools/buddy-help.d.ts +0 -13
  476. package/dist/mcp/tools/buddy-help.d.ts.map +0 -1
  477. package/dist/mcp/tools/buddy-help.js +0 -44
  478. package/dist/mcp/tools/buddy-help.js.map +0 -1
  479. package/dist/mcp/tools/buddy-remember.d.ts +0 -24
  480. package/dist/mcp/tools/buddy-remember.d.ts.map +0 -1
  481. package/dist/mcp/tools/buddy-remember.js +0 -304
  482. package/dist/mcp/tools/buddy-remember.js.map +0 -1
  483. package/dist/mcp/tools/create-entities.d.ts +0 -66
  484. package/dist/mcp/tools/create-entities.d.ts.map +0 -1
  485. package/dist/mcp/tools/create-entities.js +0 -224
  486. package/dist/mcp/tools/create-entities.js.map +0 -1
  487. package/dist/mcp/tools/create-relations.d.ts +0 -60
  488. package/dist/mcp/tools/create-relations.d.ts.map +0 -1
  489. package/dist/mcp/tools/create-relations.js +0 -84
  490. package/dist/mcp/tools/create-relations.js.map +0 -1
  491. package/dist/mcp/tools/generate-tests.d.ts +0 -11
  492. package/dist/mcp/tools/generate-tests.d.ts.map +0 -1
  493. package/dist/mcp/tools/generate-tests.js +0 -19
  494. package/dist/mcp/tools/generate-tests.js.map +0 -1
  495. package/dist/mcp/tools/health-check.d.ts +0 -10
  496. package/dist/mcp/tools/health-check.d.ts.map +0 -1
  497. package/dist/mcp/tools/health-check.js +0 -37
  498. package/dist/mcp/tools/health-check.js.map +0 -1
  499. package/dist/mcp/tools/memesh-agent-register.d.ts +0 -20
  500. package/dist/mcp/tools/memesh-agent-register.d.ts.map +0 -1
  501. package/dist/mcp/tools/memesh-agent-register.js +0 -80
  502. package/dist/mcp/tools/memesh-agent-register.js.map +0 -1
  503. package/dist/mcp/tools/memesh-cloud-sync.d.ts +0 -30
  504. package/dist/mcp/tools/memesh-cloud-sync.d.ts.map +0 -1
  505. package/dist/mcp/tools/memesh-cloud-sync.js +0 -257
  506. package/dist/mcp/tools/memesh-cloud-sync.js.map +0 -1
  507. package/dist/mcp/tools/memesh-metrics.d.ts +0 -13
  508. package/dist/mcp/tools/memesh-metrics.d.ts.map +0 -1
  509. package/dist/mcp/tools/memesh-metrics.js +0 -193
  510. package/dist/mcp/tools/memesh-metrics.js.map +0 -1
  511. package/dist/mcp/tools/recall-memory.d.ts +0 -31
  512. package/dist/mcp/tools/recall-memory.d.ts.map +0 -1
  513. package/dist/mcp/tools/recall-memory.js +0 -31
  514. package/dist/mcp/tools/recall-memory.js.map +0 -1
  515. package/dist/mcp/validation.d.ts +0 -76
  516. package/dist/mcp/validation.d.ts.map +0 -1
  517. package/dist/mcp/validation.js +0 -106
  518. package/dist/mcp/validation.js.map +0 -1
  519. package/dist/memory/AutoMemoryRecorder.d.ts +0 -35
  520. package/dist/memory/AutoMemoryRecorder.d.ts.map +0 -1
  521. package/dist/memory/AutoMemoryRecorder.js +0 -164
  522. package/dist/memory/AutoMemoryRecorder.js.map +0 -1
  523. package/dist/memory/AutoTagger.d.ts +0 -9
  524. package/dist/memory/AutoTagger.d.ts.map +0 -1
  525. package/dist/memory/AutoTagger.js +0 -149
  526. package/dist/memory/AutoTagger.js.map +0 -1
  527. package/dist/memory/BuiltInRules.d.ts +0 -54
  528. package/dist/memory/BuiltInRules.d.ts.map +0 -1
  529. package/dist/memory/BuiltInRules.js +0 -161
  530. package/dist/memory/BuiltInRules.js.map +0 -1
  531. package/dist/memory/EnhancedRetrieval.d.ts +0 -22
  532. package/dist/memory/EnhancedRetrieval.d.ts.map +0 -1
  533. package/dist/memory/EnhancedRetrieval.js +0 -63
  534. package/dist/memory/EnhancedRetrieval.js.map +0 -1
  535. package/dist/memory/EntityTypes.d.ts +0 -14
  536. package/dist/memory/EntityTypes.d.ts.map +0 -1
  537. package/dist/memory/EntityTypes.js +0 -19
  538. package/dist/memory/EntityTypes.js.map +0 -1
  539. package/dist/memory/MemorySearchEngine.d.ts +0 -17
  540. package/dist/memory/MemorySearchEngine.d.ts.map +0 -1
  541. package/dist/memory/MemorySearchEngine.js +0 -88
  542. package/dist/memory/MemorySearchEngine.js.map +0 -1
  543. package/dist/memory/MistakePatternEngine.d.ts +0 -15
  544. package/dist/memory/MistakePatternEngine.d.ts.map +0 -1
  545. package/dist/memory/MistakePatternEngine.js +0 -99
  546. package/dist/memory/MistakePatternEngine.js.map +0 -1
  547. package/dist/memory/PreventionHook.d.ts +0 -28
  548. package/dist/memory/PreventionHook.d.ts.map +0 -1
  549. package/dist/memory/PreventionHook.js +0 -21
  550. package/dist/memory/PreventionHook.js.map +0 -1
  551. package/dist/memory/ProactiveRecaller.d.ts +0 -26
  552. package/dist/memory/ProactiveRecaller.d.ts.map +0 -1
  553. package/dist/memory/ProactiveRecaller.js +0 -96
  554. package/dist/memory/ProactiveRecaller.js.map +0 -1
  555. package/dist/memory/ProjectAutoTracker.d.ts +0 -80
  556. package/dist/memory/ProjectAutoTracker.d.ts.map +0 -1
  557. package/dist/memory/ProjectAutoTracker.js +0 -386
  558. package/dist/memory/ProjectAutoTracker.js.map +0 -1
  559. package/dist/memory/ProjectMemoryCleanup.d.ts +0 -17
  560. package/dist/memory/ProjectMemoryCleanup.d.ts.map +0 -1
  561. package/dist/memory/ProjectMemoryCleanup.js +0 -57
  562. package/dist/memory/ProjectMemoryCleanup.js.map +0 -1
  563. package/dist/memory/ProjectMemoryManager.d.ts +0 -19
  564. package/dist/memory/ProjectMemoryManager.d.ts.map +0 -1
  565. package/dist/memory/ProjectMemoryManager.js +0 -62
  566. package/dist/memory/ProjectMemoryManager.js.map +0 -1
  567. package/dist/memory/SmartMemoryQuery.d.ts +0 -9
  568. package/dist/memory/SmartMemoryQuery.d.ts.map +0 -1
  569. package/dist/memory/SmartMemoryQuery.js +0 -66
  570. package/dist/memory/SmartMemoryQuery.js.map +0 -1
  571. package/dist/memory/UnifiedMemoryStore.d.ts +0 -27
  572. package/dist/memory/UnifiedMemoryStore.d.ts.map +0 -1
  573. package/dist/memory/UnifiedMemoryStore.js +0 -536
  574. package/dist/memory/UnifiedMemoryStore.js.map +0 -1
  575. package/dist/memory/UserPreferenceEngine.d.ts +0 -18
  576. package/dist/memory/UserPreferenceEngine.d.ts.map +0 -1
  577. package/dist/memory/UserPreferenceEngine.js +0 -117
  578. package/dist/memory/UserPreferenceEngine.js.map +0 -1
  579. package/dist/memory/config/semantic-groups.d.ts +0 -9
  580. package/dist/memory/config/semantic-groups.d.ts.map +0 -1
  581. package/dist/memory/config/semantic-groups.js +0 -22
  582. package/dist/memory/config/semantic-groups.js.map +0 -1
  583. package/dist/memory/index.d.ts +0 -16
  584. package/dist/memory/index.d.ts.map +0 -1
  585. package/dist/memory/index.js +0 -12
  586. package/dist/memory/index.js.map +0 -1
  587. package/dist/memory/types/index.d.ts +0 -7
  588. package/dist/memory/types/index.d.ts.map +0 -1
  589. package/dist/memory/types/index.js +0 -4
  590. package/dist/memory/types/index.js.map +0 -1
  591. package/dist/memory/types/memory-scope.d.ts +0 -27
  592. package/dist/memory/types/memory-scope.d.ts.map +0 -1
  593. package/dist/memory/types/memory-scope.js +0 -67
  594. package/dist/memory/types/memory-scope.js.map +0 -1
  595. package/dist/memory/types/pattern-types.d.ts +0 -66
  596. package/dist/memory/types/pattern-types.d.ts.map +0 -1
  597. package/dist/memory/types/pattern-types.js +0 -2
  598. package/dist/memory/types/pattern-types.js.map +0 -1
  599. package/dist/memory/types/preference-types.d.ts +0 -28
  600. package/dist/memory/types/preference-types.d.ts.map +0 -1
  601. package/dist/memory/types/preference-types.js +0 -2
  602. package/dist/memory/types/preference-types.js.map +0 -1
  603. package/dist/memory/types/unified-memory.d.ts +0 -29
  604. package/dist/memory/types/unified-memory.d.ts.map +0 -1
  605. package/dist/memory/types/unified-memory.js +0 -21
  606. package/dist/memory/types/unified-memory.js.map +0 -1
  607. package/dist/prompts/templates/PromptTemplates.d.ts +0 -11
  608. package/dist/prompts/templates/PromptTemplates.d.ts.map +0 -1
  609. package/dist/prompts/templates/PromptTemplates.js +0 -942
  610. package/dist/prompts/templates/PromptTemplates.js.map +0 -1
  611. package/dist/prompts/templates/index.d.ts +0 -2
  612. package/dist/prompts/templates/index.d.ts.map +0 -1
  613. package/dist/prompts/templates/index.js +0 -2
  614. package/dist/prompts/templates/index.js.map +0 -1
  615. package/dist/skills/SkillManager.d.ts +0 -33
  616. package/dist/skills/SkillManager.d.ts.map +0 -1
  617. package/dist/skills/SkillManager.js +0 -153
  618. package/dist/skills/SkillManager.js.map +0 -1
  619. package/dist/skills/index.d.ts +0 -3
  620. package/dist/skills/index.d.ts.map +0 -1
  621. package/dist/skills/index.js +0 -2
  622. package/dist/skills/index.js.map +0 -1
  623. package/dist/telemetry/TelemetryCollector.d.ts +0 -19
  624. package/dist/telemetry/TelemetryCollector.d.ts.map +0 -1
  625. package/dist/telemetry/TelemetryCollector.js +0 -62
  626. package/dist/telemetry/TelemetryCollector.js.map +0 -1
  627. package/dist/telemetry/TelemetryStore.d.ts +0 -20
  628. package/dist/telemetry/TelemetryStore.d.ts.map +0 -1
  629. package/dist/telemetry/TelemetryStore.js +0 -127
  630. package/dist/telemetry/TelemetryStore.js.map +0 -1
  631. package/dist/telemetry/index.d.ts +0 -8
  632. package/dist/telemetry/index.d.ts.map +0 -1
  633. package/dist/telemetry/index.js +0 -33
  634. package/dist/telemetry/index.js.map +0 -1
  635. package/dist/telemetry/sanitization.d.ts +0 -6
  636. package/dist/telemetry/sanitization.d.ts.map +0 -1
  637. package/dist/telemetry/sanitization.js +0 -180
  638. package/dist/telemetry/sanitization.js.map +0 -1
  639. package/dist/telemetry/types.d.ts +0 -73
  640. package/dist/telemetry/types.d.ts.map +0 -1
  641. package/dist/telemetry/types.js +0 -16
  642. package/dist/telemetry/types.js.map +0 -1
  643. package/dist/tools/TestGenerator.d.ts +0 -8
  644. package/dist/tools/TestGenerator.d.ts.map +0 -1
  645. package/dist/tools/TestGenerator.js +0 -54
  646. package/dist/tools/TestGenerator.js.map +0 -1
  647. package/dist/types/AgentClassification.d.ts +0 -30
  648. package/dist/types/AgentClassification.d.ts.map +0 -1
  649. package/dist/types/AgentClassification.js +0 -19
  650. package/dist/types/AgentClassification.js.map +0 -1
  651. package/dist/types/Checkpoint.d.ts +0 -12
  652. package/dist/types/Checkpoint.d.ts.map +0 -1
  653. package/dist/types/Checkpoint.js +0 -13
  654. package/dist/types/Checkpoint.js.map +0 -1
  655. package/dist/types/toonify.d.ts +0 -91
  656. package/dist/types/toonify.d.ts.map +0 -1
  657. package/dist/types/toonify.js +0 -18
  658. package/dist/types/toonify.js.map +0 -1
  659. package/dist/ui/AsciiProgressBar.d.ts +0 -29
  660. package/dist/ui/AsciiProgressBar.d.ts.map +0 -1
  661. package/dist/ui/AsciiProgressBar.js +0 -130
  662. package/dist/ui/AsciiProgressBar.js.map +0 -1
  663. package/dist/ui/AttributionManager.d.ts +0 -19
  664. package/dist/ui/AttributionManager.d.ts.map +0 -1
  665. package/dist/ui/AttributionManager.js +0 -107
  666. package/dist/ui/AttributionManager.js.map +0 -1
  667. package/dist/ui/Dashboard.d.ts +0 -24
  668. package/dist/ui/Dashboard.d.ts.map +0 -1
  669. package/dist/ui/Dashboard.js +0 -135
  670. package/dist/ui/Dashboard.js.map +0 -1
  671. package/dist/ui/LoadingIndicator.d.ts +0 -53
  672. package/dist/ui/LoadingIndicator.d.ts.map +0 -1
  673. package/dist/ui/LoadingIndicator.js +0 -211
  674. package/dist/ui/LoadingIndicator.js.map +0 -1
  675. package/dist/ui/MetricsStore.d.ts +0 -15
  676. package/dist/ui/MetricsStore.d.ts.map +0 -1
  677. package/dist/ui/MetricsStore.js +0 -131
  678. package/dist/ui/MetricsStore.js.map +0 -1
  679. package/dist/ui/ProgressIndicator.d.ts +0 -35
  680. package/dist/ui/ProgressIndicator.d.ts.map +0 -1
  681. package/dist/ui/ProgressIndicator.js +0 -177
  682. package/dist/ui/ProgressIndicator.js.map +0 -1
  683. package/dist/ui/ProgressRenderer.d.ts +0 -24
  684. package/dist/ui/ProgressRenderer.d.ts.map +0 -1
  685. package/dist/ui/ProgressRenderer.js +0 -143
  686. package/dist/ui/ProgressRenderer.js.map +0 -1
  687. package/dist/ui/ResponseFormatter.d.ts +0 -57
  688. package/dist/ui/ResponseFormatter.d.ts.map +0 -1
  689. package/dist/ui/ResponseFormatter.js +0 -513
  690. package/dist/ui/ResponseFormatter.js.map +0 -1
  691. package/dist/ui/UIEventBus.d.ts +0 -38
  692. package/dist/ui/UIEventBus.d.ts.map +0 -1
  693. package/dist/ui/UIEventBus.js +0 -173
  694. package/dist/ui/UIEventBus.js.map +0 -1
  695. package/dist/ui/accessibility.d.ts +0 -28
  696. package/dist/ui/accessibility.d.ts.map +0 -1
  697. package/dist/ui/accessibility.js +0 -97
  698. package/dist/ui/accessibility.js.map +0 -1
  699. package/dist/ui/design-tokens.d.ts +0 -36
  700. package/dist/ui/design-tokens.d.ts.map +0 -1
  701. package/dist/ui/design-tokens.js +0 -94
  702. package/dist/ui/design-tokens.js.map +0 -1
  703. package/dist/ui/index.d.ts +0 -8
  704. package/dist/ui/index.d.ts.map +0 -1
  705. package/dist/ui/index.js +0 -6
  706. package/dist/ui/index.js.map +0 -1
  707. package/dist/ui/theme.d.ts +0 -313
  708. package/dist/ui/theme.d.ts.map +0 -1
  709. package/dist/ui/theme.js +0 -198
  710. package/dist/ui/theme.js.map +0 -1
  711. package/dist/ui/types.d.ts +0 -146
  712. package/dist/ui/types.d.ts.map +0 -1
  713. package/dist/ui/types.js +0 -16
  714. package/dist/ui/types.js.map +0 -1
  715. package/dist/utils/ILogger.d.ts +0 -7
  716. package/dist/utils/ILogger.d.ts.map +0 -1
  717. package/dist/utils/ILogger.js +0 -2
  718. package/dist/utils/ILogger.js.map +0 -1
  719. package/dist/utils/MinHeap.d.ts +0 -15
  720. package/dist/utils/MinHeap.d.ts.map +0 -1
  721. package/dist/utils/MinHeap.js +0 -69
  722. package/dist/utils/MinHeap.js.map +0 -1
  723. package/dist/utils/PathResolver.d.ts +0 -13
  724. package/dist/utils/PathResolver.d.ts.map +0 -1
  725. package/dist/utils/PathResolver.js +0 -77
  726. package/dist/utils/PathResolver.js.map +0 -1
  727. package/dist/utils/RateLimiter.d.ts +0 -28
  728. package/dist/utils/RateLimiter.d.ts.map +0 -1
  729. package/dist/utils/RateLimiter.js +0 -115
  730. package/dist/utils/RateLimiter.js.map +0 -1
  731. package/dist/utils/SystemResources.d.ts +0 -40
  732. package/dist/utils/SystemResources.d.ts.map +0 -1
  733. package/dist/utils/SystemResources.js +0 -216
  734. package/dist/utils/SystemResources.js.map +0 -1
  735. package/dist/utils/errorHandler.d.ts +0 -49
  736. package/dist/utils/errorHandler.d.ts.map +0 -1
  737. package/dist/utils/errorHandler.js +0 -397
  738. package/dist/utils/errorHandler.js.map +0 -1
  739. package/dist/utils/index.d.ts +0 -17
  740. package/dist/utils/index.d.ts.map +0 -1
  741. package/dist/utils/index.js +0 -15
  742. package/dist/utils/index.js.map +0 -1
  743. package/dist/utils/json.d.ts +0 -13
  744. package/dist/utils/json.d.ts.map +0 -1
  745. package/dist/utils/json.js +0 -95
  746. package/dist/utils/json.js.map +0 -1
  747. package/dist/utils/logger.d.ts +0 -16
  748. package/dist/utils/logger.d.ts.map +0 -1
  749. package/dist/utils/logger.js +0 -125
  750. package/dist/utils/logger.js.map +0 -1
  751. package/dist/utils/lru-cache.d.ts +0 -47
  752. package/dist/utils/lru-cache.d.ts.map +0 -1
  753. package/dist/utils/lru-cache.js +0 -239
  754. package/dist/utils/lru-cache.js.map +0 -1
  755. package/dist/utils/memory.d.ts +0 -20
  756. package/dist/utils/memory.d.ts.map +0 -1
  757. package/dist/utils/memory.js +0 -53
  758. package/dist/utils/memory.js.map +0 -1
  759. package/dist/utils/money.d.ts +0 -10
  760. package/dist/utils/money.d.ts.map +0 -1
  761. package/dist/utils/money.js +0 -25
  762. package/dist/utils/money.js.map +0 -1
  763. package/dist/utils/pathValidation.d.ts +0 -2
  764. package/dist/utils/pathValidation.d.ts.map +0 -1
  765. package/dist/utils/pathValidation.js +0 -62
  766. package/dist/utils/pathValidation.js.map +0 -1
  767. package/dist/utils/paths.d.ts +0 -4
  768. package/dist/utils/paths.d.ts.map +0 -1
  769. package/dist/utils/paths.js +0 -28
  770. package/dist/utils/paths.js.map +0 -1
  771. package/dist/utils/requestId.d.ts +0 -4
  772. package/dist/utils/requestId.d.ts.map +0 -1
  773. package/dist/utils/requestId.js +0 -17
  774. package/dist/utils/requestId.js.map +0 -1
  775. package/dist/utils/retry.d.ts +0 -20
  776. package/dist/utils/retry.d.ts.map +0 -1
  777. package/dist/utils/retry.js +0 -226
  778. package/dist/utils/retry.js.map +0 -1
  779. package/dist/utils/safeMath.d.ts +0 -11
  780. package/dist/utils/safeMath.d.ts.map +0 -1
  781. package/dist/utils/safeMath.js +0 -92
  782. package/dist/utils/safeMath.js.map +0 -1
  783. package/dist/utils/toonify-adapter.d.ts +0 -77
  784. package/dist/utils/toonify-adapter.d.ts.map +0 -1
  785. package/dist/utils/toonify-adapter.js +0 -282
  786. package/dist/utils/toonify-adapter.js.map +0 -1
  787. package/dist/utils/tracing/TraceContext.d.ts +0 -23
  788. package/dist/utils/tracing/TraceContext.d.ts.map +0 -1
  789. package/dist/utils/tracing/TraceContext.js +0 -127
  790. package/dist/utils/tracing/TraceContext.js.map +0 -1
  791. package/dist/utils/tracing/index.d.ts +0 -2
  792. package/dist/utils/tracing/index.d.ts.map +0 -1
  793. package/dist/utils/tracing/index.js +0 -2
  794. package/dist/utils/tracing/index.js.map +0 -1
  795. package/dist/utils/tracing/middleware.d.ts +0 -15
  796. package/dist/utils/tracing/middleware.d.ts.map +0 -1
  797. package/dist/utils/tracing/middleware.js +0 -49
  798. package/dist/utils/tracing/middleware.js.map +0 -1
  799. package/dist/utils/validation.d.ts +0 -12
  800. package/dist/utils/validation.d.ts.map +0 -1
  801. package/dist/utils/validation.js +0 -87
  802. package/dist/utils/validation.js.map +0 -1
  803. package/scripts/health-check.js +0 -331
  804. package/scripts/hooks/README.md +0 -230
  805. package/scripts/hooks/__tests__/hook-test-harness.js +0 -218
  806. package/scripts/hooks/__tests__/hooks.test.js +0 -267
  807. package/scripts/hooks/__tests__/post-tool-use-recall.test.js +0 -192
  808. package/scripts/hooks/__tests__/session-start-recall.test.js +0 -86
  809. package/scripts/hooks/hook-utils.js +0 -899
  810. package/scripts/hooks/post-tool-use-recall-utils.js +0 -74
  811. package/scripts/hooks/post-tool-use.js +0 -895
  812. package/scripts/hooks/pre-tool-use.js +0 -491
  813. package/scripts/hooks/session-start-recall-utils.js +0 -40
  814. package/scripts/hooks/stop.js +0 -673
  815. package/scripts/hooks/subagent-stop.js +0 -184
  816. package/scripts/postinstall-lib.js +0 -242
  817. package/scripts/postinstall-new.js +0 -191
  818. package/scripts/skills/comprehensive-code-review/SKILL.md +0 -276
@@ -1,895 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * PostToolUse Hook - Claude Code Event-Driven Hooks
5
- *
6
- * Triggered after each tool execution in Claude Code.
7
- *
8
- * Features (Silent Observer):
9
- * - Reads tool execution data from stdin
10
- * - Detects patterns (READ_BEFORE_EDIT, Git workflows, Frontend work, Search patterns)
11
- * - Detects anomalies (slow execution, high tokens, failures, quota warnings)
12
- * - Updates recommendations.json incrementally
13
- * - Updates current-session.json
14
- * - Auto-saves key points to MeMesh when token threshold reached
15
- * - Runs silently (no console output - non-intrusive)
16
- */
17
-
18
- import {
19
- STATE_DIR,
20
- MEMESH_DB_PATH,
21
- THRESHOLDS,
22
- readJSONFile,
23
- writeJSONFile,
24
- writeJSONFileAsync,
25
- sqliteBatchEntity,
26
- readStdin,
27
- logError,
28
- logMemorySave,
29
- getDateString,
30
- isPlanFile,
31
- parsePlanSteps,
32
- derivePlanName,
33
- sqliteQueryJSON,
34
- updateEntityMetadata,
35
- addObservation,
36
- } from './hook-utils.js';
37
- import { isTestCommand, extractTestFailureContext, buildTestFailureQuery, buildErrorQuery } from './post-tool-use-recall-utils.js';
38
- import fs from 'fs';
39
- import path from 'path';
40
-
41
- // ============================================================================
42
- // File Paths
43
- // ============================================================================
44
-
45
- const RECOMMENDATIONS_FILE = path.join(STATE_DIR, 'recommendations.json');
46
- const CURRENT_SESSION_FILE = path.join(STATE_DIR, 'current-session.json');
47
- const SESSION_CONTEXT_FILE = path.join(STATE_DIR, 'session-context.json');
48
-
49
- // ============================================================================
50
- // Pattern Detection
51
- // ============================================================================
52
-
53
- /**
54
- * Pattern Detector - Analyzes tool usage patterns
55
- */
56
- class PatternDetector {
57
- constructor() {
58
- this.recentTools = [];
59
- }
60
-
61
- /**
62
- * Add a tool call to the recent tools list
63
- * @param {Object} toolData - Tool execution data
64
- */
65
- addToolCall(toolData) {
66
- this.recentTools.push({
67
- toolName: toolData.toolName,
68
- args: toolData.arguments,
69
- timestamp: new Date().toISOString(),
70
- });
71
-
72
- // Keep only last 10 (using slice instead of shift for better performance)
73
- if (this.recentTools.length > 10) {
74
- this.recentTools = this.recentTools.slice(-10);
75
- }
76
- }
77
-
78
- /**
79
- * Detect patterns in recent tool usage
80
- * @param {Object} currentTool - Current tool execution data
81
- * @returns {Array} Detected patterns
82
- */
83
- detectPatterns(currentTool) {
84
- const patterns = [];
85
-
86
- if (!currentTool || !currentTool.toolName) {
87
- return patterns;
88
- }
89
-
90
- const toolArgs = currentTool.arguments || {};
91
-
92
- // Pattern 1: READ_BEFORE_EDIT
93
- if (currentTool.toolName === 'Edit') {
94
- const filePath = toolArgs.file_path;
95
- if (filePath) {
96
- const recentReads = this.recentTools.filter(t =>
97
- t.toolName === 'Read' && t.args?.file_path === filePath
98
- );
99
- if (recentReads.length > 0) {
100
- patterns.push({
101
- type: 'READ_BEFORE_EDIT',
102
- description: 'Read before Edit - correct behavior',
103
- severity: 'info',
104
- });
105
- } else {
106
- patterns.push({
107
- type: 'EDIT_WITHOUT_READ',
108
- description: `Edit ${path.basename(filePath)} without prior Read`,
109
- severity: 'warning',
110
- });
111
- }
112
- }
113
- }
114
-
115
- // Pattern 2: Git Workflow
116
- const gitCommands = ['git add', 'git commit', 'git push', 'git branch', 'git checkout'];
117
- if (currentTool.toolName === 'Bash' && toolArgs.command) {
118
- const cmd = toolArgs.command;
119
- if (gitCommands.some(gitCmd => cmd.includes(gitCmd))) {
120
- const recentGitOps = this.recentTools.filter(t =>
121
- t.toolName === 'Bash' && gitCommands.some(gc => t.args?.command?.includes(gc))
122
- ).length;
123
-
124
- if (recentGitOps >= 2) {
125
- patterns.push({
126
- type: 'GIT_WORKFLOW',
127
- description: `Git workflow detected (${recentGitOps + 1} operations)`,
128
- severity: 'info',
129
- suggestion: 'Consider loading devops-git-workflows skill',
130
- });
131
- }
132
- }
133
- }
134
-
135
- // Pattern 3: Frontend Work
136
- const frontendExtensions = ['.tsx', '.jsx', '.vue', '.svelte', '.css', '.scss'];
137
- if (['Edit', 'Write', 'Read'].includes(currentTool.toolName)) {
138
- const filePath = toolArgs.file_path;
139
- if (filePath && frontendExtensions.some(ext => filePath.endsWith(ext))) {
140
- const recentFrontendOps = this.recentTools.filter(t =>
141
- ['Edit', 'Write', 'Read'].includes(t.toolName) &&
142
- frontendExtensions.some(ext => t.args?.file_path?.endsWith(ext))
143
- ).length;
144
-
145
- if (recentFrontendOps >= 2) {
146
- patterns.push({
147
- type: 'FRONTEND_WORK',
148
- description: `Frontend work detected (${recentFrontendOps + 1} files)`,
149
- severity: 'info',
150
- suggestion: 'Consider loading frontend-design skill',
151
- });
152
- }
153
- }
154
- }
155
-
156
- // Pattern 4: Intensive Search
157
- if (['Grep', 'Glob'].includes(currentTool.toolName)) {
158
- const recentSearches = this.recentTools.filter(t =>
159
- ['Grep', 'Glob'].includes(t.toolName)
160
- ).length;
161
-
162
- if (recentSearches >= 3) {
163
- patterns.push({
164
- type: 'INTENSIVE_SEARCH',
165
- description: `Multiple search operations (${recentSearches + 1} times)`,
166
- severity: 'info',
167
- });
168
- }
169
- }
170
-
171
- return patterns;
172
- }
173
- }
174
-
175
- // ============================================================================
176
- // Anomaly Detection
177
- // ============================================================================
178
-
179
- /**
180
- * Detect anomalies in tool execution
181
- * @param {Object} toolData - Tool execution data
182
- * @param {Object} sessionContext - Session context with quota info
183
- * @returns {Array} Detected anomalies
184
- */
185
- function detectAnomalies(toolData, sessionContext) {
186
- const anomalies = [];
187
-
188
- // Anomaly 1: Slow Execution
189
- if (toolData.duration && toolData.duration > THRESHOLDS.SLOW_EXECUTION) {
190
- anomalies.push({
191
- type: 'SLOW_EXECUTION',
192
- description: `${toolData.toolName} took ${(toolData.duration / 1000).toFixed(1)}s (slow)`,
193
- severity: 'warning',
194
- });
195
- }
196
-
197
- // Anomaly 2: High Token Usage
198
- if (toolData.tokensUsed && toolData.tokensUsed > THRESHOLDS.HIGH_TOKENS) {
199
- anomalies.push({
200
- type: 'HIGH_TOKENS',
201
- description: `${toolData.toolName} used ${toolData.tokensUsed} tokens (high usage)`,
202
- severity: 'warning',
203
- });
204
- }
205
-
206
- // Anomaly 3: Execution Failure
207
- if (toolData.success === false) {
208
- anomalies.push({
209
- type: 'EXECUTION_FAILURE',
210
- description: `${toolData.toolName} execution failed`,
211
- severity: 'error',
212
- });
213
- }
214
-
215
- // Anomaly 4: Quota Warning
216
- if (sessionContext.tokenQuota) {
217
- const quotaUsed = sessionContext.tokenQuota.used + (toolData.tokensUsed || 0);
218
- const quotaPercentage = quotaUsed / sessionContext.tokenQuota.limit;
219
-
220
- if (quotaPercentage > THRESHOLDS.QUOTA_WARNING) {
221
- anomalies.push({
222
- type: 'QUOTA_WARNING',
223
- description: `Token quota at ${(quotaPercentage * 100).toFixed(1)}%`,
224
- severity: 'warning',
225
- });
226
- }
227
- }
228
-
229
- return anomalies;
230
- }
231
-
232
- // ============================================================================
233
- // Recommendations Update
234
- // ============================================================================
235
-
236
- /**
237
- * Update recommendations based on detected patterns and anomalies
238
- * @param {Array} patterns - Detected patterns
239
- * @param {Array} anomalies - Detected anomalies
240
- */
241
- function updateRecommendations(patterns, anomalies) {
242
- const recommendations = readJSONFile(RECOMMENDATIONS_FILE, {
243
- recommendedSkills: [],
244
- detectedPatterns: [],
245
- warnings: [],
246
- lastUpdated: null,
247
- });
248
-
249
- // Add new skills based on patterns
250
- patterns.forEach(pattern => {
251
- if (pattern.suggestion && pattern.suggestion.includes('skill')) {
252
- const skillMatch = pattern.suggestion.match(/loading\s+(.+?)\s+skill/);
253
- if (skillMatch) {
254
- const skillName = skillMatch[1];
255
- const existing = recommendations.recommendedSkills.find(s => s.name === skillName);
256
- if (!existing) {
257
- recommendations.recommendedSkills.push({
258
- name: skillName,
259
- reason: pattern.description,
260
- priority: 'medium',
261
- });
262
- }
263
- }
264
- }
265
- });
266
-
267
- // Add detected patterns (keep last 10)
268
- patterns.forEach(pattern => {
269
- if (pattern && pattern.description) {
270
- recommendations.detectedPatterns.unshift({
271
- description: pattern.description,
272
- suggestion: pattern.suggestion || '',
273
- timestamp: new Date().toISOString(),
274
- });
275
- }
276
- });
277
- recommendations.detectedPatterns = recommendations.detectedPatterns.slice(0, 10);
278
-
279
- // Add warnings from anomalies (keep last 5)
280
- anomalies
281
- .filter(a => a.severity === 'warning' || a.severity === 'error')
282
- .forEach(anomaly => {
283
- recommendations.warnings.unshift(anomaly.description);
284
- });
285
- recommendations.warnings = recommendations.warnings.slice(0, 5);
286
-
287
- recommendations.lastUpdated = new Date().toISOString();
288
-
289
- // Async write — non-blocking, caller awaits via pendingWrites
290
- return writeJSONFileAsync(RECOMMENDATIONS_FILE, recommendations);
291
- }
292
-
293
- // ============================================================================
294
- // Session Update
295
- // ============================================================================
296
-
297
- /**
298
- * Update current session with tool call data
299
- * @param {Object} toolData - Tool execution data
300
- * @param {Array} patterns - Detected patterns
301
- * @param {Array} anomalies - Detected anomalies
302
- */
303
- function updateCurrentSession(toolData, patterns, anomalies) {
304
- const currentSession = readJSONFile(CURRENT_SESSION_FILE, {
305
- startTime: new Date().toISOString(),
306
- toolCalls: [],
307
- patterns: [],
308
- });
309
-
310
- // Add tool call record
311
- currentSession.toolCalls.push({
312
- timestamp: new Date().toISOString(),
313
- toolName: toolData.toolName,
314
- arguments: toolData.arguments,
315
- duration: toolData.duration,
316
- success: toolData.success,
317
- tokenUsage: toolData.tokensUsed,
318
- });
319
-
320
- // Cap toolCalls to prevent unbounded growth in long sessions
321
- const MAX_TOOL_CALLS = 1000;
322
- if (currentSession.toolCalls.length > MAX_TOOL_CALLS) {
323
- currentSession.toolCalls = currentSession.toolCalls.slice(-MAX_TOOL_CALLS);
324
- }
325
-
326
- // Track file modifications and test executions (for dry-run gate)
327
- trackFileModifications(toolData, currentSession);
328
- trackTestExecutions(toolData, currentSession);
329
-
330
- // Update pattern counts
331
- patterns.forEach(pattern => {
332
- const existing = currentSession.patterns.find(p => p.type === pattern.type);
333
- if (!existing) {
334
- currentSession.patterns.push({
335
- type: pattern.type,
336
- count: 1,
337
- firstDetected: new Date().toISOString(),
338
- });
339
- } else {
340
- existing.count++;
341
- }
342
- });
343
-
344
- // Async write — session file is read on next call, eventual consistency is fine
345
- // Return promise so caller can track it in pendingWrites
346
- const writePromise = writeJSONFileAsync(CURRENT_SESSION_FILE, currentSession);
347
-
348
- return { session: currentSession, writePromise };
349
- }
350
-
351
- /**
352
- * Update session context (quota tracking)
353
- * @param {Object} toolData - Tool execution data
354
- * @returns {{ sessionContext: Object, writePromise: Promise<boolean> }}
355
- */
356
- function updateSessionContext(toolData) {
357
- const sessionContext = readJSONFile(SESSION_CONTEXT_FILE, {
358
- tokenQuota: { used: 0, limit: 200000 },
359
- learnedPatterns: [],
360
- lastSessionDate: null,
361
- lastSaveTokens: 0,
362
- });
363
-
364
- // Update token usage
365
- if (toolData.tokensUsed) {
366
- sessionContext.tokenQuota.used += toolData.tokensUsed;
367
- }
368
-
369
- sessionContext.lastSessionDate = new Date().toISOString();
370
-
371
- const writePromise = writeJSONFileAsync(SESSION_CONTEXT_FILE, sessionContext);
372
-
373
- return { sessionContext, writePromise };
374
- }
375
-
376
- // ============================================================================
377
- // MeMesh Key Points Auto-Save
378
- // ============================================================================
379
-
380
- /**
381
- * Extract key points from session state
382
- * @param {Object} sessionState - Current session state
383
- * @returns {Array<string>} Extracted key points
384
- */
385
- function extractKeyPoints(sessionState) {
386
- const keyPoints = [];
387
-
388
- if (!sessionState?.toolCalls?.length) {
389
- return keyPoints;
390
- }
391
-
392
- // 1. Identify completed file operations
393
- const fileOps = {};
394
- sessionState.toolCalls.forEach(tc => {
395
- if (['Edit', 'Write'].includes(tc.toolName) && tc.arguments?.file_path) {
396
- const filePath = tc.arguments.file_path;
397
- fileOps[filePath] = (fileOps[filePath] || 0) + 1;
398
- }
399
- });
400
-
401
- const modifiedFiles = Object.keys(fileOps);
402
- if (modifiedFiles.length > 0) {
403
- const summary = modifiedFiles.length > 5
404
- ? `${modifiedFiles.slice(0, 5).map(f => path.basename(f)).join(', ')} (+${modifiedFiles.length - 5} more)`
405
- : modifiedFiles.map(f => path.basename(f)).join(', ');
406
- keyPoints.push(`[TASK] Modified files: ${summary}`);
407
- }
408
-
409
- // 2. Identify failures
410
- const failures = sessionState.toolCalls.filter(tc => tc.success === false);
411
- if (failures.length > 0) {
412
- const failedTools = [...new Set(failures.map(f => f.toolName))];
413
- keyPoints.push(`[PROBLEM] ${failures.length} tool failures: ${failedTools.join(', ')}`);
414
- }
415
-
416
- // 3. Git operations
417
- const gitCommits = sessionState.toolCalls.filter(tc =>
418
- tc.toolName === 'Bash' && tc.arguments?.command?.includes('git commit')
419
- );
420
- if (gitCommits.length > 0) {
421
- keyPoints.push(`[DECISION] Made ${gitCommits.length} git commit(s)`);
422
- }
423
-
424
- // 4. Detected patterns
425
- if (sessionState.patterns?.length > 0) {
426
- const patternSummary = sessionState.patterns
427
- .filter(p => p.count > 2)
428
- .map(p => `${p.type}(${p.count})`)
429
- .join(', ');
430
- if (patternSummary) {
431
- keyPoints.push(`[PATTERN] Recurring patterns: ${patternSummary}`);
432
- }
433
- }
434
-
435
- // 5. Work scope indicator
436
- const toolCounts = {};
437
- sessionState.toolCalls.forEach(tc => {
438
- toolCounts[tc.toolName] = (toolCounts[tc.toolName] || 0) + 1;
439
- });
440
- const topTools = Object.entries(toolCounts)
441
- .sort((a, b) => b[1] - a[1])
442
- .slice(0, 3)
443
- .map(([tool, count]) => `${tool}:${count}`)
444
- .join(', ');
445
- keyPoints.push(`[SCOPE] Tool usage: ${topTools}, total: ${sessionState.toolCalls.length}`);
446
-
447
- return keyPoints;
448
- }
449
-
450
- /**
451
- * Save conversation key points to MeMesh knowledge graph.
452
- * Uses sqliteBatchEntity for performance (3 spawns instead of N).
453
- * @param {Object} sessionState - Current session state
454
- * @param {Object} sessionContext - Session context
455
- * @returns {boolean} True if saved successfully
456
- */
457
- function saveConversationKeyPoints(sessionState, sessionContext) {
458
- try {
459
- if (!fs.existsSync(MEMESH_DB_PATH)) {
460
- logError('saveConversationKeyPoints', `MeMesh DB not found: ${MEMESH_DB_PATH}`);
461
- return false;
462
- }
463
-
464
- const keyPoints = extractKeyPoints(sessionState);
465
- if (keyPoints.length === 0) {
466
- return false;
467
- }
468
-
469
- const entityName = `session_keypoints_${Date.now()}`;
470
-
471
- const metadata = JSON.stringify({
472
- tokensSaved: sessionContext.tokenQuota?.used || 0,
473
- toolCount: sessionState.toolCalls?.length || 0,
474
- saveReason: 'token_threshold',
475
- });
476
-
477
- const tags = ['auto_saved', 'token_trigger', getDateString()];
478
-
479
- const entityId = sqliteBatchEntity(
480
- MEMESH_DB_PATH,
481
- { name: entityName, type: 'session_keypoint', metadata },
482
- keyPoints,
483
- tags
484
- );
485
-
486
- if (entityId === null) {
487
- return false;
488
- }
489
-
490
- logMemorySave(`🧠 MeMesh: Saved ${keyPoints.length} key points (tokens: ${sessionContext.tokenQuota?.used})`);
491
-
492
- return true;
493
- } catch (error) {
494
- logError('saveConversationKeyPoints', error);
495
- return false;
496
- }
497
- }
498
-
499
- /**
500
- * Check if token threshold reached and save key points
501
- * @param {Object} sessionState - Current session state
502
- * @param {Object} sessionContext - Session context
503
- * @returns {boolean} True if saved
504
- */
505
- function checkAndSaveKeyPoints(sessionState, sessionContext) {
506
- try {
507
- const lastSaveTokens = sessionContext.lastSaveTokens || 0;
508
- const currentTokens = sessionContext.tokenQuota?.used || 0;
509
- const tokensSinceLastSave = currentTokens - lastSaveTokens;
510
-
511
- if (tokensSinceLastSave >= THRESHOLDS.TOKEN_SAVE) {
512
- const saved = saveConversationKeyPoints(sessionState, sessionContext);
513
-
514
- if (saved) {
515
- sessionContext.lastSaveTokens = currentTokens;
516
- writeJSONFile(SESSION_CONTEXT_FILE, sessionContext);
517
- }
518
-
519
- return saved;
520
- }
521
-
522
- return false;
523
- } catch (error) {
524
- logError('checkAndSaveKeyPoints', error);
525
- return false;
526
- }
527
- }
528
-
529
- // ============================================================================
530
- // File Modification & Test Tracking (for dry-run gate in pre-tool-use.js)
531
- // ============================================================================
532
-
533
- /**
534
- * Track file modifications from Write/Edit tool calls.
535
- * Stores modified file paths in session state.
536
- * @param {Object} toolData - Normalized tool data
537
- * @param {Object} currentSession - Current session state (mutated in place)
538
- */
539
- function trackFileModifications(toolData, currentSession) {
540
- if (!['Edit', 'Write'].includes(toolData.toolName)) return;
541
-
542
- const filePath = toolData.arguments?.file_path;
543
- if (!filePath) return;
544
-
545
- if (!currentSession.modifiedFiles) {
546
- currentSession.modifiedFiles = [];
547
- }
548
-
549
- const MAX_MODIFIED_FILES = 100;
550
- if (!currentSession.modifiedFiles.includes(filePath)) {
551
- if (currentSession.modifiedFiles.length >= MAX_MODIFIED_FILES) {
552
- currentSession.modifiedFiles.shift(); // Remove oldest entry
553
- }
554
- currentSession.modifiedFiles.push(filePath);
555
- }
556
- }
557
-
558
- /** Patterns that indicate test execution in a Bash command */
559
- const TEST_PATTERNS = [
560
- /vitest\s+(run|watch)?/,
561
- /jest\b/,
562
- /npm\s+test/,
563
- /npm\s+run\s+test/,
564
- /npx\s+vitest/,
565
- /npx\s+jest/,
566
- /tsc\s+--noEmit/,
567
- /node\s+--check\s/,
568
- /bun\s+test/,
569
- /pytest\b/,
570
- ];
571
-
572
- /**
573
- * Track test executions from Bash tool calls.
574
- * Marks tested files/directories in session state.
575
- * @param {Object} toolData - Normalized tool data
576
- * @param {Object} currentSession - Current session state (mutated in place)
577
- */
578
- function trackTestExecutions(toolData, currentSession) {
579
- if (toolData.toolName !== 'Bash') return;
580
- if (!toolData.success) return;
581
-
582
- const cmd = toolData.arguments?.command || '';
583
- const isTest = TEST_PATTERNS.some(pattern => pattern.test(cmd));
584
- if (!isTest) return;
585
-
586
- if (!currentSession.testedFiles) {
587
- currentSession.testedFiles = [];
588
- }
589
-
590
- currentSession.lastTestRun = new Date().toISOString();
591
-
592
- // Extract test target path if provided
593
- // e.g., "vitest run src/auth" → mark all modified files under src/auth/ as tested
594
- const pathMatch = cmd.match(/(?:vitest|jest|node\s+--check)\s+(?:run\s+)?(\S+)/);
595
- const testTarget = pathMatch ? pathMatch[1] : null;
596
-
597
- if (testTarget && currentSession.modifiedFiles) {
598
- // Mark files under the test target directory/path as tested
599
- // Use path-prefix match: "src/auth" matches "src/auth/middleware.ts" but NOT "src/auth-utils/helper.ts"
600
- for (const modFile of currentSession.modifiedFiles) {
601
- const isMatch = modFile === testTarget ||
602
- modFile.startsWith(testTarget + '/') ||
603
- modFile.startsWith(testTarget + path.sep);
604
- if (isMatch && !currentSession.testedFiles.includes(modFile)) {
605
- currentSession.testedFiles.push(modFile);
606
- }
607
- }
608
- } else if (!testTarget && currentSession.modifiedFiles) {
609
- // Full test run (no specific target) — mark all modified files as tested
610
- for (const modFile of currentSession.modifiedFiles) {
611
- if (!currentSession.testedFiles.includes(modFile)) {
612
- currentSession.testedFiles.push(modFile);
613
- }
614
- }
615
- }
616
- }
617
-
618
- // ============================================================================
619
- // Code Review Tracking
620
- // ============================================================================
621
-
622
- /**
623
- * Check if this tool call is a code review invocation.
624
- * Detects both Skill tool usage and Task tool dispatching code reviewers.
625
- * @param {Object} toolData - Normalized tool data
626
- * @returns {boolean}
627
- */
628
- function isCodeReviewInvocation(toolData) {
629
- // Skill tool with code review
630
- if (toolData.toolName === 'Skill') {
631
- const name = toolData.arguments?.name || toolData.arguments?.skill_name || '';
632
- return /code.?review|comprehensive.?code.?review/i.test(name);
633
- }
634
-
635
- // Task tool dispatching code reviewer subagent
636
- if (toolData.toolName === 'Task') {
637
- const subagentType = toolData.arguments?.subagent_type || '';
638
- return /code.?review/i.test(subagentType);
639
- }
640
-
641
- return false;
642
- }
643
-
644
- /**
645
- * Mark code review as done in session state.
646
- * This flag is checked by pre-tool-use.js before git commits.
647
- */
648
- function markCodeReviewDone() {
649
- const session = readJSONFile(CURRENT_SESSION_FILE, {});
650
- session.codeReviewDone = true;
651
- session.codeReviewTimestamp = new Date().toISOString();
652
- writeJSONFile(CURRENT_SESSION_FILE, session);
653
- }
654
-
655
- // ============================================================================
656
- // Tool Data Normalization
657
- // ============================================================================
658
-
659
- /**
660
- * Normalize tool data from Claude Code format
661
- * @param {Object} raw - Raw tool data from stdin
662
- * @returns {Object} Normalized tool data
663
- */
664
- function normalizeToolData(raw) {
665
- return {
666
- toolName: raw.tool_name || raw.toolName || 'unknown',
667
- arguments: raw.tool_input || raw.arguments || {},
668
- duration: raw.duration_ms || raw.duration || 0,
669
- success: raw.success !== false,
670
- tokensUsed: raw.tokens_used || raw.tokensUsed || 0,
671
- _raw: raw,
672
- };
673
- }
674
-
675
- // ============================================================================
676
- // Plan File Detection (Beta)
677
- // ============================================================================
678
-
679
- /**
680
- * Detect plan file creation and save to KG.
681
- * Triggered when Write tool targets a plan file path.
682
- * @param {Object} toolData - Normalized tool data
683
- */
684
- function detectPlanFile(toolData) {
685
- if (toolData.toolName !== 'Write') return;
686
-
687
- const filePath = toolData.arguments?.file_path;
688
- if (!isPlanFile(filePath)) return;
689
-
690
- try {
691
- // Read the file content
692
- if (!fs.existsSync(filePath)) return;
693
- const content = fs.readFileSync(filePath, 'utf-8');
694
-
695
- const steps = parsePlanSteps(content);
696
- if (steps.length === 0) return;
697
-
698
- if (!fs.existsSync(MEMESH_DB_PATH)) return;
699
-
700
- const planName = derivePlanName(filePath);
701
- const entityName = `Plan: ${planName}`;
702
-
703
- const newMetadata = {
704
- sourceFile: filePath,
705
- totalSteps: steps.length,
706
- completed: steps.filter(s => s.completed).length,
707
- status: 'active',
708
- stepsDetail: steps,
709
- };
710
-
711
- // Check if plan entity already exists (re-save scenario)
712
- const existing = sqliteQueryJSON(MEMESH_DB_PATH,
713
- 'SELECT id FROM entities WHERE name = ?', [entityName]);
714
-
715
- if (existing && existing.length > 0) {
716
- // Upsert: update metadata and add observation for the re-save
717
- updateEntityMetadata(MEMESH_DB_PATH, entityName, newMetadata);
718
- addObservation(MEMESH_DB_PATH, entityName,
719
- `Plan re-saved: ${steps.length} steps (${steps.filter(s => s.completed).length} completed)`);
720
- logMemorySave(`Plan updated: ${planName} (${steps.length} steps)`);
721
- } else {
722
- // First save: create entity with observations and tags
723
- const observations = steps.map(s => `Step ${s.number}: ${s.description}`);
724
- const tags = ['plan', 'active', `plan:${planName}`, 'scope:project'];
725
-
726
- sqliteBatchEntity(MEMESH_DB_PATH,
727
- { name: entityName, type: 'workflow_checkpoint', metadata: JSON.stringify(newMetadata) },
728
- observations, tags
729
- );
730
- logMemorySave(`Plan detected: ${planName} (${steps.length} steps)`);
731
- }
732
- } catch (error) {
733
- logError('detectPlanFile', error);
734
- }
735
- }
736
-
737
- // ============================================================================
738
- // Proactive Recall on Test Failure / Error Detection
739
- // ============================================================================
740
-
741
- /**
742
- * Trigger proactive recall on test failure or error detection.
743
- * Writes results to proactive-recall.json for HookToolHandler.
744
- * @param {Object} toolData - Normalized tool data
745
- */
746
- function triggerProactiveRecall(toolData) {
747
- try {
748
- const recallFile = path.join(STATE_DIR, 'proactive-recall.json');
749
- let query = null;
750
- let trigger = null;
751
-
752
- // Test failure detection
753
- if (toolData.toolName === 'Bash' && toolData.arguments?.command) {
754
- if (isTestCommand(toolData.arguments.command) && !toolData.success) {
755
- const ctx = extractTestFailureContext(toolData._raw?.output || '');
756
- if (ctx) {
757
- query = buildTestFailureQuery(ctx.testName, ctx.errorMessage);
758
- trigger = 'test-failure';
759
- }
760
- }
761
- }
762
-
763
- // Error detection (non-test failures)
764
- if (!trigger && !toolData.success && toolData._raw?.output) {
765
- const errorMatch = toolData._raw.output.match(/(\w*Error):\s*(.+)/);
766
- if (errorMatch) {
767
- query = buildErrorQuery(errorMatch[1], errorMatch[2]);
768
- trigger = 'error-detection';
769
- }
770
- }
771
-
772
- if (!query || !trigger) return;
773
-
774
- // Build FTS5 query
775
- const ftsTokens = query.split(/\s+/)
776
- .filter(t => t.length > 2)
777
- .slice(0, 8)
778
- .map(t => `"${t.replace(/"/g, '""')}"*`)
779
- .join(' OR ');
780
-
781
- if (!ftsTokens) return;
782
-
783
- const sql = `
784
- SELECT e.name,
785
- (SELECT json_group_array(content) FROM observations o WHERE o.entity_id = e.id) as observations_json
786
- FROM entities e
787
- JOIN entities_fts ON entities_fts.rowid = e.id
788
- WHERE entities_fts MATCH ?
789
- ORDER BY bm25(entities_fts, 10.0, 5.0)
790
- LIMIT 3
791
- `;
792
-
793
- const result = sqliteQueryJSON(MEMESH_DB_PATH, sql, [ftsTokens]);
794
- if (!result || result.length === 0) return;
795
-
796
- const recallData = {
797
- trigger,
798
- query,
799
- timestamp: Date.now(),
800
- results: result.map(r => ({
801
- name: r.name,
802
- observations: JSON.parse(r.observations_json || '[]').filter(Boolean).slice(0, 2),
803
- })),
804
- };
805
-
806
- writeJSONFile(recallFile, recallData);
807
- } catch (error) {
808
- logError('proactive-recall-trigger', error);
809
- }
810
- }
811
-
812
- // ============================================================================
813
- // Main PostToolUse Logic
814
- // ============================================================================
815
-
816
- async function postToolUse() {
817
- try {
818
- // Read stdin with timeout
819
- const input = await readStdin(3000);
820
-
821
- if (!input || input.trim() === '') {
822
- process.exit(0);
823
- }
824
-
825
- // Parse and normalize tool data
826
- const rawData = JSON.parse(input);
827
- const toolData = normalizeToolData(rawData);
828
-
829
- // Track code review invocations (for pre-commit enforcement)
830
- if (isCodeReviewInvocation(toolData)) {
831
- markCodeReviewDone();
832
- }
833
-
834
- // Detect plan file creation (beta)
835
- detectPlanFile(toolData);
836
-
837
- // Initialize pattern detector
838
- const detector = new PatternDetector();
839
-
840
- // Load recent tools from current session
841
- const currentSession = readJSONFile(CURRENT_SESSION_FILE, { toolCalls: [] });
842
- currentSession.toolCalls.slice(-10).forEach(tc => {
843
- detector.addToolCall({
844
- toolName: tc.toolName,
845
- arguments: tc.arguments || {},
846
- });
847
- });
848
-
849
- // Add current tool
850
- detector.addToolCall(toolData);
851
-
852
- // Detect patterns
853
- const patterns = detector.detectPatterns(toolData);
854
-
855
- // Update session context (for quota tracking) — returns sync data + async write promise
856
- const { sessionContext, writePromise: contextWritePromise } = updateSessionContext(toolData);
857
-
858
- // Detect anomalies
859
- const anomalies = detectAnomalies(toolData, sessionContext);
860
-
861
- // Trigger proactive recall on test failure or error
862
- triggerProactiveRecall(toolData);
863
-
864
- // Fire async writes in parallel
865
- const pendingWrites = [contextWritePromise];
866
-
867
- // Update recommendations incrementally
868
- if (patterns.length > 0 || anomalies.length > 0) {
869
- pendingWrites.push(updateRecommendations(patterns, anomalies));
870
- }
871
-
872
- // Update current session (async write)
873
- const { session: updatedSession, writePromise: sessionWritePromise } =
874
- updateCurrentSession(toolData, patterns, anomalies);
875
- pendingWrites.push(sessionWritePromise);
876
-
877
- // Check token threshold and save key points if needed
878
- checkAndSaveKeyPoints(updatedSession, sessionContext);
879
-
880
- // Wait for all async writes to complete before exit
881
- await Promise.all(pendingWrites);
882
-
883
- // Silent exit
884
- process.exit(0);
885
- } catch (error) {
886
- logError('PostToolUse', error);
887
- process.exit(0); // Never block Claude Code on hook errors
888
- }
889
- }
890
-
891
- // ============================================================================
892
- // Execute
893
- // ============================================================================
894
-
895
- postToolUse();