docs/16-custom-interface-mode.md
Custom interface mode
Custom interface mode refers to the daemon-driven UI + streaming event pipeline. The daemon spawns provider CLIs, normalizes output, and exposes events over WebSocket.
Event model (current)
Run events:
run.patchrun.moderun.stalled
Node events:
node.patchnode.progressnode.heartbeatnode.lognode.deletedturn.status
Message events:
message.usermessage.assistant.deltamessage.assistant.finalmessage.assistant.thinking.deltamessage.assistant.thinking.final
Tool events:
tool.proposedtool.startedtool.completed
Approvals:
approval.requestedapproval.resolved
Graph events:
edge.creatededge.deletedhandoff.sentartifact.created
Telemetry:
telemetry.usage
Approvals
When cliPermissionsMode is gated, tool proposals are routed through the approval queue. The daemon exposes:
GET /api/approvalsPOST /api/approvals/:id/resolve
Provider session continuity
Session IDs are captured from provider adapters when available. CLI adapters keep stdin open for stateful streaming when supported.
API reference
See docs/12-api.md for REST + WS details.
