Skip to main content

vv_agent/
lib.rs

1//! VectorVein agent runtime, SDK, CLI, tools, memory, prompt, and workspace APIs.
2//!
3//! This crate exposes a stable Rust library surface for building and running
4//! agent workflows with built-in tool dispatch and vv-llm backed chat clients.
5
6pub mod agent;
7pub mod app_server;
8pub mod approval;
9pub mod budget;
10pub mod checkpoint;
11pub mod cli;
12pub mod config;
13pub mod constants;
14pub mod context;
15pub mod context_providers;
16pub mod event_store;
17pub mod events;
18pub mod execution_mode;
19pub mod guardrails;
20pub mod handoffs;
21pub mod integrations;
22pub mod interactive;
23pub mod llm;
24pub mod memory;
25pub mod model;
26pub mod model_settings;
27pub mod output_validation;
28pub mod prompt;
29pub mod result;
30pub mod run_config;
31pub mod run_handle;
32pub mod runner;
33pub mod runtime;
34pub mod sessions;
35pub mod skills;
36pub mod tools;
37pub mod tracing;
38pub mod types;
39pub mod workspace;
40
41pub use agent::{Agent, InstructionProvider, PromptBundleProvider, ToolUseBehavior};
42pub use app_server::{
43    AgentResolutionRequest, AppServerHost, AppServerHostError, DefaultAppServerHost,
44    RunConfigResolutionRequest,
45};
46pub use approval::{
47    ApprovalBroker, ApprovalError, ApprovalFuture, ApprovalProvider, ApprovalRequest,
48};
49pub use budget::{
50    BudgetDimension, BudgetEnforcementBoundary, BudgetExhaustion, BudgetExhaustionReason,
51    BudgetUnavailableDimension, BudgetUnavailableReason, BudgetUsageSnapshot, HostCost,
52    HostCostMeter, RunBudgetLimits, RunBudgetLimitsBuilder, UnavailableMetricPolicy,
53    MAX_WIRE_INTEGER,
54};
55pub use checkpoint::{
56    canonical_json_bytes, event_payload_digest, model_request_digest, normalize_run_definition,
57    operation_request_digest, redact_run_definition, run_definition_digest, tool_request_digest,
58    validate_extension_namespace, validate_run_definition, AmbiguousModelPolicy,
59    AmbiguousToolPolicy, AppendOnceResult, CheckpointConfig, CheckpointError, CheckpointExtension,
60    CheckpointStatus, ClaimMode, EventCursor, IdempotentRunEventStore, InMemoryRunEventStore,
61    OperationKind, OperationState, ReconciliationDecision, ReconciliationDecisionKind,
62    ReconciliationError, ReconciliationProvider, ResumeObservation, ResumePolicy, ToolIdempotency,
63};
64pub use config::{
65    apply_resolved_model_limits, build_vv_llm_from_local_settings, load_llm_settings_from_file,
66    resolve_model_endpoint, ConfigError, EndpointConfig, EndpointOption, ResolvedModelConfig,
67};
68pub use context::{RunContext, ToolCallContext};
69pub use context_providers::{
70    assemble_context_fragments, collect_context_fragments, ContextBundle, ContextError,
71    ContextFragment, ContextProvider, ContextRequest, ContextSection,
72};
73pub use event_store::{
74    EventStoreError, JsonlRunEventStore, RunEventIter, RunEventReplayQuery, RunEventStore,
75};
76pub use events::{
77    AgentErrorPayload, EventId, MemoryCompactMode, MemoryCompactTrigger, ReservedOutputSource,
78    RunEvent, RunEventPayload, RunEventVersion, ToolStatus,
79};
80pub use execution_mode::ExecutionMode;
81pub use guardrails::{GuardrailOutcome, InputGuardrail, OutputGuardrail};
82pub use handoffs::{handoff, Handoff};
83pub use interactive::{
84    create_interactive_session, InteractiveAgentClient, InteractiveSession,
85    InteractiveSessionError, InteractiveSessionEvent, InteractiveSessionOptions,
86    InteractiveSessionState,
87};
88pub use llm::{
89    EndpointTarget, LlmClient, LlmError, LlmRequest, LlmStreamCallback, ScriptStep,
90    ScriptStepCallback, ScriptedLlmClient, VvLlmClient,
91};
92pub use memory::{
93    sanitize_for_resume, CompactionExhaustedError, LocalSummary, MemoryError, MemoryFuture,
94    MemoryManager, MemoryManagerConfig, MemoryProvider, MemoryProviderResult, MemorySaveRequest,
95    MemorySaveResult, MemorySearchRequest, MemorySearchResult, SessionMemory, SessionMemoryConfig,
96    SessionMemoryEntry, SessionMemoryState, SummaryCallback,
97};
98pub use model::{ModelError, ModelProvider, ModelRef, ScriptedModelProvider, VvLlmModelProvider};
99pub use model_settings::{ModelSettings, ResponseFormat, RetrySettings, ToolChoice};
100pub use output_validation::{
101    HostOutputValidator, OutputRepair, OutputRepairRequest, OutputValidationContext,
102    OutputValidationResult, OUTPUT_VALIDATION_FAILED,
103};
104pub use prompt::{PromptBundle, PromptSection};
105pub use result::{ApprovalSnapshot, FinalOutputError, RunResult, RunState};
106pub use run_config::{RunConfig, ToolRegistryFactory};
107pub use run_handle::{RunHandle, RunHandleState, RunHandleStatus};
108pub use runner::{NormalizedInput, RunEventStream, Runner};
109pub use runtime::backends::{
110    CapabilityRef, CycleDispatchResult, CycleDispatcher, DistributedBackend,
111    DistributedCapabilities, DistributedCapabilityError, DistributedCapabilityRegistry,
112    DistributedCycleWorker, DistributedRunEnvelope, DistributedToolPolicy, InlineBackend,
113    ResolvedDistributedCapabilities, RuntimeExecutionBackend, RuntimeRecipe, ThreadBackend,
114    ToolsetRef,
115};
116pub use runtime::background_sessions::{
117    background_session_manager, BackgroundSessionAdoptOptions, BackgroundSessionListener,
118    BackgroundSessionManager, BackgroundSessionStartOptions, BackgroundSessionSubscription,
119};
120pub use runtime::checkpoint_codec::{checkpoint_from_json, checkpoint_to_json};
121pub use runtime::shell::{
122    build_shell_invocation, prepare_shell_execution, resolve_shell_invocation,
123    PreparedShellCommand, ShellInvocation,
124};
125pub use runtime::state::{
126    Checkpoint, CheckpointStore, EventOutboxEntry, ExtensionStateEntry, OperationError,
127    OperationJournalEntry,
128};
129pub use runtime::stores::memory::InMemoryCheckpointStore;
130pub use runtime::stores::redis::RedisCheckpointStore;
131pub use runtime::stores::sqlite::SqliteCheckpointStore;
132pub use runtime::sub_task_manager::{
133    ManagedSubTask, ManagedSubTaskSnapshot, SubTaskManager, SubTaskSessionAttachment,
134    SubTaskTurnSnapshot,
135};
136pub use runtime::{
137    _register_sub_agent_session, _unregister_sub_agent_session, continue_sub_agent_session,
138    get_sub_agent_session, register_sub_agent_session, steer_sub_agent_session,
139    sub_agent_session_registry, subscribe_sub_agent_session, unregister_sub_agent_session,
140    AfterCycleAction, AfterCycleDecision, AfterCycleHook, AfterCycleSnapshot, AfterLlmEvent,
141    AfterToolCallEvent, AgentRuntime, BeforeCycleMessageProvider, BeforeLlmEvent, BeforeLlmPatch,
142    BeforeMemoryCompactEvent, BeforeToolCallEvent, BeforeToolCallPatch, CancellationToken,
143    CancelledError, CycleRunRequest, CycleRunner, ExecutionContext, InterruptionMessageProvider,
144    NativeCycleOutcome, NativeCycleOutcomeKind, RunEventHandler, RuntimeHook, RuntimeHookManager,
145    RuntimeRunControls, SubAgentSession, SubAgentSessionListener, SubAgentSessionRegistry,
146    SubAgentSessionUnsubscribe, ToolCallRunner, ToolRunOutcome, ToolRunRequest,
147    MAX_PROMPT_TOO_LONG_RETRIES,
148};
149pub use sessions::{
150    session_store_conformance, MemorySession, MemorySessionStore, RedisSessionStore, Session,
151    SessionItem, SessionStore, SqliteSessionStore,
152};
153pub use tools::{
154    build_default_registry, dispatch_tool_call, AgentTool, AgentToolBuilder, ApprovalDecision,
155    ApprovalPolicy, ApprovalPredicate, ApprovalRequirement, BackgroundAgentTask,
156    BackgroundAgentTaskBuilder, BackgroundAgentTaskHandle, BackgroundAgentTaskSnapshot,
157    FunctionTool, StaticTool, Tool, ToolApprovalRule, ToolContext, ToolError, ToolExecutor,
158    ToolExposure, ToolFuture, ToolHandler, ToolLifecycleCallback, ToolLifecycleEvent, ToolMetadata,
159    ToolMetadataError, ToolNotFoundError, ToolOrchestrator, ToolOutput, ToolPolicy, ToolRegistry,
160    ToolRunContext, ToolRunOptions, ToolSideEffect, ToolSpec, ToolSpecContext, ToolSpecExecutor,
161    ToolSpecKind,
162};
163pub use tracing::{JsonlTraceExporter, Span, TraceSink};
164pub use types::{
165    AgentResult, AgentStatus, AgentTask, CacheUsage, CacheUsageStatus, CompletionReason,
166    CycleRecord, CycleStatus, LLMResponse, Message, MessageRole, ModelCallOperation,
167    ModelCallRecord, ModelCallStatus, NoToolPolicy, SubAgentConfig, SubAgentConfigValidationError,
168    SubTaskOutcome, SubTaskRequest, TaskTokenUsage, TokenUsage, ToolArtifactRef, ToolCall,
169    ToolDirective, ToolExecutionResult, ToolResultCursor, ToolResultStatus, ToolTruncationReason,
170    UsageSource, INVALID_SUB_AGENT_MODEL_CODE, INVALID_SUB_AGENT_MODEL_MESSAGE,
171    INVALID_SUB_AGENT_SYSTEM_PROMPT_CODE, INVALID_SUB_AGENT_SYSTEM_PROMPT_MESSAGE,
172};
173pub use workspace::{
174    validate_portable_exclude_pattern, DiscoveryFilteredWorkspaceBackend, FileInfo,
175    LocalWorkspaceBackend, MemoryWorkspaceBackend, PortableRegexError, S3WorkspaceBackend,
176    S3WorkspaceConfig, WorkspaceBackend, INVALID_EXCLUDE_FILES_PATTERN_CODE,
177    INVALID_EXCLUDE_FILES_PATTERN_MESSAGE,
178};