pub struct ResolvedAgent {Show 13 fields
pub name: String,
pub dispatch: String,
pub sessions: Option<String>,
pub attach: Option<String>,
pub resume: Option<String>,
pub message: Option<String>,
pub logs: Option<String>,
pub cap: Option<String>,
pub stop: Option<String>,
pub plan: Option<String>,
pub model: Option<String>,
pub model_deep: Option<String>,
pub model_plan: Option<String>,
}Expand description
The agent a task will be dispatched with: the task’s own override if it has one, otherwise the config’s global default, with every verb template resolved.
The dispatch and plan fields still hold their placeholders unresolved,
because what they bind to depends on the launch: reach them through
launch_command and
plan_launch_command, which return a command
line with nothing left to substitute.
Fields§
§name: String§dispatch: String§sessions: Option<String>§attach: Option<String>§resume: Option<String>§message: Option<String>§logs: Option<String>§cap: Option<String>§stop: Option<String>§plan: Option<String>§model: Option<String>§model_deep: Option<String>§model_plan: Option<String>Implementations§
Source§impl ResolvedAgent
impl ResolvedAgent
Sourcepub fn launch_command(&self, spec: &LaunchSpec<'_>) -> String
pub fn launch_command(&self, spec: &LaunchSpec<'_>) -> String
The dispatch template rendered into a runnable command line: the prompt
file shell-quoted, the launch’s session name and task id bound, and
{model} resolved for the task’s depth (DESIGN.md §8) — model_deep for
a deep task, falling back to model when the agent names no deeper one,
and model otherwise. An agent whose template carries no placeholder
renders the same string either way, the graceful degradation of the
deep flag.
Sourcepub fn dispatch_liveness_source(&self) -> LivenessSource
pub fn dispatch_liveness_source(&self) -> LivenessSource
Which liveness source a session launched through this agent’s
dispatch template must be read by (DESIGN.md §8), recorded on the
session row at launch. An agent defining a sessions verb is one whose
launch may hand the work to a supervisor — claude --bg does — leaving
Voro holding a launcher pid that dies at birth, so its listing is the
only source that can answer. An agent without the verb has no listing to
consult, and its spawned pid is all there is.
This is the headless launch’s answer, which the interactive plan
verb does not share: that one is a foreground child Voro owns, so its
caller records LivenessSource::Pid itself.
Sourcepub fn plan_launch_command(&self, spec: &LaunchSpec<'_>) -> Option<String>
pub fn plan_launch_command(&self, spec: &LaunchSpec<'_>) -> Option<String>
The plan template rendered the same way, when the agent defines the
verb, with {model} resolved to model_plan falling back to model.
Planning has no depth: it is interactive reasoning either way, so
spec.deep is not read.
Trait Implementations§
Source§impl Clone for ResolvedAgent
impl Clone for ResolvedAgent
Source§fn clone(&self) -> ResolvedAgent
fn clone(&self) -> ResolvedAgent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ResolvedAgent
impl Debug for ResolvedAgent
impl Eq for ResolvedAgent
Source§impl PartialEq for ResolvedAgent
impl PartialEq for ResolvedAgent
impl StructuralPartialEq for ResolvedAgent
Auto Trait Implementations§
impl Freeze for ResolvedAgent
impl RefUnwindSafe for ResolvedAgent
impl Send for ResolvedAgent
impl Sync for ResolvedAgent
impl Unpin for ResolvedAgent
impl UnsafeUnpin for ResolvedAgent
impl UnwindSafe for ResolvedAgent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.