Skip to main content

Client

Struct Client 

Source
pub struct Client {
    pub default_address: Option<Arc<String>>,
    pub default_signature: Option<Arc<String>>,
    /* private fields */
}
Expand description

The viewer HTTP client. Constructed once at process startup; all send_* methods take &self so the client is shared across the app via Arc<Client>.

Fields§

§default_address: Option<Arc<String>>

Fallback address used when a send_* call’s address is None. Set from the constructor’s address argument, or from VIEWER_ADDRESS if address is None and the env feature is enabled.

§default_signature: Option<Arc<String>>

Fallback signature used when a send_* call’s signature is None. Set from the constructor’s signature argument, or from VIEWER_SIGNATURE if signature is None and the env feature is enabled.

Implementations§

Source§

impl Client

Source

pub fn new( http_client: Client, address: Option<impl Into<String>>, signature: Option<impl Into<String>>, backoff_current_interval: Duration, backoff_initial_interval: Duration, backoff_randomization_factor: f64, backoff_multiplier: f64, backoff_max_interval: Duration, backoff_max_elapsed_time: Duration, ) -> Self

Construct a new client and spawn its background task.

address / signature defaults: an explicit Some(...) wins. When None, and the env feature is enabled, falls back to the VIEWER_ADDRESS / VIEWER_SIGNATURE env vars. When both the argument and the env var are missing, the client has no default — every send_* call must supply its own address, or the request is dropped.

Backoff parameters tune the backoff::ExponentialBackoff the background task uses for retry. max_elapsed_time caps how long the task keeps retrying a single failed request before giving up.

Source

pub async fn flush(self)

Closes the channel and awaits the background task. After this returns, every enqueued request has either succeeded or exhausted its retry budget. Takes self so the can’t-send-after-flush invariant is enforced by the type system.

Intended for short-lived consumers (e.g. the cli) that must drain in-flight POSTs before dropping the tokio runtime. Long- lived consumers (api server) can rely on the natural drop behavior — when the Client drops, tx drops, the bg task’s rx.recv() returns None, and the loop exits.

Source

pub fn send_agent_completion_begin( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, request: Arc<AgentCompletionCreateParams>, )

Source

pub fn send_agent_completion_continue( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, chunk: AgentCompletionChunk, )

Source

pub fn send_agent_completion_error( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, error: ResponseError, )

Source

pub fn send_function_execution_begin( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, request: Arc<FunctionExecutionCreateParams>, )

Source

pub fn send_function_execution_continue( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, chunk: FunctionExecutionChunk, )

Source

pub fn send_function_execution_error( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, error: ResponseError, )

Source

pub fn send_function_invention_recursive_begin( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, request: Arc<FunctionInventionRecursiveCreateParams>, )

Source

pub fn send_function_invention_recursive_continue( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, chunk: FunctionInventionRecursiveChunk, )

Source

pub fn send_function_invention_recursive_error( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, error: ResponseError, )

Source

pub fn send_laboratory_execution_begin( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, request: Arc<LaboratoryExecutionCreateParams>, )

Source

pub fn send_laboratory_execution_continue( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, chunk: LaboratoryExecutionChunk, )

Source

pub fn send_laboratory_execution_error( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, id: String, error: ResponseError, )

Source

pub fn send_agents_favorites_changed( &self, address: Option<Arc<String>>, signature: Option<Arc<String>>, notification: ChangedNotification, )

Enqueue an agents_favorites_changed notification. Posts to <address>/agents/favorites/changed. Fired by the cli’s agents favorites config {add,del,edit} handlers so any running viewer that exposes a useFavoriteAgents()-style hook can refresh its favorites list.

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

Source§

fn ast(self, begin: usize, end: usize) -> Spanned<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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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