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