@mxf-dev/core 2.0.5 → 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 +25 -0
  158. package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
  159. package/dist/protocols/mcp/services/ExternalMcpServerManager.js +93 -17
  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 +146 -17
  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
@@ -50,6 +50,7 @@ export class AutoCorrectionService {
50
50
  config;
51
51
  // Correction strategies
52
52
  strategies = new Map();
53
+ eventSubscriptions = [];
53
54
  // Separate instances for client and server contexts
54
55
  static serverInstance;
55
56
  static clientInstance;
@@ -741,13 +742,13 @@ export class AutoCorrectionService {
741
742
  */
742
743
  setupEventListeners() {
743
744
  // Listen for tool execution errors
744
- EventBus.server.on(Events.Mcp.TOOL_ERROR, async (payload) => {
745
+ this.eventSubscriptions.push(EventBus.server.on(Events.Mcp.TOOL_ERROR, async (payload) => {
745
746
  if (!this.config.enabled)
746
747
  return;
747
748
  const { agentId, channelId, toolName, error, parameters } = payload;
748
749
  // Auto-correction will be triggered by the ToolExecutionInterceptor
749
750
  // This listener is for monitoring and analytics
750
- });
751
+ }));
751
752
  }
752
753
  /**
753
754
  * Get default configuration
@@ -826,5 +827,21 @@ export class AutoCorrectionService {
826
827
  this.retryTimers.forEach(timer => clearTimeout(timer));
827
828
  this.retryTimers.clear();
828
829
  }
830
+ /** Cancel pending retries and detach this context from its event sources. */
831
+ shutdown() {
832
+ this.clearCorrectionHistory();
833
+ for (const subscription of this.eventSubscriptions) {
834
+ subscription.unsubscribe();
835
+ }
836
+ this.eventSubscriptions.length = 0;
837
+ this.strategies.clear();
838
+ this.correctionEvents$.complete();
839
+ if (AutoCorrectionService.serverInstance === this) {
840
+ AutoCorrectionService.serverInstance = undefined;
841
+ }
842
+ if (AutoCorrectionService.clientInstance === this) {
843
+ AutoCorrectionService.clientInstance = undefined;
844
+ }
845
+ }
829
846
  }
830
847
  //# sourceMappingURL=AutoCorrectionService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCorrectionService.js","sourceRoot":"","sources":["../../src/services/AutoCorrectionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoCorrectionService.js","sourceRoot":"","sources":["../../src/services/AutoCorrectionService.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,11 @@ export interface BackgroundTaskInfo {
73
73
  /** Channel context */
74
74
  channelId: ChannelId;
75
75
  }
76
+ /** Authenticated principal allowed to inspect or mutate a background task. */
77
+ export interface BackgroundTaskPrincipal {
78
+ agentId: AgentId;
79
+ channelId: ChannelId;
80
+ }
76
81
  export declare class BackgroundTaskManager {
77
82
  private static instance;
78
83
  /** Map of taskId -> internal task state */
@@ -86,9 +91,13 @@ export declare class BackgroundTaskManager {
86
91
  private cleanupIntervalMs;
87
92
  /** Handle for the periodic cleanup timer */
88
93
  private cleanupTimer?;
94
+ private shutdownPromise;
95
+ private isShuttingDown;
89
96
  private constructor();
90
97
  /** Get the singleton instance of BackgroundTaskManager */
91
98
  static getInstance(): BackgroundTaskManager;
99
+ /** Stop the live singleton without constructing one solely for teardown. */
100
+ static shutdownExisting(): Promise<boolean>;
92
101
  /**
93
102
  * Start a command in the background. Returns immediately with a taskId that
94
103
  * can be used to query status, retrieve output, or cancel the task.
@@ -117,7 +126,7 @@ export declare class BackgroundTaskManager {
117
126
  * @param taskId - The task identifier returned by startBackground()
118
127
  * @returns BackgroundTaskInfo with current status and output preview, or null if not found
119
128
  */
120
- getTaskStatus(taskId: string): BackgroundTaskInfo | null;
129
+ getTaskStatus(taskId: string, principal: BackgroundTaskPrincipal): BackgroundTaskInfo | null;
121
130
  /**
122
131
  * Get the full accumulated output for a task. Note that output is limited
123
132
  * to the last ~512KB due to ring-buffer trimming.
@@ -125,7 +134,7 @@ export declare class BackgroundTaskManager {
125
134
  * @param taskId - The task identifier returned by startBackground()
126
135
  * @returns The accumulated stdout output, or null if the task is not found
127
136
  */
128
- getTaskOutput(taskId: string): string | null;
137
+ getTaskOutput(taskId: string, principal: BackgroundTaskPrincipal): string | null;
129
138
  /**
130
139
  * Cancel a running background task. Sends SIGTERM first and escalates
131
140
  * to SIGKILL after 5 seconds if the process hasn't exited.
@@ -133,19 +142,26 @@ export declare class BackgroundTaskManager {
133
142
  * @param taskId - The task identifier returned by startBackground()
134
143
  * @returns true if the task was found and cancellation was initiated, false otherwise
135
144
  */
136
- cancelTask(taskId: string): boolean;
145
+ cancelTask(taskId: string, principal: BackgroundTaskPrincipal): boolean;
137
146
  /**
138
- * List all background tasks, optionally filtered by agent.
147
+ * List background tasks owned by the exact authenticated agent/channel pair.
139
148
  *
140
- * @param agentId - If provided, only tasks belonging to this agent are returned
149
+ * @param principal - Authenticated agent and channel identity
141
150
  * @returns Array of BackgroundTaskInfo for matching tasks
142
151
  */
143
- listTasks(agentId?: AgentId): BackgroundTaskInfo[];
152
+ listTasks(principal: BackgroundTaskPrincipal): BackgroundTaskInfo[];
144
153
  /**
145
154
  * Shutdown the manager: cancel all running tasks, clear timers, and release resources.
146
155
  * Called during server shutdown to ensure clean process cleanup.
147
156
  */
148
- shutdown(): void;
157
+ shutdown(): Promise<void>;
158
+ private performShutdown;
159
+ private scheduleForceKill;
160
+ /**
161
+ * Resolve a task only when it belongs to the authenticated principal. Returning
162
+ * null for both missing and foreign task IDs avoids leaking task existence.
163
+ */
164
+ private getOwnedTask;
149
165
  /**
150
166
  * Append output to a task's buffer with ring-buffer semantics.
151
167
  * When the buffer exceeds maxOutputBufferSize, the front is trimmed.
@@ -1 +1 @@
1
- {"version":3,"file":"BackgroundTaskManager.d.ts","sourceRoot":"","sources":["../../src/services/BackgroundTaskManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackgroundTaskManager.d.ts","sourceRoot":"","sources":["../../src/services/BackgroundTaskManager.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ import * as crypto from 'crypto';
36
36
  import { Logger } from '../utils/Logger.js';
37
37
  import { Events } from '../events/EventNames.js';
38
38
  import { EventBus } from '../events/EventBus.js';
39
- import { buildShellChildEnv } from '../protocols/mcp/security/McpToolPolicy.js';
39
+ import { buildShellChildEnv, resolveWorkspacePath } from '../protocols/mcp/security/McpToolPolicy.js';
40
40
  import { createShellExecutionProgressPayload, createShellBackgroundStartedPayload, createShellBackgroundCompletedPayload } from '../schemas/ShellExecutionEventPayloads.js';
41
41
  // ---- BackgroundTaskManager ----
42
42
  export class BackgroundTaskManager {
@@ -52,6 +52,8 @@ export class BackgroundTaskManager {
52
52
  cleanupIntervalMs = 60 * 60 * 1000; // 1 hour
53
53
  /** Handle for the periodic cleanup timer */
54
54
  cleanupTimer;
55
+ shutdownPromise;
56
+ isShuttingDown = false;
55
57
  constructor() {
56
58
  // Start periodic cleanup of completed tasks older than cleanupIntervalMs
57
59
  this.cleanupTimer = setInterval(() => this.cleanupCompletedTasks(), this.cleanupIntervalMs);
@@ -67,6 +69,15 @@ export class BackgroundTaskManager {
67
69
  }
68
70
  return BackgroundTaskManager.instance;
69
71
  }
72
+ /** Stop the live singleton without constructing one solely for teardown. */
73
+ static async shutdownExisting() {
74
+ const instance = BackgroundTaskManager.instance;
75
+ if (!instance) {
76
+ return false;
77
+ }
78
+ await instance.shutdown();
79
+ return true;
80
+ }
70
81
  /**
71
82
  * Start a command in the background. Returns immediately with a taskId that
72
83
  * can be used to query status, retrieve output, or cancel the task.
@@ -78,6 +89,9 @@ export class BackgroundTaskManager {
78
89
  * @throws Error if the maximum concurrent task limit is reached
79
90
  */
80
91
  async startBackground(command, options, context) {
92
+ if (this.isShuttingDown) {
93
+ throw new Error('BackgroundTaskManager is shutting down');
94
+ }
81
95
  // Validate concurrent task limit
82
96
  const runningCount = this.getRunningTaskCount();
83
97
  if (runningCount >= this.maxConcurrentTasks) {
@@ -93,11 +107,15 @@ export class BackgroundTaskManager {
93
107
  // get the same stripped environment the guarded shell path builds.
94
108
  const spawnOptions = {
95
109
  shell: true,
96
- cwd: options.workingDirectory || process.cwd(),
110
+ cwd: resolveWorkspacePath(options.workingDirectory, 'BackgroundTaskManager.startBackground'),
97
111
  env: buildShellChildEnv(options.environment),
98
112
  };
99
113
  const childProcess = spawn(command, [], spawnOptions);
100
114
  // Create the internal task entry
115
+ let resolveCompletion;
116
+ const completion = new Promise(resolve => {
117
+ resolveCompletion = resolve;
118
+ });
101
119
  const task = {
102
120
  taskId,
103
121
  command,
@@ -112,6 +130,9 @@ export class BackgroundTaskManager {
112
130
  process: childProcess,
113
131
  totalOutputBytes: 0,
114
132
  lastProgressEmit: 0,
133
+ completion,
134
+ resolveCompletion,
135
+ terminalFinalized: false,
115
136
  };
116
137
  this.tasks.set(taskId, task);
117
138
  this.logger.info(`Background task started: ${taskId} — command: "${command}"`);
@@ -139,6 +160,10 @@ export class BackgroundTaskManager {
139
160
  }
140
161
  // Handle process exit
141
162
  childProcess.on('close', (code) => {
163
+ if (task.terminalFinalized) {
164
+ return;
165
+ }
166
+ task.terminalFinalized = true;
142
167
  const exitCode = code ?? 1;
143
168
  task.exitCode = exitCode;
144
169
  task.endTime = Date.now();
@@ -152,23 +177,37 @@ export class BackgroundTaskManager {
152
177
  clearTimeout(task.timeoutTimer);
153
178
  task.timeoutTimer = undefined;
154
179
  }
180
+ if (task.forceKillTimer) {
181
+ clearTimeout(task.forceKillTimer);
182
+ task.forceKillTimer = undefined;
183
+ }
155
184
  const elapsedSeconds = (task.endTime - task.startTime) / 1000;
156
185
  this.logger.info(`Background task ${task.status}: ${taskId} — ` +
157
186
  `exit code: ${exitCode}, elapsed: ${elapsedSeconds.toFixed(1)}s`);
158
187
  // Emit SHELL_BACKGROUND_COMPLETED event
159
- EventBus.server.emit(Events.Shell.SHELL_BACKGROUND_COMPLETED, createShellBackgroundCompletedPayload(task.agentId, task.channelId, {
160
- requestId: task.requestId,
161
- taskId,
162
- command: task.command,
163
- exitCode,
164
- isError: exitCode !== 0,
165
- executionTime: (task.endTime - task.startTime),
166
- outputSize: task.totalOutputBytes
167
- }));
188
+ try {
189
+ EventBus.server.emit(Events.Shell.SHELL_BACKGROUND_COMPLETED, createShellBackgroundCompletedPayload(task.agentId, task.channelId, {
190
+ requestId: task.requestId,
191
+ taskId,
192
+ command: task.command,
193
+ exitCode,
194
+ isError: exitCode !== 0,
195
+ executionTime: (task.endTime - task.startTime),
196
+ outputSize: task.totalOutputBytes
197
+ }));
198
+ }
199
+ finally {
200
+ task.resolveCompletion();
201
+ }
168
202
  });
169
203
  // Handle spawn errors (e.g., command not found)
170
204
  childProcess.on('error', (error) => {
205
+ if (task.terminalFinalized) {
206
+ return;
207
+ }
208
+ task.terminalFinalized = true;
171
209
  task.status = 'failed';
210
+ task.exitCode = 1;
172
211
  task.endTime = Date.now();
173
212
  task.process = undefined;
174
213
  // Clear timeout timer if set
@@ -176,18 +215,26 @@ export class BackgroundTaskManager {
176
215
  clearTimeout(task.timeoutTimer);
177
216
  task.timeoutTimer = undefined;
178
217
  }
218
+ if (task.forceKillTimer) {
219
+ clearTimeout(task.forceKillTimer);
220
+ task.forceKillTimer = undefined;
221
+ }
179
222
  this.logger.error(`Background task error: ${taskId} — ${error.message}`);
180
- const elapsedSeconds = (task.endTime - task.startTime) / 1000;
181
223
  // Emit SHELL_BACKGROUND_COMPLETED with failed status
182
- EventBus.server.emit(Events.Shell.SHELL_BACKGROUND_COMPLETED, createShellBackgroundCompletedPayload(task.agentId, task.channelId, {
183
- requestId: task.requestId,
184
- taskId,
185
- command: task.command,
186
- exitCode: 1,
187
- isError: true,
188
- executionTime: (task.endTime - task.startTime),
189
- outputSize: task.totalOutputBytes
190
- }));
224
+ try {
225
+ EventBus.server.emit(Events.Shell.SHELL_BACKGROUND_COMPLETED, createShellBackgroundCompletedPayload(task.agentId, task.channelId, {
226
+ requestId: task.requestId,
227
+ taskId,
228
+ command: task.command,
229
+ exitCode: 1,
230
+ isError: true,
231
+ executionTime: (task.endTime - task.startTime),
232
+ outputSize: task.totalOutputBytes
233
+ }));
234
+ }
235
+ finally {
236
+ task.resolveCompletion();
237
+ }
191
238
  });
192
239
  // Set up timeout if specified
193
240
  if (options.timeout && options.timeout > 0) {
@@ -195,14 +242,10 @@ export class BackgroundTaskManager {
195
242
  if (task.status === 'running' && task.process) {
196
243
  this.logger.warn(`Background task timed out after ${options.timeout}s: ${taskId}`);
197
244
  task.process.kill('SIGTERM');
198
- // Force kill after 5 seconds if SIGTERM didn't work
199
- setTimeout(() => {
200
- if (task.status === 'running' && task.process) {
201
- task.process.kill('SIGKILL');
202
- }
203
- }, 5000);
245
+ this.scheduleForceKill(task, taskId);
204
246
  }
205
247
  }, options.timeout * 1000);
248
+ task.timeoutTimer.unref?.();
206
249
  }
207
250
  return { taskId };
208
251
  }
@@ -212,8 +255,8 @@ export class BackgroundTaskManager {
212
255
  * @param taskId - The task identifier returned by startBackground()
213
256
  * @returns BackgroundTaskInfo with current status and output preview, or null if not found
214
257
  */
215
- getTaskStatus(taskId) {
216
- const task = this.tasks.get(taskId);
258
+ getTaskStatus(taskId, principal) {
259
+ const task = this.getOwnedTask(taskId, principal);
217
260
  if (!task) {
218
261
  return null;
219
262
  }
@@ -226,8 +269,8 @@ export class BackgroundTaskManager {
226
269
  * @param taskId - The task identifier returned by startBackground()
227
270
  * @returns The accumulated stdout output, or null if the task is not found
228
271
  */
229
- getTaskOutput(taskId) {
230
- const task = this.tasks.get(taskId);
272
+ getTaskOutput(taskId, principal) {
273
+ const task = this.getOwnedTask(taskId, principal);
231
274
  if (!task) {
232
275
  return null;
233
276
  }
@@ -240,8 +283,8 @@ export class BackgroundTaskManager {
240
283
  * @param taskId - The task identifier returned by startBackground()
241
284
  * @returns true if the task was found and cancellation was initiated, false otherwise
242
285
  */
243
- cancelTask(taskId) {
244
- const task = this.tasks.get(taskId);
286
+ cancelTask(taskId, principal) {
287
+ const task = this.getOwnedTask(taskId, principal);
245
288
  if (!task) {
246
289
  this.logger.warn(`Cannot cancel task: ${taskId} — task not found`);
247
290
  return false;
@@ -265,29 +308,19 @@ export class BackgroundTaskManager {
265
308
  // Send SIGTERM for graceful shutdown
266
309
  task.process.kill('SIGTERM');
267
310
  // Escalate to SIGKILL after 5 seconds if still alive
268
- const killTimer = setTimeout(() => {
269
- if (task.process) {
270
- this.logger.warn(`Force-killing background task: ${taskId} (SIGKILL)`);
271
- task.process.kill('SIGKILL');
272
- }
273
- }, 5000);
274
- // Clean up the kill timer when the process actually exits
275
- const originalClose = task.process;
276
- originalClose.on('close', () => {
277
- clearTimeout(killTimer);
278
- });
311
+ this.scheduleForceKill(task, taskId);
279
312
  return true;
280
313
  }
281
314
  /**
282
- * List all background tasks, optionally filtered by agent.
315
+ * List background tasks owned by the exact authenticated agent/channel pair.
283
316
  *
284
- * @param agentId - If provided, only tasks belonging to this agent are returned
317
+ * @param principal - Authenticated agent and channel identity
285
318
  * @returns Array of BackgroundTaskInfo for matching tasks
286
319
  */
287
- listTasks(agentId) {
320
+ listTasks(principal) {
288
321
  const results = [];
289
322
  for (const task of this.tasks.values()) {
290
- if (agentId && task.agentId !== agentId) {
323
+ if (task.agentId !== principal.agentId || task.channelId !== principal.channelId) {
291
324
  continue;
292
325
  }
293
326
  results.push(this.toTaskInfo(task));
@@ -299,29 +332,76 @@ export class BackgroundTaskManager {
299
332
  * Called during server shutdown to ensure clean process cleanup.
300
333
  */
301
334
  shutdown() {
335
+ if (!this.shutdownPromise) {
336
+ this.isShuttingDown = true;
337
+ this.shutdownPromise = this.performShutdown().finally(() => {
338
+ if (BackgroundTaskManager.instance === this) {
339
+ BackgroundTaskManager.instance = undefined;
340
+ }
341
+ });
342
+ }
343
+ return this.shutdownPromise;
344
+ }
345
+ async performShutdown() {
302
346
  this.logger.info('Shutting down BackgroundTaskManager...');
303
347
  // Clear the periodic cleanup timer
304
348
  if (this.cleanupTimer) {
305
349
  clearInterval(this.cleanupTimer);
306
350
  this.cleanupTimer = undefined;
307
351
  }
308
- // Cancel all running tasks
352
+ const completions = [];
353
+ // Terminate every live child and retain ownership until its terminal
354
+ // callback has emitted the final lifecycle event. A task can already be
355
+ // marked cancelled while its process is still exiting, so process
356
+ // ownership — not status — defines what shutdown must drain.
309
357
  for (const task of this.tasks.values()) {
310
- if (task.status === 'running' && task.process) {
311
- // Clear any timeout timers
312
- if (task.timeoutTimer) {
313
- clearTimeout(task.timeoutTimer);
314
- task.timeoutTimer = undefined;
358
+ if (task.timeoutTimer) {
359
+ clearTimeout(task.timeoutTimer);
360
+ task.timeoutTimer = undefined;
361
+ }
362
+ if (task.forceKillTimer) {
363
+ clearTimeout(task.forceKillTimer);
364
+ task.forceKillTimer = undefined;
365
+ }
366
+ if (!task.terminalFinalized && task.process) {
367
+ if (task.status === 'running') {
368
+ task.status = 'cancelled';
315
369
  }
316
- task.status = 'cancelled';
317
- task.endTime = Date.now();
370
+ task.endTime ??= Date.now();
371
+ completions.push(task.completion);
318
372
  task.process.kill('SIGKILL');
319
- task.process = undefined;
320
373
  }
321
374
  }
375
+ await Promise.all(completions);
322
376
  this.logger.info('BackgroundTaskManager shut down successfully');
323
377
  }
378
+ scheduleForceKill(task, taskId) {
379
+ if (task.forceKillTimer) {
380
+ clearTimeout(task.forceKillTimer);
381
+ }
382
+ task.forceKillTimer = setTimeout(() => {
383
+ task.forceKillTimer = undefined;
384
+ if (task.process) {
385
+ this.logger.warn(`Force-killing background task: ${taskId} (SIGKILL)`);
386
+ task.process.kill('SIGKILL');
387
+ }
388
+ }, 5000);
389
+ task.forceKillTimer.unref?.();
390
+ }
324
391
  // ---- Private helpers ----
392
+ /**
393
+ * Resolve a task only when it belongs to the authenticated principal. Returning
394
+ * null for both missing and foreign task IDs avoids leaking task existence.
395
+ */
396
+ getOwnedTask(taskId, principal) {
397
+ const task = this.tasks.get(taskId);
398
+ if (!task ||
399
+ task.agentId !== principal.agentId ||
400
+ task.channelId !== principal.channelId) {
401
+ return null;
402
+ }
403
+ return task;
404
+ }
325
405
  /**
326
406
  * Append output to a task's buffer with ring-buffer semantics.
327
407
  * When the buffer exceeds maxOutputBufferSize, the front is trimmed.