@mxf-dev/core 1.0.1 → 2.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 (298) hide show
  1. package/README.md +18 -0
  2. package/dist/adapters/FrameworkAdapter.js +1 -1
  3. package/dist/adapters/FrameworkAdapter.js.map +1 -1
  4. package/dist/config/ConfigManager.d.ts +9 -8
  5. package/dist/config/ConfigManager.d.ts.map +1 -1
  6. package/dist/config/ConfigManager.js +47 -17
  7. package/dist/config/ConfigManager.js.map +1 -1
  8. package/dist/config/memory-strata.config.d.ts +25 -0
  9. package/dist/config/memory-strata.config.d.ts.map +1 -0
  10. package/dist/config/memory-strata.config.js +107 -0
  11. package/dist/config/memory-strata.config.js.map +1 -0
  12. package/dist/constants/ToolNames.d.ts +1 -29
  13. package/dist/constants/ToolNames.d.ts.map +1 -1
  14. package/dist/constants/ToolNames.js +4 -17
  15. package/dist/constants/ToolNames.js.map +1 -1
  16. package/dist/database/DatabaseAdapterFactory.d.ts +14 -2
  17. package/dist/database/DatabaseAdapterFactory.d.ts.map +1 -1
  18. package/dist/database/DatabaseAdapterFactory.js +21 -6
  19. package/dist/database/DatabaseAdapterFactory.js.map +1 -1
  20. package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts +7 -1
  21. package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts.map +1 -1
  22. package/dist/database/adapters/mongodb/MongoBaseRepository.js +12 -2
  23. package/dist/database/adapters/mongodb/MongoBaseRepository.js.map +1 -1
  24. package/dist/events/ClientEventBus.d.ts +16 -77
  25. package/dist/events/ClientEventBus.d.ts.map +1 -1
  26. package/dist/events/ClientEventBus.js +38 -311
  27. package/dist/events/ClientEventBus.js.map +1 -1
  28. package/dist/events/EventBus.d.ts +1 -1
  29. package/dist/events/EventBus.d.ts.map +1 -1
  30. package/dist/events/EventBus.js +5 -4
  31. package/dist/events/EventBus.js.map +1 -1
  32. package/dist/events/EventBusBase.d.ts +139 -34
  33. package/dist/events/EventBusBase.d.ts.map +1 -1
  34. package/dist/events/EventBusBase.js +366 -88
  35. package/dist/events/EventBusBase.js.map +1 -1
  36. package/dist/events/EventNames.d.ts +10 -1
  37. package/dist/events/EventNames.d.ts.map +1 -1
  38. package/dist/events/EventNames.js +3 -0
  39. package/dist/events/EventNames.js.map +1 -1
  40. package/dist/events/PublicEvents.d.ts +6 -2
  41. package/dist/events/PublicEvents.d.ts.map +1 -1
  42. package/dist/events/PublicEvents.js +7 -4
  43. package/dist/events/PublicEvents.js.map +1 -1
  44. package/dist/events/ServerEventBus.d.ts +23 -112
  45. package/dist/events/ServerEventBus.d.ts.map +1 -1
  46. package/dist/events/ServerEventBus.js +58 -323
  47. package/dist/events/ServerEventBus.js.map +1 -1
  48. package/dist/events/event-definitions/LlmBudgetEvents.d.ts +68 -0
  49. package/dist/events/event-definitions/LlmBudgetEvents.d.ts.map +1 -0
  50. package/dist/events/event-definitions/LlmBudgetEvents.js +35 -0
  51. package/dist/events/event-definitions/LlmBudgetEvents.js.map +1 -0
  52. package/dist/interfaces/IMemoryPersistence.d.ts +41 -0
  53. package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -0
  54. package/dist/interfaces/IMemoryPersistence.js +15 -0
  55. package/dist/interfaces/IMemoryPersistence.js.map +1 -0
  56. package/dist/middleware/MxpMiddleware.d.ts +8 -1
  57. package/dist/middleware/MxpMiddleware.d.ts.map +1 -1
  58. package/dist/middleware/MxpMiddleware.js +42 -20
  59. package/dist/middleware/MxpMiddleware.js.map +1 -1
  60. package/dist/models/channelKey.d.ts +1 -0
  61. package/dist/models/channelKey.d.ts.map +1 -1
  62. package/dist/models/channelKey.js +5 -0
  63. package/dist/models/channelKey.js.map +1 -1
  64. package/dist/models/memoryUtility.d.ts +39 -0
  65. package/dist/models/memoryUtility.d.ts.map +1 -0
  66. package/dist/models/memoryUtility.js +39 -0
  67. package/dist/models/memoryUtility.js.map +1 -0
  68. package/dist/models/user.d.ts.map +1 -1
  69. package/dist/models/user.js +23 -1
  70. package/dist/models/user.js.map +1 -1
  71. package/dist/mxp/BinaryProtocolLayer.d.ts +24 -8
  72. package/dist/mxp/BinaryProtocolLayer.d.ts.map +1 -1
  73. package/dist/mxp/BinaryProtocolLayer.js +90 -103
  74. package/dist/mxp/BinaryProtocolLayer.js.map +1 -1
  75. package/dist/mxp/ContextCompressionEngine.d.ts +57 -10
  76. package/dist/mxp/ContextCompressionEngine.d.ts.map +1 -1
  77. package/dist/mxp/ContextCompressionEngine.js +170 -128
  78. package/dist/mxp/ContextCompressionEngine.js.map +1 -1
  79. package/dist/mxp/MxpTokenOptimizer.d.ts +7 -3
  80. package/dist/mxp/MxpTokenOptimizer.d.ts.map +1 -1
  81. package/dist/mxp/MxpTokenOptimizer.js +8 -5
  82. package/dist/mxp/MxpTokenOptimizer.js.map +1 -1
  83. package/dist/prompts/MxfAgentSystemPrompt.d.ts +1 -1
  84. package/dist/prompts/MxfAgentSystemPrompt.d.ts.map +1 -1
  85. package/dist/prompts/MxfAgentSystemPrompt.js +47 -57
  86. package/dist/prompts/MxfAgentSystemPrompt.js.map +1 -1
  87. package/dist/protocols/mcp/ToolError.d.ts +123 -0
  88. package/dist/protocols/mcp/ToolError.d.ts.map +1 -0
  89. package/dist/protocols/mcp/ToolError.js +108 -0
  90. package/dist/protocols/mcp/ToolError.js.map +1 -0
  91. package/dist/protocols/mcp/defineTool.d.ts +133 -0
  92. package/dist/protocols/mcp/defineTool.d.ts.map +1 -0
  93. package/dist/protocols/mcp/defineTool.js +236 -0
  94. package/dist/protocols/mcp/defineTool.js.map +1 -0
  95. package/dist/protocols/mcp/security/HttpTargetGuard.d.ts +38 -0
  96. package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -0
  97. package/dist/protocols/mcp/security/HttpTargetGuard.js +227 -0
  98. package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -0
  99. package/dist/protocols/mcp/security/McpSecurityGuard.d.ts +9 -1
  100. package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
  101. package/dist/protocols/mcp/security/McpSecurityGuard.js +10 -2
  102. package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
  103. package/dist/protocols/mcp/security/McpToolPolicy.d.ts +81 -0
  104. package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -0
  105. package/dist/protocols/mcp/security/McpToolPolicy.js +202 -0
  106. package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -0
  107. package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +51 -18
  108. package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
  109. package/dist/protocols/mcp/services/ExternalMcpServerManager.js +256 -283
  110. package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
  111. package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +39 -6
  112. package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
  113. package/dist/protocols/mcp/services/ExternalServerConfigs.js +76 -18
  114. package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
  115. package/dist/protocols/mcp/tools/AnalyticsTools.js +1 -1
  116. package/dist/protocols/mcp/tools/AnalyticsTools.js.map +1 -1
  117. package/dist/protocols/mcp/tools/CodeAnalysisTools.d.ts.map +1 -1
  118. package/dist/protocols/mcp/tools/CodeAnalysisTools.js +15 -0
  119. package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
  120. package/dist/protocols/mcp/tools/EffectivenessTools.js +3 -3
  121. package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
  122. package/dist/protocols/mcp/tools/GitTools.d.ts +9 -369
  123. package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
  124. package/dist/protocols/mcp/tools/GitTools.js +222 -517
  125. package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
  126. package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +56 -24
  127. package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
  128. package/dist/protocols/mcp/tools/InfrastructureTools.js +117 -26
  129. package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
  130. package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +0 -3
  131. package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
  132. package/dist/protocols/mcp/tools/MemorySearchTools.js +58 -1
  133. package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
  134. package/dist/protocols/mcp/tools/OrparTools.d.ts +8 -0
  135. package/dist/protocols/mcp/tools/OrparTools.d.ts.map +1 -1
  136. package/dist/protocols/mcp/tools/OrparTools.js +66 -0
  137. package/dist/protocols/mcp/tools/OrparTools.js.map +1 -1
  138. package/dist/protocols/mcp/tools/SafetyTools.d.ts +7 -525
  139. package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
  140. package/dist/protocols/mcp/tools/SafetyTools.js +349 -514
  141. package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
  142. package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
  143. package/dist/protocols/mcp/tools/TaskPlanningTools.js +56 -26
  144. package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
  145. package/dist/protocols/mcp/tools/TestTools.d.ts +15 -376
  146. package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
  147. package/dist/protocols/mcp/tools/TestTools.js +241 -363
  148. package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
  149. package/dist/protocols/mcp/tools/TypeScriptTools.d.ts +6 -276
  150. package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
  151. package/dist/protocols/mcp/tools/TypeScriptTools.js +223 -337
  152. package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
  153. package/dist/protocols/mcp/tools/WebTools.d.ts +15 -728
  154. package/dist/protocols/mcp/tools/WebTools.d.ts.map +1 -1
  155. package/dist/protocols/mcp/tools/WebTools.js +151 -257
  156. package/dist/protocols/mcp/tools/WebTools.js.map +1 -1
  157. package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts +5 -3
  158. package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
  159. package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +31 -6
  160. package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
  161. package/dist/schemas/EventPayloadSchema.d.ts +21 -0
  162. package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
  163. package/dist/schemas/EventPayloadSchema.js +14 -0
  164. package/dist/schemas/EventPayloadSchema.js.map +1 -1
  165. package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
  166. package/dist/services/BackgroundTaskManager.js +12 -4
  167. package/dist/services/BackgroundTaskManager.js.map +1 -1
  168. package/dist/services/BrowserManager.d.ts +1 -1
  169. package/dist/services/BrowserManager.d.ts.map +1 -1
  170. package/dist/services/BrowserManager.js +26 -3
  171. package/dist/services/BrowserManager.js.map +1 -1
  172. package/dist/services/MemoryCompressor.d.ts +11 -2
  173. package/dist/services/MemoryCompressor.d.ts.map +1 -1
  174. package/dist/services/MemoryCompressor.js +8 -26
  175. package/dist/services/MemoryCompressor.js.map +1 -1
  176. package/dist/services/MemoryService.d.ts +16 -3
  177. package/dist/services/MemoryService.d.ts.map +1 -1
  178. package/dist/services/MemoryService.js +79 -55
  179. package/dist/services/MemoryService.js.map +1 -1
  180. package/dist/services/PredictiveAnalyticsService.d.ts +34 -4
  181. package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
  182. package/dist/services/PredictiveAnalyticsService.js +41 -25
  183. package/dist/services/PredictiveAnalyticsService.js.map +1 -1
  184. package/dist/services/QValueManager.d.ts +7 -0
  185. package/dist/services/QValueManager.d.ts.map +1 -1
  186. package/dist/services/QValueManager.js +9 -0
  187. package/dist/services/QValueManager.js.map +1 -1
  188. package/dist/services/RewardSignalProcessor.d.ts +38 -1
  189. package/dist/services/RewardSignalProcessor.d.ts.map +1 -1
  190. package/dist/services/RewardSignalProcessor.js +109 -7
  191. package/dist/services/RewardSignalProcessor.js.map +1 -1
  192. package/dist/services/SharedStateService.d.ts +16 -2
  193. package/dist/services/SharedStateService.d.ts.map +1 -1
  194. package/dist/services/SharedStateService.js +44 -3
  195. package/dist/services/SharedStateService.js.map +1 -1
  196. package/dist/services/TaskEffectivenessService.d.ts +34 -18
  197. package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
  198. package/dist/services/TaskEffectivenessService.js +91 -155
  199. package/dist/services/TaskEffectivenessService.js.map +1 -1
  200. package/dist/services/WebSearchService.d.ts.map +1 -1
  201. package/dist/services/WebSearchService.js.map +1 -1
  202. package/dist/services/dag/TaskDagService.d.ts.map +1 -1
  203. package/dist/services/dag/TaskDagService.js +2 -0
  204. package/dist/services/dag/TaskDagService.js.map +1 -1
  205. package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts +7 -0
  206. package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts.map +1 -1
  207. package/dist/services/orpar-memory/OrparMemoryCoordinator.js +71 -10
  208. package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
  209. package/dist/types/MemoryUtilityTypes.d.ts +2 -0
  210. package/dist/types/MemoryUtilityTypes.d.ts.map +1 -1
  211. package/dist/types/MemoryUtilityTypes.js.map +1 -1
  212. package/dist/utils/Logger.d.ts +43 -3
  213. package/dist/utils/Logger.d.ts.map +1 -1
  214. package/dist/utils/Logger.js +78 -36
  215. package/dist/utils/Logger.js.map +1 -1
  216. package/dist/utils/MxpEncryption.d.ts +19 -6
  217. package/dist/utils/MxpEncryption.d.ts.map +1 -1
  218. package/dist/utils/MxpEncryption.js +48 -16
  219. package/dist/utils/MxpEncryption.js.map +1 -1
  220. package/package.json +19 -4
  221. package/src/adapters/FrameworkAdapter.ts +1 -1
  222. package/src/config/ConfigManager.ts +52 -19
  223. package/src/config/memory-strata.config.ts +136 -0
  224. package/src/constants/ToolNames.ts +4 -18
  225. package/src/database/DatabaseAdapterFactory.ts +23 -6
  226. package/src/database/adapters/mongodb/MongoBaseRepository.ts +16 -2
  227. package/src/events/ClientEventBus.ts +68 -403
  228. package/src/events/EventBus.ts +7 -8
  229. package/src/events/EventBusBase.ts +479 -116
  230. package/src/events/EventNames.ts +6 -0
  231. package/src/events/PublicEvents.ts +7 -4
  232. package/src/events/ServerEventBus.ts +78 -473
  233. package/src/events/event-definitions/LlmBudgetEvents.ts +74 -0
  234. package/src/interfaces/IMemoryPersistence.ts +51 -0
  235. package/src/middleware/MxpMiddleware.ts +51 -24
  236. package/src/models/channelKey.ts +18 -4
  237. package/src/models/memoryUtility.ts +64 -0
  238. package/src/models/user.ts +36 -4
  239. package/src/mxp/BinaryProtocolLayer.ts +108 -124
  240. package/src/mxp/ContextCompressionEngine.ts +219 -161
  241. package/src/mxp/MxpTokenOptimizer.ts +10 -10
  242. package/src/prompts/MxfAgentSystemPrompt.ts +45 -55
  243. package/src/protocols/mcp/ToolError.ts +201 -0
  244. package/src/protocols/mcp/defineTool.ts +379 -0
  245. package/src/protocols/mcp/security/HttpTargetGuard.ts +267 -0
  246. package/src/protocols/mcp/security/McpSecurityGuard.ts +10 -3
  247. package/src/protocols/mcp/security/McpToolPolicy.ts +221 -0
  248. package/src/protocols/mcp/services/ExternalMcpServerManager.ts +340 -322
  249. package/src/protocols/mcp/services/ExternalServerConfigs.ts +82 -19
  250. package/src/protocols/mcp/tools/AnalyticsTools.ts +1 -1
  251. package/src/protocols/mcp/tools/CodeAnalysisTools.ts +15 -0
  252. package/src/protocols/mcp/tools/EffectivenessTools.ts +3 -3
  253. package/src/protocols/mcp/tools/GitTools.ts +290 -569
  254. package/src/protocols/mcp/tools/InfrastructureTools.ts +189 -43
  255. package/src/protocols/mcp/tools/MemorySearchTools.ts +77 -1
  256. package/src/protocols/mcp/tools/OrparTools.ts +87 -0
  257. package/src/protocols/mcp/tools/SafetyTools.ts +501 -579
  258. package/src/protocols/mcp/tools/TaskPlanningTools.ts +81 -39
  259. package/src/protocols/mcp/tools/TestTools.ts +339 -419
  260. package/src/protocols/mcp/tools/TypeScriptTools.ts +316 -376
  261. package/src/protocols/mcp/tools/WebTools.ts +209 -307
  262. package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +53 -14
  263. package/src/schemas/EventPayloadSchema.ts +37 -0
  264. package/src/services/BackgroundTaskManager.ts +12 -4
  265. package/src/services/BrowserManager.ts +41 -1
  266. package/src/services/MemoryCompressor.ts +20 -32
  267. package/src/services/MemoryService.ts +96 -58
  268. package/src/services/PredictiveAnalyticsService.ts +55 -32
  269. package/src/services/QValueManager.ts +10 -0
  270. package/src/services/RewardSignalProcessor.ts +138 -9
  271. package/src/services/SharedStateService.ts +56 -8
  272. package/src/services/TaskEffectivenessService.ts +114 -187
  273. package/src/services/WebSearchService.ts +2 -1
  274. package/src/services/dag/TaskDagService.ts +2 -0
  275. package/src/services/orpar-memory/OrparMemoryCoordinator.ts +86 -10
  276. package/src/types/MemoryUtilityTypes.ts +2 -0
  277. package/src/utils/Logger.ts +116 -40
  278. package/src/utils/MxpEncryption.ts +69 -34
  279. package/dist/mxp/MxpEventForwardingEnhancer.d.ts +0 -134
  280. package/dist/mxp/MxpEventForwardingEnhancer.d.ts.map +0 -1
  281. package/dist/mxp/MxpEventForwardingEnhancer.js +0 -361
  282. package/dist/mxp/MxpEventForwardingEnhancer.js.map +0 -1
  283. package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts +0 -56
  284. package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts.map +0 -1
  285. package/dist/protocols/mcp/services/ToolSchemaEnhancements.js +0 -57
  286. package/dist/protocols/mcp/services/ToolSchemaEnhancements.js.map +0 -1
  287. package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts +0 -270
  288. package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts.map +0 -1
  289. package/dist/protocols/mcp/tools/ControlLoopLifecycle.js +0 -256
  290. package/dist/protocols/mcp/tools/ControlLoopLifecycle.js.map +0 -1
  291. package/dist/protocols/mcp/tools/LspTools.d.ts +0 -495
  292. package/dist/protocols/mcp/tools/LspTools.d.ts.map +0 -1
  293. package/dist/protocols/mcp/tools/LspTools.js +0 -469
  294. package/dist/protocols/mcp/tools/LspTools.js.map +0 -1
  295. package/src/mxp/MxpEventForwardingEnhancer.ts +0 -471
  296. package/src/protocols/mcp/services/ToolSchemaEnhancements.ts +0 -92
  297. package/src/protocols/mcp/tools/ControlLoopLifecycle.ts +0 -302
  298. package/src/protocols/mcp/tools/LspTools.ts +0 -476
@@ -51,6 +51,13 @@ export class RewardSignalProcessor {
51
51
  rewardMapping;
52
52
  // Memory usage tracking (task ID -> memories used)
53
53
  taskMemoryUsage = new Map();
54
+ /**
55
+ * Memories retrieved by an agent that are not yet attributed to a completed task,
56
+ * keyed by `${agentId}:${channelId}`. Drained on task completion.
57
+ */
58
+ agentMemoryUsage = new Map();
59
+ /** Cap on buffered memories per agent+channel, so the buffer cannot grow unbounded. */
60
+ static MAX_BUFFERED_MEMORIES_PER_AGENT = 200;
54
61
  // Event listener cleanup functions
55
62
  eventCleanupFns = [];
56
63
  constructor() {
@@ -110,6 +117,14 @@ export class RewardSignalProcessor {
110
117
  };
111
118
  EventBus.server.on(Events.Task.COMPLETED, taskCompletedHandler);
112
119
  this.eventCleanupFns.push(() => EventBus.server.off(Events.Task.COMPLETED, taskCompletedHandler));
120
+ // A failed task is the strongest signal MULS has that the memories it surfaced
121
+ // were unhelpful, and it was being thrown away: nothing listened for
122
+ // Events.Task.FAILED, so failure could never lower a Q-value.
123
+ const taskFailedHandler = (payload) => {
124
+ this.handleTaskCompleted(payload, 'failure');
125
+ };
126
+ EventBus.server.on(Events.Task.FAILED, taskFailedHandler);
127
+ this.eventCleanupFns.push(() => EventBus.server.off(Events.Task.FAILED, taskFailedHandler));
113
128
  // Listen for analytics task completed events (may have evaluation scores)
114
129
  const analyticsCompletedHandler = (payload) => {
115
130
  this.handleAnalyticsTaskCompleted(payload);
@@ -134,16 +149,40 @@ export class RewardSignalProcessor {
134
149
  /**
135
150
  * Handle task completion event
136
151
  */
137
- async handleTaskCompleted(payload) {
152
+ async handleTaskCompleted(payload, forcedStatus) {
138
153
  if (!this.enabled)
139
154
  return;
140
155
  try {
141
156
  const taskId = payload.data?.taskId ?? payload.taskId;
142
- const status = this.mapStatusToOutcome(payload.data?.status ?? payload.status);
143
157
  const agentId = payload.agentId ?? payload.data?.agentId;
144
158
  const channelId = payload.channelId ?? payload.data?.channelId;
145
- // Get memories used during this task
146
- const memoriesUsed = this.taskMemoryUsage.get(taskId) ?? [];
159
+ // Task events carry the task object in `data.task` (see TaskEventData), so the
160
+ // real status lives at data.task.status. Reading only data.status meant the
161
+ // status was always undefined, which the mapper then turned into 'partial' —
162
+ // giving every task, successful or not, the same small positive reward.
163
+ const rawStatus = payload.data?.task?.status ??
164
+ payload.data?.status ??
165
+ payload.status;
166
+ const status = forcedStatus ?? this.mapStatusToOutcome(rawStatus);
167
+ // Never invent an outcome. Attributing a reward from a status we could not read
168
+ // would teach the system from a number nobody measured.
169
+ if (!status) {
170
+ this.logger.warn(`[RewardSignalProcessor] Task ${taskId} completed with an unrecognised status ` +
171
+ `(${String(rawStatus)}); skipping reward attribution rather than guessing one.`);
172
+ return;
173
+ }
174
+ // Memories used during this task: anything explicitly tracked against the task
175
+ // id, plus anything the agent retrieved in this channel since its last
176
+ // completion (retrieval has no task id to attribute to — see
177
+ // trackAgentMemoriesUsage).
178
+ const explicitlyTracked = this.taskMemoryUsage.get(taskId) ?? [];
179
+ const bufferedForAgent = this.drainAgentMemories(agentId, channelId);
180
+ const memoriesUsed = [...explicitlyTracked];
181
+ for (const record of bufferedForAgent) {
182
+ if (!memoriesUsed.some(m => m.memoryId === record.memoryId)) {
183
+ memoriesUsed.push(record);
184
+ }
185
+ }
147
186
  if (memoriesUsed.length === 0) {
148
187
  this.logger.debug(`[RewardSignalProcessor] No memories tracked for task ${taskId}`);
149
188
  return;
@@ -202,6 +241,13 @@ export class RewardSignalProcessor {
202
241
  /**
203
242
  * Map task status string to TaskOutcomeStatus
204
243
  */
244
+ /**
245
+ * Map a task status to a reward outcome, or null when the status is unrecognised.
246
+ *
247
+ * Returns null rather than defaulting to 'partial'. The old default meant an
248
+ * unreadable status still earned a positive reward, so memories were reinforced by
249
+ * tasks whose outcome was never actually known.
250
+ */
205
251
  mapStatusToOutcome(status) {
206
252
  switch (status?.toLowerCase()) {
207
253
  case 'completed':
@@ -219,7 +265,7 @@ export class RewardSignalProcessor {
219
265
  case 'timed_out':
220
266
  return 'timeout';
221
267
  default:
222
- return 'partial'; // Default to partial for unknown statuses
268
+ return null; // Unknown status the caller must skip attribution, not guess.
223
269
  }
224
270
  }
225
271
  /**
@@ -386,6 +432,54 @@ export class RewardSignalProcessor {
386
432
  this.logger.debug(`[RewardSignalProcessor] Tracked memory ${memoryId} for task ${taskId} (phase=${phase})`);
387
433
  }
388
434
  }
435
+ /**
436
+ * Track memories retrieved by an agent, without needing a task id.
437
+ *
438
+ * Retrieval happens inside MCP tool handlers, and the tool context carries only
439
+ * agentId/channelId — never the task the agent is working on. Rather than plumb a
440
+ * task id through the whole MCP execution path, retrieval records what it returned
441
+ * against the agent+channel, and handleTaskCompleted drains that buffer when the
442
+ * agent's task finishes. A task is executed by one agent in one channel, so the
443
+ * memories buffered for that pair are exactly the ones the task used.
444
+ *
445
+ * This is the call that was missing: nothing in production ever recorded which
446
+ * memories were used, so every task completed with an empty usage list and no
447
+ * reward was ever attributed.
448
+ */
449
+ trackAgentMemoriesUsage(agentId, channelId, memoryIds, phase, usageType) {
450
+ if (!this.enabled || !this.config.trackMemoryUsage)
451
+ return;
452
+ if (!agentId || !channelId || memoryIds.length === 0)
453
+ return;
454
+ const key = `${agentId}:${channelId}`;
455
+ let records = this.agentMemoryUsage.get(key);
456
+ if (!records) {
457
+ records = [];
458
+ this.agentMemoryUsage.set(key, records);
459
+ }
460
+ for (const memoryId of memoryIds) {
461
+ if (!records.some(r => r.memoryId === memoryId)) {
462
+ records.push({ memoryId, phase, retrievedAt: new Date(), usageType });
463
+ }
464
+ }
465
+ // Bound the buffer. An agent that retrieves memories without ever completing a
466
+ // task would otherwise grow this map without limit.
467
+ if (records.length > RewardSignalProcessor.MAX_BUFFERED_MEMORIES_PER_AGENT) {
468
+ records.splice(0, records.length - RewardSignalProcessor.MAX_BUFFERED_MEMORIES_PER_AGENT);
469
+ }
470
+ this.logger.debug(`[RewardSignalProcessor] Buffered ${memoryIds.length} memories for ${key} (phase=${phase})`);
471
+ }
472
+ /**
473
+ * Take and clear the memories buffered for an agent in a channel.
474
+ */
475
+ drainAgentMemories(agentId, channelId) {
476
+ if (!agentId || !channelId)
477
+ return [];
478
+ const key = `${agentId}:${channelId}`;
479
+ const records = this.agentMemoryUsage.get(key) ?? [];
480
+ this.agentMemoryUsage.delete(key);
481
+ return records;
482
+ }
389
483
  /**
390
484
  * Track multiple memories for a task
391
485
  */
@@ -470,16 +564,24 @@ export class RewardSignalProcessor {
470
564
  }
471
565
  }
472
566
  /**
473
- * Get tracking statistics
567
+ * Get tracking statistics.
568
+ *
569
+ * `bufferedMemories` counts memories retrieved by agents that are not yet attributed
570
+ * to a completed task (see trackAgentMemoriesUsage).
474
571
  */
475
572
  getTrackingStats() {
476
573
  let totalMemories = 0;
477
574
  for (const [, records] of this.taskMemoryUsage) {
478
575
  totalMemories += records.length;
479
576
  }
577
+ let bufferedMemories = 0;
578
+ for (const [, records] of this.agentMemoryUsage) {
579
+ bufferedMemories += records.length;
580
+ }
480
581
  return {
481
582
  activeTasks: this.taskMemoryUsage.size,
482
- totalMemoriesTracked: totalMemories
583
+ totalMemoriesTracked: totalMemories,
584
+ bufferedMemories
483
585
  };
484
586
  }
485
587
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RewardSignalProcessor.js","sourceRoot":"","sources":["../../src/services/RewardSignalProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RewardSignalProcessor.js","sourceRoot":"","sources":["../../src/services/RewardSignalProcessor.ts"],"names":[],"mappings":"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"}
@@ -36,8 +36,17 @@ export declare class SharedStateService {
36
36
  private static instance;
37
37
  private stateStore;
38
38
  private channelStates;
39
+ /** How long an untouched state entry is kept before cleanup (24 hours). */
40
+ private static readonly STATE_TTL_MS;
41
+ /** How often the cleanup sweep runs (1 hour). */
42
+ private static readonly CLEANUP_INTERVAL_MS;
43
+ private cleanupInterval;
39
44
  private constructor();
40
45
  static getInstance(): SharedStateService;
46
+ /**
47
+ * Stop the cleanup timer. For tests and shutdown.
48
+ */
49
+ stopCleanup(): void;
41
50
  /**
42
51
  * Store collaborative state that can be referenced by ID
43
52
  * Only used when agents have mxpEnabled=true
@@ -62,9 +71,14 @@ export declare class SharedStateService {
62
71
  */
63
72
  getChannelStates(channelId: string): SharedStateEntry[];
64
73
  /**
65
- * Clean up old states to prevent memory leaks
74
+ * Drop states that have not been touched within the TTL.
75
+ *
76
+ * Runs on a timer from the constructor; also callable directly.
77
+ *
78
+ * @param maxAgeMs Age past which a state is dropped (default: 24 hours)
79
+ * @returns The number of states removed
66
80
  */
67
- cleanupOldStates(maxAgeMs?: number): void;
81
+ cleanupOldStates(maxAgeMs?: number): number;
68
82
  /**
69
83
  * Get statistics for monitoring
70
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SharedStateService.d.ts","sourceRoot":"","sources":["../../src/services/SharedStateService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAeH,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,aAAa,CAAkC;IAEvD,OAAO;WAGO,WAAW,IAAI,kBAAkB;IAO/C;;;OAGG;IACI,UAAU,CACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACrB,IAAI;IA4BP;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIzD;;;OAGG;IACI,oBAAoB,CACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC5C,UAAU,CAAC,EAAE,GAAG,CAAC;KACf,GACP,GAAG;IA6CN;;OAEG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAS9D;;OAEG;IACI,gBAAgB,CAAC,QAAQ,GAAE,MAA4B,GAAG,IAAI;IAqBrE;;OAEG;IACI,QAAQ,IAAI;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B;CA0BJ;AAGD,eAAO,MAAM,kBAAkB,oBAAmC,CAAC"}
1
+ {"version":3,"file":"SharedStateService.d.ts","sourceRoot":"","sources":["../../src/services/SharedStateService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAeH,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,aAAa,CAAkC;IAEvD,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAE3D,iDAAiD;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAkB;IAE7D,OAAO,CAAC,eAAe,CAA+B;IAEtD,OAAO;WAcO,WAAW,IAAI,kBAAkB;IAO/C;;OAEG;IACI,WAAW,IAAI,IAAI;IAO1B;;;OAGG;IACI,UAAU,CACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACrB,IAAI;IA4BP;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIzD;;;OAGG;IACI,oBAAoB,CACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC5C,UAAU,CAAC,EAAE,GAAG,CAAC;KACf,GACP,GAAG;IA6CN;;OAEG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAS9D;;;;;;;OAOG;IACI,gBAAgB,CAAC,QAAQ,GAAE,MAAwC,GAAG,MAAM;IAmCnF;;OAEG;IACI,QAAQ,IAAI;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B;CA0BJ;AAGD,eAAO,MAAM,kBAAkB,oBAAmC,CAAC"}
@@ -35,7 +35,22 @@ export class SharedStateService {
35
35
  static instance;
36
36
  stateStore = new Map();
37
37
  channelStates = new Map(); // channelId -> Set of stateIds
38
+ /** How long an untouched state entry is kept before cleanup (24 hours). */
39
+ static STATE_TTL_MS = 24 * 60 * 60 * 1000;
40
+ /** How often the cleanup sweep runs (1 hour). */
41
+ static CLEANUP_INTERVAL_MS = 60 * 60 * 1000;
42
+ cleanupInterval = null;
38
43
  constructor() {
44
+ // This is a process-lifetime singleton holding an unbounded Map, so the
45
+ // sweep has to be driven by something. cleanupOldStates() existed but had
46
+ // no callers anywhere, so stateStore/channelStates simply grew forever.
47
+ this.cleanupInterval = setInterval(() => {
48
+ this.cleanupOldStates();
49
+ }, SharedStateService.CLEANUP_INTERVAL_MS);
50
+ // Background sweep — must not keep the event loop alive on its own.
51
+ this.cleanupInterval.unref();
52
+ // Do not hold the event loop open on account of a garbage-collection timer.
53
+ this.cleanupInterval.unref?.();
39
54
  }
40
55
  static getInstance() {
41
56
  if (!SharedStateService.instance) {
@@ -43,6 +58,15 @@ export class SharedStateService {
43
58
  }
44
59
  return SharedStateService.instance;
45
60
  }
61
+ /**
62
+ * Stop the cleanup timer. For tests and shutdown.
63
+ */
64
+ stopCleanup() {
65
+ if (this.cleanupInterval) {
66
+ clearInterval(this.cleanupInterval);
67
+ this.cleanupInterval = null;
68
+ }
69
+ }
46
70
  /**
47
71
  * Store collaborative state that can be referenced by ID
48
72
  * Only used when agents have mxpEnabled=true
@@ -127,9 +151,14 @@ export class SharedStateService {
127
151
  .filter(state => state !== undefined);
128
152
  }
129
153
  /**
130
- * Clean up old states to prevent memory leaks
154
+ * Drop states that have not been touched within the TTL.
155
+ *
156
+ * Runs on a timer from the constructor; also callable directly.
157
+ *
158
+ * @param maxAgeMs Age past which a state is dropped (default: 24 hours)
159
+ * @returns The number of states removed
131
160
  */
132
- cleanupOldStates(maxAgeMs = 24 * 60 * 60 * 1000) {
161
+ cleanupOldStates(maxAgeMs = SharedStateService.STATE_TTL_MS) {
133
162
  const now = Date.now();
134
163
  const toDelete = [];
135
164
  for (const [stateId, state] of this.stateStore.entries()) {
@@ -142,9 +171,21 @@ export class SharedStateService {
142
171
  const state = this.stateStore.get(stateId);
143
172
  if (state) {
144
173
  this.stateStore.delete(stateId);
145
- this.channelStates.get(state.channelId)?.delete(stateId);
174
+ const channelStateIds = this.channelStates.get(state.channelId);
175
+ if (channelStateIds) {
176
+ channelStateIds.delete(stateId);
177
+ // Drop the channel entry too, or channelStates grows forever
178
+ // with empty Sets for channels that are long gone.
179
+ if (channelStateIds.size === 0) {
180
+ this.channelStates.delete(state.channelId);
181
+ }
182
+ }
146
183
  }
147
184
  }
185
+ if (toDelete.length > 0) {
186
+ logger.debug(`Removed ${toDelete.length} shared state entries older than ${maxAgeMs}ms`);
187
+ }
188
+ return toDelete.length;
148
189
  }
149
190
  /**
150
191
  * Get statistics for monitoring
@@ -1 +1 @@
1
- {"version":3,"file":"SharedStateService.js","sourceRoot":"","sources":["../../src/services/SharedStateService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SharedStateService.js","sourceRoot":"","sources":["../../src/services/SharedStateService.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,6 @@ export declare class TaskEffectivenessService {
30
30
  private readonly activeTasks;
31
31
  private readonly taskDefinitions;
32
32
  private readonly taskEvents;
33
- private readonly completedTasks;
34
33
  private config;
35
34
  private constructor();
36
35
  static getInstance(): TaskEffectivenessService;
@@ -51,25 +50,42 @@ export declare class TaskEffectivenessService {
51
50
  */
52
51
  completeTask(taskId: string, success: boolean, customMetrics?: Record<string, number>): Promise<TaskEffectivenessMetrics | null>;
53
52
  /**
54
- * Get comparison with baseline
55
- */
56
- compareWithBaseline(taskId: string): EffectivenessComparison | null;
57
- /**
58
- * Get analytics for a time period
59
- */
60
- getAnalytics(startTime: number, endTime: number, channelId?: ChannelId): EffectivenessAnalytics;
61
- /**
62
- * Persist task effectiveness data to MongoDB
53
+ * Compare a task against its baseline.
54
+ *
55
+ * Reads a running task from memory and a finished one from MongoDB, so this
56
+ * keeps working across a restart.
57
+ *
58
+ * @returns null when the task or its definition is unknown
59
+ */
60
+ compareWithBaseline(taskId: string): Promise<EffectivenessComparison | null>;
61
+ /**
62
+ * Effectiveness analytics for a time period, computed from persisted tasks.
63
+ *
64
+ * Reads from MongoDB, so results cover every task ever completed — not just
65
+ * the ones this process happened to run.
66
+ *
67
+ * @param startTime Start of the window (epoch ms)
68
+ * @param endTime End of the window (epoch ms)
69
+ * @param channelId Optional channel filter
70
+ * @param taskType Optional task-type filter
71
+ * @throws If the query fails. Effectiveness numbers computed from an empty
72
+ * result set would look like real "no activity" data.
73
+ */
74
+ getAnalytics(startTime: number, endTime: number, channelId?: ChannelId, taskType?: string): Promise<EffectivenessAnalytics>;
75
+ /**
76
+ * Query persisted task effectiveness records.
77
+ *
78
+ * @throws If the query fails
79
+ */
80
+ private findCompletedTasks;
81
+ /**
82
+ * Persist task effectiveness data to MongoDB.
83
+ *
84
+ * @throws If the task has no definition, or the write fails. A completed task
85
+ * that is not written down is history that is simply gone; the caller
86
+ * needs to know.
63
87
  */
64
88
  private persistTaskToDB;
65
- /**
66
- * Load task effectiveness data from MongoDB
67
- */
68
- private loadTaskFromDB;
69
- /**
70
- * Enhanced analytics with MongoDB queries
71
- */
72
- getEnhancedAnalytics(startTime: number, endTime: number, channelId?: ChannelId, taskType?: string): Promise<EffectivenessAnalytics>;
73
89
  /**
74
90
  * Compute analytics from metrics array
75
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TaskEffectivenessService.d.ts","sourceRoot":"","sources":["../../src/services/TaskEffectivenessService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EACH,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAErB,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,qBAAa,wBAAwB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0B;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAGlD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IAGtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+C;IAG9E,OAAO,CAAC,MAAM,CAWZ;IAEF,OAAO;WAMO,WAAW,IAAI,wBAAwB;IAOrD;;OAEG;IACI,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IA6EpD;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAqCnD;;OAEG;IACI,aAAa,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,EACrD,OAAO,CAAC,EAAE,OAAO,GAClB,IAAI;IAoBP;;OAEG;IACU,YAAY,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IA6C3C;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI;IAqD1E;;OAEG;IACI,YAAY,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,GACtB,sBAAsB;IA2EzB;;OAEG;YACW,eAAe;IA2B7B;;OAEG;YACW,cAAc;IAkB5B;;OAEG;IACU,oBAAoB,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,sBAAsB,CAAC;IA4BlC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAuEnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmC9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAenC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4C3B;;OAEG;IACU,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IA0BrF;;OAEG;IACU,sBAAsB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,SAAS,GACtB,OAAO,CAAC,GAAG,CAAC;IA0Cf;;OAEG;IACU,qBAAqB,CAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,GACtB,OAAO,CAAC,GAAG,CAAC;CA8DlB"}
1
+ {"version":3,"file":"TaskEffectivenessService.d.ts","sourceRoot":"","sources":["../../src/services/TaskEffectivenessService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EACH,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAErB,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,qBAAa,wBAAwB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0B;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAGlD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IAQtE,OAAO,CAAC,MAAM,CAWZ;IAEF,OAAO;WAMO,WAAW,IAAI,wBAAwB;IAOrD;;OAEG;IACI,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IA6EpD;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAqCnD;;OAEG;IACI,aAAa,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,EACrD,OAAO,CAAC,EAAE,OAAO,GAClB,IAAI;IAsBP;;OAEG;IACU,YAAY,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IA2C3C;;;;;;;OAOG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IA6DzF;;;;;;;;;;;;OAYG;IACU,YAAY,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,sBAAsB,CAAC;IAMlC;;;;OAIG;YACW,kBAAkB;IAiChC;;;;;;OAMG;YACW,eAAe;IA2B7B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAuEnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmC9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAenC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4C3B;;OAEG;IACU,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAiBrF;;OAEG;IACU,sBAAsB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,SAAS,GACtB,OAAO,CAAC,GAAG,CAAC;IA2Cf;;OAEG;IACU,qBAAqB,CAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,GACtB,OAAO,CAAC,GAAG,CAAC;CAuDlB"}