SurfSense/surfsense_backend/app/automations/registries/actions/agent_task.py

32 lines
975 B
Python

"""Built-in ``agent_task`` action. Self-registers at import time."""
from __future__ import annotations
from typing import Any
from app.automations.schemas.actions import AgentTaskActionParams
from .store import register_action
from .types import ActionContext, ActionDefinition, ActionHandler
def _build_handler(ctx: ActionContext) -> ActionHandler:
"""Bind run/session context to the agent_task handler. Real wiring lands in Phase 4b."""
del ctx # ignored by the stub; real handler will consume it
async def handle(params: dict[str, Any]) -> dict[str, Any]:
AgentTaskActionParams.model_validate(params)
return {"status": "stubbed"}
return handle
AGENT_TASK_ACTION = ActionDefinition(
type="agent_task",
name="Agent task",
description="Run an agent task with a scoped tool allowlist.",
params_schema=AgentTaskActionParams.model_json_schema(),
build_handler=_build_handler,
)
register_action(AGENT_TASK_ACTION)