Message or Agent), model, model provider, optional name, visibility, and turn history. Chat is a compatibility value for older threads.
Workspace methods
Workspace shape
Listing workspaces
workspace/default
Use this when a client needs a workspace id and wants the gateway to create the default workspace if it does not exist.
Creating a workspace
The client generates theworkspace_id. name is optional; if omitted, the gateway assigns a default display name. Set make_current when the new workspace should become the persisted current workspace.
Selecting a workspace
workspace/select associates the current WebSocket connection with a workspace. Set make_current when the selection should also be persisted as the gateway’s current workspace.
Updating a workspace
Useworkspace/update to rename a workspace.
Workspace notifications
The gateway sendsworkspace/changed when a workspace is created, updated, or when the current workspace changes. The notification payload has kind (created, updated, or current_changed) and workspace.
Thread methods
Starting a thread
Response:
Thread tree
thread/tree returns all threads plus folders and placement rows for a workspace. Clients should use this instead of trying to infer sidebar layout from thread rows alone.
Timeline and thread access
Usethread/timeline/page for the semantic conversation projection. It returns paginated blocks for messages, turn work, detached task runs, assistant output, terminal state, and pending runtime requests. Use turn/items/page for raw item events inside a specific turn. Neither API is the agent’s semantic recall surface; thread episodic context is an internal bounded prompt layer described in Thread Episodic Context.
Thread access also includes participant membership and a per-principal read cursor. Participant changes publish thread/participants/changed; read progress publishes thread/read/changed. Clients should refetch the affected thread or timeline after either notification.
Thread notifications
Thread subscription is connection-scoped. Starting or interacting with a thread associates the connection with that thread/workspace;
thread/unsubscribe removes the thread subscription for that connection.