1pub mod admin;
14mod core;
15mod error;
16mod plugin_binding;
17pub(crate) mod process_admin;
18mod prompt_layer;
19#[cfg(feature = "rlm")]
20pub mod rlm;
21pub mod scenario_contracts;
22mod session;
23mod support;
24#[cfg(all(test, feature = "rlm"))]
25mod tests;
26pub mod turn;
27pub mod usage;
28
29pub use crate::admin::{
30 AdvancedToolAdmin, Completions, CoreTriggerAdmin, PluginOperations, SessionCommandAdmin,
31 SessionTriggerAdmin, ToolAdmin,
32};
33pub use crate::core::{LashCore, LashCoreBuilder, SessionDeleteReport};
34pub use crate::error::{EmbedError, Result};
35pub use crate::plugin_binding::PluginBinding;
36pub use crate::prompt_layer::PromptLayerSink;
37pub use crate::session::{
38 EnqueueTurnBuilder, LashSession, ObservableSession, ParkedSession, SessionBuilder,
39 SessionConfigPatch,
40};
41pub use crate::turn::{
42 QueuedTurnBuilder, TurnActivityFanout, TurnBuilder, TurnOutput, TurnResult, TurnStream,
43 message_role, message_text,
44};
45pub use lash_core::{
46 AwaitEventKey, AwaitEventWaitIdentity, DurabilityTier, ExecutionSummary,
47 ExternalCompletionError, InputItem, LlmCallRecord, ModelLimits, ModelSpec, PendingTurnInput,
48 PendingTurnInputCancelOutcome, PendingTurnInputCancelResult, PendingTurnInputCancelTarget,
49 PendingTurnInputSuffixCancelOutcome, PluginStack, Resolution, ResolveOutcome, SessionCommand,
50 SessionCommandReceipt, SessionCreateRequest, SessionSpec, SessionStartPoint, TurnActivity,
51 TurnActivityId, TurnActivitySink, TurnAddress, TurnAttach, TurnCancelOriginHint,
52 TurnCancelOutcome, TurnCancelReceipt, TurnCancelRequest, TurnCancellationEvidence, TurnCause,
53 TurnEvent, TurnFinish, TurnInput, TurnOutcome, TurnStop, TurnTerminal, TurnWorkDriver,
54};
55pub use tokio_util::sync::CancellationToken;
59
60pub mod prelude {
64 pub use crate::{
65 AdvancedToolAdmin, CoreTriggerAdmin, EmbedError, EnqueueTurnBuilder, ExecutionSummary,
66 InputItem, LashCore, LashCoreBuilder, LashSession, ModelLimits, ModelSpec,
67 ObservableSession, ParkedSession, PendingTurnInputCancelOutcome, PluginBinding,
68 PluginOperations, PluginStack, PromptLayerSink, QueuedTurnBuilder, Result, SessionBuilder,
69 SessionCommand, SessionCommandAdmin, SessionCommandReceipt, SessionConfigPatch,
70 SessionCreateRequest, SessionDeleteReport, SessionSpec, SessionStartPoint,
71 SessionTriggerAdmin, ToolAdmin, TurnActivity, TurnActivityFanout, TurnActivityId,
72 TurnActivitySink, TurnBuilder, TurnCause, TurnEvent, TurnFinish, TurnInput, TurnOutcome,
73 TurnOutput, TurnResult, TurnStop, TurnStream, message_role, message_text,
74 };
75}
76
77pub mod observe {
81 pub use crate::session::{
82 RemoteSessionObservationEventStream, RemoteSessionObservationStream,
83 RemoteSessionObservationStreamItem, RemoteSessionObservationSubscription,
84 SessionObservationStream, SessionObservationStreamItem,
85 };
86 pub use lash_core::{
87 InMemoryLiveReplayStore, InMemoryLiveReplayStoreConfig, LiveReplayGap, LiveReplayGapReason,
88 LiveReplayStore, SessionCursor, SessionObservation, SessionObservationEvent,
89 SessionObservationEventPayload, SessionObservationSubscription, SessionProcessEventKind,
90 SessionQueueEventKind, SessionResume, SessionRevision,
91 };
92}
93
94pub mod triggers {
98 pub use lash_core::{
99 LashSchema, TriggerCommand, TriggerCommandOutcome, TriggerDeliveryEmitOutcome,
100 TriggerDeliveryEmitReport, TriggerDeliveryReservation, TriggerDeliveryReservationStatus,
101 TriggerEffectResult, TriggerEmitReport, TriggerEvent, TriggerEventType,
102 TriggerMutationDisposition, TriggerMutationReceipt, TriggerOccurrenceFilter,
103 TriggerOccurrenceRecord, TriggerOccurrenceRequest, TriggerOperationError,
104 TriggerOwnerScope, TriggerRegistration, TriggerStore, TriggerSubscriptionDraft,
105 TriggerSubscriptionFilter, TriggerSubscriptionRecord, TriggerTargetSummary,
106 empty_trigger_source_key,
107 };
108}
109
110pub mod tools {
111 pub use lash_core::{
112 CancelHint, PendingCompletion, PreparedToolCall, TimeoutBehavior, ToolActivation,
113 ToolArgumentProjectionPolicy, ToolCall, ToolCallOutput, ToolCallRecord, ToolContext,
114 ToolContract, ToolDefinition, ToolExecutionGrant, ToolFailureClass, ToolManifest,
115 ToolOutputContract, ToolPrepareCall, ToolPrepareContext, ToolProvider, ToolResult,
116 ToolSourceHandle, ToolTriggerClient,
117 };
118 pub use lash_core::{
119 PLUGIN_TOOL_SOURCE_ID, ToolId, ToolRestoreReport, ToolState, ToolStateEntry,
120 };
121 #[cfg(feature = "rlm")]
122 pub use lash_lashlang_runtime::{
123 CataloguePreviewEntry, CataloguePreviewOptions, DEFAULT_CATALOGUE_PREVIEW_CALL_NAME_LIMIT,
124 DEFAULT_CATALOGUE_PREVIEW_MODULE_LIMIT, LASHLANG_TOOL_BINDING_KEY, LashlangToolBinding,
125 RemoteToolGrantLashlangExt, ToolDefinitionLashlangExt, ToolManifestLashlangExt,
126 catalogue_preview_contribution, catalogue_preview_contribution_for_entries,
127 catalogue_preview_contribution_for_entries_with_options,
128 catalogue_preview_contribution_for_manifests, catalogue_preview_contribution_with_options,
129 catalogue_preview_entries_from_catalog_records, catalogue_preview_entries_from_manifests,
130 catalogue_preview_entry_from_catalog_record, catalogue_preview_entry_from_manifest,
131 };
132 #[cfg(feature = "rlm")]
133 pub use lash_lashlang_runtime::{
134 DeferredResolutionLinkKey, DeferredResolutionRecord, DeferredToolResolver,
135 Resolution as DeferredToolResolution, SharedDeferredToolResolver,
136 ToolGrant as DeferredToolGrant,
137 };
138 pub use lash_tool_support::{StaticToolExecute, StaticToolProvider};
142}
143
144pub mod direct {
145 pub use lash_core::llm::types::{
146 AttachmentSource, LlmEventSender, LlmOutputPart, LlmStreamEvent, LlmTerminalReason,
147 LlmUsage, ProviderFileScope,
148 };
149 pub use lash_core::{
150 DirectCompletion, DirectJsonSchema, DirectLlmClient, DirectLlmCompletion, DirectLlmError,
151 DirectLlmResult, DirectMessage, DirectOutputSpec, DirectPart, DirectRequest, DirectRole,
152 };
153}
154
155pub mod persistence {
156 pub use lash_core::CheckpointKind;
157 pub use lash_core::FileAttachmentStore;
158 pub use lash_core::runtime::{
159 DeliveryPolicy, InMemorySessionStore, InMemorySessionStoreFactory, MergeKey,
160 PendingTurnInputClaimDiagnostics, PendingTurnInputDraft, QueuedWorkBatch,
161 QueuedWorkBatchDraft, QueuedWorkClaim, QueuedWorkClaimBoundary, QueuedWorkClass,
162 QueuedWorkCompletion, QueuedWorkItem, QueuedWorkPayload, RuntimeSessionState,
163 SessionStoreCreateRequest, SessionStoreFactory, SlotPolicy, TurnInputCheckpointBoundary,
164 TurnInputClaim, TurnInputCompletion, TurnInputIngress, TurnInputState,
165 };
166 pub use lash_core::store::queued_work;
167 pub use lash_core::store::{
168 GraphCommitDelta, HydratedSessionCheckpoint, PersistedSessionRead, RuntimeCommit,
169 RuntimeCommitResult, RuntimeTurnCommitStamp, SessionCheckpoint, SessionHead,
170 SessionHeadMeta, load_persisted_session_state, load_persisted_session_state_active_path,
171 };
172 pub use lash_core::{
173 AttachmentReclamationReport, AttachmentRootSet, AttachmentStore, InMemoryAttachmentStore,
174 InMemoryProcessExecutionEnvStore, ProcessExecutionEnvStore, SessionAttachmentStore,
175 StoredBlobRef, reclaim_unreferenced_attachments,
176 };
177 pub use lash_core::{
178 BlobRef, GcReport, LeaseOwnerIdentity, LeaseOwnerLiveness, PersistedSessionConfig,
179 PersistedTurnState, ProtocolEvent, QueuedWorkStore, RuntimePersistence, SessionCommitStore,
180 SessionExecutionLease, SessionExecutionLeaseClaimOutcome, SessionExecutionLeaseCompletion,
181 SessionExecutionLeaseFence, SessionExecutionLeaseStore, SessionGraph, SessionHistoryRecord,
182 SessionMeta, SessionNodeRecord, SessionReadScope, SessionReadView, SessionRelation,
183 StoreError, StoreMaintenance, TurnInputStore, VacuumReport,
184 };
185 #[cfg(feature = "rlm")]
186 pub use lash_lashlang_runtime::{InMemoryLashlangArtifactStore, LashlangArtifactStore};
187}
188
189pub mod plugins {
190 pub use lash_core::PluginDirective;
191 pub use lash_core::PluginOptions;
192 pub use lash_core::plugin::{
193 AfterToolCallHook, AfterTurnHook, AssistantResponseHook, AssistantResponseHookContext,
194 AssistantResponseTransform, AssistantStreamHook, AssistantStreamHookContext,
195 AssistantStreamTransform, BeforeToolCallHook, BeforeTurnHook, CheckpointHook,
196 CheckpointHookContext, CompactionContext, ContextCompaction, ContextCompactor,
197 ContextError, PluginExtensionContribution, PluginSpecBuilder, StaticPluginFactory,
198 ToolCallHookContext, ToolResultHookContext,
199 };
200 pub use lash_core::{
201 PluginError, PluginFactory, PluginHost, PluginMessage, PluginRegistrar, PluginRuntimeEvent,
202 PluginSession, PluginSessionContext, PluginSpec, PluginSpecFactory, PromptHookContext,
203 SessionPlugin, ToolCatalogContribution, TurnHookContext, TurnResultHookContext,
204 };
205 pub use lash_plugin_tool_output_budget::{
206 ToolOutputBudgetConfig, ToolOutputBudgetMode, ToolOutputBudgetPluginFactory,
207 tool_output_budget_stack as runtime_plugin_stack,
208 };
209}
210
211pub mod messages {
212 pub use lash_core::{Message, MessageRole};
213}
214
215pub mod remote {
222 pub use lash_remote_protocol::{
223 REMOTE_PROTOCOL_VERSION, RemoteProtocolError, ensure_protocol_version,
224 };
225
226 pub mod llm {
229 pub use lash_remote_protocol::llm::{
230 RemoteAttachmentRef, RemoteAttachmentSource, RemoteAttachmentTypeMetadata,
231 RemoteDiagnostic, RemoteExecutionEvidence, RemoteGenerationOptions,
232 RemoteLlmContentBlock, RemoteLlmMessage, RemoteLlmOutputPart, RemoteLlmOutputSpec,
233 RemoteLlmRequest, RemoteLlmRequestScope, RemoteLlmResponse, RemoteLlmRole,
234 RemoteLlmTerminalReason, RemoteLlmToolChoice, RemoteLlmToolSpec, RemoteModelCapability,
235 RemoteModelIntent, RemoteProviderFailureKind, RemoteProviderFileScope,
236 RemoteProviderMetadata, RemoteProviderReasoningReplay, RemoteProviderReplayMeta,
237 RemoteReasoningCapability, RemoteReasoningDisableEncoding, RemoteReasoningEncoding,
238 RemoteReasoningSelection, RemoteResponseTextMeta, RemoteSchemaProjectionOverride,
239 };
240 }
241
242 pub mod observations {
245 pub use lash_remote_protocol::observations::{
246 RemoteLiveReplayGap, RemoteLiveReplayGapReason, RemoteSessionCursor,
247 RemoteSessionObservation, RemoteSessionObservationEvent,
248 RemoteSessionObservationEventPayload, RemoteSessionProcessEventKind,
249 RemoteSessionQueueEventKind,
250 };
251 }
252
253 pub mod processes {
257 pub use lash_remote_protocol::processes::{
258 RemoteAbandonEvidence, RemoteAbandonRequest, RemoteAbandonWriter,
259 RemoteObservedProcess, RemoteObservedProcessEvent, RemotePersistProcessEnvRequest,
260 RemotePersistProcessEnvResult, RemoteProcessAwaitOutput, RemoteProcessAwaitRequest,
261 RemoteProcessAwaitResult, RemoteProcessCancelRequest, RemoteProcessCancelResult,
262 RemoteProcessDefinitionIdentity, RemoteProcessEvent, RemoteProcessEventSemantics,
263 RemoteProcessEventSemanticsSpec, RemoteProcessEventType, RemoteProcessEventsRequest,
264 RemoteProcessEventsResponse, RemoteProcessExecutionEnvRef,
265 RemoteProcessExecutionEnvSpec, RemoteProcessExecutionPolicy, RemoteProcessExternalRef,
266 RemoteProcessHandleDescriptor, RemoteProcessInput, RemoteProcessLifecycleStatus,
267 RemoteProcessListFilter, RemoteProcessListResponse, RemoteProcessModelLimits,
268 RemoteProcessModelSpec, RemoteProcessOriginator, RemoteProcessPluginOptions,
269 RemoteProcessProvenance, RemoteProcessSignalRequest, RemoteProcessSignalResult,
270 RemoteProcessStartGrant, RemoteProcessStartRequest, RemoteProcessStartResult,
271 RemoteProcessStarted, RemoteProcessStatus, RemoteProcessStatusFilter,
272 RemoteProcessSummary, RemoteProcessTerminalSemantics, RemoteProcessTerminalSpec,
273 RemoteProcessTerminalState, RemoteProcessValueSelector, RemoteProcessWaitKind,
274 RemoteProcessWaitState, RemoteProcessWake, RemoteProcessWakeDedupeKey,
275 RemoteProcessWakeSpec, RemoteProcessWorkItem, RemoteProcessWorkSnapshot,
276 RemoteRecoveryDisposition, RemoteRuntimeEffectKind, RemoteRuntimeInvocation,
277 RemoteRuntimeReplay, RemoteRuntimeScope, RemoteRuntimeSubject, RemoteSessionScope,
278 RemoteToolFailureClass,
279 };
280 }
281
282 pub mod prompt {
284 pub use lash_remote_protocol::prompt::{
285 RemotePromptBuiltin, RemotePromptContribution, RemotePromptContributionGate,
286 RemotePromptLayer, RemotePromptSlot, RemotePromptSlotLayer, RemotePromptTemplate,
287 RemotePromptTemplateEntry, RemotePromptTemplateSection,
288 };
289 }
290
291 pub mod tools {
293 pub use lash_remote_protocol::registry_errors::{
294 RemoteToolRegistry, assert_remote_tool_registry_reopenable,
295 };
296 pub use lash_remote_protocol::tools::{
297 RemoteToolActivation, RemoteToolArgumentProjectionPolicy, RemoteToolGrant,
298 RemoteToolOutputContract, RemoteToolRetryPolicy,
299 };
300 }
301
302 pub mod triggers {
305 pub use lash_remote_protocol::triggers::{
306 RemoteTriggerDeliveryEmitOutcome, RemoteTriggerDeliveryEmitReport,
307 RemoteTriggerEmitReport, RemoteTriggerInputBinding, RemoteTriggerInputTemplate,
308 RemoteTriggerListSubscriptionsResponse, RemoteTriggerOccurrenceRecord,
309 RemoteTriggerOccurrenceRequest, RemoteTriggerRegisterSubscriptionRequest,
310 RemoteTriggerRegisterSubscriptionResult, RemoteTriggerRegistration,
311 RemoteTriggerSubscriptionDraft, RemoteTriggerSubscriptionFilter,
312 RemoteTriggerSubscriptionRecord, RemoteTriggerTargetSummary,
313 };
314 }
315
316 pub mod turn_input {
319 pub use lash_remote_protocol::turn_input::{
320 RemoteInputItem, RemoteProtocolTurnOptions, RemoteTurnInput, RemoteTurnRequest,
321 };
322 }
323
324 pub mod turn_control {
326 pub use lash_remote_protocol::turn_control::{
327 RemoteTurnCancelOutcome, RemoteTurnCancelReceipt, RemoteTurnCancelRequest,
328 RemoteTurnCancellationEvidence, RemoteTurnControlDurabilityTier,
329 };
330 }
331
332 pub mod turn_result {
335 pub use lash_remote_protocol::turn_result::{
336 RemoteAssistantOutput, RemoteAssistantOutputState, RemoteCausalRef,
337 RemoteExecutionSummary, RemoteToolCallOutcome, RemoteToolCallSummary, RemoteTurnFinish,
338 RemoteTurnIssue, RemoteTurnOutcome, RemoteTurnResult, RemoteTurnStatus, RemoteTurnStop,
339 RemoteTurnUsageSummary,
340 };
341 }
342
343 pub mod usage {
345 pub use lash_remote_protocol::usage_activity::{
346 RemoteTokenLedgerEntry, RemoteTurnActivity, RemoteTurnEvent, RemoteUsage,
347 };
348 }
349}
350
351pub mod process {
352 pub use crate::admin::SessionProcessAdmin;
353 pub use crate::process_admin::Processes;
354 pub use lash_core::{
355 AbandonEvidence, AbandonRequest, AbandonWriter, ObservedProcess, ObservedProcessEvent,
356 ObservedWorkItem, ProcessAttach, ProcessAwaitOutput, ProcessAwaiter, ProcessCancelAbility,
357 ProcessCancelAllRequest, ProcessCancelRequest, ProcessCancelSource, ProcessCancelSummary,
358 ProcessChangeCursor, ProcessChangeHub, ProcessCompletionAuthority, ProcessEvent,
359 ProcessEventAppendRequest, ProcessEventAppendResult, ProcessEventSink, ProcessEventType,
360 ProcessExecutionContext, ProcessExecutionEnvRef, ProcessExecutionEnvSpec,
361 ProcessExternalRef, ProcessHandleDescriptor, ProcessHandleGrant, ProcessHandleSummary,
362 ProcessIdentity, ProcessInput, ProcessLease, ProcessLeaseClaimOutcome,
363 ProcessLeaseCompletion, ProcessLifecycleStatus, ProcessListFilter, ProcessListMode,
364 ProcessLiveReferenceSummary, ProcessOpScope, ProcessProvenance, ProcessPruneReport,
365 ProcessRecord, ProcessRegistration, ProcessRegistry, ProcessRunHandle, ProcessRuntimeHost,
366 ProcessService, ProcessSessionDeleteReport, ProcessStartOptions, ProcessStartRequest,
367 ProcessStarted, ProcessStatus, ProcessStatusFilter, ProcessTerminalState, ProcessWake,
368 ProcessWakeDedupeKey, ProcessWakeDelivery, ProcessWakeSpec, ProcessWorkDriver,
369 ProcessWorkObserver, ProcessWorkSnapshot, RecoveryDisposition, SessionScope,
370 SessionScopeId, ToolSessionProcessAdmin, watch_process_registry,
371 watch_process_registry_with_sink,
372 };
373 #[cfg(feature = "rlm")]
374 pub use lash_lashlang_runtime::{
375 LASHLANG_ENGINE_KIND, LashlangProcessInput, lashlang_process_event_types,
376 lashlang_process_signal_event_types,
377 };
378}
379
380pub mod durability {
381 pub use lash_core::{
382 DurableProcessWorker, DurableProcessWorkerConfig, EffectHost, InlineEffectHost,
383 LeaseTimings, LeaseTimingsError, ProcessDrainReport, Residency, RuntimeEnvironment,
384 RuntimeHostConfig, TerminationPolicy,
385 };
386}
387
388pub mod runtime {
389 pub use crate::core::AdvancedLashCoreBuilder;
390 pub use lash_core::runtime::{
391 AssembledTurn, AwaitEventResolver, DirectCompletionClient, EmbeddedRuntimeHost, EventSink,
392 ExecutionScope, InlineRuntimeEffectController, LashRuntime, LlmAttachmentSpec,
393 LlmRequestSpec, NoopEventSink, NoopTurnActivitySink, ProcessCommand, ProcessEffectOutcome,
394 QueuedWorkDriver, QueuedWorkRunHandle, QueuedWorkRunRequest, RuntimeEffectCommand,
395 RuntimeEffectController, RuntimeEffectControllerError, RuntimeEffectEnvelope,
396 RuntimeEffectKind, RuntimeEffectLocalExecutor, RuntimeEffectOutcome,
397 RuntimeEnvironmentBuilder, RuntimeError, RuntimeErrorCode, RuntimeHandle,
398 RuntimeInvocation, RuntimeObservation, RuntimeScope, RuntimeTurnPhase,
399 RuntimeTurnPhaseProbe, ScopedEffectController, TurnContext,
400 };
401 pub use lash_core::{
402 PersistentRuntimeServices, ProtocolSessionExtensionHandle, ProtocolTurnOptions,
403 SessionHandle, SessionPolicy, SessionSnapshot, render_turn_causes_prompt,
404 };
405}
406
407pub mod prompt {
408 pub use lash_core::{
409 PromptBuiltin, PromptContribution, PromptContributionGate, PromptLayer, PromptSlot,
410 PromptTemplate, PromptTemplateEntry, PromptTemplateSection, default_prompt_template,
411 };
412}
413
414pub mod tracing {
415 pub use lash_core::{
416 JsonlTraceSink, TraceAttachment, TraceBranchSelection, TraceContentBlock,
417 TraceEffectEnvelopeDiffEntry, TraceEffectEnvelopeDiffEvent, TraceEffectEnvelopeDiffValue,
418 TraceError, TraceEvent, TraceLabelMetadata, TraceLlmMessage, TraceLlmRequest,
419 TraceLlmResponse, TracePromptComponent, TraceProviderRequestEvent,
420 TraceProviderStreamEvent, TraceRecord, TraceRuntimeScope, TraceRuntimeStreamEvent,
421 TraceRuntimeSubject, TraceSinkError, TraceTokenUsage, TraceToolSpec,
422 };
423 #[cfg(feature = "otel-trace")]
424 pub use lash_core::{OtelTraceOptions, OtelTraceSink};
425 #[cfg(feature = "rlm")]
426 pub use lash_lashlang_runtime::{
427 TraceLashlangChildExecution, TraceLashlangEdgeSelection, TraceLashlangExecutionEvent,
428 TraceLashlangExecutionIdentity, TraceLashlangGraph, TraceLashlangGraphChildLink,
429 TraceLashlangGraphEdge, TraceLashlangGraphNode, TraceLashlangGraphStore, TraceLashlangMap,
430 TraceLashlangMapEdge, TraceLashlangMapNode, TraceLashlangNodeStatus, TraceLashlangStatus,
431 };
432 pub use lash_trace::{StderrTraceSink, TeeTraceSink, TraceContext, TraceLevel, TraceSink};
433}
434
435#[cfg(any(test, feature = "testing"))]
438pub mod testing;
439
440pub mod provider {
441 pub use lash_core::ProviderFailureKind;
444 pub use lash_core::provider::{
445 ProviderRateLimitPolicy, ProviderReliability, ProviderRetryPolicy,
446 };
447 pub use lash_core::{
448 CacheControlDialect, LlmTimeouts, ModelCapability, Provider, ProviderComponents,
449 ProviderFactory, ProviderHandle, ProviderOptions, ProviderSpec, ReasoningCapability,
450 ReasoningDisableEncoding, ReasoningEncoding, ReasoningSelection, RequestTimeout,
451 StreamTermination,
452 };
453 pub use lash_core::{
457 ExecutionEvidence, LlmRequest, LlmRequestScope, LlmResponse, LlmTransportError,
458 };
459}