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