Wire protocol
The daemon ↔ client protocol, protocol version 1. Generated from the schema.
Methods
initialize
client → server
Negotiate the protocol version and exchange identity. Must be the first request on a connection, and is the only one accepted before Ready.
- Params
- Initialize_Params
- Result
- Initialize_Result
session.list
client → server
Read a bounded daemon-ordered session-index page.
- Params
- Session_List_Params (optional)
- Result
- Session_List_Result
session.patch
client → server
Patch session settings.
- Params
- Session_Patch_Params
- Result
- Session_Result
session.remove
client → server
Remove a session and its data.
- Params
- Session_Remove_Params
- Result
- Empty
session.fork
client → server
Fork a session from another session's transcript.
- Params
- Session_Fork_Params
- Result
- Session_Result
session.compact
client → server
Request manual compaction of the transcript context.
- Params
- Session_Compact_Params
- Result
- Session_Compact_Result
session.rewind
client → server
Truncate the transcript at a user message.
- Params
- Session_Rewind_Params
- Result
- Empty
session.send_input
client → server
Send user input to a session.
- Params
- Session_Send_Input_Params
- Result
- Session_Send_Input_Result
session.cancel_input
client → server
Cancel a queued input that has not started.
- Params
- Session_Cancel_Input_Params
- Result
- Session_Cancel_Input_Result
session.cancel_run
client → server
Cancel the active run, optionally clearing queue and pending compaction.
- Params
- Session_Cancel_Run_Params
- Result
- Session_Cancel_Run_Result
session.resync
client → server
Resync a session with a windowed transcript snapshot.
- Params
- Session_Resync_Params
- Result
- Session_Resync_Result
session.history
client → server
Read older committed history beyond the resync window.
- Params
- Session_History_Params
- Result
- Session_History_Result
permission.decide
client → server
Answer a pending permission request.
- Params
- Permission_Decide_Params
- Result
- Empty
session.config
client → server
Fetch a session's run config and system prompt by config_rev.
- Params
- Session_Config_Params
- Result
- Session_Config_Result
subscription.set
client → server
Replace the subscription set.
- Params
- Subscription_Set_Params
- Result
- Empty
catalog.list
client → server
Fetch the model catalog, with optional since_rev.
- Params
- Catalog_List_Params (optional)
- Result
- Catalog_List_Result
catalog.refresh
client → server
Re-read provider and credential configuration from disk.
- Params
- Empty (optional)
- Result
- Catalog_Refresh_Result
auth.list
client → server
Read public authentication state and supported login mechanisms.
- Params
- Empty (optional)
- Result
- Auth_List_Result
auth.login
client → server
Start a daemon-owned provider login attempt.
- Params
- Auth_Login_Params
- Result
- Auth_Login_Result
auth.cancel_login
client → server
Cancel a daemon-owned provider login attempt.
- Params
- Auth_Cancel_Login_Params
- Result
- Empty
auth.logout
client → server
Remove one provider's durable credentials.
- Params
- Auth_Logout_Params
- Result
- Empty
workspace.describe
client → server
Describe an arbitrary path as a workspace.
- Params
- Workspace_Describe_Params
- Result
- Workspace_Describe_Result
workspace.browse
client → server
List directories on the daemon host.
- Params
- Workspace_Browse_Params (optional)
- Result
- Workspace_Browse_Result
workspace.remove
client → server
Remove a workspace and its sessions.
- Params
- Workspace_Ref
- Result
- Workspace_Remove_Result
workspace.skills
client → server
List skills available in a workspace.
- Params
- Workspace_Ref
- Result
- Workspace_Skills_Result
permission.rules
client → server
List remembered permission rules for a workspace.
- Params
- Workspace_Ref
- Result
- Permission_Rules_Result
permission.forget
client → server
Forget a remembered permission rule.
- Params
- Permission_Forget_Params
- Result
- Empty
cron.list
client → server
List cron jobs.
- Params
- Cron_List_Params (optional)
- Result
- Cron_List_Result
cron.run_now
client → server
Fire a cron job immediately.
- Params
- Cron_Job_Ref
- Result
- Cron_Run_Now_Result
Broadcasts
session.summary_changed
server → client
Durable session summary changed.
- Payload
- Session_Summary_Changed_Data
session.activity_changed
server → client
Volatile session activity changed.
- Payload
- Session_Activity_Changed_Data
workspace.created
server → client
Workspace became known to the daemon.
- Payload
- Workspace_Created_Data
permission.rules_changed
server → client
Permission rules for a workspace changed.
- Payload
- Permission_Rules_Changed_Data
catalog.changed
server → client
Catalog content hash or health changed.
- Payload
- Catalog_Changed_Data
auth.login_finished
server → client
A daemon-owned authentication login attempt reached a terminal outcome.
- Payload
- Auth_Login_Finished_Data
auth.changed
server → client
Public authentication state for a provider changed.
- Payload
- Auth_Changed_Data
message.committed
server → client
Committed transcript message; durable.
- Payload
- Message_Committed_Data
transcript.truncated
server → client
Transcript was truncated; durable.
- Payload
- Transcript_Truncated_Data
message.discarded
server → client
Assistant message draft was discarded (e.g. retry).
- Payload
- Message_Discarded_Data
message.part_added
server → client
A new part was appended to a draft.
- Payload
- Message_Part_Added_Data
message.part_delta
server → client
Incremental text/reasoning bytes for a draft.
- Payload
- Message_Part_Delta_Data
tool.output_delta
server → client
Incremental display output for a running tool part.
- Payload
- Tool_Output_Delta_Data
input.canceled
server → client
Queued input was canceled before starting.
- Payload
- Input_Canceled_Data
session.deltas_shed
server → client
Live deltas were shed to a lagging connection.
- Payload
- Session_Deltas_Shed_Data
Errors
| Code | Name | Meaning |
|---|---|---|
| -32602 | Bad_Request | Request was syntactically or semantically invalid. |
| -32600 | Bad_Protocol | Wire-level framing / version violation. |
| -32601 | Unknown_Method | Unknown RPC method name. |
| -31000 | Unknown_Session | Session id does not exist. |
| -31001 | Unknown_Workspace | Workspace id does not exist. |
| -31002 | Stale_Cursor | A paged-query cursor names an invalidated result generation. |
| -31003 | Unknown_Message | Message id does not exist in this session. |
| -31004 | Unknown_Part | Part index is out of range for the parent message. |
| -31005 | Unknown_Input | Input id does not exist or was already consumed. |
| -31006 | Unknown_Config_Rev | config_rev is not the session's current revision. |
| -31007 | Unknown_Job | Job id does not exist. |
| -31008 | Job_Busy | A run is already active on the target job. |
| -31009 | Unknown_Skill | Skill name is unknown to this daemon. |
| -31010 | Input_Already_Started | Input was already started and cannot be re-entered. |
| -31011 | Queue_Full | Session input queue reached its protocol cap. |
| -31012 | Run_Mismatch | The run the request targets is not the current run. |
| -31013 | Permission_Unknown | Permission descriptor or prompt id is unknown. |
| -31014 | Permission_Already_Decided | Permission for this prompt was already decided. |
| -31015 | Session_Busy | Session is busy and cannot accept the request right now. |
| -31016 | Session_Has_Children | Session has persistent children and removal did not request a cascade. |
| -31017 | Runtime_Failed | Underlying runtime (model / tool) failed. |
| -31018 | Invalid_Patch | Patch failed structural or content validation. |
| -31019 | Unsupported_Model | Model id is not supported by this daemon. |
| -31020 | Unsupported_Reasoning | Reasoning effort is not supported by the selected model. |
| -32603 | Internal | Catch-all for unspecified internal errors. |
| -31021 | Overloaded | Retry this request after backoff; the connection stays up, only this request was shed. Client behavior: exponential-backoff re-send of the same request. |
Types
Structures
Auth_Login_Summary
Public locator for one daemon-owned login attempt. It contains no OAuth secret.
Auth_Provider
Public authentication state and capabilities for one provider.
login_flows
[]Auth_Flow
required
Login mechanisms currently supported by this provider.
pending_login
Maybe(Auth_Login_Summary)
requiredNullable
Current daemon-owned attempt, if one is running.
Auth_Login_Params
Params for auth.login.
Auth_Login_Result_Browser
Browser authorization details returned only to the requesting connection.
auth_url
string
required
Authorization URL to open in a browser.
Auth_Login_Result_Device_Code
Device authorization details returned only to the requesting connection.
verification_url
string
required
Page where the user enters user_code.
user_code
string
required
Short-lived code entered by the user, not the provider's device machine code.
Auth_Cancel_Login_Params
Params for auth.cancel_login.
Auth_Logout_Params
Params for auth.logout.
Auth_List_Result
Result of auth.list.
providers
[]Auth_Provider
required
Authentication-capable providers known to the daemon.
Auth_Login_Outcome_Succeeded
Login completed successfully and credentials were durably stored.
Auth_Login_Outcome_Canceled
Login was explicitly canceled.
Auth_Login_Outcome_Failed
Login failed without changing durable credentials.
message
string
required
Human-readable failure detail with no credential material.
Auth_Login_Finished_Data
Payload for auth.login_finished.
Auth_Changed_Data
Payload for auth.changed.
Session_Summary_Changed_Data
Payload for session.summary_changed.
Session_Activity_Changed_Data
Payload for session.activity_changed.
Session_Removed_Data
Payload for session.removed.
Workspace_Created_Data
Payload for workspace.created.
Workspace_Removed_Data
Payload for workspace.removed.
Permission_Rules_Changed_Data
Payload for permission.rules_changed.
rules
[]Permission_Rule
required
Current rule set.
Catalog_Changed_Data
Payload for catalog.changed.
Cron_Created_Data
Payload for cron.created.
Cron_Updated_Data
Payload for cron.updated.
Cron_Removed_Data
Payload for cron.removed.
Message_Committed_Data
Payload for message.committed.
Run_Started_Data
Payload for run.started.
reason
Maybe(Compaction_Reason)
optional
Why compaction is running; present exactly when kind is compaction. The durable log carries it so a resync can rebuild a compacting session.
started_at_ms
u64
required
Start epoch ms.
Run_Done_Data
Payload for run.done. One terminal event for a run: outcome carries the terminal arm (turn, compacted, skipped, canceled, or failed) and timing covers every terminal, including a queued run canceled before it started.
timing
Run_Canceled_Timing
required
Terminal timing; started_at_ms is null when canceled while queued.
Config_Changed_Data
Payload for config.changed.
Transcript_Truncated_Data
Payload for transcript.truncated.
Message_Started_Data
Payload for message.started (draft opened).
agent
string
required
Agent name, e.g. "main".
created_at_ms
u64
required
Draft creation epoch ms.
Message_Discarded_Data
Payload for message.discarded.
Message_Part_Added_Data
Payload for message.part_added.
Tool_State_Changed_Data
Payload for tool.state_changed.
permission_state
Maybe(Permission_State)
optional
The part's permission lifecycle at this transition, under the same Tool_Part cross-field invariant. Replaces the part's copy wholesale.
Input_Queued_Data
Payload for input.queued.
Input_Canceled_Data
Payload for input.canceled.
Session_Deltas_Shed_Data
Payload for session.deltas_shed: advisory notice that this connection's live deltas were shed under backpressure, so a client can tell that apart from a bug. Delivered per connection and itself sheddable — when it cannot be sent the delta offset gap remains the signal. Recovery is unchanged: resync.
count
u64
required
Deltas shed on this connection since the last delivered marker; never zero.
Model_Cost
United States dollars per million tokens.
input
f64
required
Cost per million input tokens.
output
f64
required
Cost per million output tokens.
cache_read
f64
required
Cost per million cache-read tokens.
cache_write
f64
required
Cost per million cache-write tokens.
Model_Info
Closed projection of a provider model record. Non-owning.
provider
string
required
name
string
required
context_window
u64
required
Max input tokens the model accepts.
max_output_tokens
u64
required
Max output tokens the model can produce.
reasoning_levels
[]string
required
Supported reasoning effort levels; each element @bounded 32.
default_reasoning
string
required
supports_vision
bool
required
Whether the model accepts image input.
supports_tools
bool
required
Whether the model supports tool calling.
Catalog_List_Params
Params for catalog.list.
since_rev
Maybe(Catalog_Rev)
optional
Client's last known catalog revision; omit to force a full response.
Catalog_List_Result_Unchanged
Client's revision is current; no catalog data included.
Catalog_List_Result_Full
Client's revision was stale or absent; full catalog included.
models
[]Model_Info
required
All available models.
Catalog_Refresh_Result
Result of catalog.refresh.
Catalog_Health
Catalog load health.
skipped
[]Skipped_Provider
required
Providers skipped by the daemon.
load_error
Maybe(string)
requiredNullable
Catalog load failure, if any.
Skipped_Provider
Providers skipped during catalog load. Non-owning.
provider
string
required
Provider name.
Skip_Reason_Missing_Credential
Required credential was absent.
env
string
required
Environment variable name.
Skip_Reason_Invalid_Config
Provider config was invalid.
message
string
required
Human-readable error.
Error_Object
Request failure details. Non-owning.
message
string
required
Human-readable. Clients branch on code, never on this.
Media_Url
Fetched over HTTP by URL.
url
string
required
Remote URL.
Media_Base64
Inlined as base64 bytes.
mime
string
required
MIME type.
data
string
required
Base64-encoded bytes. The decoded length is the tighter rule: <= LIMITS.max_inline_media_bytes.
Media_Blob
Referenced by content hash, fetched separately.
hash
[64]u8
required
Content hash, lowercase hex.
mime
string
required
MIME type.
bytes
u64
required
Decoded byte length.
Content_Text
Plain UTF-8 text.
text
string
required
UTF-8 text.
Content_Image
Image content.
detail
Maybe(string)
optional
Optional detail hint (e.g. "low" / "high").
Content_Audio
Audio content.
format
string
required
Audio container format.
Content_File
Arbitrary file content.
filename
Maybe(string)
optional
Original filename.
Cron_Patch
Optional-field patch applied to an existing cron job.
name
Maybe(string)
optional
New display name, if changing.
session
Maybe(Create_Session)
optional
New session template, if changing.
retain
Maybe(Cron_Retain)
optional
New retention policy, if changing.
on_missed
Maybe(Cron_Missed_Policy)
optional
New missed-fire policy, if changing.
overlap
Maybe(Cron_Overlap)
optional
New overlap policy, if changing.
delete_after_run
Maybe(bool)
optional
New auto-delete-after-run flag, if changing.
enabled
Maybe(bool)
optional
New enabled state, if changing.
Cron_Patch_Params
Params for cron.patch.
Cron_Job_Ref
Params naming a cron job and nothing else. Shared by cron.remove and cron.run_now; split it the moment one of them needs a field of its own.
Cron_List_Params
Params for cron.list.
limit
Maybe(u64)
optional
Page size; omitted means daemon default.
cursor
Maybe(string)
optional
Opaque continuation.
Cron_List_Result
Result of cron.list.
jobs
[]Cron_Job
required
Jobs in daemon-defined stable order.
next_cursor
Maybe(string)
requiredNullable
Opaque continuation; required null on the final page.
Cron_Run_Now_Result
Result of cron.run_now.
Cron_Schedule_Every
interval_ms
u64
required
Interval in ms.
Cron_Schedule_Cron
expr
string
required
Cron expression (UTC unless utc_offset_minutes overrides).
utc_offset_minutes
i64
required
Local-zone offset in minutes; 0 means UTC.
Cron_Schedule_At
at_ms
u64
required
Fire at this absolute epoch ms.
Cron_Schedule_After
delay_ms
u64
required
Delay in ms after the trigger.
Cron_Job_Spec
Full spec for a cron job.
name
Maybe(string)
optional
Display name for the job.
delete_after_run
bool
required
Auto-delete the job after a successful run.
Cron_Job
A cron job record. Non-owning.
enabled
bool
required
Whether fires are active.
created_at_ms
u64
required
Creation epoch ms.
next_run_ms
Maybe(u64)
requiredNullable
Next scheduled fire epoch ms; null when paused or done.
last_run_ms
Maybe(u64)
requiredNullable
Last fire epoch ms; null when none yet.
last_session_id
Maybe(Session_Id)
requiredNullable
Id of the session produced by the last fire.
last_outcome
Maybe(Cron_Run_Outcome)
requiredNullable
Outcome of the last fire.
run_count
u64
required
Total successful fires since creation.
dispatch_failures
u64
required
Total dispatch failures since creation.
Request
Client request frame with typed method params.
Response_Ok
Successful server response; carries the typed method result.
Response_Error
Failed server response; carries a method-agnostic error object.
Notification
Server-pushed notification: a request object with no id, so nothing replies. Ordering, replay, gating, and droppability are ours — see broadcast_name_class, Seq, and session.resync.
Client
Connection-level client identity.
name
string
required
Client connection name (e.g. "yuke-tui").
version
string
required
Client build/version string.
Initialize_Params
Params of the initialize request. Non-owning.
protocol
u32
defaulted
Protocol version this client speaks. Must equal PROTOCOL_VERSION.
Daemon_Info
Daemon identity and clock. Non-owning.
version
string
required
Daemon build/version string.
server_now_ms
u64
required
Daemon wall-clock epoch ms at initialize time.
Initialize_Result
Result of the initialize request: the coarse daemon snapshot.
protocol
u32
required
Protocol version the daemon speaks.
workspaces
[]Workspace
required
Known workspaces.
profiles
[]string
required
Available profile names; each element @bounded 64.
agents
[]string
required
Available agent names; each element @bounded 64.
session_revision
Session_Revision
required
Current compact session-index revision for this connection generation.
capabilities
[]Capability
required
Optional daemon surfaces this build/config advertises; see Capability.
Input_Content
Raw content parts.
content
[]Content_Part
required
Raw content parts.
Skill_Ref
A named skill invocation with its rendered arguments. Shared by Input_Skill and User_Message.skill.
name
string
required
Skill name.
arguments
string
required
Skill arguments.
Queued_Input
A queued input waiting behind an active turn.
content
[]Content_Part
required
Content parts awaiting execution.
queued_at_ms
u64
required
Enqueue time, epoch ms.
Session_Send_Input_Params
Params for session.send_input.
Session_Send_Input_Result_Started
Started immediately.
Session_Send_Input_Result_Queued
Queued behind an active turn.
Session_Cancel_Input_Params
Params for session.cancel_input.
Session_Cancel_Input_Result
Result of session.cancel_input.
Session_Cancel_Run_Params
Params for session.cancel_run.
run_id
Maybe(Run_Id)
optional
Specific run to cancel; omit to cancel the active run.
clear_queue
Maybe(bool)
optional
Also drop any queued inputs.
Session_Cancel_Run_Result
Result of session.cancel_run.
canceled_run
Maybe(Run_Id)
requiredNullable
Run that was canceled; null if none was active.
cleared_inputs
[]Input_Id
required
Queued inputs dropped by clear_queue.
cleared_compaction
Maybe(Run_Id)
requiredNullable
Compaction run canceled alongside; null if none was active.
Part_Delta
Incremental text/reasoning bytes for a draft. offset is UTF-8 bytes already present: == len appends, < len is a no-op, > len is a gap (call session.resync).
delta
string
required
UTF-8 bytes to fold at offset.
offset
u64
required
UTF-8 bytes already applied on the receiver.
Empty
Empty params/result object ({}) for methods whose registry entry uses {}. One type for both directions: an empty object carries no direction-specific meaning.
Session_Result
Result of session.create, session.fork, and session.patch. The returned session carries the resulting config_rev and permission mode.
Session_Patch_Params
Params for session.patch.
Session_Remove_Params
Params for session.remove.
cascade_children
bool
defaulted
Recursively remove persistent child sessions.
Notice
Daemon diagnostic notice broadcast to all connections. Non-owning.
source
string
required
Emitting subsystem.
message
string
required
Human-readable detail.
Permission_Option
One option the daemon proposes for a permission request.
id
string
required
Stable option key clients echo back.
label
string
required
Human-readable label.
creates
Maybe([]string)
optional
Rule shapes produced when chosen (for allow_always); each element @bounded 512.
Permission_Decision_User
Decided by a user selecting an option.
option_id
string
required
Selected option id.
label
string
required
Human-readable option label.
resolved_at_ms
u64
required
Decision epoch ms.
Permission_Decision_Rule
Decided by a matched persisted rule.
label
string
required
Rule label.
resolved_at_ms
u64
required
Decision epoch ms.
Permission_State
Local-only lifecycle data folded into tool state. Never a broadcast.
requested_at_ms
u64
required
When the daemon issued the prompt.
options
Maybe([]Permission_Option)
optional
Options offered to the user. Absent for rule-resolved decisions; at most 32.
decision
Maybe(Permission_Decision)
optional
Once resolved, the recorded decision.
Permission_Rule
A remembered "allow always" answer, scoped to a workspace.
session_id
Maybe(Session_Id)
optional
If non-null, rule is scoped to one session.
tool
string
required
Tool name this rule applies to.
label
string
required
Human-readable rule label.
created_at_ms
u64
required
Creation epoch ms.
Permission_Decide_Params
Params for permission.decide.
option_id
string
required
message
Maybe(string)
optional
Client-supplied reason, meaningful only when option_id resolves to a reject kind; the daemon routes it into Tool_State_Denied.reason.
Permission_Rules_Result
Result of permission.rules.
rules
[]Permission_Rule
required
Remembered rules for the requested workspace.
Permission_Forget_Params
Params for permission.forget.
Run_Canceled_Timing
Cancellation timing; an accepted queued run may never start.
started_at_ms
Maybe(u64)
requiredNullable
Start epoch ms, or null when canceled before starting.
ended_at_ms
u64
required
Cancellation epoch ms.
Token_Usage
Token accounting for one assistant message.
input
u64
required
Input tokens billed.
output
u64
required
Output tokens billed.
reasoning
u64
required
Output tokens used by reasoning.
cache_read
u64
required
Tokens read from prompt cache.
cache_write
u64
required
Tokens written to prompt cache.
Run_Outcome_Turn
A completed turn: it stopped for a stop reason after some round trips.
rounds
u64
required
Number of model/tool round trips used.
Run_Outcome_Compacted
A manual compaction that produced a summary.
Run_Outcome_Skipped
A manual compaction that did nothing.
Run_Outcome_Canceled
A run canceled by the user or daemon. Its timing rides the terminal envelope.
Run_Outcome_Failed
A run that failed after daemon retry policy was exhausted.
message
string
required
Human-readable failure.
System_Prompt_Default
Request-time system prompt override; the default arm means the field was omitted.
System_Prompt_None
Field was explicitly null.
System_Prompt_Set
@unbounded Field carried an explicit value.
value
string
required
Max_Rounds_Default
Request-time max-rounds override; the default arm means the field was omitted.
Max_Rounds_Unlimited
Field was explicitly null.
Max_Rounds_Set
Field carried an explicit value.
value
u64
required
Create_Session
session.create input. Non-owning.
workspace_path
Maybe(string)
optional
Filesystem path; omitted resolves to the home directory.
profile
Maybe(string)
optional
Profile name to resolve config from.
model
Maybe(string)
optional
Model id override.
reasoning
Maybe(string)
optional
Reasoning level override.
system_prompt
System_Prompt_Override
tristate
Omitted = resolve from config. Explicit null = force no system prompt.
permission
Maybe(Permission_Mode)
optional
Permission mode override.
Session_Patch
Missing field means no change. The system prompt is snapshotted at creation and is not patchable. Non-owning.
model
Maybe(string)
optional
New model id.
reasoning
Maybe(string)
optional
New reasoning level.
permission
Maybe(Permission_Mode)
optional
New permission mode.
Session_Fork_Params
session.fork input.
before_message_id
Maybe(Message_Id)
optional
Fork up to (exclusive); omit to fork the full transcript.
Session_Compact_Result
session.compact result.
Session_Rewind_Params
session.rewind input.
Session_Origin_Root
User-created root session.
Session_Origin_Child
Child of another session.
parent_message_id
Message_Id
required
Message in the parent's transcript carrying the spawning tool part.
parent_part_id
Part_Id
required
Tool part within that message that spawned this session; together with parent_message_id stays correct when one message emits multiple spawn calls.
Session
Daemon-owned session summary.
profile
string
required
Profile name.
model
string
required
Future-run model id.
reasoning
string
required
Future-run reasoning level.
max_rounds
Maybe(u64)
requiredNullable
Live round cap; null means unlimited.
title
string
required
Display title.
message_count
u64
required
Committed transcript message count.
created_at_ms
u64
required
Creation epoch ms. Never changes; updated_at_ms is never below it.
updated_at_ms
u64
required
Last update epoch ms.
created_by
Maybe(Client)
requiredNullable
Client that created the session; null for daemon-created child/cron sessions.
agent
Maybe(string)
optional
Agent name, when known; omitted if unassigned. Lets a client listing children name the agent without fetching a transcript.
Run_Config
Run settings captured at start.
model
string
required
Model id.
reasoning
string
required
Reasoning level.
Session_Activity
Coarse live session state.
config
Maybe(Run_Config)
optional
Config the named run is executing under. Present exactly when state names a run that has one; absent under idle and compacting.
queued
u64
required
Accepted inputs waiting to run. At most LIMITS.max_queued_inputs.
context_tokens
u64
required
Provider context token count.
pending_compaction
Maybe(Run_Id)
requiredNullable
Pending manual compaction run id.
Session_List_Item
Full compact row returned by session.list and session-index broadcasts. Non-owning; nested slices share the containing frame arena.
Session_Scope_All
No workspace restriction.
Session_Scope_Workspace
Sessions belonging to one exact workspace.
Session_Population_Top_Level
User-facing conversations: root sessions and forks.
Session_Population_Children
Immediate persistent children of one session.
Session_Population_Job_Runs
Sessions created by one cron job.
Session_Population_All
Every session regardless of origin.
Session_List_Params
session.list input. Non-owning.
population
Session_Population
defaulted
Relationship population; omitted means user-facing top-level sessions.
limit
Maybe(u64)
optional
Page size; omitted means daemon default.
cursor
Maybe(string)
optional
Opaque daemon-issued continuation.
Session_List_Result
One bounded session.list page. Non-owning.
revision
Session_Revision
required
Compact-index revision represented by every field in this result.
items
[]Session_List_Item
required
Rows in final daemon-defined display order.
next_cursor
Maybe(string)
requiredNullable
Opaque continuation; required null on the final page.
total
u64
required
Unique rows in the complete selected view before paging.
Activity_State_Idle
No active work.
Activity_State_Building
Runtime is being built as the first phase of a run.
started_at_ms
u64
required
Run and build start epoch ms.
Activity_State_Running
Run is active.
started_at_ms
u64
required
Run start epoch ms.
Activity_State_Reasoning
Model is producing reasoning.
Activity_State_Waiting_Permission
Tool call awaits permission.
tool_name
string
required
Tool name.
requested_at_ms
u64
required
Request epoch ms.
Activity_State_Running_Tool
Tool call is running.
tool_name
string
required
Tool name.
started_at_ms
u64
required
Tool start epoch ms.
Activity_State_Retrying
Run is waiting to retry.
attempt
u64
required
Current attempt number.
max_attempts
u64
required
Maximum attempts.
next_at_ms
u64
required
Next retry epoch ms.
message
string
required
Human-readable failure.
Activity_State_Compacting
Compaction model call is active.
started_at_ms
u64
required
Compaction start epoch ms.
Session_Resync_Params
session.resync input.
limit
Maybe(u64)
optional
Max messages to return; omit for daemon default.
Active_Draft
In-flight assistant draft, resent on resync. Non-owning.
Session_Resync_Result
Full session snapshot for reconnection. Non-owning. On one ordered connection, the successful response is the snapshot cut barrier: session broadcasts queued before it are represented by this result, and broadcasts queued after it are newer than the cut.
highest_finalized_message_id
Maybe(Message_Id)
requiredNullable
Highest message id already committed or discarded at the snapshot cut. Required on the wire; null when no message has finalized.
messages
[]Message
required
Recent transcript messages, oldest first in strict message-id order.
has_more
bool
required
True exactly when item.session.message_count exceeds the number of returned messages.
configs
[]Run_Config
required
Unique configs resolving every assistant message in messages and active.
active
Maybe(Active_Draft)
optional
In-flight draft, if any.
queued
[]Queued_Input
required
Inputs queued behind the active turn.
Session_History_Params
session.history input.
limit
Maybe(u64)
optional
Max messages to return; omit for daemon default.
Session_History_Result
session.history result.
messages
[]Message
required
Page of transcript messages, oldest first in strict message-id order.
configs
[]Run_Config
required
Unique configs resolving every assistant message in messages.
has_more
bool
required
Whether older messages exist beyond this page.
Session_Config_Params
session.config.get input.
config_rev
Maybe(Config_Rev)
optional
Specific revision to fetch; omit for the live config.
Session_Config_Result
session.config.get result.
system_prompt
Maybe(string)
requiredNullable
null means no system prompt is sent to the model.
Subscription_Set_Params
session.subscription.set input.
sessions
[]Session_Id
required
Sessions to subscribe to; replaces the prior set.
Message_Time
Creation/completion timestamps on an assistant message.
created_at_ms
u64
required
Creation epoch ms.
completed_at_ms
Maybe(u64)
requiredNullable
Completion epoch ms; null while still in flight.
Created_Time
Creation timestamp on a user or compaction message. These message kinds carry { created_at_ms } only — no completed_at_ms (that is assistant-only).
created_at_ms
u64
required
Creation epoch ms.
Message_Error
Structured error on an assistant message with finish: "error". Non-owning.
type
string
required
Provider error category string.
message
string
required
Human-readable error.
Text_Part
Text assistant part payload. Non-owning.
text
string
required
UTF-8 text.
Reasoning_Part
Reasoning assistant part payload. Non-owning.
text
string
required
UTF-8 reasoning trace.
signature
string
required
Opaque provider data: Anthropic's extended-thinking block signature, delivered by signature_delta. Empty when the provider issued none. Persisted verbatim and replayed verbatim on the next request of a tool-use conversation; never interpreted. A part carrying one must never be collapsed or reordered by a normalization pass, even when text is empty: the signature covers the block at its position.
Redacted_Reasoning_Part
Opaque safety-redacted model reasoning payload. Non-owning.
data
string
required
Opaque encrypted provider data. Persist and replay it verbatim at this position; never interpret, normalize, collapse, or reorder it.
Tool_Part
Tool assistant part payload. Non-owning.
call_id
Maybe(string)
optional
Provider identity; never used to address the part.
name
string
required
Tool name.
arguments
string
required
Opaque JSON-encoded arguments.
input_view
Maybe([]View)
optional
Display-only input views.
permission_state
Maybe(Permission_State)
optional
Local permission lifecycle. Absent under pending; options-and-no-decision under waiting_permission; decided when present, except under canceled.
Tool_State_Pending
Not yet started.
Tool_State_Waiting_Permission
Awaiting a permission decision.
Tool_State_Running
Call is executing.
started_at_ms
u64
required
Run start epoch ms.
output
Maybe(string)
optional
Accumulated display output streamed so far. Present in a resync snapshot of a running tool, absent in the live transition into running. Its UTF-8 byte length is the next tool.output_delta offset baseline.
Tool_State_Completed
Call finished successfully.
output
string
required
Model-facing output text.
view
Maybe([]View)
optional
Display-only rendering hints.
duration_ms
u64
required
Wall-clock duration in ms.
Tool_State_Error
Call failed.
message
string
required
Model-facing error text.
view
Maybe([]View)
optional
Display-only rendering hints.
duration_ms
u64
required
Wall-clock duration in ms.
Tool_State_Denied
Permission was denied.
reason
string
required
Model-facing reason.
Tool_State_Canceled
Call was canceled.
duration_ms
Maybe(u64)
requiredNullable
Null when the call never started running.
User_Message
User transcript message payload. Non-owning.
content
[]Content_Part
required
Content parts in rendered order.
skill
Maybe(Skill_Ref)
optional
Skill this message's rendered body came from, if any.
Turn_Provenance
Which provider actually produced one assistant turn. Absent on a turn the daemon built before the field existed. Assistant_Message.config_rev records the configuration a turn was *requested* under and can be resolved away by a later config change; this records what answered, which is what makes provider-scoped opaque data (a reasoning part's signature) safe to replay: replay it only when the next request goes to the same protocol and model. Non-owning.
model
string
required
Model id that produced the turn, resolved at request time.
Assistant_Message
Assistant transcript message payload. Non-owning.
agent
string
required
Agent name ("main" for a root session).
content
[]Assistant_Part
required
Assistant parts in append order.
finish
Maybe(Stop_Reason)
optional
Present on every committed message; absent on a draft.
tokens
Maybe(Token_Usage)
optional
Token accounting.
cost
Maybe(f64)
optional
Estimated United States dollars.
error
Maybe(Message_Error)
optional
Present exactly when finish is "error".
provenance
Maybe(Turn_Provenance)
optional
Provider that produced this turn; absent on turns older than the field.
Compaction_Message
Compaction transcript message payload. Non-owning.
summary
string
required
Model-generated summary of the dropped range.
first_kept_id
Maybe(Message_Id)
requiredNullable
First message id still in the provider context. Null means nothing was kept.
tokens_before
u64
required
Tokens before compaction.
tokens_after
u64
required
Tokens after compaction.
Diff_Hunk
One hunk of a unified diff.
old_start
u64
required
1-based start line in old file.
old_lines
u64
required
Line count in old file.
new_start
u64
required
1-based start line in new file.
new_lines
u64
required
Line count in new file.
lines
[]string
required
Hunk body, one line per element (no trailing newlines). Owner: caller/arena.
Diff_File
One file in a diff view.
path
string
required
New (or current) file path.
old_path
Maybe(string)
optional
Path in the old tree when the file was renamed.
hunks
[]Diff_Hunk
required
Per-file hunks in file order. Owner: caller/arena.
View_Text
Plain text view.
text
string
required
UTF-8 body.
language
Maybe(string)
optional
Optional language hint.
View_Markdown
Markdown view.
text
string
required
Markdown source.
View_Json
JSON view.
text
string
required
JSON source.
View_Diff
Unified diff view.
files
[]Diff_File
required
Files in the diff. Owner: caller/arena.
View_Image
Image view.
alt
Maybe(string)
optional
Alternative text.
Workspace
Daemon-known workspace directory. Non-owning.
root
string
required
Canonical absolute path.
title
string
required
Display title.
Git_Info
Git status for a workspace root, when it is a repo. Non-owning.
branch
string
required
dirty
bool
required
Whether the working tree has uncommitted changes.
Workspace_Describe_Params
workspace.describe input. Non-owning.
path
string
required
Workspace_Describe_Result
workspace.describe result. Non-owning.
git
Maybe(Git_Info)
requiredNullable
Git status; null when the root is not a repo.
last_modified_ms
u64
required
Last filesystem modification epoch ms.
last_used_model
Maybe(string)
requiredNullable
Last model used in this workspace; null if never run.
Workspace_Browse_Params
workspace.browse input. Non-owning.
path
Maybe(string)
optional
limit
Maybe(u64)
optional
Page size; omitted means daemon default.
cursor
Maybe(string)
optional
Opaque continuation within the same directory.
Dir_Entry
A single filesystem entry in a browse listing. Non-owning.
name
string
required
path
string
required
is_git_repo
bool
required
Whether this directory is itself a git repo.
Workspace_Browse_Result
workspace.browse result. Non-owning.
path
string
required
parent
Maybe(string)
requiredNullable
Parent directory path; null at the filesystem root.
entries
[]Dir_Entry
required
Directory contents.
next_cursor
Maybe(string)
requiredNullable
Opaque continuation; required null on the final page.
Workspace_Ref
Params naming a workspace and nothing else. Shared by workspace.remove, workspace.skills, and permission.rules; split it the moment one of them needs a field of its own.
Workspace_Remove_Result
workspace.remove result. Non-owning.
related_job_ids
[]Job_Id
required
Cron jobs that referenced the removed workspace.
Skill_Info
Discovered skill metadata. Non-owning.
name
string
required
description
string
required
argument_hint
string
required
Workspace_Skills_Result
workspace.skills.list result. Non-owning.
skills
[]Skill_Info
required
Discovered skills.
Unions
Auth_Login_Result
Result of auth.login, tagged by the mechanism actually started.
Auth_Login_Outcome
Terminal outcome for a daemon-owned login attempt.
Auth_Login_Outcome_SucceededAuth_Login_Outcome_CanceledAuth_Login_Outcome_Failed
Broadcast_Data
Typed broadcast payload, tagged by broadcast name on the frame. A broadcast frame's data is always exactly one of these variants.
Session_Summary_Changed_DataSession_Activity_Changed_DataSession_Removed_DataWorkspace_Created_DataWorkspace_Removed_DataPermission_Rules_Changed_DataCatalog_Changed_DataAuth_Login_Finished_DataAuth_Changed_DataCron_Created_DataCron_Updated_DataCron_Removed_DataNoticeMessage_Committed_DataRun_Started_DataRun_Done_DataConfig_Changed_DataTranscript_Truncated_DataMessage_Started_DataMessage_Discarded_DataMessage_Part_Added_DataMessage_Part_Delta_DataTool_State_Changed_DataTool_Output_Delta_DataInput_Queued_DataInput_Canceled_DataSession_Deltas_Shed_Data
Catalog_List_Result
Result of catalog.list: unchanged since since_rev, or a full catalog snapshot.
Media_Source
Where media bytes live. Inline (base64) capped at LIMITS.max_inline_media_bytes; blob is a content hash fetched over HTTP.
Content_Part
One piece of user or model content. Non-owning.
Cron_Schedule
A cron schedule: recurring or one-shot. Non-owning.
Cron_Schedule_EveryCron_Schedule_CronCron_Schedule_AtCron_Schedule_After
Response
Server response frame. One frame shape carrying exactly one of result / error; the outcome is which member is present.
Input
A unit of user input: either raw content or a skill invocation. Non-owning.
Session_Send_Input_Result
Result of session.send_input: started immediately or queued behind an active turn.
Session_Send_Input_Result_StartedSession_Send_Input_Result_Queued
Request_Params
Runtime params payload tagged by the same enum as Method_Name.
Initialize_ParamsSession_List_ParamsCreate_SessionSession_Patch_ParamsSession_Remove_ParamsSession_Fork_ParamsSession_Compact_ParamsSession_Rewind_ParamsSession_Send_Input_ParamsSession_Cancel_Input_ParamsSession_Cancel_Run_ParamsSession_Resync_ParamsSession_History_ParamsPermission_Decide_ParamsSession_Config_ParamsSubscription_Set_ParamsCatalog_List_ParamsEmptyAuth_Login_ParamsAuth_Cancel_Login_ParamsAuth_Logout_ParamsWorkspace_Describe_ParamsWorkspace_Browse_ParamsWorkspace_RefPermission_Forget_ParamsCron_Create_ParamsCron_Patch_ParamsCron_Job_RefCron_List_Params
Response_Result
Runtime result payload tagged by the request method that produced it.
Initialize_ResultSession_List_ResultSession_ResultEmptySession_Compact_ResultSession_Send_Input_ResultSession_Cancel_Input_ResultSession_Cancel_Run_ResultSession_Resync_ResultSession_History_ResultSession_Config_ResultCatalog_List_ResultCatalog_Refresh_ResultAuth_List_ResultAuth_Login_ResultWorkspace_Describe_ResultWorkspace_Browse_ResultWorkspace_Remove_ResultWorkspace_Skills_ResultPermission_Rules_ResultCron_Job_ResultCron_List_ResultCron_Run_Now_Result
Permission_Decision
Who answered a permission request, and how. Non-owning.
Run_Outcome
A run's terminal outcome, discriminated by type. Cancellation and failure are terminal outcomes here (folded in from the former run.canceled / run.failed).
Run_Outcome_TurnRun_Outcome_CompactedRun_Outcome_SkippedRun_Outcome_CanceledRun_Outcome_Failed
System_Prompt_Override
Request-time system prompt override. default means the field was omitted.
Max_Rounds_Override
Request-time max-rounds override. default means the field was omitted.
Session_Origin
How a session was created.
Session_Origin_RootSession_Origin_ChildSession_Origin_ForkSession_Origin_Cron
Session_Population
Session relationship population searched by session.list.
Session_Population_Top_LevelSession_Population_ChildrenSession_Population_Job_RunsSession_Population_All
Activity_State
Session activity variant. The message_id, part_id, and tool_name locators are deliberately derivable: they are a checksum, and disagreement is a client's cue to resync.
Activity_State_IdleActivity_State_BuildingActivity_State_RunningActivity_State_ReasoningActivity_State_Waiting_PermissionActivity_State_Running_ToolActivity_State_RetryingActivity_State_Compacting
Assistant_Part
One element of an assistant message content[]. Non-owning.
Tool_State
Lifecycle state of a tool part. Non-owning.
Tool_State_PendingTool_State_Waiting_PermissionTool_State_RunningTool_State_CompletedTool_State_ErrorTool_State_DeniedTool_State_Canceled
View
Display-only rendering hint. Frontends may render natively or ignore. Non-owning.
Enumerations
Auth_Flow
OAuth login mechanisms a provider exposes.
browser
Authorization-code login using a loopback browser callback.
device_code
Device authorization login using a verification page and user code.
Auth_State
Coarse persisted authentication state for a provider.
signed_out
No durable credentials are available.
signed_in
Durable credentials are available.
Broadcast_Name
Closed enum of broadcast names. Source of truth for the broadcast set.
session.summary_changed
Durable session summary changed.
session.activity_changed
Volatile session activity changed.
session.removed
Session was removed.
workspace.created
Workspace became known to the daemon.
workspace.removed
Workspace was removed.
permission.rules_changed
Permission rules for a workspace changed.
catalog.changed
Catalog content hash or health changed.
auth.login_finished
A daemon-owned authentication login attempt reached a terminal outcome.
auth.changed
Public authentication state for a provider changed.
cron.created
Cron job was created.
cron.updated
Cron job was updated.
cron.removed
Cron job was removed.
notice
Daemon diagnostic notice.
message.committed
Committed transcript message; durable.
run.started
Run started; durable.
run.done
Run reached a terminal outcome; durable.
config.changed
Run config changed; durable.
transcript.truncated
Transcript was truncated; durable.
message.started
Assistant message draft started.
message.discarded
Assistant message draft was discarded (e.g. retry).
message.part_added
A new part was appended to a draft.
message.part_delta
Incremental text/reasoning bytes for a draft.
tool.state_changed
Tool part state changed.
tool.output_delta
Incremental display output for a running tool part.
input.queued
Input was queued behind the active turn.
input.canceled
Queued input was canceled before starting.
session.deltas_shed
Live deltas were shed to a lagging connection.
Error_Code
Why a request failed. Distinct from run failures (RunErrorCode).
-32602
Request was syntactically or semantically invalid.
-32600
Wire-level framing / version violation.
-32601
Unknown RPC method name.
-31000
Session id does not exist.
-31001
Workspace id does not exist.
-31002
A paged-query cursor names an invalidated result generation.
-31003
Message id does not exist in this session.
-31004
Part index is out of range for the parent message.
-31005
Input id does not exist or was already consumed.
-31006
config_rev is not the session's current revision.
-31007
Job id does not exist.
-31008
A run is already active on the target job.
-31009
Skill name is unknown to this daemon.
-31010
Input was already started and cannot be re-entered.
-31011
Session input queue reached its protocol cap.
-31012
The run the request targets is not the current run.
-31013
Permission descriptor or prompt id is unknown.
-31014
Permission for this prompt was already decided.
-31015
Session is busy and cannot accept the request right now.
-31016
Session has persistent children and removal did not request a cascade.
-31017
Underlying runtime (model / tool) failed.
-31018
Patch failed structural or content validation.
-31019
Model id is not supported by this daemon.
-31020
Reasoning effort is not supported by the selected model.
-32603
Catch-all for unspecified internal errors.
-31021
Retry this request after backoff; the connection stays up, only this request was shed. Client behavior: exponential-backoff re-send of the same request.
Run_Error_Code
Why a run failed after daemon retry policy was exhausted.
provider
Provider rejected or failed the request.
protocol
Provider stream could not be parsed.
network
Network request failed.
timeout
Provider request timed out.
rate_limited
Provider rate limit was hit.
quota_exhausted
Plan, quota, or budget exhausted.
auth
Provider authentication failed.
unknown_model
Model id is unknown.
unsupported_reasoning
Reasoning setting is unsupported.
max_rounds
Tool-call round cap was hit.
context_overflow
Conversation did not fit.
runtime
Runtime environment failed.
internal
Unspecified daemon failure.
Cron_Retain
Whether a fired session should be retained after the run ends.
always
Always keep.
on_failure
Keep only if the run failed.
never
Always prune after the run.
Cron_Overlap
Behavior when a new fire overlaps an active run.
skip
Skip the new fire.
parallel
Run them in parallel.
Cron_Missed_Policy
What to do with a fire missed while offline / behind.
skip
Drop missed fires.
run_once
Run once immediately on recovery, then resume the schedule.
Cron_Run_Outcome
Outcome tag for a single cron fire.
completed
Run finished normally.
canceled
Run was canceled mid-flight.
failed
Run returned an error.
dispatch_failed
Daemon could not dispatch the fire (e.g. workspace busy).
Capability
Optional daemon surface a client may probe for. This is the ONE enum decoded tolerantly: an unknown capability string is IGNORED, never a Validation_Error. Tolerant decode is the whole point — a newer daemon advertises a token an older client does not know, and the client must skip it, not reject the frame. Every other enum in this package hard-rejects an unknown value; this one must not.
blob_upload
Client→daemon blob upload (PUT /blob/<hash>).
Method_Name
Closed enum of RPC method names. Source of truth for the method set.
initialize
Negotiate the protocol version and exchange identity. Must be the first request on a connection, and is the only one accepted before Ready.
session.list
Read a bounded daemon-ordered session-index page.
session.create
Create a new session.
session.patch
Patch session settings.
session.remove
Remove a session and its data.
session.fork
Fork a session from another session's transcript.
session.compact
Request manual compaction of the transcript context.
session.rewind
Truncate the transcript at a user message.
session.send_input
Send user input to a session.
session.cancel_input
Cancel a queued input that has not started.
session.cancel_run
Cancel the active run, optionally clearing queue and pending compaction.
session.resync
Resync a session with a windowed transcript snapshot.
session.history
Read older committed history beyond the resync window.
permission.decide
Answer a pending permission request.
session.config
Fetch a session's run config and system prompt by config_rev.
subscription.set
Replace the subscription set.
catalog.list
Fetch the model catalog, with optional since_rev.
catalog.refresh
Re-read provider and credential configuration from disk.
auth.list
Read public authentication state and supported login mechanisms.
auth.login
Start a daemon-owned provider login attempt.
auth.cancel_login
Cancel a daemon-owned provider login attempt.
auth.logout
Remove one provider's durable credentials.
workspace.describe
Describe an arbitrary path as a workspace.
workspace.browse
List directories on the daemon host.
workspace.remove
Remove a workspace and its sessions.
workspace.skills
List skills available in a workspace.
permission.rules
List remembered permission rules for a workspace.
permission.forget
Forget a remembered permission rule.
cron.create
Create a cron job.
cron.patch
Patch a cron job.
cron.remove
Remove a cron job.
cron.list
List cron jobs.
cron.run_now
Fire a cron job immediately.
Notice_Level
Severity of a daemon diagnostic notice.
info
Informational.
warn
Warning; recoverable.
error
Daemon-side error.
Permission_Option_Kind
Kinds of options the daemon may propose on a permission prompt.
allow_once
Allow once for this call only.
allow_session
Allow for the rest of the session.
allow_always
Persist as a workspace rule and allow.
reject_once
Reject this call only.
reject_always
Persist a deny rule and reject; its creates patterns produce deny rules (mirror of Allow_Always).
Denied_By
Who or what denied a tool call.
user
A user selected a reject option.
policy
Daemon policy rejected the call without prompting.
Rule_Action
Whether a remembered permission rule allows or denies the matched call.
allow
Rule allows the matched call.
deny
Rule denies the matched call.
Run_Kind
What kind of run occupies a session.
turn
User-driven round of model + tool calls.
compaction
Background context compaction.
Compact_Skip_Reason
Why a manual compaction did nothing.
nothing_to_summarize
Transcript already fits the context.
too_few_messages
Too few messages to summarize meaningfully.
Stop_Reason
Why a message stopped.
stop
Natural stop.
length
Hit the model's max-output token limit.
content_filter
Provider content filter triggered.
tool_calls
Stopped to run one or more tool calls.
canceled
User or daemon canceled.
error
Provider or runtime error.
unknown
Stop reason did not map to a known value.
Compact_Status
Whether compaction started immediately or was queued.
started
queued
Permission_Mode
Permission policy for future tool calls.
strict
Ask before sensitive actions.
normal
Use daemon defaults.
yolo
Allow without prompting.
Session_View
Closed daemon-defined session-list ordering.
active
recent
active_recent
Compaction_Reason
Why compaction is running.
auto
Daemon-triggered compaction.
manual
User-requested compaction.
Provider_Protocol
Provider request/response protocol a turn was produced under. Closed set; the transport picks a decoder from it, and persisted provenance names it so a later replay can tell whether opaque provider data still applies.
anthropic-messages
Anthropic Messages.
openai-completions
OpenAI Chat Completions.
openai-responses
OpenAI Responses.
Skill_Scope
Where a skill definition was loaded from.
project
personal
Aliases
Provider_Id
= string
Stable provider identifier used by auth and catalog configuration.
Message_Part_Delta_Data
= Part_Delta
Payload for message.part_delta: incremental draft bytes folded by UTF-8 offset.
Tool_Output_Delta_Data
= Part_Delta
Payload for tool.output_delta: incremental display output for a running tool part, offset-folded like message.part_delta but targeting the tool output stream.
Catalog_Rev
= [64]u8
Catalog content hash.
Model_Id
= string
Provider model identifier string.
Session_Id
= [16]u8
16 lowercase hex chars. Doubles as an on-disk directory name.
Workspace_Id
= [16]u8
16 lowercase hex chars. Doubles as an on-disk directory name.
Job_Id
= [16]u8
16 lowercase hex chars. Doubles as an on-disk record name.
Rule_Id
= [16]u8
16 lowercase hex chars. Identifies one remembered permission rule.
Login_Id
= [32]u8
32 lowercase hex chars. Identifies one daemon-owned OAuth login attempt.
Request_Id
= string
Correlation id as its verbatim JSON token — 7, "abc" with quotes, or null. Opaque: JSON-RPC requires the response id to equal the request id.
Message_Id
= u64
Session-scoped, daemon-minted, strictly increasing, never reused.
Run_Id
= u64
Session-scoped, daemon-minted, strictly increasing, never reused.
Input_Id
= u64
Session-scoped, daemon-minted, strictly increasing, never reused.
Part_Id
= u64
Part ordinal in message.content[], from 0. JSON number on the wire, like the other session-scoped ids.
Seq
= u64
Per-session monotonic sequence number on durable broadcasts.
Session_Revision
= u64
Monotonic compact-session-index revision within one daemon lifetime.
Cron_Revision
= u64
Monotonic cron-index revision within one daemon lifetime.
Config_Rev
= u64
Monotonic run-config revision within a session.
Limits
| dead_connection_ms | 90,000 |
| default_cron_list_page_size | 25 |
| default_page_size | 50 |
| default_session_list_page_size | 25 |
| default_workspace_browse_page_size | 100 |
| max_activity_retry_message_bytes | 1,024 |
| max_agents | 256 |
| max_auth_flows | 8 |
| max_auth_providers | 64 |
| max_auth_url_bytes | 4,096 |
| max_auth_user_code_bytes | 128 |
| max_blob_bytes | 67,108,864 |
| max_catalog_models | 4,096 |
| max_cron_jobs | 1,024 |
| max_cron_list_cursor_bytes | 256 |
| max_cron_list_page_size | 100 |
| max_error_message_bytes | 4,096 |
| max_frame_bytes | 8,388,608 |
| max_inline_media_base64_bytes | 349,528 |
| max_inline_media_bytes | 262,144 |
| max_input_parts | 256 |
| max_message_parts | 1,024 |
| max_message_string_bytes | 1,048,576 |
| max_page_size | 500 |
| max_permission_creates | 32 |
| max_permission_options | 32 |
| max_permission_reject_message_bytes | 4,096 |
| max_permission_rules | 4,096 |
| max_profiles | 256 |
| max_queued_inputs | 128 |
| max_reasoning_levels | 32 |
| max_session_list_cursor_bytes | 256 |
| max_session_list_page_size | 100 |
| max_skills | 1,024 |
| max_skipped_providers | 256 |
| max_snapshot_configs | 501 |
| max_subscriptions | 64 |
| max_tool_output_stream_bytes | 1,048,576 |
| max_view_bytes | 1,048,576 |
| max_view_items | 1,024 |
| max_views_per_tool | 64 |
| max_workspace_browse_cursor_bytes | 256 |
| max_workspace_browse_page_size | 500 |
| max_workspaces | 1,024 |
| ping_interval_ms | 30,000 |