pub struct LashCoreBuilder { /* private fields */ }Implementations§
Source§impl LashCoreBuilder
impl LashCoreBuilder
pub fn protocol_plugin(self, plugin: Arc<dyn PluginFactory>) -> Self
pub fn provider(self, provider: ProviderHandle) -> Self
pub fn model(self, model: ModelSpec) -> Self
pub fn max_turns(self, max_turns: usize) -> Self
pub fn session_spec(self, spec: SessionSpec) -> Self
Sourcepub fn store_factory(self, store_factory: Arc<dyn SessionStoreFactory>) -> Self
pub fn store_factory(self, store_factory: Arc<dyn SessionStoreFactory>) -> Self
Configure a factory that can create a persistence store for any root session opened from this core.
The factory must honor SessionStoreCreateRequest::session_id and
return a store for that specific session. Do not use this to wrap one
pre-opened root store; pass root-only stores with
LashCore::session(...).store(store) instead.
Sourcepub fn child_store_factory(
self,
store_factory: Arc<dyn SessionStoreFactory>,
) -> Self
pub fn child_store_factory( self, store_factory: Arc<dyn SessionStoreFactory>, ) -> Self
Configure the persistence factory used by managed child sessions, such as local subagents.
Child factories must return a distinct store bound to the requested
child session id. Hosts that pass an explicit root store with
SessionBuilder::store should set this when child sessions need
persistence.
pub fn attachment_store( self, attachment_store: Arc<dyn AttachmentStore>, ) -> Self
pub fn process_env_store( self, process_env_store: Arc<dyn ProcessExecutionEnvStore>, ) -> Self
Sourcepub fn effect_host(self, effect_host: Arc<dyn EffectHost>) -> Self
pub fn effect_host(self, effect_host: Arc<dyn EffectHost>) -> Self
Set the deployment effect host — the durability boundary every operation
crosses. Pass InlineEffectHost
for in-process execution, or a workflow-backed host for durable
execution.
pub fn tools(self, tools: Arc<dyn ToolProvider>) -> Self
pub fn plugin(self, plugin: Arc<dyn PluginFactory>) -> Self
pub fn plugins(self, stack: PluginStack) -> Self
pub fn configure_plugins(self, configure: impl FnOnce(&mut PluginStack)) -> Self
pub fn trace_sink(self, trace_sink: Arc<dyn TraceSink>) -> Self
pub fn trace_jsonl_path(self, path: impl Into<PathBuf>) -> Self
pub fn trace_level(self, trace_level: TraceLevel) -> Self
pub fn trace_context(self, trace_context: TraceContext) -> Self
pub fn termination(self, termination: TerminationPolicy) -> Self
pub fn residency(self, residency: Residency) -> Self
Sourcepub fn lease_timings(self, lease_timings: LeaseTimings) -> Self
pub fn lease_timings(self, lease_timings: LeaseTimings) -> Self
Configure the lease timing capability for every durable single-writer lane this deployment claims: session execution leases, turn-input and queued-work claims, and process leases.
This is the failover-latency vs false-takeover-risk knob. Like
residency it is an operational deployment decision,
so it lives on the main builder tier rather than behind
advanced. Construct the value with
LeaseTimings::new, which enforces
ttl >= 3 * renew_interval. Effect hosts accept the same type at
construction (e.g. SQLite/Postgres effect-replay options), so a host can
share one timing decision across both boundaries.
Sourcepub fn live_replay_store(
self,
live_replay_store: Arc<dyn LiveReplayStore>,
) -> Self
pub fn live_replay_store( self, live_replay_store: Arc<dyn LiveReplayStore>, ) -> Self
Configure the bounded live replay buffer used by session observation
cursors. This is best-effort reconnect recovery only; durable state
still comes from the session store and SessionReadView.
pub fn build(self) -> Result<LashCore>
pub fn advanced(self) -> AdvancedLashCoreBuilder
pub fn process_registry( self, process_registry: Arc<dyn ProcessRegistry>, ) -> Self
Sourcepub fn process_event_sink(self, sink: Arc<dyn ProcessEventSink>) -> Self
pub fn process_event_sink(self, sink: Arc<dyn ProcessEventSink>) -> Self
Install a best-effort, host-facing ProcessEventSink on the inline
process registry.
Each appended process event is pushed to the sink after its durable
write, in per-process append order. This is freshness, not truth: it
never buffers or retries, terminal events are not emitted through it
(observe completion via the await seam), and consumers reconcile from
the durable event log. See ProcessEventSink for the full contract.
Applies to the inline registry path (Self::process_registry); a host
that supplies its own ProcessWorkDriver
installs the sink through the driver’s constructor instead.
pub fn trigger_store(self, store: Arc<dyn TriggerStore>) -> Self
Sourcepub fn process_work_driver(self, driver: ProcessWorkDriver) -> Self
pub fn process_work_driver(self, driver: ProcessWorkDriver) -> Self
Configure an externally owned process work runner.
Durable hosts construct a ProcessWorkDriver from the same process
registry and wake handle used by their deployment runner, then pass it
here. The driver registry becomes the core’s process registry and no
inline runner is spawned.
Sourcepub fn queued_work_driver(self, driver: QueuedWorkDriver) -> Self
pub fn queued_work_driver(self, driver: QueuedWorkDriver) -> Self
Configure an externally owned queued-work driver.