@mxf-dev/core 1.0.1 → 2.0.1
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.
- package/README.md +18 -0
- package/dist/adapters/FrameworkAdapter.js +1 -1
- package/dist/adapters/FrameworkAdapter.js.map +1 -1
- package/dist/config/ConfigManager.d.ts +9 -8
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +47 -17
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/memory-strata.config.d.ts +25 -0
- package/dist/config/memory-strata.config.d.ts.map +1 -0
- package/dist/config/memory-strata.config.js +107 -0
- package/dist/config/memory-strata.config.js.map +1 -0
- package/dist/constants/ToolNames.d.ts +1 -29
- package/dist/constants/ToolNames.d.ts.map +1 -1
- package/dist/constants/ToolNames.js +4 -17
- package/dist/constants/ToolNames.js.map +1 -1
- package/dist/database/DatabaseAdapterFactory.d.ts +14 -2
- package/dist/database/DatabaseAdapterFactory.d.ts.map +1 -1
- package/dist/database/DatabaseAdapterFactory.js +21 -6
- package/dist/database/DatabaseAdapterFactory.js.map +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts +7 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts.map +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.js +12 -2
- package/dist/database/adapters/mongodb/MongoBaseRepository.js.map +1 -1
- package/dist/events/ClientEventBus.d.ts +16 -77
- package/dist/events/ClientEventBus.d.ts.map +1 -1
- package/dist/events/ClientEventBus.js +38 -311
- package/dist/events/ClientEventBus.js.map +1 -1
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/events/EventBus.js +5 -4
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/EventBusBase.d.ts +139 -34
- package/dist/events/EventBusBase.d.ts.map +1 -1
- package/dist/events/EventBusBase.js +366 -88
- package/dist/events/EventBusBase.js.map +1 -1
- package/dist/events/EventNames.d.ts +10 -1
- package/dist/events/EventNames.d.ts.map +1 -1
- package/dist/events/EventNames.js +3 -0
- package/dist/events/EventNames.js.map +1 -1
- package/dist/events/PublicEvents.d.ts +6 -2
- package/dist/events/PublicEvents.d.ts.map +1 -1
- package/dist/events/PublicEvents.js +7 -4
- package/dist/events/PublicEvents.js.map +1 -1
- package/dist/events/ServerEventBus.d.ts +23 -112
- package/dist/events/ServerEventBus.d.ts.map +1 -1
- package/dist/events/ServerEventBus.js +58 -323
- package/dist/events/ServerEventBus.js.map +1 -1
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts +68 -0
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts.map +1 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js +35 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js.map +1 -0
- package/dist/interfaces/IMemoryPersistence.d.ts +41 -0
- package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -0
- package/dist/interfaces/IMemoryPersistence.js +15 -0
- package/dist/interfaces/IMemoryPersistence.js.map +1 -0
- package/dist/middleware/MxpMiddleware.d.ts +8 -1
- package/dist/middleware/MxpMiddleware.d.ts.map +1 -1
- package/dist/middleware/MxpMiddleware.js +42 -20
- package/dist/middleware/MxpMiddleware.js.map +1 -1
- package/dist/models/channelKey.d.ts +1 -0
- package/dist/models/channelKey.d.ts.map +1 -1
- package/dist/models/channelKey.js +5 -0
- package/dist/models/channelKey.js.map +1 -1
- package/dist/models/memoryUtility.d.ts +39 -0
- package/dist/models/memoryUtility.d.ts.map +1 -0
- package/dist/models/memoryUtility.js +39 -0
- package/dist/models/memoryUtility.js.map +1 -0
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +23 -1
- package/dist/models/user.js.map +1 -1
- package/dist/mxp/BinaryProtocolLayer.d.ts +24 -8
- package/dist/mxp/BinaryProtocolLayer.d.ts.map +1 -1
- package/dist/mxp/BinaryProtocolLayer.js +90 -103
- package/dist/mxp/BinaryProtocolLayer.js.map +1 -1
- package/dist/mxp/ContextCompressionEngine.d.ts +57 -10
- package/dist/mxp/ContextCompressionEngine.d.ts.map +1 -1
- package/dist/mxp/ContextCompressionEngine.js +170 -128
- package/dist/mxp/ContextCompressionEngine.js.map +1 -1
- package/dist/mxp/MxpTokenOptimizer.d.ts +7 -3
- package/dist/mxp/MxpTokenOptimizer.d.ts.map +1 -1
- package/dist/mxp/MxpTokenOptimizer.js +8 -5
- package/dist/mxp/MxpTokenOptimizer.js.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.js +47 -57
- package/dist/prompts/MxfAgentSystemPrompt.js.map +1 -1
- package/dist/protocols/mcp/ToolError.d.ts +123 -0
- package/dist/protocols/mcp/ToolError.d.ts.map +1 -0
- package/dist/protocols/mcp/ToolError.js +108 -0
- package/dist/protocols/mcp/ToolError.js.map +1 -0
- package/dist/protocols/mcp/defineTool.d.ts +133 -0
- package/dist/protocols/mcp/defineTool.d.ts.map +1 -0
- package/dist/protocols/mcp/defineTool.js +236 -0
- package/dist/protocols/mcp/defineTool.js.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts +38 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js +227 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -0
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts +9 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.js +10 -2
- package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts +81 -0
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js +202 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -0
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +51 -18
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js +256 -283
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +39 -6
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.js +76 -18
- package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js +15 -0
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.js +3 -3
- package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.d.ts +9 -369
- package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.js +222 -517
- package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +56 -24
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.js +117 -26
- package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +0 -3
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js +58 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
- package/dist/protocols/mcp/tools/OrparTools.d.ts +8 -0
- package/dist/protocols/mcp/tools/OrparTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/OrparTools.js +66 -0
- package/dist/protocols/mcp/tools/OrparTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.d.ts +7 -525
- package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.js +349 -514
- package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.js +56 -26
- package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.d.ts +15 -376
- package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.js +241 -363
- package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts +6 -276
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.js +223 -337
- package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
- package/dist/protocols/mcp/tools/WebTools.d.ts +15 -728
- package/dist/protocols/mcp/tools/WebTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/WebTools.js +151 -257
- package/dist/protocols/mcp/tools/WebTools.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts +5 -3
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +31 -6
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
- package/dist/schemas/EventPayloadSchema.d.ts +21 -0
- package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.js +14 -0
- package/dist/schemas/EventPayloadSchema.js.map +1 -1
- package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/services/BackgroundTaskManager.js +12 -4
- package/dist/services/BackgroundTaskManager.js.map +1 -1
- package/dist/services/BrowserManager.d.ts +1 -1
- package/dist/services/BrowserManager.d.ts.map +1 -1
- package/dist/services/BrowserManager.js +26 -3
- package/dist/services/BrowserManager.js.map +1 -1
- package/dist/services/MemoryCompressor.d.ts +11 -2
- package/dist/services/MemoryCompressor.d.ts.map +1 -1
- package/dist/services/MemoryCompressor.js +8 -26
- package/dist/services/MemoryCompressor.js.map +1 -1
- package/dist/services/MemoryService.d.ts +16 -3
- package/dist/services/MemoryService.d.ts.map +1 -1
- package/dist/services/MemoryService.js +79 -55
- package/dist/services/MemoryService.js.map +1 -1
- package/dist/services/MxfMLService.d.ts +5 -0
- package/dist/services/MxfMLService.d.ts.map +1 -1
- package/dist/services/MxfMLService.js +32 -6
- package/dist/services/MxfMLService.js.map +1 -1
- package/dist/services/PredictiveAnalyticsService.d.ts +45 -9
- package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
- package/dist/services/PredictiveAnalyticsService.js +82 -44
- package/dist/services/PredictiveAnalyticsService.js.map +1 -1
- package/dist/services/QValueManager.d.ts +7 -0
- package/dist/services/QValueManager.d.ts.map +1 -1
- package/dist/services/QValueManager.js +9 -0
- package/dist/services/QValueManager.js.map +1 -1
- package/dist/services/RewardSignalProcessor.d.ts +38 -1
- package/dist/services/RewardSignalProcessor.d.ts.map +1 -1
- package/dist/services/RewardSignalProcessor.js +109 -7
- package/dist/services/RewardSignalProcessor.js.map +1 -1
- package/dist/services/SharedStateService.d.ts +16 -2
- package/dist/services/SharedStateService.d.ts.map +1 -1
- package/dist/services/SharedStateService.js +44 -3
- package/dist/services/SharedStateService.js.map +1 -1
- package/dist/services/TaskEffectivenessService.d.ts +34 -18
- package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
- package/dist/services/TaskEffectivenessService.js +91 -155
- package/dist/services/TaskEffectivenessService.js.map +1 -1
- package/dist/services/WebSearchService.d.ts.map +1 -1
- package/dist/services/WebSearchService.js.map +1 -1
- package/dist/services/dag/TaskDagService.d.ts.map +1 -1
- package/dist/services/dag/TaskDagService.js +2 -0
- package/dist/services/dag/TaskDagService.js.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts +7 -0
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js +71 -10
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
- package/dist/types/MemoryUtilityTypes.d.ts +2 -0
- package/dist/types/MemoryUtilityTypes.d.ts.map +1 -1
- package/dist/types/MemoryUtilityTypes.js.map +1 -1
- package/dist/utils/Logger.d.ts +43 -3
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +78 -36
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/MxpEncryption.d.ts +19 -6
- package/dist/utils/MxpEncryption.d.ts.map +1 -1
- package/dist/utils/MxpEncryption.js +48 -16
- package/dist/utils/MxpEncryption.js.map +1 -1
- package/package.json +19 -4
- package/src/adapters/FrameworkAdapter.ts +1 -1
- package/src/config/ConfigManager.ts +52 -19
- package/src/config/memory-strata.config.ts +136 -0
- package/src/constants/ToolNames.ts +4 -18
- package/src/database/DatabaseAdapterFactory.ts +23 -6
- package/src/database/adapters/mongodb/MongoBaseRepository.ts +16 -2
- package/src/events/ClientEventBus.ts +68 -403
- package/src/events/EventBus.ts +7 -8
- package/src/events/EventBusBase.ts +479 -116
- package/src/events/EventNames.ts +6 -0
- package/src/events/PublicEvents.ts +7 -4
- package/src/events/ServerEventBus.ts +78 -473
- package/src/events/event-definitions/LlmBudgetEvents.ts +74 -0
- package/src/interfaces/IMemoryPersistence.ts +51 -0
- package/src/middleware/MxpMiddleware.ts +51 -24
- package/src/models/channelKey.ts +18 -4
- package/src/models/memoryUtility.ts +64 -0
- package/src/models/user.ts +36 -4
- package/src/mxp/BinaryProtocolLayer.ts +108 -124
- package/src/mxp/ContextCompressionEngine.ts +219 -161
- package/src/mxp/MxpTokenOptimizer.ts +10 -10
- package/src/prompts/MxfAgentSystemPrompt.ts +45 -55
- package/src/protocols/mcp/ToolError.ts +201 -0
- package/src/protocols/mcp/defineTool.ts +379 -0
- package/src/protocols/mcp/security/HttpTargetGuard.ts +267 -0
- package/src/protocols/mcp/security/McpSecurityGuard.ts +10 -3
- package/src/protocols/mcp/security/McpToolPolicy.ts +221 -0
- package/src/protocols/mcp/services/ExternalMcpServerManager.ts +340 -322
- package/src/protocols/mcp/services/ExternalServerConfigs.ts +82 -19
- package/src/protocols/mcp/tools/AnalyticsTools.ts +1 -1
- package/src/protocols/mcp/tools/CodeAnalysisTools.ts +15 -0
- package/src/protocols/mcp/tools/EffectivenessTools.ts +3 -3
- package/src/protocols/mcp/tools/GitTools.ts +290 -569
- package/src/protocols/mcp/tools/InfrastructureTools.ts +189 -43
- package/src/protocols/mcp/tools/MemorySearchTools.ts +77 -1
- package/src/protocols/mcp/tools/OrparTools.ts +87 -0
- package/src/protocols/mcp/tools/SafetyTools.ts +501 -579
- package/src/protocols/mcp/tools/TaskPlanningTools.ts +81 -39
- package/src/protocols/mcp/tools/TestTools.ts +339 -419
- package/src/protocols/mcp/tools/TypeScriptTools.ts +316 -376
- package/src/protocols/mcp/tools/WebTools.ts +209 -307
- package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +53 -14
- package/src/schemas/EventPayloadSchema.ts +37 -0
- package/src/services/BackgroundTaskManager.ts +12 -4
- package/src/services/BrowserManager.ts +41 -1
- package/src/services/MemoryCompressor.ts +20 -32
- package/src/services/MemoryService.ts +96 -58
- package/src/services/MxfMLService.ts +41 -7
- package/src/services/PredictiveAnalyticsService.ts +101 -51
- package/src/services/QValueManager.ts +10 -0
- package/src/services/RewardSignalProcessor.ts +138 -9
- package/src/services/SharedStateService.ts +56 -8
- package/src/services/TaskEffectivenessService.ts +114 -187
- package/src/services/WebSearchService.ts +2 -1
- package/src/services/dag/TaskDagService.ts +2 -0
- package/src/services/orpar-memory/OrparMemoryCoordinator.ts +86 -10
- package/src/types/MemoryUtilityTypes.ts +2 -0
- package/src/utils/Logger.ts +116 -40
- package/src/utils/MxpEncryption.ts +69 -34
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts +0 -134
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts.map +0 -1
- package/dist/mxp/MxpEventForwardingEnhancer.js +0 -361
- package/dist/mxp/MxpEventForwardingEnhancer.js.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts +0 -56
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js +0 -57
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts +0 -270
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js +0 -256
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.d.ts +0 -495
- package/dist/protocols/mcp/tools/LspTools.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.js +0 -469
- package/dist/protocols/mcp/tools/LspTools.js.map +0 -1
- package/src/mxp/MxpEventForwardingEnhancer.ts +0 -471
- package/src/protocols/mcp/services/ToolSchemaEnhancements.ts +0 -92
- package/src/protocols/mcp/tools/ControlLoopLifecycle.ts +0 -302
- package/src/protocols/mcp/tools/LspTools.ts +0 -476
|
@@ -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
|
-
*
|
|
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):
|
|
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;
|
|
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
|
-
*
|
|
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 =
|
|
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)
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElG,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAcnE;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACnB,MAAM,CAAC,QAAQ,CAAqB;IACpC,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IACjD,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC,CAAC,+BAA+B;IAEvF;
|
|
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
|
-
*
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
*
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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;
|
|
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"}
|
|
@@ -40,8 +40,10 @@ export class TaskEffectivenessService {
|
|
|
40
40
|
activeTasks = new Map();
|
|
41
41
|
taskDefinitions = new Map();
|
|
42
42
|
taskEvents = new Map();
|
|
43
|
-
//
|
|
44
|
-
completedTasks
|
|
43
|
+
// Completed tasks live in MongoDB (TaskEffectivenessModel), not in memory.
|
|
44
|
+
// They were previously kept in a `completedTasks` Map, so all effectiveness
|
|
45
|
+
// history vanished on restart and any ranking built from it only ever saw
|
|
46
|
+
// the tasks this process happened to run.
|
|
45
47
|
// Configuration
|
|
46
48
|
config = {
|
|
47
49
|
autoTrack: true,
|
|
@@ -172,7 +174,9 @@ export class TaskEffectivenessService {
|
|
|
172
174
|
* Update task quality metrics
|
|
173
175
|
*/
|
|
174
176
|
updateQuality(taskId, updates, agentId) {
|
|
175
|
-
|
|
177
|
+
// Quality is recorded while a task is running. A completed task's metrics
|
|
178
|
+
// are already persisted and are not amended here.
|
|
179
|
+
const metrics = this.activeTasks.get(taskId);
|
|
176
180
|
if (metrics) {
|
|
177
181
|
metrics.quality = { ...metrics.quality, ...updates };
|
|
178
182
|
// Emit quality update event
|
|
@@ -205,11 +209,10 @@ export class TaskEffectivenessService {
|
|
|
205
209
|
if (metrics.collaboration.participatingAgents.length > 1) {
|
|
206
210
|
metrics.collaboration.collaborationScore = this.calculateCollaborationScore(metrics);
|
|
207
211
|
}
|
|
208
|
-
//
|
|
209
|
-
|
|
210
|
-
this.completedTasks.set(taskId, metrics);
|
|
211
|
-
// Persist to MongoDB
|
|
212
|
+
// Persist to MongoDB, then drop from the active set. Persist first: if
|
|
213
|
+
// it throws, the task stays active rather than disappearing entirely.
|
|
212
214
|
await this.persistTaskToDB(taskId, metrics);
|
|
215
|
+
this.activeTasks.delete(taskId);
|
|
213
216
|
// Emit completion event
|
|
214
217
|
EventBus.server.emit(Events.Analytics.TASK_COMPLETED, createBaseEventPayload(Events.Analytics.TASK_COMPLETED, 'system', 'global', {
|
|
215
218
|
taskId,
|
|
@@ -220,11 +223,23 @@ export class TaskEffectivenessService {
|
|
|
220
223
|
return metrics;
|
|
221
224
|
}
|
|
222
225
|
/**
|
|
223
|
-
*
|
|
226
|
+
* Compare a task against its baseline.
|
|
227
|
+
*
|
|
228
|
+
* Reads a running task from memory and a finished one from MongoDB, so this
|
|
229
|
+
* keeps working across a restart.
|
|
230
|
+
*
|
|
231
|
+
* @returns null when the task or its definition is unknown
|
|
224
232
|
*/
|
|
225
|
-
compareWithBaseline(taskId) {
|
|
226
|
-
|
|
227
|
-
|
|
233
|
+
async compareWithBaseline(taskId) {
|
|
234
|
+
let metrics = this.activeTasks.get(taskId);
|
|
235
|
+
let definition = this.taskDefinitions.get(taskId);
|
|
236
|
+
if (!metrics || !definition) {
|
|
237
|
+
const taskDoc = await TaskEffectivenessModel.findOne({ taskId }).exec();
|
|
238
|
+
if (taskDoc) {
|
|
239
|
+
metrics = metrics ?? taskDoc.metrics;
|
|
240
|
+
definition = definition ?? taskDoc.definition;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
228
243
|
if (!metrics || !definition) {
|
|
229
244
|
return null;
|
|
230
245
|
}
|
|
@@ -267,85 +282,64 @@ export class TaskEffectivenessService {
|
|
|
267
282
|
return comparison;
|
|
268
283
|
}
|
|
269
284
|
/**
|
|
270
|
-
*
|
|
285
|
+
* Effectiveness analytics for a time period, computed from persisted tasks.
|
|
286
|
+
*
|
|
287
|
+
* Reads from MongoDB, so results cover every task ever completed — not just
|
|
288
|
+
* the ones this process happened to run.
|
|
289
|
+
*
|
|
290
|
+
* @param startTime Start of the window (epoch ms)
|
|
291
|
+
* @param endTime End of the window (epoch ms)
|
|
292
|
+
* @param channelId Optional channel filter
|
|
293
|
+
* @param taskType Optional task-type filter
|
|
294
|
+
* @throws If the query fails. Effectiveness numbers computed from an empty
|
|
295
|
+
* result set would look like real "no activity" data.
|
|
271
296
|
*/
|
|
272
|
-
getAnalytics(startTime, endTime, channelId) {
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
byChannel: {},
|
|
285
|
-
trends: {
|
|
286
|
-
effectivenessOverTime: [],
|
|
287
|
-
improving: [],
|
|
288
|
-
declining: []
|
|
289
|
-
},
|
|
290
|
-
patterns: {
|
|
291
|
-
highPerformanceTasks: [],
|
|
292
|
-
lowPerformanceTasks: [],
|
|
293
|
-
effectiveTeams: []
|
|
294
|
-
}
|
|
297
|
+
async getAnalytics(startTime, endTime, channelId, taskType) {
|
|
298
|
+
const tasks = await this.findCompletedTasks({ startTime, endTime, channelId, taskType });
|
|
299
|
+
return this.computeAnalyticsFromMetrics(tasks, startTime, endTime);
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Query persisted task effectiveness records.
|
|
303
|
+
*
|
|
304
|
+
* @throws If the query fails
|
|
305
|
+
*/
|
|
306
|
+
async findCompletedTasks(filter) {
|
|
307
|
+
const query = {
|
|
308
|
+
'metrics.metadata.startTime': { $gte: filter.startTime, $lte: filter.endTime }
|
|
295
309
|
};
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
const type = task.metadata.type;
|
|
299
|
-
if (!analytics.byTaskType[type]) {
|
|
300
|
-
analytics.byTaskType[type] = {
|
|
301
|
-
count: 0,
|
|
302
|
-
avgCompletionTime: 0,
|
|
303
|
-
successRate: 0,
|
|
304
|
-
avgAutonomyScore: 0,
|
|
305
|
-
commonTools: []
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
const typeStats = analytics.byTaskType[type];
|
|
309
|
-
typeStats.count++;
|
|
310
|
-
typeStats.avgCompletionTime =
|
|
311
|
-
(typeStats.avgCompletionTime * (typeStats.count - 1) +
|
|
312
|
-
(task.performance.completionTime || 0)) / typeStats.count;
|
|
313
|
-
typeStats.avgAutonomyScore =
|
|
314
|
-
(typeStats.avgAutonomyScore * (typeStats.count - 1) +
|
|
315
|
-
task.performance.autonomyScore) / typeStats.count;
|
|
316
|
-
// Track tools
|
|
317
|
-
for (const tool of task.performance.uniqueTools) {
|
|
318
|
-
if (!typeStats.commonTools.includes(tool)) {
|
|
319
|
-
typeStats.commonTools.push(tool);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
310
|
+
if (filter.channelId) {
|
|
311
|
+
query.channelId = filter.channelId;
|
|
322
312
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
313
|
+
if (filter.taskType) {
|
|
314
|
+
query['metrics.metadata.type'] = filter.taskType;
|
|
315
|
+
}
|
|
316
|
+
if (filter.agentId) {
|
|
317
|
+
query.agentIds = filter.agentId;
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
const docs = await TaskEffectivenessModel.find(query).exec();
|
|
321
|
+
return docs.map(doc => doc.metrics);
|
|
322
|
+
}
|
|
323
|
+
catch (error) {
|
|
324
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
325
|
+
this.logger.error(`Failed to query task effectiveness data: ${message}`);
|
|
326
|
+
throw new Error(`Failed to query task effectiveness data: ${message}`);
|
|
328
327
|
}
|
|
329
|
-
// Identify patterns
|
|
330
|
-
analytics.patterns.highPerformanceTasks = Object.entries(analytics.byTaskType)
|
|
331
|
-
.filter(([_, stats]) => stats.successRate > 0.8 && stats.avgAutonomyScore > 0.7)
|
|
332
|
-
.map(([type]) => type);
|
|
333
|
-
analytics.patterns.lowPerformanceTasks = Object.entries(analytics.byTaskType)
|
|
334
|
-
.filter(([_, stats]) => stats.successRate < 0.5 || stats.avgAutonomyScore < 0.3)
|
|
335
|
-
.map(([type]) => type);
|
|
336
|
-
return analytics;
|
|
337
328
|
}
|
|
338
329
|
/**
|
|
339
|
-
* Persist task effectiveness data to MongoDB
|
|
330
|
+
* Persist task effectiveness data to MongoDB.
|
|
331
|
+
*
|
|
332
|
+
* @throws If the task has no definition, or the write fails. A completed task
|
|
333
|
+
* that is not written down is history that is simply gone; the caller
|
|
334
|
+
* needs to know.
|
|
340
335
|
*/
|
|
341
336
|
async persistTaskToDB(taskId, metrics) {
|
|
337
|
+
const definition = this.taskDefinitions.get(taskId);
|
|
338
|
+
if (!definition) {
|
|
339
|
+
throw new Error(`Cannot persist task ${taskId}: no task definition was registered for it`);
|
|
340
|
+
}
|
|
342
341
|
try {
|
|
343
|
-
|
|
344
|
-
if (!definition) {
|
|
345
|
-
this.logger.warn(`No definition found for task ${taskId}, skipping DB persistence`);
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
const taskDoc = await TaskEffectivenessModel.findOneAndUpdate({ taskId }, {
|
|
342
|
+
await TaskEffectivenessModel.findOneAndUpdate({ taskId }, {
|
|
349
343
|
$set: {
|
|
350
344
|
channelId: definition.channelId,
|
|
351
345
|
agentIds: metrics.collaboration.participatingAgents,
|
|
@@ -353,55 +347,12 @@ export class TaskEffectivenessService {
|
|
|
353
347
|
metrics,
|
|
354
348
|
updatedAt: new Date()
|
|
355
349
|
}
|
|
356
|
-
}, { upsert: true, new: true });
|
|
350
|
+
}, { upsert: true, new: true }).exec();
|
|
357
351
|
}
|
|
358
352
|
catch (error) {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
/**
|
|
363
|
-
* Load task effectiveness data from MongoDB
|
|
364
|
-
*/
|
|
365
|
-
async loadTaskFromDB(taskId) {
|
|
366
|
-
try {
|
|
367
|
-
const taskDoc = await TaskEffectivenessModel.findOne({ taskId });
|
|
368
|
-
if (!taskDoc) {
|
|
369
|
-
return null;
|
|
370
|
-
}
|
|
371
|
-
// Store in caches
|
|
372
|
-
this.completedTasks.set(taskId, taskDoc.metrics);
|
|
373
|
-
this.taskDefinitions.set(taskId, taskDoc.definition);
|
|
374
|
-
return taskDoc.metrics;
|
|
375
|
-
}
|
|
376
|
-
catch (error) {
|
|
377
|
-
this.logger.error(`Failed to load task effectiveness data: ${error}`);
|
|
378
|
-
return null;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* Enhanced analytics with MongoDB queries
|
|
383
|
-
*/
|
|
384
|
-
async getEnhancedAnalytics(startTime, endTime, channelId, taskType) {
|
|
385
|
-
try {
|
|
386
|
-
const query = {
|
|
387
|
-
'metrics.metadata.startTime': { $gte: startTime, $lte: endTime }
|
|
388
|
-
};
|
|
389
|
-
if (channelId) {
|
|
390
|
-
query.channelId = channelId;
|
|
391
|
-
}
|
|
392
|
-
if (taskType) {
|
|
393
|
-
query['metrics.metadata.type'] = taskType;
|
|
394
|
-
}
|
|
395
|
-
const tasks = await TaskEffectivenessModel.find(query).exec();
|
|
396
|
-
// Convert to in-memory format and use existing analytics logic
|
|
397
|
-
const taskMetrics = tasks.map(task => task.metrics);
|
|
398
|
-
// Use existing analytics logic but with MongoDB data
|
|
399
|
-
return this.computeAnalyticsFromMetrics(taskMetrics, startTime, endTime);
|
|
400
|
-
}
|
|
401
|
-
catch (error) {
|
|
402
|
-
this.logger.error(`Failed to get enhanced analytics: ${error}`);
|
|
403
|
-
// Fallback to in-memory analytics
|
|
404
|
-
return this.getAnalytics(startTime, endTime, channelId);
|
|
353
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
354
|
+
this.logger.error(`Failed to persist task effectiveness data for ${taskId}: ${message}`);
|
|
355
|
+
throw new Error(`Failed to persist task effectiveness data for ${taskId}: ${message}`);
|
|
405
356
|
}
|
|
406
357
|
}
|
|
407
358
|
/**
|
|
@@ -664,27 +615,20 @@ export class TaskEffectivenessService {
|
|
|
664
615
|
* Get task metrics by ID
|
|
665
616
|
*/
|
|
666
617
|
async getTaskMetrics(taskId) {
|
|
667
|
-
//
|
|
618
|
+
// A running task lives in memory; a finished one lives in MongoDB.
|
|
668
619
|
const activeTask = this.activeTasks.get(taskId);
|
|
669
620
|
if (activeTask) {
|
|
670
621
|
return activeTask;
|
|
671
622
|
}
|
|
672
|
-
// Check completed tasks
|
|
673
|
-
const completedTask = this.completedTasks.get(taskId);
|
|
674
|
-
if (completedTask) {
|
|
675
|
-
return completedTask;
|
|
676
|
-
}
|
|
677
|
-
// Try to load from MongoDB
|
|
678
623
|
try {
|
|
679
|
-
const taskDoc = await TaskEffectivenessModel.findOne({ taskId });
|
|
680
|
-
|
|
681
|
-
return taskDoc.metrics;
|
|
682
|
-
}
|
|
624
|
+
const taskDoc = await TaskEffectivenessModel.findOne({ taskId }).exec();
|
|
625
|
+
return taskDoc ? taskDoc.metrics : null;
|
|
683
626
|
}
|
|
684
627
|
catch (error) {
|
|
685
|
-
|
|
628
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
629
|
+
this.logger.error(`Failed to load task ${taskId}: ${message}`);
|
|
630
|
+
throw new Error(`Failed to load task ${taskId}: ${message}`);
|
|
686
631
|
}
|
|
687
|
-
return null;
|
|
688
632
|
}
|
|
689
633
|
/**
|
|
690
634
|
* Get effectiveness trends over time
|
|
@@ -692,15 +636,13 @@ export class TaskEffectivenessService {
|
|
|
692
636
|
async getEffectivenessTrends(startTime, endTime, intervalMs, channelId) {
|
|
693
637
|
const dataPoints = [];
|
|
694
638
|
const intervals = Math.floor((endTime - startTime) / intervalMs);
|
|
639
|
+
// One query for the whole window, then bucket in memory.
|
|
640
|
+
const tasks = await this.findCompletedTasks({ startTime, endTime, channelId });
|
|
695
641
|
for (let i = 0; i < intervals; i++) {
|
|
696
642
|
const intervalStart = startTime + (i * intervalMs);
|
|
697
643
|
const intervalEnd = intervalStart + intervalMs;
|
|
698
|
-
const intervalTasks =
|
|
699
|
-
|
|
700
|
-
return task.metadata.startTime >= intervalStart &&
|
|
701
|
-
task.metadata.startTime < intervalEnd &&
|
|
702
|
-
(!channelId || taskChannel === channelId);
|
|
703
|
-
});
|
|
644
|
+
const intervalTasks = tasks.filter(task => task.metadata.startTime >= intervalStart &&
|
|
645
|
+
task.metadata.startTime < intervalEnd);
|
|
704
646
|
if (intervalTasks.length > 0) {
|
|
705
647
|
const avgScore = intervalTasks.reduce((sum, task) => sum + this.calculateOverallScore(task), 0) / intervalTasks.length;
|
|
706
648
|
const successRate = intervalTasks.filter(t => t.quality.goalAchieved).length /
|
|
@@ -725,14 +667,8 @@ export class TaskEffectivenessService {
|
|
|
725
667
|
* Get agent-specific effectiveness
|
|
726
668
|
*/
|
|
727
669
|
async getAgentEffectiveness(agentId, startTime, endTime, channelId) {
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
const hasAgent = task.collaboration.participatingAgents.includes(agentId);
|
|
731
|
-
return hasAgent &&
|
|
732
|
-
task.metadata.startTime >= startTime &&
|
|
733
|
-
task.metadata.startTime <= endTime &&
|
|
734
|
-
(!channelId || taskChannel === channelId);
|
|
735
|
-
});
|
|
670
|
+
// The agentIds index on the document does the channel/time/agent filtering.
|
|
671
|
+
const agentTasks = await this.findCompletedTasks({ startTime, endTime, channelId, agentId });
|
|
736
672
|
const totalTasks = agentTasks.length;
|
|
737
673
|
const successfulTasks = agentTasks.filter(t => t.quality.goalAchieved).length;
|
|
738
674
|
const successRate = totalTasks > 0 ? successfulTasks / totalTasks : 0;
|