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