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, LlmResponse,
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, ProcessAwaitOutput,
332 ProcessCancelAbility, ProcessCancelAllRequest, ProcessCancelRequest, ProcessCancelSource,
333 ProcessCancelSummary, ProcessEvent, ProcessEventAppendRequest, ProcessEventAppendResult,
334 ProcessEventType, ProcessExecutionContext, ProcessExecutionEnvRef, ProcessExecutionEnvSpec,
335 ProcessExternalRef, ProcessHandleDescriptor, ProcessHandleGrant, ProcessHandleSummary,
336 ProcessIdentity, ProcessInput, ProcessLease, ProcessLeaseClaimOutcome,
337 ProcessLeaseCompletion, ProcessLifecycleStatus, ProcessListFilter, ProcessListMode,
338 ProcessOpScope, ProcessProvenance, ProcessRecord, ProcessRegistration, ProcessRegistry,
339 ProcessRunHandle, ProcessRuntimeHost, ProcessService, ProcessSessionDeleteReport,
340 ProcessStartOptions, ProcessStartRequest, ProcessStatus, ProcessStatusFilter,
341 ProcessTerminalState, ProcessWake, ProcessWakeDedupeKey, ProcessWakeDelivery,
342 ProcessWakeSpec, ProcessWorkDriver, ProcessWorkObserver, ProcessWorkSnapshot, SessionScope,
343 SessionScopeId,
344 };
345 #[cfg(feature = "rlm")]
346 pub use lash_lashlang_runtime::{
347 LASHLANG_ENGINE_KIND, LashlangProcessInput, lashlang_process_event_types,
348 lashlang_process_signal_event_types,
349 };
350}
351
352pub mod durability {
353 pub use lash_core::{
354 DurableProcessWorker, DurableProcessWorkerConfig, EffectHost, InlineEffectHost,
355 LeaseTimings, LeaseTimingsError, Residency, RuntimeEnvironment, RuntimeHostConfig,
356 TerminationPolicy,
357 };
358}
359
360pub mod runtime {
361 pub use crate::core::AdvancedLashCoreBuilder;
362 pub use lash_core::runtime::{
363 AssembledTurn, AwaitEventResolver, DirectCompletionClient, EmbeddedRuntimeHost, EventSink,
364 ExecutionScope, InlineRuntimeEffectController, LashRuntime, LlmAttachmentSpec,
365 LlmRequestSpec, NoopEventSink, NoopTurnActivitySink, ProcessCommand, ProcessEffectOutcome,
366 QueuedWorkDriver, QueuedWorkRunHandle, QueuedWorkRunRequest, RuntimeEffectCommand,
367 RuntimeEffectController, RuntimeEffectControllerError, RuntimeEffectEnvelope,
368 RuntimeEffectKind, RuntimeEffectLocalExecutor, RuntimeEffectOutcome,
369 RuntimeEnvironmentBuilder, RuntimeError, RuntimeErrorCode, RuntimeHandle,
370 RuntimeInvocation, RuntimeObservation, RuntimeScope, RuntimeTurnPhase,
371 RuntimeTurnPhaseProbe, ScopedEffectController, TurnContext,
372 };
373 pub use lash_core::{
374 PersistentRuntimeServices, ProtocolSessionExtensionHandle, ProtocolTurnOptions,
375 SessionHandle, SessionPolicy, SessionSnapshot, render_turn_causes_prompt,
376 };
377}
378
379pub mod prompt {
380 pub use lash_core::{
381 PromptBuiltin, PromptContribution, PromptContributionGate, PromptLayer, PromptSlot,
382 PromptTemplate, PromptTemplateEntry, PromptTemplateSection, default_prompt_template,
383 };
384}
385
386pub mod tracing {
387 pub use lash_core::{
388 JsonlTraceSink, TraceAttachment, TraceBranchSelection, TraceContentBlock, TraceError,
389 TraceEvent, TraceLabelMetadata, TraceLlmMessage, TraceLlmRequest, TraceLlmResponse,
390 TracePromptComponent, TraceProviderStreamEvent, TraceRecord, TraceRuntimeScope,
391 TraceRuntimeStreamEvent, TraceRuntimeSubject, TraceSinkError, TraceTokenUsage,
392 TraceToolSpec,
393 };
394 #[cfg(feature = "otel-trace")]
395 pub use lash_core::{OtelTraceOptions, OtelTraceSink};
396 #[cfg(feature = "rlm")]
397 pub use lash_lashlang_runtime::{
398 TraceLashlangChildExecution, TraceLashlangEdgeSelection, TraceLashlangExecutionEvent,
399 TraceLashlangExecutionIdentity, TraceLashlangGraph, TraceLashlangGraphChildLink,
400 TraceLashlangGraphEdge, TraceLashlangGraphNode, TraceLashlangGraphStore, TraceLashlangMap,
401 TraceLashlangMapEdge, TraceLashlangMapNode, TraceLashlangNodeStatus, TraceLashlangStatus,
402 };
403 pub use lash_trace::{StderrTraceSink, TeeTraceSink, TraceContext, TraceLevel, TraceSink};
404}
405
406#[cfg(all(any(test, feature = "testing"), feature = "rlm"))]
409pub mod testing;
410
411pub mod provider {
412 pub use lash_core::ProviderFailureKind;
415 pub use lash_core::provider::{
416 ProviderRateLimitPolicy, ProviderReliability, ProviderRetryPolicy,
417 };
418 pub use lash_core::{
419 LlmTimeouts, Provider, ProviderComponents, ProviderFactory, ProviderHandle,
420 ProviderModelPolicy, ProviderOptions, ProviderSpec, RequestTimeout, StaticModelPolicy,
421 };
422}