diff --git a/src/app/tui.py b/src/app/tui.py index 14bba5c3cba308e6e68fc5cb977c9b1eda4372e2..8c451fcb3c9e733e9a0b830aef4992a02f324269 100644 --- a/src/app/tui.py +++ b/src/app/tui.py @@ -518,7 +518,8 @@ class IntelligentTerminal(App): # 立即恢复正常输入界面 self._restore_normal_input() # 发送 MCP 响应并处理结果 - task = asyncio.create_task(self._send_mcp_response(message.conversation_id, params=message.confirmed)) + params = {"confirm": message.confirmed} + task = asyncio.create_task(self._send_mcp_response(message.conversation_id, params=params)) self.background_tasks.add(task) task.add_done_callback(self._task_done_callback) @@ -531,7 +532,7 @@ class IntelligentTerminal(App): # 立即恢复正常输入界面 self._restore_normal_input() # 发送 MCP 响应并处理结果 - params = message.params if message.params is not None else False + params = message.params if message.params is not None else {} task = asyncio.create_task(self._send_mcp_response(message.conversation_id, params=params)) self.background_tasks.add(task) task.add_done_callback(self._task_done_callback) @@ -1192,7 +1193,7 @@ class IntelligentTerminal(App): self._mcp_mode = "normal" self._current_mcp_conversation_id = "" - async def _send_mcp_response(self, conversation_id: str, *, params: bool | dict[str, Any]) -> None: + async def _send_mcp_response(self, conversation_id: str, *, params: dict[str, Any]) -> None: """发送 MCP 响应并处理结果""" output_container: Container | None = None @@ -1236,7 +1237,7 @@ class IntelligentTerminal(App): self, conversation_id: str, *, - params: bool | dict[str, Any], + params: dict[str, Any], output_container: Container, llm_client: LLMClientBase, ) -> bool: diff --git a/src/backend/hermes/client.py b/src/backend/hermes/client.py index e82bb0fab003c914670e95d61723b7e3fe339720..b8667d0d49a5930e4309941a2cac745d1d5de9a5 100644 --- a/src/backend/hermes/client.py +++ b/src/backend/hermes/client.py @@ -303,13 +303,15 @@ class HermesChatClient(LLMClientBase): """ return await self.agent_manager.get_available_agents() - async def send_mcp_response(self, conversation_id: str, *, params: bool | dict) -> AsyncGenerator[str, None]: + async def send_mcp_response(self, conversation_id: str, *, params: dict) -> AsyncGenerator[str, None]: """ 发送 MCP 响应并获取流式回复 Args: conversation_id: 会话ID - params: 响应参数(bool 表示确认/取消,dict 表示参数补全) + params: 响应参数 + - 对于 MCP 确认消息: {"confirm": true/false} + - 对于参数补全: 包含补全参数的字典 Yields: str: 流式响应的文本内容 diff --git a/src/backend/hermes/models.py b/src/backend/hermes/models.py index 0a9dc80bbbe2f3d2be295ad2c8f88326ed0dadb2..c23923c108601360b0764ff46546676f0529ef2c 100644 --- a/src/backend/hermes/models.py +++ b/src/backend/hermes/models.py @@ -66,7 +66,7 @@ class HermesApp: app_id: str, flow_id: str = "", *, - params: dict[str, Any] | bool | None = None, + params: dict[str, Any] | None = None, ) -> None: """ 初始化应用配置 @@ -74,7 +74,9 @@ class HermesApp: Args: app_id: 应用ID flow_id: 流ID - params: MCP 响应参数(bool 表示确认/取消,dict 表示参数补全内容) + params: MCP 响应参数 + - 对于 MCP 确认消息: {"confirm": true/false} + - 对于参数补全: 包含补全参数的字典 """ self.app_id = app_id