agent: add Wake command - co-process self-wake via agent socket
This commit is contained in:
parent
286da8980e
commit
f0e87f0bc5
2 changed files with 22 additions and 0 deletions
|
|
@ -188,5 +188,20 @@ async fn dispatch(req: &AgentRequest, agent: &str, coord: &Arc<Coordinator>) ->
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
AgentRequest::Wake { from, body } => {
|
||||||
|
// Deliver a message to this agent from a co-process (e.g. a
|
||||||
|
// Matrix daemon). Identical to `Send { to: agent }` but the
|
||||||
|
// recipient is always the owning agent — no routing needed.
|
||||||
|
match broker.send(&Message {
|
||||||
|
from: from.clone(),
|
||||||
|
to: agent.to_owned(),
|
||||||
|
body: body.clone(),
|
||||||
|
}) {
|
||||||
|
Ok(()) => AgentResponse::Ok,
|
||||||
|
Err(e) => AgentResponse::Err {
|
||||||
|
message: format!("{e:#}"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -218,6 +218,13 @@ pub enum AgentRequest {
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
ttl_seconds: Option<u64>,
|
ttl_seconds: Option<u64>,
|
||||||
},
|
},
|
||||||
|
/// Deliver a message TO this agent from a co-process (e.g. a Matrix
|
||||||
|
/// daemon running in the same container). `from` identifies the sender
|
||||||
|
/// (e.g. `"matrix"`); `body` is a short summary. Unlike `Send`, the
|
||||||
|
/// recipient is always the agent that owns this socket — no `to` field.
|
||||||
|
/// Wakes whatever `Recv` the harness is parked on, triggering the next
|
||||||
|
/// claude turn.
|
||||||
|
Wake { from: String, body: String },
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Responses on a per-agent socket.
|
/// Responses on a per-agent socket.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue