"""调试业务服务。
处理所有调试相关的业务逻辑,包括断点管理、调试会话等。
"""
from __future__ import annotations
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
from magicapi_tools.logging_config import get_logger
from .base_service import BaseService
if TYPE_CHECKING:
from magicapi_mcp.tool_registry import ToolContext
logger = get_logger('services.debug')
class DebugService(BaseService):
"""调试业务服务类。"""
def call_api_with_debug(
self,
path: str,
method: str = "GET",
data: Optional[Any] = None,
params: Optional[Any] = None,
breakpoints: Optional[Union[List[int], str]] = None
) -> Dict[str, Any]:
"""带调试功能的API调用。"""
return self.execute_operation(
"调试API调用",
self._call_api_with_debug_impl,
path=path,
method=method,
data=data,
params=params,
breakpoints=breakpoints
)
def _call_api_with_debug_impl(self, **kwargs) -> Dict[str, Any]:
"""带调试功能的API调用的实现。"""
# 这里应该包含debug.py中的调试调用逻辑
return {"success": True, "message": "调试调用完成"}
def execute_debug_session(self, script_id: str, breakpoints: List[int]) -> Dict[str, Any]:
"""执行调试会话。"""
return self.execute_operation(
"执行调试会话",
self._execute_debug_session_impl,
script_id=script_id,
breakpoints=breakpoints
)
def _execute_debug_session_impl(self, script_id: str, breakpoints: List[int]) -> Dict[str, Any]:
"""执行调试会话的实现。"""
# 这里应该包含debug_api.py中的调试会话逻辑
return {"success": True, "script_id": script_id, "breakpoints": breakpoints}
def resume_breakpoint(self) -> Dict[str, Any]:
"""恢复断点执行。"""
return self.execute_operation(
"恢复断点执行",
self._resume_breakpoint_impl
)
def _resume_breakpoint_impl(self) -> Dict[str, Any]:
"""恢复断点执行的实现。"""
# 这里应该包含断点恢复逻辑
return {"success": True, "message": "断点已恢复"}
def step_over_breakpoint(self) -> Dict[str, Any]:
"""单步执行断点。"""
return self.execute_operation(
"单步执行断点",
self._step_over_breakpoint_impl
)
def _step_over_breakpoint_impl(self) -> Dict[str, Any]:
"""单步执行断点的实现。"""
# 这里应该包含单步执行逻辑
return {"success": True, "message": "单步执行完成"}
def get_debug_status(self) -> Dict[str, Any]:
"""获取调试状态。"""
return self.execute_operation(
"获取调试状态",
self._get_debug_status_impl
)
def _get_debug_status_impl(self) -> Dict[str, Any]:
"""获取调试状态的实现。"""
# 这里应该包含获取调试状态的逻辑
return {"success": True, "status": "ready"}