fix: correct terminal_input error reporting

This commit is contained in:
JOJO 2025-12-15 16:04:47 +08:00
parent 8fe06753bb
commit b78921b1ca
2 changed files with 24 additions and 6 deletions

View File

@ -328,14 +328,18 @@ class TerminalManager:
return {
"success": False,
"error": "没有活动终端会话",
"suggestion": "请先使用 terminal_session 打开一个终端"
"suggestion": "请先使用 terminal_session 打开一个终端",
"status": "error",
"output": "没有活动终端会话"
}
if target_session not in self.terminals:
return {
"success": False,
"error": f"终端会话 '{target_session}' 不存在",
"existing_sessions": list(self.terminals.keys())
"existing_sessions": list(self.terminals.keys()),
"status": "error",
"output": f"终端会话 '{target_session}' 不存在"
}
terminal = self.terminals[target_session]
@ -479,14 +483,18 @@ class TerminalManager:
return {
"success": False,
"error": "没有活动终端会话",
"suggestion": "请先使用 terminal_session 打开一个终端"
"suggestion": "请先使用 terminal_session 打开一个终端",
"status": "error",
"output": "没有活动终端会话"
}
if target_session not in self.terminals:
return {
"success": False,
"error": f"终端会话 '{target_session}' 不存在",
"existing_sessions": list(self.terminals.keys())
"existing_sessions": list(self.terminals.keys()),
"status": "error",
"output": f"终端会话 '{target_session}' 不存在"
}
# 发送命令

View File

@ -308,6 +308,8 @@ def _plain_command_output(result_data: Dict[str, Any]) -> str:
timeout = result_data.get("timeout")
return_code = result_data.get("return_code")
truncated = result_data.get("truncated")
error = result_data.get("error")
message = result_data.get("message")
prefixes = []
if status in {"timeout"} and timeout:
@ -328,6 +330,14 @@ def _plain_command_output(result_data: Dict[str, Any]) -> str:
if truncated:
prefixes.append("[truncated]")
# 如果执行失败且没有输出,优先显示错误信息
if not result_data.get("success") and not output:
err_text = error or message
if err_text:
prefix_text = "".join(prefixes) if prefixes else "[error]"
return f"{prefix_text} {err_text}" if prefix_text else err_text
# 没有错误文本则仍走后面的输出逻辑(可能显示 no_output
prefix_text = "".join(prefixes)
if prefix_text and output:
return f"{prefix_text}\n{output}"