Skip to main content

MuseExecBuilder

Struct MuseExecBuilder 

Source
pub struct MuseExecBuilder { /* private fields */ }
Expand description

Builder for one muse exec --json invocation.

Covers the full muse exec flag surface (Muse Code 0.1.0), verified flag-by-flag against the real binary. Constraints the CLI enforces are noted on each method (several flags are Meta-provider-only; the echo provider rejects them at startup with a usage error).

Implementations§

Source§

impl MuseExecBuilder

Source

pub fn new(prompt: impl Into<String>) -> Self

Source

pub fn binary(self, path: impl Into<String>) -> Self

Use a specific binary instead of muse from PATH.

Source

pub fn provider(self, provider: Provider) -> Self

Source

pub fn preset(self, preset: impl Into<String>) -> Self

Built-in preset (native-basic, miniswe).

Source

pub fn model(self, model: impl Into<String>) -> Self

Source

pub fn session_id(self, session_id: impl Into<String>) -> Self

Run under a caller-supplied session id (--session-id), the basis of multi-turn continuity: each turn is its own process, and passing the same id makes the CLI continue that session rather than start a new one. The id is adopted verbatim as the stream.id on every emitted record.

Supplying your own id is also what makes MuseRecord identity safe to key on: record ids are UUID-shaped counters that repeat across sessions, so the only unique handle is the composite (stream.id, id) — and that is trustworthy precisely because stream.id is yours. (When omitted, the CLI mints a random v4 of its own.)

Source

pub fn reasoning_effort(self, effort: impl Into<String>) -> Self

Meta reasoning effort (none|minimal|low|medium|high|xhigh|ultra). Not supported with Provider::Echo.

Source

pub fn base_url(self, url: impl Into<String>) -> Self

Source

pub fn prompt_file(self, path: impl Into<PathBuf>) -> Self

Read the prompt from a file (--prompt-file) instead of passing it as an argument; the positional prompt is omitted when set.

Source

pub fn api_key_stdin(self, enabled: bool) -> Self

Read the provider API key from stdin (--api-key-stdin). Meta-provider-only (the echo provider rejects it at startup). When set, the child’s stdin is piped instead of null — the caller writes the key (newline-terminated) and closes it.

Source

pub fn parallel_tool_calls(self, enabled: bool) -> Self

Meta API parallel tool calls: true--parallel-tool-calls, false--no-parallel-tool-calls. Meta-provider-only (the echo provider rejects both at startup).

Source

pub fn agents(self, json: impl Into<String>) -> Self

One ephemeral agent-definition overlay as JSON (--agents). Accepted by exec even though only the top-level help lists it (verified against the binary).

Source

pub fn image(self, path: impl Into<PathBuf>) -> Self

Attach a local image file (--image, repeatable). Requires an image-capable provider — the echo provider rejects it at startup.

Source

pub fn workspace(self, path: impl Into<PathBuf>) -> Self

Root policy-gated workspace tools at this path (--workspace).

Source

pub fn worktree(self, mode: WorktreeMode) -> Self

Session git worktree mode (--worktree off|create|existing).

Source

pub fn worktree_base(self, git_ref: impl Into<String>) -> Self

Base ref for WorktreeMode::Create (--worktree-base, default HEAD).

Source

pub fn worktree_existing(self, path: impl Into<PathBuf>) -> Self

Existing worktree path for WorktreeMode::Existing (--worktree-existing).

Source

pub fn context_compaction_strategy(self, id: impl Into<String>) -> Self

Context compaction strategy id (--context-compaction-strategy, e.g. summary-preserved-suffix/v1). Kept as a string: the ids are versioned and the set will drift.

Source

pub fn context_compaction_soft_threshold(self, fraction: f64) -> Self

Soft compaction threshold fraction (--context-compaction-soft-threshold).

Source

pub fn context_compaction_hard_threshold(self, fraction: f64) -> Self

Hard compaction threshold fraction (--context-compaction-hard-threshold).

Source

pub fn max_model_steps(self, steps: u64) -> Self

Cap the number of model steps (--max-model-steps).

Source

pub fn max_tool_output_bytes(self, bytes: u64) -> Self

Cap tool output bytes fed back to the model (--max-tool-output-bytes).

Source

pub fn allow_workspace_switch(self, enabled: bool) -> Self

Allow switching the workspace mid-run (--allow-workspace-switch). The CLI requires MuseExecBuilder::session_id alongside it (verified: rejected at startup otherwise).

Source

pub fn user_input_auto_resolve(self, enabled: bool) -> Self

Offer request_user_input and auto-cancel prompts in headless runs (--user-input-auto-resolve).

Source

pub fn subagent_worktree_isolation(self, enabled: bool) -> Self

Compatibility flag for subagent worktree isolation (--subagent-worktree-isolation); the capability defaults on.

Source

pub fn disable_web_tools(self, disabled: bool) -> Self

Disable web tools for this run (--disable-web-tools).

Source

pub fn no_foreign_personal_context(self, excluded: bool) -> Self

Exclude foreign personal rules and skills (--no-foreign-personal-context).

Source

pub fn no_session_log(self, disabled: bool) -> Self

Do not persist session event logs to disk (--no-session-log). Conflicts with MuseExecBuilder::session_id: the CLI rejects the pair at startup (“a session id needs retained logging” — verified), which also means multi-turn continuity requires the log.

Source

pub fn yolo(self, enabled: bool) -> Self

Disable approval and sandbox and trust this workspace for the run (--yolo).

Source

pub fn trust_workspace(self, trusted: bool) -> Self

Load this workspace’s skills and rules for the run (--trust-workspace).

Source

pub fn disable_approval(self, disabled: bool) -> Self

Disable tool approval prompts for the run (--disable-approval).

Source

pub fn disable_sandbox(self, disabled: bool) -> Self

Disable shell filesystem/network sandboxing for the run (--disable-sandbox).

Source

pub fn sandbox_network(self, mode: impl Into<String>) -> Self

Sandbox network mode (--sandbox-network, default proxy-only). Kept as a string: the help names no closed set of modes.

Source

pub fn disable_write(self, disabled: bool) -> Self

Disable non-shell workspace filesystem writes (--disable-write).

Source

pub fn disable_shell(self, disabled: bool) -> Self

Disable workspace shell execution (--disable-shell).

Source

pub fn enable_shell_tool(self, enabled: bool) -> Self

Use the legacy shell tool instead of managed bash (--enable-shell-tool).

Source

pub fn extra_args<I, S>(self, args: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

Raw argument passthrough for flags this builder does not model (mirrors codex-codes). Appended AFTER every typed flag and BEFORE the positional prompt, so callers relaying user-supplied tokens (e.g. a launch dialog’s extra-args box) need no flag parser of their own. Prefer the typed setters when one exists.

Source

pub fn working_directory(self, dir: impl Into<PathBuf>) -> Self

Source

pub fn env(self, key: impl Into<String>, value: impl Into<String>) -> Self

Source

pub fn build_command(&self) -> Result<Command>

Resolve the binary and assemble the command with piped stdio.

Source

pub async fn spawn(&self) -> Result<Child>

Spawn the run.

Trait Implementations§

Source§

impl Clone for MuseExecBuilder

Source§

fn clone(&self) -> MuseExecBuilder

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MuseExecBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MuseExecBuilder

Source§

fn default() -> Self

An empty-prompt builder resolving muse from PATH; use MuseExecBuilder::new (or MuseExecBuilder::prompt_file) to supply the prompt.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.