pub struct AppBuilder { /* private fields */ }Implementations§
Source§impl AppBuilder
impl AppBuilder
Sourcepub async fn new(
config_override: Option<&Path>,
vault_override: Option<&str>,
vault_key_override: Option<&Path>,
vault_path_override: Option<&Path>,
) -> Result<Self, BootstrapError>
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.
pub fn qdrant_ops(&self) -> Option<&QdrantOps>
pub fn config(&self) -> &Config
pub fn config_mut(&mut self) -> &mut Config
pub fn config_path(&self) -> &Path
Sourcepub fn vault(&self) -> &dyn VaultProvider
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.
Sourcepub fn age_vault_arc(&self) -> Option<&Arc<RwLock<AgeVaultProvider>>>
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.
Sourcepub async fn build_provider(
&self,
) -> Result<(AnyProvider, UnboundedSender<String>, UnboundedReceiver<String>), BootstrapError>
pub async fn build_provider( &self, ) -> Result<(AnyProvider, UnboundedSender<String>, UnboundedReceiver<String>), BootstrapError>
§Errors
Returns BootstrapError if provider creation or health check fails.
pub fn auto_budget_tokens(&self, provider: &AnyProvider) -> usize
Sourcepub async fn build_memory(
&self,
provider: &AnyProvider,
) -> Result<SemanticMemory, BootstrapError>
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).
pub async fn build_skill_matcher( &self, provider: &AnyProvider, meta: &[&SkillMeta], memory: &SemanticMemory, ) -> Option<SkillMatcherBackend>
pub fn build_registry(&self) -> SkillRegistry
pub fn skill_paths(&self) -> Vec<PathBuf>
pub fn managed_skills_dir() -> PathBuf
pub fn build_watchers(&self) -> WatcherBundle
pub fn build_shutdown() -> (Sender<bool>, Receiver<bool>)
pub fn embedding_model(&self) -> String
pub fn build_summary_provider(&self) -> Option<AnyProvider>
Sourcepub fn build_quarantine_provider(
&self,
) -> Option<(AnyProvider, QuarantineConfig)>
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).
Sourcepub fn build_judge_provider(&self) -> Option<AnyProvider>
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.
Sourcepub fn build_feedback_classifier(
&self,
primary: &AnyProvider,
) -> Option<LlmClassifier>
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.
Sourcepub fn build_probe_provider(&self) -> Option<AnyProvider>
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).
Sourcepub fn build_planner_provider(&self) -> Option<AnyProvider>
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§
impl Freeze for AppBuilder
impl !RefUnwindSafe for AppBuilder
impl Send for AppBuilder
impl Sync for AppBuilder
impl Unpin for AppBuilder
impl UnsafeUnpin for AppBuilder
impl !UnwindSafe for AppBuilder
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request