Skip to main content

Crate lash_core

Crate lash_core 

Source

Re-exports§

pub use attachments::AttachmentStore;
pub use attachments::AttachmentStoreError;
pub use attachments::FileAttachmentStore;
pub use attachments::InMemoryAttachmentStore;
pub use attachments::StoredAttachment;
pub use chronological::BorrowedChronologicalEntry;
pub use chronological::BorrowedChronologicalMessage;
pub use chronological::BorrowedChronologicalPayload;
pub use chronological::ChronologicalEntry;
pub use chronological::ChronologicalPayload;
pub use chronological::ChronologicalProjection;
pub use chronological::visit_turn_view;
pub use direct::DirectJsonSchema;
pub use direct::DirectLlmClient;
pub use direct::DirectLlmError;
pub use direct::DirectMessage;
pub use direct::DirectOutputSpec;
pub use direct::DirectPart;
pub use direct::DirectRequest;
pub use direct::DirectRole;
pub use standard_context_approach::ObservationalMemoryConfig;
pub use standard_context_approach::RollingHistoryConfig;
pub use standard_context_approach::StandardContextApproach;
pub use standard_context_approach::StandardContextApproachKind;
pub use tool_registry::ReconfigureError;
pub use tool_registry::ToolRegistry;
pub use tool_registry::ToolSourceHandle;
pub use tool_registry::ToolState;
pub use tool_registry::ToolStateEntry;
pub use llm::transport::LlmTransportError;
pub use llm::transport::ProviderFailure;
pub use llm::transport::ProviderFailureKind;
pub use model_info::CachedModelCatalog;
pub use model_info::FileModelCatalogStore;
pub use model_info::MemoryModelCatalogStore;
pub use model_info::ModelCatalog;
pub use model_info::ModelCatalogSource;
pub use model_info::ModelCatalogStore;
pub use model_info::ModelInfo;
pub use model_info::ModelsDevHttpSource;
pub use model_info::ResolvedModelSpec;
pub use monitor::MAX_MONITOR_TIMEOUT_MS;
pub use monitor::MonitorArmOn;
pub use monitor::MonitorEvent;
pub use monitor::MonitorRunState;
pub use monitor::MonitorSnapshot;
pub use monitor::MonitorSpec;
pub use monitor::MonitorStatus;
pub use monitor::MonitorUpdateBatch;
pub use monitor::MonitorWakePolicy;
pub use plugin::AckWakeArgs;
pub use plugin::AppendSessionNodesRequest;
pub use plugin::AppendSessionNodesResult;
pub use plugin::AssistantResponseHookContext;
pub use plugin::AssistantResponseTransform;
pub use plugin::AssistantStreamHookContext;
pub use plugin::AssistantStreamTransform;
pub use plugin::CheckpointHookContext;
pub use plugin::DirectCompletion;
pub use plugin::DirectLlmCompletion;
pub use plugin::HistoryError;
pub use plugin::HistoryRegistrations;
pub use plugin::HistoryRewriteMetadata;
pub use plugin::HistoryRewriter;
pub use plugin::HistoryState;
pub use plugin::ModeBeforeLlmCallContext;
pub use plugin::ModeExtras;
pub use plugin::ModeLlmCallAction;
pub use plugin::MonitorAckWakeOp;
pub use plugin::MonitorEmptyArgs;
pub use plugin::MonitorRegisterSpecsOp;
pub use plugin::MonitorRegistrations;
pub use plugin::MonitorStartOp;
pub use plugin::MonitorStatusOp;
pub use plugin::MonitorStopOp;
pub use plugin::MonitorTakeUpdatesOp;
pub use plugin::OwnedMonitorSpec;
pub use plugin::PersistentRuntimeServices;
pub use plugin::PluginAction;
pub use plugin::PluginActionContext;
pub use plugin::PluginActionDef;
pub use plugin::PluginActionFailure;
pub use plugin::PluginActionInvokeError;
pub use plugin::PluginActionKind;
pub use plugin::PluginDirective;
pub use plugin::PluginError;
pub use plugin::PluginFactory;
pub use plugin::PluginHost;
pub use plugin::PluginOwned;
pub use plugin::PluginRegistrar;
pub use plugin::PluginRuntimeEvent;
pub use plugin::PluginRuntimeEventHook;
pub use plugin::PluginSession;
pub use plugin::PluginSessionContext;
pub use plugin::PluginSessionSnapshot;
pub use plugin::PluginSnapshotArtifact;
pub use plugin::PluginSnapshotEntry;
pub use plugin::PluginSnapshotMeta;
pub use plugin::PluginSpec;
pub use plugin::PluginSpecFactory;
pub use plugin::PromptHookContext;
pub use plugin::RegisterSpecsArgs;
pub use plugin::RewriteContext;
pub use plugin::RewriteTrigger;
pub use plugin::RuntimeServices;
pub use plugin::SessionAppendNode;
pub use plugin::SessionConfigChangedContext;
pub use plugin::SessionContextSurface;
pub use plugin::SessionCreateRequest;
pub use plugin::SessionHandle;
pub use plugin::SessionParam;
pub use plugin::SessionPlugin;
pub use plugin::SessionPluginMode;
pub use plugin::SessionReadView;
pub use plugin::SessionRelation;
pub use plugin::SessionSnapshot;
pub use plugin::SessionStartPoint;
pub use plugin::SessionStateChangedContext;
pub use plugin::SessionToolAccess;
pub use plugin::SessionTurnHandle;
pub use plugin::SnapshotReader;
pub use plugin::SnapshotWriter;
pub use plugin::StandardCreateExtras;
pub use plugin::StartMonitorArgs;
pub use plugin::StopMonitorArgs;
pub use plugin::SubagentSessionAuthority;
pub use plugin::ToolDiscoveryContext;
pub use plugin::ToolDiscoveryContribution;
pub use plugin::ToolDiscoveryContributor;
pub use plugin::ToolDiscoveryToolContribution;
pub use plugin::ToolOutputBudgetConfig;
pub use plugin::ToolOutputBudgetMode;
pub use plugin::ToolOutputBudgetPluginFactory;
pub use plugin::ToolResultProjectionContext;
pub use plugin::ToolResultProjector;
pub use plugin::TurnContextTransform;
pub use plugin::TurnHookContext;
pub use plugin::TurnResultHookContext;
pub use plugin::TurnResultSummary;
pub use plugin::TurnTransformContext;
pub use plugin::plugin_action_def;
pub use provider::AgentModelSelection;
pub use provider::CacheRetention;
pub use provider::LlmTimeouts;
pub use provider::ProviderComponents;
pub use provider::ProviderFactory;
pub use provider::ProviderHandle;
pub use provider::ProviderModelPolicy;
pub use provider::ProviderOptions;
pub use provider::ProviderRegistry;
pub use provider::ProviderSpec;
pub use provider::ProviderState;
pub use provider::ProviderThinkingPolicy;
pub use provider::ProviderTransport;
pub use provider::RequestTimeout;
pub use provider::StaticModelPolicy;
pub use provider::VariantRequestConfig;
pub use provider::build_provider;
pub use provider::provider_factory;
pub use provider::register_provider_factory;
pub use runtime::AssembledTurn;
pub use runtime::AssistantOutput;
pub use runtime::BackgroundCancelPolicy;
pub use runtime::BackgroundClosePolicy;
pub use runtime::BackgroundRuntimeHost;
pub use runtime::BackgroundTaskAttempt;
pub use runtime::BackgroundTaskEvent;
pub use runtime::BackgroundTaskFilter;
pub use runtime::BackgroundTaskHost;
pub use runtime::BackgroundTaskId;
pub use runtime::BackgroundTaskKind;
pub use runtime::BackgroundTaskOutcome;
pub use runtime::BackgroundTaskRecord;
pub use runtime::BackgroundTaskRegistration;
pub use runtime::BackgroundTaskScope;
pub use runtime::BackgroundTaskState;
pub use runtime::CodeOutputRecord;
pub use runtime::EmbeddedRuntimeBuilder;
pub use runtime::EmbeddedRuntimeHost;
pub use runtime::EventSink;
pub use runtime::ExecutionSummary;
pub use runtime::FollowedTurn;
pub use runtime::InputItem;
pub use runtime::LashRuntime;
pub use runtime::LocalBackgroundTaskCancel;
pub use runtime::LocalBackgroundTaskHost;
pub use runtime::ModeSessionExtension;
pub use runtime::ModeSessionExtensionHandle;
pub use runtime::ModeTurnExtension;
pub use runtime::ModeTurnExtensionHandle;
pub use runtime::NoopEventSink;
pub use runtime::NoopTurnActivitySink;
pub use runtime::OutputState;
pub use runtime::ParkedSession;
pub use runtime::PersistedSessionState;
pub use runtime::Residency;
pub use runtime::RuntimeCoreConfig;
pub use runtime::RuntimeEnvironment;
pub use runtime::RuntimeEnvironmentBuilder;
pub use runtime::RuntimeError;
pub use runtime::RuntimeHandle;
pub use runtime::RuntimeObservation;
pub use runtime::SessionStateEnvelope;
pub use runtime::SessionStoreCreateRequest;
pub use runtime::SessionStoreFactory;
pub use runtime::SessionUsageReport;
pub use runtime::TerminationPolicy;
pub use runtime::TokenLedgerEntry;
pub use runtime::TurnActivity;
pub use runtime::TurnActivityId;
pub use runtime::TurnActivitySink;
pub use runtime::TurnContext;
pub use runtime::TurnEvent;
pub use runtime::TurnInput;
pub use runtime::TurnIssue;
pub use runtime::UsageReportRow;
pub use runtime::UsageTotals;
pub use runtime::diff_token_ledger;
pub use runtime::diff_usage_reports;
pub use runtime_controls::BuiltinMonitorToolPluginFactory;
pub use runtime_controls::BuiltinTaskControlsPluginFactory;
pub use session::ExecRequest;
pub use session::InjectedTurnInput;
pub use session::ModeExecutionContext;
pub use session::ModeToolBatchItem;
pub use session::ModeToolReply;
pub use session::Session;
pub use session::SessionError;
pub use session::TurnInjectionBridge;
pub use session::TurnInputInjectionBridge;
pub use session_graph::PersistedSessionConfig;
pub use session_graph::PersistedTurnState;
pub use session_graph::SessionGraph;
pub use session_graph::SessionMessageTreeNode;
pub use session_graph::SessionNodePayload;
pub use session_graph::SessionNodeRecord;
pub use session_model::context::PreparedContext;
pub use session_model::ModeEvent;
pub use session_model::SessionEventRecord;
pub use session_model::SessionPolicy;
pub use session_model::SessionSpec;
pub use store::BlobRef;
pub use store::GcReport;
pub use store::GraphCommitDelta;
pub use store::HydratedSessionCheckpoint;
pub use store::PersistedSessionRead;
pub use store::RuntimeCommit;
pub use store::RuntimeCommitResult;
pub use store::RuntimePersistence;
pub use store::SessionCheckpoint;
pub use store::SessionHead;
pub use store::SessionHeadMeta;
pub use store::SessionMeta;
pub use store::SessionPickerInfo;
pub use store::SessionReadScope;
pub use store::StoreError;
pub use store::VacuumReport;
pub use store::load_persisted_session_state;
pub use store::load_persisted_session_state_active_path;
pub use store::refresh_persisted_session_state;

Modules§

attachments
chronological
direct
llm
model_info
monitor
plugin
provider
Provider components and registry for pluggable LLM backends.
runtime
runtime_controls
Mode-agnostic runtime-control tools (monitor, tasks_list, tasks_stop).
sansio
Sans-IO state machine for session turns.
search
session
session_graph
session_model
standard_context_approach
store
tool_dispatch
tool_registry

Structs§

AcceptedInjectedTurnInput
AttachmentCreateMeta
AttachmentId
AttachmentMeta
AttachmentRef
CompactToolContract
ConversationRecord
EffectId
Opaque identifier linking an effect to its response.
ErrorEnvelope
ExecResponse
ExecutionMode
Stable string id for the execution backend that owns a session turn.
HostModeProtocol
JsonlTraceSink
LlmCallError
LlmRequest
LlmResponse
Message
A structured message with typed parts for context management.
MessageSequence
ModeBuildInput
ModeTurnOptions
ModelToolReturn
Part
PluginMessage
PluginStack
PreparedPrompt
PromptBuildInput
PromptContext
PromptContribution
PromptContributionGate
PromptContributionSet
PromptFingerprint
PromptLayer
PromptPanel
PromptRequest
PromptSlotLayer
PromptTemplate
PromptTemplateSection
PromptUsage
Exact prompt-usage snapshot from the most recent completed LLM call.
RenderedPrompt
ResolvedPromptLayer
RlmPrintImage
SandboxMessage
A message sent from the sandbox to the host during execution.
SchemaProjectionOverride
TextProjectionMetadata
TokenUsage
Token usage statistics from an LLM call.
ToolAvailabilityConfig
ToolCall
Per-call inputs handed to ToolProvider::execute.
ToolCallOutput
ToolCallRecord
ToolCancellation
ToolContext
Per-call environment for ToolProvider::execute. Fields are sealed so the runtime can add capabilities without breaking tool authors.
ToolContract
Heavy tool contract resolved only when a prompt or call needs schemas/docs.
ToolDefinition
Static authoring helper for tools.
ToolDiscoveryMetadata
ToolFailure
ToolManifest
Cheap tool metadata exposed to prompts, catalogs, UI, and availability checks.
ToolResult
ToolSessionControl
ToolSessionModel
ToolSurface
ToolSurfaceBuildInput
ToolSurfaceContribution
ToolSurfaceEntry
ToolSurfaceOverride
ToolTaskControl
TraceAttachment
TraceContext
TraceError
TraceLlmMessage
TraceLlmRequest
TraceLlmResponse
TracePromptComponent
TraceProviderStreamEvent
TraceRecord
TraceRuntimeStreamEvent
TraceTokenUsage
TraceToolSpec

Enums§

CheckpointKind
ImageMediaType
LlmOutputPart
LlmTerminalReason
MediaType
MessageOrigin
MessageRole
ModelToolReturnPart
PartKind
PluginSurfaceEvent
PromptBuiltin
PromptResponse
PromptSelectionMode
PromptSlot
PromptTemplateEntry
PruneState
Response
A response to a previously emitted effect.
SessionEvent
StateSnapshotEvent
ToolActivation
ToolAvailability
ToolCallOutcome
ToolCallStatus
ToolControl
ToolEvent
ToolExecutionMode
How a tool’s invocations should be scheduled relative to other tools in the same batch of model-produced tool calls.
ToolFailureClass
ToolFailureSource
ToolOutputContract
ToolRetryDisposition
ToolRetryPolicy
Automatic retry policy for a tool’s execution.
ToolValue
TraceContentBlock
TraceEvent
TraceLevel
TraceSinkError
TurnFinish
TurnOutcome
TurnStop

Constants§

SANSIO_VERSION
VERSION

Traits§

JsonSchema
A type which can be described as a JSON Schema document.
ToolProvider
Trait for providing tools to the sandbox. Implement this per-project.
TraceSink

Functions§

append_assistant_text_part
Append a streamed text part to the running assistant text, inserting the right number of blank lines so consecutive parts don’t glue together.
build_prompt
build_tool_surface
build_turn
default_execution_mode
default_prompt_template
execution_mode_supported
head_tail_truncate
messages_are_prompt_resume_safe
normalized_response_parts
Convert a raw LlmResponse into a stream of LlmOutputParts that downstream code can iterate. When the response only carries full_text (provider didn’t populate parts), synthesize a single Text part.
prompt_template_fingerprint
prompt_text_fingerprint
prompt_tool_names_fingerprint
reasoning_part
Build a Reasoning Part from a reasoning item. meta is Some when the item carries provider replay metadata; None for display-only summaries.
resolve_prompt_layers
shared_parts
Wrap a Vec<Part> for the Message::parts field. Use this in struct literals and tests (parts: shared_parts(vec![Part { ... }])) so the call sites stay short and uniform.
turn_limit_exhausted_message
System-level “turn limit reached” message that both protocol drivers append when their mode_iteration count exceeds max_turns.

Type Aliases§

BaseRenderCache
Memoized render of a MessageSequence’s base. Shared across the per-iteration MessageSequence instances that wrap the same base (typically the SessionGraphCache’s projected messages) so the chat projector’s render_prompt walk happens once per turn instead of once per LLM iteration.
DriverAction
DriverContextView
Effect
ModeConfig
ModePreamble
PreparedTurnMachine
ProgressSender
Sender for streaming progress messages from tools (e.g. live bash output).
ProjectorContext
SansIoTurnInput
TurnMachine
TurnMachineConfig

Derive Macros§

JsonSchema