1pub mod admin;
14mod core;
15mod error;
16mod plugin_binding;
17mod prompt_layer;
18#[cfg(feature = "rlm")]
19pub mod rlm;
20mod session;
21mod support;
22#[cfg(all(test, feature = "rlm"))]
23mod tests;
24pub mod turn;
25pub mod usage;
26
27pub use crate::admin::{
28 AdvancedToolAdmin, Completions, CoreTriggerAdmin, PluginOperations, SessionCommandAdmin,
29 SessionTriggerAdmin, ToolAdmin,
30};
31pub use crate::core::{
32 LashCore, LashCoreBuilder, SessionDeleteReport, StandardCore, StandardCoreBuilder,
33};
34#[cfg(feature = "rlm")]
35pub use crate::core::{RlmCore, RlmCoreBuilder};
36pub use crate::error::{EmbedError, Result};
37pub use crate::plugin_binding::PluginBinding;
38pub use crate::prompt_layer::PromptLayerSink;
39pub use crate::session::{
40 EnqueueTurnBuilder, LashSession, ObservableSession, SessionBuilder, SessionConfigPatch,
41};
42pub use crate::turn::{
43 QueuedTurnBuilder, TurnActivityFanout, TurnBuilder, TurnOutput, TurnResult, TurnStream,
44 message_role, message_text,
45};
46pub use lash_core::{
47 AwaitEventKey, AwaitEventWaitIdentity, ExternalCompletionError, InputItem, ModelLimits,
48 ModelSpec, PluginStack, Resolution, ResolveOutcome, SessionCommand, SessionCommandReceipt,
49 SessionSpec, TurnActivity, TurnActivityId, TurnActivitySink, TurnEvent, TurnInput,
50};
51pub use tokio_util::sync::CancellationToken;
55
56pub mod prelude {
60 pub use crate::{
61 AdvancedToolAdmin, CoreTriggerAdmin, EmbedError, EnqueueTurnBuilder, InputItem, LashCore,
62 LashCoreBuilder, LashSession, ModelLimits, ModelSpec, ObservableSession, PluginBinding,
63 PluginOperations, PluginStack, PromptLayerSink, QueuedTurnBuilder, Result, SessionBuilder,
64 SessionCommand, SessionCommandAdmin, SessionCommandReceipt, SessionConfigPatch,
65 SessionDeleteReport, SessionSpec, SessionTriggerAdmin, StandardCore, StandardCoreBuilder,
66 ToolAdmin, TurnActivity, TurnActivityFanout, TurnActivityId, TurnActivitySink, TurnBuilder,
67 TurnEvent, TurnInput, TurnOutput, TurnResult, TurnStream, message_role, message_text,
68 };
69 #[cfg(feature = "rlm")]
70 pub use crate::{RlmCore, RlmCoreBuilder};
71}
72
73pub mod observe {
77 pub use crate::session::{
78 RemoteSessionObservationEventStream, RemoteSessionObservationStream,
79 RemoteSessionObservationStreamItem, RemoteSessionObservationSubscription,
80 SessionObservationStream, SessionObservationStreamItem,
81 };
82 pub use lash_core::{
83 LiveReplayGap, LiveReplayGapReason, SessionCursor, SessionObservation,
84 SessionObservationEvent, SessionObservationEventPayload, SessionObservationSubscription,
85 SessionProcessEventKind, SessionQueueEventKind, SessionResume, SessionRevision,
86 };
87}
88
89pub mod triggers {
93 pub use lash_core::{
94 LashSchema, TriggerEmitReport, TriggerEvent, TriggerEventType, TriggerOccurrenceRequest,
95 TriggerRegistration, TriggerSubscriptionDraft, TriggerSubscriptionFilter,
96 TriggerTargetSummary, empty_trigger_source_key,
97 };
98}
99
100pub mod tools {
101 pub use lash_core::{
102 CancelHint, PendingCompletion, PreparedToolCall, TimeoutBehavior, ToolActivation,
103 ToolArgumentProjectionPolicy, ToolCall, ToolCallOutput, ToolCallRecord, ToolContext,
104 ToolContract, ToolDefinition, ToolDurableEffects, ToolExecutionGrant, ToolManifest,
105 ToolOutputContract, ToolPrepareCall, ToolPrepareContext, ToolProvider, ToolResult,
106 ToolScheduling, ToolSourceHandle, ToolTriggerClient,
107 };
108 pub use lash_core::{PLUGIN_TOOL_SOURCE_ID, ToolRestoreReport, ToolState, ToolStateEntry};
109 #[cfg(feature = "rlm")]
110 pub use lash_lashlang_runtime::{
111 DeferredResolutionRecord, DeferredToolResolver, Resolution as DeferredToolResolution,
112 SharedDeferredToolResolver, ToolGrant as DeferredToolGrant,
113 };
114 #[cfg(feature = "rlm")]
115 pub use lash_lashlang_runtime::{
116 LASHLANG_TOOL_BINDING_KEY, LashlangToolBinding, RemoteToolGrantLashlangExt,
117 ToolDefinitionLashlangExt, ToolManifestLashlangExt,
118 };
119 pub use lash_tool_support::{StaticToolExecute, StaticToolProvider};
123}
124
125pub mod direct {
126 pub use lash_core::llm::types::{
127 LlmAttachment, LlmEventSender, LlmOutputPart, LlmTerminalReason, LlmUsage,
128 };
129 pub use lash_core::{
130 DirectCompletion, DirectJsonSchema, DirectLlmClient, DirectLlmCompletion, DirectLlmError,
131 DirectMessage, DirectOutputSpec, DirectPart, DirectRequest, DirectRole, LlmResponse,
132 TokenUsage,
133 };
134}
135
136pub mod persistence {
137 pub use lash_core::FileAttachmentStore;
138 pub use lash_core::runtime::{
139 DeliveryPolicy, InMemorySessionStore, InMemorySessionStoreFactory, MergeKey,
140 QueuedWorkBatch, QueuedWorkBatchDraft, QueuedWorkClaim, QueuedWorkClaimBoundary,
141 QueuedWorkCompletion, QueuedWorkItem, QueuedWorkPayload, RuntimeSessionState,
142 SessionStoreCreateRequest, SessionStoreFactory, SlotPolicy,
143 };
144 pub use lash_core::store::queued_work;
145 pub use lash_core::store::{
146 GraphCommitDelta, HydratedSessionCheckpoint, PersistedSessionRead, RuntimeCommit,
147 RuntimeCommitResult, RuntimeTurnCommitStamp, SessionCheckpoint, SessionHead,
148 SessionHeadMeta, load_persisted_session_state, load_persisted_session_state_active_path,
149 };
150 pub use lash_core::{
151 AttachmentStore, InMemoryAttachmentStore, InMemoryProcessExecutionEnvStore,
152 ProcessExecutionEnvStore,
153 };
154 pub use lash_core::{
155 BlobRef, GcReport, PersistedSessionConfig, PersistedTurnState, ProtocolEvent,
156 RuntimePersistence, SessionEventRecord, SessionExecutionLease,
157 SessionExecutionLeaseCompletion, SessionExecutionLeaseFence, SessionGraph, SessionMeta,
158 SessionNodeRecord, SessionReadScope, SessionReadView, SessionRelation, StoreError,
159 TokenLedgerEntry, VacuumReport,
160 };
161 #[cfg(feature = "rlm")]
162 pub use lash_lashlang_runtime::{InMemoryLashlangArtifactStore, LashlangArtifactStore};
163}
164
165pub mod plugins {
166 pub use crate::plugin_binding::PluginBinding;
167 pub use lash_core::PluginDirective;
168 pub use lash_core::plugin::{
169 AfterToolCallHook, AfterTurnHook, AssistantResponseHook, AssistantResponseHookContext,
170 AssistantResponseTransform, AssistantStreamHook, AssistantStreamHookContext,
171 AssistantStreamTransform, BeforeToolCallHook, BeforeTurnHook, CheckpointHook,
172 CheckpointHookContext, CompactionContext, ContextCompaction, ContextCompactor,
173 ContextError, PluginExtensionContribution, PluginSpecBuilder, StaticPluginFactory,
174 ToolCallHookContext, ToolResultHookContext,
175 };
176 pub use lash_core::{
177 PluginError, PluginFactory, PluginHost, PluginMessage, PluginRegistrar, PluginRuntimeEvent,
178 PluginSession, PluginSessionContext, PluginSpec, PluginSpecFactory, PromptHookContext,
179 SessionPlugin, ToolCatalogContribution, TurnHookContext, TurnResultHookContext,
180 };
181 pub use lash_plugin_tool_output_budget::{
182 ToolOutputBudgetConfig, ToolOutputBudgetMode, ToolOutputBudgetPluginFactory,
183 tool_output_budget_stack as runtime_plugin_stack,
184 };
185}
186
187pub mod messages {
188 pub use lash_core::MessageRole;
189}
190
191pub mod remote {
192 pub use lash_remote_protocol::{
193 REMOTE_PROTOCOL_VERSION, RemoteAssistantOutput, RemoteAssistantOutputState,
194 RemoteAttachmentRef, RemoteCausalRef, RemoteDiagnostic, RemoteExecutionSummary,
195 RemoteGenerationOptions, RemoteInputItem, RemoteLiveReplayGap, RemoteLiveReplayGapReason,
196 RemoteLlmAttachment, RemoteLlmContentBlock, RemoteLlmMessage, RemoteLlmOutputPart,
197 RemoteLlmOutputSpec, RemoteLlmRequest, RemoteLlmRequestMetadata, RemoteLlmResponse,
198 RemoteLlmRole, RemoteLlmTerminalReason, RemoteLlmToolChoice, RemoteLlmToolSpec,
199 RemoteModelIntent, RemoteObservedProcess, RemoteObservedProcessEvent,
200 RemotePersistProcessEnvRequest, RemotePersistProcessEnvResult, RemoteProcessAwaitOutput,
201 RemoteProcessAwaitRequest, RemoteProcessAwaitResult, RemoteProcessCancelRequest,
202 RemoteProcessCancelResult, RemoteProcessDefinitionIdentity, RemoteProcessEvent,
203 RemoteProcessEventSemantics, RemoteProcessEventSemanticsSpec, RemoteProcessEventType,
204 RemoteProcessEventsRequest, RemoteProcessEventsResponse, RemoteProcessExecutionEnvRef,
205 RemoteProcessExecutionEnvSpec, RemoteProcessExecutionPolicy, RemoteProcessExternalRef,
206 RemoteProcessHandleDescriptor, RemoteProcessInput, RemoteProcessLifecycleStatus,
207 RemoteProcessListFilter, RemoteProcessListResponse, RemoteProcessModelLimits,
208 RemoteProcessModelSpec, RemoteProcessOriginator, RemoteProcessPluginOptions,
209 RemoteProcessProvenance, RemoteProcessSignalRequest, RemoteProcessSignalResult,
210 RemoteProcessStartGrant, RemoteProcessStartRequest, RemoteProcessStartResult,
211 RemoteProcessStatus, RemoteProcessStatusFilter, RemoteProcessSummary,
212 RemoteProcessTerminalSemantics, RemoteProcessTerminalSpec, RemoteProcessTerminalState,
213 RemoteProcessValueSelector, RemoteProcessWaitKind, RemoteProcessWaitState,
214 RemoteProcessWake, RemoteProcessWakeDedupeKey, RemoteProcessWakeSpec,
215 RemoteProcessWorkItem, RemoteProcessWorkSnapshot, RemotePromptBuiltin,
216 RemotePromptContribution, RemotePromptContributionGate, RemotePromptLayer,
217 RemotePromptSlot, RemotePromptSlotLayer, RemotePromptTemplate, RemotePromptTemplateEntry,
218 RemotePromptTemplateSection, RemoteProtocolError, RemoteProtocolTurnOptions,
219 RemoteProviderMetadata, RemoteProviderReasoningReplay, RemoteProviderReplayMeta,
220 RemoteResponseTextMeta, RemoteRuntimeEffectKind, RemoteRuntimeInvocation,
221 RemoteRuntimeReplay, RemoteRuntimeScope, RemoteRuntimeSubject,
222 RemoteSchemaProjectionOverride, RemoteSessionCursor, RemoteSessionObservation,
223 RemoteSessionObservationEvent, RemoteSessionObservationEventPayload,
224 RemoteSessionProcessEventKind, RemoteSessionQueueEventKind, RemoteSessionScope,
225 RemoteTokenLedgerEntry, RemoteToolActivation, RemoteToolArgumentProjectionPolicy,
226 RemoteToolCallOutcome, RemoteToolCallSummary, RemoteToolFailureClass, RemoteToolGrant,
227 RemoteToolOutputContract, RemoteToolRegistry, RemoteToolRetryPolicy, RemoteToolScheduling,
228 RemoteTriggerCancelSubscriptionRequest, RemoteTriggerCancelSubscriptionResult,
229 RemoteTriggerEmitReport, RemoteTriggerInputBinding, RemoteTriggerInputTemplate,
230 RemoteTriggerListSubscriptionsResponse, RemoteTriggerOccurrenceRecord,
231 RemoteTriggerOccurrenceRequest, RemoteTriggerRegisterSubscriptionRequest,
232 RemoteTriggerRegisterSubscriptionResult, RemoteTriggerRegistration,
233 RemoteTriggerSubscriptionDraft, RemoteTriggerSubscriptionFilter,
234 RemoteTriggerSubscriptionRecord, RemoteTriggerTargetSummary, RemoteTurnActivity,
235 RemoteTurnEvent, RemoteTurnFinish, RemoteTurnInput, RemoteTurnIssue, RemoteTurnOutcome,
236 RemoteTurnRequest, RemoteTurnResult, RemoteTurnStatus, RemoteTurnStop,
237 RemoteTurnUsageSummary, RemoteUsage, assert_remote_tool_registry_reopenable,
238 ensure_protocol_version,
239 };
240}
241
242pub mod process {
243 pub use crate::admin::{Processes, SessionProcessAdmin};
244 pub use lash_core::{
245 ObservedProcess, ObservedProcessEvent, ObservedWorkItem, ProcessAwaitOutput,
246 ProcessCancelAbility, ProcessCancelAllRequest, ProcessCancelRequest, ProcessCancelSource,
247 ProcessCancelSummary, ProcessEvent, ProcessEventAppendRequest, ProcessEventAppendResult,
248 ProcessEventType, ProcessExecutionContext, ProcessExecutionEnvRef, ProcessExecutionEnvSpec,
249 ProcessExternalRef, ProcessHandleDescriptor, ProcessHandleGrant, ProcessHandleSummary,
250 ProcessIdentity, ProcessInput, ProcessLease, ProcessLeaseCompletion,
251 ProcessLifecycleStatus, ProcessListFilter, ProcessListMode, ProcessOpScope, ProcessRecord,
252 ProcessRegistration, ProcessRegistry, ProcessRunHandle, ProcessRuntimeHost, ProcessService,
253 ProcessSessionDeleteReport, ProcessStartOptions, ProcessStartRequest, ProcessStatus,
254 ProcessStatusFilter, ProcessTerminalState, ProcessWake, ProcessWakeDedupeKey,
255 ProcessWakeDelivery, ProcessWakeSpec, ProcessWorkDriver, ProcessWorkObserver,
256 ProcessWorkSnapshot, SessionScope, SessionScopeId,
257 };
258 #[cfg(feature = "rlm")]
259 pub use lash_lashlang_runtime::{
260 LASHLANG_ENGINE_KIND, LASHLANG_TOOL_BINDING_KEY, LashlangProcessInput,
261 lashlang_process_event_types, lashlang_process_signal_event_types,
262 };
263}
264
265pub mod durability {
266 pub use lash_core::{
267 DurableProcessWorker, DurableProcessWorkerConfig, EffectHost, InlineEffectHost, Residency,
268 RuntimeEnvironment, RuntimeHostConfig, TerminationPolicy,
269 };
270}
271
272pub mod runtime {
273 pub use crate::core::AdvancedLashCoreBuilder;
274 pub use lash_core::runtime::{
275 AssembledTurn, DirectCompletionClient, EmbeddedRuntimeHost, EventSink, ExecutionScope,
276 InlineRuntimeEffectController, LashRuntime, LlmAttachmentSpec, LlmRequestSpec,
277 NoopEventSink, NoopTurnActivitySink, ProcessCommand, ProcessEffectOutcome,
278 QueuedWorkDriver, QueuedWorkRunHandle, QueuedWorkRunRequest, RuntimeEffectCommand,
279 RuntimeEffectController, RuntimeEffectControllerError, RuntimeEffectEnvelope,
280 RuntimeEffectKind, RuntimeEffectLocalExecutor, RuntimeEffectOutcome,
281 RuntimeEnvironmentBuilder, RuntimeError, RuntimeErrorCode, RuntimeHandle,
282 RuntimeInvocation, RuntimeObservation, RuntimeScope, RuntimeTurnPhase,
283 RuntimeTurnPhaseProbe, ScopedEffectController, TurnContext,
284 };
285 pub use lash_core::{
286 PersistentRuntimeServices, PluginMessage, ProtocolSessionExtensionHandle,
287 ProtocolTurnOptions, SessionHandle, SessionPolicy, SessionSnapshot, TurnCause, TurnFinish,
288 TurnOutcome, TurnStop, render_turn_causes_prompt,
289 };
290}
291
292pub mod prompt {
293 pub use lash_core::{
294 PromptBuiltin, PromptContribution, PromptContributionGate, PromptLayer, PromptSlot,
295 PromptTemplate, PromptTemplateEntry, PromptTemplateSection, default_prompt_template,
296 };
297}
298
299pub mod tracing {
300 pub use lash_core::{
301 JsonlTraceSink, TraceAttachment, TraceBranchSelection, TraceContentBlock, TraceError,
302 TraceEvent, TraceLabelMetadata, TraceLlmMessage, TraceLlmRequest, TraceLlmResponse,
303 TracePromptComponent, TraceProviderStreamEvent, TraceRecord, TraceRuntimeScope,
304 TraceRuntimeStreamEvent, TraceRuntimeSubject, TraceSinkError, TraceTokenUsage,
305 TraceToolSpec,
306 };
307 #[cfg(feature = "rlm")]
308 pub use lash_lashlang_runtime::{
309 TraceLashlangChildExecution, TraceLashlangEdgeSelection, TraceLashlangExecutionEvent,
310 TraceLashlangExecutionIdentity, TraceLashlangGraph, TraceLashlangGraphChildLink,
311 TraceLashlangGraphEdge, TraceLashlangGraphNode, TraceLashlangGraphStore, TraceLashlangMap,
312 TraceLashlangMapEdge, TraceLashlangMapNode, TraceLashlangNodeStatus, TraceLashlangStatus,
313 };
314 pub use lash_trace::{StderrTraceSink, TeeTraceSink, TraceContext, TraceLevel, TraceSink};
315}
316
317#[cfg(all(any(test, feature = "testing"), feature = "rlm"))]
320pub mod testing;
321
322pub mod provider {
323 pub use lash_core::provider::{
324 ProviderRateLimitPolicy, ProviderReliability, ProviderRetryPolicy,
325 };
326 pub use lash_core::{
327 LlmTimeouts, Provider, ProviderComponents, ProviderFactory, ProviderHandle,
328 ProviderModelPolicy, ProviderOptions, ProviderSpec, RequestTimeout, StaticModelPolicy,
329 };
330}