pub struct ProviderConfig {Show 17 fields
pub id: &'static str,
pub display_name: &'static str,
pub cli_command: &'static str,
pub controller_type: ControllerType,
pub launch_args: &'static [&'static str],
pub persistent_launch_args: Option<&'static [&'static str]>,
pub resume_flag: Option<&'static str>,
pub session_id_field: &'static str,
pub styled_output_format: &'static str,
pub auth_config_dir_env_var: &'static str,
pub auth_dir_name: &'static str,
pub auth_extra_env: &'static [(&'static str, &'static str)],
pub unset_env: &'static [&'static str],
pub npm_package: &'static str,
pub pinned_version: &'static str,
pub icon: &'static str,
pub docs_url: &'static str,
}Expand description
All configuration needed to launch, authenticate, and stream output from a provider CLI.
Fields§
§id: &'static strCanonical provider identifier (e.g. "claude").
display_name: &'static strHuman-readable name shown in the UI.
cli_command: &'static strExecutable name on PATH (e.g. "claude").
controller_type: ControllerTypeWhether the provider keeps a persistent subprocess or spawns per turn.
launch_args: &'static [&'static str]Complete CLI args for a single-turn (subprocess) invocation. The user prompt is written to the process’s stdin.
persistent_launch_args: Option<&'static [&'static str]>CLI args for persistent (long-running) mode.
None when controller_type is Subprocess.
resume_flag: Option<&'static str>Flag passed to resume a prior session, e.g. "--resume".
None when the provider does not support simple-flag resume.
session_id_field: &'static strJSON field name in the CLI’s init event that carries the session /
thread ID, e.g. "session_id" or "thread_id".
styled_output_format: &'static strOutput format produced by the CLI in styled / streaming mode.
auth_config_dir_env_var: &'static strEnvironment variable that redirects the provider’s config / auth
directory, e.g. "CLAUDE_CONFIG_DIR".
auth_dir_name: &'static strSub-directory name under {dataDir}/auth/, e.g. "claude".
auth_extra_env: &'static [(&'static str, &'static str)]Extra environment variables required for auth isolation.
Each entry is a (key, value) pair.
unset_env: &'static [&'static str]Environment variables that must be unset before launching the CLI (guards against nested-session issues, etc.).
npm_package: &'static strnpm package name used for local installation, e.g.
"@anthropic-ai/claude-code".
pinned_version: &'static strVersion string passed to npm install, e.g. "latest" or "0.116.0".
icon: &'static strIcon identifier used by the frontend.
docs_url: &'static strURL of the provider’s documentation.
Implementations§
Source§impl ProviderConfig
impl ProviderConfig
Sourcepub fn controller_type_str(&self) -> &'static str
pub fn controller_type_str(&self) -> &'static str
Return the controller type as the string used in block metadata.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ProviderConfig
impl RefUnwindSafe for ProviderConfig
impl Send for ProviderConfig
impl Sync for ProviderConfig
impl Unpin for ProviderConfig
impl UnwindSafe for ProviderConfig
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.