@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
@@ -26,7 +26,7 @@
26
26
  * event emission. Replaces the inline handler in InfrastructureTools.ts.
27
27
  *
28
28
  * Key improvements over the original inline handler:
29
- * - Uses spawn() instead of exec() streams output, no maxBuffer limit
29
+ * - Runs arbitrary commands only inside the Docker shell sandbox
30
30
  * - Interprets exit codes semantically (e.g., grep returning 1 = no matches, not error)
31
31
  * - Classifies commands (read-only, silent, category) for downstream decision-making
32
32
  * - Emits lifecycle events (started, completed, failed, destructive warning)
@@ -34,7 +34,6 @@
34
34
  * - Surfaces destructive command warnings as informational events
35
35
  */
36
36
 
37
- import { spawn } from 'child_process';
38
37
  import crypto from 'crypto';
39
38
 
40
39
  import { Events } from '../../../../events/EventNames.js';
@@ -48,10 +47,11 @@ import {
48
47
  import { getSecurityGuard, SecurityContext } from '../../security/McpSecurityGuard.js';
49
48
  import { getConfirmationManager } from '../../security/McpConfirmationManager.js';
50
49
  import {
50
+ assertCommandAllowlisted,
51
51
  buildShellChildEnv,
52
- getShellAllowedCommands,
53
- hasShellAllowlist,
54
- isShellSandboxEnabled
52
+ isShellSandboxEnabled,
53
+ requireWorkspaceRoot,
54
+ resolveWorkspacePath
55
55
  } from '../../security/McpToolPolicy.js';
56
56
  import { Logger } from '../../../../utils/Logger.js';
57
57
  import { createStrictValidator } from '../../../../utils/validation.js';
@@ -61,7 +61,6 @@ import { classifyCommand } from './CommandClassification.js';
61
61
  import { getDestructiveWarnings } from './DestructiveCommandWarnings.js';
62
62
  import { interpretExitCode } from './CommandSemantics.js';
63
63
  import { processOutput } from './LargeOutputHandler.js';
64
- import { extractEffectiveCommands } from './ShellCommandParser.js';
65
64
  import { executeInSandbox } from './ShellSandbox.js';
66
65
 
67
66
  const logger = new Logger('info', 'ShellExecuteHandler', 'server');
@@ -184,50 +183,6 @@ function buildFullCommand(command: string, args?: string[]): string {
184
183
  return `${command} ${escapedArgs}`;
185
184
  }
186
185
 
187
- /**
188
- * Execute a command using spawn() wrapped in a Promise.
189
- * Returns stdout, stderr, and exit code once the process closes.
190
- */
191
- function spawnCommand(
192
- fullCommand: string,
193
- cwd: string,
194
- env: NodeJS.ProcessEnv,
195
- timeout: number
196
- ): Promise<{ stdout: string; stderr: string; exitCode: number }> {
197
- return new Promise((resolve, reject) => {
198
- const child = spawn(fullCommand, [], {
199
- shell: true,
200
- cwd,
201
- env,
202
- timeout
203
- });
204
-
205
- const stdoutChunks: Buffer[] = [];
206
- const stderrChunks: Buffer[] = [];
207
-
208
- child.stdout.on('data', (chunk: Buffer) => {
209
- stdoutChunks.push(chunk);
210
- });
211
-
212
- child.stderr.on('data', (chunk: Buffer) => {
213
- stderrChunks.push(chunk);
214
- });
215
-
216
- child.on('error', (err: Error) => {
217
- // Spawn-level error (e.g., command not found, ENOENT)
218
- reject(err);
219
- });
220
-
221
- child.on('close', (exitCode: number | null) => {
222
- resolve({
223
- stdout: Buffer.concat(stdoutChunks).toString('utf-8'),
224
- stderr: Buffer.concat(stderrChunks).toString('utf-8'),
225
- exitCode: exitCode ?? 1
226
- });
227
- });
228
- });
229
- }
230
-
231
186
  // ---------------------------------------------------------------------------
232
187
  // Main execute function
233
188
  // ---------------------------------------------------------------------------
@@ -252,6 +207,16 @@ export async function execute(
252
207
  try {
253
208
  // ── 1. Validate input ──────────────────────────────────────────────
254
209
  validator.assertIsString(input.command, 'command');
210
+ if (!isShellSandboxEnabled()) {
211
+ throw new Error(
212
+ 'shell_execute requires MXF_SHELL_SANDBOX_ENABLED=true; ' +
213
+ 'host shell execution is not workspace-contained'
214
+ );
215
+ }
216
+ const workingDirectory = resolveWorkspacePath(
217
+ input.workingDirectory,
218
+ 'shell_execute workingDirectory'
219
+ );
255
220
 
256
221
  // ── 2. Classify the command ────────────────────────────────────────
257
222
  const classification = classifyCommand(input.command);
@@ -261,7 +226,7 @@ export async function execute(
261
226
  const warningMessages = destructiveWarnings.map(w => w.warning);
262
227
 
263
228
  // ── 4. Security validation ─────────────────────────────────────────
264
- const securityGuard = getSecurityGuard();
229
+ const securityGuard = getSecurityGuard(requireWorkspaceRoot('shell_execute'));
265
230
  const confirmationManager = getConfirmationManager();
266
231
 
267
232
  const securityContext: SecurityContext = {
@@ -320,23 +285,7 @@ export async function execute(
320
285
  // The allowlist comes from MXF_SHELL_ALLOWED_COMMANDS, not from the tool
321
286
  // input. An allowlist passed as an argument is chosen by the model it is
322
287
  // meant to restrict, which makes it decorative.
323
- if (hasShellAllowlist()) {
324
- const allowedCommands = getShellAllowedCommands();
325
- // Use the parser to extract the effective command, handling env
326
- // prefixes (FOO=bar cmd) and wrappers (sudo cmd, timeout 5 cmd)
327
- const effectiveCommands = extractEffectiveCommands(input.command);
328
- for (const effectiveCmd of effectiveCommands) {
329
- // extractEffectiveCommands yields the full command line; compare
330
- // on the base binary so `git status` matches an allowlisted `git`.
331
- const baseCommand = effectiveCmd.trim().split(/\s+/)[0];
332
- if (!allowedCommands.includes(baseCommand)) {
333
- throw new Error(
334
- `Command '${baseCommand}' is not in the configured allowlist ` +
335
- `(MXF_SHELL_ALLOWED_COMMANDS). Allowed: ${allowedCommands.join(', ')}`
336
- );
337
- }
338
- }
339
- }
288
+ assertCommandAllowlisted(input.command);
340
289
 
341
290
  // ── 7. Build command string and compute hash ───────────────────────
342
291
  const fullCommand = buildFullCommand(input.command, input.args);
@@ -382,22 +331,15 @@ export async function execute(
382
331
  // container with no network, a read-only root, dropped capabilities
383
332
  // and resource limits. If Docker is unavailable, executeInSandbox
384
333
  // throws — it never falls back to running on the host.
385
- const result = isShellSandboxEnabled()
386
- ? await executeInSandbox(
387
- fullCommand,
388
- { enabled: true },
389
- {
390
- timeout,
391
- workingDirectory: input.workingDirectory,
392
- environment: childEnv as Record<string, string>
393
- }
394
- )
395
- : await spawnCommand(
396
- fullCommand,
397
- input.workingDirectory || process.cwd(),
398
- childEnv,
399
- timeout
400
- );
334
+ const result = await executeInSandbox(
335
+ fullCommand,
336
+ { enabled: true },
337
+ {
338
+ timeout,
339
+ workingDirectory,
340
+ environment: childEnv as Record<string, string>
341
+ }
342
+ );
401
343
  stdout = result.stdout;
402
344
  stderr = result.stderr;
403
345
  exitCode = result.exitCode;
@@ -38,11 +38,11 @@
38
38
  * silent fallback to host execution.
39
39
  */
40
40
 
41
- import * as path from 'path';
42
41
  import crypto from 'crypto';
43
42
  import Docker from 'dockerode';
44
43
  import { Logger } from '../../../../utils/Logger.js';
45
44
  import { ContainerExecutionManager } from '../../../../services/ContainerExecutionManager.js';
45
+ import { resolveWorkspacePath } from '../../security/McpToolPolicy.js';
46
46
 
47
47
  const logger = new Logger('info', 'ShellSandbox', 'server');
48
48
 
@@ -155,6 +155,10 @@ export async function executeInSandbox(
155
155
  ...DEFAULT_SHELL_SANDBOX_CONFIG,
156
156
  ...config
157
157
  };
158
+ const workspaceDirectory = resolveWorkspacePath(
159
+ options.workingDirectory,
160
+ 'ShellSandbox workingDirectory'
161
+ );
158
162
 
159
163
  // Verify Docker is available — fail fast, never fall back to host execution
160
164
  const available = await isSandboxAvailable();
@@ -176,7 +180,7 @@ export async function executeInSandbox(
176
180
  }
177
181
 
178
182
  // Build Docker volume mounts
179
- const binds = buildBindMounts(mergedConfig, options.workingDirectory);
183
+ const binds = buildBindMounts(mergedConfig, workspaceDirectory);
180
184
 
181
185
  // Build environment variables for the container
182
186
  const envVars = options.environment
@@ -184,9 +188,7 @@ export async function executeInSandbox(
184
188
  : [];
185
189
 
186
190
  // Determine the working directory inside the container
187
- const containerWorkDir = options.workingDirectory
188
- ? mapHostPathToContainer(options.workingDirectory)
189
- : '/workspace';
191
+ const containerWorkDir = '/workspace';
190
192
 
191
193
  const containerId = `mxf-shell-${Date.now()}-${crypto.randomUUID().slice(0, 8)}`;
192
194
  const timeout = options.timeout || 30000;
@@ -346,50 +348,30 @@ async function checkShellExecutorImageExists(): Promise<boolean> {
346
348
  */
347
349
  function buildBindMounts(
348
350
  config: ShellSandboxConfig,
349
- workingDirectory?: string
351
+ workingDirectory: string
350
352
  ): string[] {
351
353
  const binds: string[] = [];
352
354
 
353
355
  // Mount the project directory (or working directory) as read-only at /workspace
354
- const projectDir = workingDirectory || process.cwd();
356
+ const projectDir = resolveWorkspacePath(workingDirectory, 'ShellSandbox project mount');
355
357
  binds.push(`${projectDir}:/workspace:ro`);
356
358
 
357
359
  // Mount writable paths — each gets mounted at the same path inside the container
358
360
  for (const writablePath of config.writablePaths) {
359
- binds.push(`${writablePath}:${writablePath}:rw`);
361
+ const hostPath = resolveWorkspacePath(writablePath, 'ShellSandbox writable mount');
362
+ binds.push(`${hostPath}:${hostPath}:rw`);
360
363
  }
361
364
 
362
365
  // Mount custom mount configurations
363
366
  for (const mount of config.mountPaths) {
364
367
  const mode = mount.readOnly ? 'ro' : 'rw';
365
- binds.push(`${mount.host}:${mount.container}:${mode}`);
368
+ const hostPath = resolveWorkspacePath(mount.host, 'ShellSandbox custom mount');
369
+ binds.push(`${hostPath}:${mount.container}:${mode}`);
366
370
  }
367
371
 
368
372
  return binds;
369
373
  }
370
374
 
371
- /**
372
- * Map a host filesystem path to its corresponding container path.
373
- * The project root (process.cwd()) is mounted at /workspace, so subdirectories
374
- * are resolved as relative paths under /workspace.
375
- *
376
- * @param hostPath - The host filesystem path
377
- * @returns The corresponding path inside the container
378
- */
379
- function mapHostPathToContainer(hostPath: string): string {
380
- const projectRoot = process.cwd();
381
- const resolved = path.resolve(hostPath);
382
-
383
- // If the host path is within the project root, compute relative path
384
- if (resolved.startsWith(projectRoot)) {
385
- const relative = resolved.substring(projectRoot.length);
386
- return `/workspace${relative}`;
387
- }
388
-
389
- // Path is outside the project root — default to /workspace
390
- return '/workspace';
391
- }
392
-
393
375
  /**
394
376
  * Collect stdout and stderr from a Docker container after it finishes.
395
377
  * Waits for the container to exit, then reads logs.
@@ -65,24 +65,26 @@ export interface IKnowledgeGraphRepository {
65
65
  * @param entityId - The entity ID
66
66
  * @returns The entity or null if not found
67
67
  */
68
- getEntity(entityId: string): Promise<Entity | null>;
68
+ getEntity(entityId: string, channelId?: ChannelId): Promise<Entity | null>;
69
69
 
70
70
  /**
71
- * Update an entity
71
+ * Update an entity inside its channel
72
72
  *
73
73
  * @param entityId - The entity ID
74
+ * @param channelId - Channel the entity must belong to
74
75
  * @param updates - Partial entity updates
75
- * @returns The updated entity or null if not found
76
+ * @returns The updated entity, or null if no such entity exists in the channel
76
77
  */
77
- updateEntity(entityId: string, updates: Partial<Entity>): Promise<Entity | null>;
78
+ updateEntity(entityId: string, channelId: ChannelId, updates: Partial<Entity>): Promise<Entity | null>;
78
79
 
79
80
  /**
80
- * Delete an entity
81
+ * Delete an entity and its relationships inside its channel
81
82
  *
82
83
  * @param entityId - The entity ID
84
+ * @param channelId - Channel the entity must belong to
83
85
  * @returns true if deleted
84
86
  */
85
- deleteEntity(entityId: string): Promise<boolean>;
87
+ deleteEntity(entityId: string, channelId: ChannelId): Promise<boolean>;
86
88
 
87
89
  /**
88
90
  * Find entities matching filters
@@ -138,7 +140,8 @@ export interface IKnowledgeGraphRepository {
138
140
  */
139
141
  mergeEntities(
140
142
  targetEntityId: string,
141
- sourceEntityIds: string[]
143
+ sourceEntityIds: string[],
144
+ channelId?: ChannelId
142
145
  ): Promise<EntityMergeResult>;
143
146
 
144
147
  /**
@@ -174,24 +177,27 @@ export interface IKnowledgeGraphRepository {
174
177
  getRelationship(relationshipId: string): Promise<Relationship | null>;
175
178
 
176
179
  /**
177
- * Update a relationship
180
+ * Update a relationship inside its channel
178
181
  *
179
182
  * @param relationshipId - The relationship ID
183
+ * @param channelId - Channel the relationship must belong to
180
184
  * @param updates - Partial relationship updates
181
- * @returns The updated relationship or null if not found
185
+ * @returns The updated relationship, or null if no such relationship exists in the channel
182
186
  */
183
187
  updateRelationship(
184
188
  relationshipId: string,
189
+ channelId: ChannelId,
185
190
  updates: Partial<Relationship>
186
191
  ): Promise<Relationship | null>;
187
192
 
188
193
  /**
189
- * Delete a relationship
194
+ * Delete a relationship inside its channel
190
195
  *
191
196
  * @param relationshipId - The relationship ID
197
+ * @param channelId - Channel the relationship must belong to
192
198
  * @returns true if deleted
193
199
  */
194
- deleteRelationship(relationshipId: string): Promise<boolean>;
200
+ deleteRelationship(relationshipId: string, channelId: ChannelId): Promise<boolean>;
195
201
 
196
202
  /**
197
203
  * Get relationships between two entities
@@ -238,7 +244,8 @@ export interface IKnowledgeGraphRepository {
238
244
  entityType?: EntityType | EntityType[];
239
245
  maxDepth?: number;
240
246
  limit?: number;
241
- }
247
+ },
248
+ channelId?: ChannelId
242
249
  ): Promise<{
243
250
  entities: Entity[];
244
251
  relationships: Relationship[];
@@ -255,7 +262,8 @@ export interface IKnowledgeGraphRepository {
255
262
  findPath(
256
263
  fromEntityId: string,
257
264
  toEntityId: string,
258
- maxHops?: number
265
+ maxHops?: number,
266
+ channelId?: ChannelId
259
267
  ): Promise<GraphPath | null>;
260
268
 
261
269
  /**
@@ -271,7 +279,8 @@ export interface IKnowledgeGraphRepository {
271
279
  fromEntityId: string,
272
280
  toEntityId: string,
273
281
  maxHops?: number,
274
- limit?: number
282
+ limit?: number,
283
+ channelId?: ChannelId
275
284
  ): Promise<GraphPath[]>;
276
285
 
277
286
  /**
@@ -294,7 +303,8 @@ export interface IKnowledgeGraphRepository {
294
303
  getSubgraph(
295
304
  entityId: string,
296
305
  depth?: number,
297
- limit?: number
306
+ limit?: number,
307
+ channelId?: ChannelId
298
308
  ): Promise<{
299
309
  entities: Entity[];
300
310
  relationships: Relationship[];
@@ -333,25 +343,29 @@ export interface IKnowledgeGraphRepository {
333
343
  // ========================================================================
334
344
 
335
345
  /**
336
- * Update entity Q-value
346
+ * Update entity Q-value inside its channel
337
347
  *
338
348
  * @param entityId - The entity ID
349
+ * @param channelId - Channel the entity must belong to
339
350
  * @param newQValue - The new Q-value
340
351
  * @param reason - Reason for update
341
- * @returns Updated entity
352
+ * @returns Updated entity, or null if no such entity exists in the channel
342
353
  */
343
354
  updateEntityQValue(
344
355
  entityId: string,
356
+ channelId: ChannelId,
345
357
  newQValue: number,
346
358
  reason: string
347
359
  ): Promise<Entity | null>;
348
360
 
349
361
  /**
350
- * Batch update Q-values
362
+ * Batch update Q-values for entities of one channel
351
363
  *
364
+ * @param channelId - Channel every entity must belong to
352
365
  * @param updates - Array of updates
353
366
  */
354
367
  batchUpdateQValues(
368
+ channelId: ChannelId,
355
369
  updates: Array<{
356
370
  entityId: string;
357
371
  qValue: number;
@@ -376,39 +390,43 @@ export interface IKnowledgeGraphRepository {
376
390
  ): Promise<Entity[]>;
377
391
 
378
392
  /**
379
- * Increment retrieval count for entities
393
+ * Increment retrieval count for entities of one channel
380
394
  *
395
+ * @param channelId - Channel every entity must belong to
381
396
  * @param entityIds - Entity IDs to update
382
397
  */
383
- incrementRetrievalCount(entityIds: string[]): Promise<void>;
398
+ incrementRetrievalCount(channelId: ChannelId, entityIds: string[]): Promise<void>;
384
399
 
385
400
  /**
386
- * Record success/failure for entities (for Q-value learning)
401
+ * Record success/failure for entities of one channel (for Q-value learning)
387
402
  *
403
+ * @param channelId - Channel every entity must belong to
388
404
  * @param entityIds - Entity IDs
389
405
  * @param success - Whether outcome was successful
390
406
  */
391
- recordOutcome(entityIds: string[], success: boolean): Promise<void>;
407
+ recordOutcome(channelId: ChannelId, entityIds: string[], success: boolean): Promise<void>;
392
408
 
393
409
  // ========================================================================
394
410
  // Batch Operations
395
411
  // ========================================================================
396
412
 
397
413
  /**
398
- * Get multiple entities by their IDs in a single query
414
+ * Get multiple entities of one channel by their IDs in a single query
399
415
  *
416
+ * @param channelId - Channel every entity must belong to
400
417
  * @param entityIds - Array of entity IDs to fetch
401
- * @returns Array of found entities (excludes missing IDs)
418
+ * @returns Array of found entities (excludes missing and foreign IDs)
402
419
  */
403
- getEntitiesByIds(entityIds: string[]): Promise<Entity[]>;
420
+ getEntitiesByIds(channelId: ChannelId, entityIds: string[]): Promise<Entity[]>;
404
421
 
405
422
  /**
406
- * Get all relationships where either endpoint is in the given entity IDs
423
+ * Get all relationships of one channel where either endpoint is in the given entity IDs
407
424
  *
425
+ * @param channelId - Channel every relationship must belong to
408
426
  * @param entityIds - Array of entity IDs to find relationships for
409
427
  * @returns Array of relationships involving the given entities
410
428
  */
411
- getRelationshipsByEntityIds(entityIds: string[]): Promise<Relationship[]>;
429
+ getRelationshipsByEntityIds(channelId: ChannelId, entityIds: string[]): Promise<Relationship[]>;
412
430
 
413
431
  // ========================================================================
414
432
  // Context Operations
@@ -84,6 +84,8 @@ import {
84
84
  PostCompactionRestoredPayload,
85
85
  CompactionSummaryGeneratedPayload,
86
86
  } from '../events/event-definitions/CompactionEvents.js';
87
+ import { TaskEvents } from '../events/event-definitions/TaskEvents.js';
88
+ import type { SdkReconnectedEventData } from '../events/event-definitions/SdkEvents.js';
87
89
 
88
90
  // Create logger instance for event payload schema
89
91
  const logger = new Logger('warn', 'EventPayloadSchema', 'server');
@@ -327,8 +329,12 @@ export type SubscriptionEventPayload = BaseEventPayload<SubscriptionEventData>;
327
329
  */
328
330
  export interface TaskEventData {
329
331
  taskId: string;
332
+ /** Correlates an asynchronous request with its authoritative server result. */
333
+ requestId?: string;
330
334
  fromAgentId?: AgentId; // Agent initiating the task (could be different from BaseEventPayload.agentId if event is relayed)
331
335
  toAgentId?: AgentId; // Agent designated to perform the task
336
+ targetAgentId?: AgentId;
337
+ targetChannelId?: ChannelId;
332
338
  task: any; // The task content/details — typing this union is the head of the SDK-API typing pass (15 sender contract drifts to reconcile)
333
339
  }
334
340
  export type TaskEventPayload = BaseEventPayload<TaskEventData>;
@@ -722,6 +728,39 @@ export function createAgentEventPayload(
722
728
  return createBaseEventPayload<AgentEventData>(eventType, agentId, channelId, agentData, options);
723
729
  }
724
730
 
731
+ /**
732
+ * Channel id carried by SDK connection events. The SDK's user connection is
733
+ * not bound to a channel; payload validation still requires a non-empty id.
734
+ */
735
+ export const SDK_CONNECTION_CHANNEL_ID: ChannelId = 'system';
736
+
737
+ /**
738
+ * Creates the payload for SdkEvents.RECONNECTED.
739
+ *
740
+ * The SDK's user connection has no agent; the authenticated user id stands in
741
+ * the agentId slot, as the SDK's other user-level payloads do.
742
+ *
743
+ * @param eventType - SdkEvents.RECONNECTED.
744
+ * @param userId - Server-confirmed user id of the re-authenticated connection.
745
+ * @param data - Reconnect details.
746
+ * @param options - Optional base event payload options.
747
+ */
748
+ export function createSdkReconnectedEventPayload(
749
+ eventType: EventName | string,
750
+ userId: string,
751
+ data: SdkReconnectedEventData,
752
+ options: { source?: string; eventId?: string; timestamp?: number; } = {}
753
+ ): BaseEventPayload<SdkReconnectedEventData> {
754
+ const validator = createStrictValidator('createSdkReconnectedEventPayload');
755
+ validator.assertIsNonEmptyString(data.userId, 'data.userId');
756
+ if (data.attempt !== null && (!Number.isInteger(data.attempt) || data.attempt < 0)) {
757
+ throw new Error('data.attempt must be a non-negative integer or null');
758
+ }
759
+ return createBaseEventPayload<SdkReconnectedEventData>(
760
+ eventType, userId, SDK_CONNECTION_CHANNEL_ID, data, options
761
+ );
762
+ }
763
+
725
764
  /**
726
765
  * Creates an AllowedToolsUpdateEventPayload.
727
766
  * Used when dynamically changing an agent's allowed tools during runtime.
@@ -938,7 +977,10 @@ export function createTaskEventPayload<TData extends TaskEventData>(
938
977
  // Task content is either a plain instruction string (simple request flow)
939
978
  // or a creation-fields object — validate per shape.
940
979
  const task = taskData.task;
941
- if (typeof task === 'string') {
980
+ if (eventType === TaskEvents.UPDATE_REQUEST) {
981
+ validator.assertIsObject(task, 'Task update content must be an object');
982
+ validator.assertIsNonEmptyString(task.taskId, 'Task update taskId is required');
983
+ } else if (typeof task === 'string') {
942
984
  validator.assertIsNonEmptyString(task, 'Task instruction must be a non-empty string');
943
985
  } else {
944
986
  validator.assertIsObject(task, 'Task content must be an object');
@@ -3105,6 +3147,7 @@ export interface MeilisearchIndexEventData {
3105
3147
  success: boolean; // Whether indexing succeeded
3106
3148
  duration?: number; // Time taken to index in milliseconds
3107
3149
  error?: string; // Error message if indexing failed
3150
+ retryAfterMs?: number; // Set when the server throttled the request: retry after this delay
3108
3151
  metadata?: { // Additional context
3109
3152
  messageCount?: number; // For batch operations
3110
3153
  agentId?: string;
@@ -3148,6 +3191,7 @@ export interface MeilisearchBackfillEventData {
3148
3191
  success: boolean; // Whether backfill completed successfully
3149
3192
  source: 'mongodb' | 'memory' | 'other'; // Source of backfilled data
3150
3193
  error?: string; // Error message if backfill failed
3194
+ retryAfterMs?: number; // Set when the server throttled the request: retry after this delay
3151
3195
  metadata?: { // Additional context
3152
3196
  agentId?: string;
3153
3197
  channelId?: string;