"""Task Center action API model for Web UI buttons.""" from typing import Any try: from fastapi import APIRouter except Exception: APIRouter = None from .task_lifecycle import TaskLifecycle lifecycle = TaskLifecycle() def get_task_actions(task: dict[str, Any], role: str) -> dict[str, Any]: return { "task_id": task.get("task_id"), "actions": lifecycle.available_actions(task, role), } def execute_task_action(task: dict[str, Any], action: str, role: str, reason: str | None = None): return lifecycle.transition(task, action, role, reason) def build_router(): if APIRouter is None: return None router = APIRouter(prefix="/admin/ai-evolution/tasks", tags=["task-actions"]) @router.post("/{task_id}/actions/{action}", operation_id="executeTaskAction") def action(task_id: str, action: str, payload: dict[str, Any]): return execute_task_action(payload.get("task", {}), action, payload.get("role", "user"), payload.get("reason")) return router router = build_router() __all__ = ["router", "get_task_actions", "execute_task_action"]