Skip to content

Schedules and actions ​

Scheduling eligibility ​

A workflow appears in GET /api/scheduled-workflows when its manifest contains schedule. Optional JSON field metadata drives both API validation and the operator form. Multipart workflows cannot be scheduled.

Schedules are one-time or fixed-interval records managed under /api/schedules. They persist in runs.sqlite. At startup, an overdue interval performs one catch-up execution; occurrences are skipped while that schedule already owns an active or suspended run.

Interactions ​

When interaction-input or tool approval defers an answer, the durable run becomes suspended. GET /api/interaction-requests?status=pending lists non-private requests; add withPrivate=true to include private requests or broadcasted=true to return only broadcasted requests. The filters can be combined. Inspect one with GET /api/interaction-requests/:id and resolve it with:

json
{ "response": { "approval-id": true } }

Submit that body to POST /api/interaction-requests/:id/resolve. Resolution is claimed atomically; invalid or duplicate answers return an error rather than resuming twice.

The application event WebSocket sends broadcasted requests in its initial snapshot and durable required/resolved events. Schedule interactions are public and broadcasted by default.

Documentation for the current repository state.