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 ToolManifest, ToolOutputContract, ToolPrepareCall, ToolPrepareContext, ToolProvider,
96 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, RemoteLashlangToolBinding, RemoteLiveReplayGap,
181 RemoteLiveReplayGapReason, RemoteLlmAttachment, RemoteLlmContentBlock, RemoteLlmMessage,
182 RemoteLlmOutputPart, RemoteLlmOutputSpec, RemoteLlmRequest, RemoteLlmRequestMetadata,
183 RemoteLlmResponse, RemoteLlmRole, RemoteLlmTerminalReason, RemoteLlmToolChoice,
184 RemoteLlmToolSpec, RemoteModelIntent, RemotePromptBuiltin, RemotePromptContribution,
185 RemotePromptContributionGate, RemotePromptLayer, RemotePromptSlot, RemotePromptSlotLayer,
186 RemotePromptTemplate, RemotePromptTemplateEntry, RemotePromptTemplateSection,
187 RemoteProtocolError, RemoteProtocolTurnOptions, RemoteProviderMetadata,
188 RemoteProviderReasoningReplay, RemoteProviderReplayMeta, RemoteResponseTextMeta,
189 RemoteSchemaProjectionOverride, RemoteSessionCursor, RemoteSessionObservationEvent,
190 RemoteSessionObservationEventPayload, RemoteSessionProcessEventKind,
191 RemoteSessionQueueEventKind, RemoteTokenLedgerEntry, RemoteToolActivation,
192 RemoteToolArgumentProjectionPolicy, RemoteToolAvailability, RemoteToolCallOutcome,
193 RemoteToolCallRequest, RemoteToolCallResponse, RemoteToolCallSummary, RemoteToolGrant,
194 RemoteToolOutputContract, RemoteToolRegistry, RemoteToolRetryPolicy, RemoteToolScheduling,
195 RemoteTriggerEmitReport, RemoteTriggerOccurrenceRecord, RemoteTriggerOccurrenceRequest,
196 RemoteTriggerRegistration, RemoteTriggerSubscriptionFilter, RemoteTriggerTargetSummary,
197 RemoteTurnActivity, RemoteTurnEvent, RemoteTurnFinish, RemoteTurnInput, RemoteTurnIssue,
198 RemoteTurnOutcome, RemoteTurnRequest, RemoteTurnResult, RemoteTurnStatus, RemoteTurnStop,
199 RemoteTurnUsageSummary, RemoteUsage, assert_remote_tool_registry_reopenable,
200 ensure_protocol_version,
201 };
202}
203
204pub mod process {
205 pub use crate::admin::{Processes, SessionProcessAdmin};
206 pub use lash_core::{
207 ObservedProcess, ObservedProcessEvent, ObservedWorkItem, ProcessAwaitOutput,
208 ProcessCancelAbility, ProcessCancelAllRequest, ProcessCancelRequest, ProcessCancelSource,
209 ProcessCancelSummary, ProcessDefinitionSummary, ProcessEvent, ProcessEventAppendRequest,
210 ProcessEventAppendResult, ProcessEventType, ProcessExecutionContext, ProcessExternalRef,
211 ProcessHandleDescriptor, ProcessHandleGrant, ProcessHandleSummary, ProcessInput,
212 ProcessLease, ProcessLeaseCompletion, ProcessLifecycleStatus, ProcessListFilter,
213 ProcessListMode, ProcessOpScope, ProcessRecord, ProcessRegistration, ProcessRegistry,
214 ProcessRunHandle, ProcessRuntimeHost, ProcessService, ProcessSessionDeleteReport,
215 ProcessStartOptions, ProcessStartRequest, ProcessStatus, ProcessStatusFilter,
216 ProcessTerminalState, ProcessWake, ProcessWakeDedupeKey, ProcessWakeDelivery,
217 ProcessWakeSpec, ProcessWorkDriver, ProcessWorkObserver, ProcessWorkPoke,
218 ProcessWorkRunner, ProcessWorkSnapshot, SessionScope, SessionScopeId,
219 lashlang_process_event_types,
220 };
221}
222
223pub mod durability {
224 pub use lash_core::{
225 DurableProcessWorker, DurableProcessWorkerConfig, EffectHost, InlineEffectHost, Residency,
226 RuntimeEnvironment, RuntimeHostConfig, TerminationPolicy,
227 };
228}
229
230pub mod runtime {
231 pub use crate::core::AdvancedLashCoreBuilder;
232 pub use lash_core::runtime::{
233 AssembledTurn, DirectCompletionClient, EmbeddedRuntimeHost, EventSink, ExecutionScope,
234 InlineRuntimeEffectController, LashRuntime, LlmAttachmentSpec, LlmRequestSpec,
235 NoopEventSink, NoopTurnActivitySink, ProcessCommand, ProcessEffectOutcome, QueuedWorkPoke,
236 QueuedWorkRunHandle, QueuedWorkRunOutcome, QueuedWorkRunRequest, QueuedWorkRunner,
237 RuntimeEffectCommand, RuntimeEffectController, RuntimeEffectControllerError,
238 RuntimeEffectEnvelope, RuntimeEffectKind, RuntimeEffectLocalExecutor, RuntimeEffectOutcome,
239 RuntimeEnvironmentBuilder, RuntimeError, RuntimeErrorCode, RuntimeHandle,
240 RuntimeInvocation, RuntimeObservation, RuntimeScope, RuntimeTurnPhase,
241 RuntimeTurnPhaseProbe, ScopedEffectController, TurnContext,
242 };
243 pub use lash_core::{
244 PersistentRuntimeServices, PluginMessage, ProtocolSessionExtensionHandle,
245 ProtocolTurnOptions, SessionHandle, SessionPolicy, SessionSnapshot, TurnCause, TurnFinish,
246 TurnOutcome, TurnStop, render_turn_causes_prompt,
247 };
248}
249
250pub mod prompt {
251 pub use lash_core::{
252 PromptBuiltin, PromptContribution, PromptContributionGate, PromptLayer, PromptSlot,
253 PromptTemplate, PromptTemplateEntry, PromptTemplateSection, default_prompt_template,
254 };
255}
256
257pub mod tracing {
258 pub use lash_core::{
259 JsonlTraceSink, TraceAttachment, TraceBranchSelection, TraceContentBlock, TraceError,
260 TraceEvent, TraceLabelMetadata, TraceLashlangChildExecution, TraceLashlangEdgeSelection,
261 TraceLashlangExecutionEvent, TraceLashlangExecutionIdentity, TraceLashlangGraph,
262 TraceLashlangGraphChildLink, TraceLashlangGraphEdge, TraceLashlangGraphNode,
263 TraceLashlangGraphStore, TraceLashlangMap, TraceLashlangMapEdge, TraceLashlangMapNode,
264 TraceLashlangNodeStatus, TraceLashlangStatus, TraceLlmMessage, TraceLlmRequest,
265 TraceLlmResponse, TracePromptComponent, TraceProviderStreamEvent, TraceRecord,
266 TraceRuntimeScope, TraceRuntimeStreamEvent, TraceRuntimeSubject, TraceSinkError,
267 TraceTokenUsage, TraceToolSpec,
268 };
269 pub use lash_trace::{StderrTraceSink, TeeTraceSink, TraceContext, TraceLevel, TraceSink};
270}
271
272#[cfg(any(test, feature = "testing"))]
275pub mod testing;
276
277pub mod provider {
278 pub use lash_core::provider::{
279 ProviderRateLimitPolicy, ProviderReliability, ProviderRetryPolicy,
280 };
281 pub use lash_core::{
282 LlmTimeouts, Provider, ProviderComponents, ProviderFactory, ProviderHandle,
283 ProviderModelPolicy, ProviderOptions, ProviderSpec, RequestTimeout, StaticModelPolicy,
284 };
285}