pub struct ServerStateConfig {
pub journal_dir: PathBuf,
pub shared_memgine: Option<Arc<Mutex<MemgineEngine>>>,
pub inference: Option<Arc<InferenceEngine>>,
pub a2a_runtime: Option<Arc<Runtime>>,
pub a2a_store: Option<Arc<dyn TaskStore>>,
pub a2a_card_source: Option<Arc<AgentCardSource>>,
pub approval_gate: Option<ApprovalGate>,
}Expand description
standalone car-server binary uses ServerState::standalone
which calls with_config under the hood.
Fields§
§journal_dir: PathBufOptional pre-constructed memgine engine. When None, each
create_session call builds a fresh engine; embedders that want
to share a single engine across sessions can supply a clone of
their Arc<Mutex<MemgineEngine>> here.
inference: Option<Arc<InferenceEngine>>Optional pre-constructed inference engine.
a2a_runtime: Option<Arc<Runtime>>Optional embedder-supplied A2A runtime. Used by the in-core
A2aDispatcher to execute peer-driven proposals. When None,
the dispatcher uses a fresh Runtime with register_agent_basics
— peer agents see CAR’s built-in tools and nothing else,
matching the behaviour of the standalone start_a2a_listener.
a2a_store: Option<Arc<dyn TaskStore>>Optional embedder-supplied A2A task store. When None,
defaults to InMemoryTaskStore. tokhn-style embedders that
want a polling-friendly persistent store plug it in here.
a2a_card_source: Option<Arc<AgentCardSource>>Optional embedder-supplied agent card factory. When None,
the dispatcher serves a card built from the A2A runtime’s
tool schemas at construction time, advertising its public URL
as ws://127.0.0.1:9100/ (the WS surface the dispatcher itself
is reachable on).
approval_gate: Option<ApprovalGate>Approval-gate policy. When None, the dispatcher uses
ApprovalGate::default (gate ON, the macOS-automation
surface gated, 60s timeout). Pass
ApprovalGate::disabled to opt out — only appropriate
when no untrusted caller can reach the WS port.
Implementations§
Source§impl ServerStateConfig
impl ServerStateConfig
Sourcepub fn new(journal_dir: PathBuf) -> Self
pub fn new(journal_dir: PathBuf) -> Self
Minimal config suitable for the standalone car-server binary: only the journal dir is required; everything else is lazily constructed at first use.
pub fn with_inference(self, engine: Arc<InferenceEngine>) -> Self
Sourcepub fn with_a2a_runtime(self, runtime: Arc<Runtime>) -> Self
pub fn with_a2a_runtime(self, runtime: Arc<Runtime>) -> Self
Plug in an embedder-supplied runtime for the A2A dispatcher.
Use case: tokhn-daemon wants peers to see its OPA preflight
tooling, not just CAR’s register_agent_basics defaults.
Sourcepub fn with_a2a_store(self, store: Arc<dyn TaskStore>) -> Self
pub fn with_a2a_store(self, store: Arc<dyn TaskStore>) -> Self
Plug in an embedder-supplied task store for the A2A dispatcher. Use case: tokhn’s polling-friendly persistent store keyed by their session id.
Sourcepub fn with_a2a_card_source(self, source: Arc<AgentCardSource>) -> Self
pub fn with_a2a_card_source(self, source: Arc<AgentCardSource>) -> Self
Plug in an embedder-supplied agent card factory. The factory
is invoked on every agent/getAuthenticatedExtendedCard
dispatch, so embedders can reflect runtime tool changes.
Sourcepub fn with_approval_gate(self, gate: ApprovalGate) -> Self
pub fn with_approval_gate(self, gate: ApprovalGate) -> Self
Override the approval-gate policy. Pass
ApprovalGate::disabled to skip the gate entirely (only
appropriate when no untrusted caller can reach the WS port);
pass a customised ApprovalGate to add or remove methods
or to change the timeout.
Auto Trait Implementations§
impl Freeze for ServerStateConfig
impl !RefUnwindSafe for ServerStateConfig
impl Send for ServerStateConfig
impl Sync for ServerStateConfig
impl Unpin for ServerStateConfig
impl UnsafeUnpin for ServerStateConfig
impl !UnwindSafe for ServerStateConfig
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<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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 more