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