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, MicrocompactionPolicy,
96    MicrocompactionPolicyError, SessionMemory, SessionMemoryConfig, SessionMemoryEntry,
97    SessionMemoryState, SummaryCallback,
98};
99pub use model::{ModelError, ModelProvider, ModelRef, ScriptedModelProvider, VvLlmModelProvider};
100pub use model_settings::{ModelSettings, ResponseFormat, RetrySettings, ToolChoice};
101pub use output_validation::{
102    HostOutputValidator, OutputRepair, OutputRepairRequest, OutputValidationContext,
103    OutputValidationResult, OUTPUT_VALIDATION_FAILED,
104};
105pub use prompt::{PromptBundle, PromptSection};
106pub use result::{ApprovalSnapshot, FinalOutputError, RunResult, RunState};
107pub use run_config::{RunConfig, ToolRegistryFactory};
108pub use run_handle::{RunHandle, RunHandleState, RunHandleStatus};
109pub use runner::{NormalizedInput, RunEventStream, Runner};
110pub use runtime::backends::{
111    CapabilityRef, CycleDispatchResult, CycleDispatcher, CycleEnqueuer, DistributedAdvanceDecision,
112    DistributedBackend, DistributedCapabilities, DistributedCapabilityError,
113    DistributedCapabilityRegistry, DistributedCycleWorker, DistributedDeliveryOutcome,
114    DistributedRunEnvelope, DistributedRunHandle, DistributedToolPolicy, DistributedWaitReason,
115    InlineBackend, ResolvedDistributedCapabilities, RuntimeExecutionBackend, RuntimeRecipe,
116    ThreadBackend, ToolsetRef,
117};
118pub use runtime::background_sessions::{
119    background_session_manager, BackgroundSessionAdoptOptions, BackgroundSessionListener,
120    BackgroundSessionManager, BackgroundSessionStartOptions, BackgroundSessionSubscription,
121};
122pub use runtime::checkpoint_codec::{checkpoint_from_json, checkpoint_to_json};
123pub use runtime::shell::{
124    build_shell_invocation, prepare_shell_execution, resolve_shell_invocation,
125    PreparedShellCommand, ShellInvocation,
126};
127pub use runtime::state::{
128    Checkpoint, CheckpointStore, EventOutboxEntry, ExtensionStateEntry, OperationError,
129    OperationJournalEntry,
130};
131pub use runtime::stores::memory::InMemoryCheckpointStore;
132pub use runtime::stores::redis::RedisCheckpointStore;
133pub use runtime::stores::sqlite::SqliteCheckpointStore;
134pub use runtime::sub_task_manager::{
135    ManagedSubTask, ManagedSubTaskSnapshot, SubTaskManager, SubTaskSessionAttachment,
136    SubTaskTurnSnapshot,
137};
138pub use runtime::{
139    _register_sub_agent_session, _unregister_sub_agent_session, continue_sub_agent_session,
140    get_sub_agent_session, register_sub_agent_session, steer_sub_agent_session,
141    sub_agent_session_registry, subscribe_sub_agent_session, unregister_sub_agent_session,
142    AfterCycleAction, AfterCycleDecision, AfterCycleHook, AfterCycleSnapshot, AfterLlmEvent,
143    AfterToolCallEvent, AgentRuntime, BeforeCycleMessageProvider, BeforeLlmEvent, BeforeLlmPatch,
144    BeforeMemoryCompactEvent, BeforeToolCallEvent, BeforeToolCallPatch, CancellationToken,
145    CancelledError, CycleRunRequest, CycleRunner, ExecutionContext, InterruptionMessageProvider,
146    NativeCycleOutcome, NativeCycleOutcomeKind, RunEventHandler, RuntimeHook, RuntimeHookManager,
147    RuntimeRunControls, SubAgentSession, SubAgentSessionListener, SubAgentSessionRegistry,
148    SubAgentSessionUnsubscribe, ToolCallRunner, ToolRunOutcome, ToolRunRequest,
149    MAX_PROMPT_TOO_LONG_RETRIES,
150};
151pub use sessions::{
152    session_store_conformance, MemorySession, MemorySessionStore, RedisSessionStore, Session,
153    SessionItem, SessionStore, SqliteSessionStore,
154};
155pub use tools::{
156    build_default_registry, dispatch_tool_call, AgentTool, AgentToolBuilder, ApprovalDecision,
157    ApprovalPolicy, ApprovalPredicate, ApprovalRequirement, BackgroundAgentTask,
158    BackgroundAgentTaskBuilder, BackgroundAgentTaskHandle, BackgroundAgentTaskSnapshot,
159    FunctionTool, StaticTool, Tool, ToolApprovalRule, ToolContext, ToolError, ToolExecutor,
160    ToolExposure, ToolFuture, ToolHandler, ToolLifecycleCallback, ToolLifecycleEvent, ToolMetadata,
161    ToolMetadataError, ToolNotFoundError, ToolOrchestrator, ToolOutput, ToolPolicy, ToolRegistry,
162    ToolResultRetention, ToolRunContext, ToolRunOptions, ToolSideEffect, ToolSpec, ToolSpecContext,
163    ToolSpecExecutor, ToolSpecKind,
164};
165pub use tracing::{JsonlTraceExporter, Span, TraceSink};
166pub use types::{
167    AgentResult, AgentStatus, AgentTask, CacheUsage, CacheUsageStatus, CompletionReason,
168    CycleRecord, CycleStatus, LLMResponse, Message, MessageRole, ModelCallOperation,
169    ModelCallRecord, ModelCallStatus, NoToolPolicy, SubAgentConfig, SubAgentConfigValidationError,
170    SubTaskOutcome, SubTaskRequest, TaskTokenUsage, TokenUsage, ToolArtifactRef, ToolCall,
171    ToolDirective, ToolExecutionResult, ToolResultCursor, ToolResultStatus, ToolTruncationReason,
172    UsageSource, INVALID_SUB_AGENT_MODEL_CODE, INVALID_SUB_AGENT_MODEL_MESSAGE,
173    INVALID_SUB_AGENT_SYSTEM_PROMPT_CODE, INVALID_SUB_AGENT_SYSTEM_PROMPT_MESSAGE,
174};
175pub use workspace::{
176    validate_portable_exclude_pattern, DiscoveryFilteredWorkspaceBackend, FileInfo,
177    LocalWorkspaceBackend, MemoryWorkspaceBackend, PortableRegexError, S3WorkspaceBackend,
178    S3WorkspaceConfig, WorkspaceBackend, INVALID_EXCLUDE_FILES_PATTERN_CODE,
179    INVALID_EXCLUDE_FILES_PATTERN_MESSAGE,
180};