Struct SpawnSpec
pub struct SpawnSpec {Show 14 fields
pub label: Option<String>,
pub frontmatter_path: Option<PathBuf>,
pub initial_prompt: String,
pub model: Option<String>,
pub provider: Option<String>,
pub tool_allowlist: Option<Vec<String>>,
pub isolation_worktree: bool,
pub inherit_hooks: bool,
pub interactive: bool,
pub inherited_hooks_config: Option<String>,
pub source: Option<String>,
pub resume_session: Option<PathBuf>,
pub permission_posture: PermissionPosture,
pub drive_protocol: DriveProtocol,
}Expand description
Parameters for a new sub-agent spawn. The supervisor stores this so
respawn can reuse it.
Fields§
§label: Option<String>Optional human-readable name for the agent.
frontmatter_path: Option<PathBuf>Path to the frontmatter markdown file (if any).
initial_prompt: StringInitial prompt handed to the sub-agent.
model: Option<String>Optional model override.
provider: Option<String>Optional provider override (e.g. “anthropic”, “openai”, “google”). The worker parses this to select the provider; without it the worker uses caliban’s default (anthropic). (#93)
tool_allowlist: Option<Vec<String>>Optional tool allowlist.
isolation_worktree: boolTrue iff the sub-agent should run in an isolated worktree.
inherit_hooks: boolWhether to inherit parent hooks (config-serializable portion only).
interactive: boolWhen true, the worker runs in interactive mode: at each end-of-run boundary it awaits inbound operator messages over the per-agent socket instead of finishing (ADR 0047 / #81).
inherited_hooks_config: Option<String>Opaque JSON-serialized parent permission config, inherited by the
worker when inherit_hooks is true (#84). The supervisor shuttles
this verbatim; only the caliban worker interprets it.
source: Option<String>Which workspace source (checkout) this agent runs against. None
means the workspace root (single-source back-compat). (#281)
resume_session: Option<PathBuf>Resume from a prior agent’s persisted session (#651, ADR 0057). When
Some, the worker loads session.json from this directory (a resume
reference returned by a Drain) and continues that conversation instead
of replaying initial_prompt. None starts fresh (the default).
permission_posture: PermissionPosturePer-session permission posture (ADR 0059). supervised (default) runs the
normal permission gate — an Ask rule is denied non-interactively when no
human is attached (a drive adapter surfaces it to a human when one is);
unattended runs under a bypass profile (no permission gate). Choosing
unattended is privileged and authorized upstream (prospero / the
operator Workspace policy, caliban-operator#80); the worker only honors +
audits it. Default is fail-closed (supervised).
drive_protocol: DriveProtocolWhich protocol drives this agent over its per-agent network listener
(ADR 0059, #675). ndjson (default) is the live-attach session plane;
acp makes the worker speak the Agent Client Protocol on the same
TLS + bearer-token listener (Option 2 — a per-spawn flag, not per-socket
negotiation). One protocol per agent; the driver (prospero) chooses.
Trait Implementations§
§impl<'de> Deserialize<'de> for SpawnSpec
impl<'de> Deserialize<'de> for SpawnSpec
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SpawnSpec, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SpawnSpec, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Serialize for SpawnSpec
impl Serialize for SpawnSpec
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for SpawnSpec
impl RefUnwindSafe for SpawnSpec
impl Send for SpawnSpec
impl Sync for SpawnSpec
impl Unpin for SpawnSpec
impl UnsafeUnpin for SpawnSpec
impl UnwindSafe for SpawnSpec
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more