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, TriggerDeliveryEmitOutcome, TriggerDeliveryEmitReport,
100 TriggerDeliveryReservation, TriggerDeliveryReservationStatus, TriggerEmitReport,
101 TriggerEvent, TriggerEventType, TriggerOccurrenceFilter, TriggerOccurrenceRecord,
102 TriggerOccurrenceRequest, TriggerRegistration, TriggerStore, TriggerSubscriptionDraft,
103 TriggerSubscriptionFilter, TriggerSubscriptionRecord, TriggerTargetSummary,
104 empty_trigger_source_key,
105 };
106}
107
108pub mod tools {
109 pub use lash_core::{
110 CancelHint, PendingCompletion, PreparedToolCall, TimeoutBehavior, ToolActivation,
111 ToolArgumentProjectionPolicy, ToolCall, ToolCallOutput, ToolCallRecord, ToolContext,
112 ToolContract, ToolDefinition, ToolExecutionGrant, ToolFailureClass, ToolManifest,
113 ToolOutputContract, ToolPrepareCall, ToolPrepareContext, ToolProvider, ToolResult,
114 ToolScheduling, ToolSourceHandle, ToolTriggerClient,
115 };
116 pub use lash_core::{
117 PLUGIN_TOOL_SOURCE_ID, ToolId, ToolRestoreReport, ToolState, ToolStateEntry,
118 };
119 #[cfg(feature = "rlm")]
120 pub use lash_lashlang_runtime::{
121 CataloguePreviewEntry, CataloguePreviewOptions, DEFAULT_CATALOGUE_PREVIEW_CALL_NAME_LIMIT,
122 DEFAULT_CATALOGUE_PREVIEW_MODULE_LIMIT, LASHLANG_TOOL_BINDING_KEY, LashlangToolBinding,
123 RemoteToolGrantLashlangExt, ToolDefinitionLashlangExt, ToolManifestLashlangExt,
124 catalogue_preview_contribution, catalogue_preview_contribution_for_entries,
125 catalogue_preview_contribution_for_entries_with_options,
126 catalogue_preview_contribution_for_manifests, catalogue_preview_contribution_with_options,
127 catalogue_preview_entries_from_catalog_records, catalogue_preview_entries_from_manifests,
128 catalogue_preview_entry_from_catalog_record, catalogue_preview_entry_from_manifest,
129 };
130 #[cfg(feature = "rlm")]
131 pub use lash_lashlang_runtime::{
132 DeferredResolutionLinkKey, DeferredResolutionRecord, DeferredToolResolver,
133 Resolution as DeferredToolResolution, SharedDeferredToolResolver,
134 ToolGrant as DeferredToolGrant,
135 };
136 pub use lash_tool_support::{StaticToolExecute, StaticToolProvider};
140}
141
142pub mod direct {
143 pub use lash_core::llm::types::{
144 LlmAttachment, LlmEventSender, LlmOutputPart, LlmStreamEvent, LlmTerminalReason, LlmUsage,
145 };
146 pub use lash_core::{
147 DirectCompletion, DirectJsonSchema, DirectLlmClient, DirectLlmCompletion, DirectLlmError,
148 DirectLlmResult, DirectMessage, DirectOutputSpec, DirectPart, DirectRequest, DirectRole,
149 };
150}
151
152pub mod persistence {
153 pub use lash_core::CheckpointKind;
154 pub use lash_core::FileAttachmentStore;
155 pub use lash_core::runtime::{
156 DeliveryPolicy, InMemorySessionStore, InMemorySessionStoreFactory, MergeKey,
157 PendingTurnInputClaimDiagnostics, PendingTurnInputDraft, QueuedWorkBatch,
158 QueuedWorkBatchDraft, QueuedWorkClaim, QueuedWorkClaimBoundary, QueuedWorkClass,
159 QueuedWorkCompletion, QueuedWorkItem, QueuedWorkPayload, RuntimeSessionState,
160 SessionStoreCreateRequest, SessionStoreFactory, SlotPolicy, TurnInputCheckpointBoundary,
161 TurnInputClaim, TurnInputCompletion, TurnInputIngress, TurnInputState,
162 };
163 pub use lash_core::store::queued_work;
164 pub use lash_core::store::{
165 GraphCommitDelta, HydratedSessionCheckpoint, PersistedSessionRead, RuntimeCommit,
166 RuntimeCommitResult, RuntimeTurnCommitStamp, SessionCheckpoint, SessionHead,
167 SessionHeadMeta, load_persisted_session_state, load_persisted_session_state_active_path,
168 };
169 pub use lash_core::{
170 AttachmentReclamationReport, AttachmentRootSet, AttachmentStore, InMemoryAttachmentStore,
171 InMemoryProcessExecutionEnvStore, ProcessExecutionEnvStore, SessionAttachmentStore,
172 StoredBlobRef, reclaim_unreferenced_attachments,
173 };
174 pub use lash_core::{
175 BlobRef, GcReport, LeaseOwnerIdentity, LeaseOwnerLiveness, PersistedSessionConfig,
176 PersistedTurnState, ProtocolEvent, QueuedWorkStore, RuntimePersistence, SessionCommitStore,
177 SessionExecutionLease, SessionExecutionLeaseClaimOutcome, SessionExecutionLeaseCompletion,
178 SessionExecutionLeaseFence, SessionExecutionLeaseStore, SessionGraph, SessionHistoryRecord,
179 SessionMeta, SessionNodeRecord, SessionReadScope, SessionReadView, SessionRelation,
180 StoreError, StoreMaintenance, TurnInputStore, VacuumReport,
181 };
182 #[cfg(feature = "rlm")]
183 pub use lash_lashlang_runtime::{InMemoryLashlangArtifactStore, LashlangArtifactStore};
184}
185
186pub mod plugins {
187 pub use lash_core::PluginDirective;
188 pub use lash_core::PluginOptions;
189 pub use lash_core::plugin::{
190 AfterToolCallHook, AfterTurnHook, AssistantResponseHook, AssistantResponseHookContext,
191 AssistantResponseTransform, AssistantStreamHook, AssistantStreamHookContext,
192 AssistantStreamTransform, BeforeToolCallHook, BeforeTurnHook, CheckpointHook,
193 CheckpointHookContext, CompactionContext, ContextCompaction, ContextCompactor,
194 ContextError, PluginExtensionContribution, PluginSpecBuilder, StaticPluginFactory,
195 ToolCallHookContext, ToolResultHookContext,
196 };
197 pub use lash_core::{
198 PluginError, PluginFactory, PluginHost, PluginMessage, PluginRegistrar, PluginRuntimeEvent,
199 PluginSession, PluginSessionContext, PluginSpec, PluginSpecFactory, PromptHookContext,
200 SessionPlugin, ToolCatalogContribution, TurnHookContext, TurnResultHookContext,
201 };
202 pub use lash_plugin_tool_output_budget::{
203 ToolOutputBudgetConfig, ToolOutputBudgetMode, ToolOutputBudgetPluginFactory,
204 tool_output_budget_stack as runtime_plugin_stack,
205 };
206}
207
208pub mod messages {
209 pub use lash_core::{Message, MessageRole};
210}
211
212pub mod remote {
219 pub use lash_remote_protocol::{
220 REMOTE_PROTOCOL_VERSION, RemoteProtocolError, ensure_protocol_version,
221 };
222
223 pub mod llm {
226 pub use lash_remote_protocol::llm::{
227 RemoteAttachmentRef, RemoteDiagnostic, RemoteExecutionEvidence,
228 RemoteGenerationOptions, RemoteLlmAttachment, RemoteLlmContentBlock, RemoteLlmMessage,
229 RemoteLlmOutputPart, RemoteLlmOutputSpec, RemoteLlmRequest, RemoteLlmRequestScope,
230 RemoteLlmResponse, RemoteLlmRole, RemoteLlmTerminalReason, RemoteLlmToolChoice,
231 RemoteLlmToolSpec, RemoteModelCapability, RemoteModelIntent, RemoteProviderFailureKind,
232 RemoteProviderMetadata, RemoteProviderReasoningReplay, RemoteProviderReplayMeta,
233 RemoteReasoningCapability, RemoteReasoningDisableEncoding, RemoteReasoningEncoding,
234 RemoteReasoningSelection, RemoteResponseTextMeta, RemoteSchemaProjectionOverride,
235 };
236 }
237
238 pub mod observations {
241 pub use lash_remote_protocol::observations::{
242 RemoteLiveReplayGap, RemoteLiveReplayGapReason, RemoteSessionCursor,
243 RemoteSessionObservation, RemoteSessionObservationEvent,
244 RemoteSessionObservationEventPayload, RemoteSessionProcessEventKind,
245 RemoteSessionQueueEventKind,
246 };
247 }
248
249 pub mod processes {
253 pub use lash_remote_protocol::processes::{
254 RemoteAbandonEvidence, RemoteAbandonRequest, RemoteAbandonWriter,
255 RemoteObservedProcess, RemoteObservedProcessEvent, RemotePersistProcessEnvRequest,
256 RemotePersistProcessEnvResult, RemoteProcessAwaitOutput, RemoteProcessAwaitRequest,
257 RemoteProcessAwaitResult, RemoteProcessCancelRequest, RemoteProcessCancelResult,
258 RemoteProcessDefinitionIdentity, RemoteProcessEvent, RemoteProcessEventSemantics,
259 RemoteProcessEventSemanticsSpec, RemoteProcessEventType, RemoteProcessEventsRequest,
260 RemoteProcessEventsResponse, RemoteProcessExecutionEnvRef,
261 RemoteProcessExecutionEnvSpec, RemoteProcessExecutionPolicy, RemoteProcessExternalRef,
262 RemoteProcessHandleDescriptor, RemoteProcessInput, RemoteProcessLifecycleStatus,
263 RemoteProcessListFilter, RemoteProcessListResponse, RemoteProcessModelLimits,
264 RemoteProcessModelSpec, RemoteProcessOriginator, RemoteProcessPluginOptions,
265 RemoteProcessProvenance, RemoteProcessSignalRequest, RemoteProcessSignalResult,
266 RemoteProcessStartGrant, RemoteProcessStartRequest, RemoteProcessStartResult,
267 RemoteProcessStarted, RemoteProcessStatus, RemoteProcessStatusFilter,
268 RemoteProcessSummary, RemoteProcessTerminalSemantics, RemoteProcessTerminalSpec,
269 RemoteProcessTerminalState, RemoteProcessValueSelector, RemoteProcessWaitKind,
270 RemoteProcessWaitState, RemoteProcessWake, RemoteProcessWakeDedupeKey,
271 RemoteProcessWakeSpec, RemoteProcessWorkItem, RemoteProcessWorkSnapshot,
272 RemoteRecoveryDisposition, RemoteRuntimeEffectKind, RemoteRuntimeInvocation,
273 RemoteRuntimeReplay, RemoteRuntimeScope, RemoteRuntimeSubject, RemoteSessionScope,
274 RemoteToolFailureClass,
275 };
276 }
277
278 pub mod prompt {
280 pub use lash_remote_protocol::prompt::{
281 RemotePromptBuiltin, RemotePromptContribution, RemotePromptContributionGate,
282 RemotePromptLayer, RemotePromptSlot, RemotePromptSlotLayer, RemotePromptTemplate,
283 RemotePromptTemplateEntry, RemotePromptTemplateSection,
284 };
285 }
286
287 pub mod tools {
289 pub use lash_remote_protocol::registry_errors::{
290 RemoteToolRegistry, assert_remote_tool_registry_reopenable,
291 };
292 pub use lash_remote_protocol::tools::{
293 RemoteToolActivation, RemoteToolArgumentProjectionPolicy, RemoteToolGrant,
294 RemoteToolOutputContract, RemoteToolRetryPolicy, RemoteToolScheduling,
295 };
296 }
297
298 pub mod triggers {
301 pub use lash_remote_protocol::triggers::{
302 RemoteTriggerCancelSubscriptionRequest, RemoteTriggerCancelSubscriptionResult,
303 RemoteTriggerDeliveryEmitOutcome, RemoteTriggerDeliveryEmitReport,
304 RemoteTriggerEmitReport, RemoteTriggerInputBinding, RemoteTriggerInputTemplate,
305 RemoteTriggerListSubscriptionsResponse, RemoteTriggerOccurrenceRecord,
306 RemoteTriggerOccurrenceRequest, RemoteTriggerRegisterSubscriptionRequest,
307 RemoteTriggerRegisterSubscriptionResult, RemoteTriggerRegistration,
308 RemoteTriggerSubscriptionDraft, RemoteTriggerSubscriptionFilter,
309 RemoteTriggerSubscriptionRecord, RemoteTriggerTargetSummary,
310 };
311 }
312
313 pub mod turn_input {
316 pub use lash_remote_protocol::turn_input::{
317 RemoteInputItem, RemoteProtocolTurnOptions, RemoteTurnInput, RemoteTurnRequest,
318 };
319 }
320
321 pub mod turn_control {
323 pub use lash_remote_protocol::turn_control::{
324 RemoteTurnCancelOutcome, RemoteTurnCancelReceipt, RemoteTurnCancelRequest,
325 RemoteTurnCancellationEvidence, RemoteTurnControlDurabilityTier,
326 };
327 }
328
329 pub mod turn_result {
332 pub use lash_remote_protocol::turn_result::{
333 RemoteAssistantOutput, RemoteAssistantOutputState, RemoteCausalRef,
334 RemoteExecutionSummary, RemoteToolCallOutcome, RemoteToolCallSummary, RemoteTurnFinish,
335 RemoteTurnIssue, RemoteTurnOutcome, RemoteTurnResult, RemoteTurnStatus, RemoteTurnStop,
336 RemoteTurnUsageSummary,
337 };
338 }
339
340 pub mod usage {
342 pub use lash_remote_protocol::usage_activity::{
343 RemoteTokenLedgerEntry, RemoteTurnActivity, RemoteTurnEvent, RemoteUsage,
344 };
345 }
346}
347
348pub mod process {
349 pub use crate::admin::SessionProcessAdmin;
350 pub use crate::process_admin::Processes;
351 pub use lash_core::{
352 AbandonEvidence, AbandonRequest, AbandonWriter, ObservedProcess, ObservedProcessEvent,
353 ObservedWorkItem, ProcessAttach, ProcessAwaitOutput, ProcessAwaiter, ProcessCancelAbility,
354 ProcessCancelAllRequest, ProcessCancelRequest, ProcessCancelSource, ProcessCancelSummary,
355 ProcessChangeCursor, ProcessChangeHub, ProcessCompletionAuthority, ProcessEvent,
356 ProcessEventAppendRequest, ProcessEventAppendResult, ProcessEventSink, ProcessEventType,
357 ProcessExecutionContext, ProcessExecutionEnvRef, ProcessExecutionEnvSpec,
358 ProcessExternalRef, ProcessHandleDescriptor, ProcessHandleGrant, ProcessHandleSummary,
359 ProcessIdentity, ProcessInput, ProcessLease, ProcessLeaseClaimOutcome,
360 ProcessLeaseCompletion, ProcessLifecycleStatus, ProcessListFilter, ProcessListMode,
361 ProcessLiveReferenceSummary, ProcessOpScope, ProcessProvenance, ProcessPruneReport,
362 ProcessRecord, ProcessRegistration, ProcessRegistry, ProcessRunHandle, ProcessRuntimeHost,
363 ProcessService, ProcessSessionDeleteReport, ProcessStartOptions, ProcessStartRequest,
364 ProcessStarted, ProcessStatus, ProcessStatusFilter, ProcessTerminalState, ProcessWake,
365 ProcessWakeDedupeKey, ProcessWakeDelivery, ProcessWakeSpec, ProcessWorkDriver,
366 ProcessWorkObserver, ProcessWorkSnapshot, RecoveryDisposition, SessionScope,
367 SessionScopeId, ToolSessionProcessAdmin, watch_process_registry,
368 watch_process_registry_with_sink,
369 };
370 #[cfg(feature = "rlm")]
371 pub use lash_lashlang_runtime::{
372 LASHLANG_ENGINE_KIND, LashlangProcessInput, lashlang_process_event_types,
373 lashlang_process_signal_event_types,
374 };
375}
376
377pub mod durability {
378 pub use lash_core::{
379 DurableProcessWorker, DurableProcessWorkerConfig, EffectHost, InlineEffectHost,
380 LeaseTimings, LeaseTimingsError, ProcessDrainReport, Residency, RuntimeEnvironment,
381 RuntimeHostConfig, TerminationPolicy,
382 };
383}
384
385pub mod runtime {
386 pub use crate::core::AdvancedLashCoreBuilder;
387 pub use lash_core::runtime::{
388 AssembledTurn, AwaitEventResolver, DirectCompletionClient, EmbeddedRuntimeHost, EventSink,
389 ExecutionScope, InlineRuntimeEffectController, LashRuntime, LlmAttachmentSpec,
390 LlmRequestSpec, NoopEventSink, NoopTurnActivitySink, ProcessCommand, ProcessEffectOutcome,
391 QueuedWorkDriver, QueuedWorkRunHandle, QueuedWorkRunRequest, RuntimeEffectCommand,
392 RuntimeEffectController, RuntimeEffectControllerError, RuntimeEffectEnvelope,
393 RuntimeEffectKind, RuntimeEffectLocalExecutor, RuntimeEffectOutcome,
394 RuntimeEnvironmentBuilder, RuntimeError, RuntimeErrorCode, RuntimeHandle,
395 RuntimeInvocation, RuntimeObservation, RuntimeScope, RuntimeTurnPhase,
396 RuntimeTurnPhaseProbe, ScopedEffectController, TurnContext,
397 };
398 pub use lash_core::{
399 PersistentRuntimeServices, ProtocolSessionExtensionHandle, ProtocolTurnOptions,
400 SessionHandle, SessionPolicy, SessionSnapshot, render_turn_causes_prompt,
401 };
402}
403
404pub mod prompt {
405 pub use lash_core::{
406 PromptBuiltin, PromptContribution, PromptContributionGate, PromptLayer, PromptSlot,
407 PromptTemplate, PromptTemplateEntry, PromptTemplateSection, default_prompt_template,
408 };
409}
410
411pub mod tracing {
412 pub use lash_core::{
413 JsonlTraceSink, TraceAttachment, TraceBranchSelection, TraceContentBlock, TraceError,
414 TraceEvent, TraceLabelMetadata, TraceLlmMessage, TraceLlmRequest, TraceLlmResponse,
415 TracePromptComponent, TraceProviderStreamEvent, TraceRecord, TraceRuntimeScope,
416 TraceRuntimeStreamEvent, TraceRuntimeSubject, TraceSinkError, TraceTokenUsage,
417 TraceToolSpec,
418 };
419 #[cfg(feature = "otel-trace")]
420 pub use lash_core::{OtelTraceOptions, OtelTraceSink};
421 #[cfg(feature = "rlm")]
422 pub use lash_lashlang_runtime::{
423 TraceLashlangChildExecution, TraceLashlangEdgeSelection, TraceLashlangExecutionEvent,
424 TraceLashlangExecutionIdentity, TraceLashlangGraph, TraceLashlangGraphChildLink,
425 TraceLashlangGraphEdge, TraceLashlangGraphNode, TraceLashlangGraphStore, TraceLashlangMap,
426 TraceLashlangMapEdge, TraceLashlangMapNode, TraceLashlangNodeStatus, TraceLashlangStatus,
427 };
428 pub use lash_trace::{StderrTraceSink, TeeTraceSink, TraceContext, TraceLevel, TraceSink};
429}
430
431#[cfg(any(test, feature = "testing"))]
434pub mod testing;
435
436pub mod provider {
437 pub use lash_core::ProviderFailureKind;
440 pub use lash_core::provider::{
441 ProviderRateLimitPolicy, ProviderReliability, ProviderRetryPolicy,
442 };
443 pub use lash_core::{
444 CacheControlDialect, LlmTimeouts, ModelCapability, Provider, ProviderComponents,
445 ProviderFactory, ProviderHandle, ProviderOptions, ProviderSpec, ReasoningCapability,
446 ReasoningDisableEncoding, ReasoningEncoding, ReasoningSelection, RequestTimeout,
447 StreamTermination,
448 };
449 pub use lash_core::{
453 ExecutionEvidence, LlmRequest, LlmRequestScope, LlmResponse, LlmTransportError,
454 };
455}