pub struct StartProviderAuthReq {
pub provider_id: String,
pub into_bundle_id: Option<String>,
pub direct_account: bool,
pub existing_account_id: String,
pub cli_path: String,
pub auth_login_args: Vec<String>,
pub auth_check_args: Vec<String>,
pub auth_env: HashMap<String, String>,
pub requires_tty: bool,
}Fields§
§provider_id: String§into_bundle_id: Option<String>Vestigial — bundle mode (a successful auth adding the account to
a named group of accounts) was retired in Phase 4c of
SPEC_PRESET_TO_BUNDLE_REFACTOR_2026_07_02.md. Kept on the wire
shape only; direct_account is always true in practice.
direct_account: boolAlways true in practice — AuthFlowController (the sole
frontend caller) hardcodes directAccount: true. A successful
auth persists a standalone IdentityAccount; the actual
agent<->account link is written later, once the agent exists, by
the launch-flow reconcile.
existing_account_id: StringDirect-account reconnect: non-empty to refresh an already-
linked account’s tokens in place (same isolation dir, same
account row updated). Empty mints a fresh account id. Ignored
unless direct_account is set.
cli_path: StringResolved CLI path. The frontend calls resolvecli first to
install / locate the provider’s CLI; the resulting path is
passed here. Keeps the provider table single-sourced in the
frontend.
auth_login_args: Vec<String>e.g. ["auth", "login"] from the provider definition’s
authLoginCommand field.
auth_check_args: Vec<String>e.g. ["auth", "status", "--json"] — used to confirm
authentication after the CLI emits its success line.
auth_env: HashMap<String, String>Env vars to inject at spawn time. Per-provider auth isolation env vars come here (CLAUDE_CONFIG_DIR, CODEX_HOME, GEMINI_CLI_HOME, etc.).
requires_tty: boolSpawn the auth login subprocess under a PTY (instead of plain
piped stdio). Required by providers whose auth subcommand
checks isatty() and refuses to run otherwise (currently
OpenClaw’s models auth login --provider <id>). The flag is
forwarded down to the CEF host’s run_cli_login which picks
the PTY branch when set.
Trait Implementations§
Source§impl Debug for StartProviderAuthReq
impl Debug for StartProviderAuthReq
Source§impl<'de> Deserialize<'de> for StartProviderAuthReq
impl<'de> Deserialize<'de> for StartProviderAuthReq
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for StartProviderAuthReq
impl Serialize for StartProviderAuthReq
Source§impl TS for StartProviderAuthReq
impl TS for StartProviderAuthReq
Source§type WithoutGenerics = StartProviderAuthReq
type WithoutGenerics = StartProviderAuthReq
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = StartProviderAuthReq
type OptionInnerType = StartProviderAuthReq
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributes§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all]. Read more§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export]. Read moreAuto Trait Implementations§
impl Freeze for StartProviderAuthReq
impl RefUnwindSafe for StartProviderAuthReq
impl Send for StartProviderAuthReq
impl Sync for StartProviderAuthReq
impl Unpin for StartProviderAuthReq
impl UnsafeUnpin for StartProviderAuthReq
impl UnwindSafe for StartProviderAuthReq
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§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