Skip to main content

AgentCredentialResolver

Struct AgentCredentialResolver 

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

Hot-reloadable resolver. Bindings + warnings + strict level live in ArcSwap/ArcSwap/atomic so the runtime can swap them without re-creating the Arc<AgentCredentialResolver> every plugin/tool holds.

Implementations§

Source§

impl AgentCredentialResolver

Source

pub fn empty() -> Self

Source

pub fn resolve( &self, agent_id: &str, channel: Channel, ) -> Result<CredentialHandle, ResolveError>

Lookup the outbound handle for (agent, channel). Never panics on missing bindings — returns ResolveError::Unbound so the calling tool can surface a clean error to the LLM.

Source

pub fn version(&self) -> u64

Source

pub fn warnings(&self) -> Vec<String>

Source

pub fn strict(&self) -> StrictLevel

Source

pub fn replace_state( &self, new_bindings: HashMap<AgentId, HashMap<Channel, CredentialHandle>>, new_warnings: Vec<String>, new_strict: StrictLevel, )

Atomic hot-reload — replaces bindings, warnings, and strict level in one swap. Existing CredentialHandles already issued to in-flight tool calls keep working (handles are by-value clones, the resolver only mediates lookup of future calls).

Source

pub fn build( agents: &[AgentCredentialsInput], stores: &CredentialStores, strict: StrictLevel, ) -> Result<Self, Vec<BuildError>>

Validate every agent binding against the given stores. Returns Ok with the resolver plus soft warnings, or Err with every accumulated invariant violation so the operator can fix them in one edit.

Source

pub fn rebuild( &self, agents: &[AgentCredentialsInput], stores: &CredentialStores, strict: StrictLevel, ) -> Result<(), Vec<BuildError>>

Reload entry point — runs build against fresh inputs and atomically swaps the new state into self. Used by the admin endpoint and integration tests.

Trait Implementations§

Source§

impl Debug for AgentCredentialResolver

Source§

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

Formats the value using the given formatter. Read more

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

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