Skip to main content

Documentation Index

Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

SSE streams provide live output. Durable events provide replay, resume, and recovery. WebSocket notifications tell Studio when related state changed.

Live transport

veryfront-agent returns text/event-stream for AG-UI execution. Project-agent runtimes also return text/event-stream from the control-plane stream route. Studio renders text, tool calls, tool results, reasoning, and terminal state from these SSE streams while the run is active.

Durable event log

The durable mirror converts stream chunks into persisted run events. The run SSE stream, snapshot endpoint, and event endpoint read the event log later. Veryfront uses the AG-UI events specification for streamed agent output.

AG-UI event reference

The run stream recognizes these AG-UI event types. The public SSE profile forwards the events marked Yes.
EventFamilyPublic SSEPurpose
RUN_STARTEDLifecycleYesRun began
RUN_FINISHEDLifecycleYesRun completed successfully
RUN_ERRORLifecycleYesRun failed or was cancelled
TEXT_MESSAGE_STARTTextYesAssistant message began
TEXT_MESSAGE_CONTENTTextYesAssistant text delta
TEXT_MESSAGE_ENDTextYesAssistant message ended
TOOL_CALL_STARTToolYesTool call began
TOOL_CALL_ARGSToolYesTool argument delta
TOOL_CALL_CHUNKToolYesTool-call chunk from compatible runtimes
TOOL_CALL_ENDToolYesTool call arguments ended
TOOL_CALL_RESULTToolYesTool result or tool error
STATE_SNAPSHOTStateYesFull runtime state snapshot
STATE_DELTAStateYesIncremental runtime state update
MESSAGES_SNAPSHOTStateYesFull message snapshot
STEP_STARTEDLifecycleNoInternal step began
STEP_FINISHEDLifecycleNoInternal step finished
REASONING_STARTReasoningNoInternal reasoning stream began
REASONING_MESSAGE_STARTReasoningYesPublic reasoning message began
REASONING_MESSAGE_CONTENTReasoningYesPublic reasoning message delta
REASONING_MESSAGE_ENDReasoningYesPublic reasoning message ended
REASONING_CONTENTReasoningNoInternal reasoning delta
REASONING_ENDReasoningNoInternal reasoning stream ended
ACTIVITY_SNAPSHOTActivityNoFull activity state snapshot
ACTIVITY_DELTAActivityNoIncremental activity update
CUSTOMCustomYesNamed Veryfront extension event

Custom event names

CUSTOM events use a constrained public name set.
NamePurpose
message-metadataMessage metadata attached to streamed output
source-urlURL citation or source reference
source-documentDocument citation or source reference
fileFile reference emitted by a run
tool-call-statusTool execution status update
stream-heartbeatRun stream heartbeat emitted during SSE follow

WebSocket notification events

WebSocket notifications are lightweight invalidation events. They do not carry AG-UI token deltas.
EventPurpose
message.createdConversation message created
message.updatedConversation message changed
message.status_changedMessage status changed
message.deletedConversation message deleted
agent_run.createdConversation-owned agent run created
agent_run.updatedConversation-owned agent run changed
participant.joinedParticipant joined a conversation
participant.leftParticipant left a conversation
conversation.updatedConversation metadata changed
typing.startParticipant started typing
typing.stopParticipant stopped typing

SSE run stream

The durable run stream is GET /conversations/{conversation_id}/runs/{run_id}/stream. It returns text/event-stream, starts from the persisted event log, accepts Last-Event-ID, emits heartbeats, and closes after a terminal run event.

WebSocket notifications

WebSocket notifications are not the token stream. Studio uses the project event WebSocket to invalidate child-run and message queries when events such as agent_run.created, agent_run.updated, message.created, or message.status_changed arrive. The API exposes project event WebSocket subscriptions at /ws/{project_id}/events. Studio reaches that channel through its /api/ws/{project_id}/events?appId=studio proxy path. The API also has a direct conversation subscription path, /ws/conversations/{conversation_id}/events, for clients that subscribe to one conversation.