@mxf-dev/core 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -1
- package/dist/adapters/FrameworkAdapter.d.ts +1 -1
- package/dist/adapters/FrameworkAdapter.js +2 -2
- package/dist/adapters/FrameworkAdapter.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.js +1 -1
- package/dist/config/ConfigManager.d.ts +10 -9
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +48 -18
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/McpPromptsConfig.d.ts +1 -1
- package/dist/config/McpPromptsConfig.js +1 -1
- package/dist/config/ModelContextLimits.d.ts +1 -1
- package/dist/config/ModelContextLimits.js +1 -1
- package/dist/config/PromptCompactionConfig.d.ts +1 -1
- package/dist/config/PromptCompactionConfig.js +1 -1
- package/dist/config/PromptConfig.d.ts +1 -1
- package/dist/config/PromptConfig.js +1 -1
- package/dist/config/ServerConfig.d.ts +1 -1
- package/dist/config/ServerConfig.js +1 -1
- package/dist/config/dag.config.d.ts +1 -1
- package/dist/config/dag.config.js +1 -1
- package/dist/config/knowledge-graph.config.d.ts +1 -1
- package/dist/config/knowledge-graph.config.js +1 -1
- package/dist/config/memory-strata.config.d.ts +25 -0
- package/dist/config/memory-strata.config.d.ts.map +1 -0
- package/dist/config/memory-strata.config.js +107 -0
- package/dist/config/memory-strata.config.js.map +1 -0
- package/dist/config/orpar-memory.config.d.ts +1 -1
- package/dist/config/orpar-memory.config.js +1 -1
- package/dist/config/tensorflow.config.d.ts +1 -1
- package/dist/config/tensorflow.config.js +1 -1
- package/dist/constants/CoreTools.d.ts +1 -1
- package/dist/constants/CoreTools.js +1 -1
- package/dist/constants/DefaultPhaseProfiles.d.ts +1 -1
- package/dist/constants/DefaultPhaseProfiles.js +1 -1
- package/dist/constants/ToolNames.d.ts +2 -30
- package/dist/constants/ToolNames.d.ts.map +1 -1
- package/dist/constants/ToolNames.js +5 -18
- package/dist/constants/ToolNames.js.map +1 -1
- package/dist/database/DatabaseAdapterFactory.d.ts +15 -3
- package/dist/database/DatabaseAdapterFactory.d.ts.map +1 -1
- package/dist/database/DatabaseAdapterFactory.js +22 -7
- package/dist/database/DatabaseAdapterFactory.js.map +1 -1
- package/dist/database/adapters/mongodb/MongoAgentRepository.d.ts +1 -1
- package/dist/database/adapters/mongodb/MongoAgentRepository.js +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts +8 -2
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts.map +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.js +13 -3
- package/dist/database/adapters/mongodb/MongoBaseRepository.js.map +1 -1
- package/dist/database/adapters/mongodb/MongoChannelRepository.d.ts +1 -1
- package/dist/database/adapters/mongodb/MongoChannelRepository.js +1 -1
- package/dist/database/adapters/mongodb/MongoDagRepository.d.ts +1 -1
- package/dist/database/adapters/mongodb/MongoDagRepository.js +1 -1
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.d.ts +1 -1
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.js +1 -1
- package/dist/database/adapters/mongodb/MongoMemoryRepository.d.ts +1 -1
- package/dist/database/adapters/mongodb/MongoMemoryRepository.js +1 -1
- package/dist/database/adapters/mongodb/MongoTaskRepository.d.ts +1 -1
- package/dist/database/adapters/mongodb/MongoTaskRepository.js +1 -1
- package/dist/database/adapters/mongodb/index.d.ts +1 -1
- package/dist/database/adapters/mongodb/index.js +1 -1
- package/dist/database/index.d.ts +1 -1
- package/dist/database/index.js +1 -1
- package/dist/events/ClientEventBus.d.ts +17 -78
- package/dist/events/ClientEventBus.d.ts.map +1 -1
- package/dist/events/ClientEventBus.js +39 -312
- package/dist/events/ClientEventBus.js.map +1 -1
- package/dist/events/EventBus.d.ts +2 -2
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/events/EventBus.js +6 -5
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/EventBusBase.d.ts +140 -35
- package/dist/events/EventBusBase.d.ts.map +1 -1
- package/dist/events/EventBusBase.js +367 -89
- package/dist/events/EventBusBase.js.map +1 -1
- package/dist/events/EventNames.d.ts +11 -2
- package/dist/events/EventNames.d.ts.map +1 -1
- package/dist/events/EventNames.js +4 -1
- package/dist/events/EventNames.js.map +1 -1
- package/dist/events/PublicEvents.d.ts +7 -3
- package/dist/events/PublicEvents.d.ts.map +1 -1
- package/dist/events/PublicEvents.js +8 -5
- package/dist/events/PublicEvents.js.map +1 -1
- package/dist/events/ServerEventBus.d.ts +24 -113
- package/dist/events/ServerEventBus.d.ts.map +1 -1
- package/dist/events/ServerEventBus.js +59 -324
- package/dist/events/ServerEventBus.js.map +1 -1
- package/dist/events/event-definitions/AgentEvents.d.ts +1 -1
- package/dist/events/event-definitions/AgentEvents.js +1 -1
- package/dist/events/event-definitions/AnalyticsEvents.d.ts +1 -1
- package/dist/events/event-definitions/AnalyticsEvents.js +1 -1
- package/dist/events/event-definitions/BulkEvents.d.ts +1 -1
- package/dist/events/event-definitions/BulkEvents.js +1 -1
- package/dist/events/event-definitions/ChannelEvents.d.ts +1 -1
- package/dist/events/event-definitions/ChannelEvents.js +1 -1
- package/dist/events/event-definitions/CodeExecutionEvents.d.ts +1 -1
- package/dist/events/event-definitions/CodeExecutionEvents.js +1 -1
- package/dist/events/event-definitions/CompactionEvents.d.ts +1 -1
- package/dist/events/event-definitions/CompactionEvents.js +1 -1
- package/dist/events/event-definitions/ConfigEvents.d.ts +1 -1
- package/dist/events/event-definitions/ConfigEvents.js +1 -1
- package/dist/events/event-definitions/ControlLoopEvents.d.ts +1 -1
- package/dist/events/event-definitions/ControlLoopEvents.js +1 -1
- package/dist/events/event-definitions/DagEvents.d.ts +1 -1
- package/dist/events/event-definitions/DagEvents.js +1 -1
- package/dist/events/event-definitions/HeartbeatEvents.d.ts +1 -1
- package/dist/events/event-definitions/HeartbeatEvents.js +1 -1
- package/dist/events/event-definitions/InferenceParameterEvents.d.ts +1 -1
- package/dist/events/event-definitions/InferenceParameterEvents.js +1 -1
- package/dist/events/event-definitions/KeyEvents.d.ts +1 -1
- package/dist/events/event-definitions/KeyEvents.js +1 -1
- package/dist/events/event-definitions/KnowledgeGraphEvents.d.ts +1 -1
- package/dist/events/event-definitions/KnowledgeGraphEvents.js +1 -1
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts +68 -0
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts.map +1 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js +35 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js.map +1 -0
- package/dist/events/event-definitions/LlmEvents.d.ts +1 -1
- package/dist/events/event-definitions/LlmEvents.js +1 -1
- package/dist/events/event-definitions/McpEvents.d.ts +1 -1
- package/dist/events/event-definitions/McpEvents.js +1 -1
- package/dist/events/event-definitions/MeilisearchEvents.d.ts +1 -1
- package/dist/events/event-definitions/MeilisearchEvents.js +1 -1
- package/dist/events/event-definitions/MemoryEvents.d.ts +1 -1
- package/dist/events/event-definitions/MemoryEvents.js +1 -1
- package/dist/events/event-definitions/MemoryUtilityEvents.d.ts +1 -1
- package/dist/events/event-definitions/MemoryUtilityEvents.js +1 -1
- package/dist/events/event-definitions/MessageEvents.d.ts +1 -1
- package/dist/events/event-definitions/MessageEvents.js +1 -1
- package/dist/events/event-definitions/MxpEvents.d.ts +1 -1
- package/dist/events/event-definitions/MxpEvents.js +1 -1
- package/dist/events/event-definitions/OrparEvents.d.ts +1 -1
- package/dist/events/event-definitions/OrparEvents.js +1 -1
- package/dist/events/event-definitions/OrparMemoryEvents.d.ts +1 -1
- package/dist/events/event-definitions/OrparMemoryEvents.js +1 -1
- package/dist/events/event-definitions/PlanEvents.d.ts +1 -1
- package/dist/events/event-definitions/PlanEvents.js +1 -1
- package/dist/events/event-definitions/ProgressEvents.d.ts +1 -1
- package/dist/events/event-definitions/ProgressEvents.js +1 -1
- package/dist/events/event-definitions/ShellExecutionEvents.d.ts +1 -1
- package/dist/events/event-definitions/ShellExecutionEvents.js +1 -1
- package/dist/events/event-definitions/SystemEvents.d.ts +1 -1
- package/dist/events/event-definitions/SystemEvents.js +1 -1
- package/dist/events/event-definitions/TaskEvents.d.ts +1 -1
- package/dist/events/event-definitions/TaskEvents.js +1 -1
- package/dist/events/event-definitions/TensorFlowEvents.d.ts +1 -1
- package/dist/events/event-definitions/TensorFlowEvents.js +1 -1
- package/dist/events/event-definitions/UserInputEvents.d.ts +1 -1
- package/dist/events/event-definitions/UserInputEvents.js +1 -1
- package/dist/events/event-definitions/WorkflowEvents.d.ts +1 -1
- package/dist/events/event-definitions/WorkflowEvents.js +1 -1
- package/dist/interfaces/AgentContext.d.ts +1 -1
- package/dist/interfaces/AgentContext.js +1 -1
- package/dist/interfaces/AgentInterfaces.d.ts +8 -1
- package/dist/interfaces/AgentInterfaces.d.ts.map +1 -1
- package/dist/interfaces/AgentInterfaces.js +1 -1
- package/dist/interfaces/Channel.d.ts +1 -1
- package/dist/interfaces/Channel.js +1 -1
- package/dist/interfaces/ChannelConfig.d.ts +1 -1
- package/dist/interfaces/ChannelConfig.js +1 -1
- package/dist/interfaces/ChannelConnectionConfig.d.ts +1 -1
- package/dist/interfaces/ChannelConnectionConfig.js +1 -1
- package/dist/interfaces/ChannelInfo.d.ts +1 -1
- package/dist/interfaces/ChannelInfo.js +1 -1
- package/dist/interfaces/ConversationMessage.d.ts +1 -1
- package/dist/interfaces/ConversationMessage.js +1 -1
- package/dist/interfaces/ILlmTopicExtractor.d.ts +1 -1
- package/dist/interfaces/ILlmTopicExtractor.js +1 -1
- package/dist/interfaces/IMemoryPersistence.d.ts +41 -0
- package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -0
- package/dist/interfaces/IMemoryPersistence.js +15 -0
- package/dist/interfaces/IMemoryPersistence.js.map +1 -0
- package/dist/interfaces/SocketServiceInterface.d.ts +1 -1
- package/dist/interfaces/SocketServiceInterface.js +1 -1
- package/dist/interfaces/TaskInterfaces.d.ts +1 -1
- package/dist/interfaces/TaskInterfaces.js +1 -1
- package/dist/middleware/MxpMiddleware.d.ts +9 -2
- package/dist/middleware/MxpMiddleware.d.ts.map +1 -1
- package/dist/middleware/MxpMiddleware.js +43 -21
- package/dist/middleware/MxpMiddleware.js.map +1 -1
- package/dist/models/PatternLearningModels.d.ts +1 -1
- package/dist/models/PatternLearningModels.js +1 -1
- package/dist/models/agent.d.ts +1 -1
- package/dist/models/agent.js +1 -1
- package/dist/models/auditLog.d.ts +1 -1
- package/dist/models/auditLog.js +1 -1
- package/dist/models/channel.d.ts +1 -1
- package/dist/models/channel.js +1 -1
- package/dist/models/channelKey.d.ts +2 -1
- package/dist/models/channelKey.d.ts.map +1 -1
- package/dist/models/channelKey.js +6 -1
- package/dist/models/channelKey.js.map +1 -1
- package/dist/models/codeExecution.d.ts +1 -1
- package/dist/models/codeExecution.js +1 -1
- package/dist/models/controlLoop.d.ts +1 -1
- package/dist/models/controlLoop.js +1 -1
- package/dist/models/coordination.d.ts +1 -1
- package/dist/models/coordination.js +1 -1
- package/dist/models/document.d.ts +1 -1
- package/dist/models/document.js +1 -1
- package/dist/models/entity.d.ts +1 -1
- package/dist/models/entity.js +1 -1
- package/dist/models/mcpTool.d.ts +1 -1
- package/dist/models/mcpTool.js +1 -1
- package/dist/models/mcpToolExecution.d.ts +1 -1
- package/dist/models/mcpToolExecution.js +1 -1
- package/dist/models/memory.d.ts +1 -1
- package/dist/models/memory.js +1 -1
- package/dist/models/memoryStrata.d.ts +1 -1
- package/dist/models/memoryStrata.js +1 -1
- package/dist/models/memoryUtility.d.ts +39 -0
- package/dist/models/memoryUtility.d.ts.map +1 -0
- package/dist/models/memoryUtility.js +39 -0
- package/dist/models/memoryUtility.js.map +1 -0
- package/dist/models/personalAccessToken.d.ts +1 -1
- package/dist/models/personalAccessToken.js +1 -1
- package/dist/models/plan.d.ts +1 -1
- package/dist/models/plan.js +1 -1
- package/dist/models/relationship.d.ts +1 -1
- package/dist/models/relationship.js +1 -1
- package/dist/models/shellOutput.d.ts +1 -1
- package/dist/models/shellOutput.js +1 -1
- package/dist/models/task.d.ts +1 -1
- package/dist/models/task.js +1 -1
- package/dist/models/taskEffectiveness.d.ts +1 -1
- package/dist/models/taskEffectiveness.js +1 -1
- package/dist/models/tool.d.ts +1 -1
- package/dist/models/tool.js +1 -1
- package/dist/models/toolExecution.d.ts +1 -1
- package/dist/models/toolExecution.js +1 -1
- package/dist/models/toolModels.d.ts +1 -1
- package/dist/models/toolModels.js +1 -1
- package/dist/models/user.d.ts +1 -1
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +24 -2
- package/dist/models/user.js.map +1 -1
- package/dist/models/userMemory.d.ts +1 -1
- package/dist/models/userMemory.js +1 -1
- package/dist/mxp/BinaryProtocolLayer.d.ts +25 -9
- package/dist/mxp/BinaryProtocolLayer.d.ts.map +1 -1
- package/dist/mxp/BinaryProtocolLayer.js +91 -104
- package/dist/mxp/BinaryProtocolLayer.js.map +1 -1
- package/dist/mxp/ContextCompressionEngine.d.ts +58 -11
- package/dist/mxp/ContextCompressionEngine.d.ts.map +1 -1
- package/dist/mxp/ContextCompressionEngine.js +171 -129
- package/dist/mxp/ContextCompressionEngine.js.map +1 -1
- package/dist/mxp/MxpConfigManager.d.ts +1 -1
- package/dist/mxp/MxpConfigManager.js +1 -1
- package/dist/mxp/MxpTokenOptimizer.d.ts +8 -4
- package/dist/mxp/MxpTokenOptimizer.d.ts.map +1 -1
- package/dist/mxp/MxpTokenOptimizer.js +9 -6
- package/dist/mxp/MxpTokenOptimizer.js.map +1 -1
- package/dist/prompts/ChannelContextProvider.d.ts +1 -1
- package/dist/prompts/ChannelContextProvider.js +1 -1
- package/dist/prompts/DeferredToolSchemaRegistry.d.ts +1 -1
- package/dist/prompts/DeferredToolSchemaRegistry.js +1 -1
- package/dist/prompts/DynamicContextProvider.d.ts +1 -1
- package/dist/prompts/DynamicContextProvider.js +1 -1
- package/dist/prompts/MemoryPromptInjector.d.ts +1 -1
- package/dist/prompts/MemoryPromptInjector.js +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts +2 -2
- package/dist/prompts/MxfAgentSystemPrompt.d.ts.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.js +48 -58
- package/dist/prompts/MxfAgentSystemPrompt.js.map +1 -1
- package/dist/prompts/PromptSegmentRegistry.d.ts +1 -1
- package/dist/prompts/PromptSegmentRegistry.js +1 -1
- package/dist/prompts/ToolBehavioralGuidance.d.ts +1 -1
- package/dist/prompts/ToolBehavioralGuidance.js +1 -1
- package/dist/protocols/binaryProtocol.d.ts +1 -1
- package/dist/protocols/binaryProtocol.js +1 -1
- package/dist/protocols/mcp/ClientExecutableManifest.d.ts +1 -1
- package/dist/protocols/mcp/ClientExecutableManifest.js +1 -1
- package/dist/protocols/mcp/IMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/IMcpClient.js +1 -1
- package/dist/protocols/mcp/LlmProviderFactory.d.ts +1 -1
- package/dist/protocols/mcp/LlmProviderFactory.js +1 -1
- package/dist/protocols/mcp/LlmProviders.d.ts +1 -1
- package/dist/protocols/mcp/LlmProviders.js +1 -1
- package/dist/protocols/mcp/McpClient.d.ts +1 -1
- package/dist/protocols/mcp/McpClient.js +1 -1
- package/dist/protocols/mcp/McpClientFactory.d.ts +1 -1
- package/dist/protocols/mcp/McpClientFactory.js +1 -1
- package/dist/protocols/mcp/McpServerTypes.d.ts +1 -1
- package/dist/protocols/mcp/McpServerTypes.js +1 -1
- package/dist/protocols/mcp/McpToolCallParser.d.ts +1 -1
- package/dist/protocols/mcp/McpToolCallParser.js +1 -1
- package/dist/protocols/mcp/McpToolSchema.d.ts +1 -1
- package/dist/protocols/mcp/McpToolSchema.js +1 -1
- package/dist/protocols/mcp/ToolError.d.ts +123 -0
- package/dist/protocols/mcp/ToolError.d.ts.map +1 -0
- package/dist/protocols/mcp/ToolError.js +108 -0
- package/dist/protocols/mcp/ToolError.js.map +1 -0
- package/dist/protocols/mcp/converters/IFormatConverter.d.ts +1 -1
- package/dist/protocols/mcp/converters/IFormatConverter.js +1 -1
- package/dist/protocols/mcp/converters/UnifiedMessageConverter.d.ts +1 -1
- package/dist/protocols/mcp/converters/UnifiedMessageConverter.js +1 -1
- package/dist/protocols/mcp/converters/adapters/AnthropicMessageAdapter.d.ts +1 -1
- package/dist/protocols/mcp/converters/adapters/AnthropicMessageAdapter.js +1 -1
- package/dist/protocols/mcp/converters/adapters/GeminiMessageAdapter.d.ts +1 -1
- package/dist/protocols/mcp/converters/adapters/GeminiMessageAdapter.js +1 -1
- package/dist/protocols/mcp/converters/adapters/OpenAiMessageAdapter.d.ts +1 -1
- package/dist/protocols/mcp/converters/adapters/OpenAiMessageAdapter.js +1 -1
- package/dist/protocols/mcp/converters/adapters/OpenRouterMessageAdapter.d.ts +1 -1
- package/dist/protocols/mcp/converters/adapters/OpenRouterMessageAdapter.js +1 -1
- package/dist/protocols/mcp/converters/adapters/XaiMessageAdapter.d.ts +1 -1
- package/dist/protocols/mcp/converters/adapters/XaiMessageAdapter.js +1 -1
- package/dist/protocols/mcp/defineTool.d.ts +133 -0
- package/dist/protocols/mcp/defineTool.d.ts.map +1 -0
- package/dist/protocols/mcp/defineTool.js +236 -0
- package/dist/protocols/mcp/defineTool.js.map +1 -0
- package/dist/protocols/mcp/providers/AnthropicMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/AnthropicMcpClient.js +1 -1
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.js +1 -1
- package/dist/protocols/mcp/providers/BaseMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/BaseMcpClient.js +1 -1
- package/dist/protocols/mcp/providers/CustomMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/CustomMcpClient.js +1 -1
- package/dist/protocols/mcp/providers/GeminiMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/GeminiMcpClient.js +1 -1
- package/dist/protocols/mcp/providers/OllamaMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/OllamaMcpClient.js +1 -1
- package/dist/protocols/mcp/providers/OpenAiMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/OpenAiMcpClient.js +1 -1
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.d.ts +15 -1
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.js +32 -22
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/XaiMcpClient.d.ts +1 -1
- package/dist/protocols/mcp/providers/XaiMcpClient.js +1 -1
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts +38 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js +227 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -0
- package/dist/protocols/mcp/security/McpConfirmationManager.d.ts +1 -1
- package/dist/protocols/mcp/security/McpConfirmationManager.js +1 -1
- package/dist/protocols/mcp/security/McpSecurityConfig.d.ts +1 -1
- package/dist/protocols/mcp/security/McpSecurityConfig.js +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts +10 -2
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.js +11 -3
- package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts +81 -0
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js +202 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -0
- package/dist/protocols/mcp/security/index.d.ts +1 -1
- package/dist/protocols/mcp/security/index.js +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +52 -19
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js +257 -284
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +40 -7
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.js +77 -19
- package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
- package/dist/protocols/mcp/services/IToolEventEmitter.d.ts +1 -1
- package/dist/protocols/mcp/services/IToolEventEmitter.js +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js +2 -2
- package/dist/protocols/mcp/tools/AnalyticsTools.js.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js +16 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
- package/dist/protocols/mcp/tools/DateTimeTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/DateTimeTools.js +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.js +4 -4
- package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.d.ts +10 -370
- package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.js +223 -518
- package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +57 -25
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.js +118 -27
- package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
- package/dist/protocols/mcp/tools/JsonTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/JsonTools.js +1 -1
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.js +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +1 -4
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js +59 -2
- package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemoryUtilityTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/MemoryUtilityTools.js +1 -1
- package/dist/protocols/mcp/tools/OrparTools.d.ts +9 -1
- package/dist/protocols/mcp/tools/OrparTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/OrparTools.js +67 -1
- package/dist/protocols/mcp/tools/OrparTools.js.map +1 -1
- package/dist/protocols/mcp/tools/PlanningTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/PlanningTools.js +1 -1
- package/dist/protocols/mcp/tools/PredictiveTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/PredictiveTools.js +1 -1
- package/dist/protocols/mcp/tools/ProgressTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/ProgressTools.js +1 -1
- package/dist/protocols/mcp/tools/ProjectContextTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/ProjectContextTools.js +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.d.ts +8 -526
- package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.js +350 -515
- package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SearchProjectTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/SearchProjectTools.js +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.js +57 -27
- package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.d.ts +16 -377
- package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.js +242 -364
- package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
- package/dist/protocols/mcp/tools/ToolHelpTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/ToolHelpTools.js +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts +7 -277
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.js +224 -338
- package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
- package/dist/protocols/mcp/tools/UserInputTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/UserInputTools.js +1 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.js +1 -1
- package/dist/protocols/mcp/tools/WebTools.d.ts +16 -729
- package/dist/protocols/mcp/tools/WebTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/WebTools.js +152 -258
- package/dist/protocols/mcp/tools/WebTools.js.map +1 -1
- package/dist/protocols/mcp/tools/WolframTools.d.ts +1 -1
- package/dist/protocols/mcp/tools/WolframTools.js +1 -1
- package/dist/protocols/mcp/tools/shell/CommandClassification.d.ts +1 -1
- package/dist/protocols/mcp/tools/shell/CommandClassification.js +1 -1
- package/dist/protocols/mcp/tools/shell/CommandSemantics.d.ts +1 -1
- package/dist/protocols/mcp/tools/shell/CommandSemantics.js +1 -1
- package/dist/protocols/mcp/tools/shell/DestructiveCommandWarnings.d.ts +1 -1
- package/dist/protocols/mcp/tools/shell/DestructiveCommandWarnings.js +1 -1
- package/dist/protocols/mcp/tools/shell/LargeOutputHandler.d.ts +1 -1
- package/dist/protocols/mcp/tools/shell/LargeOutputHandler.js +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts +6 -4
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +32 -7
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellSandbox.d.ts +1 -1
- package/dist/protocols/mcp/tools/shell/ShellSandbox.js +1 -1
- package/dist/protocols/mcp/tools/shell/index.d.ts +1 -1
- package/dist/protocols/mcp/tools/shell/index.js +1 -1
- package/dist/protocols/mcp/utils/JsonRecovery.d.ts +1 -1
- package/dist/protocols/mcp/utils/JsonRecovery.js +1 -1
- package/dist/protocols/mcp/utils/MessageConverters.d.ts +1 -1
- package/dist/protocols/mcp/utils/MessageConverters.js +1 -1
- package/dist/protocols/mcp/utils/NetworkRecovery.d.ts +1 -1
- package/dist/protocols/mcp/utils/NetworkRecovery.js +1 -1
- package/dist/protocols/mcp/utils/ToolHandlers.d.ts +1 -1
- package/dist/protocols/mcp/utils/ToolHandlers.js +1 -1
- package/dist/repositories/interfaces/IAgentRepository.d.ts +1 -1
- package/dist/repositories/interfaces/IAgentRepository.js +1 -1
- package/dist/repositories/interfaces/IBaseRepository.d.ts +1 -1
- package/dist/repositories/interfaces/IBaseRepository.js +1 -1
- package/dist/repositories/interfaces/IChannelRepository.d.ts +1 -1
- package/dist/repositories/interfaces/IChannelRepository.js +1 -1
- package/dist/repositories/interfaces/IDagRepository.d.ts +1 -1
- package/dist/repositories/interfaces/IDagRepository.js +1 -1
- package/dist/repositories/interfaces/IKnowledgeGraphRepository.d.ts +1 -1
- package/dist/repositories/interfaces/IKnowledgeGraphRepository.js +1 -1
- package/dist/repositories/interfaces/IMemoryRepository.d.ts +1 -1
- package/dist/repositories/interfaces/IMemoryRepository.js +1 -1
- package/dist/repositories/interfaces/ITaskRepository.d.ts +1 -1
- package/dist/repositories/interfaces/ITaskRepository.js +1 -1
- package/dist/repositories/interfaces/index.d.ts +1 -1
- package/dist/repositories/interfaces/index.js +1 -1
- package/dist/repositories/types/FilterTypes.d.ts +1 -1
- package/dist/repositories/types/FilterTypes.js +1 -1
- package/dist/repositories/types/PaginationTypes.d.ts +1 -1
- package/dist/repositories/types/PaginationTypes.js +1 -1
- package/dist/schemas/CodeExecutionEventPayloads.d.ts +1 -1
- package/dist/schemas/CodeExecutionEventPayloads.js +1 -1
- package/dist/schemas/EventPayloadSchema.d.ts +22 -1
- package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.js +15 -1
- package/dist/schemas/EventPayloadSchema.js.map +1 -1
- package/dist/schemas/JsonResponseSchemas.d.ts +1 -1
- package/dist/schemas/JsonResponseSchemas.js +1 -1
- package/dist/schemas/MessageSchemas.d.ts +1 -1
- package/dist/schemas/MessageSchemas.js +1 -1
- package/dist/schemas/MxpProtocolSchemas.d.ts +1 -1
- package/dist/schemas/MxpProtocolSchemas.js +1 -1
- package/dist/schemas/ShellExecutionEventPayloads.d.ts +1 -1
- package/dist/schemas/ShellExecutionEventPayloads.js +1 -1
- package/dist/services/AgentPerformanceService.d.ts +1 -1
- package/dist/services/AgentPerformanceService.js +1 -1
- package/dist/services/AutoCorrectionIntegrationService.d.ts +1 -1
- package/dist/services/AutoCorrectionIntegrationService.js +1 -1
- package/dist/services/AutoCorrectionService.d.ts +1 -1
- package/dist/services/AutoCorrectionService.js +1 -1
- package/dist/services/AutoMemoryCreator.d.ts +1 -1
- package/dist/services/AutoMemoryCreator.js +1 -1
- package/dist/services/BackgroundTaskManager.d.ts +1 -1
- package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/services/BackgroundTaskManager.js +13 -5
- package/dist/services/BackgroundTaskManager.js.map +1 -1
- package/dist/services/BrowserManager.d.ts +2 -2
- package/dist/services/BrowserManager.d.ts.map +1 -1
- package/dist/services/BrowserManager.js +27 -4
- package/dist/services/BrowserManager.js.map +1 -1
- package/dist/services/ChannelContextMemoryOperations.d.ts +1 -1
- package/dist/services/ChannelContextMemoryOperations.js +1 -1
- package/dist/services/ChannelContextMessageOperations.d.ts +1 -1
- package/dist/services/ChannelContextMessageOperations.js +1 -1
- package/dist/services/CodeExecutionSandboxService.d.ts +1 -1
- package/dist/services/CodeExecutionSandboxService.js +1 -1
- package/dist/services/ContainerExecutionManager.d.ts +1 -1
- package/dist/services/ContainerExecutionManager.js +1 -1
- package/dist/services/ContentProcessor.d.ts +1 -1
- package/dist/services/ContentProcessor.js +1 -1
- package/dist/services/McpToolDocumentationService.d.ts +1 -1
- package/dist/services/McpToolDocumentationService.js +1 -1
- package/dist/services/MemoryCompressor.d.ts +12 -3
- package/dist/services/MemoryCompressor.d.ts.map +1 -1
- package/dist/services/MemoryCompressor.js +9 -27
- package/dist/services/MemoryCompressor.js.map +1 -1
- package/dist/services/MemoryService.d.ts +17 -4
- package/dist/services/MemoryService.d.ts.map +1 -1
- package/dist/services/MemoryService.js +80 -56
- package/dist/services/MemoryService.js.map +1 -1
- package/dist/services/MxfMLService.d.ts +16 -1
- package/dist/services/MxfMLService.d.ts.map +1 -1
- package/dist/services/MxfMLService.js +55 -16
- package/dist/services/MxfMLService.js.map +1 -1
- package/dist/services/MxfMeilisearchService.d.ts +1 -1
- package/dist/services/MxfMeilisearchService.js +1 -1
- package/dist/services/MxfMessageAggregator.d.ts +1 -1
- package/dist/services/MxfMessageAggregator.js +1 -1
- package/dist/services/PatternLearningService.d.ts +1 -1
- package/dist/services/PatternLearningService.js +1 -1
- package/dist/services/PerformanceOptimizationService.d.ts +1 -1
- package/dist/services/PerformanceOptimizationService.js +1 -1
- package/dist/services/PredictiveAnalyticsService.d.ts +35 -5
- package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
- package/dist/services/PredictiveAnalyticsService.js +42 -26
- package/dist/services/PredictiveAnalyticsService.js.map +1 -1
- package/dist/services/ProactiveValidationService.d.ts +1 -1
- package/dist/services/ProactiveValidationService.js +1 -1
- package/dist/services/PromptArgumentInferenceService.d.ts +1 -1
- package/dist/services/PromptArgumentInferenceService.js +1 -1
- package/dist/services/QValueManager.d.ts +8 -1
- package/dist/services/QValueManager.d.ts.map +1 -1
- package/dist/services/QValueManager.js +10 -1
- package/dist/services/QValueManager.js.map +1 -1
- package/dist/services/ReasoningToolParser.d.ts +1 -1
- package/dist/services/ReasoningToolParser.js +1 -1
- package/dist/services/RecoveryWorkflowService.d.ts +1 -1
- package/dist/services/RecoveryWorkflowService.js +1 -1
- package/dist/services/ReflectionService.d.ts +1 -1
- package/dist/services/ReflectionService.js +1 -1
- package/dist/services/RetentionGateService.d.ts +1 -1
- package/dist/services/RetentionGateService.js +1 -1
- package/dist/services/RewardSignalProcessor.d.ts +39 -2
- package/dist/services/RewardSignalProcessor.d.ts.map +1 -1
- package/dist/services/RewardSignalProcessor.js +110 -8
- package/dist/services/RewardSignalProcessor.js.map +1 -1
- package/dist/services/SharedStateService.d.ts +17 -3
- package/dist/services/SharedStateService.d.ts.map +1 -1
- package/dist/services/SharedStateService.js +45 -4
- package/dist/services/SharedStateService.js.map +1 -1
- package/dist/services/StratumManager.d.ts +1 -1
- package/dist/services/StratumManager.js +1 -1
- package/dist/services/StructuredSummaryBuilder.d.ts +1 -1
- package/dist/services/StructuredSummaryBuilder.js +1 -1
- package/dist/services/SurpriseCalculator.d.ts +1 -1
- package/dist/services/SurpriseCalculator.js +1 -1
- package/dist/services/SystemLlmMemoryAnalyzer.d.ts +1 -1
- package/dist/services/SystemLlmMemoryAnalyzer.js +1 -1
- package/dist/services/TaskEffectivenessService.d.ts +35 -19
- package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
- package/dist/services/TaskEffectivenessService.js +92 -156
- package/dist/services/TaskEffectivenessService.js.map +1 -1
- package/dist/services/ToolExecutionInterceptor.d.ts +1 -1
- package/dist/services/ToolExecutionInterceptor.js +1 -1
- package/dist/services/UserInputRequestManager.d.ts +1 -1
- package/dist/services/UserInputRequestManager.js +1 -1
- package/dist/services/UserMemoryService.d.ts +1 -1
- package/dist/services/UserMemoryService.js +1 -1
- package/dist/services/UtilityScorerService.d.ts +1 -1
- package/dist/services/UtilityScorerService.js +1 -1
- package/dist/services/ValidationAnalyticsService.d.ts +1 -1
- package/dist/services/ValidationAnalyticsService.js +1 -1
- package/dist/services/ValidationCacheService.d.ts +1 -1
- package/dist/services/ValidationCacheService.js +1 -1
- package/dist/services/ValidationMiddleware.d.ts +1 -1
- package/dist/services/ValidationMiddleware.js +1 -1
- package/dist/services/ValidationPerformanceService.d.ts +1 -1
- package/dist/services/ValidationPerformanceService.js +1 -1
- package/dist/services/WebSearchService.d.ts +1 -1
- package/dist/services/WebSearchService.d.ts.map +1 -1
- package/dist/services/WebSearchService.js +1 -1
- package/dist/services/WebSearchService.js.map +1 -1
- package/dist/services/dag/TaskDagService.d.ts +1 -1
- package/dist/services/dag/TaskDagService.d.ts.map +1 -1
- package/dist/services/dag/TaskDagService.js +3 -1
- package/dist/services/dag/TaskDagService.js.map +1 -1
- package/dist/services/dag/algorithms/TopologicalSort.d.ts +1 -1
- package/dist/services/dag/algorithms/TopologicalSort.js +1 -1
- package/dist/services/kg/EntityExtractionService.d.ts +1 -1
- package/dist/services/kg/EntityExtractionService.js +1 -1
- package/dist/services/kg/EntityQValueManager.d.ts +1 -1
- package/dist/services/kg/EntityQValueManager.js +1 -1
- package/dist/services/kg/GraphSurpriseCalculator.d.ts +1 -1
- package/dist/services/kg/GraphSurpriseCalculator.js +1 -1
- package/dist/services/kg/KnowledgeGraphService.d.ts +1 -1
- package/dist/services/kg/KnowledgeGraphService.js +1 -1
- package/dist/services/kg/OrparGraphIntegration.d.ts +1 -1
- package/dist/services/kg/OrparGraphIntegration.js +1 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.d.ts +1 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.js +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 +72 -11
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
- package/dist/services/orpar-memory/PhaseMemoryOperations.d.ts +1 -1
- package/dist/services/orpar-memory/PhaseMemoryOperations.js +1 -1
- package/dist/services/orpar-memory/PhaseStrataRouter.d.ts +1 -1
- package/dist/services/orpar-memory/PhaseStrataRouter.js +1 -1
- package/dist/services/orpar-memory/PhaseWeightedRewarder.d.ts +1 -1
- package/dist/services/orpar-memory/PhaseWeightedRewarder.js +1 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.d.ts +1 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.js +1 -1
- package/dist/services/orpar-memory/index.d.ts +1 -1
- package/dist/services/orpar-memory/index.js +1 -1
- package/dist/types/Agent.d.ts +1 -1
- package/dist/types/Agent.js +1 -1
- package/dist/types/AgentPerformanceTypes.d.ts +1 -1
- package/dist/types/AgentPerformanceTypes.js +1 -1
- package/dist/types/AgentRegistry.d.ts +1 -1
- package/dist/types/AgentRegistry.js +1 -1
- package/dist/types/AgentTypes.d.ts +1 -1
- package/dist/types/AgentTypes.js +1 -1
- package/dist/types/ChannelContext.d.ts +1 -1
- package/dist/types/ChannelContext.js +1 -1
- package/dist/types/ControlLoopTypes.d.ts +1 -1
- package/dist/types/ControlLoopTypes.js +1 -1
- package/dist/types/DagTypes.d.ts +1 -1
- package/dist/types/DagTypes.js +1 -1
- package/dist/types/EffectivenessTypes.d.ts +1 -1
- package/dist/types/EffectivenessTypes.js +1 -1
- package/dist/types/InferenceParameterTypes.d.ts +1 -1
- package/dist/types/InferenceParameterTypes.js +1 -1
- package/dist/types/KnowledgeGraphTypes.d.ts +1 -1
- package/dist/types/KnowledgeGraphTypes.js +1 -1
- package/dist/types/LlmTypes.d.ts +1 -1
- package/dist/types/LlmTypes.js +1 -1
- package/dist/types/McpPromptTypes.d.ts +1 -1
- package/dist/types/McpPromptTypes.js +1 -1
- package/dist/types/MemoryTypes.d.ts +1 -1
- package/dist/types/MemoryTypes.js +1 -1
- package/dist/types/MemoryUtilityTypes.d.ts +3 -1
- package/dist/types/MemoryUtilityTypes.d.ts.map +1 -1
- package/dist/types/MemoryUtilityTypes.js +1 -1
- package/dist/types/MemoryUtilityTypes.js.map +1 -1
- package/dist/types/MxpTypes.d.ts +1 -1
- package/dist/types/MxpTypes.js +1 -1
- package/dist/types/NetworkRecoveryTypes.d.ts +1 -1
- package/dist/types/NetworkRecoveryTypes.js +1 -1
- package/dist/types/OrparMemoryIntegrationTypes.d.ts +1 -1
- package/dist/types/OrparMemoryIntegrationTypes.js +1 -1
- package/dist/types/PatternLearningTypes.d.ts +1 -1
- package/dist/types/PatternLearningTypes.js +1 -1
- package/dist/types/PatternMemoryTypes.d.ts +1 -1
- package/dist/types/PatternMemoryTypes.js +1 -1
- package/dist/types/ReflectionTypes.d.ts +1 -1
- package/dist/types/ReflectionTypes.js +1 -1
- package/dist/types/TaskCompletionTypes.d.ts +1 -1
- package/dist/types/TaskCompletionTypes.js +1 -1
- package/dist/types/TaskTypes.d.ts +1 -1
- package/dist/types/TaskTypes.js +1 -1
- package/dist/types/TensorFlowTypes.d.ts +1 -1
- package/dist/types/TensorFlowTypes.js +1 -1
- package/dist/types/ValidationPerformanceTypes.d.ts +1 -1
- package/dist/types/ValidationPerformanceTypes.js +1 -1
- package/dist/types/toolTypes.d.ts +1 -1
- package/dist/types/toolTypes.js +1 -1
- package/dist/types/types.d.ts +1 -1
- package/dist/types/types.js +1 -1
- package/dist/utils/Logger.d.ts +44 -4
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +79 -37
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/MxpEncryption.d.ts +20 -7
- package/dist/utils/MxpEncryption.d.ts.map +1 -1
- package/dist/utils/MxpEncryption.js +49 -17
- package/dist/utils/MxpEncryption.js.map +1 -1
- package/dist/utils/ParameterNormalizer.d.ts +1 -1
- package/dist/utils/ParameterNormalizer.js +1 -1
- package/dist/utils/PromptTemplateReplacer.d.ts +1 -1
- package/dist/utils/PromptTemplateReplacer.js +1 -1
- package/dist/utils/TokenEstimator.d.ts +1 -1
- package/dist/utils/TokenEstimator.js +1 -1
- package/dist/utils/ToolPaginationUtils.d.ts +1 -1
- package/dist/utils/ToolPaginationUtils.js +1 -1
- package/dist/utils/toon/eligibility.d.ts +1 -1
- package/dist/utils/toon/eligibility.js +1 -1
- package/dist/utils/toon/encoder.d.ts +1 -1
- package/dist/utils/toon/encoder.js +1 -1
- package/dist/utils/toon/formatter.d.ts +1 -1
- package/dist/utils/toon/formatter.js +1 -1
- package/dist/utils/toon/index.d.ts +1 -1
- package/dist/utils/toon/index.js +1 -1
- package/dist/utils/toon/metrics.d.ts +1 -1
- package/dist/utils/toon/metrics.js +1 -1
- package/dist/utils/toon/types.d.ts +1 -1
- package/dist/utils/toon/types.js +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.js +1 -1
- package/package.json +20 -5
- package/src/adapters/FrameworkAdapter.ts +2 -2
- package/src/adapters/index.ts +1 -1
- package/src/config/ConfigManager.ts +53 -20
- package/src/config/McpPromptsConfig.ts +1 -1
- package/src/config/ModelContextLimits.ts +1 -1
- package/src/config/PromptCompactionConfig.ts +1 -1
- package/src/config/PromptConfig.ts +1 -1
- package/src/config/ServerConfig.ts +1 -1
- package/src/config/dag.config.ts +1 -1
- package/src/config/knowledge-graph.config.ts +1 -1
- package/src/config/memory-strata.config.ts +136 -0
- package/src/config/orpar-memory.config.ts +1 -1
- package/src/config/tensorflow.config.ts +1 -1
- package/src/constants/CoreTools.ts +1 -1
- package/src/constants/DefaultPhaseProfiles.ts +1 -1
- package/src/constants/ToolNames.ts +5 -19
- package/src/database/DatabaseAdapterFactory.ts +24 -7
- package/src/database/adapters/mongodb/MongoAgentRepository.ts +1 -1
- package/src/database/adapters/mongodb/MongoBaseRepository.ts +17 -3
- package/src/database/adapters/mongodb/MongoChannelRepository.ts +1 -1
- package/src/database/adapters/mongodb/MongoDagRepository.ts +1 -1
- package/src/database/adapters/mongodb/MongoKnowledgeGraphRepository.ts +1 -1
- package/src/database/adapters/mongodb/MongoMemoryRepository.ts +1 -1
- package/src/database/adapters/mongodb/MongoTaskRepository.ts +1 -1
- package/src/database/adapters/mongodb/index.ts +1 -1
- package/src/database/index.ts +1 -1
- package/src/events/ClientEventBus.ts +69 -404
- package/src/events/EventBus.ts +8 -9
- package/src/events/EventBusBase.ts +480 -117
- package/src/events/EventNames.ts +7 -1
- package/src/events/PublicEvents.ts +8 -5
- package/src/events/ServerEventBus.ts +79 -474
- package/src/events/event-definitions/AgentEvents.ts +1 -1
- package/src/events/event-definitions/AnalyticsEvents.ts +1 -1
- package/src/events/event-definitions/BulkEvents.ts +1 -1
- package/src/events/event-definitions/ChannelEvents.ts +1 -1
- package/src/events/event-definitions/CodeExecutionEvents.ts +1 -1
- package/src/events/event-definitions/CompactionEvents.ts +1 -1
- package/src/events/event-definitions/ConfigEvents.ts +1 -1
- package/src/events/event-definitions/ControlLoopEvents.ts +1 -1
- package/src/events/event-definitions/DagEvents.ts +1 -1
- package/src/events/event-definitions/HeartbeatEvents.ts +1 -1
- package/src/events/event-definitions/InferenceParameterEvents.ts +1 -1
- package/src/events/event-definitions/KeyEvents.ts +1 -1
- package/src/events/event-definitions/KnowledgeGraphEvents.ts +1 -1
- package/src/events/event-definitions/LlmBudgetEvents.ts +74 -0
- package/src/events/event-definitions/LlmEvents.ts +1 -1
- package/src/events/event-definitions/McpEvents.ts +1 -1
- package/src/events/event-definitions/MeilisearchEvents.ts +1 -1
- package/src/events/event-definitions/MemoryEvents.ts +1 -1
- package/src/events/event-definitions/MemoryUtilityEvents.ts +1 -1
- package/src/events/event-definitions/MessageEvents.ts +1 -1
- package/src/events/event-definitions/MxpEvents.ts +1 -1
- package/src/events/event-definitions/OrparEvents.ts +1 -1
- package/src/events/event-definitions/OrparMemoryEvents.ts +1 -1
- package/src/events/event-definitions/PlanEvents.ts +1 -1
- package/src/events/event-definitions/ProgressEvents.ts +1 -1
- package/src/events/event-definitions/ShellExecutionEvents.ts +1 -1
- package/src/events/event-definitions/SystemEvents.ts +1 -1
- package/src/events/event-definitions/TaskEvents.ts +1 -1
- package/src/events/event-definitions/TensorFlowEvents.ts +1 -1
- package/src/events/event-definitions/UserInputEvents.ts +1 -1
- package/src/events/event-definitions/WorkflowEvents.ts +1 -1
- package/src/interfaces/AgentContext.ts +1 -1
- package/src/interfaces/AgentInterfaces.ts +9 -2
- package/src/interfaces/Channel.ts +1 -1
- package/src/interfaces/ChannelConfig.ts +1 -1
- package/src/interfaces/ChannelConnectionConfig.ts +1 -1
- package/src/interfaces/ChannelInfo.ts +1 -1
- package/src/interfaces/ConversationMessage.ts +1 -1
- package/src/interfaces/ILlmTopicExtractor.ts +1 -1
- package/src/interfaces/IMemoryPersistence.ts +51 -0
- package/src/interfaces/SocketServiceInterface.ts +1 -1
- package/src/interfaces/TaskInterfaces.ts +1 -1
- package/src/middleware/MxpMiddleware.ts +52 -25
- package/src/models/PatternLearningModels.ts +1 -1
- package/src/models/agent.ts +1 -1
- package/src/models/auditLog.ts +1 -1
- package/src/models/channel.ts +1 -1
- package/src/models/channelKey.ts +19 -5
- package/src/models/codeExecution.ts +1 -1
- package/src/models/controlLoop.ts +1 -1
- package/src/models/coordination.ts +1 -1
- package/src/models/document.ts +1 -1
- package/src/models/entity.ts +1 -1
- package/src/models/mcpTool.ts +1 -1
- package/src/models/mcpToolExecution.ts +1 -1
- package/src/models/memory.ts +1 -1
- package/src/models/memoryStrata.ts +1 -1
- package/src/models/memoryUtility.ts +64 -0
- package/src/models/personalAccessToken.ts +1 -1
- package/src/models/plan.ts +1 -1
- package/src/models/relationship.ts +1 -1
- package/src/models/shellOutput.ts +1 -1
- package/src/models/task.ts +1 -1
- package/src/models/taskEffectiveness.ts +1 -1
- package/src/models/tool.ts +1 -1
- package/src/models/toolExecution.ts +1 -1
- package/src/models/toolModels.ts +1 -1
- package/src/models/user.ts +37 -5
- package/src/models/userMemory.ts +1 -1
- package/src/mxp/BinaryProtocolLayer.ts +109 -125
- package/src/mxp/ContextCompressionEngine.ts +220 -162
- package/src/mxp/MxpConfigManager.ts +1 -1
- package/src/mxp/MxpTokenOptimizer.ts +11 -11
- package/src/prompts/ChannelContextProvider.ts +1 -1
- package/src/prompts/DeferredToolSchemaRegistry.ts +1 -1
- package/src/prompts/DynamicContextProvider.ts +1 -1
- package/src/prompts/MemoryPromptInjector.ts +1 -1
- package/src/prompts/MxfAgentSystemPrompt.ts +46 -56
- package/src/prompts/PromptSegmentRegistry.ts +1 -1
- package/src/prompts/ToolBehavioralGuidance.ts +1 -1
- package/src/protocols/binaryProtocol.ts +1 -1
- package/src/protocols/mcp/ClientExecutableManifest.ts +1 -1
- package/src/protocols/mcp/IMcpClient.ts +1 -1
- package/src/protocols/mcp/LlmProviderFactory.ts +1 -1
- package/src/protocols/mcp/LlmProviders.ts +1 -1
- package/src/protocols/mcp/McpClient.ts +1 -1
- package/src/protocols/mcp/McpClientFactory.ts +1 -1
- package/src/protocols/mcp/McpServerTypes.ts +1 -1
- package/src/protocols/mcp/McpToolCallParser.ts +1 -1
- package/src/protocols/mcp/McpToolSchema.ts +1 -1
- package/src/protocols/mcp/ToolError.ts +201 -0
- package/src/protocols/mcp/converters/IFormatConverter.ts +1 -1
- package/src/protocols/mcp/converters/UnifiedMessageConverter.ts +1 -1
- package/src/protocols/mcp/converters/adapters/AnthropicMessageAdapter.ts +1 -1
- package/src/protocols/mcp/converters/adapters/GeminiMessageAdapter.ts +1 -1
- package/src/protocols/mcp/converters/adapters/OpenAiMessageAdapter.ts +1 -1
- package/src/protocols/mcp/converters/adapters/OpenRouterMessageAdapter.ts +1 -1
- package/src/protocols/mcp/converters/adapters/XaiMessageAdapter.ts +1 -1
- package/src/protocols/mcp/defineTool.ts +379 -0
- package/src/protocols/mcp/providers/AnthropicMcpClient.ts +1 -1
- package/src/protocols/mcp/providers/AzureOpenAiMcpClient.ts +1 -1
- package/src/protocols/mcp/providers/BaseMcpClient.ts +1 -1
- package/src/protocols/mcp/providers/CustomMcpClient.ts +1 -1
- package/src/protocols/mcp/providers/GeminiMcpClient.ts +1 -1
- package/src/protocols/mcp/providers/OllamaMcpClient.ts +1 -1
- package/src/protocols/mcp/providers/OpenAiMcpClient.ts +1 -1
- package/src/protocols/mcp/providers/OpenRouterMcpClient.ts +33 -24
- package/src/protocols/mcp/providers/XaiMcpClient.ts +1 -1
- package/src/protocols/mcp/security/HttpTargetGuard.ts +267 -0
- package/src/protocols/mcp/security/McpConfirmationManager.ts +1 -1
- package/src/protocols/mcp/security/McpSecurityConfig.ts +1 -1
- package/src/protocols/mcp/security/McpSecurityGuard.ts +11 -4
- package/src/protocols/mcp/security/McpToolPolicy.ts +221 -0
- package/src/protocols/mcp/security/index.ts +1 -1
- package/src/protocols/mcp/services/ExternalMcpServerManager.ts +341 -323
- package/src/protocols/mcp/services/ExternalServerConfigs.ts +83 -20
- package/src/protocols/mcp/services/IToolEventEmitter.ts +1 -1
- package/src/protocols/mcp/tools/AnalyticsTools.ts +2 -2
- package/src/protocols/mcp/tools/CodeAnalysisTools.ts +16 -1
- package/src/protocols/mcp/tools/DateTimeTools.ts +1 -1
- package/src/protocols/mcp/tools/EffectivenessTools.ts +4 -4
- package/src/protocols/mcp/tools/GitTools.ts +291 -570
- package/src/protocols/mcp/tools/InfrastructureTools.ts +190 -44
- package/src/protocols/mcp/tools/JsonTools.ts +1 -1
- package/src/protocols/mcp/tools/KnowledgeGraphTools.ts +1 -1
- package/src/protocols/mcp/tools/MemorySearchTools.ts +78 -2
- package/src/protocols/mcp/tools/MemoryUtilityTools.ts +1 -1
- package/src/protocols/mcp/tools/OrparTools.ts +88 -1
- package/src/protocols/mcp/tools/PlanningTools.ts +1 -1
- package/src/protocols/mcp/tools/PredictiveTools.ts +1 -1
- package/src/protocols/mcp/tools/ProgressTools.ts +1 -1
- package/src/protocols/mcp/tools/ProjectContextTools.ts +1 -1
- package/src/protocols/mcp/tools/README.md +3 -3
- package/src/protocols/mcp/tools/SafetyTools.ts +502 -580
- package/src/protocols/mcp/tools/SearchProjectTools.ts +1 -1
- package/src/protocols/mcp/tools/TaskPlanningTools.ts +82 -40
- package/src/protocols/mcp/tools/TestTools.ts +340 -420
- package/src/protocols/mcp/tools/ToolHelpTools.ts +1 -1
- package/src/protocols/mcp/tools/TypeScriptTools.ts +317 -377
- package/src/protocols/mcp/tools/UserInputTools.ts +1 -1
- package/src/protocols/mcp/tools/UserMemoryTools.ts +1 -1
- package/src/protocols/mcp/tools/WebTools.ts +210 -308
- package/src/protocols/mcp/tools/WolframTools.ts +1 -1
- package/src/protocols/mcp/tools/shell/CommandClassification.ts +1 -1
- package/src/protocols/mcp/tools/shell/CommandSemantics.ts +1 -1
- package/src/protocols/mcp/tools/shell/DestructiveCommandWarnings.ts +1 -1
- package/src/protocols/mcp/tools/shell/LargeOutputHandler.ts +1 -1
- package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +54 -15
- package/src/protocols/mcp/tools/shell/ShellSandbox.ts +1 -1
- package/src/protocols/mcp/tools/shell/index.ts +1 -1
- package/src/protocols/mcp/utils/JsonRecovery.ts +1 -1
- package/src/protocols/mcp/utils/MessageConverters.ts +1 -1
- package/src/protocols/mcp/utils/NetworkRecovery.ts +1 -1
- package/src/protocols/mcp/utils/ToolHandlers.ts +1 -1
- package/src/repositories/interfaces/IAgentRepository.ts +1 -1
- package/src/repositories/interfaces/IBaseRepository.ts +1 -1
- package/src/repositories/interfaces/IChannelRepository.ts +1 -1
- package/src/repositories/interfaces/IDagRepository.ts +1 -1
- package/src/repositories/interfaces/IKnowledgeGraphRepository.ts +1 -1
- package/src/repositories/interfaces/IMemoryRepository.ts +1 -1
- package/src/repositories/interfaces/ITaskRepository.ts +1 -1
- package/src/repositories/interfaces/index.ts +1 -1
- package/src/repositories/types/FilterTypes.ts +1 -1
- package/src/repositories/types/PaginationTypes.ts +1 -1
- package/src/schemas/CodeExecutionEventPayloads.ts +1 -1
- package/src/schemas/EventPayloadSchema.ts +38 -1
- package/src/schemas/JsonResponseSchemas.ts +1 -1
- package/src/schemas/MessageSchemas.ts +1 -1
- package/src/schemas/MxpProtocolSchemas.ts +1 -1
- package/src/schemas/ShellExecutionEventPayloads.ts +1 -1
- package/src/services/AgentPerformanceService.ts +1 -1
- package/src/services/AutoCorrectionIntegrationService.ts +1 -1
- package/src/services/AutoCorrectionService.ts +1 -1
- package/src/services/AutoMemoryCreator.ts +1 -1
- package/src/services/BackgroundTaskManager.ts +13 -5
- package/src/services/BrowserManager.ts +42 -2
- package/src/services/ChannelContextMemoryOperations.ts +1 -1
- package/src/services/ChannelContextMessageOperations.ts +1 -1
- package/src/services/CodeExecutionSandboxService.ts +1 -1
- package/src/services/ContainerExecutionManager.ts +1 -1
- package/src/services/ContentProcessor.ts +1 -1
- package/src/services/McpToolDocumentationService.ts +1 -1
- package/src/services/MemoryCompressor.ts +21 -33
- package/src/services/MemoryService.ts +97 -59
- package/src/services/MxfMLService.ts +62 -18
- package/src/services/MxfMeilisearchService.ts +1 -1
- package/src/services/MxfMessageAggregator.ts +1 -1
- package/src/services/PatternLearningService.ts +1 -1
- package/src/services/PerformanceOptimizationService.ts +1 -1
- package/src/services/PredictiveAnalyticsService.ts +56 -33
- package/src/services/ProactiveValidationService.ts +1 -1
- package/src/services/PromptArgumentInferenceService.ts +1 -1
- package/src/services/QValueManager.ts +11 -1
- package/src/services/ReasoningToolParser.ts +1 -1
- package/src/services/RecoveryWorkflowService.ts +1 -1
- package/src/services/ReflectionService.ts +1 -1
- package/src/services/RetentionGateService.ts +1 -1
- package/src/services/RewardSignalProcessor.ts +139 -10
- package/src/services/SharedStateService.ts +57 -9
- package/src/services/StratumManager.ts +1 -1
- package/src/services/StructuredSummaryBuilder.ts +1 -1
- package/src/services/SurpriseCalculator.ts +1 -1
- package/src/services/SystemLlmMemoryAnalyzer.ts +1 -1
- package/src/services/TaskEffectivenessService.ts +115 -188
- package/src/services/ToolExecutionInterceptor.ts +1 -1
- package/src/services/UserInputRequestManager.ts +1 -1
- package/src/services/UserMemoryService.ts +1 -1
- package/src/services/UtilityScorerService.ts +1 -1
- package/src/services/ValidationAnalyticsService.ts +1 -1
- package/src/services/ValidationCacheService.ts +1 -1
- package/src/services/ValidationMiddleware.ts +1 -1
- package/src/services/ValidationPerformanceService.ts +1 -1
- package/src/services/WebSearchService.ts +3 -2
- package/src/services/dag/TaskDagService.ts +3 -1
- package/src/services/dag/algorithms/TopologicalSort.ts +1 -1
- package/src/services/kg/EntityExtractionService.ts +1 -1
- package/src/services/kg/EntityQValueManager.ts +1 -1
- package/src/services/kg/GraphSurpriseCalculator.ts +1 -1
- package/src/services/kg/KnowledgeGraphService.ts +1 -1
- package/src/services/kg/OrparGraphIntegration.ts +1 -1
- package/src/services/orpar-memory/CycleConsolidationTrigger.ts +1 -1
- package/src/services/orpar-memory/OrparMemoryCoordinator.ts +87 -11
- package/src/services/orpar-memory/PhaseMemoryOperations.ts +1 -1
- package/src/services/orpar-memory/PhaseStrataRouter.ts +1 -1
- package/src/services/orpar-memory/PhaseWeightedRewarder.ts +1 -1
- package/src/services/orpar-memory/SurpriseOrparAdapter.ts +1 -1
- package/src/services/orpar-memory/index.ts +1 -1
- package/src/types/Agent.ts +1 -1
- package/src/types/AgentPerformanceTypes.ts +1 -1
- package/src/types/AgentRegistry.ts +1 -1
- package/src/types/AgentTypes.ts +1 -1
- package/src/types/ChannelContext.ts +1 -1
- package/src/types/ControlLoopTypes.ts +1 -1
- package/src/types/DagTypes.ts +1 -1
- package/src/types/EffectivenessTypes.ts +1 -1
- package/src/types/InferenceParameterTypes.ts +1 -1
- package/src/types/KnowledgeGraphTypes.ts +1 -1
- package/src/types/LlmTypes.ts +1 -1
- package/src/types/McpPromptTypes.ts +1 -1
- package/src/types/MemoryTypes.ts +1 -1
- package/src/types/MemoryUtilityTypes.ts +3 -1
- package/src/types/MxpTypes.ts +1 -1
- package/src/types/NetworkRecoveryTypes.ts +1 -1
- package/src/types/OrparMemoryIntegrationTypes.ts +1 -1
- package/src/types/PatternLearningTypes.ts +1 -1
- package/src/types/PatternMemoryTypes.ts +1 -1
- package/src/types/ReflectionTypes.ts +1 -1
- package/src/types/TaskCompletionTypes.ts +1 -1
- package/src/types/TaskTypes.ts +1 -1
- package/src/types/TensorFlowTypes.ts +1 -1
- package/src/types/ValidationPerformanceTypes.ts +1 -1
- package/src/types/toolTypes.ts +1 -1
- package/src/types/types.ts +1 -1
- package/src/utils/Logger.ts +117 -41
- package/src/utils/MxpEncryption.ts +70 -35
- package/src/utils/ParameterNormalizer.ts +1 -1
- package/src/utils/PromptTemplateReplacer.ts +1 -1
- package/src/utils/TokenEstimator.ts +1 -1
- package/src/utils/ToolPaginationUtils.ts +1 -1
- package/src/utils/toon/eligibility.ts +1 -1
- package/src/utils/toon/encoder.ts +1 -1
- package/src/utils/toon/formatter.ts +1 -1
- package/src/utils/toon/index.ts +1 -1
- package/src/utils/toon/metrics.ts +1 -1
- package/src/utils/toon/types.ts +1 -1
- package/src/utils/validation.ts +1 -1
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts +0 -134
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts.map +0 -1
- package/dist/mxp/MxpEventForwardingEnhancer.js +0 -361
- package/dist/mxp/MxpEventForwardingEnhancer.js.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts +0 -56
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js +0 -57
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts +0 -270
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js +0 -256
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.d.ts +0 -495
- package/dist/protocols/mcp/tools/LspTools.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.js +0 -469
- package/dist/protocols/mcp/tools/LspTools.js.map +0 -1
- package/src/mxp/MxpEventForwardingEnhancer.ts +0 -471
- package/src/protocols/mcp/services/ToolSchemaEnhancements.ts +0 -92
- package/src/protocols/mcp/tools/ControlLoopLifecycle.ts +0 -302
- package/src/protocols/mcp/tools/LspTools.ts +0 -476
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*
|
|
16
16
|
* @author Brad Anderson <BradA1878@pm.me>
|
|
17
|
-
* @repository https://github.com/
|
|
17
|
+
* @repository https://github.com/BradA1878/model-exchange-framework
|
|
18
18
|
* @documentation https://mxf-dev.github.io/mxf/
|
|
19
19
|
*/
|
|
20
20
|
/**
|
|
@@ -37,6 +37,17 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
37
37
|
// Create logger and validator instances
|
|
38
38
|
const logger = new Logger('info', 'ExternalMcpServerManager', 'server');
|
|
39
39
|
const validator = createStrictValidator('ExternalMcpServerManager');
|
|
40
|
+
/** How long to wait for a reply to a JSON-RPC request, per method. */
|
|
41
|
+
const REQUEST_TIMEOUTS_MS = {
|
|
42
|
+
initialize: 30000,
|
|
43
|
+
'tools/list': 15000,
|
|
44
|
+
'tools/call': 30000,
|
|
45
|
+
ping: 5000
|
|
46
|
+
};
|
|
47
|
+
/** MCP protocol version this client negotiates in the initialize handshake. */
|
|
48
|
+
const MCP_PROTOCOL_VERSION = '2024-11-05';
|
|
49
|
+
/** Version this client reports to servers. */
|
|
50
|
+
const MCP_CLIENT_VERSION = '1.0.0';
|
|
40
51
|
/**
|
|
41
52
|
* Manages external MCP server processes and their lifecycle
|
|
42
53
|
*/
|
|
@@ -265,7 +276,9 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
265
276
|
// Store server configuration and status
|
|
266
277
|
this.servers.set(config.id, {
|
|
267
278
|
config,
|
|
268
|
-
status
|
|
279
|
+
status,
|
|
280
|
+
pending: new Map(),
|
|
281
|
+
stdoutBuffer: ''
|
|
269
282
|
});
|
|
270
283
|
// Auto-start if configured
|
|
271
284
|
if (config.autoStart) {
|
|
@@ -435,13 +448,16 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
435
448
|
clearTimeout(serverData.startupTimer);
|
|
436
449
|
serverData.startupTimer = undefined;
|
|
437
450
|
}
|
|
451
|
+
// Fail anything still in flight before we kill the process, so callers get
|
|
452
|
+
// a clear error rather than waiting out their own timeouts.
|
|
453
|
+
this.rejectPendingRequests(serverId, 'server is stopping');
|
|
438
454
|
// Terminate process
|
|
439
455
|
if (serverData.process) {
|
|
440
456
|
serverData.process.kill('SIGTERM');
|
|
441
457
|
// Force kill after timeout
|
|
442
458
|
setTimeout(() => {
|
|
443
459
|
if (serverData.process && !serverData.process.killed) {
|
|
444
|
-
logger.warn(
|
|
460
|
+
logger.warn(`Force killing server ${config.name}`);
|
|
445
461
|
serverData.process.kill('SIGKILL');
|
|
446
462
|
}
|
|
447
463
|
}, 5000);
|
|
@@ -450,6 +466,8 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
450
466
|
status.status = 'stopped';
|
|
451
467
|
status.pid = undefined;
|
|
452
468
|
status.tools = [];
|
|
469
|
+
status.initialized = false;
|
|
470
|
+
status.initializing = false;
|
|
453
471
|
// Emit stopped event
|
|
454
472
|
this.emitServerEvent(McpEvents.EXTERNAL_SERVER_STOPPED, serverId, agentId, channelId);
|
|
455
473
|
}
|
|
@@ -497,6 +515,12 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
497
515
|
process.on('exit', (code, signal) => {
|
|
498
516
|
status.status = 'stopped';
|
|
499
517
|
status.pid = undefined;
|
|
518
|
+
// The handshake does not survive the process. A restarted server has to
|
|
519
|
+
// perform it again before it can be marked running.
|
|
520
|
+
status.initialized = false;
|
|
521
|
+
status.initializing = false;
|
|
522
|
+
// Anything still waiting on this process will never get a reply.
|
|
523
|
+
this.rejectPendingRequests(serverId, `server exited (code ${code ?? 'null'}, signal ${signal ?? 'none'})`);
|
|
500
524
|
// Clear timers
|
|
501
525
|
if (serverData.healthCheckTimer) {
|
|
502
526
|
clearInterval(serverData.healthCheckTimer);
|
|
@@ -520,11 +544,11 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
520
544
|
logger.error(`❌ Server ${config.name} process error: ${error.message}`);
|
|
521
545
|
this.handleServerError(serverId, error.message);
|
|
522
546
|
});
|
|
523
|
-
//
|
|
547
|
+
// ONE stdout listener per server. Every JSON-RPC reply arrives here and is
|
|
548
|
+
// routed to its waiting caller by request id.
|
|
524
549
|
if (process.stdout) {
|
|
525
550
|
process.stdout.on('data', (data) => {
|
|
526
|
-
|
|
527
|
-
this.handleServerOutput(serverId, output);
|
|
551
|
+
this.handleServerOutput(serverId, data.toString());
|
|
528
552
|
});
|
|
529
553
|
}
|
|
530
554
|
// Handle stderr — log non-warning output for debugging spawn failures
|
|
@@ -540,26 +564,133 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
540
564
|
}
|
|
541
565
|
});
|
|
542
566
|
}
|
|
543
|
-
//
|
|
567
|
+
// The OS started the process. That is NOT the same as the server being ready
|
|
568
|
+
// to serve MCP: it says nothing about whether the JSON-RPC handshake will
|
|
569
|
+
// succeed. Status stays 'starting' until initializeMcpConnection() completes,
|
|
570
|
+
// so a server that spawns and then fails its handshake never reports 'running'.
|
|
544
571
|
process.on('spawn', () => {
|
|
545
|
-
logger.info(`[SPAWN] Server ${serverId} process spawned
|
|
546
|
-
|
|
547
|
-
//
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
572
|
+
logger.info(`[SPAWN] Server ${serverId} process spawned; starting MCP handshake`);
|
|
573
|
+
// stdin writes are buffered by the OS, so the handshake can be written
|
|
574
|
+
// immediately — the child reads it when it is ready. The old code slept
|
|
575
|
+
// two seconds here and hoped that was long enough.
|
|
576
|
+
this.initializeMcpConnection(serverId).catch((err) => {
|
|
577
|
+
logger.error(`[MCP] Failed to initialize connection to ${serverId}: ${err.message}`);
|
|
578
|
+
this.handleServerError(serverId, `MCP initialization failed: ${err.message}`);
|
|
579
|
+
});
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* Route a chunk of a server's stdout to whoever is waiting for it.
|
|
584
|
+
*
|
|
585
|
+
* MCP over stdio is line-delimited JSON. Chunks do not respect line boundaries,
|
|
586
|
+
* so a partial line is carried over to the next chunk.
|
|
587
|
+
*/
|
|
588
|
+
handleServerOutput(serverId, chunk) {
|
|
589
|
+
const serverData = this.servers.get(serverId);
|
|
590
|
+
if (!serverData) {
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
593
|
+
serverData.stdoutBuffer += chunk;
|
|
594
|
+
const lines = serverData.stdoutBuffer.split('\n');
|
|
595
|
+
// The last element is either an incomplete line or '' — keep it for next time.
|
|
596
|
+
serverData.stdoutBuffer = lines.pop() ?? '';
|
|
597
|
+
for (const line of lines) {
|
|
598
|
+
const trimmed = line.trim();
|
|
599
|
+
if (!trimmed) {
|
|
600
|
+
continue;
|
|
551
601
|
}
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
});
|
|
560
|
-
|
|
602
|
+
let message;
|
|
603
|
+
try {
|
|
604
|
+
message = JSON.parse(trimmed);
|
|
605
|
+
}
|
|
606
|
+
catch {
|
|
607
|
+
// Servers spawned through npx sometimes print non-JSON banners to
|
|
608
|
+
// stdout. Not our reply; not an error.
|
|
609
|
+
logger.debug(`[MCP-STDOUT] ${serverId}: ${trimmed.slice(0, 200)}`);
|
|
610
|
+
continue;
|
|
611
|
+
}
|
|
612
|
+
// A message with no id is a notification from the server, not a reply.
|
|
613
|
+
if (message.id === undefined || message.id === null) {
|
|
614
|
+
continue;
|
|
615
|
+
}
|
|
616
|
+
const requestId = String(message.id);
|
|
617
|
+
const pending = serverData.pending.get(requestId);
|
|
618
|
+
if (!pending) {
|
|
619
|
+
continue;
|
|
620
|
+
}
|
|
621
|
+
clearTimeout(pending.timer);
|
|
622
|
+
serverData.pending.delete(requestId);
|
|
623
|
+
if (message.error) {
|
|
624
|
+
pending.reject(new Error(`MCP error from ${serverId} (${pending.method}): ` +
|
|
625
|
+
`${message.error.message ?? JSON.stringify(message.error)}`));
|
|
626
|
+
}
|
|
627
|
+
else {
|
|
628
|
+
pending.resolve(message.result);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Send a JSON-RPC request and wait for its reply.
|
|
634
|
+
*
|
|
635
|
+
* The reply is matched by id in handleServerOutput(). On timeout the pending
|
|
636
|
+
* entry is removed, so nothing accumulates.
|
|
637
|
+
*/
|
|
638
|
+
sendRequest(serverId, method, params = {}) {
|
|
639
|
+
const serverData = this.servers.get(serverId);
|
|
640
|
+
if (!serverData?.process?.stdin) {
|
|
641
|
+
return Promise.reject(new Error(`Server ${serverId} is not running or has no stdin`));
|
|
642
|
+
}
|
|
643
|
+
const stdin = serverData.process.stdin;
|
|
644
|
+
const requestId = uuidv4();
|
|
645
|
+
const timeoutMs = REQUEST_TIMEOUTS_MS[method];
|
|
646
|
+
return new Promise((resolve, reject) => {
|
|
647
|
+
const timer = setTimeout(() => {
|
|
648
|
+
serverData.pending.delete(requestId);
|
|
649
|
+
reject(new Error(`Timed out after ${timeoutMs}ms waiting for ${method} from ${serverId}`));
|
|
650
|
+
}, timeoutMs);
|
|
651
|
+
serverData.pending.set(requestId, { resolve, reject, timer, method });
|
|
652
|
+
const request = {
|
|
653
|
+
jsonrpc: '2.0',
|
|
654
|
+
id: requestId,
|
|
655
|
+
method,
|
|
656
|
+
params
|
|
657
|
+
};
|
|
658
|
+
stdin.write(JSON.stringify(request) + '\n', (writeError) => {
|
|
659
|
+
if (writeError) {
|
|
660
|
+
clearTimeout(timer);
|
|
661
|
+
serverData.pending.delete(requestId);
|
|
662
|
+
reject(new Error(`Failed to write ${method} to ${serverId}: ${writeError.message}`));
|
|
663
|
+
}
|
|
664
|
+
});
|
|
561
665
|
});
|
|
562
666
|
}
|
|
667
|
+
/**
|
|
668
|
+
* Send a JSON-RPC notification. Notifications have no id and get no reply.
|
|
669
|
+
*/
|
|
670
|
+
sendNotification(serverId, method, params = {}) {
|
|
671
|
+
const serverData = this.servers.get(serverId);
|
|
672
|
+
if (!serverData?.process?.stdin) {
|
|
673
|
+
throw new Error(`Server ${serverId} is not running or has no stdin`);
|
|
674
|
+
}
|
|
675
|
+
const notification = { jsonrpc: '2.0', method, params };
|
|
676
|
+
serverData.process.stdin.write(JSON.stringify(notification) + '\n');
|
|
677
|
+
}
|
|
678
|
+
/**
|
|
679
|
+
* Fail every in-flight request for a server. Called when the process dies, so
|
|
680
|
+
* callers get an error instead of hanging until their individual timeouts.
|
|
681
|
+
*/
|
|
682
|
+
rejectPendingRequests(serverId, reason) {
|
|
683
|
+
const serverData = this.servers.get(serverId);
|
|
684
|
+
if (!serverData) {
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
687
|
+
for (const [requestId, pending] of serverData.pending) {
|
|
688
|
+
clearTimeout(pending.timer);
|
|
689
|
+
pending.reject(new Error(`${pending.method} on ${serverId} aborted: ${reason}`));
|
|
690
|
+
serverData.pending.delete(requestId);
|
|
691
|
+
}
|
|
692
|
+
serverData.stdoutBuffer = '';
|
|
693
|
+
}
|
|
563
694
|
/**
|
|
564
695
|
* Start health check monitoring for a server
|
|
565
696
|
*/
|
|
@@ -573,36 +704,44 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
573
704
|
}, config.healthCheckInterval);
|
|
574
705
|
}
|
|
575
706
|
/**
|
|
576
|
-
*
|
|
707
|
+
* Check that a server is actually answering.
|
|
708
|
+
*
|
|
709
|
+
* This used to be `process && !process.killed` — which only says the OS has not
|
|
710
|
+
* reaped the process. A server that had wedged, deadlocked, or stopped reading
|
|
711
|
+
* stdin stayed "healthy" forever.
|
|
712
|
+
*
|
|
713
|
+
* A real probe means a round trip through the JSON-RPC layer. `tools/list` is
|
|
714
|
+
* the probe: every server we can talk to implements it (we call it at
|
|
715
|
+
* discovery), it takes no arguments, and a reply proves the server is reading
|
|
716
|
+
* stdin, parsing JSON-RPC, and writing stdout.
|
|
577
717
|
*/
|
|
578
718
|
async performHealthCheck(serverId) {
|
|
579
719
|
const serverData = this.servers.get(serverId);
|
|
580
720
|
if (!serverData)
|
|
581
721
|
return;
|
|
582
|
-
const {
|
|
583
|
-
// Emit health check event
|
|
722
|
+
const { status } = serverData;
|
|
584
723
|
this.emitServerEvent(McpEvents.EXTERNAL_SERVER_HEALTH_CHECK, serverId);
|
|
585
|
-
// Simple health check - process is running
|
|
586
|
-
const isHealthy = serverData.process && !serverData.process.killed;
|
|
587
724
|
status.lastHealthCheck = Date.now();
|
|
588
|
-
|
|
589
|
-
|
|
725
|
+
// A process that is gone is unhealthy without needing a round trip.
|
|
726
|
+
if (!serverData.process || serverData.process.killed) {
|
|
727
|
+
this.emitServerHealthStatus(serverId, 'unhealthy');
|
|
728
|
+
return;
|
|
729
|
+
}
|
|
730
|
+
// Only probe a server that finished its handshake — one still starting has
|
|
731
|
+
// not agreed to speak MCP yet.
|
|
732
|
+
if (status.status !== 'running') {
|
|
733
|
+
this.emitServerHealthStatus(serverId, 'unhealthy');
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
try {
|
|
737
|
+
await this.sendRequest(serverId, 'tools/list');
|
|
738
|
+
this.emitServerHealthStatus(serverId, 'healthy');
|
|
739
|
+
}
|
|
740
|
+
catch (error) {
|
|
741
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
742
|
+
logger.warn(`Health check failed for ${serverId}: ${message}`);
|
|
743
|
+
this.emitServerHealthStatus(serverId, 'unhealthy');
|
|
590
744
|
}
|
|
591
|
-
// Emit health status
|
|
592
|
-
this.emitServerHealthStatus(serverId, isHealthy ? 'healthy' : 'unhealthy');
|
|
593
|
-
}
|
|
594
|
-
/**
|
|
595
|
-
* Handle server output for tool discovery
|
|
596
|
-
*
|
|
597
|
-
* MCP protocol message parsing is handled in:
|
|
598
|
-
* - initializeMcpConnection(): Handles MCP initialize handshake
|
|
599
|
-
* - discoverRealToolsFromServer(): Handles tools/list JSON-RPC calls
|
|
600
|
-
* - executeToolOnServer(): Handles tools/call JSON-RPC calls
|
|
601
|
-
*/
|
|
602
|
-
handleServerOutput(serverId, output) {
|
|
603
|
-
// Server stdout is processed by the MCP JSON-RPC handlers in initializeMcpConnection,
|
|
604
|
-
// discoverRealToolsFromServer, and executeToolOnServer methods.
|
|
605
|
-
// This handler is used for any additional output logging if needed.
|
|
606
745
|
}
|
|
607
746
|
/**
|
|
608
747
|
* Discover tools available from a server
|
|
@@ -665,188 +804,81 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
665
804
|
}
|
|
666
805
|
}
|
|
667
806
|
/**
|
|
668
|
-
*
|
|
807
|
+
* Perform the MCP handshake, then discover the server's tools.
|
|
808
|
+
*
|
|
809
|
+
* The handshake is two messages, not one:
|
|
810
|
+
* 1. `initialize` — request/response, negotiates protocol version.
|
|
811
|
+
* 2. `notifications/initialized` — a notification telling the server the
|
|
812
|
+
* client is ready.
|
|
813
|
+
*
|
|
814
|
+
* The second was never sent. It is required by the MCP spec, and a strict
|
|
815
|
+
* server is entitled to reject `tools/list` from a client that never sent it.
|
|
816
|
+
*
|
|
817
|
+
* The server is only marked 'running' once this completes. Spawning a process
|
|
818
|
+
* says nothing about whether it speaks MCP.
|
|
669
819
|
*/
|
|
670
820
|
async initializeMcpConnection(serverId) {
|
|
671
821
|
const serverData = this.servers.get(serverId);
|
|
672
822
|
if (!serverData || !serverData.process) {
|
|
673
823
|
throw new Error(`Server ${serverId} not found or not running`);
|
|
674
824
|
}
|
|
675
|
-
// Prevent duplicate initialization
|
|
676
825
|
if (serverData.status.initialized) {
|
|
677
|
-
logger.warn(
|
|
826
|
+
logger.warn(`MCP connection already initialized for server ${serverData.config.name}`);
|
|
678
827
|
return;
|
|
679
828
|
}
|
|
680
829
|
const { process, config } = serverData;
|
|
681
830
|
if (!process.stdin || !process.stdout) {
|
|
682
831
|
throw new Error('Process streams not available');
|
|
683
832
|
}
|
|
684
|
-
// Mark as initializing to prevent concurrent initialization
|
|
685
833
|
serverData.status.initializing = true;
|
|
686
|
-
//
|
|
687
|
-
const
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
},
|
|
697
|
-
clientInfo: {
|
|
698
|
-
name: "MXF Framework",
|
|
699
|
-
version: "0.32.0"
|
|
700
|
-
}
|
|
834
|
+
// 1. initialize
|
|
835
|
+
const result = await this.sendRequest(serverId, 'initialize', {
|
|
836
|
+
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
837
|
+
capabilities: {
|
|
838
|
+
experimental: {},
|
|
839
|
+
sampling: {}
|
|
840
|
+
},
|
|
841
|
+
clientInfo: {
|
|
842
|
+
name: 'MXF Framework',
|
|
843
|
+
version: MCP_CLIENT_VERSION
|
|
701
844
|
}
|
|
702
|
-
};
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
//
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
throw new Error(`MCP initialize error: ${response.error.message}`);
|
|
711
|
-
}
|
|
712
|
-
// Discover tools after MCP connection is initialized
|
|
713
|
-
await this.discoverServerTools(serverId);
|
|
714
|
-
// Mark as successfully initialized
|
|
845
|
+
});
|
|
846
|
+
logger.info(`[MCP] ${config.name} initialized ` +
|
|
847
|
+
`(server: ${result?.serverInfo?.name ?? 'unknown'} ${result?.serverInfo?.version ?? ''})`);
|
|
848
|
+
// 2. notifications/initialized — required by the spec before any other request
|
|
849
|
+
this.sendNotification(serverId, 'notifications/initialized');
|
|
850
|
+
// The handshake succeeded, so the server is genuinely serving MCP now.
|
|
851
|
+
// Discovery below issues tools/list, which requires this status.
|
|
852
|
+
serverData.status.status = 'running';
|
|
715
853
|
serverData.status.initialized = true;
|
|
716
854
|
serverData.status.initializing = false;
|
|
855
|
+
if (serverData.startupTimer) {
|
|
856
|
+
clearTimeout(serverData.startupTimer);
|
|
857
|
+
serverData.startupTimer = undefined;
|
|
858
|
+
}
|
|
859
|
+
this.emitServerEvent(McpEvents.EXTERNAL_SERVER_STARTED, serverId);
|
|
860
|
+
// Now that the connection is live, find out what the server offers.
|
|
861
|
+
await this.discoverServerTools(serverId);
|
|
717
862
|
}
|
|
718
863
|
/**
|
|
719
|
-
*
|
|
720
|
-
*/
|
|
721
|
-
async waitForMcpResponse(stdout, requestId) {
|
|
722
|
-
return new Promise((resolve, reject) => {
|
|
723
|
-
let responseBuffer = '';
|
|
724
|
-
let timeoutId;
|
|
725
|
-
let resolved = false;
|
|
726
|
-
const responseHandler = (data) => {
|
|
727
|
-
if (resolved)
|
|
728
|
-
return; // Prevent duplicate responses
|
|
729
|
-
responseBuffer += data.toString();
|
|
730
|
-
// Try to parse JSON response (MCP responses are line-delimited JSON)
|
|
731
|
-
const lines = responseBuffer.split('\n');
|
|
732
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
|
733
|
-
const line = lines[i].trim();
|
|
734
|
-
if (line) {
|
|
735
|
-
try {
|
|
736
|
-
const response = JSON.parse(line.trim());
|
|
737
|
-
// Check if this is our response
|
|
738
|
-
if (response.id === requestId) {
|
|
739
|
-
resolved = true;
|
|
740
|
-
clearTimeout(timeoutId);
|
|
741
|
-
stdout.removeListener('data', responseHandler);
|
|
742
|
-
// Return the clean JSON line instead of the entire buffer
|
|
743
|
-
resolve(line.trim());
|
|
744
|
-
return;
|
|
745
|
-
}
|
|
746
|
-
}
|
|
747
|
-
catch (parseError) {
|
|
748
|
-
// Ignore JSON parse errors for incomplete lines
|
|
749
|
-
continue;
|
|
750
|
-
}
|
|
751
|
-
}
|
|
752
|
-
}
|
|
753
|
-
// Keep the last incomplete line in buffer
|
|
754
|
-
responseBuffer = lines[lines.length - 1];
|
|
755
|
-
};
|
|
756
|
-
// Set up timeout (30 seconds for MCP response - some servers like n8n need more time)
|
|
757
|
-
timeoutId = setTimeout(() => {
|
|
758
|
-
if (!resolved) {
|
|
759
|
-
resolved = true;
|
|
760
|
-
stdout.removeListener('data', responseHandler);
|
|
761
|
-
reject(new Error(`Timeout waiting for MCP response after 30 seconds`));
|
|
762
|
-
}
|
|
763
|
-
}, 30000);
|
|
764
|
-
// Listen for response
|
|
765
|
-
stdout.on('data', responseHandler);
|
|
766
|
-
});
|
|
767
|
-
}
|
|
768
|
-
/**
|
|
769
|
-
* Discover tools from external MCP server using JSON-RPC tools/list method
|
|
864
|
+
* Ask a server what tools it has.
|
|
770
865
|
*/
|
|
771
866
|
async discoverRealToolsFromServer(serverId) {
|
|
772
867
|
const serverData = this.servers.get(serverId);
|
|
773
868
|
if (!serverData || !serverData.process) {
|
|
774
869
|
throw new Error(`Server ${serverId} not found or not running`);
|
|
775
870
|
}
|
|
776
|
-
const {
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
method: 'tools/list',
|
|
788
|
-
params: {}
|
|
789
|
-
};
|
|
790
|
-
let responseData = '';
|
|
791
|
-
let timeoutId;
|
|
792
|
-
let resolved = false;
|
|
793
|
-
const handleData = (chunk) => {
|
|
794
|
-
if (resolved)
|
|
795
|
-
return; // Prevent duplicate responses
|
|
796
|
-
responseData += chunk.toString();
|
|
797
|
-
// Look for complete JSON-RPC response
|
|
798
|
-
const lines = responseData.split('\n');
|
|
799
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
|
800
|
-
const line = lines[i].trim();
|
|
801
|
-
if (line) {
|
|
802
|
-
try {
|
|
803
|
-
const response = JSON.parse(line.trim());
|
|
804
|
-
// Check if this is our response
|
|
805
|
-
if (response.id === requestId) {
|
|
806
|
-
resolved = true;
|
|
807
|
-
clearTimeout(timeoutId);
|
|
808
|
-
process.stdout.off('data', handleData);
|
|
809
|
-
if (response.error) {
|
|
810
|
-
reject(new Error(`MCP Error: ${response.error.message}`));
|
|
811
|
-
return;
|
|
812
|
-
}
|
|
813
|
-
if (response.result && response.result.tools) {
|
|
814
|
-
const tools = response.result.tools.map((tool) => ({
|
|
815
|
-
name: tool.name,
|
|
816
|
-
description: tool.description || `Tool from ${config.name}`,
|
|
817
|
-
inputSchema: tool.inputSchema || { type: 'object', properties: {}, required: [] }
|
|
818
|
-
}));
|
|
819
|
-
resolve(tools);
|
|
820
|
-
}
|
|
821
|
-
else {
|
|
822
|
-
logger.warn(`⚠️ No tools found in response from ${config.name}`);
|
|
823
|
-
resolve([]);
|
|
824
|
-
}
|
|
825
|
-
return;
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
catch (parseError) {
|
|
829
|
-
// Continue looking for valid JSON in other lines
|
|
830
|
-
}
|
|
831
|
-
}
|
|
832
|
-
}
|
|
833
|
-
// Keep the last incomplete line in buffer
|
|
834
|
-
responseData = lines[lines.length - 1];
|
|
835
|
-
};
|
|
836
|
-
// Set up timeout (15 seconds for tool execution)
|
|
837
|
-
timeoutId = setTimeout(() => {
|
|
838
|
-
if (!resolved) {
|
|
839
|
-
resolved = true;
|
|
840
|
-
process.stdout.off('data', handleData);
|
|
841
|
-
reject(new Error(`Timeout waiting for tools/list response from ${config.name} after 15 seconds`));
|
|
842
|
-
}
|
|
843
|
-
}, 15000);
|
|
844
|
-
// Listen for response
|
|
845
|
-
process.stdout.on('data', handleData);
|
|
846
|
-
// Send tools/list request
|
|
847
|
-
const requestLine = JSON.stringify(mcpRequest) + '\n';
|
|
848
|
-
process.stdin.write(requestLine);
|
|
849
|
-
});
|
|
871
|
+
const { config } = serverData;
|
|
872
|
+
const result = await this.sendRequest(serverId, 'tools/list');
|
|
873
|
+
if (!result?.tools) {
|
|
874
|
+
logger.warn(`No tools in the tools/list response from ${config.name}`);
|
|
875
|
+
return [];
|
|
876
|
+
}
|
|
877
|
+
return result.tools.map((tool) => ({
|
|
878
|
+
name: tool.name,
|
|
879
|
+
description: tool.description || `Tool from ${config.name}`,
|
|
880
|
+
inputSchema: tool.inputSchema || { type: 'object', properties: {}, required: [] }
|
|
881
|
+
}));
|
|
850
882
|
}
|
|
851
883
|
/**
|
|
852
884
|
* Handle server errors
|
|
@@ -944,6 +976,7 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
944
976
|
return;
|
|
945
977
|
}
|
|
946
978
|
EventBus.server.emit(McpEvents.EXTERNAL_SERVER_TOOLS_DISCOVERED, createExternalMcpServerToolsDiscoveredEventPayload(McpEvents.EXTERNAL_SERVER_TOOLS_DISCOVERED, 'SYSTEM', 'SYSTEM', {
|
|
979
|
+
serverId,
|
|
947
980
|
name: config.name,
|
|
948
981
|
version: config.version,
|
|
949
982
|
tools
|
|
@@ -1031,7 +1064,19 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
1031
1064
|
/**
|
|
1032
1065
|
* Execute a tool on an external MCP server via JSON-RPC with auto-correction support
|
|
1033
1066
|
*/
|
|
1034
|
-
async executeToolOnServer(serverId, toolName, input, agentId
|
|
1067
|
+
async executeToolOnServer(serverId, toolName, input, agentId, channelId) {
|
|
1068
|
+
// Identity is required. These parameters used to default to 'system' and
|
|
1069
|
+
// 'default', which quietly defeated the registry's own rule that every tool
|
|
1070
|
+
// execution carry a real agentId and channelId — and made auto-correction
|
|
1071
|
+
// learn against a fake agent.
|
|
1072
|
+
if (typeof agentId !== 'string' || agentId.length === 0) {
|
|
1073
|
+
throw new Error(`executeToolOnServer requires an agentId (tool "${toolName}" on server "${serverId}"). ` +
|
|
1074
|
+
`External tool calls must be attributable to an agent.`);
|
|
1075
|
+
}
|
|
1076
|
+
if (typeof channelId !== 'string' || channelId.length === 0) {
|
|
1077
|
+
throw new Error(`executeToolOnServer requires a channelId (tool "${toolName}" on server "${serverId}"). ` +
|
|
1078
|
+
`External tool calls must be attributable to a channel.`);
|
|
1079
|
+
}
|
|
1035
1080
|
// PROACTIVE CORRECTION: Apply known corrections before attempting execution
|
|
1036
1081
|
// NOTE: n8n-mcp server has built-in n8n_autofix_workflow and validation tools,
|
|
1037
1082
|
// so proactive correction is not needed for n8n_* tools. This is kept for
|
|
@@ -1074,7 +1119,10 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
1074
1119
|
throw lastError || new Error(`Failed to execute ${toolName} after ${maxAttempts} attempts`);
|
|
1075
1120
|
}
|
|
1076
1121
|
/**
|
|
1077
|
-
*
|
|
1122
|
+
* Execute a tool once, without the retry/auto-correction wrapper.
|
|
1123
|
+
*
|
|
1124
|
+
* The reply is matched by request id through the server's single stdout
|
|
1125
|
+
* listener — see sendRequest() and handleServerOutput().
|
|
1078
1126
|
*/
|
|
1079
1127
|
async executeToolOnServerInternal(serverId, toolName, input) {
|
|
1080
1128
|
const serverData = this.servers.get(serverId);
|
|
@@ -1084,90 +1132,15 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
1084
1132
|
if (!serverData.process || serverData.status.status !== 'running') {
|
|
1085
1133
|
throw new Error(`Server ${serverId} is not running`);
|
|
1086
1134
|
}
|
|
1087
|
-
// Verify tool
|
|
1135
|
+
// Verify the server actually offers this tool before calling it.
|
|
1088
1136
|
const tool = serverData.status.tools.find(t => t.name === toolName);
|
|
1089
1137
|
if (!tool) {
|
|
1090
|
-
throw new Error(`Tool ${toolName} not found on server ${serverId}`
|
|
1138
|
+
throw new Error(`Tool ${toolName} not found on server ${serverId}. ` +
|
|
1139
|
+
`Available: ${serverData.status.tools.map(t => t.name).join(', ') || 'none'}`);
|
|
1091
1140
|
}
|
|
1092
|
-
return
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
// Create MCP tool call request according to the protocol
|
|
1096
|
-
const mcpRequest = {
|
|
1097
|
-
jsonrpc: "2.0",
|
|
1098
|
-
id: requestId,
|
|
1099
|
-
method: "tools/call",
|
|
1100
|
-
params: {
|
|
1101
|
-
name: toolName,
|
|
1102
|
-
arguments: input
|
|
1103
|
-
}
|
|
1104
|
-
};
|
|
1105
|
-
let responseBuffer = '';
|
|
1106
|
-
let timeoutId;
|
|
1107
|
-
let resolved = false;
|
|
1108
|
-
const responseHandler = (data) => {
|
|
1109
|
-
if (resolved)
|
|
1110
|
-
return; // Prevent duplicate responses
|
|
1111
|
-
responseBuffer += data.toString();
|
|
1112
|
-
// Try to parse JSON response (MCP responses are line-delimited JSON)
|
|
1113
|
-
const lines = responseBuffer.split('\n');
|
|
1114
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
|
1115
|
-
const line = lines[i].trim();
|
|
1116
|
-
if (line) {
|
|
1117
|
-
try {
|
|
1118
|
-
const response = JSON.parse(line.trim());
|
|
1119
|
-
// Check if this is our response
|
|
1120
|
-
if (response.id === requestId) {
|
|
1121
|
-
resolved = true;
|
|
1122
|
-
clearTimeout(timeoutId);
|
|
1123
|
-
serverData.process.stdout.removeListener('data', responseHandler);
|
|
1124
|
-
if (response.error) {
|
|
1125
|
-
const errorMessage = `MCP error: ${response.error.message || response.error}`;
|
|
1126
|
-
logger.error(`❌ MCP tool call error: ${errorMessage}`);
|
|
1127
|
-
reject(new Error(errorMessage));
|
|
1128
|
-
}
|
|
1129
|
-
else {
|
|
1130
|
-
resolve(response.result);
|
|
1131
|
-
}
|
|
1132
|
-
return;
|
|
1133
|
-
}
|
|
1134
|
-
}
|
|
1135
|
-
catch (parseError) {
|
|
1136
|
-
// Ignore JSON parse errors for incomplete lines
|
|
1137
|
-
continue;
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1140
|
-
}
|
|
1141
|
-
// Keep the last incomplete line in buffer
|
|
1142
|
-
responseBuffer = lines[lines.length - 1];
|
|
1143
|
-
};
|
|
1144
|
-
// Set up timeout (30 seconds for tool execution)
|
|
1145
|
-
timeoutId = setTimeout(() => {
|
|
1146
|
-
if (!resolved) {
|
|
1147
|
-
resolved = true;
|
|
1148
|
-
serverData.process.stdout.removeListener('data', responseHandler);
|
|
1149
|
-
reject(new Error(`Timeout waiting for tool execution response from ${serverId} after 30 seconds`));
|
|
1150
|
-
}
|
|
1151
|
-
}, 30000);
|
|
1152
|
-
// Listen for response
|
|
1153
|
-
if (!serverData.process || !serverData.process.stdout) {
|
|
1154
|
-
reject(new Error(`Server ${serverId} process stdout not available`));
|
|
1155
|
-
return;
|
|
1156
|
-
}
|
|
1157
|
-
serverData.process.stdout.on('data', responseHandler);
|
|
1158
|
-
// Send the request
|
|
1159
|
-
if (!serverData.process.stdin) {
|
|
1160
|
-
reject(new Error(`Server ${serverId} process stdin not available`));
|
|
1161
|
-
return;
|
|
1162
|
-
}
|
|
1163
|
-
const requestJson = JSON.stringify(mcpRequest) + '\n';
|
|
1164
|
-
serverData.process.stdin.write(requestJson);
|
|
1165
|
-
}
|
|
1166
|
-
catch (error) {
|
|
1167
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
1168
|
-
logger.error(`❌ Failed to execute tool ${toolName} on server ${serverId}: ${errorMessage}`);
|
|
1169
|
-
reject(error);
|
|
1170
|
-
}
|
|
1141
|
+
return this.sendRequest(serverId, 'tools/call', {
|
|
1142
|
+
name: toolName,
|
|
1143
|
+
arguments: input
|
|
1171
1144
|
});
|
|
1172
1145
|
}
|
|
1173
1146
|
}
|