Files
aios/active-runtime/app/task_action_api.py
T
2026-07-09 14:39:05 +08:00

42 lines
1.1 KiB
Python

"""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"]