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