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