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, CompactionContext, ContextCompaction, ContextCompactor,
117 ContextError, PluginSpecBuilder, StaticPluginFactory, ToolCallHookContext,
118 ToolResultHookContext,
119 };
120 pub use lash_core::{
121 HostEvent, PluginError, PluginFactory, PluginHost, PluginMessage, PluginRegistrar,
122 PluginRuntimeEvent, PluginSession, PluginSessionContext, PluginSpec, PluginSpecFactory,
123 PromptHookContext, SessionPlugin, ToolSurfaceContribution, ToolSurfaceOverride,
124 TurnHookContext, TurnResultHookContext,
125 };
126 pub use lash_plugin_tool_output_budget::{
127 ToolOutputBudgetConfig, ToolOutputBudgetMode, ToolOutputBudgetPluginFactory,
128 tool_output_budget_stack as runtime_plugin_stack,
129 };
130}
131
132pub mod modes {
133 pub use crate::mode::{RlmSessionBuilderExt, RlmTurnBuilderExt};
134 pub use lash_protocol_rlm::{
135 LashlangAbilities, LashlangLanguageFeatures, LashlangSurface, NamedDataType,
136 ResourceCatalog, RlmProtocolPluginConfig, TypeExpr, TypeField, format_type_expr,
137 };
138 pub use lash_rlm_types::RlmFinalAnswerFormat;
139
140 pub use crate::mode::{ModeId, ModePreset};
141}
142
143pub mod messages {
144 pub use lash_core::MessageRole;
145}
146
147pub mod remote {
148 pub use lash_remote_protocol::*;
149}
150
151pub mod process {
152 pub use crate::control::ProcessControl;
153 pub use lash_core::{
154 ObservedProcess, ObservedProcessEvent, ObservedWorkItem, ProcessAwaitOutput,
155 ProcessCancelAbility, ProcessCancelAllRequest, ProcessCancelRequest, ProcessCancelSource,
156 ProcessCancelSummary, ProcessDefinitionSummary, ProcessEvent, ProcessEventAppendRequest,
157 ProcessEventAppendResult, ProcessEventType, ProcessExecutionContext, ProcessExternalRef,
158 ProcessHandleDescriptor, ProcessHandleGrant, ProcessHandleSummary, ProcessInput,
159 ProcessLease, ProcessLeaseCompletion, ProcessLifecycleStatus, ProcessListFilter,
160 ProcessListMode, ProcessOpScope, ProcessRecord, ProcessRegistration, ProcessRegistry,
161 ProcessRunHandle, ProcessRuntimeHost, ProcessScope, ProcessScopeId, ProcessService,
162 ProcessSessionDeleteReport, ProcessStartOptions, ProcessStartRequest, ProcessStatus,
163 ProcessStatusFilter, ProcessTerminalState, ProcessWake, ProcessWakeDedupeKey,
164 ProcessWakeDelivery, ProcessWakeSpec, ProcessWorkDriver, ProcessWorkObserver,
165 ProcessWorkPoke, ProcessWorkRunner, ProcessWorkSnapshot, lashlang_process_event_types,
166 };
167}
168
169pub mod durability {
170 pub use lash_core::{
171 DurableProcessWorker, DurableProcessWorkerConfig, EffectHost, InlineEffectHost, Residency,
172 RuntimeEnvironment, RuntimeHostConfig, TerminationPolicy,
173 };
174}
175
176pub mod runtime {
177 pub use crate::core::AdvancedLashCoreBuilder;
178 pub use lash_core::runtime::{
179 AssembledTurn, DirectCompletionClient, EffectScope, EmbeddedRuntimeHost, EventSink,
180 InlineRuntimeEffectController, LashRuntime, LlmAttachmentSpec, LlmRequestSpec,
181 NoopEventSink, NoopTurnActivitySink, ProcessCommand, ProcessEffectOutcome, QueuedWorkPoke,
182 QueuedWorkRunHandle, QueuedWorkRunOutcome, QueuedWorkRunRequest, QueuedWorkRunner,
183 RuntimeEffectCommand, RuntimeEffectController, RuntimeEffectControllerError,
184 RuntimeEffectEnvelope, RuntimeEffectKind, RuntimeEffectLocalExecutor, RuntimeEffectOutcome,
185 RuntimeEnvironmentBuilder, RuntimeError, RuntimeErrorCode, RuntimeHandle,
186 RuntimeInvocation, RuntimeObservation, RuntimeScope, RuntimeTurnPhase,
187 RuntimeTurnPhaseProbe, ScopedEffectController, SessionCommand, SessionCommandReceipt,
188 TurnContext,
189 };
190 pub use lash_core::{
191 PersistentRuntimeServices, PluginMessage, ProtocolSessionExtensionHandle,
192 ProtocolTurnOptions, SessionEvent, SessionHandle, SessionPolicy, SessionSnapshot,
193 TurnCause, TurnFinish, TurnOutcome, TurnStop, render_turn_causes_prompt,
194 };
195}
196
197pub mod prompt {
198 pub use lash_core::{
199 PromptBuiltin, PromptContribution, PromptContributionGate, PromptLayer, PromptSlot,
200 PromptTemplate, PromptTemplateEntry, PromptTemplateSection, default_prompt_template,
201 };
202}
203
204pub mod tracing {
205 pub use lash_core::{
206 JsonlTraceSink, TraceAttachment, TraceBranchSelection, TraceContentBlock, TraceError,
207 TraceEvent, TraceLabelMetadata, TraceLashlangChildExecution, TraceLashlangEdgeSelection,
208 TraceLashlangExecutionEvent, TraceLashlangExecutionIdentity, TraceLashlangGraph,
209 TraceLashlangGraphChildLink, TraceLashlangGraphEdge, TraceLashlangGraphNode,
210 TraceLashlangGraphStore, TraceLashlangMap, TraceLashlangMapEdge, TraceLashlangMapNode,
211 TraceLashlangNodeStatus, TraceLashlangStatus, TraceLlmMessage, TraceLlmRequest,
212 TraceLlmResponse, TracePromptComponent, TraceProviderStreamEvent, TraceRecord,
213 TraceRuntimeScope, TraceRuntimeStreamEvent, TraceRuntimeSubject, TraceSinkError,
214 TraceTokenUsage, TraceToolSpec,
215 };
216 pub use lash_trace::{StderrTraceSink, TeeTraceSink, TraceContext, TraceLevel, TraceSink};
217}
218
219#[cfg(any(test, feature = "testing"))]
222pub mod testing;
223
224pub mod provider {
225 pub use lash_core::provider::{
226 ProviderRateLimitPolicy, ProviderReliability, ProviderReliabilityBuilder,
227 ProviderRetryPolicy, ProviderTimeoutPolicy,
228 };
229 pub use lash_core::{
230 LlmTimeouts, Provider, ProviderComponents, ProviderFactory, ProviderHandle,
231 ProviderModelPolicy, ProviderOptions, ProviderSpec, ProviderThinkingPolicy, RequestTimeout,
232 StaticModelPolicy,
233 };
234}
235
236pub type ToolState = lash_core::ToolState;