""" 资源管理 API 路由 接入 ResourceManager 服务,提供声明式任务执行 """ from fastapi import APIRouter from pydantic import BaseModel from typing import Optional from ..services.resource_manager import get_resource_manager router = APIRouter() class TaskRequest(BaseModel): agent_id: str task: str timeout: Optional[int] = 300 class TaskParseRequest(BaseModel): task: str @router.post("/execute") async def execute_task(request: TaskRequest): """执行任务(自动管理文件锁和心跳)""" manager = get_resource_manager() result = await manager.execute_task( agent_id=request.agent_id, task_description=request.task, timeout=request.timeout or 300 ) return { "success": result.success, "message": result.message, "files_locked": result.files_locked, "duration_seconds": round(result.duration_seconds, 2) } @router.get("/status") async def get_all_status(): """获取所有 Agent 状态(整合注册、心跳、锁信息)""" manager = get_resource_manager() statuses = await manager.get_all_status() return {"agents": statuses} @router.post("/parse-task") async def parse_task(request: TaskParseRequest): """解析任务中涉及的文件路径""" manager = get_resource_manager() files = await manager.parse_task_files(request.task) return { "task": request.task, "files": files }