@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.
- package/dist/config/ModelContextLimits.d.ts.map +1 -1
- package/dist/config/ModelContextLimits.js +7 -1
- package/dist/config/ModelContextLimits.js.map +1 -1
- package/dist/constants/CoreTools.d.ts +6 -5
- package/dist/constants/CoreTools.d.ts.map +1 -1
- package/dist/constants/CoreTools.js +6 -5
- package/dist/constants/CoreTools.js.map +1 -1
- package/dist/constants/DefaultPhaseProfiles.d.ts.map +1 -1
- package/dist/constants/DefaultPhaseProfiles.js +29 -0
- package/dist/constants/DefaultPhaseProfiles.js.map +1 -1
- package/dist/constants/ReservedIdentities.d.ts +14 -0
- package/dist/constants/ReservedIdentities.d.ts.map +1 -0
- package/dist/constants/ReservedIdentities.js +42 -0
- package/dist/constants/ReservedIdentities.js.map +1 -0
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.d.ts +16 -16
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.d.ts.map +1 -1
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.js +98 -36
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.js.map +1 -1
- package/dist/events/ClientEventBus.d.ts +28 -0
- package/dist/events/ClientEventBus.d.ts.map +1 -1
- package/dist/events/ClientEventBus.js +87 -40
- package/dist/events/ClientEventBus.js.map +1 -1
- package/dist/events/EventBus.d.ts +19 -1
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/events/EventBus.js +23 -0
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/EventBusBase.d.ts +37 -6
- package/dist/events/EventBusBase.d.ts.map +1 -1
- package/dist/events/EventBusBase.js +75 -27
- package/dist/events/EventBusBase.js.map +1 -1
- package/dist/events/EventNames.d.ts +49 -36
- package/dist/events/EventNames.d.ts.map +1 -1
- package/dist/events/EventNames.js +38 -36
- package/dist/events/EventNames.js.map +1 -1
- package/dist/events/PublicEvents.d.ts +5 -1
- package/dist/events/PublicEvents.d.ts.map +1 -1
- package/dist/events/PublicEvents.js +7 -0
- package/dist/events/PublicEvents.js.map +1 -1
- package/dist/events/ServerEventBus.d.ts +7 -54
- package/dist/events/ServerEventBus.d.ts.map +1 -1
- package/dist/events/ServerEventBus.js +10 -96
- package/dist/events/ServerEventBus.js.map +1 -1
- package/dist/events/event-definitions/ControlLoopEvents.d.ts +35 -0
- package/dist/events/event-definitions/ControlLoopEvents.d.ts.map +1 -1
- package/dist/events/event-definitions/ControlLoopEvents.js +6 -0
- package/dist/events/event-definitions/ControlLoopEvents.js.map +1 -1
- package/dist/events/event-definitions/SdkEvents.d.ts +55 -0
- package/dist/events/event-definitions/SdkEvents.d.ts.map +1 -0
- package/dist/events/event-definitions/SdkEvents.js +36 -0
- package/dist/events/event-definitions/SdkEvents.js.map +1 -0
- package/dist/events/event-definitions/TaskEvents.d.ts +2 -7
- package/dist/events/event-definitions/TaskEvents.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/AgentInterfaces.d.ts +5 -0
- package/dist/interfaces/AgentInterfaces.d.ts.map +1 -1
- package/dist/interfaces/ChannelConfig.d.ts +2 -2
- package/dist/interfaces/ChannelConfig.d.ts.map +1 -1
- package/dist/interfaces/ConversationMessage.d.ts +1 -1
- package/dist/interfaces/ConversationMessage.d.ts.map +1 -1
- package/dist/interfaces/IMemoryPersistence.d.ts +47 -1
- package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -1
- package/dist/interfaces/SocketServiceInterface.d.ts +3 -2
- package/dist/interfaces/SocketServiceInterface.d.ts.map +1 -1
- package/dist/interfaces/TaskInterfaces.d.ts +14 -1
- package/dist/interfaces/TaskInterfaces.d.ts.map +1 -1
- package/dist/models/agent.d.ts +0 -1
- package/dist/models/agent.d.ts.map +1 -1
- package/dist/models/agent.js +0 -5
- package/dist/models/agent.js.map +1 -1
- package/dist/models/agentIdentityReservation.d.ts +42 -0
- package/dist/models/agentIdentityReservation.d.ts.map +1 -0
- package/dist/models/agentIdentityReservation.js +52 -0
- package/dist/models/agentIdentityReservation.js.map +1 -0
- package/dist/models/channel.d.ts +2 -0
- package/dist/models/channel.d.ts.map +1 -1
- package/dist/models/channel.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/memory.d.ts +1 -1
- package/dist/models/memory.d.ts.map +1 -1
- package/dist/models/memory.js +9 -12
- package/dist/models/memory.js.map +1 -1
- package/dist/models/memoryStrata.d.ts +3 -16
- package/dist/models/memoryStrata.d.ts.map +1 -1
- package/dist/models/memoryStrata.js +3 -5
- package/dist/models/memoryStrata.js.map +1 -1
- package/dist/models/plan.d.ts +2 -2
- package/dist/models/plan.d.ts.map +1 -1
- package/dist/models/plan.js +1 -1
- package/dist/models/plan.js.map +1 -1
- package/dist/models/taskEffectiveness.d.ts +1 -0
- package/dist/models/taskEffectiveness.d.ts.map +1 -1
- package/dist/models/taskEffectiveness.js +7 -1
- package/dist/models/taskEffectiveness.js.map +1 -1
- package/dist/models/user.d.ts +4 -0
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +8 -0
- package/dist/models/user.js.map +1 -1
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.d.ts +16 -0
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.js +25 -0
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.js.map +1 -0
- package/dist/protocols/mcp/McpServerTypes.d.ts +9 -0
- package/dist/protocols/mcp/McpServerTypes.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/AnthropicMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/AnthropicMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/AnthropicMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/BaseMcpClient.d.ts +4 -0
- package/dist/protocols/mcp/providers/BaseMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/BaseMcpClient.js +10 -0
- package/dist/protocols/mcp/providers/BaseMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/CustomMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/CustomMcpClient.js +7 -0
- package/dist/protocols/mcp/providers/CustomMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/GeminiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/GeminiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/GeminiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/OllamaMcpClient.d.ts +1 -0
- package/dist/protocols/mcp/providers/OllamaMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/OllamaMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/OllamaMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/OpenAiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/OpenAiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/OpenAiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.js +2 -0
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/XaiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/XaiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/XaiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/security/BrowserTargetGuard.d.ts +14 -0
- package/dist/protocols/mcp/security/BrowserTargetGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/security/BrowserTargetGuard.js +55 -0
- package/dist/protocols/mcp/security/BrowserTargetGuard.js.map +1 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.d.ts +24 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.d.ts.map +1 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.js +33 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.js.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/HttpTargetGuard.js +68 -6
- package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.js +7 -5
- package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts +18 -0
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.js +60 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +25 -0
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js +93 -17
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +2 -2
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.js +25 -8
- package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.d.ts +3 -37
- package/dist/protocols/mcp/tools/AnalyticsTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js +134 -614
- 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 +16 -13
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.js +94 -30
- package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.js +9 -5
- package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +10 -40
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.js +29 -70
- package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
- package/dist/protocols/mcp/tools/JsonTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/JsonTools.js +4 -4
- package/dist/protocols/mcp/tools/JsonTools.js.map +1 -1
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.d.ts +55 -592
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.js +169 -119
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +6 -6
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js +107 -39
- package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemoryUtilityTools.d.ts +4 -5
- package/dist/protocols/mcp/tools/MemoryUtilityTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemoryUtilityTools.js +59 -208
- package/dist/protocols/mcp/tools/MemoryUtilityTools.js.map +1 -1
- package/dist/protocols/mcp/tools/PlanningTools.d.ts +2 -1
- package/dist/protocols/mcp/tools/PlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/PlanningTools.js +111 -49
- package/dist/protocols/mcp/tools/PlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/ProjectContextTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/ProjectContextTools.js +18 -12
- package/dist/protocols/mcp/tools/ProjectContextTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.js +16 -13
- package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SearchProjectTools.d.ts +24 -7
- package/dist/protocols/mcp/tools/SearchProjectTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SearchProjectTools.js +226 -126
- package/dist/protocols/mcp/tools/SearchProjectTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts +0 -32
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.js +363 -450
- package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.js +18 -11
- package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.js +22 -12
- package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
- package/dist/protocols/mcp/tools/UserInputTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/UserInputTools.js +14 -1
- package/dist/protocols/mcp/tools/UserInputTools.js.map +1 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.d.ts +3 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.js +27 -62
- package/dist/protocols/mcp/tools/UserMemoryTools.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +14 -60
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellSandbox.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellSandbox.js +9 -27
- package/dist/protocols/mcp/tools/shell/ShellSandbox.js.map +1 -1
- package/dist/repositories/interfaces/IKnowledgeGraphRepository.d.ts +40 -30
- package/dist/repositories/interfaces/IKnowledgeGraphRepository.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.d.ts +28 -0
- package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.js +30 -1
- package/dist/schemas/EventPayloadSchema.js.map +1 -1
- package/dist/schemas/MxpProtocolSchemas.d.ts +6 -6
- package/dist/services/AgentPerformanceService.d.ts +11 -0
- package/dist/services/AgentPerformanceService.d.ts.map +1 -1
- package/dist/services/AgentPerformanceService.js +59 -33
- package/dist/services/AgentPerformanceService.js.map +1 -1
- package/dist/services/AutoCorrectionService.d.ts +3 -0
- package/dist/services/AutoCorrectionService.d.ts.map +1 -1
- package/dist/services/AutoCorrectionService.js +19 -2
- package/dist/services/AutoCorrectionService.js.map +1 -1
- package/dist/services/BackgroundTaskManager.d.ts +23 -7
- package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/services/BackgroundTaskManager.js +137 -57
- package/dist/services/BackgroundTaskManager.js.map +1 -1
- package/dist/services/BrowserManager.d.ts +2 -0
- package/dist/services/BrowserManager.d.ts.map +1 -1
- package/dist/services/BrowserManager.js +18 -15
- package/dist/services/BrowserManager.js.map +1 -1
- package/dist/services/ChannelContextMemoryOperations.d.ts +8 -1
- package/dist/services/ChannelContextMemoryOperations.d.ts.map +1 -1
- package/dist/services/ChannelContextMemoryOperations.js +89 -165
- package/dist/services/ChannelContextMemoryOperations.js.map +1 -1
- package/dist/services/ChannelContextMessageOperations.d.ts +4 -3
- package/dist/services/ChannelContextMessageOperations.d.ts.map +1 -1
- package/dist/services/ChannelContextMessageOperations.js +72 -212
- package/dist/services/ChannelContextMessageOperations.js.map +1 -1
- package/dist/services/MemoryService.d.ts +52 -21
- package/dist/services/MemoryService.d.ts.map +1 -1
- package/dist/services/MemoryService.js +775 -548
- package/dist/services/MemoryService.js.map +1 -1
- package/dist/services/PatternLearningService.d.ts +5 -0
- package/dist/services/PatternLearningService.d.ts.map +1 -1
- package/dist/services/PatternLearningService.js +26 -3
- package/dist/services/PatternLearningService.js.map +1 -1
- package/dist/services/PerformanceOptimizationService.d.ts +2 -1
- package/dist/services/PerformanceOptimizationService.d.ts.map +1 -1
- package/dist/services/PerformanceOptimizationService.js +21 -6
- package/dist/services/PerformanceOptimizationService.js.map +1 -1
- package/dist/services/PredictiveAnalyticsService.d.ts +1 -0
- package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
- package/dist/services/PredictiveAnalyticsService.js +18 -6
- package/dist/services/PredictiveAnalyticsService.js.map +1 -1
- package/dist/services/ProactiveValidationService.d.ts +6 -0
- package/dist/services/ProactiveValidationService.d.ts.map +1 -1
- package/dist/services/ProactiveValidationService.js +58 -39
- package/dist/services/ProactiveValidationService.js.map +1 -1
- package/dist/services/TaskEffectivenessService.d.ts +55 -31
- package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
- package/dist/services/TaskEffectivenessService.js +243 -125
- package/dist/services/TaskEffectivenessService.js.map +1 -1
- package/dist/services/ToolExecutionInterceptor.d.ts +4 -0
- package/dist/services/ToolExecutionInterceptor.d.ts.map +1 -1
- package/dist/services/ToolExecutionInterceptor.js +31 -5
- package/dist/services/ToolExecutionInterceptor.js.map +1 -1
- package/dist/services/UserInputRequestManager.d.ts +13 -3
- package/dist/services/UserInputRequestManager.d.ts.map +1 -1
- package/dist/services/UserInputRequestManager.js +42 -6
- package/dist/services/UserInputRequestManager.js.map +1 -1
- package/dist/services/UserMemoryService.d.ts +2 -0
- package/dist/services/UserMemoryService.d.ts.map +1 -1
- package/dist/services/UserMemoryService.js +9 -4
- package/dist/services/UserMemoryService.js.map +1 -1
- package/dist/services/ValidationAnalyticsService.d.ts +4 -0
- package/dist/services/ValidationAnalyticsService.d.ts.map +1 -1
- package/dist/services/ValidationAnalyticsService.js +30 -8
- package/dist/services/ValidationAnalyticsService.js.map +1 -1
- package/dist/services/ValidationCacheService.d.ts +3 -1
- package/dist/services/ValidationCacheService.d.ts.map +1 -1
- package/dist/services/ValidationCacheService.js +25 -4
- package/dist/services/ValidationCacheService.js.map +1 -1
- package/dist/services/ValidationMiddleware.d.ts +7 -0
- package/dist/services/ValidationMiddleware.d.ts.map +1 -1
- package/dist/services/ValidationMiddleware.js +53 -10
- package/dist/services/ValidationMiddleware.js.map +1 -1
- package/dist/services/ValidationPerformanceService.d.ts +3 -0
- package/dist/services/ValidationPerformanceService.d.ts.map +1 -1
- package/dist/services/ValidationPerformanceService.js +28 -11
- package/dist/services/ValidationPerformanceService.js.map +1 -1
- package/dist/services/WebSearchService.d.ts.map +1 -1
- package/dist/services/WebSearchService.js +9 -0
- package/dist/services/WebSearchService.js.map +1 -1
- package/dist/services/dag/TaskDagService.d.ts +3 -0
- package/dist/services/dag/TaskDagService.d.ts.map +1 -1
- package/dist/services/dag/TaskDagService.js +18 -0
- package/dist/services/dag/TaskDagService.js.map +1 -1
- package/dist/services/kg/EntityQValueManager.d.ts +3 -1
- package/dist/services/kg/EntityQValueManager.d.ts.map +1 -1
- package/dist/services/kg/EntityQValueManager.js +10 -10
- package/dist/services/kg/EntityQValueManager.js.map +1 -1
- package/dist/services/kg/GraphSurpriseCalculator.d.ts +0 -4
- package/dist/services/kg/GraphSurpriseCalculator.d.ts.map +1 -1
- package/dist/services/kg/GraphSurpriseCalculator.js +0 -9
- package/dist/services/kg/GraphSurpriseCalculator.js.map +1 -1
- package/dist/services/kg/KnowledgeGraphService.d.ts +12 -12
- package/dist/services/kg/KnowledgeGraphService.d.ts.map +1 -1
- package/dist/services/kg/KnowledgeGraphService.js +43 -51
- package/dist/services/kg/KnowledgeGraphService.js.map +1 -1
- package/dist/services/kg/OrparGraphIntegration.d.ts.map +1 -1
- package/dist/services/kg/OrparGraphIntegration.js +6 -5
- package/dist/services/kg/OrparGraphIntegration.js.map +1 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.d.ts +1 -0
- package/dist/services/orpar-memory/CycleConsolidationTrigger.d.ts.map +1 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.js +8 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.js.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts +8 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js +93 -45
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.d.ts +1 -0
- package/dist/services/orpar-memory/SurpriseOrparAdapter.d.ts.map +1 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.js +8 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.js.map +1 -1
- package/dist/types/ChannelContext.d.ts +2 -1
- package/dist/types/ChannelContext.d.ts.map +1 -1
- package/dist/types/EffectivenessTypes.d.ts +4 -1
- package/dist/types/EffectivenessTypes.d.ts.map +1 -1
- package/dist/types/TaskCompletionTypes.d.ts +7 -5
- package/dist/types/TaskCompletionTypes.d.ts.map +1 -1
- package/dist/types/TaskTypes.d.ts +8 -1
- package/dist/types/TaskTypes.d.ts.map +1 -1
- package/dist/utils/GlobMatcher.d.ts +37 -0
- package/dist/utils/GlobMatcher.d.ts.map +1 -0
- package/dist/utils/GlobMatcher.js +131 -0
- package/dist/utils/GlobMatcher.js.map +1 -0
- package/package.json +1 -1
- package/src/config/ModelContextLimits.ts +7 -1
- package/src/constants/CoreTools.ts +6 -5
- package/src/constants/DefaultPhaseProfiles.ts +29 -0
- package/src/constants/ReservedIdentities.ts +51 -0
- package/src/database/adapters/mongodb/MongoKnowledgeGraphRepository.ts +115 -36
- package/src/events/ClientEventBus.ts +117 -48
- package/src/events/EventBus.ts +32 -2
- package/src/events/EventBusBase.ts +132 -39
- package/src/events/EventNames.ts +43 -36
- package/src/events/PublicEvents.ts +8 -0
- package/src/events/ServerEventBus.ts +9 -128
- package/src/events/event-definitions/ControlLoopEvents.ts +12 -0
- package/src/events/event-definitions/SdkEvents.ts +58 -0
- package/src/events/event-definitions/TaskEvents.ts +2 -2
- package/src/index.ts +15 -0
- package/src/interfaces/AgentInterfaces.ts +5 -0
- package/src/interfaces/ChannelConfig.ts +2 -2
- package/src/interfaces/ConversationMessage.ts +5 -0
- package/src/interfaces/IMemoryPersistence.ts +55 -1
- package/src/interfaces/SocketServiceInterface.ts +3 -2
- package/src/interfaces/TaskInterfaces.ts +16 -1
- package/src/models/agent.ts +0 -6
- package/src/models/agentIdentityReservation.ts +77 -0
- package/src/models/channel.ts +2 -0
- package/src/models/channelKey.ts +10 -0
- package/src/models/memory.ts +18 -19
- package/src/models/memoryStrata.ts +9 -23
- package/src/models/plan.ts +3 -3
- package/src/models/taskEffectiveness.ts +9 -2
- package/src/models/user.ts +12 -0
- package/src/protocols/mcp/LlmTestEnvironmentGuard.ts +30 -0
- package/src/protocols/mcp/McpServerTypes.ts +9 -0
- package/src/protocols/mcp/providers/AnthropicMcpClient.ts +2 -0
- package/src/protocols/mcp/providers/AzureOpenAiMcpClient.ts +1 -0
- package/src/protocols/mcp/providers/BaseMcpClient.ts +13 -0
- package/src/protocols/mcp/providers/CustomMcpClient.ts +7 -0
- package/src/protocols/mcp/providers/GeminiMcpClient.ts +2 -0
- package/src/protocols/mcp/providers/OllamaMcpClient.ts +3 -1
- package/src/protocols/mcp/providers/OpenAiMcpClient.ts +2 -0
- package/src/protocols/mcp/providers/OpenRouterMcpClient.ts +3 -0
- package/src/protocols/mcp/providers/XaiMcpClient.ts +2 -0
- package/src/protocols/mcp/security/BrowserTargetGuard.ts +64 -0
- package/src/protocols/mcp/security/ExternalMcpRegistrationPolicy.ts +38 -0
- package/src/protocols/mcp/security/HttpTargetGuard.ts +77 -6
- package/src/protocols/mcp/security/McpSecurityGuard.ts +7 -5
- package/src/protocols/mcp/security/McpToolPolicy.ts +74 -0
- package/src/protocols/mcp/services/ExternalMcpServerManager.ts +146 -17
- package/src/protocols/mcp/services/ExternalServerConfigs.ts +26 -8
- package/src/protocols/mcp/tools/AnalyticsTools.ts +167 -641
- package/src/protocols/mcp/tools/CodeAnalysisTools.ts +44 -14
- package/src/protocols/mcp/tools/EffectivenessTools.ts +185 -45
- package/src/protocols/mcp/tools/GitTools.ts +15 -5
- package/src/protocols/mcp/tools/InfrastructureTools.ts +42 -90
- package/src/protocols/mcp/tools/JsonTools.ts +7 -4
- package/src/protocols/mcp/tools/KnowledgeGraphTools.ts +313 -164
- package/src/protocols/mcp/tools/MemorySearchTools.ts +158 -46
- package/src/protocols/mcp/tools/MemoryUtilityTools.ts +85 -232
- package/src/protocols/mcp/tools/PlanningTools.ts +137 -59
- package/src/protocols/mcp/tools/ProjectContextTools.ts +33 -12
- package/src/protocols/mcp/tools/SafetyTools.ts +49 -13
- package/src/protocols/mcp/tools/SearchProjectTools.ts +294 -153
- package/src/protocols/mcp/tools/TaskPlanningTools.ts +437 -514
- package/src/protocols/mcp/tools/TestTools.ts +41 -11
- package/src/protocols/mcp/tools/TypeScriptTools.ts +61 -12
- package/src/protocols/mcp/tools/UserInputTools.ts +15 -1
- package/src/protocols/mcp/tools/UserMemoryTools.ts +27 -62
- package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +26 -84
- package/src/protocols/mcp/tools/shell/ShellSandbox.ts +13 -31
- package/src/repositories/interfaces/IKnowledgeGraphRepository.ts +45 -27
- package/src/schemas/EventPayloadSchema.ts +45 -1
- package/src/services/AgentPerformanceService.ts +85 -36
- package/src/services/AutoCorrectionService.ts +25 -6
- package/src/services/BackgroundTaskManager.ts +183 -76
- package/src/services/BrowserManager.ts +20 -16
- package/src/services/ChannelContextMemoryOperations.ts +169 -202
- package/src/services/ChannelContextMessageOperations.ts +112 -274
- package/src/services/MemoryService.ts +1053 -760
- package/src/services/PatternLearningService.ts +32 -7
- package/src/services/PerformanceOptimizationService.ts +26 -9
- package/src/services/PredictiveAnalyticsService.ts +23 -10
- package/src/services/ProactiveValidationService.ts +66 -40
- package/src/services/TaskEffectivenessService.ts +421 -206
- package/src/services/ToolExecutionInterceptor.ts +40 -9
- package/src/services/UserInputRequestManager.ts +51 -6
- package/src/services/UserMemoryService.ts +12 -3
- package/src/services/ValidationAnalyticsService.ts +36 -11
- package/src/services/ValidationCacheService.ts +30 -7
- package/src/services/ValidationMiddleware.ts +62 -14
- package/src/services/ValidationPerformanceService.ts +47 -25
- package/src/services/WebSearchService.ts +16 -4
- package/src/services/dag/TaskDagService.ts +20 -1
- package/src/services/kg/EntityQValueManager.ts +21 -10
- package/src/services/kg/GraphSurpriseCalculator.ts +0 -14
- package/src/services/kg/KnowledgeGraphService.ts +56 -48
- package/src/services/kg/OrparGraphIntegration.ts +11 -5
- package/src/services/orpar-memory/CycleConsolidationTrigger.ts +10 -1
- package/src/services/orpar-memory/OrparMemoryCoordinator.ts +142 -71
- package/src/services/orpar-memory/SurpriseOrparAdapter.ts +10 -1
- package/src/types/ChannelContext.ts +3 -1
- package/src/types/EffectivenessTypes.ts +6 -2
- package/src/types/TaskCompletionTypes.ts +9 -9
- package/src/types/TaskTypes.ts +12 -1
- 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
|
|
147
|
+
* List background tasks owned by the exact authenticated agent/channel pair.
|
|
139
148
|
*
|
|
140
|
-
* @param
|
|
149
|
+
* @param principal - Authenticated agent and channel identity
|
|
141
150
|
* @returns Array of BackgroundTaskInfo for matching tasks
|
|
142
151
|
*/
|
|
143
|
-
listTasks(
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmBH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
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
|
|
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
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
315
|
+
* List background tasks owned by the exact authenticated agent/channel pair.
|
|
283
316
|
*
|
|
284
|
-
* @param
|
|
317
|
+
* @param principal - Authenticated agent and channel identity
|
|
285
318
|
* @returns Array of BackgroundTaskInfo for matching tasks
|
|
286
319
|
*/
|
|
287
|
-
listTasks(
|
|
320
|
+
listTasks(principal) {
|
|
288
321
|
const results = [];
|
|
289
322
|
for (const task of this.tasks.values()) {
|
|
290
|
-
if (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
|
-
|
|
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.
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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.
|
|
317
|
-
task.
|
|
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.
|