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