1pub mod control;
9mod core;
10mod error;
11mod mode;
12mod plugin_binding;
13mod prompt_layer;
14mod session;
15mod support;
16#[cfg(test)]
17mod tests;
18pub mod turn;
19pub mod usage;
20
21pub use crate::control::{
22 AdvancedToolsControl, HostEventsControl, PluginActions, SessionCommandsControl, ToolsControl,
23 TriggersControl,
24};
25pub use crate::core::{LashCore, LashCoreBuilder, SessionDeleteReport};
26pub use crate::error::{EmbedError, Result};
27pub use crate::mode::{ModeId, ModePreset};
28pub use crate::plugin_binding::PluginBinding;
29pub use crate::prompt_layer::PromptLayerSink;
30pub use crate::session::{
31 LashSession, ObservableSession, QueueInputBuilder, SessionBuilder, SessionConfigPatch,
32};
33pub use crate::turn::{
34 AdvancedTurn, QueuedTurnBuilder, TurnActivityFanout, TurnBuilder, TurnOutput, TurnResult,
35 TurnStream, message_role, message_text,
36};
37pub use lash_core::{
38 HostEvent, HostEventEmitReport, HostEventOccurrenceRequest, InputItem, ModelLimits, ModelSpec,
39 PluginStack, SessionCommand, SessionCommandReceipt, SessionCursor, SessionObservation,
40 SessionObservationEvent, SessionObservationEventPayload, SessionObservationSubscription,
41 SessionProcessEventKind, SessionQueueEventKind, SessionResume, SessionRevision, SessionSpec,
42 TriggerRegistration, TriggerSourceType, TriggerSubscriptionFilter, TriggerTargetSummary,
43 TurnActivity, TurnActivityId, TurnActivitySink, TurnEvent, TurnInput,
44 empty_host_event_source_key, impl_unsupported_queued_work_methods,
45};
46
47pub mod prelude {
48 pub use crate::{
49 AdvancedToolsControl, EmbedError, HostEvent, HostEventEmitReport,
50 HostEventOccurrenceRequest, HostEventsControl, InputItem, LashCore, LashCoreBuilder,
51 LashSession, ModeId, ModePreset, ModelSpec, ObservableSession, PluginActions,
52 PluginBinding, PluginStack, PromptLayerSink, QueuedTurnBuilder, Result, SessionBuilder,
53 SessionCommand, SessionCommandReceipt, SessionCommandsControl, SessionCursor,
54 SessionObservation, SessionObservationEvent, SessionObservationEventPayload,
55 SessionObservationSubscription, SessionProcessEventKind, SessionQueueEventKind,
56 SessionResume, SessionRevision, SessionSpec, ToolsControl, TriggerRegistration,
57 TriggerSourceType, TriggerSubscriptionFilter, TriggerTargetSummary, TriggersControl,
58 TurnActivity, TurnBuilder, TurnEvent, TurnInput, TurnOutput, TurnResult, TurnStream,
59 empty_host_event_source_key,
60 };
61 pub use lash_core::TurnActivitySink;
62}
63
64pub mod tools {
65 pub use crate::ToolState;
66 pub use lash_core::{
67 PreparedToolCall, ToolActivation, ToolAgentSurface, ToolArgumentProjectionPolicy,
68 ToolAvailability, ToolAvailabilityConfig, ToolCall, ToolCallOutput, ToolCallRecord,
69 ToolContext, ToolContract, ToolDefinition, ToolHostEventControl, ToolManifest,
70 ToolOutputContract, ToolPrepareCall, ToolPrepareContext, ToolProvider, ToolResult,
71 ToolScheduling, ToolSourceHandle,
72 };
73 pub use lash_tool_support::{StaticToolExecute, StaticToolProvider};
77}
78
79pub mod direct {
80 pub use lash_core::llm::types::{
81 LlmAttachment, LlmEventSender, LlmOutputPart, LlmTerminalReason, LlmUsage,
82 };
83 pub use lash_core::{
84 DirectCompletion, DirectJsonSchema, DirectLlmClient, DirectLlmCompletion, DirectLlmError,
85 DirectMessage, DirectOutputSpec, DirectPart, DirectRequest, DirectRole, LlmResponse,
86 TokenUsage,
87 };
88}
89
90pub mod persistence {
91 pub use lash_core::runtime::{
92 DeliveryPolicy, InMemorySessionStore, InMemorySessionStoreFactory, MergeKey,
93 QueuedWorkBatch, QueuedWorkBatchDraft, QueuedWorkClaim, QueuedWorkClaimBoundary,
94 QueuedWorkCompletion, QueuedWorkItem, QueuedWorkPayload, RuntimeSessionState,
95 SessionCommand, SessionCommandReceipt, SessionStoreCreateRequest, SessionStoreFactory,
96 SlotPolicy,
97 };
98 pub use lash_core::store::{
99 GraphCommitDelta, HydratedSessionCheckpoint, PersistedSessionRead, RuntimeCommit,
100 RuntimeCommitResult, RuntimeTurnCommitStamp, SessionCheckpoint, SessionHead,
101 SessionHeadMeta, load_persisted_session_state, load_persisted_session_state_active_path,
102 };
103 pub use lash_core::{AttachmentStore, InMemoryAttachmentStore};
104 pub use lash_core::{
105 BlobRef, GcReport, PersistedSessionConfig, PersistedTurnState, ProtocolEvent,
106 RuntimePersistence, SessionEventRecord, SessionGraph, SessionMeta, SessionNodeRecord,
107 SessionReadScope, SessionReadView, SessionRelation, SessionSnapshot, StoreError,
108 TokenLedgerEntry, VacuumReport,
109 };
110 pub use lash_core::{InMemoryLashlangArtifactStore, LashlangArtifactStore};
111 pub use lash_local_store::FileAttachmentStore;
112}
113
114pub mod plugins {
115 pub use crate::plugin_binding::PluginBinding;
116 pub use lash_core::PluginDirective;
117 pub use lash_core::plugin::{
118 AfterToolCallHook, AfterTurnHook, AssistantResponseHook, AssistantResponseHookContext,
119 AssistantResponseTransform, AssistantStreamHook, AssistantStreamHookContext,
120 AssistantStreamTransform, BeforeToolCallHook, BeforeTurnHook, CheckpointHook,
121 CheckpointHookContext, CompactionContext, ContextCompaction, ContextCompactor,
122 ContextError, PluginSpecBuilder, StaticPluginFactory, ToolCallHookContext,
123 ToolResultHookContext,
124 };
125 pub use lash_core::{
126 HostEvent, PluginError, PluginFactory, PluginHost, PluginMessage, PluginRegistrar,
127 PluginRuntimeEvent, PluginSession, PluginSessionContext, PluginSpec, PluginSpecFactory,
128 PromptHookContext, SessionPlugin, ToolSurfaceContribution, ToolSurfaceOverride,
129 TurnHookContext, TurnResultHookContext,
130 };
131 pub use lash_plugin_tool_output_budget::{
132 ToolOutputBudgetConfig, ToolOutputBudgetMode, ToolOutputBudgetPluginFactory,
133 tool_output_budget_stack as runtime_plugin_stack,
134 };
135}
136
137pub mod modes {
138 pub use crate::mode::{RlmSessionBuilderExt, RlmTurnBuilderExt};
139 pub use lash_protocol_rlm::{
140 LashlangAbilities, LashlangLanguageFeatures, LashlangSurface, NamedDataType,
141 ResourceCatalog, RlmProtocolPluginConfig, TypeExpr, TypeField, format_type_expr,
142 };
143 pub use lash_rlm_types::RlmFinalAnswerFormat;
144
145 pub use crate::mode::{ModeId, ModePreset};
146}
147
148pub mod messages {
149 pub use lash_core::MessageRole;
150}
151
152pub mod remote {
153 pub use lash_remote_protocol::*;
154}
155
156pub mod process {
157 pub use crate::control::ProcessControl;
158 pub use lash_core::{
159 ObservedProcess, ObservedProcessEvent, ObservedWorkItem, ProcessAwaitOutput,
160 ProcessCancelAbility, ProcessCancelAllRequest, ProcessCancelRequest, ProcessCancelSource,
161 ProcessCancelSummary, ProcessDefinitionSummary, ProcessEvent, ProcessEventAppendRequest,
162 ProcessEventAppendResult, ProcessEventType, ProcessExecutionContext, ProcessExternalRef,
163 ProcessHandleDescriptor, ProcessHandleGrant, ProcessHandleSummary, ProcessInput,
164 ProcessLease, ProcessLeaseCompletion, ProcessLifecycleStatus, ProcessListFilter,
165 ProcessListMode, ProcessOpScope, ProcessRecord, ProcessRegistration, ProcessRegistry,
166 ProcessRunHandle, ProcessRuntimeHost, ProcessScope, ProcessScopeId, ProcessService,
167 ProcessSessionDeleteReport, ProcessStartOptions, ProcessStartRequest, ProcessStatus,
168 ProcessStatusFilter, ProcessTerminalState, ProcessWake, ProcessWakeDedupeKey,
169 ProcessWakeDelivery, ProcessWakeSpec, ProcessWorkDriver, ProcessWorkObserver,
170 ProcessWorkPoke, ProcessWorkRunner, ProcessWorkSnapshot, lashlang_process_event_types,
171 };
172}
173
174pub mod durability {
175 pub use lash_core::{
176 DurableProcessWorker, DurableProcessWorkerConfig, EffectHost, InlineEffectHost, Residency,
177 RuntimeEnvironment, RuntimeHostConfig, TerminationPolicy,
178 };
179}
180
181pub mod runtime {
182 pub use crate::core::AdvancedLashCoreBuilder;
183 pub use lash_core::runtime::{
184 AssembledTurn, DirectCompletionClient, EffectScope, EmbeddedRuntimeHost, EventSink,
185 InlineRuntimeEffectController, LashRuntime, LlmAttachmentSpec, LlmRequestSpec,
186 NoopEventSink, NoopTurnActivitySink, ProcessCommand, ProcessEffectOutcome, QueuedWorkPoke,
187 QueuedWorkRunHandle, QueuedWorkRunOutcome, QueuedWorkRunRequest, QueuedWorkRunner,
188 RuntimeEffectCommand, RuntimeEffectController, RuntimeEffectControllerError,
189 RuntimeEffectEnvelope, RuntimeEffectKind, RuntimeEffectLocalExecutor, RuntimeEffectOutcome,
190 RuntimeEnvironmentBuilder, RuntimeError, RuntimeErrorCode, RuntimeHandle,
191 RuntimeInvocation, RuntimeObservation, RuntimeScope, RuntimeTurnPhase,
192 RuntimeTurnPhaseProbe, ScopedEffectController, SessionCommand, SessionCommandReceipt,
193 SessionCursor, SessionObservation, SessionObservationEvent, SessionObservationEventPayload,
194 SessionObservationSubscription, SessionResume, SessionRevision, TurnContext,
195 };
196 pub use lash_core::{
197 PersistentRuntimeServices, PluginMessage, ProtocolSessionExtensionHandle,
198 ProtocolTurnOptions, SessionEvent, SessionHandle, SessionPolicy, SessionSnapshot,
199 TurnCause, TurnFinish, TurnOutcome, TurnStop, render_turn_causes_prompt,
200 };
201}
202
203pub mod prompt {
204 pub use lash_core::{
205 PromptBuiltin, PromptContribution, PromptContributionGate, PromptLayer, PromptSlot,
206 PromptTemplate, PromptTemplateEntry, PromptTemplateSection, default_prompt_template,
207 };
208}
209
210pub mod tracing {
211 pub use lash_core::{
212 JsonlTraceSink, TraceAttachment, TraceBranchSelection, TraceContentBlock, TraceError,
213 TraceEvent, TraceLabelMetadata, TraceLashlangChildExecution, TraceLashlangEdgeSelection,
214 TraceLashlangExecutionEvent, TraceLashlangExecutionIdentity, TraceLashlangGraph,
215 TraceLashlangGraphChildLink, TraceLashlangGraphEdge, TraceLashlangGraphNode,
216 TraceLashlangGraphStore, TraceLashlangMap, TraceLashlangMapEdge, TraceLashlangMapNode,
217 TraceLashlangNodeStatus, TraceLashlangStatus, TraceLlmMessage, TraceLlmRequest,
218 TraceLlmResponse, TracePromptComponent, TraceProviderStreamEvent, TraceRecord,
219 TraceRuntimeScope, TraceRuntimeStreamEvent, TraceRuntimeSubject, TraceSinkError,
220 TraceTokenUsage, TraceToolSpec,
221 };
222 pub use lash_trace::{StderrTraceSink, TeeTraceSink, TraceContext, TraceLevel, TraceSink};
223}
224
225#[cfg(any(test, feature = "testing"))]
228pub mod testing;
229
230pub mod provider {
231 pub use lash_core::provider::{
232 ProviderRateLimitPolicy, ProviderReliability, ProviderReliabilityBuilder,
233 ProviderRetryPolicy, ProviderTimeoutPolicy,
234 };
235 pub use lash_core::{
236 LlmTimeouts, Provider, ProviderComponents, ProviderFactory, ProviderHandle,
237 ProviderModelPolicy, ProviderOptions, ProviderSpec, ProviderThinkingPolicy, RequestTimeout,
238 StaticModelPolicy,
239 };
240}
241
242pub type ToolState = lash_core::ToolState;