pub struct EmbedTemplate {
pub argv: Vec<String>,
pub stdin: Option<String>,
pub env: BTreeMap<String, String>,
pub cwd: Option<String>,
pub output: Option<SubprocessOutput>,
pub system_prompt: Option<String>,
pub model: Option<String>,
pub tools_csv: String,
}Expand description
GH #83 — the compile-time-baked EmbedAgent invocation: a resolved
SubprocessDef template merged
with the agent profile (system prompt / model / tools) and the
Runner::Subprocess overrides. When ProcessSpawner::embed carries
one of these, spawn takes the EmbedAgent path: materialize the
worker payload via Engine::fetch_worker_payload (never the
fetch_prompt-only single-directive path), render the closed
placeholder set into argv/stdin/env/cwd, and normalize stdout per
SubprocessOutput. When None, spawn keeps the historical
spec-based behavior byte-for-byte.
Fields§
§argv: Vec<String>Full argv (element 0 = program), unrendered — elements may carry placeholder tokens.
stdin: Option<String>stdin template. Some = render + pipe to the child’s stdin;
None = no stdin write (immediate EOF).
env: BTreeMap<String, String>Extra env vars (appended to the MSE_* token exports); values may
carry placeholder tokens.
cwd: Option<String>Working-directory template (Runner::Subprocess overrides.cwd
already merged in at compile time — it wins over the template’s
own cwd). None = fall back to the spawn-time {work_dir}
source; if that is also absent the child inherits the server CWD
(historical behavior).
output: Option<SubprocessOutput>stdout normalization declaration. None = historical JSON-or-raw.
system_prompt: Option<String>Compile-time-baked profile.system_prompt (pre-render template —
minijinja slot expansion happens at spawn, mirroring
OperatorSpawner).
model: Option<String>{model} placeholder value (overrides.model > profile.model).
tools_csv: String{tools_csv} placeholder value (overrides.tools > profile.tools,
CSV-joined).
Trait Implementations§
Source§impl Clone for EmbedTemplate
impl Clone for EmbedTemplate
Source§fn clone(&self) -> EmbedTemplate
fn clone(&self) -> EmbedTemplate
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 EmbedTemplate
impl Debug for EmbedTemplate
Source§impl Default for EmbedTemplate
impl Default for EmbedTemplate
Source§fn default() -> EmbedTemplate
fn default() -> EmbedTemplate
Auto Trait Implementations§
impl Freeze for EmbedTemplate
impl RefUnwindSafe for EmbedTemplate
impl Send for EmbedTemplate
impl Sync for EmbedTemplate
impl Unpin for EmbedTemplate
impl UnsafeUnpin for EmbedTemplate
impl UnwindSafe for EmbedTemplate
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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