Skip to main content

AiBackendArgs

Struct AiBackendArgs 

Source
pub struct AiBackendArgs {
    pub ai_backend: Option<AiBackend>,
    pub model: Option<String>,
    pub beta_header: Option<String>,
    pub claude_cli_allow_tools: bool,
    pub claude_cli_allow_mcp: bool,
    pub claude_cli_max_budget_usd: Option<f64>,
    pub models_yaml: ModelsYamlArg,
}
Expand description

The AI backend flags, flattened onto every command that builds an AI client (git commit message {twiddle,check,staged}, git branch create pr, ai chat, ai jev verify-decision).

Fields§

§ai_backend: Option<AiBackend>

Selects the AI backend used by this command.

Overrides the OMNI_DEV_AI_BACKEND environment variable and the legacy USE_OPENAI/USE_OLLAMA/CLAUDE_CODE_USE_BEDROCK variables (default forces the direct Anthropic API even when they are set).

§model: Option<String>

AI model to use for this command.

Highest-precedence model selector: it overrides OMNI_DEV_MODEL and every per-backend model variable (CLAUDE_MODEL, CLAUDE_CODE_MODEL, ANTHROPIC_MODEL, OPENAI_MODEL, OLLAMA_MODEL). Equivalent to setting OMNI_DEV_MODEL.

§beta_header: Option<String>

Beta header to send with AI API requests (format: key:value).

Only sent if the model supports it in the model registry. Equivalent to setting OMNI_DEV_BETA_HEADER. Ignored when --ai-backend is claude-cli (the CLI negotiates betas itself).

§claude_cli_allow_tools: bool

Weakens the claude-cli sandbox by allowing the nested claude -p session to use its default built-in tools (Read, Edit, Write, Bash, Glob, Grep).

Only use for deliberately tool-capable use cases. By default the nested session runs with --tools "" and cannot touch the file system. This flag removes that guard. The prompt is built from untrusted content (diffs, commit messages, JIRA text), so well-known secret env vars (*_API_KEY, *_TOKEN, etc.) are scrubbed from the nested session; set OMNI_DEV_CLAUDE_CLI_KEEP_ENV to exempt names. Equivalent to setting OMNI_DEV_CLAUDE_CLI_ALLOW_TOOLS=true. Independent of --claude-cli-allow-mcp.

Ignored when --ai-backend is not claude-cli.

§claude_cli_allow_mcp: bool

Weakens the claude-cli sandbox by allowing the nested claude -p session to load MCP servers from ~/.claude/settings.json.

Only use deliberately. MCP servers commonly hold OAuth tokens (Gmail, Drive, Slack) and may be arbitrary network-attached services; enabling this exposes them to the nested session. By default the session runs with --strict-mcp-config and no MCP servers load. Equivalent to setting OMNI_DEV_CLAUDE_CLI_ALLOW_MCP=true. Independent of --claude-cli-allow-tools.

Ignored when --ai-backend is not claude-cli.

§claude_cli_max_budget_usd: Option<f64>

Per-invocation spending cap in USD for the claude-cli backend.

Forwarded to claude -p --max-budget-usd. When the nested session exceeds this budget it aborts rather than running away with cost. Equivalent to setting OMNI_DEV_CLAUDE_CLI_MAX_BUDGET_USD.

Ignored when --ai-backend is not claude-cli.

§models_yaml: ModelsYamlArg

--models-yaml, shared with config models show.

Implementations§

Source§

impl AiBackendArgs

Source

pub fn apply(&self)

Forwards the flags to the env vars that the backend/model resolvers, preflight, and the claude-cli client read. Setting the env vars (rather than threading extra arguments through every factory) keeps those signatures stable and shared with the MCP binary.

Trait Implementations§

Source§

impl Args for AiBackendArgs

Source§

fn group_id() -> Option<Id>

Report the ArgGroup::id for this set of arguments
Source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

impl Clone for AiBackendArgs

Source§

fn clone(&self) -> Self

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 AiBackendArgs

Source§

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

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

impl Default for AiBackendArgs

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl FromArgMatches for AiBackendArgs

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more