pub enum DaemonCommand {
Show 41 variants
Status,
Reload,
ChannelSet {
channel: String,
account: String,
enabled: bool,
workspace: Option<String>,
remote_tools: Option<RemoteTools>,
senders: Option<Senders>,
purpose: Option<Purpose>,
},
ChannelLogout {
channel: String,
account: String,
},
Delegations {
all: bool,
},
DelegationKill {
handle: Option<String>,
orphans: bool,
},
RestartWhenIdle {
version: Option<String>,
commit: Option<String>,
parent: Option<String>,
max_wait_seconds: Option<u64>,
},
ConfirmAsk {
question: String,
parent: Option<String>,
timeout_seconds: Option<u64>,
},
ConfirmStatus {
id: String,
},
ProjectCreate {
name: String,
workspace: String,
},
ProjectStatus {
project: String,
},
ProjectEvents {
project: String,
after: Option<u64>,
},
ProjectTasks {
project: String,
},
ProjectReport {
project: String,
},
ProjectTaskAdd {
project: String,
title: String,
depends_on: Vec<String>,
max_retries: u32,
},
ProjectTaskUpdate {
project: String,
task: String,
status: ProjectTaskStatus,
progress: Option<String>,
},
ProjectRunStart {
project: String,
task: String,
agent: String,
},
ProjectRunProgress {
project: String,
run: String,
progress: String,
},
ProjectRunFinish {
project: String,
run: String,
status: ProjectRunStatus,
},
ProjectHeartbeat {
project: String,
task: Option<String>,
run: Option<String>,
},
MailStatus {
account: Option<String>,
},
MailCancel {
account: String,
id: Option<String>,
all: bool,
},
Workbench {
watch: bool,
},
RunLog {
handle: String,
after: u64,
limit: Option<u32>,
},
WorkbenchStart {
workspace: String,
agent: String,
prompt: String,
cwd: Option<String>,
model: Option<String>,
effort: Option<String>,
worktree: bool,
},
WorkbenchSend {
session: String,
conversation: String,
prompt: String,
mode: SendMode,
},
WorkbenchCancel {
session: String,
job: String,
},
WorkbenchApprove {
id: String,
approved: bool,
},
WorkbenchResume {
session: String,
job: String,
},
Subscribe {
thread: String,
session: String,
job: String,
why: String,
},
Unsubscribe {
thread: String,
},
SubscribeExtra {
thread: String,
extra: String,
},
HandBack {
thread: Option<String>,
message_id: Option<String>,
parent: Option<String>,
},
WorkbenchDismiss {
session: String,
job: String,
},
JobResult {
session: String,
job: String,
},
Worktrees,
WorktreeRemove {
path: String,
force: bool,
},
Attach {
session: String,
conversation: String,
cols: Option<u16>,
rows: Option<u16>,
interrupt: bool,
interrupt_job: Option<String>,
},
AttachIo {
id: String,
after: u64,
input: String,
cols: Option<u16>,
rows: Option<u16>,
},
AttachDetach {
id: String,
},
AttachEnd {
session: String,
conversation: String,
},
}Expand description
What a daemon.control message asks the daemon to do.
Variants§
Status
Report DaemonStatus.
Reload
Reread channel settings and reconcile the components now.
ChannelSet
Enable or disable one channel account, optionally changing its workspace, remote tool grant, and whose messages it answers.
Fields
remote_tools: Option<RemoteTools>Omitted keeps the saved setting.
ChannelLogout
Stop one channel account and remove its credentials and state.
Fields
Delegations
List running delegations; all includes orphans awaiting cleanup.
DelegationKill
Stop one delegation by handle, or every orphaned one.
Fields
RestartWhenIdle
Restart into the release installed at the daemon’s own path once the
requesting delegation has finished and its report is stored and no
owner message is being answered, or at max_wait_seconds anyway.
Fields
ConfirmAsk
Ask the owner a yes/no question in chat: in the chat that started the
work parent names, or else the notify target. The reply’s confirm
names the question; confirm_status then follows it.
Fields
timeout_seconds: Option<u64>How long no answer waits before it counts as no
(DEFAULT_CONFIRM_SECONDS, at most MAX_CONFIRM_SECONDS).
ConfirmStatus
Report where the question id stands. Asking also keeps it alive: a
question nobody asks about for a minute is withdrawn.
ProjectCreate
Explicitly create an owner-authorized durable project.
ProjectStatus
Read a project’s reducer state without contacting an agent.
ProjectEvents
Read the append-only event history after an optional sequence.
Fields
ProjectTasks
Read current tasks and observed progress.
ProjectReport
Build a report from ledger evidence.
ProjectTaskAdd
Add a task to an explicitly created project.
Fields
ProjectTaskUpdate
Record an observed task state/progress update.
Fields
status: ProjectTaskStatusNew task state.
ProjectRunStart
Record a supervised agent run starting.
Fields
ProjectRunProgress
Record observed progress from a run heartbeat.
Fields
ProjectRunFinish
Record an observed terminal run state.
Fields
status: ProjectRunStatusTerminal run state.
ProjectHeartbeat
Record a heartbeat for a project task/run.
Fields
MailStatus
List the mail actions of every running email account, or of one;
the reply’s mail_actions holds them.
MailCancel
Withdraw one mail action by its ID, or every action of an account that has not started. It can never approve anything.
Fields
Workbench
Report the workbench: sessions, background jobs, delegated runs, approval requests waiting for the owner, and restorable sessions.
Fields
RunLog
Read a delegated run’s activity log after position after.
Fields
WorkbenchStart
Start a background job for the owner, in the workbench’s own session
for workspace: no model is involved, and the job is not reported to
any model.
Fields
WorkbenchSend
Send the owner’s prompt to a delegated conversation of a live session
(attach and take over): a new turn of it, queued behind a running
turn, or added to the running turn (mode).
Fields
WorkbenchCancel
Stop a background job of a live session.
WorkbenchApprove
Answer an approval request a background job relayed.
Fields
WorkbenchResume
Run an interrupted job again in the workbench’s session for its workspace, continuing its agent’s own conversation when that agent can.
Subscribe
Bind a chat thread to one background job that already exists. The daemon records the session owner as who authorized it. Binding does not start a job. One thread has one subscription.
Fields
Unsubscribe
Stop delivery on a thread. The subscription record stays, and a later message does not resume the job.
SubscribeExtra
Deliver another thread to the job a thread already subscribes to. The authorization is unchanged. The worker can drop this thread; the bound thread stays.
HandBack
The worker says an offered follow-up is not this job’s work. The
message returns to ordinary intake. An extra thread is dropped; the
thread the owner bound stays. With thread and message_id omitted,
parent selects the follow-up that job’s own ledger record accepted,
not a later job in the same resume chain.
Fields
WorkbenchDismiss
Forget a finished or interrupted job’s record.
JobResult
Report one job’s state and, once it has ended, its bounded reply or
error; the reply’s job_result holds them. It only reads.
Worktrees
List the git worktrees SCV created for jobs.
WorktreeRemove
Remove a worktree SCV created; one with uncommitted changes only
with force. Its branch is kept.
Fields
Attach
Take a live session’s idle conversation over in its agent’s own terminal, or attach to the takeover already running, and return its screen. Only agents whose terminal asks nothing SCV’s approval gate decides can be taken over; others are refused with why.
Fields
AttachIo
Type into an attached terminal and read what changed on its screen.
Fields
AttachDetach
Stop watching an attached terminal; the agent keeps running in it.
AttachEnd
End a takeover: hang up the agent’s terminal, stop its process, and give the conversation back to SCV’s turns.