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