@mxf-dev/core 2.0.4 → 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 (466) hide show
  1. package/dist/config/ModelContextLimits.d.ts.map +1 -1
  2. package/dist/config/ModelContextLimits.js +7 -1
  3. package/dist/config/ModelContextLimits.js.map +1 -1
  4. package/dist/constants/CoreTools.d.ts +6 -5
  5. package/dist/constants/CoreTools.d.ts.map +1 -1
  6. package/dist/constants/CoreTools.js +6 -5
  7. package/dist/constants/CoreTools.js.map +1 -1
  8. package/dist/constants/DefaultPhaseProfiles.d.ts.map +1 -1
  9. package/dist/constants/DefaultPhaseProfiles.js +29 -0
  10. package/dist/constants/DefaultPhaseProfiles.js.map +1 -1
  11. package/dist/constants/ReservedIdentities.d.ts +14 -0
  12. package/dist/constants/ReservedIdentities.d.ts.map +1 -0
  13. package/dist/constants/ReservedIdentities.js +42 -0
  14. package/dist/constants/ReservedIdentities.js.map +1 -0
  15. package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.d.ts +16 -16
  16. package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.d.ts.map +1 -1
  17. package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.js +98 -36
  18. package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.js.map +1 -1
  19. package/dist/events/ClientEventBus.d.ts +28 -0
  20. package/dist/events/ClientEventBus.d.ts.map +1 -1
  21. package/dist/events/ClientEventBus.js +87 -40
  22. package/dist/events/ClientEventBus.js.map +1 -1
  23. package/dist/events/EventBus.d.ts +19 -1
  24. package/dist/events/EventBus.d.ts.map +1 -1
  25. package/dist/events/EventBus.js +23 -0
  26. package/dist/events/EventBus.js.map +1 -1
  27. package/dist/events/EventBusBase.d.ts +37 -6
  28. package/dist/events/EventBusBase.d.ts.map +1 -1
  29. package/dist/events/EventBusBase.js +75 -27
  30. package/dist/events/EventBusBase.js.map +1 -1
  31. package/dist/events/EventNames.d.ts +49 -36
  32. package/dist/events/EventNames.d.ts.map +1 -1
  33. package/dist/events/EventNames.js +38 -36
  34. package/dist/events/EventNames.js.map +1 -1
  35. package/dist/events/PublicEvents.d.ts +5 -1
  36. package/dist/events/PublicEvents.d.ts.map +1 -1
  37. package/dist/events/PublicEvents.js +7 -0
  38. package/dist/events/PublicEvents.js.map +1 -1
  39. package/dist/events/ServerEventBus.d.ts +7 -54
  40. package/dist/events/ServerEventBus.d.ts.map +1 -1
  41. package/dist/events/ServerEventBus.js +10 -96
  42. package/dist/events/ServerEventBus.js.map +1 -1
  43. package/dist/events/event-definitions/ControlLoopEvents.d.ts +35 -0
  44. package/dist/events/event-definitions/ControlLoopEvents.d.ts.map +1 -1
  45. package/dist/events/event-definitions/ControlLoopEvents.js +6 -0
  46. package/dist/events/event-definitions/ControlLoopEvents.js.map +1 -1
  47. package/dist/events/event-definitions/SdkEvents.d.ts +55 -0
  48. package/dist/events/event-definitions/SdkEvents.d.ts.map +1 -0
  49. package/dist/events/event-definitions/SdkEvents.js +36 -0
  50. package/dist/events/event-definitions/SdkEvents.js.map +1 -0
  51. package/dist/events/event-definitions/TaskEvents.d.ts +2 -7
  52. package/dist/events/event-definitions/TaskEvents.d.ts.map +1 -1
  53. package/dist/index.d.ts +4 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +2 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/interfaces/AgentInterfaces.d.ts +5 -0
  58. package/dist/interfaces/AgentInterfaces.d.ts.map +1 -1
  59. package/dist/interfaces/ChannelConfig.d.ts +2 -2
  60. package/dist/interfaces/ChannelConfig.d.ts.map +1 -1
  61. package/dist/interfaces/ConversationMessage.d.ts +1 -1
  62. package/dist/interfaces/ConversationMessage.d.ts.map +1 -1
  63. package/dist/interfaces/IMemoryPersistence.d.ts +47 -1
  64. package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -1
  65. package/dist/interfaces/SocketServiceInterface.d.ts +3 -2
  66. package/dist/interfaces/SocketServiceInterface.d.ts.map +1 -1
  67. package/dist/interfaces/TaskInterfaces.d.ts +14 -1
  68. package/dist/interfaces/TaskInterfaces.d.ts.map +1 -1
  69. package/dist/models/agent.d.ts +0 -1
  70. package/dist/models/agent.d.ts.map +1 -1
  71. package/dist/models/agent.js +0 -5
  72. package/dist/models/agent.js.map +1 -1
  73. package/dist/models/agentIdentityReservation.d.ts +42 -0
  74. package/dist/models/agentIdentityReservation.d.ts.map +1 -0
  75. package/dist/models/agentIdentityReservation.js +52 -0
  76. package/dist/models/agentIdentityReservation.js.map +1 -0
  77. package/dist/models/channel.d.ts +2 -0
  78. package/dist/models/channel.d.ts.map +1 -1
  79. package/dist/models/channel.js.map +1 -1
  80. package/dist/models/channelKey.d.ts +1 -0
  81. package/dist/models/channelKey.d.ts.map +1 -1
  82. package/dist/models/channelKey.js +5 -0
  83. package/dist/models/channelKey.js.map +1 -1
  84. package/dist/models/memory.d.ts +1 -1
  85. package/dist/models/memory.d.ts.map +1 -1
  86. package/dist/models/memory.js +9 -12
  87. package/dist/models/memory.js.map +1 -1
  88. package/dist/models/memoryStrata.d.ts +3 -16
  89. package/dist/models/memoryStrata.d.ts.map +1 -1
  90. package/dist/models/memoryStrata.js +3 -5
  91. package/dist/models/memoryStrata.js.map +1 -1
  92. package/dist/models/plan.d.ts +2 -2
  93. package/dist/models/plan.d.ts.map +1 -1
  94. package/dist/models/plan.js +1 -1
  95. package/dist/models/plan.js.map +1 -1
  96. package/dist/models/taskEffectiveness.d.ts +1 -0
  97. package/dist/models/taskEffectiveness.d.ts.map +1 -1
  98. package/dist/models/taskEffectiveness.js +7 -1
  99. package/dist/models/taskEffectiveness.js.map +1 -1
  100. package/dist/models/user.d.ts +4 -0
  101. package/dist/models/user.d.ts.map +1 -1
  102. package/dist/models/user.js +8 -0
  103. package/dist/models/user.js.map +1 -1
  104. package/dist/protocols/mcp/LlmTestEnvironmentGuard.d.ts +16 -0
  105. package/dist/protocols/mcp/LlmTestEnvironmentGuard.d.ts.map +1 -0
  106. package/dist/protocols/mcp/LlmTestEnvironmentGuard.js +25 -0
  107. package/dist/protocols/mcp/LlmTestEnvironmentGuard.js.map +1 -0
  108. package/dist/protocols/mcp/McpServerTypes.d.ts +9 -0
  109. package/dist/protocols/mcp/McpServerTypes.d.ts.map +1 -1
  110. package/dist/protocols/mcp/providers/AnthropicMcpClient.d.ts.map +1 -1
  111. package/dist/protocols/mcp/providers/AnthropicMcpClient.js +1 -0
  112. package/dist/protocols/mcp/providers/AnthropicMcpClient.js.map +1 -1
  113. package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.d.ts.map +1 -1
  114. package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.js +1 -0
  115. package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.js.map +1 -1
  116. package/dist/protocols/mcp/providers/BaseMcpClient.d.ts +4 -0
  117. package/dist/protocols/mcp/providers/BaseMcpClient.d.ts.map +1 -1
  118. package/dist/protocols/mcp/providers/BaseMcpClient.js +10 -0
  119. package/dist/protocols/mcp/providers/BaseMcpClient.js.map +1 -1
  120. package/dist/protocols/mcp/providers/CustomMcpClient.d.ts.map +1 -1
  121. package/dist/protocols/mcp/providers/CustomMcpClient.js +7 -0
  122. package/dist/protocols/mcp/providers/CustomMcpClient.js.map +1 -1
  123. package/dist/protocols/mcp/providers/GeminiMcpClient.d.ts.map +1 -1
  124. package/dist/protocols/mcp/providers/GeminiMcpClient.js +1 -0
  125. package/dist/protocols/mcp/providers/GeminiMcpClient.js.map +1 -1
  126. package/dist/protocols/mcp/providers/OllamaMcpClient.d.ts +1 -0
  127. package/dist/protocols/mcp/providers/OllamaMcpClient.d.ts.map +1 -1
  128. package/dist/protocols/mcp/providers/OllamaMcpClient.js +1 -0
  129. package/dist/protocols/mcp/providers/OllamaMcpClient.js.map +1 -1
  130. package/dist/protocols/mcp/providers/OpenAiMcpClient.d.ts.map +1 -1
  131. package/dist/protocols/mcp/providers/OpenAiMcpClient.js +1 -0
  132. package/dist/protocols/mcp/providers/OpenAiMcpClient.js.map +1 -1
  133. package/dist/protocols/mcp/providers/OpenRouterMcpClient.d.ts.map +1 -1
  134. package/dist/protocols/mcp/providers/OpenRouterMcpClient.js +2 -0
  135. package/dist/protocols/mcp/providers/OpenRouterMcpClient.js.map +1 -1
  136. package/dist/protocols/mcp/providers/XaiMcpClient.d.ts.map +1 -1
  137. package/dist/protocols/mcp/providers/XaiMcpClient.js +1 -0
  138. package/dist/protocols/mcp/providers/XaiMcpClient.js.map +1 -1
  139. package/dist/protocols/mcp/security/BrowserTargetGuard.d.ts +14 -0
  140. package/dist/protocols/mcp/security/BrowserTargetGuard.d.ts.map +1 -0
  141. package/dist/protocols/mcp/security/BrowserTargetGuard.js +55 -0
  142. package/dist/protocols/mcp/security/BrowserTargetGuard.js.map +1 -0
  143. package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.d.ts +24 -0
  144. package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.d.ts.map +1 -0
  145. package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.js +33 -0
  146. package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.js.map +1 -0
  147. package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -1
  148. package/dist/protocols/mcp/security/HttpTargetGuard.js +68 -6
  149. package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -1
  150. package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
  151. package/dist/protocols/mcp/security/McpSecurityGuard.js +7 -5
  152. package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
  153. package/dist/protocols/mcp/security/McpToolPolicy.d.ts +18 -0
  154. package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -1
  155. package/dist/protocols/mcp/security/McpToolPolicy.js +60 -0
  156. package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -1
  157. package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +118 -5
  158. package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
  159. package/dist/protocols/mcp/services/ExternalMcpServerManager.js +499 -98
  160. package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
  161. package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +2 -2
  162. package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
  163. package/dist/protocols/mcp/services/ExternalServerConfigs.js +25 -8
  164. package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
  165. package/dist/protocols/mcp/tools/AnalyticsTools.d.ts +3 -37
  166. package/dist/protocols/mcp/tools/AnalyticsTools.d.ts.map +1 -1
  167. package/dist/protocols/mcp/tools/AnalyticsTools.js +134 -614
  168. package/dist/protocols/mcp/tools/AnalyticsTools.js.map +1 -1
  169. package/dist/protocols/mcp/tools/CodeAnalysisTools.d.ts.map +1 -1
  170. package/dist/protocols/mcp/tools/CodeAnalysisTools.js +16 -13
  171. package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
  172. package/dist/protocols/mcp/tools/EffectivenessTools.d.ts.map +1 -1
  173. package/dist/protocols/mcp/tools/EffectivenessTools.js +94 -30
  174. package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
  175. package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
  176. package/dist/protocols/mcp/tools/GitTools.js +9 -5
  177. package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
  178. package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +10 -40
  179. package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
  180. package/dist/protocols/mcp/tools/InfrastructureTools.js +29 -70
  181. package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
  182. package/dist/protocols/mcp/tools/JsonTools.d.ts.map +1 -1
  183. package/dist/protocols/mcp/tools/JsonTools.js +4 -4
  184. package/dist/protocols/mcp/tools/JsonTools.js.map +1 -1
  185. package/dist/protocols/mcp/tools/KnowledgeGraphTools.d.ts +55 -592
  186. package/dist/protocols/mcp/tools/KnowledgeGraphTools.d.ts.map +1 -1
  187. package/dist/protocols/mcp/tools/KnowledgeGraphTools.js +169 -119
  188. package/dist/protocols/mcp/tools/KnowledgeGraphTools.js.map +1 -1
  189. package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +6 -6
  190. package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
  191. package/dist/protocols/mcp/tools/MemorySearchTools.js +107 -39
  192. package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
  193. package/dist/protocols/mcp/tools/MemoryUtilityTools.d.ts +4 -5
  194. package/dist/protocols/mcp/tools/MemoryUtilityTools.d.ts.map +1 -1
  195. package/dist/protocols/mcp/tools/MemoryUtilityTools.js +59 -208
  196. package/dist/protocols/mcp/tools/MemoryUtilityTools.js.map +1 -1
  197. package/dist/protocols/mcp/tools/PlanningTools.d.ts +2 -1
  198. package/dist/protocols/mcp/tools/PlanningTools.d.ts.map +1 -1
  199. package/dist/protocols/mcp/tools/PlanningTools.js +111 -49
  200. package/dist/protocols/mcp/tools/PlanningTools.js.map +1 -1
  201. package/dist/protocols/mcp/tools/ProjectContextTools.d.ts.map +1 -1
  202. package/dist/protocols/mcp/tools/ProjectContextTools.js +18 -12
  203. package/dist/protocols/mcp/tools/ProjectContextTools.js.map +1 -1
  204. package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
  205. package/dist/protocols/mcp/tools/SafetyTools.js +16 -13
  206. package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
  207. package/dist/protocols/mcp/tools/SearchProjectTools.d.ts +24 -7
  208. package/dist/protocols/mcp/tools/SearchProjectTools.d.ts.map +1 -1
  209. package/dist/protocols/mcp/tools/SearchProjectTools.js +226 -126
  210. package/dist/protocols/mcp/tools/SearchProjectTools.js.map +1 -1
  211. package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts +0 -32
  212. package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
  213. package/dist/protocols/mcp/tools/TaskPlanningTools.js +363 -450
  214. package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
  215. package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
  216. package/dist/protocols/mcp/tools/TestTools.js +18 -11
  217. package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
  218. package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
  219. package/dist/protocols/mcp/tools/TypeScriptTools.js +22 -12
  220. package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
  221. package/dist/protocols/mcp/tools/UserInputTools.d.ts.map +1 -1
  222. package/dist/protocols/mcp/tools/UserInputTools.js +14 -1
  223. package/dist/protocols/mcp/tools/UserInputTools.js.map +1 -1
  224. package/dist/protocols/mcp/tools/UserMemoryTools.d.ts +3 -1
  225. package/dist/protocols/mcp/tools/UserMemoryTools.d.ts.map +1 -1
  226. package/dist/protocols/mcp/tools/UserMemoryTools.js +27 -62
  227. package/dist/protocols/mcp/tools/UserMemoryTools.js.map +1 -1
  228. package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
  229. package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +14 -60
  230. package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
  231. package/dist/protocols/mcp/tools/shell/ShellSandbox.d.ts.map +1 -1
  232. package/dist/protocols/mcp/tools/shell/ShellSandbox.js +9 -27
  233. package/dist/protocols/mcp/tools/shell/ShellSandbox.js.map +1 -1
  234. package/dist/repositories/interfaces/IKnowledgeGraphRepository.d.ts +40 -30
  235. package/dist/repositories/interfaces/IKnowledgeGraphRepository.d.ts.map +1 -1
  236. package/dist/schemas/EventPayloadSchema.d.ts +28 -0
  237. package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
  238. package/dist/schemas/EventPayloadSchema.js +30 -1
  239. package/dist/schemas/EventPayloadSchema.js.map +1 -1
  240. package/dist/schemas/MxpProtocolSchemas.d.ts +6 -6
  241. package/dist/services/AgentPerformanceService.d.ts +11 -0
  242. package/dist/services/AgentPerformanceService.d.ts.map +1 -1
  243. package/dist/services/AgentPerformanceService.js +59 -33
  244. package/dist/services/AgentPerformanceService.js.map +1 -1
  245. package/dist/services/AutoCorrectionService.d.ts +3 -0
  246. package/dist/services/AutoCorrectionService.d.ts.map +1 -1
  247. package/dist/services/AutoCorrectionService.js +19 -2
  248. package/dist/services/AutoCorrectionService.js.map +1 -1
  249. package/dist/services/BackgroundTaskManager.d.ts +23 -7
  250. package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
  251. package/dist/services/BackgroundTaskManager.js +137 -57
  252. package/dist/services/BackgroundTaskManager.js.map +1 -1
  253. package/dist/services/BrowserManager.d.ts +2 -0
  254. package/dist/services/BrowserManager.d.ts.map +1 -1
  255. package/dist/services/BrowserManager.js +18 -15
  256. package/dist/services/BrowserManager.js.map +1 -1
  257. package/dist/services/ChannelContextMemoryOperations.d.ts +8 -1
  258. package/dist/services/ChannelContextMemoryOperations.d.ts.map +1 -1
  259. package/dist/services/ChannelContextMemoryOperations.js +89 -165
  260. package/dist/services/ChannelContextMemoryOperations.js.map +1 -1
  261. package/dist/services/ChannelContextMessageOperations.d.ts +4 -3
  262. package/dist/services/ChannelContextMessageOperations.d.ts.map +1 -1
  263. package/dist/services/ChannelContextMessageOperations.js +72 -212
  264. package/dist/services/ChannelContextMessageOperations.js.map +1 -1
  265. package/dist/services/MemoryService.d.ts +52 -21
  266. package/dist/services/MemoryService.d.ts.map +1 -1
  267. package/dist/services/MemoryService.js +775 -548
  268. package/dist/services/MemoryService.js.map +1 -1
  269. package/dist/services/PatternLearningService.d.ts +5 -0
  270. package/dist/services/PatternLearningService.d.ts.map +1 -1
  271. package/dist/services/PatternLearningService.js +26 -3
  272. package/dist/services/PatternLearningService.js.map +1 -1
  273. package/dist/services/PerformanceOptimizationService.d.ts +2 -1
  274. package/dist/services/PerformanceOptimizationService.d.ts.map +1 -1
  275. package/dist/services/PerformanceOptimizationService.js +21 -6
  276. package/dist/services/PerformanceOptimizationService.js.map +1 -1
  277. package/dist/services/PredictiveAnalyticsService.d.ts +1 -0
  278. package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
  279. package/dist/services/PredictiveAnalyticsService.js +18 -6
  280. package/dist/services/PredictiveAnalyticsService.js.map +1 -1
  281. package/dist/services/ProactiveValidationService.d.ts +6 -0
  282. package/dist/services/ProactiveValidationService.d.ts.map +1 -1
  283. package/dist/services/ProactiveValidationService.js +58 -39
  284. package/dist/services/ProactiveValidationService.js.map +1 -1
  285. package/dist/services/TaskEffectivenessService.d.ts +55 -31
  286. package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
  287. package/dist/services/TaskEffectivenessService.js +243 -125
  288. package/dist/services/TaskEffectivenessService.js.map +1 -1
  289. package/dist/services/ToolExecutionInterceptor.d.ts +4 -0
  290. package/dist/services/ToolExecutionInterceptor.d.ts.map +1 -1
  291. package/dist/services/ToolExecutionInterceptor.js +31 -5
  292. package/dist/services/ToolExecutionInterceptor.js.map +1 -1
  293. package/dist/services/UserInputRequestManager.d.ts +13 -3
  294. package/dist/services/UserInputRequestManager.d.ts.map +1 -1
  295. package/dist/services/UserInputRequestManager.js +42 -6
  296. package/dist/services/UserInputRequestManager.js.map +1 -1
  297. package/dist/services/UserMemoryService.d.ts +2 -0
  298. package/dist/services/UserMemoryService.d.ts.map +1 -1
  299. package/dist/services/UserMemoryService.js +9 -4
  300. package/dist/services/UserMemoryService.js.map +1 -1
  301. package/dist/services/ValidationAnalyticsService.d.ts +4 -0
  302. package/dist/services/ValidationAnalyticsService.d.ts.map +1 -1
  303. package/dist/services/ValidationAnalyticsService.js +30 -8
  304. package/dist/services/ValidationAnalyticsService.js.map +1 -1
  305. package/dist/services/ValidationCacheService.d.ts +3 -1
  306. package/dist/services/ValidationCacheService.d.ts.map +1 -1
  307. package/dist/services/ValidationCacheService.js +25 -4
  308. package/dist/services/ValidationCacheService.js.map +1 -1
  309. package/dist/services/ValidationMiddleware.d.ts +7 -0
  310. package/dist/services/ValidationMiddleware.d.ts.map +1 -1
  311. package/dist/services/ValidationMiddleware.js +53 -10
  312. package/dist/services/ValidationMiddleware.js.map +1 -1
  313. package/dist/services/ValidationPerformanceService.d.ts +3 -0
  314. package/dist/services/ValidationPerformanceService.d.ts.map +1 -1
  315. package/dist/services/ValidationPerformanceService.js +28 -11
  316. package/dist/services/ValidationPerformanceService.js.map +1 -1
  317. package/dist/services/WebSearchService.d.ts.map +1 -1
  318. package/dist/services/WebSearchService.js +9 -0
  319. package/dist/services/WebSearchService.js.map +1 -1
  320. package/dist/services/dag/TaskDagService.d.ts +3 -0
  321. package/dist/services/dag/TaskDagService.d.ts.map +1 -1
  322. package/dist/services/dag/TaskDagService.js +18 -0
  323. package/dist/services/dag/TaskDagService.js.map +1 -1
  324. package/dist/services/kg/EntityQValueManager.d.ts +3 -1
  325. package/dist/services/kg/EntityQValueManager.d.ts.map +1 -1
  326. package/dist/services/kg/EntityQValueManager.js +10 -10
  327. package/dist/services/kg/EntityQValueManager.js.map +1 -1
  328. package/dist/services/kg/GraphSurpriseCalculator.d.ts +0 -4
  329. package/dist/services/kg/GraphSurpriseCalculator.d.ts.map +1 -1
  330. package/dist/services/kg/GraphSurpriseCalculator.js +0 -9
  331. package/dist/services/kg/GraphSurpriseCalculator.js.map +1 -1
  332. package/dist/services/kg/KnowledgeGraphService.d.ts +12 -12
  333. package/dist/services/kg/KnowledgeGraphService.d.ts.map +1 -1
  334. package/dist/services/kg/KnowledgeGraphService.js +43 -51
  335. package/dist/services/kg/KnowledgeGraphService.js.map +1 -1
  336. package/dist/services/kg/OrparGraphIntegration.d.ts.map +1 -1
  337. package/dist/services/kg/OrparGraphIntegration.js +6 -5
  338. package/dist/services/kg/OrparGraphIntegration.js.map +1 -1
  339. package/dist/services/orpar-memory/CycleConsolidationTrigger.d.ts +1 -0
  340. package/dist/services/orpar-memory/CycleConsolidationTrigger.d.ts.map +1 -1
  341. package/dist/services/orpar-memory/CycleConsolidationTrigger.js +8 -1
  342. package/dist/services/orpar-memory/CycleConsolidationTrigger.js.map +1 -1
  343. package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts +8 -1
  344. package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts.map +1 -1
  345. package/dist/services/orpar-memory/OrparMemoryCoordinator.js +93 -45
  346. package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
  347. package/dist/services/orpar-memory/SurpriseOrparAdapter.d.ts +1 -0
  348. package/dist/services/orpar-memory/SurpriseOrparAdapter.d.ts.map +1 -1
  349. package/dist/services/orpar-memory/SurpriseOrparAdapter.js +8 -1
  350. package/dist/services/orpar-memory/SurpriseOrparAdapter.js.map +1 -1
  351. package/dist/types/ChannelContext.d.ts +2 -1
  352. package/dist/types/ChannelContext.d.ts.map +1 -1
  353. package/dist/types/EffectivenessTypes.d.ts +4 -1
  354. package/dist/types/EffectivenessTypes.d.ts.map +1 -1
  355. package/dist/types/TaskCompletionTypes.d.ts +7 -5
  356. package/dist/types/TaskCompletionTypes.d.ts.map +1 -1
  357. package/dist/types/TaskTypes.d.ts +8 -1
  358. package/dist/types/TaskTypes.d.ts.map +1 -1
  359. package/dist/utils/GlobMatcher.d.ts +37 -0
  360. package/dist/utils/GlobMatcher.d.ts.map +1 -0
  361. package/dist/utils/GlobMatcher.js +131 -0
  362. package/dist/utils/GlobMatcher.js.map +1 -0
  363. package/package.json +1 -1
  364. package/src/config/ModelContextLimits.ts +7 -1
  365. package/src/constants/CoreTools.ts +6 -5
  366. package/src/constants/DefaultPhaseProfiles.ts +29 -0
  367. package/src/constants/ReservedIdentities.ts +51 -0
  368. package/src/database/adapters/mongodb/MongoKnowledgeGraphRepository.ts +115 -36
  369. package/src/events/ClientEventBus.ts +117 -48
  370. package/src/events/EventBus.ts +32 -2
  371. package/src/events/EventBusBase.ts +132 -39
  372. package/src/events/EventNames.ts +43 -36
  373. package/src/events/PublicEvents.ts +8 -0
  374. package/src/events/ServerEventBus.ts +9 -128
  375. package/src/events/event-definitions/ControlLoopEvents.ts +12 -0
  376. package/src/events/event-definitions/SdkEvents.ts +58 -0
  377. package/src/events/event-definitions/TaskEvents.ts +2 -2
  378. package/src/index.ts +15 -0
  379. package/src/interfaces/AgentInterfaces.ts +5 -0
  380. package/src/interfaces/ChannelConfig.ts +2 -2
  381. package/src/interfaces/ConversationMessage.ts +5 -0
  382. package/src/interfaces/IMemoryPersistence.ts +55 -1
  383. package/src/interfaces/SocketServiceInterface.ts +3 -2
  384. package/src/interfaces/TaskInterfaces.ts +16 -1
  385. package/src/models/agent.ts +0 -6
  386. package/src/models/agentIdentityReservation.ts +77 -0
  387. package/src/models/channel.ts +2 -0
  388. package/src/models/channelKey.ts +10 -0
  389. package/src/models/memory.ts +18 -19
  390. package/src/models/memoryStrata.ts +9 -23
  391. package/src/models/plan.ts +3 -3
  392. package/src/models/taskEffectiveness.ts +9 -2
  393. package/src/models/user.ts +12 -0
  394. package/src/protocols/mcp/LlmTestEnvironmentGuard.ts +30 -0
  395. package/src/protocols/mcp/McpServerTypes.ts +9 -0
  396. package/src/protocols/mcp/providers/AnthropicMcpClient.ts +2 -0
  397. package/src/protocols/mcp/providers/AzureOpenAiMcpClient.ts +1 -0
  398. package/src/protocols/mcp/providers/BaseMcpClient.ts +13 -0
  399. package/src/protocols/mcp/providers/CustomMcpClient.ts +7 -0
  400. package/src/protocols/mcp/providers/GeminiMcpClient.ts +2 -0
  401. package/src/protocols/mcp/providers/OllamaMcpClient.ts +3 -1
  402. package/src/protocols/mcp/providers/OpenAiMcpClient.ts +2 -0
  403. package/src/protocols/mcp/providers/OpenRouterMcpClient.ts +3 -0
  404. package/src/protocols/mcp/providers/XaiMcpClient.ts +2 -0
  405. package/src/protocols/mcp/security/BrowserTargetGuard.ts +64 -0
  406. package/src/protocols/mcp/security/ExternalMcpRegistrationPolicy.ts +38 -0
  407. package/src/protocols/mcp/security/HttpTargetGuard.ts +77 -6
  408. package/src/protocols/mcp/security/McpSecurityGuard.ts +7 -5
  409. package/src/protocols/mcp/security/McpToolPolicy.ts +74 -0
  410. package/src/protocols/mcp/services/ExternalMcpServerManager.ts +656 -111
  411. package/src/protocols/mcp/services/ExternalServerConfigs.ts +26 -8
  412. package/src/protocols/mcp/tools/AnalyticsTools.ts +167 -641
  413. package/src/protocols/mcp/tools/CodeAnalysisTools.ts +44 -14
  414. package/src/protocols/mcp/tools/EffectivenessTools.ts +185 -45
  415. package/src/protocols/mcp/tools/GitTools.ts +15 -5
  416. package/src/protocols/mcp/tools/InfrastructureTools.ts +42 -90
  417. package/src/protocols/mcp/tools/JsonTools.ts +7 -4
  418. package/src/protocols/mcp/tools/KnowledgeGraphTools.ts +313 -164
  419. package/src/protocols/mcp/tools/MemorySearchTools.ts +158 -46
  420. package/src/protocols/mcp/tools/MemoryUtilityTools.ts +85 -232
  421. package/src/protocols/mcp/tools/PlanningTools.ts +137 -59
  422. package/src/protocols/mcp/tools/ProjectContextTools.ts +33 -12
  423. package/src/protocols/mcp/tools/SafetyTools.ts +49 -13
  424. package/src/protocols/mcp/tools/SearchProjectTools.ts +294 -153
  425. package/src/protocols/mcp/tools/TaskPlanningTools.ts +437 -514
  426. package/src/protocols/mcp/tools/TestTools.ts +41 -11
  427. package/src/protocols/mcp/tools/TypeScriptTools.ts +61 -12
  428. package/src/protocols/mcp/tools/UserInputTools.ts +15 -1
  429. package/src/protocols/mcp/tools/UserMemoryTools.ts +27 -62
  430. package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +26 -84
  431. package/src/protocols/mcp/tools/shell/ShellSandbox.ts +13 -31
  432. package/src/repositories/interfaces/IKnowledgeGraphRepository.ts +45 -27
  433. package/src/schemas/EventPayloadSchema.ts +45 -1
  434. package/src/services/AgentPerformanceService.ts +85 -36
  435. package/src/services/AutoCorrectionService.ts +25 -6
  436. package/src/services/BackgroundTaskManager.ts +183 -76
  437. package/src/services/BrowserManager.ts +20 -16
  438. package/src/services/ChannelContextMemoryOperations.ts +169 -202
  439. package/src/services/ChannelContextMessageOperations.ts +112 -274
  440. package/src/services/MemoryService.ts +1053 -760
  441. package/src/services/PatternLearningService.ts +32 -7
  442. package/src/services/PerformanceOptimizationService.ts +26 -9
  443. package/src/services/PredictiveAnalyticsService.ts +23 -10
  444. package/src/services/ProactiveValidationService.ts +66 -40
  445. package/src/services/TaskEffectivenessService.ts +421 -206
  446. package/src/services/ToolExecutionInterceptor.ts +40 -9
  447. package/src/services/UserInputRequestManager.ts +51 -6
  448. package/src/services/UserMemoryService.ts +12 -3
  449. package/src/services/ValidationAnalyticsService.ts +36 -11
  450. package/src/services/ValidationCacheService.ts +30 -7
  451. package/src/services/ValidationMiddleware.ts +62 -14
  452. package/src/services/ValidationPerformanceService.ts +47 -25
  453. package/src/services/WebSearchService.ts +16 -4
  454. package/src/services/dag/TaskDagService.ts +20 -1
  455. package/src/services/kg/EntityQValueManager.ts +21 -10
  456. package/src/services/kg/GraphSurpriseCalculator.ts +0 -14
  457. package/src/services/kg/KnowledgeGraphService.ts +56 -48
  458. package/src/services/kg/OrparGraphIntegration.ts +11 -5
  459. package/src/services/orpar-memory/CycleConsolidationTrigger.ts +10 -1
  460. package/src/services/orpar-memory/OrparMemoryCoordinator.ts +142 -71
  461. package/src/services/orpar-memory/SurpriseOrparAdapter.ts +10 -1
  462. package/src/types/ChannelContext.ts +3 -1
  463. package/src/types/EffectivenessTypes.ts +6 -2
  464. package/src/types/TaskCompletionTypes.ts +9 -9
  465. package/src/types/TaskTypes.ts +12 -1
  466. package/src/utils/GlobMatcher.ts +157 -0
@@ -25,8 +25,8 @@
25
25
  * This includes saving, retrieving, and updating contexts in the memory system.
26
26
  */
27
27
 
28
- import { Observable, throwError, of } from 'rxjs';
29
- import { tap } from 'rxjs/operators';
28
+ import { Observable, of, throwError } from 'rxjs';
29
+ import { map, mergeMap } from 'rxjs/operators';
30
30
  import { v4 as uuidv4 } from 'uuid'; // Added import for uuid
31
31
 
32
32
  import {
@@ -39,40 +39,91 @@ import { AgentId } from '../types/Agent.js'; // Added import for AgentId
39
39
  import { Logger } from '../utils/Logger.js';
40
40
  import { createStrictValidator } from '../utils/validation.js';
41
41
  import { EventBus } from '../events/EventBus.js';
42
+ import { EventBusBase } from '../events/EventBusBase.js';
42
43
  import { Events } from '../events/EventNames.js';
43
44
  import { MemoryScope } from '../types/MemoryTypes.js'; // MemoryGetEventData, MemoryUpdateEventData removed from here
44
45
  import {
45
46
  createMemoryGetEventPayload,
47
+ createMemoryDeleteEventPayload,
46
48
  createMemoryUpdateEventPayload,
49
+ MemoryDeleteEventData,
47
50
  MemoryGetEventData, // Added import here
48
51
  MemoryUpdateEventData // Added import here
49
52
  } from '../schemas/EventPayloadSchema.js';
50
53
 
51
54
  const SYSTEM_AGENT_ID: AgentId = 'SYSTEM_AGENT'; // Define SYSTEM_AGENT_ID
52
55
 
56
+ interface MemoryOperationResponseData {
57
+ operationId?: string;
58
+ id?: string | string[];
59
+ memory?: unknown;
60
+ success?: boolean;
61
+ error?: string;
62
+ }
63
+
64
+ interface MemoryOperationResponse {
65
+ data?: MemoryOperationResponseData;
66
+ }
67
+
68
+ type MemoryEventBus = EventBusBase & {
69
+ emit(event: string, payload: unknown): void;
70
+ };
71
+
53
72
  /**
54
73
  * Provides memory operations for the channel context service
55
74
  */
56
75
  export class ChannelContextMemoryOperations {
57
76
  private logger: Logger;
58
- private eventBus: any; // Will be either EventBus.client or this.eventBus
77
+ private eventBus: MemoryEventBus;
59
78
 
60
79
  constructor(isClientContext: boolean = false) {
61
80
  const target = isClientContext ? 'client' : 'server';
62
81
  this.logger = new Logger('debug', 'ChannelContextMemoryOperations', target);
63
- this.eventBus = isClientContext ? EventBus.client : EventBus.server;
82
+ this.eventBus = (isClientContext ? EventBus.client : EventBus.server) as MemoryEventBus;
83
+ }
84
+
85
+ private requestMemoryResult(
86
+ resultEvent: string,
87
+ operationId: string,
88
+ emitRequest: () => void
89
+ ): Observable<MemoryOperationResponseData> {
90
+ return new Observable(observer => {
91
+ let settled = false;
92
+ const handler = (response: unknown): void => {
93
+ if (!response || typeof response !== 'object') return;
94
+ const data = (response as MemoryOperationResponse).data;
95
+ if (data?.operationId !== operationId || settled) return;
96
+ settled = true;
97
+ if (data.error) {
98
+ observer.error(new Error(data.error));
99
+ return;
100
+ }
101
+ observer.next(data);
102
+ observer.complete();
103
+ };
104
+ const subscription = this.eventBus.on(resultEvent, handler);
105
+ try {
106
+ emitRequest();
107
+ } catch (error) {
108
+ settled = true;
109
+ observer.error(error instanceof Error ? error : new Error(String(error)));
110
+ }
111
+ return () => subscription.unsubscribe();
112
+ });
64
113
  }
65
114
  /**
66
115
  * Save context to memory system with proper validation and error handling
67
116
  * @param channelId - Channel ID
68
117
  * @param context - Channel context to save
69
118
  * @param historyEntry - Optional history entry to record with this update
119
+ * @param expectedContextUpdatedAt - Persisted revision required for an update
70
120
  * @returns Observable of the saved context
71
121
  */
72
122
  public saveContextToMemory = (
73
123
  channelId: ChannelId,
74
124
  context: ChannelContextType,
75
- historyEntry?: ChannelContextHistoryEntry
125
+ historyEntry?: ChannelContextHistoryEntry,
126
+ expectedContextUpdatedAt?: number
76
127
  ): Observable<ChannelContextType> => {
77
128
 
78
129
  try {
@@ -112,11 +163,13 @@ export class ChannelContextMemoryOperations {
112
163
  const contextMetadataForEvent = {
113
164
  channelId: channelId,
114
165
  updatedAt: Date.now(),
115
- key: memoryKey
166
+ key: memoryKey,
167
+ expectedContextUpdatedAt
116
168
  };
117
169
 
170
+ const operationId = uuidv4();
118
171
  const updateData: MemoryUpdateEventData = {
119
- operationId: uuidv4(),
172
+ operationId,
120
173
  scope: MemoryScope.CHANNEL,
121
174
  id: memoryKey, // Use the memory key as the id for UPDATE operations
122
175
  data: contextDataForEvent,
@@ -128,18 +181,16 @@ export class ChannelContextMemoryOperations {
128
181
 
129
182
 
130
183
 
131
- this.eventBus.emit(
132
- Events.Memory.UPDATE,
133
- payload
184
+ return this.requestMemoryResult(
185
+ Events.Memory.UPDATE_RESULT,
186
+ operationId,
187
+ () => this.eventBus.emit(Events.Memory.UPDATE, payload)
188
+ ).pipe(
189
+ mergeMap(() => historyEntry
190
+ ? this.saveHistoryEntry(channelId, historyEntry).pipe(map(() => context))
191
+ : of(context)
192
+ )
134
193
  );
135
-
136
- // Store history entry if provided
137
- if (historyEntry && historyEntry !== null && historyEntry !== undefined) {
138
- this.saveHistoryEntry(channelId, historyEntry as ChannelContextHistoryEntry);
139
- }
140
-
141
- // Return the context after emitting the event
142
- return of(context);
143
194
  } catch (error) {
144
195
  this.logger.error(`Error saving context to memory: ${error instanceof Error ? error.message : String(error)}`);
145
196
  return throwError(() => error instanceof Error ? error : new Error(String(error)));
@@ -153,73 +204,25 @@ export class ChannelContextMemoryOperations {
153
204
  */
154
205
  public getContextFromMemory = (channelId: ChannelId): Observable<ChannelContextType | null> => {
155
206
 
156
- return new Observable(observer => {
157
- const memoryKey = `channel:context:${channelId}`;
158
- let handled = false;
159
- let timeoutId: NodeJS.Timeout;
207
+ const memoryKey = `channel:context:${channelId}`;
208
+ const operationId = uuidv4();
209
+ const getData: MemoryGetEventData = {
210
+ operationId,
211
+ scope: MemoryScope.CHANNEL,
212
+ id: memoryKey,
213
+ key: memoryKey
214
+ };
160
215
 
161
- // Define response handler
162
- const memoryResponseHandler = (response: any): void => {
163
- //;
164
-
165
- // if (handled || !response || response.key !== memoryKey) {
166
- // ;
167
- // return; // Already handled or not for us
168
- // }
169
- handled = true;
170
- clearTimeout(timeoutId);
171
- this.eventBus.off(Events.Memory.GET_RESULT, memoryResponseHandler);
172
-
173
- try {
174
- if (response.error) {
175
- this.logger.warn(`Error getting context from memory for key ${memoryKey}: ${response.error}`);
176
- observer.next(null);
177
- } else {
178
- const contextData = response.data ? response.data[memoryKey] : null;
179
- observer.next(contextData);
180
- }
181
- observer.complete();
182
- } catch (error) {
183
- this.logger.error(`Error processing memory response for ${memoryKey}: ${error instanceof Error ? error.message : String(error)}`);
184
- observer.error(error instanceof Error ? error : new Error(String(error)));
185
- }
186
- };
187
-
188
- // Set timeout to prevent hanging
189
- timeoutId = setTimeout(() => {
190
- if (!handled) {
191
- handled = true;
192
- this.eventBus.off(Events.Memory.GET_RESULT, memoryResponseHandler);
193
- this.logger.warn(`Memory get operation timed out for ${memoryKey}`);
194
- observer.next(null); // Return null instead of hanging
195
- observer.complete();
196
- }
197
- }, 45000); // 45 second timeout to accommodate LLM API response times
198
-
199
- // Listen for memory get result
200
- this.eventBus.on(Events.Memory.GET_RESULT, memoryResponseHandler);
201
-
202
- // Request context from memory using standardized payload creator
203
- const getData: MemoryGetEventData = {
204
- operationId: uuidv4(),
205
- scope: MemoryScope.CHANNEL,
206
- id: memoryKey, // Use the memory key as the id for GET operations
207
- key: memoryKey // Use the memory key for actual lookup
208
- };
209
-
210
- this.eventBus.emit(
211
- Events.Memory.GET,
216
+ return this.requestMemoryResult(
217
+ Events.Memory.GET_RESULT,
218
+ operationId,
219
+ () => this.eventBus.emit(
220
+ Events.Memory.GET,
212
221
  createMemoryGetEventPayload(Events.Memory.GET, SYSTEM_AGENT_ID, channelId, getData)
213
- );
214
-
215
- // Handle cleanup
216
- return (): void => {
217
- if (!handled) {
218
- clearTimeout(timeoutId);
219
- this.eventBus.off(Events.Memory.GET_RESULT, memoryResponseHandler);
220
- }
221
- };
222
- });
222
+ )
223
+ ).pipe(
224
+ map(result => (result.memory as ChannelContextType | null | undefined) ?? null)
225
+ );
223
226
  };
224
227
 
225
228
  /**
@@ -227,72 +230,33 @@ export class ChannelContextMemoryOperations {
227
230
  * @param channelId - Channel ID
228
231
  * @param historyEntry - History entry to save
229
232
  */
230
- private saveHistoryEntry = (channelId: ChannelId, historyEntry: ChannelContextHistoryEntry): void => {
233
+ private saveHistoryEntry = (
234
+ channelId: ChannelId,
235
+ historyEntry: ChannelContextHistoryEntry
236
+ ): Observable<void> => {
231
237
  const historyKey = `channel:context:history:${channelId}`;
232
- let handled = false;
233
-
234
- // Define handler for getting history from memory
235
- const historyUpdateHandler = (response: any): void => {
236
- if (handled || !response || response.key !== historyKey) {
237
- return; // Already handled or not for us
238
- }
239
- handled = true;
240
- this.eventBus.off(Events.Memory.GET_RESULT, historyUpdateHandler);
241
-
242
- try {
243
- // Get existing history or create new array
244
- const existingHistory = response.data && response.data[historyKey] && Array.isArray(response.data[historyKey])
245
- ? response.data[historyKey]
246
- : [];
247
-
248
- // Add new entry
249
- existingHistory.push(historyEntry);
250
-
251
- // Only keep last 100 entries
252
- const trimmedHistory = existingHistory.slice(-100);
253
-
254
- // Save updated history using standardized payload creator
255
- const historyDataForEvent = { [historyKey]: trimmedHistory }; // This is the 'data' part of MemoryUpdateEventData
256
- const historyMetadataForEvent = {
257
- channelId: channelId,
258
- updatedAt: Date.now(),
259
- key: historyKey
260
- };
261
-
262
- const updateData: MemoryUpdateEventData = {
263
- operationId: uuidv4(),
264
- scope: MemoryScope.CHANNEL,
265
- id: historyKey, // Use the memory key as the id for UPDATE operations
266
- data: historyDataForEvent,
267
- metadata: historyMetadataForEvent
268
- };
269
-
270
-
271
- const payload = createMemoryUpdateEventPayload(Events.Memory.UPDATE, SYSTEM_AGENT_ID, channelId, updateData);
272
-
273
- this.eventBus.emit(
274
- Events.Memory.UPDATE,
275
- payload
276
- );
277
- } catch (error) {
278
- this.logger.error(`Error updating history for channel ${channelId}: ${error instanceof Error ? error.message : String(error)}`);
279
- }
280
- };
281
-
282
- // Listen for history get result
283
- this.eventBus.on(Events.Memory.GET_RESULT, historyUpdateHandler);
284
-
285
- // Request history from memory using standardized payload creator
286
- const getData: MemoryGetEventData = {
287
- operationId: uuidv4(),
238
+ const updateOperationId = uuidv4();
239
+ const updateData: MemoryUpdateEventData = {
240
+ operationId: updateOperationId,
288
241
  scope: MemoryScope.CHANNEL,
289
- id: historyKey, // Use the memory key as the id for GET operations
290
- key: historyKey // Use the memory key for actual lookup
242
+ id: historyKey,
243
+ data: { [historyKey]: [historyEntry] },
244
+ metadata: { channelId, updatedAt: Date.now(), key: historyKey }
291
245
  };
292
- this.eventBus.emit(
293
- Events.Memory.GET,
294
- createMemoryGetEventPayload(Events.Memory.GET, SYSTEM_AGENT_ID, channelId, getData)
295
- );
246
+
247
+ return this.requestMemoryResult(
248
+ Events.Memory.UPDATE_RESULT,
249
+ updateOperationId,
250
+ () => this.eventBus.emit(
251
+ Events.Memory.UPDATE,
252
+ createMemoryUpdateEventPayload(
253
+ Events.Memory.UPDATE,
254
+ SYSTEM_AGENT_ID,
255
+ channelId,
256
+ updateData
257
+ )
258
+ )
259
+ ).pipe(map(() => undefined));
296
260
  };
297
261
 
298
262
  /**
@@ -306,61 +270,64 @@ export class ChannelContextMemoryOperations {
306
270
  limit?: number
307
271
  ): Observable<ChannelContextHistoryEntry[]> => {
308
272
 
309
- return new Observable(observer => {
310
- const historyKey = `channel:context:history:${channelId}`;
311
- let handled = false;
312
-
313
- // Define handler for getting history from memory
314
- const historyGetHandler = (response: any): void => {
315
- // Only process if this is the response we're waiting for
316
- // Check response.data.id (not response.key) as that's what Memory.GET handler sets
317
- if (handled || !response || !response.data || response.data.id !== historyKey) {
318
- return;
319
- }
320
- handled = true;
321
- // Remove listener to avoid processing multiple times
322
- this.eventBus.off(Events.Memory.GET_RESULT, historyGetHandler);
323
-
324
- try {
325
- // Get existing history or create new array
326
- // Memory.GET handler returns { data: { memory: data } }
327
- const historyData = response.data.memory;
328
- const history = Array.isArray(historyData) ? historyData : [];
329
-
330
- // Apply limit if specified
331
- const limitedHistory = limit && limit > 0
332
- ? history.slice(-limit)
333
- : history;
334
-
335
- observer.next(limitedHistory);
336
- observer.complete();
337
- } catch (error) {
338
- this.logger.error(`Error getting history for channel ${channelId}: ${error instanceof Error ? error.message : String(error)}`);
339
- observer.error(error instanceof Error ? error : new Error(String(error)));
340
- }
341
- };
342
-
343
- // Listen for history get result
344
- this.eventBus.on(Events.Memory.GET_RESULT, historyGetHandler);
345
-
346
- // Request history from memory using standardized payload creator
347
- const getData: MemoryGetEventData = {
348
- operationId: uuidv4(),
349
- scope: MemoryScope.CHANNEL,
350
- id: historyKey, // Use the memory key as the id for GET operations
351
- key: historyKey // Use the memory key for actual lookup
352
- };
353
- this.eventBus.emit(
354
- Events.Memory.GET,
355
- createMemoryGetEventPayload(Events.Memory.GET, SYSTEM_AGENT_ID, channelId, getData)
356
- );
357
-
358
- // Handle cleanup
359
- return (): void => {
360
- if (!handled) {
361
- this.eventBus.off(Events.Memory.GET_RESULT, historyGetHandler);
362
- }
363
- };
364
- });
273
+ const historyKey = `channel:context:history:${channelId}`;
274
+ const operationId = uuidv4();
275
+ const getData: MemoryGetEventData = {
276
+ operationId,
277
+ scope: MemoryScope.CHANNEL,
278
+ id: historyKey,
279
+ key: historyKey
280
+ };
281
+ return this.requestMemoryResult(
282
+ Events.Memory.GET_RESULT,
283
+ operationId,
284
+ () => this.eventBus.emit(
285
+ Events.Memory.GET,
286
+ createMemoryGetEventPayload(
287
+ Events.Memory.GET,
288
+ SYSTEM_AGENT_ID,
289
+ channelId,
290
+ getData
291
+ )
292
+ )
293
+ ).pipe(
294
+ map(result => {
295
+ const history = Array.isArray(result.memory)
296
+ ? result.memory as ChannelContextHistoryEntry[]
297
+ : [];
298
+ return limit && limit > 0 ? history.slice(-limit) : history;
299
+ })
300
+ );
301
+ };
302
+
303
+ /**
304
+ * Delete the exact persisted context field for a channel and await the
305
+ * authoritative memory bridge acknowledgement.
306
+ */
307
+ public deleteContextFromMemory = (channelId: ChannelId): Observable<boolean> => {
308
+ if (!channelId) {
309
+ return throwError(() => new Error('Channel ID is required'));
310
+ }
311
+ const memoryKey = `channel:context:${channelId}`;
312
+ const operationId = uuidv4();
313
+ const deleteData: MemoryDeleteEventData = {
314
+ operationId,
315
+ scope: MemoryScope.CHANNEL,
316
+ id: memoryKey
317
+ };
318
+
319
+ return this.requestMemoryResult(
320
+ Events.Memory.DELETE_RESULT,
321
+ operationId,
322
+ () => this.eventBus.emit(
323
+ Events.Memory.DELETE,
324
+ createMemoryDeleteEventPayload(
325
+ Events.Memory.DELETE,
326
+ SYSTEM_AGENT_ID,
327
+ channelId,
328
+ deleteData
329
+ )
330
+ )
331
+ ).pipe(map(result => result.success === true));
365
332
  };
366
333
  }