from typing import Any
from terminaluse.lib import AgentServer, TaskContext
from terminaluse.types import Event, TextPart
server = AgentServer()
@server.on_create
async def handle_create(ctx: TaskContext, params: dict[str, Any]):
await ctx.state.create({"turns": 0})
await ctx.messages.send("Task created.")
@server.on_event
async def handle_event(ctx: TaskContext, event: Event):
if not isinstance(event.content, TextPart):
await ctx.messages.send("Only text events are supported.")
return
state = await ctx.state.get() or {"turns": 0}
turns = int(state.get("turns", 0)) + 1
await ctx.state.update({"turns": turns})
await ctx.messages.send(f"turn {turns}: {event.content.text}")
@server.on_cancel
async def handle_cancel(ctx: TaskContext):
await ctx.messages.send("Task cancelled.")