Skip to main content

AppBuilder

Struct AppBuilder 

Source
pub struct AppBuilder { /* private fields */ }

Implementations§

Source§

impl AppBuilder

Source

pub async fn new( config_override: Option<&Path>, vault_override: Option<&str>, vault_key_override: Option<&Path>, vault_path_override: Option<&Path>, ) -> Result<Self, BootstrapError>

Resolve config, load it, create vault, resolve secrets.

CLI-provided overrides take priority over environment variables and config.

§Errors

Returns BootstrapError if config loading, validation, vault construction, secret resolution, or Qdrant URL parsing fails.

Source

pub fn qdrant_ops(&self) -> Option<&QdrantOps>

Source

pub fn config(&self) -> &Config

Source

pub fn config_mut(&mut self) -> &mut Config

Source

pub fn config_path(&self) -> &Path

Source

pub fn vault(&self) -> &dyn VaultProvider

Returns the vault provider used for secret resolution.

Retained as part of the public Bootstrap API for external callers that may inspect or override vault behavior at runtime.

Source

pub fn age_vault_arc(&self) -> Option<&Arc<RwLock<AgeVaultProvider>>>

Returns the shared age vault, if the backend is age.

Pass this to create_mcp_manager_with_vault so OAuth tokens are persisted across sessions.

Source

pub async fn build_provider( &self, ) -> Result<(AnyProvider, UnboundedSender<String>, UnboundedReceiver<String>), BootstrapError>

§Errors

Returns BootstrapError if provider creation or health check fails.

Source

pub fn auto_budget_tokens(&self, provider: &AnyProvider) -> usize

Source

pub async fn build_memory( &self, provider: &AnyProvider, ) -> Result<SemanticMemory, BootstrapError>

§Errors

Returns BootstrapError if SQLite cannot be initialized or if vector_backend = "Qdrant" but qdrant_ops is None (invariant violation — should not happen if AppBuilder::new succeeded).

Source

pub async fn build_skill_matcher( &self, provider: &AnyProvider, meta: &[&SkillMeta], memory: &SemanticMemory, ) -> Option<SkillMatcherBackend>

Source

pub fn build_registry(&self) -> SkillRegistry

Source

pub fn skill_paths(&self) -> Vec<PathBuf>

Source

pub fn managed_skills_dir() -> PathBuf

Source

pub fn build_watchers(&self) -> WatcherBundle

Source

pub fn build_shutdown() -> (Sender<bool>, Receiver<bool>)

Source

pub fn embedding_model(&self) -> String

Source

pub fn build_summary_provider(&self) -> Option<AnyProvider>

Source

pub fn build_quarantine_provider( &self, ) -> Option<(AnyProvider, QuarantineConfig)>

Build the quarantine summarizer provider when security.content_isolation.quarantine.enabled = true.

Returns None when quarantine is disabled or provider resolution fails. Emits a tracing::warn on resolution failure (quarantine silently disabled).

Source

pub fn build_judge_provider(&self) -> Option<AnyProvider>

Build a dedicated provider for the judge detector when detector_mode = judge.

Returns None when mode is Regex or judge_model is empty (primary provider used). Emits a tracing::warn when mode is Judge but no model is specified.

Source

pub fn build_feedback_classifier( &self, primary: &AnyProvider, ) -> Option<LlmClassifier>

Build an LlmClassifier for detector_mode = "model" feedback detection.

Resolves feedback_provider from [[llm.providers]] registry. Pass the session’s primary provider as primary for fallback when feedback_provider is empty. Returns None with a warning on resolution failure — never fails startup.

Source

pub fn build_probe_provider(&self) -> Option<AnyProvider>

Build a dedicated provider for compaction probe LLM calls.

Returns None when probe_provider is empty (falls back to summary provider at call site). Emits a tracing::warn on resolution failure (summary/primary provider used as fallback).

Source

pub fn build_planner_provider(&self) -> Option<AnyProvider>

Build a dedicated provider for orchestration planner LLM calls.

Returns None when planner_provider is empty (falls back to primary provider at call site).

§Errors (logged, not propagated)

Emits a tracing::warn on resolution failure; primary provider is used as fallback.

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

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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: 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: 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, 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