@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,12 +14,15 @@
|
|
|
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
|
|
|
21
21
|
import { Logger } from '../../../utils/Logger.js';
|
|
22
|
-
import {
|
|
22
|
+
import { TOOL_CATEGORIES } from '../../../constants/ToolNames.js';
|
|
23
|
+
import { defineTool, ToolRunContext } from '../defineTool.js';
|
|
24
|
+
import { ToolError } from '../ToolError.js';
|
|
25
|
+
import { executeShellCommand, ShellCommandResult } from './InfrastructureTools.js';
|
|
23
26
|
import * as fs from 'fs/promises';
|
|
24
27
|
import * as path from 'path';
|
|
25
28
|
|
|
@@ -340,19 +343,61 @@ function calculateReviewScore(issues: any[], strictness: string): number {
|
|
|
340
343
|
|
|
341
344
|
/**
|
|
342
345
|
* Safety Tools for MXF
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
+
*
|
|
347
|
+
* Branch, backup, rollback, test and benchmark tools used to keep autonomous
|
|
348
|
+
* code changes recoverable.
|
|
349
|
+
*
|
|
350
|
+
* Every git invocation here goes through executeShellCommand, so it is validated
|
|
351
|
+
* by the security guard first. That matters most for rollback_changes, which
|
|
352
|
+
* runs `git reset --hard` and `git checkout` — the guard is what stands between
|
|
353
|
+
* a model's rollback request and an unrecoverable working tree.
|
|
346
354
|
*/
|
|
347
355
|
|
|
348
|
-
|
|
356
|
+
/** Run a git subcommand, throwing a ToolError when git reports failure. */
|
|
357
|
+
async function runGit(
|
|
358
|
+
args: string[],
|
|
359
|
+
workingDirectory: string,
|
|
360
|
+
context: ToolRunContext
|
|
361
|
+
): Promise<ShellCommandResult> {
|
|
362
|
+
const result = await executeShellCommand('git', args, {
|
|
363
|
+
context: {
|
|
364
|
+
agentId: context.agentId,
|
|
365
|
+
channelId: context.channelId,
|
|
366
|
+
requestId: context.requestId
|
|
367
|
+
},
|
|
368
|
+
workingDirectory,
|
|
369
|
+
captureOutput: true
|
|
370
|
+
});
|
|
371
|
+
|
|
372
|
+
if (result.exitCode !== 0) {
|
|
373
|
+
throw ToolError.executionFailed(
|
|
374
|
+
`git ${args.join(' ')} failed (exit ${result.exitCode}): ` +
|
|
375
|
+
`${result.stderr?.trim() || 'no error output'}`,
|
|
376
|
+
{ details: { exitCode: result.exitCode, args } }
|
|
377
|
+
);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
return result;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
const workingDirectoryProperty = {
|
|
384
|
+
type: 'string',
|
|
385
|
+
description: 'Working directory (defaults to the server working directory)'
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
export const createFeatureBranchTool = defineTool<
|
|
389
|
+
{ branchName: string; baseBranch?: string; workingDirectory?: string },
|
|
390
|
+
{ branchName: string; baseBranch: string; headCommit: string; pulled: boolean }
|
|
391
|
+
>({
|
|
349
392
|
name: 'create_feature_branch',
|
|
350
|
-
|
|
393
|
+
category: TOOL_CATEGORIES.VERSION_CONTROL,
|
|
394
|
+
description: 'Create and switch to a new branch off a base branch, to isolate changes.',
|
|
351
395
|
inputSchema: {
|
|
352
396
|
type: 'object',
|
|
353
397
|
properties: {
|
|
354
398
|
branchName: {
|
|
355
399
|
type: 'string',
|
|
400
|
+
minLength: 1,
|
|
356
401
|
description: 'Name for the new feature branch'
|
|
357
402
|
},
|
|
358
403
|
baseBranch: {
|
|
@@ -360,294 +405,284 @@ export const createFeatureBranchTool = {
|
|
|
360
405
|
default: 'main',
|
|
361
406
|
description: 'Base branch to create the feature branch from'
|
|
362
407
|
},
|
|
363
|
-
workingDirectory:
|
|
364
|
-
type: 'string',
|
|
365
|
-
description: 'Working directory (defaults to current directory)'
|
|
366
|
-
}
|
|
408
|
+
workingDirectory: workingDirectoryProperty
|
|
367
409
|
},
|
|
368
410
|
required: ['branchName']
|
|
369
411
|
},
|
|
370
|
-
|
|
371
|
-
|
|
412
|
+
run: async (input, context) => {
|
|
413
|
+
const workingDir = input.workingDirectory || process.cwd();
|
|
414
|
+
const baseBranch = input.baseBranch ?? 'main';
|
|
415
|
+
|
|
416
|
+
await runGit(['checkout', baseBranch], workingDir, context);
|
|
417
|
+
|
|
418
|
+
// A pull can fail for reasons that do not invalidate the branch (no
|
|
419
|
+
// remote, offline). Record whether it worked rather than failing the tool
|
|
420
|
+
// or pretending it succeeded.
|
|
421
|
+
let pulled = true;
|
|
372
422
|
try {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
// Ensure we're on the base branch and it's up to date
|
|
376
|
-
const checkoutResult = await executeShellCommand('git', ['checkout', args.baseBranch || 'main'], {
|
|
377
|
-
workingDirectory: workingDir,
|
|
378
|
-
captureOutput: true
|
|
379
|
-
});
|
|
380
|
-
|
|
381
|
-
if (checkoutResult.exitCode !== 0) {
|
|
382
|
-
return {
|
|
383
|
-
success: false,
|
|
384
|
-
branchName: args.branchName,
|
|
385
|
-
error: `Failed to checkout base branch: ${checkoutResult.stderr}`
|
|
386
|
-
};
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
// Pull latest changes
|
|
390
|
-
const pullResult = await executeShellCommand('git', ['pull', 'origin', args.baseBranch || 'main'], {
|
|
391
|
-
workingDirectory: workingDir,
|
|
392
|
-
captureOutput: true
|
|
393
|
-
});
|
|
394
|
-
|
|
395
|
-
if (pullResult.exitCode !== 0) {
|
|
396
|
-
logger.warn('Failed to pull latest changes', { error: pullResult.stderr });
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
// Create and checkout new branch
|
|
400
|
-
const branchResult = await executeShellCommand('git', ['checkout', '-b', args.branchName], {
|
|
401
|
-
workingDirectory: workingDir,
|
|
402
|
-
captureOutput: true
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
if (branchResult.exitCode !== 0) {
|
|
406
|
-
return {
|
|
407
|
-
success: false,
|
|
408
|
-
branchName: args.branchName,
|
|
409
|
-
error: `Failed to create branch: ${branchResult.stderr}`
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
// Get current commit hash for reference
|
|
414
|
-
const hashResult = await executeShellCommand('git', ['rev-parse', 'HEAD'], {
|
|
415
|
-
workingDirectory: workingDir,
|
|
416
|
-
captureOutput: true
|
|
417
|
-
});
|
|
418
|
-
|
|
419
|
-
const currentHash = hashResult.stdout?.trim() || 'unknown';
|
|
420
|
-
|
|
421
|
-
return {
|
|
422
|
-
success: true,
|
|
423
|
-
branchName: args.branchName,
|
|
424
|
-
baseBranch: args.baseBranch || 'main',
|
|
425
|
-
currentHash,
|
|
426
|
-
error: null
|
|
427
|
-
};
|
|
423
|
+
await runGit(['pull', 'origin', baseBranch], workingDir, context);
|
|
428
424
|
} catch (error) {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
};
|
|
425
|
+
pulled = false;
|
|
426
|
+
logger.warn(
|
|
427
|
+
`Could not pull ${baseBranch} before branching: ` +
|
|
428
|
+
`${error instanceof Error ? error.message : String(error)}`
|
|
429
|
+
);
|
|
435
430
|
}
|
|
431
|
+
|
|
432
|
+
await runGit(['checkout', '-b', input.branchName], workingDir, context);
|
|
433
|
+
|
|
434
|
+
const hashResult = await runGit(['rev-parse', 'HEAD'], workingDir, context);
|
|
435
|
+
|
|
436
|
+
return {
|
|
437
|
+
branchName: input.branchName,
|
|
438
|
+
baseBranch,
|
|
439
|
+
headCommit: hashResult.stdout?.trim() ?? '',
|
|
440
|
+
pulled
|
|
441
|
+
};
|
|
436
442
|
}
|
|
437
|
-
};
|
|
443
|
+
});
|
|
438
444
|
|
|
439
|
-
export const runFullTestSuiteTool =
|
|
445
|
+
export const runFullTestSuiteTool = defineTool<
|
|
446
|
+
{ testCommand?: string; coverage?: boolean; bail?: boolean; workingDirectory?: string },
|
|
447
|
+
{
|
|
448
|
+
passed: boolean;
|
|
449
|
+
command: string;
|
|
450
|
+
durationMs: number;
|
|
451
|
+
testResults: ReturnType<typeof parseTestResults>;
|
|
452
|
+
coverage: ReturnType<typeof parseCoverageResults> | null;
|
|
453
|
+
output: string;
|
|
454
|
+
}
|
|
455
|
+
>({
|
|
440
456
|
name: 'run_full_test_suite',
|
|
441
|
-
|
|
457
|
+
category: TOOL_CATEGORIES.INFRASTRUCTURE,
|
|
458
|
+
description:
|
|
459
|
+
'Run the project test suite. passed is false when tests fail. ' +
|
|
460
|
+
'Uses the project test script unless a command is given.',
|
|
442
461
|
inputSchema: {
|
|
443
462
|
type: 'object',
|
|
444
463
|
properties: {
|
|
445
464
|
testCommand: {
|
|
446
465
|
type: 'string',
|
|
447
|
-
description: '
|
|
466
|
+
description: 'Test command to run (defaults to the project test script)'
|
|
448
467
|
},
|
|
449
468
|
coverage: {
|
|
450
469
|
type: 'boolean',
|
|
451
470
|
default: true,
|
|
452
|
-
description: 'Generate
|
|
471
|
+
description: 'Generate a coverage report (jest only)'
|
|
453
472
|
},
|
|
454
473
|
bail: {
|
|
455
474
|
type: 'boolean',
|
|
456
475
|
default: false,
|
|
457
|
-
description: 'Stop
|
|
476
|
+
description: 'Stop at the first failure (jest only)'
|
|
458
477
|
},
|
|
459
|
-
workingDirectory:
|
|
460
|
-
type: 'string',
|
|
461
|
-
description: 'Working directory (defaults to current directory)'
|
|
462
|
-
}
|
|
478
|
+
workingDirectory: workingDirectoryProperty
|
|
463
479
|
}
|
|
464
480
|
},
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
testCmd = ['npx', 'mocha'];
|
|
487
|
-
} else {
|
|
488
|
-
testCmd = ['npm', 'test'];
|
|
489
|
-
}
|
|
490
|
-
} catch {
|
|
491
|
-
testCmd = ['npm', 'test'];
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
// Add coverage if requested
|
|
496
|
-
if (args.coverage && testCmd.includes('jest')) {
|
|
497
|
-
testCmd.push('--coverage');
|
|
481
|
+
run: async (input, context) => {
|
|
482
|
+
const workingDir = input.workingDirectory || process.cwd();
|
|
483
|
+
|
|
484
|
+
// Work out what to run. An explicit command wins; otherwise read
|
|
485
|
+
// package.json. A project with no test script and no known runner is a
|
|
486
|
+
// precondition failure — running `npm test` anyway would fail confusingly.
|
|
487
|
+
let testCmd: string[];
|
|
488
|
+
|
|
489
|
+
if (input.testCommand) {
|
|
490
|
+
testCmd = input.testCommand.split(/\s+/).filter(Boolean);
|
|
491
|
+
} else {
|
|
492
|
+
const packageJsonPath = path.join(workingDir, 'package.json');
|
|
493
|
+
let pkg: { scripts?: Record<string, string>; dependencies?: Record<string, string>; devDependencies?: Record<string, string> };
|
|
494
|
+
|
|
495
|
+
try {
|
|
496
|
+
pkg = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
|
|
497
|
+
} catch {
|
|
498
|
+
throw ToolError.notFound(
|
|
499
|
+
`Could not read ${packageJsonPath}. ` +
|
|
500
|
+
`Pass testCommand explicitly, or run this from the project root.`
|
|
501
|
+
);
|
|
498
502
|
}
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
+
|
|
504
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
505
|
+
|
|
506
|
+
if (pkg.scripts?.test) {
|
|
507
|
+
testCmd = ['npm', 'test'];
|
|
508
|
+
} else if (deps.jest) {
|
|
509
|
+
testCmd = ['npx', 'jest'];
|
|
510
|
+
} else if (deps.mocha) {
|
|
511
|
+
testCmd = ['npx', 'mocha'];
|
|
512
|
+
} else if (deps.vitest) {
|
|
513
|
+
testCmd = ['npx', 'vitest', 'run'];
|
|
514
|
+
} else {
|
|
515
|
+
throw ToolError.notFound(
|
|
516
|
+
`${packageJsonPath} has no "test" script and no jest, mocha or vitest dependency. ` +
|
|
517
|
+
`Pass testCommand explicitly.`
|
|
518
|
+
);
|
|
503
519
|
}
|
|
504
|
-
|
|
505
|
-
const startTime = Date.now();
|
|
506
|
-
|
|
507
|
-
const result = await executeShellCommand(testCmd[0], testCmd.slice(1), {
|
|
508
|
-
workingDirectory: workingDir,
|
|
509
|
-
captureOutput: true
|
|
510
|
-
});
|
|
511
|
-
|
|
512
|
-
const duration = Date.now() - startTime;
|
|
513
|
-
|
|
514
|
-
// Parse test results
|
|
515
|
-
const testResults = parseTestResults(result.stdout || '');
|
|
516
|
-
|
|
517
|
-
return {
|
|
518
|
-
success: result.exitCode === 0,
|
|
519
|
-
output: result.stdout || '',
|
|
520
|
-
errors: result.stderr || '',
|
|
521
|
-
duration,
|
|
522
|
-
testResults,
|
|
523
|
-
coverage: args.coverage ? parseCoverageResults(result.stdout || '') : null,
|
|
524
|
-
error: result.exitCode !== 0 ? result.stderr : null
|
|
525
|
-
};
|
|
526
|
-
} catch (error) {
|
|
527
|
-
logger.error('Run full test suite failed', { error });
|
|
528
|
-
return {
|
|
529
|
-
success: false,
|
|
530
|
-
output: '',
|
|
531
|
-
errors: '',
|
|
532
|
-
duration: 0,
|
|
533
|
-
testResults: null,
|
|
534
|
-
coverage: null,
|
|
535
|
-
error: error instanceof Error ? error.message : String(error)
|
|
536
|
-
};
|
|
537
520
|
}
|
|
521
|
+
|
|
522
|
+
const isJest = testCmd.includes('jest');
|
|
523
|
+
if (input.coverage !== false && isJest) {
|
|
524
|
+
testCmd.push('--coverage');
|
|
525
|
+
}
|
|
526
|
+
if (input.bail && isJest) {
|
|
527
|
+
testCmd.push('--bail');
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
const startedAt = Date.now();
|
|
531
|
+
|
|
532
|
+
const result = await executeShellCommand(testCmd[0], testCmd.slice(1), {
|
|
533
|
+
context: {
|
|
534
|
+
agentId: context.agentId,
|
|
535
|
+
channelId: context.channelId,
|
|
536
|
+
requestId: context.requestId
|
|
537
|
+
},
|
|
538
|
+
workingDirectory: workingDir,
|
|
539
|
+
captureOutput: true
|
|
540
|
+
});
|
|
541
|
+
|
|
542
|
+
// A failing suite exits non-zero. That is the tool working, so it comes
|
|
543
|
+
// back as passed: false rather than as a tool error.
|
|
544
|
+
const output = [result.stdout, result.stderr].filter(Boolean).join('\n');
|
|
545
|
+
|
|
546
|
+
return {
|
|
547
|
+
passed: result.exitCode === 0,
|
|
548
|
+
command: testCmd.join(' '),
|
|
549
|
+
durationMs: Date.now() - startedAt,
|
|
550
|
+
testResults: parseTestResults(output),
|
|
551
|
+
coverage: input.coverage !== false ? parseCoverageResults(output) : null,
|
|
552
|
+
output
|
|
553
|
+
};
|
|
538
554
|
}
|
|
539
|
-
};
|
|
555
|
+
});
|
|
540
556
|
|
|
541
|
-
export const performanceBenchmarkTool =
|
|
557
|
+
export const performanceBenchmarkTool = defineTool<
|
|
558
|
+
{ benchmarkCommand?: string; baselineFile?: string; thresholdPercent?: number; workingDirectory?: string },
|
|
559
|
+
{
|
|
560
|
+
passed: boolean;
|
|
561
|
+
command: string;
|
|
562
|
+
durationMs: number;
|
|
563
|
+
benchmarkResults: ReturnType<typeof parseBenchmarkResults>;
|
|
564
|
+
baselineComparison: ReturnType<typeof compareWithBaseline> | null;
|
|
565
|
+
output: string;
|
|
566
|
+
}
|
|
567
|
+
>({
|
|
542
568
|
name: 'performance_benchmark',
|
|
543
|
-
|
|
569
|
+
category: TOOL_CATEGORIES.INFRASTRUCTURE,
|
|
570
|
+
description:
|
|
571
|
+
'Run the project benchmark script and, when a baseline file is given, compare ' +
|
|
572
|
+
'against it and flag regressions past the threshold.',
|
|
544
573
|
inputSchema: {
|
|
545
574
|
type: 'object',
|
|
546
575
|
properties: {
|
|
547
576
|
benchmarkCommand: {
|
|
548
577
|
type: 'string',
|
|
549
|
-
description: '
|
|
578
|
+
description: 'Benchmark command (defaults to the project benchmark script)'
|
|
550
579
|
},
|
|
551
580
|
baselineFile: {
|
|
552
581
|
type: 'string',
|
|
553
|
-
description: 'Path to baseline
|
|
582
|
+
description: 'Path to a JSON baseline file to compare against'
|
|
554
583
|
},
|
|
555
584
|
thresholdPercent: {
|
|
556
585
|
type: 'number',
|
|
557
586
|
default: 10,
|
|
558
|
-
|
|
587
|
+
minimum: 0,
|
|
588
|
+
description: 'Regression threshold, as a percentage'
|
|
559
589
|
},
|
|
560
|
-
workingDirectory:
|
|
561
|
-
type: 'string',
|
|
562
|
-
description: 'Working directory (defaults to current directory)'
|
|
563
|
-
}
|
|
590
|
+
workingDirectory: workingDirectoryProperty
|
|
564
591
|
}
|
|
565
592
|
},
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
593
|
+
run: async (input, context) => {
|
|
594
|
+
const workingDir = input.workingDirectory || process.cwd();
|
|
595
|
+
|
|
596
|
+
let benchmarkCmd: string[];
|
|
597
|
+
|
|
598
|
+
if (input.benchmarkCommand) {
|
|
599
|
+
benchmarkCmd = input.benchmarkCommand.split(/\s+/).filter(Boolean);
|
|
600
|
+
} else {
|
|
601
|
+
const packageJsonPath = path.join(workingDir, 'package.json');
|
|
602
|
+
let pkg: { scripts?: Record<string, string> };
|
|
603
|
+
|
|
604
|
+
try {
|
|
605
|
+
pkg = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
|
|
606
|
+
} catch {
|
|
607
|
+
throw ToolError.notFound(
|
|
608
|
+
`Could not read ${packageJsonPath}. Pass benchmarkCommand explicitly.`
|
|
609
|
+
);
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
if (pkg.scripts?.benchmark) {
|
|
613
|
+
benchmarkCmd = ['npm', 'run', 'benchmark'];
|
|
614
|
+
} else if (pkg.scripts?.perf) {
|
|
615
|
+
benchmarkCmd = ['npm', 'run', 'perf'];
|
|
575
616
|
} else {
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
const pkg = JSON.parse(packageJson);
|
|
581
|
-
|
|
582
|
-
if (pkg.scripts?.benchmark) {
|
|
583
|
-
benchmarkCmd = ['npm', 'run', 'benchmark'];
|
|
584
|
-
} else if (pkg.scripts?.perf) {
|
|
585
|
-
benchmarkCmd = ['npm', 'run', 'perf'];
|
|
586
|
-
} else {
|
|
587
|
-
return {
|
|
588
|
-
success: false,
|
|
589
|
-
benchmarkResults: null,
|
|
590
|
-
baselineComparison: null,
|
|
591
|
-
error: 'No benchmark script found in package.json'
|
|
592
|
-
};
|
|
593
|
-
}
|
|
594
|
-
} catch {
|
|
595
|
-
return {
|
|
596
|
-
success: false,
|
|
597
|
-
benchmarkResults: null,
|
|
598
|
-
baselineComparison: null,
|
|
599
|
-
error: 'Could not read package.json'
|
|
600
|
-
};
|
|
601
|
-
}
|
|
617
|
+
throw ToolError.notFound(
|
|
618
|
+
`${packageJsonPath} has no "benchmark" or "perf" script. ` +
|
|
619
|
+
`Pass benchmarkCommand explicitly.`
|
|
620
|
+
);
|
|
602
621
|
}
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
const startedAt = Date.now();
|
|
625
|
+
|
|
626
|
+
const result = await executeShellCommand(benchmarkCmd[0], benchmarkCmd.slice(1), {
|
|
627
|
+
context: {
|
|
628
|
+
agentId: context.agentId,
|
|
629
|
+
channelId: context.channelId,
|
|
630
|
+
requestId: context.requestId
|
|
631
|
+
},
|
|
632
|
+
workingDirectory: workingDir,
|
|
633
|
+
captureOutput: true
|
|
634
|
+
});
|
|
635
|
+
|
|
636
|
+
const output = [result.stdout, result.stderr].filter(Boolean).join('\n');
|
|
637
|
+
const benchmarkResults = parseBenchmarkResults(output);
|
|
638
|
+
|
|
639
|
+
// A baseline the caller named but that cannot be read is an error: a
|
|
640
|
+
// silent null here would read as "no regression".
|
|
641
|
+
let baselineComparison = null;
|
|
642
|
+
if (input.baselineFile) {
|
|
643
|
+
let baseline: unknown;
|
|
644
|
+
try {
|
|
645
|
+
baseline = JSON.parse(await fs.readFile(input.baselineFile, 'utf-8'));
|
|
646
|
+
} catch (error) {
|
|
647
|
+
throw ToolError.notFound(
|
|
648
|
+
`Could not read the baseline file ${input.baselineFile}: ` +
|
|
649
|
+
`${error instanceof Error ? error.message : String(error)}`
|
|
650
|
+
);
|
|
626
651
|
}
|
|
627
|
-
|
|
628
|
-
return {
|
|
629
|
-
success: result.exitCode === 0,
|
|
630
|
-
output: result.stdout || '',
|
|
652
|
+
baselineComparison = compareWithBaseline(
|
|
631
653
|
benchmarkResults,
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
};
|
|
636
|
-
} catch (error) {
|
|
637
|
-
logger.error('Performance benchmark failed', { error });
|
|
638
|
-
return {
|
|
639
|
-
success: false,
|
|
640
|
-
benchmarkResults: null,
|
|
641
|
-
baselineComparison: null,
|
|
642
|
-
error: error instanceof Error ? error.message : String(error)
|
|
643
|
-
};
|
|
654
|
+
baseline,
|
|
655
|
+
input.thresholdPercent ?? 10
|
|
656
|
+
);
|
|
644
657
|
}
|
|
658
|
+
|
|
659
|
+
return {
|
|
660
|
+
passed: result.exitCode === 0,
|
|
661
|
+
command: benchmarkCmd.join(' '),
|
|
662
|
+
durationMs: Date.now() - startedAt,
|
|
663
|
+
benchmarkResults,
|
|
664
|
+
baselineComparison,
|
|
665
|
+
output
|
|
666
|
+
};
|
|
645
667
|
}
|
|
646
|
-
};
|
|
668
|
+
});
|
|
647
669
|
|
|
648
|
-
export const rollbackChangesTool =
|
|
670
|
+
export const rollbackChangesTool = defineTool<
|
|
671
|
+
{
|
|
672
|
+
rollbackType?: 'commit' | 'branch' | 'stash';
|
|
673
|
+
targetCommit?: string;
|
|
674
|
+
targetBranch?: string;
|
|
675
|
+
preserveChanges?: boolean;
|
|
676
|
+
workingDirectory?: string;
|
|
677
|
+
},
|
|
678
|
+
{ rollbackType: string; currentBranch: string; hasUncommittedChanges: boolean; preservedChanges: boolean }
|
|
679
|
+
>({
|
|
649
680
|
name: 'rollback_changes',
|
|
650
|
-
|
|
681
|
+
category: TOOL_CATEGORIES.VERSION_CONTROL,
|
|
682
|
+
description:
|
|
683
|
+
'Roll the repository back to a previous state: reset to a commit, switch to a ' +
|
|
684
|
+
'branch, or pop the latest stash. With preserveChanges the working tree is kept ' +
|
|
685
|
+
'(soft reset / stash); without it, a commit rollback discards uncommitted work.',
|
|
651
686
|
inputSchema: {
|
|
652
687
|
type: 'object',
|
|
653
688
|
properties: {
|
|
@@ -655,138 +690,90 @@ export const rollbackChangesTool = {
|
|
|
655
690
|
type: 'string',
|
|
656
691
|
enum: ['commit', 'branch', 'stash'],
|
|
657
692
|
default: 'commit',
|
|
658
|
-
description: '
|
|
693
|
+
description: 'What to roll back to'
|
|
659
694
|
},
|
|
660
695
|
targetCommit: {
|
|
661
696
|
type: 'string',
|
|
662
|
-
description: 'Commit
|
|
697
|
+
description: 'Commit to reset to (required when rollbackType is "commit")'
|
|
663
698
|
},
|
|
664
699
|
targetBranch: {
|
|
665
700
|
type: 'string',
|
|
666
|
-
description: 'Branch to
|
|
701
|
+
description: 'Branch to switch to (required when rollbackType is "branch")'
|
|
667
702
|
},
|
|
668
703
|
preserveChanges: {
|
|
669
704
|
type: 'boolean',
|
|
670
705
|
default: false,
|
|
671
|
-
description: '
|
|
706
|
+
description: 'Keep uncommitted work (soft reset, or stash before switching)'
|
|
672
707
|
},
|
|
673
|
-
workingDirectory:
|
|
674
|
-
type: 'string',
|
|
675
|
-
description: 'Working directory (defaults to current directory)'
|
|
676
|
-
}
|
|
708
|
+
workingDirectory: workingDirectoryProperty
|
|
677
709
|
}
|
|
678
710
|
},
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
if (args.preserveChanges) {
|
|
696
|
-
// Soft reset to preserve changes
|
|
697
|
-
result = await executeShellCommand('git', ['reset', '--soft', args.targetCommit], {
|
|
698
|
-
workingDirectory: workingDir,
|
|
699
|
-
captureOutput: true
|
|
700
|
-
});
|
|
701
|
-
} else {
|
|
702
|
-
// Hard reset to discard changes
|
|
703
|
-
result = await executeShellCommand('git', ['reset', '--hard', args.targetCommit], {
|
|
704
|
-
workingDirectory: workingDir,
|
|
705
|
-
captureOutput: true
|
|
706
|
-
});
|
|
707
|
-
}
|
|
708
|
-
break;
|
|
709
|
-
|
|
710
|
-
case 'branch':
|
|
711
|
-
if (!args.targetBranch) {
|
|
712
|
-
return {
|
|
713
|
-
success: false,
|
|
714
|
-
rollbackType: args.rollbackType,
|
|
715
|
-
error: 'Target branch required for branch rollback'
|
|
716
|
-
};
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
// Stash current changes if preserving
|
|
720
|
-
if (args.preserveChanges) {
|
|
721
|
-
await executeShellCommand('git', ['stash', 'push', '-m', 'Rollback preservation stash'], {
|
|
722
|
-
workingDirectory: workingDir,
|
|
723
|
-
captureOutput: true
|
|
724
|
-
});
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
// Checkout target branch
|
|
728
|
-
result = await executeShellCommand('git', ['checkout', args.targetBranch], {
|
|
729
|
-
workingDirectory: workingDir,
|
|
730
|
-
captureOutput: true
|
|
731
|
-
});
|
|
732
|
-
break;
|
|
733
|
-
|
|
734
|
-
case 'stash':
|
|
735
|
-
// Pop the latest stash
|
|
736
|
-
result = await executeShellCommand('git', ['stash', 'pop'], {
|
|
737
|
-
workingDirectory: workingDir,
|
|
738
|
-
captureOutput: true
|
|
739
|
-
});
|
|
740
|
-
break;
|
|
741
|
-
|
|
742
|
-
default:
|
|
743
|
-
return {
|
|
744
|
-
success: false,
|
|
745
|
-
rollbackType: args.rollbackType,
|
|
746
|
-
error: 'Invalid rollback type'
|
|
747
|
-
};
|
|
711
|
+
run: async (input, context) => {
|
|
712
|
+
const workingDir = input.workingDirectory || process.cwd();
|
|
713
|
+
const rollbackType = input.rollbackType ?? 'commit';
|
|
714
|
+
const preserveChanges = input.preserveChanges ?? false;
|
|
715
|
+
|
|
716
|
+
switch (rollbackType) {
|
|
717
|
+
case 'commit': {
|
|
718
|
+
if (!input.targetCommit) {
|
|
719
|
+
throw ToolError.invalidInput(
|
|
720
|
+
'targetCommit is required when rollbackType is "commit".'
|
|
721
|
+
);
|
|
722
|
+
}
|
|
723
|
+
// --hard discards uncommitted work irrecoverably; --soft keeps it.
|
|
724
|
+
const mode = preserveChanges ? '--soft' : '--hard';
|
|
725
|
+
await runGit(['reset', mode, input.targetCommit], workingDir, context);
|
|
726
|
+
break;
|
|
748
727
|
}
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
}
|
|
728
|
+
|
|
729
|
+
case 'branch': {
|
|
730
|
+
if (!input.targetBranch) {
|
|
731
|
+
throw ToolError.invalidInput(
|
|
732
|
+
'targetBranch is required when rollbackType is "branch".'
|
|
733
|
+
);
|
|
734
|
+
}
|
|
735
|
+
if (preserveChanges) {
|
|
736
|
+
await runGit(
|
|
737
|
+
['stash', 'push', '-m', 'Rollback preservation stash'],
|
|
738
|
+
workingDir,
|
|
739
|
+
context
|
|
740
|
+
);
|
|
741
|
+
}
|
|
742
|
+
await runGit(['checkout', input.targetBranch], workingDir, context);
|
|
743
|
+
break;
|
|
756
744
|
}
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
captureOutput: true
|
|
762
|
-
});
|
|
763
|
-
|
|
764
|
-
const currentBranchResult = await executeShellCommand('git', ['branch', '--show-current'], {
|
|
765
|
-
workingDirectory: workingDir,
|
|
766
|
-
captureOutput: true
|
|
767
|
-
});
|
|
768
|
-
|
|
769
|
-
return {
|
|
770
|
-
success: true,
|
|
771
|
-
rollbackType: args.rollbackType,
|
|
772
|
-
currentBranch: currentBranchResult.stdout?.trim() || 'unknown',
|
|
773
|
-
hasUncommittedChanges: (statusResult.stdout || '').trim().length > 0,
|
|
774
|
-
error: null
|
|
775
|
-
};
|
|
776
|
-
} catch (error) {
|
|
777
|
-
logger.error('Rollback changes failed', { error });
|
|
778
|
-
return {
|
|
779
|
-
success: false,
|
|
780
|
-
rollbackType: args.rollbackType,
|
|
781
|
-
error: error instanceof Error ? error.message : String(error)
|
|
782
|
-
};
|
|
745
|
+
|
|
746
|
+
case 'stash':
|
|
747
|
+
await runGit(['stash', 'pop'], workingDir, context);
|
|
748
|
+
break;
|
|
783
749
|
}
|
|
750
|
+
|
|
751
|
+
const statusResult = await runGit(['status', '--porcelain'], workingDir, context);
|
|
752
|
+
const branchResult = await runGit(['branch', '--show-current'], workingDir, context);
|
|
753
|
+
|
|
754
|
+
return {
|
|
755
|
+
rollbackType,
|
|
756
|
+
currentBranch: branchResult.stdout?.trim() ?? '',
|
|
757
|
+
hasUncommittedChanges: (statusResult.stdout ?? '').trim().length > 0,
|
|
758
|
+
preservedChanges: preserveChanges
|
|
759
|
+
};
|
|
784
760
|
}
|
|
785
|
-
};
|
|
761
|
+
});
|
|
786
762
|
|
|
787
|
-
export const createBackupTool =
|
|
763
|
+
export const createBackupTool = defineTool<
|
|
764
|
+
{
|
|
765
|
+
backupType?: 'commit' | 'branch' | 'stash' | 'archive';
|
|
766
|
+
backupName?: string;
|
|
767
|
+
includeUntracked?: boolean;
|
|
768
|
+
workingDirectory?: string;
|
|
769
|
+
},
|
|
770
|
+
{ backupType: string; backupName: string; backupId: string; timestamp: string }
|
|
771
|
+
>({
|
|
788
772
|
name: 'create_backup',
|
|
789
|
-
|
|
773
|
+
category: TOOL_CATEGORIES.VERSION_CONTROL,
|
|
774
|
+
description:
|
|
775
|
+
'Snapshot the current state before making changes, as a commit, a branch, a stash, ' +
|
|
776
|
+
'or a tar.gz archive. Returns the identifier needed to restore it.',
|
|
790
777
|
inputSchema: {
|
|
791
778
|
type: 'object',
|
|
792
779
|
properties: {
|
|
@@ -794,157 +781,114 @@ export const createBackupTool = {
|
|
|
794
781
|
type: 'string',
|
|
795
782
|
enum: ['commit', 'branch', 'stash', 'archive'],
|
|
796
783
|
default: 'commit',
|
|
797
|
-
description: '
|
|
784
|
+
description: 'How to store the backup'
|
|
798
785
|
},
|
|
799
786
|
backupName: {
|
|
800
787
|
type: 'string',
|
|
801
|
-
description: 'Name for the backup'
|
|
788
|
+
description: 'Name for the backup (defaults to a timestamp)'
|
|
802
789
|
},
|
|
803
790
|
includeUntracked: {
|
|
804
791
|
type: 'boolean',
|
|
805
792
|
default: true,
|
|
806
|
-
description: 'Include untracked files
|
|
793
|
+
description: 'Include untracked files'
|
|
807
794
|
},
|
|
808
|
-
workingDirectory:
|
|
809
|
-
type: 'string',
|
|
810
|
-
description: 'Working directory (defaults to current directory)'
|
|
811
|
-
}
|
|
795
|
+
workingDirectory: workingDirectoryProperty
|
|
812
796
|
}
|
|
813
797
|
},
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
});
|
|
832
|
-
} else {
|
|
833
|
-
await executeShellCommand('git', ['add', '-u'], {
|
|
834
|
-
workingDirectory: workingDir,
|
|
835
|
-
captureOutput: true
|
|
836
|
-
});
|
|
837
|
-
}
|
|
838
|
-
|
|
839
|
-
// Create commit
|
|
840
|
-
result = await executeShellCommand('git', ['commit', '-m', `Backup: ${backupName}`], {
|
|
841
|
-
workingDirectory: workingDir,
|
|
842
|
-
captureOutput: true
|
|
843
|
-
});
|
|
844
|
-
|
|
845
|
-
if (result.exitCode === 0) {
|
|
846
|
-
const hashResult = await executeShellCommand('git', ['rev-parse', 'HEAD'], {
|
|
847
|
-
workingDirectory: workingDir,
|
|
848
|
-
captureOutput: true
|
|
849
|
-
});
|
|
850
|
-
backupId = hashResult.stdout?.trim();
|
|
851
|
-
}
|
|
852
|
-
break;
|
|
853
|
-
|
|
854
|
-
case 'branch':
|
|
855
|
-
// Create backup branch
|
|
856
|
-
result = await executeShellCommand('git', ['checkout', '-b', backupName], {
|
|
857
|
-
workingDirectory: workingDir,
|
|
858
|
-
captureOutput: true
|
|
859
|
-
});
|
|
860
|
-
|
|
861
|
-
if (result.exitCode === 0) {
|
|
862
|
-
backupId = backupName;
|
|
863
|
-
|
|
864
|
-
// Switch back to original branch
|
|
865
|
-
const originalBranchResult = await executeShellCommand('git', ['checkout', '-'], {
|
|
866
|
-
workingDirectory: workingDir,
|
|
867
|
-
captureOutput: true
|
|
868
|
-
});
|
|
869
|
-
|
|
870
|
-
if (originalBranchResult.exitCode !== 0) {
|
|
871
|
-
logger.warn('Could not switch back to original branch');
|
|
872
|
-
}
|
|
873
|
-
}
|
|
874
|
-
break;
|
|
875
|
-
|
|
876
|
-
case 'stash':
|
|
877
|
-
// Create stash
|
|
878
|
-
const stashArgs = ['stash', 'push', '-m', backupName];
|
|
879
|
-
if (args.includeUntracked) {
|
|
880
|
-
stashArgs.push('--include-untracked');
|
|
881
|
-
}
|
|
882
|
-
|
|
883
|
-
result = await executeShellCommand('git', stashArgs, {
|
|
884
|
-
workingDirectory: workingDir,
|
|
885
|
-
captureOutput: true
|
|
886
|
-
});
|
|
887
|
-
|
|
888
|
-
if (result.exitCode === 0) {
|
|
889
|
-
backupId = backupName;
|
|
890
|
-
}
|
|
891
|
-
break;
|
|
892
|
-
|
|
893
|
-
case 'archive':
|
|
894
|
-
// Create archive file
|
|
895
|
-
const archiveName = `${backupName}.tar.gz`;
|
|
896
|
-
const archivePath = path.join(workingDir, archiveName);
|
|
897
|
-
|
|
898
|
-
result = await executeShellCommand('git', ['archive', '--format=tar.gz', '--output', archivePath, 'HEAD'], {
|
|
899
|
-
workingDirectory: workingDir,
|
|
900
|
-
captureOutput: true
|
|
901
|
-
});
|
|
902
|
-
|
|
903
|
-
if (result.exitCode === 0) {
|
|
904
|
-
backupId = archivePath;
|
|
905
|
-
}
|
|
906
|
-
break;
|
|
907
|
-
|
|
908
|
-
default:
|
|
909
|
-
return {
|
|
910
|
-
success: false,
|
|
911
|
-
backupType: args.backupType,
|
|
912
|
-
error: 'Invalid backup type'
|
|
913
|
-
};
|
|
798
|
+
run: async (input, context) => {
|
|
799
|
+
const workingDir = input.workingDirectory || process.cwd();
|
|
800
|
+
const backupType = input.backupType ?? 'commit';
|
|
801
|
+
const includeUntracked = input.includeUntracked ?? true;
|
|
802
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
803
|
+
const backupName = input.backupName || `backup-${timestamp}`;
|
|
804
|
+
|
|
805
|
+
let backupId: string;
|
|
806
|
+
|
|
807
|
+
switch (backupType) {
|
|
808
|
+
case 'commit': {
|
|
809
|
+
await runGit(['add', includeUntracked ? '-A' : '-u'], workingDir, context);
|
|
810
|
+
await runGit(['commit', '-m', `Backup: ${backupName}`], workingDir, context);
|
|
811
|
+
|
|
812
|
+
const hashResult = await runGit(['rev-parse', 'HEAD'], workingDir, context);
|
|
813
|
+
backupId = hashResult.stdout?.trim() ?? '';
|
|
814
|
+
break;
|
|
914
815
|
}
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
816
|
+
|
|
817
|
+
case 'branch': {
|
|
818
|
+
await runGit(['checkout', '-b', backupName], workingDir, context);
|
|
819
|
+
// Return to where we were — a backup that leaves the caller on the
|
|
820
|
+
// backup branch is a trap.
|
|
821
|
+
await runGit(['checkout', '-'], workingDir, context);
|
|
822
|
+
backupId = backupName;
|
|
823
|
+
break;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
case 'stash': {
|
|
827
|
+
const stashArgs = ['stash', 'push', '-m', backupName];
|
|
828
|
+
if (includeUntracked) {
|
|
829
|
+
stashArgs.push('--include-untracked');
|
|
830
|
+
}
|
|
831
|
+
await runGit(stashArgs, workingDir, context);
|
|
832
|
+
backupId = backupName;
|
|
833
|
+
break;
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
case 'archive': {
|
|
837
|
+
const archivePath = path.join(workingDir, `${backupName}.tar.gz`);
|
|
838
|
+
await runGit(
|
|
839
|
+
['archive', '--format=tar.gz', '--output', archivePath, 'HEAD'],
|
|
840
|
+
workingDir,
|
|
841
|
+
context
|
|
842
|
+
);
|
|
843
|
+
backupId = archivePath;
|
|
844
|
+
break;
|
|
923
845
|
}
|
|
924
|
-
|
|
925
|
-
return {
|
|
926
|
-
success: true,
|
|
927
|
-
backupType: args.backupType,
|
|
928
|
-
backupName,
|
|
929
|
-
backupId,
|
|
930
|
-
timestamp,
|
|
931
|
-
error: null
|
|
932
|
-
};
|
|
933
|
-
} catch (error) {
|
|
934
|
-
logger.error('Create backup failed', { error });
|
|
935
|
-
return {
|
|
936
|
-
success: false,
|
|
937
|
-
backupType: args.backupType,
|
|
938
|
-
backupName: args.backupName,
|
|
939
|
-
error: error instanceof Error ? error.message : String(error)
|
|
940
|
-
};
|
|
941
846
|
}
|
|
847
|
+
|
|
848
|
+
return {
|
|
849
|
+
backupType,
|
|
850
|
+
backupName,
|
|
851
|
+
backupId,
|
|
852
|
+
timestamp
|
|
853
|
+
};
|
|
942
854
|
}
|
|
943
|
-
};
|
|
855
|
+
});
|
|
944
856
|
|
|
945
|
-
export const codeReviewAgentTool =
|
|
857
|
+
export const codeReviewAgentTool = defineTool<
|
|
858
|
+
{
|
|
859
|
+
reviewType?: 'diff' | 'files' | 'pull_request';
|
|
860
|
+
files?: string[];
|
|
861
|
+
focusAreas?: string[];
|
|
862
|
+
strictness?: 'low' | 'medium' | 'high';
|
|
863
|
+
workingDirectory?: string;
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
summary: {
|
|
867
|
+
filesReviewed: number;
|
|
868
|
+
totalIssues: number;
|
|
869
|
+
criticalIssues: number;
|
|
870
|
+
highIssues: number;
|
|
871
|
+
mediumIssues: number;
|
|
872
|
+
lowIssues: number;
|
|
873
|
+
overallScore: number;
|
|
874
|
+
};
|
|
875
|
+
issues: any[];
|
|
876
|
+
recommendations: any[];
|
|
877
|
+
score: number;
|
|
878
|
+
}
|
|
879
|
+
>({
|
|
946
880
|
name: 'code_review_agent',
|
|
947
|
-
|
|
881
|
+
category: TOOL_CATEGORIES.INFRASTRUCTURE,
|
|
882
|
+
// What this actually does: match a fixed set of regex patterns per focus area
|
|
883
|
+
// (eval(, innerHTML=, hardcoded secrets, TODO/FIXME, debugger, console.log,
|
|
884
|
+
// `any`, long functions...) and score the hits. No model is involved. The old
|
|
885
|
+
// description called it an "AI-powered code review agent", which set an
|
|
886
|
+
// expectation the implementation cannot meet.
|
|
887
|
+
description:
|
|
888
|
+
'Scan changed files for a fixed set of known-bad patterns (eval, innerHTML assignment, ' +
|
|
889
|
+
'hardcoded secrets, debugger statements, TODO comments, long functions) and return the ' +
|
|
890
|
+
'hits with a score. This is pattern matching, not a semantic review — it will not catch ' +
|
|
891
|
+
'logic errors, and it will flag patterns that are fine in context.',
|
|
948
892
|
inputSchema: {
|
|
949
893
|
type: 'object',
|
|
950
894
|
properties: {
|
|
@@ -952,117 +896,95 @@ export const codeReviewAgentTool = {
|
|
|
952
896
|
type: 'string',
|
|
953
897
|
enum: ['diff', 'files', 'pull_request'],
|
|
954
898
|
default: 'diff',
|
|
955
|
-
description: '
|
|
899
|
+
description: 'Which files to scan: the working diff, an explicit list, or the diff against main'
|
|
956
900
|
},
|
|
957
901
|
files: {
|
|
958
902
|
type: 'array',
|
|
959
903
|
items: { type: 'string' },
|
|
960
|
-
description: '
|
|
904
|
+
description: 'Files to scan (required when reviewType is "files")'
|
|
961
905
|
},
|
|
962
906
|
focusAreas: {
|
|
963
907
|
type: 'array',
|
|
964
|
-
items: {
|
|
908
|
+
items: {
|
|
909
|
+
type: 'string',
|
|
910
|
+
enum: ['quality', 'security', 'performance', 'maintainability']
|
|
911
|
+
},
|
|
965
912
|
default: ['quality', 'security', 'performance', 'maintainability'],
|
|
966
|
-
description: '
|
|
913
|
+
description: 'Which pattern sets to apply'
|
|
967
914
|
},
|
|
968
915
|
strictness: {
|
|
969
916
|
type: 'string',
|
|
970
917
|
enum: ['low', 'medium', 'high'],
|
|
971
918
|
default: 'medium',
|
|
972
|
-
description: '
|
|
919
|
+
description: 'How heavily each finding counts against the score'
|
|
973
920
|
},
|
|
974
|
-
workingDirectory:
|
|
975
|
-
type: 'string',
|
|
976
|
-
description: 'Working directory (defaults to current directory)'
|
|
977
|
-
}
|
|
921
|
+
workingDirectory: workingDirectoryProperty
|
|
978
922
|
}
|
|
979
923
|
},
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
score: 0
|
|
994
|
-
};
|
|
995
|
-
|
|
996
|
-
let filesToReview: string[] = [];
|
|
997
|
-
|
|
998
|
-
// Get files to review based on type
|
|
999
|
-
switch (args.reviewType) {
|
|
1000
|
-
case 'diff':
|
|
1001
|
-
const diffResult = await executeShellCommand('git', ['diff', '--name-only', 'HEAD'], {
|
|
1002
|
-
workingDirectory: workingDir,
|
|
1003
|
-
captureOutput: true
|
|
1004
|
-
});
|
|
1005
|
-
|
|
1006
|
-
if (diffResult.exitCode === 0) {
|
|
1007
|
-
filesToReview = diffResult.stdout?.split('\n').filter(f => f.trim()) || [];
|
|
1008
|
-
}
|
|
1009
|
-
break;
|
|
1010
|
-
|
|
1011
|
-
case 'files':
|
|
1012
|
-
filesToReview = args.files || [];
|
|
1013
|
-
break;
|
|
1014
|
-
|
|
1015
|
-
case 'pull_request':
|
|
1016
|
-
// Compare with main branch
|
|
1017
|
-
const prDiffResult = await executeShellCommand('git', ['diff', '--name-only', 'main...HEAD'], {
|
|
1018
|
-
workingDirectory: workingDir,
|
|
1019
|
-
captureOutput: true
|
|
1020
|
-
});
|
|
1021
|
-
|
|
1022
|
-
if (prDiffResult.exitCode === 0) {
|
|
1023
|
-
filesToReview = prDiffResult.stdout?.split('\n').filter(f => f.trim()) || [];
|
|
1024
|
-
}
|
|
1025
|
-
break;
|
|
924
|
+
run: async (input, context) => {
|
|
925
|
+
const workingDir = input.workingDirectory || process.cwd();
|
|
926
|
+
const reviewType = input.reviewType ?? 'diff';
|
|
927
|
+
const strictness = input.strictness ?? 'medium';
|
|
928
|
+
const focusAreas = input.focusAreas ?? ['quality', 'security', 'performance', 'maintainability'];
|
|
929
|
+
|
|
930
|
+
let filesToReview: string[];
|
|
931
|
+
|
|
932
|
+
switch (reviewType) {
|
|
933
|
+
case 'diff': {
|
|
934
|
+
const diffResult = await runGit(['diff', '--name-only', 'HEAD'], workingDir, context);
|
|
935
|
+
filesToReview = (diffResult.stdout ?? '').split('\n').filter(f => f.trim());
|
|
936
|
+
break;
|
|
1026
937
|
}
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
938
|
+
|
|
939
|
+
case 'pull_request': {
|
|
940
|
+
const prDiffResult = await runGit(
|
|
941
|
+
['diff', '--name-only', 'main...HEAD'],
|
|
942
|
+
workingDir,
|
|
943
|
+
context
|
|
944
|
+
);
|
|
945
|
+
filesToReview = (prDiffResult.stdout ?? '').split('\n').filter(f => f.trim());
|
|
946
|
+
break;
|
|
1033
947
|
}
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
};
|
|
1054
|
-
} catch (error) {
|
|
1055
|
-
logger.error('Code review agent failed', { error });
|
|
1056
|
-
return {
|
|
1057
|
-
success: false,
|
|
1058
|
-
reviewResults: null,
|
|
1059
|
-
error: error instanceof Error ? error.message : String(error)
|
|
1060
|
-
};
|
|
948
|
+
|
|
949
|
+
case 'files':
|
|
950
|
+
default:
|
|
951
|
+
if (!input.files || input.files.length === 0) {
|
|
952
|
+
throw ToolError.invalidInput(
|
|
953
|
+
'files is required and must be non-empty when reviewType is "files".'
|
|
954
|
+
);
|
|
955
|
+
}
|
|
956
|
+
filesToReview = input.files;
|
|
957
|
+
break;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
const issues: any[] = [];
|
|
961
|
+
const recommendations: any[] = [];
|
|
962
|
+
|
|
963
|
+
for (const file of filesToReview) {
|
|
964
|
+
const fileReview = await reviewFile(file, focusAreas, strictness, workingDir);
|
|
965
|
+
issues.push(...fileReview.issues);
|
|
966
|
+
recommendations.push(...fileReview.recommendations);
|
|
1061
967
|
}
|
|
968
|
+
|
|
969
|
+
const score = calculateReviewScore(issues, strictness);
|
|
970
|
+
|
|
971
|
+
return {
|
|
972
|
+
summary: {
|
|
973
|
+
filesReviewed: filesToReview.length,
|
|
974
|
+
totalIssues: issues.length,
|
|
975
|
+
criticalIssues: issues.filter(i => i.severity === 'critical').length,
|
|
976
|
+
highIssues: issues.filter(i => i.severity === 'high').length,
|
|
977
|
+
mediumIssues: issues.filter(i => i.severity === 'medium').length,
|
|
978
|
+
lowIssues: issues.filter(i => i.severity === 'low').length,
|
|
979
|
+
overallScore: score
|
|
980
|
+
},
|
|
981
|
+
issues,
|
|
982
|
+
recommendations,
|
|
983
|
+
score
|
|
984
|
+
};
|
|
1062
985
|
}
|
|
1063
|
-
};
|
|
986
|
+
});
|
|
1064
987
|
|
|
1065
|
-
// Export all safety tools
|
|
1066
988
|
export const safetyTools = [
|
|
1067
989
|
createFeatureBranchTool,
|
|
1068
990
|
runFullTestSuiteTool,
|
|
@@ -1070,4 +992,4 @@ export const safetyTools = [
|
|
|
1070
992
|
rollbackChangesTool,
|
|
1071
993
|
createBackupTool,
|
|
1072
994
|
codeReviewAgentTool
|
|
1073
|
-
];
|
|
995
|
+
];
|