fix(sub_agent): export TERMINAL_STATUSES in package __init__

fix(api_client): classify httpx.RemoteProtocolError as connection_error
This commit is contained in:
JOJO 2026-06-20 12:15:18 +08:00
parent 9ed956518c
commit 7b683ab390
2 changed files with 26 additions and 2 deletions

View File

@ -4,6 +4,6 @@
WebTerminal 执行因此自然复用主进程的宿主机沙箱 / Docker 容器链路 WebTerminal 执行因此自然复用主进程的宿主机沙箱 / Docker 容器链路
""" """
from modules.sub_agent.manager import SubAgentManager from modules.sub_agent.manager import SubAgentManager, TERMINAL_STATUSES
__all__ = ["SubAgentManager"] __all__ = ["SubAgentManager", "TERMINAL_STATUSES"]

View File

@ -912,6 +912,30 @@ class DeepSeekClient: # legacy name; generic OpenAI-compatible client
}) })
self._mark_request_error(dump_path, error_text="timeout") self._mark_request_error(dump_path, error_text="timeout")
yield {"error": self.last_error_info} yield {"error": self.last_error_info}
except httpx.RemoteProtocolError as e:
disconnect_detail = str(e).strip() or repr(e)
self._print(f"{OUTPUT_FORMATS['error']} API服务器连接断开{disconnect_detail}")
self.last_error_info = {
"status_code": None,
"error_text": disconnect_detail,
"error_type": "connection_error",
"error_message": f"API服务器连接断开: {disconnect_detail}",
"request_dump": (str(dump_path) if dump_path else None),
"base_url": api_config.get("base_url"),
"model_id": api_config.get("model_id"),
"model_key": self.model_key
}
self._debug_log({
"event": "server_disconnected",
"status_code": None,
"error_text": disconnect_detail,
"base_url": api_config.get("base_url"),
"model_id": api_config.get("model_id"),
"model_key": self.model_key,
"request_dump": (str(dump_path) if dump_path else None)
})
self._mark_request_error(dump_path, error_text=f"server_disconnected: {disconnect_detail}")
yield {"error": self.last_error_info}
except Exception as e: except Exception as e:
error_text = str(e).strip() or repr(e) error_text = str(e).strip() or repr(e)
self._print(f"{OUTPUT_FORMATS['error']} API调用异常: {error_text}") self._print(f"{OUTPUT_FORMATS['error']} API调用异常: {error_text}")