@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
|
|
|
@@ -111,6 +111,30 @@ export interface ExternalMcpTool {
|
|
|
111
111
|
serverId: string;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
+
/**
|
|
115
|
+
* A JSON-RPC request that has been written to a server and is awaiting its reply.
|
|
116
|
+
*/
|
|
117
|
+
interface PendingRequest {
|
|
118
|
+
resolve: (result: any) => void;
|
|
119
|
+
reject: (error: Error) => void;
|
|
120
|
+
timer: NodeJS.Timeout;
|
|
121
|
+
method: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** How long to wait for a reply to a JSON-RPC request, per method. */
|
|
125
|
+
const REQUEST_TIMEOUTS_MS = {
|
|
126
|
+
initialize: 30000,
|
|
127
|
+
'tools/list': 15000,
|
|
128
|
+
'tools/call': 30000,
|
|
129
|
+
ping: 5000
|
|
130
|
+
} as const;
|
|
131
|
+
|
|
132
|
+
/** MCP protocol version this client negotiates in the initialize handshake. */
|
|
133
|
+
const MCP_PROTOCOL_VERSION = '2024-11-05';
|
|
134
|
+
|
|
135
|
+
/** Version this client reports to servers. */
|
|
136
|
+
const MCP_CLIENT_VERSION = '1.0.0';
|
|
137
|
+
|
|
114
138
|
/**
|
|
115
139
|
* Manages external MCP server processes and their lifecycle
|
|
116
140
|
*/
|
|
@@ -121,6 +145,19 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
121
145
|
status: ExternalServerStatus;
|
|
122
146
|
healthCheckTimer?: NodeJS.Timeout;
|
|
123
147
|
startupTimer?: NodeJS.Timeout;
|
|
148
|
+
/**
|
|
149
|
+
* In-flight JSON-RPC requests, keyed by request id.
|
|
150
|
+
*
|
|
151
|
+
* There is ONE stdout listener per server (installed at spawn) that resolves
|
|
152
|
+
* entries in this map. Previously each call attached its own 'data' listener
|
|
153
|
+
* and re-parsed the whole stream: with N concurrent calls every line was
|
|
154
|
+
* parsed N times, and a listener that timed out was removed only if the
|
|
155
|
+
* timeout path ran — repeated timeouts leaked listeners until Node warned
|
|
156
|
+
* about a possible EventEmitter leak.
|
|
157
|
+
*/
|
|
158
|
+
pending: Map<string, PendingRequest>;
|
|
159
|
+
/** Partial line left over from the last stdout chunk. */
|
|
160
|
+
stdoutBuffer: string;
|
|
124
161
|
}> = new Map();
|
|
125
162
|
|
|
126
163
|
// Scope tracking for channel/agent-scoped servers
|
|
@@ -419,7 +456,9 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
419
456
|
// Store server configuration and status
|
|
420
457
|
this.servers.set(config.id, {
|
|
421
458
|
config,
|
|
422
|
-
status
|
|
459
|
+
status,
|
|
460
|
+
pending: new Map(),
|
|
461
|
+
stdoutBuffer: ''
|
|
423
462
|
});
|
|
424
463
|
|
|
425
464
|
|
|
@@ -627,14 +666,18 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
627
666
|
serverData.startupTimer = undefined;
|
|
628
667
|
}
|
|
629
668
|
|
|
669
|
+
// Fail anything still in flight before we kill the process, so callers get
|
|
670
|
+
// a clear error rather than waiting out their own timeouts.
|
|
671
|
+
this.rejectPendingRequests(serverId, 'server is stopping');
|
|
672
|
+
|
|
630
673
|
// Terminate process
|
|
631
674
|
if (serverData.process) {
|
|
632
675
|
serverData.process.kill('SIGTERM');
|
|
633
|
-
|
|
676
|
+
|
|
634
677
|
// Force kill after timeout
|
|
635
678
|
setTimeout(() => {
|
|
636
679
|
if (serverData.process && !serverData.process.killed) {
|
|
637
|
-
logger.warn(
|
|
680
|
+
logger.warn(`Force killing server ${config.name}`);
|
|
638
681
|
serverData.process.kill('SIGKILL');
|
|
639
682
|
}
|
|
640
683
|
}, 5000);
|
|
@@ -644,6 +687,8 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
644
687
|
status.status = 'stopped';
|
|
645
688
|
status.pid = undefined;
|
|
646
689
|
status.tools = [];
|
|
690
|
+
status.initialized = false;
|
|
691
|
+
status.initializing = false;
|
|
647
692
|
|
|
648
693
|
// Emit stopped event
|
|
649
694
|
this.emitServerEvent(McpEvents.EXTERNAL_SERVER_STOPPED, serverId, agentId, channelId);
|
|
@@ -700,9 +745,19 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
700
745
|
|
|
701
746
|
// Handle process exit
|
|
702
747
|
process.on('exit', (code, signal) => {
|
|
703
|
-
|
|
748
|
+
|
|
704
749
|
status.status = 'stopped';
|
|
705
750
|
status.pid = undefined;
|
|
751
|
+
// The handshake does not survive the process. A restarted server has to
|
|
752
|
+
// perform it again before it can be marked running.
|
|
753
|
+
status.initialized = false;
|
|
754
|
+
status.initializing = false;
|
|
755
|
+
|
|
756
|
+
// Anything still waiting on this process will never get a reply.
|
|
757
|
+
this.rejectPendingRequests(
|
|
758
|
+
serverId,
|
|
759
|
+
`server exited (code ${code ?? 'null'}, signal ${signal ?? 'none'})`
|
|
760
|
+
);
|
|
706
761
|
|
|
707
762
|
// Clear timers
|
|
708
763
|
if (serverData.healthCheckTimer) {
|
|
@@ -732,11 +787,11 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
732
787
|
this.handleServerError(serverId, error.message);
|
|
733
788
|
});
|
|
734
789
|
|
|
735
|
-
//
|
|
790
|
+
// ONE stdout listener per server. Every JSON-RPC reply arrives here and is
|
|
791
|
+
// routed to its waiting caller by request id.
|
|
736
792
|
if (process.stdout) {
|
|
737
|
-
process.stdout.on('data', (data) => {
|
|
738
|
-
|
|
739
|
-
this.handleServerOutput(serverId, output);
|
|
793
|
+
process.stdout.on('data', (data: Buffer) => {
|
|
794
|
+
this.handleServerOutput(serverId, data.toString());
|
|
740
795
|
});
|
|
741
796
|
}
|
|
742
797
|
|
|
@@ -754,30 +809,167 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
754
809
|
});
|
|
755
810
|
}
|
|
756
811
|
|
|
757
|
-
//
|
|
812
|
+
// The OS started the process. That is NOT the same as the server being ready
|
|
813
|
+
// to serve MCP: it says nothing about whether the JSON-RPC handshake will
|
|
814
|
+
// succeed. Status stays 'starting' until initializeMcpConnection() completes,
|
|
815
|
+
// so a server that spawns and then fails its handshake never reports 'running'.
|
|
758
816
|
process.on('spawn', () => {
|
|
759
|
-
logger.info(`[SPAWN] Server ${serverId} process spawned
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
//
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
817
|
+
logger.info(`[SPAWN] Server ${serverId} process spawned; starting MCP handshake`);
|
|
818
|
+
|
|
819
|
+
// stdin writes are buffered by the OS, so the handshake can be written
|
|
820
|
+
// immediately — the child reads it when it is ready. The old code slept
|
|
821
|
+
// two seconds here and hoped that was long enough.
|
|
822
|
+
this.initializeMcpConnection(serverId).catch((err) => {
|
|
823
|
+
logger.error(`[MCP] Failed to initialize connection to ${serverId}: ${err.message}`);
|
|
824
|
+
this.handleServerError(serverId, `MCP initialization failed: ${err.message}`);
|
|
825
|
+
});
|
|
826
|
+
});
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* Route a chunk of a server's stdout to whoever is waiting for it.
|
|
831
|
+
*
|
|
832
|
+
* MCP over stdio is line-delimited JSON. Chunks do not respect line boundaries,
|
|
833
|
+
* so a partial line is carried over to the next chunk.
|
|
834
|
+
*/
|
|
835
|
+
private handleServerOutput(serverId: string, chunk: string): void {
|
|
836
|
+
const serverData = this.servers.get(serverId);
|
|
837
|
+
if (!serverData) {
|
|
838
|
+
return;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
serverData.stdoutBuffer += chunk;
|
|
842
|
+
|
|
843
|
+
const lines = serverData.stdoutBuffer.split('\n');
|
|
844
|
+
// The last element is either an incomplete line or '' — keep it for next time.
|
|
845
|
+
serverData.stdoutBuffer = lines.pop() ?? '';
|
|
846
|
+
|
|
847
|
+
for (const line of lines) {
|
|
848
|
+
const trimmed = line.trim();
|
|
849
|
+
if (!trimmed) {
|
|
850
|
+
continue;
|
|
766
851
|
}
|
|
767
852
|
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
853
|
+
let message: any;
|
|
854
|
+
try {
|
|
855
|
+
message = JSON.parse(trimmed);
|
|
856
|
+
} catch {
|
|
857
|
+
// Servers spawned through npx sometimes print non-JSON banners to
|
|
858
|
+
// stdout. Not our reply; not an error.
|
|
859
|
+
logger.debug(`[MCP-STDOUT] ${serverId}: ${trimmed.slice(0, 200)}`);
|
|
860
|
+
continue;
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
// A message with no id is a notification from the server, not a reply.
|
|
864
|
+
if (message.id === undefined || message.id === null) {
|
|
865
|
+
continue;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
const requestId = String(message.id);
|
|
869
|
+
const pending = serverData.pending.get(requestId);
|
|
870
|
+
if (!pending) {
|
|
871
|
+
continue;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
clearTimeout(pending.timer);
|
|
875
|
+
serverData.pending.delete(requestId);
|
|
876
|
+
|
|
877
|
+
if (message.error) {
|
|
878
|
+
pending.reject(new Error(
|
|
879
|
+
`MCP error from ${serverId} (${pending.method}): ` +
|
|
880
|
+
`${message.error.message ?? JSON.stringify(message.error)}`
|
|
881
|
+
));
|
|
882
|
+
} else {
|
|
883
|
+
pending.resolve(message.result);
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
/**
|
|
889
|
+
* Send a JSON-RPC request and wait for its reply.
|
|
890
|
+
*
|
|
891
|
+
* The reply is matched by id in handleServerOutput(). On timeout the pending
|
|
892
|
+
* entry is removed, so nothing accumulates.
|
|
893
|
+
*/
|
|
894
|
+
private sendRequest(
|
|
895
|
+
serverId: string,
|
|
896
|
+
method: keyof typeof REQUEST_TIMEOUTS_MS,
|
|
897
|
+
params: Record<string, any> = {}
|
|
898
|
+
): Promise<any> {
|
|
899
|
+
const serverData = this.servers.get(serverId);
|
|
900
|
+
if (!serverData?.process?.stdin) {
|
|
901
|
+
return Promise.reject(new Error(`Server ${serverId} is not running or has no stdin`));
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
const stdin = serverData.process.stdin;
|
|
905
|
+
const requestId = uuidv4();
|
|
906
|
+
const timeoutMs = REQUEST_TIMEOUTS_MS[method];
|
|
907
|
+
|
|
908
|
+
return new Promise((resolve, reject) => {
|
|
909
|
+
const timer = setTimeout(() => {
|
|
910
|
+
serverData.pending.delete(requestId);
|
|
911
|
+
reject(new Error(
|
|
912
|
+
`Timed out after ${timeoutMs}ms waiting for ${method} from ${serverId}`
|
|
913
|
+
));
|
|
914
|
+
}, timeoutMs);
|
|
915
|
+
|
|
916
|
+
serverData.pending.set(requestId, { resolve, reject, timer, method });
|
|
917
|
+
|
|
918
|
+
const request = {
|
|
919
|
+
jsonrpc: '2.0',
|
|
920
|
+
id: requestId,
|
|
921
|
+
method,
|
|
922
|
+
params
|
|
923
|
+
};
|
|
924
|
+
|
|
925
|
+
stdin.write(JSON.stringify(request) + '\n', (writeError) => {
|
|
926
|
+
if (writeError) {
|
|
927
|
+
clearTimeout(timer);
|
|
928
|
+
serverData.pending.delete(requestId);
|
|
929
|
+
reject(new Error(
|
|
930
|
+
`Failed to write ${method} to ${serverId}: ${writeError.message}`
|
|
931
|
+
));
|
|
932
|
+
}
|
|
933
|
+
});
|
|
778
934
|
});
|
|
779
935
|
}
|
|
780
936
|
|
|
937
|
+
/**
|
|
938
|
+
* Send a JSON-RPC notification. Notifications have no id and get no reply.
|
|
939
|
+
*/
|
|
940
|
+
private sendNotification(
|
|
941
|
+
serverId: string,
|
|
942
|
+
method: string,
|
|
943
|
+
params: Record<string, any> = {}
|
|
944
|
+
): void {
|
|
945
|
+
const serverData = this.servers.get(serverId);
|
|
946
|
+
if (!serverData?.process?.stdin) {
|
|
947
|
+
throw new Error(`Server ${serverId} is not running or has no stdin`);
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
const notification = { jsonrpc: '2.0', method, params };
|
|
951
|
+
serverData.process.stdin.write(JSON.stringify(notification) + '\n');
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
/**
|
|
955
|
+
* Fail every in-flight request for a server. Called when the process dies, so
|
|
956
|
+
* callers get an error instead of hanging until their individual timeouts.
|
|
957
|
+
*/
|
|
958
|
+
private rejectPendingRequests(serverId: string, reason: string): void {
|
|
959
|
+
const serverData = this.servers.get(serverId);
|
|
960
|
+
if (!serverData) {
|
|
961
|
+
return;
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
for (const [requestId, pending] of serverData.pending) {
|
|
965
|
+
clearTimeout(pending.timer);
|
|
966
|
+
pending.reject(new Error(`${pending.method} on ${serverId} aborted: ${reason}`));
|
|
967
|
+
serverData.pending.delete(requestId);
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
serverData.stdoutBuffer = '';
|
|
971
|
+
}
|
|
972
|
+
|
|
781
973
|
/**
|
|
782
974
|
* Start health check monitoring for a server
|
|
783
975
|
*/
|
|
@@ -793,42 +985,48 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
793
985
|
}
|
|
794
986
|
|
|
795
987
|
/**
|
|
796
|
-
*
|
|
988
|
+
* Check that a server is actually answering.
|
|
989
|
+
*
|
|
990
|
+
* This used to be `process && !process.killed` — which only says the OS has not
|
|
991
|
+
* reaped the process. A server that had wedged, deadlocked, or stopped reading
|
|
992
|
+
* stdin stayed "healthy" forever.
|
|
993
|
+
*
|
|
994
|
+
* A real probe means a round trip through the JSON-RPC layer. `tools/list` is
|
|
995
|
+
* the probe: every server we can talk to implements it (we call it at
|
|
996
|
+
* discovery), it takes no arguments, and a reply proves the server is reading
|
|
997
|
+
* stdin, parsing JSON-RPC, and writing stdout.
|
|
797
998
|
*/
|
|
798
999
|
private async performHealthCheck(serverId: string): Promise<void> {
|
|
799
1000
|
const serverData = this.servers.get(serverId);
|
|
800
1001
|
if (!serverData) return;
|
|
801
1002
|
|
|
802
|
-
const {
|
|
1003
|
+
const { status } = serverData;
|
|
803
1004
|
|
|
804
|
-
// Emit health check event
|
|
805
1005
|
this.emitServerEvent(McpEvents.EXTERNAL_SERVER_HEALTH_CHECK, serverId);
|
|
806
1006
|
|
|
807
|
-
// Simple health check - process is running
|
|
808
|
-
const isHealthy = serverData.process && !serverData.process.killed;
|
|
809
|
-
|
|
810
1007
|
status.lastHealthCheck = Date.now();
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
1008
|
+
|
|
1009
|
+
// A process that is gone is unhealthy without needing a round trip.
|
|
1010
|
+
if (!serverData.process || serverData.process.killed) {
|
|
1011
|
+
this.emitServerHealthStatus(serverId, 'unhealthy');
|
|
1012
|
+
return;
|
|
814
1013
|
}
|
|
815
1014
|
|
|
816
|
-
//
|
|
817
|
-
|
|
818
|
-
|
|
1015
|
+
// Only probe a server that finished its handshake — one still starting has
|
|
1016
|
+
// not agreed to speak MCP yet.
|
|
1017
|
+
if (status.status !== 'running') {
|
|
1018
|
+
this.emitServerHealthStatus(serverId, 'unhealthy');
|
|
1019
|
+
return;
|
|
1020
|
+
}
|
|
819
1021
|
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
private handleServerOutput(serverId: string, output: string): void {
|
|
829
|
-
// Server stdout is processed by the MCP JSON-RPC handlers in initializeMcpConnection,
|
|
830
|
-
// discoverRealToolsFromServer, and executeToolOnServer methods.
|
|
831
|
-
// This handler is used for any additional output logging if needed.
|
|
1022
|
+
try {
|
|
1023
|
+
await this.sendRequest(serverId, 'tools/list');
|
|
1024
|
+
this.emitServerHealthStatus(serverId, 'healthy');
|
|
1025
|
+
} catch (error) {
|
|
1026
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1027
|
+
logger.warn(`Health check failed for ${serverId}: ${message}`);
|
|
1028
|
+
this.emitServerHealthStatus(serverId, 'unhealthy');
|
|
1029
|
+
}
|
|
832
1030
|
}
|
|
833
1031
|
|
|
834
1032
|
/**
|
|
@@ -907,7 +1105,18 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
907
1105
|
}
|
|
908
1106
|
|
|
909
1107
|
/**
|
|
910
|
-
*
|
|
1108
|
+
* Perform the MCP handshake, then discover the server's tools.
|
|
1109
|
+
*
|
|
1110
|
+
* The handshake is two messages, not one:
|
|
1111
|
+
* 1. `initialize` — request/response, negotiates protocol version.
|
|
1112
|
+
* 2. `notifications/initialized` — a notification telling the server the
|
|
1113
|
+
* client is ready.
|
|
1114
|
+
*
|
|
1115
|
+
* The second was never sent. It is required by the MCP spec, and a strict
|
|
1116
|
+
* server is entitled to reject `tools/list` from a client that never sent it.
|
|
1117
|
+
*
|
|
1118
|
+
* The server is only marked 'running' once this completes. Spawning a process
|
|
1119
|
+
* says nothing about whether it speaks MCP.
|
|
911
1120
|
*/
|
|
912
1121
|
private async initializeMcpConnection(serverId: string): Promise<void> {
|
|
913
1122
|
const serverData = this.servers.get(serverId);
|
|
@@ -915,9 +1124,8 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
915
1124
|
throw new Error(`Server ${serverId} not found or not running`);
|
|
916
1125
|
}
|
|
917
1126
|
|
|
918
|
-
// Prevent duplicate initialization
|
|
919
1127
|
if (serverData.status.initialized) {
|
|
920
|
-
logger.warn(
|
|
1128
|
+
logger.warn(`MCP connection already initialized for server ${serverData.config.name}`);
|
|
921
1129
|
return;
|
|
922
1130
|
}
|
|
923
1131
|
|
|
@@ -927,203 +1135,74 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
927
1135
|
throw new Error('Process streams not available');
|
|
928
1136
|
}
|
|
929
1137
|
|
|
930
|
-
// Mark as initializing to prevent concurrent initialization
|
|
931
1138
|
serverData.status.initializing = true;
|
|
932
1139
|
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
sampling: {}
|
|
944
|
-
},
|
|
945
|
-
clientInfo: {
|
|
946
|
-
name: "MXF Framework",
|
|
947
|
-
version: "0.32.0"
|
|
948
|
-
}
|
|
1140
|
+
// 1. initialize
|
|
1141
|
+
const result = await this.sendRequest(serverId, 'initialize', {
|
|
1142
|
+
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
1143
|
+
capabilities: {
|
|
1144
|
+
experimental: {},
|
|
1145
|
+
sampling: {}
|
|
1146
|
+
},
|
|
1147
|
+
clientInfo: {
|
|
1148
|
+
name: 'MXF Framework',
|
|
1149
|
+
version: MCP_CLIENT_VERSION
|
|
949
1150
|
}
|
|
950
|
-
};
|
|
951
|
-
|
|
952
|
-
const requestJson = JSON.stringify(initializeRequest) + '\n';
|
|
953
|
-
process.stdin.write(requestJson);
|
|
954
|
-
|
|
955
|
-
// Wait for MCP initialize response
|
|
956
|
-
const responseBuffer = await this.waitForMcpResponse(process.stdout, "initialize");
|
|
957
|
-
const response = JSON.parse(responseBuffer);
|
|
1151
|
+
});
|
|
958
1152
|
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
1153
|
+
logger.info(
|
|
1154
|
+
`[MCP] ${config.name} initialized ` +
|
|
1155
|
+
`(server: ${result?.serverInfo?.name ?? 'unknown'} ${result?.serverInfo?.version ?? ''})`
|
|
1156
|
+
);
|
|
963
1157
|
|
|
1158
|
+
// 2. notifications/initialized — required by the spec before any other request
|
|
1159
|
+
this.sendNotification(serverId, 'notifications/initialized');
|
|
964
1160
|
|
|
965
|
-
//
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
// Mark as successfully initialized
|
|
1161
|
+
// The handshake succeeded, so the server is genuinely serving MCP now.
|
|
1162
|
+
// Discovery below issues tools/list, which requires this status.
|
|
1163
|
+
serverData.status.status = 'running';
|
|
969
1164
|
serverData.status.initialized = true;
|
|
970
1165
|
serverData.status.initializing = false;
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
/**
|
|
974
|
-
* Wait for MCP response with specific ID
|
|
975
|
-
*/
|
|
976
|
-
private async waitForMcpResponse(stdout: NodeJS.ReadableStream, requestId: string): Promise<string> {
|
|
977
|
-
return new Promise((resolve, reject) => {
|
|
978
|
-
let responseBuffer = '';
|
|
979
|
-
let timeoutId: NodeJS.Timeout;
|
|
980
|
-
let resolved = false;
|
|
981
1166
|
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
// Try to parse JSON response (MCP responses are line-delimited JSON)
|
|
988
|
-
const lines = responseBuffer.split('\n');
|
|
989
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
|
990
|
-
const line = lines[i].trim();
|
|
991
|
-
if (line) {
|
|
992
|
-
try {
|
|
993
|
-
const response = JSON.parse(line.trim());
|
|
994
|
-
|
|
995
|
-
// Check if this is our response
|
|
996
|
-
if (response.id === requestId) {
|
|
997
|
-
resolved = true;
|
|
998
|
-
clearTimeout(timeoutId);
|
|
999
|
-
stdout.removeListener('data', responseHandler);
|
|
1000
|
-
|
|
1001
|
-
// Return the clean JSON line instead of the entire buffer
|
|
1002
|
-
resolve(line.trim());
|
|
1003
|
-
return;
|
|
1004
|
-
}
|
|
1005
|
-
} catch (parseError) {
|
|
1006
|
-
// Ignore JSON parse errors for incomplete lines
|
|
1007
|
-
continue;
|
|
1008
|
-
}
|
|
1009
|
-
}
|
|
1010
|
-
}
|
|
1011
|
-
|
|
1012
|
-
// Keep the last incomplete line in buffer
|
|
1013
|
-
responseBuffer = lines[lines.length - 1];
|
|
1014
|
-
};
|
|
1167
|
+
if (serverData.startupTimer) {
|
|
1168
|
+
clearTimeout(serverData.startupTimer);
|
|
1169
|
+
serverData.startupTimer = undefined;
|
|
1170
|
+
}
|
|
1015
1171
|
|
|
1016
|
-
|
|
1017
|
-
timeoutId = setTimeout(() => {
|
|
1018
|
-
if (!resolved) {
|
|
1019
|
-
resolved = true;
|
|
1020
|
-
stdout.removeListener('data', responseHandler);
|
|
1021
|
-
reject(new Error(`Timeout waiting for MCP response after 30 seconds`));
|
|
1022
|
-
}
|
|
1023
|
-
}, 30000);
|
|
1172
|
+
this.emitServerEvent(McpEvents.EXTERNAL_SERVER_STARTED, serverId);
|
|
1024
1173
|
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
});
|
|
1174
|
+
// Now that the connection is live, find out what the server offers.
|
|
1175
|
+
await this.discoverServerTools(serverId);
|
|
1028
1176
|
}
|
|
1029
1177
|
|
|
1030
1178
|
/**
|
|
1031
|
-
*
|
|
1179
|
+
* Ask a server what tools it has.
|
|
1032
1180
|
*/
|
|
1033
|
-
private async discoverRealToolsFromServer(
|
|
1181
|
+
private async discoverRealToolsFromServer(
|
|
1182
|
+
serverId: string
|
|
1183
|
+
): Promise<Array<{ name: string; description: string; inputSchema: Record<string, any> }>> {
|
|
1034
1184
|
const serverData = this.servers.get(serverId);
|
|
1035
1185
|
if (!serverData || !serverData.process) {
|
|
1036
1186
|
throw new Error(`Server ${serverId} not found or not running`);
|
|
1037
1187
|
}
|
|
1038
1188
|
|
|
1039
|
-
const {
|
|
1040
|
-
|
|
1041
|
-
return new Promise((resolve, reject) => {
|
|
1042
|
-
if (!process.stdin || !process.stdout) {
|
|
1043
|
-
reject(new Error('Process streams not available'));
|
|
1044
|
-
return;
|
|
1045
|
-
}
|
|
1046
|
-
|
|
1047
|
-
const requestId = `tools-list-${uuidv4()}`;
|
|
1048
|
-
|
|
1049
|
-
// Create MCP tool call request according to the protocol
|
|
1050
|
-
const mcpRequest = {
|
|
1051
|
-
jsonrpc: '2.0',
|
|
1052
|
-
id: requestId,
|
|
1053
|
-
method: 'tools/list',
|
|
1054
|
-
params: {}
|
|
1055
|
-
};
|
|
1056
|
-
|
|
1057
|
-
let responseData = '';
|
|
1058
|
-
let timeoutId: NodeJS.Timeout;
|
|
1059
|
-
let resolved = false;
|
|
1189
|
+
const { config } = serverData;
|
|
1060
1190
|
|
|
1061
|
-
|
|
1062
|
-
if (resolved) return; // Prevent duplicate responses
|
|
1063
|
-
|
|
1064
|
-
responseData += chunk.toString();
|
|
1065
|
-
|
|
1066
|
-
// Look for complete JSON-RPC response
|
|
1067
|
-
const lines = responseData.split('\n');
|
|
1068
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
|
1069
|
-
const line = lines[i].trim();
|
|
1070
|
-
if (line) {
|
|
1071
|
-
try {
|
|
1072
|
-
const response = JSON.parse(line.trim());
|
|
1073
|
-
|
|
1074
|
-
// Check if this is our response
|
|
1075
|
-
if (response.id === requestId) {
|
|
1076
|
-
resolved = true;
|
|
1077
|
-
clearTimeout(timeoutId);
|
|
1078
|
-
process.stdout!.off('data', handleData);
|
|
1079
|
-
|
|
1080
|
-
if (response.error) {
|
|
1081
|
-
reject(new Error(`MCP Error: ${response.error.message}`));
|
|
1082
|
-
return;
|
|
1083
|
-
}
|
|
1084
|
-
|
|
1085
|
-
if (response.result && response.result.tools) {
|
|
1086
|
-
const tools = response.result.tools.map((tool: any) => ({
|
|
1087
|
-
name: tool.name,
|
|
1088
|
-
description: tool.description || `Tool from ${config.name}`,
|
|
1089
|
-
inputSchema: tool.inputSchema || { type: 'object', properties: {}, required: [] }
|
|
1090
|
-
}));
|
|
1091
|
-
|
|
1092
|
-
resolve(tools);
|
|
1093
|
-
} else {
|
|
1094
|
-
logger.warn(`⚠️ No tools found in response from ${config.name}`);
|
|
1095
|
-
resolve([]);
|
|
1096
|
-
}
|
|
1097
|
-
return;
|
|
1098
|
-
}
|
|
1099
|
-
} catch (parseError) {
|
|
1100
|
-
// Continue looking for valid JSON in other lines
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
|
|
1105
|
-
// Keep the last incomplete line in buffer
|
|
1106
|
-
responseData = lines[lines.length - 1];
|
|
1107
|
-
};
|
|
1191
|
+
const result = await this.sendRequest(serverId, 'tools/list');
|
|
1108
1192
|
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
process.stdout!.off('data', handleData);
|
|
1114
|
-
reject(new Error(`Timeout waiting for tools/list response from ${config.name} after 15 seconds`));
|
|
1115
|
-
}
|
|
1116
|
-
}, 15000);
|
|
1117
|
-
|
|
1118
|
-
// Listen for response
|
|
1119
|
-
process.stdout.on('data', handleData);
|
|
1193
|
+
if (!result?.tools) {
|
|
1194
|
+
logger.warn(`No tools in the tools/list response from ${config.name}`);
|
|
1195
|
+
return [];
|
|
1196
|
+
}
|
|
1120
1197
|
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1198
|
+
return result.tools.map((tool: any) => ({
|
|
1199
|
+
name: tool.name,
|
|
1200
|
+
description: tool.description || `Tool from ${config.name}`,
|
|
1201
|
+
inputSchema: tool.inputSchema || { type: 'object', properties: {}, required: [] }
|
|
1202
|
+
}));
|
|
1125
1203
|
}
|
|
1126
1204
|
|
|
1205
|
+
|
|
1127
1206
|
/**
|
|
1128
1207
|
* Handle server errors
|
|
1129
1208
|
*/
|
|
@@ -1250,6 +1329,7 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
1250
1329
|
'SYSTEM' as AgentId,
|
|
1251
1330
|
'SYSTEM' as ChannelId,
|
|
1252
1331
|
{
|
|
1332
|
+
serverId,
|
|
1253
1333
|
name: config.name,
|
|
1254
1334
|
version: config.version,
|
|
1255
1335
|
tools
|
|
@@ -1357,12 +1437,29 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
1357
1437
|
* Execute a tool on an external MCP server via JSON-RPC with auto-correction support
|
|
1358
1438
|
*/
|
|
1359
1439
|
public async executeToolOnServer(
|
|
1360
|
-
serverId: string,
|
|
1361
|
-
toolName: string,
|
|
1440
|
+
serverId: string,
|
|
1441
|
+
toolName: string,
|
|
1362
1442
|
input: any,
|
|
1363
|
-
agentId: string
|
|
1364
|
-
channelId: string
|
|
1443
|
+
agentId: string,
|
|
1444
|
+
channelId: string
|
|
1365
1445
|
): Promise<any> {
|
|
1446
|
+
// Identity is required. These parameters used to default to 'system' and
|
|
1447
|
+
// 'default', which quietly defeated the registry's own rule that every tool
|
|
1448
|
+
// execution carry a real agentId and channelId — and made auto-correction
|
|
1449
|
+
// learn against a fake agent.
|
|
1450
|
+
if (typeof agentId !== 'string' || agentId.length === 0) {
|
|
1451
|
+
throw new Error(
|
|
1452
|
+
`executeToolOnServer requires an agentId (tool "${toolName}" on server "${serverId}"). ` +
|
|
1453
|
+
`External tool calls must be attributable to an agent.`
|
|
1454
|
+
);
|
|
1455
|
+
}
|
|
1456
|
+
if (typeof channelId !== 'string' || channelId.length === 0) {
|
|
1457
|
+
throw new Error(
|
|
1458
|
+
`executeToolOnServer requires a channelId (tool "${toolName}" on server "${serverId}"). ` +
|
|
1459
|
+
`External tool calls must be attributable to a channel.`
|
|
1460
|
+
);
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1366
1463
|
// PROACTIVE CORRECTION: Apply known corrections before attempting execution
|
|
1367
1464
|
// NOTE: n8n-mcp server has built-in n8n_autofix_workflow and validation tools,
|
|
1368
1465
|
// so proactive correction is not needed for n8n_* tools. This is kept for
|
|
@@ -1425,11 +1522,14 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
1425
1522
|
}
|
|
1426
1523
|
|
|
1427
1524
|
/**
|
|
1428
|
-
*
|
|
1525
|
+
* Execute a tool once, without the retry/auto-correction wrapper.
|
|
1526
|
+
*
|
|
1527
|
+
* The reply is matched by request id through the server's single stdout
|
|
1528
|
+
* listener — see sendRequest() and handleServerOutput().
|
|
1429
1529
|
*/
|
|
1430
1530
|
private async executeToolOnServerInternal(
|
|
1431
|
-
serverId: string,
|
|
1432
|
-
toolName: string,
|
|
1531
|
+
serverId: string,
|
|
1532
|
+
toolName: string,
|
|
1433
1533
|
input: any
|
|
1434
1534
|
): Promise<any> {
|
|
1435
1535
|
const serverData = this.servers.get(serverId);
|
|
@@ -1441,100 +1541,18 @@ export class ExternalMcpServerManager extends EventEmitter {
|
|
|
1441
1541
|
throw new Error(`Server ${serverId} is not running`);
|
|
1442
1542
|
}
|
|
1443
1543
|
|
|
1444
|
-
// Verify tool
|
|
1544
|
+
// Verify the server actually offers this tool before calling it.
|
|
1445
1545
|
const tool = serverData.status.tools.find(t => t.name === toolName);
|
|
1446
1546
|
if (!tool) {
|
|
1447
|
-
throw new Error(
|
|
1547
|
+
throw new Error(
|
|
1548
|
+
`Tool ${toolName} not found on server ${serverId}. ` +
|
|
1549
|
+
`Available: ${serverData.status.tools.map(t => t.name).join(', ') || 'none'}`
|
|
1550
|
+
);
|
|
1448
1551
|
}
|
|
1449
1552
|
|
|
1450
|
-
return
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
// Create MCP tool call request according to the protocol
|
|
1455
|
-
const mcpRequest = {
|
|
1456
|
-
jsonrpc: "2.0",
|
|
1457
|
-
id: requestId,
|
|
1458
|
-
method: "tools/call",
|
|
1459
|
-
params: {
|
|
1460
|
-
name: toolName,
|
|
1461
|
-
arguments: input
|
|
1462
|
-
}
|
|
1463
|
-
};
|
|
1464
|
-
|
|
1465
|
-
let responseBuffer = '';
|
|
1466
|
-
let timeoutId: NodeJS.Timeout;
|
|
1467
|
-
let resolved = false;
|
|
1468
|
-
|
|
1469
|
-
const responseHandler = (data: Buffer): void => {
|
|
1470
|
-
if (resolved) return; // Prevent duplicate responses
|
|
1471
|
-
|
|
1472
|
-
responseBuffer += data.toString();
|
|
1473
|
-
|
|
1474
|
-
// Try to parse JSON response (MCP responses are line-delimited JSON)
|
|
1475
|
-
const lines = responseBuffer.split('\n');
|
|
1476
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
|
1477
|
-
const line = lines[i].trim();
|
|
1478
|
-
if (line) {
|
|
1479
|
-
try {
|
|
1480
|
-
const response = JSON.parse(line.trim());
|
|
1481
|
-
|
|
1482
|
-
// Check if this is our response
|
|
1483
|
-
if (response.id === requestId) {
|
|
1484
|
-
resolved = true;
|
|
1485
|
-
clearTimeout(timeoutId);
|
|
1486
|
-
serverData.process!.stdout!.removeListener('data', responseHandler);
|
|
1487
|
-
|
|
1488
|
-
if (response.error) {
|
|
1489
|
-
const errorMessage = `MCP error: ${response.error.message || response.error}`;
|
|
1490
|
-
logger.error(`❌ MCP tool call error: ${errorMessage}`);
|
|
1491
|
-
reject(new Error(errorMessage));
|
|
1492
|
-
} else {
|
|
1493
|
-
resolve(response.result);
|
|
1494
|
-
}
|
|
1495
|
-
return;
|
|
1496
|
-
}
|
|
1497
|
-
} catch (parseError) {
|
|
1498
|
-
// Ignore JSON parse errors for incomplete lines
|
|
1499
|
-
continue;
|
|
1500
|
-
}
|
|
1501
|
-
}
|
|
1502
|
-
}
|
|
1503
|
-
|
|
1504
|
-
// Keep the last incomplete line in buffer
|
|
1505
|
-
responseBuffer = lines[lines.length - 1];
|
|
1506
|
-
};
|
|
1507
|
-
|
|
1508
|
-
// Set up timeout (30 seconds for tool execution)
|
|
1509
|
-
timeoutId = setTimeout(() => {
|
|
1510
|
-
if (!resolved) {
|
|
1511
|
-
resolved = true;
|
|
1512
|
-
serverData.process!.stdout!.removeListener('data', responseHandler);
|
|
1513
|
-
reject(new Error(`Timeout waiting for tool execution response from ${serverId} after 30 seconds`));
|
|
1514
|
-
}
|
|
1515
|
-
}, 30000);
|
|
1516
|
-
|
|
1517
|
-
// Listen for response
|
|
1518
|
-
if (!serverData.process || !serverData.process.stdout) {
|
|
1519
|
-
reject(new Error(`Server ${serverId} process stdout not available`));
|
|
1520
|
-
return;
|
|
1521
|
-
}
|
|
1522
|
-
serverData.process.stdout.on('data', responseHandler);
|
|
1523
|
-
|
|
1524
|
-
// Send the request
|
|
1525
|
-
if (!serverData.process.stdin) {
|
|
1526
|
-
reject(new Error(`Server ${serverId} process stdin not available`));
|
|
1527
|
-
return;
|
|
1528
|
-
}
|
|
1529
|
-
const requestJson = JSON.stringify(mcpRequest) + '\n';
|
|
1530
|
-
serverData.process.stdin.write(requestJson);
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
} catch (error) {
|
|
1534
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
1535
|
-
logger.error(`❌ Failed to execute tool ${toolName} on server ${serverId}: ${errorMessage}`);
|
|
1536
|
-
reject(error);
|
|
1537
|
-
}
|
|
1553
|
+
return this.sendRequest(serverId, 'tools/call', {
|
|
1554
|
+
name: toolName,
|
|
1555
|
+
arguments: input
|
|
1538
1556
|
});
|
|
1539
1557
|
}
|
|
1540
1558
|
}
|