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, DistributedBackend,
112    DistributedCapabilities, DistributedCapabilityError, DistributedCapabilityRegistry,
113    DistributedCycleWorker, DistributedRunEnvelope, DistributedToolPolicy, InlineBackend,
114    ResolvedDistributedCapabilities, RuntimeExecutionBackend, RuntimeRecipe, ThreadBackend,
115    ToolsetRef,
116};
117pub use runtime::background_sessions::{
118    background_session_manager, BackgroundSessionAdoptOptions, BackgroundSessionListener,
119    BackgroundSessionManager, BackgroundSessionStartOptions, BackgroundSessionSubscription,
120};
121pub use runtime::checkpoint_codec::{checkpoint_from_json, checkpoint_to_json};
122pub use runtime::shell::{
123    build_shell_invocation, prepare_shell_execution, resolve_shell_invocation,
124    PreparedShellCommand, ShellInvocation,
125};
126pub use runtime::state::{
127    Checkpoint, CheckpointStore, EventOutboxEntry, ExtensionStateEntry, OperationError,
128    OperationJournalEntry,
129};
130pub use runtime::stores::memory::InMemoryCheckpointStore;
131pub use runtime::stores::redis::RedisCheckpointStore;
132pub use runtime::stores::sqlite::SqliteCheckpointStore;
133pub use runtime::sub_task_manager::{
134    ManagedSubTask, ManagedSubTaskSnapshot, SubTaskManager, SubTaskSessionAttachment,
135    SubTaskTurnSnapshot,
136};
137pub use runtime::{
138    _register_sub_agent_session, _unregister_sub_agent_session, continue_sub_agent_session,
139    get_sub_agent_session, register_sub_agent_session, steer_sub_agent_session,
140    sub_agent_session_registry, subscribe_sub_agent_session, unregister_sub_agent_session,
141    AfterCycleAction, AfterCycleDecision, AfterCycleHook, AfterCycleSnapshot, AfterLlmEvent,
142    AfterToolCallEvent, AgentRuntime, BeforeCycleMessageProvider, BeforeLlmEvent, BeforeLlmPatch,
143    BeforeMemoryCompactEvent, BeforeToolCallEvent, BeforeToolCallPatch, CancellationToken,
144    CancelledError, CycleRunRequest, CycleRunner, ExecutionContext, InterruptionMessageProvider,
145    NativeCycleOutcome, NativeCycleOutcomeKind, RunEventHandler, RuntimeHook, RuntimeHookManager,
146    RuntimeRunControls, SubAgentSession, SubAgentSessionListener, SubAgentSessionRegistry,
147    SubAgentSessionUnsubscribe, ToolCallRunner, ToolRunOutcome, ToolRunRequest,
148    MAX_PROMPT_TOO_LONG_RETRIES,
149};
150pub use sessions::{
151    session_store_conformance, MemorySession, MemorySessionStore, RedisSessionStore, Session,
152    SessionItem, SessionStore, SqliteSessionStore,
153};
154pub use tools::{
155    build_default_registry, dispatch_tool_call, AgentTool, AgentToolBuilder, ApprovalDecision,
156    ApprovalPolicy, ApprovalPredicate, ApprovalRequirement, BackgroundAgentTask,
157    BackgroundAgentTaskBuilder, BackgroundAgentTaskHandle, BackgroundAgentTaskSnapshot,
158    FunctionTool, StaticTool, Tool, ToolApprovalRule, ToolContext, ToolError, ToolExecutor,
159    ToolExposure, ToolFuture, ToolHandler, ToolLifecycleCallback, ToolLifecycleEvent, ToolMetadata,
160    ToolMetadataError, ToolNotFoundError, ToolOrchestrator, ToolOutput, ToolPolicy, ToolRegistry,
161    ToolResultRetention, ToolRunContext, ToolRunOptions, ToolSideEffect, ToolSpec, ToolSpecContext,
162    ToolSpecExecutor, ToolSpecKind,
163};
164pub use tracing::{JsonlTraceExporter, Span, TraceSink};
165pub use types::{
166    AgentResult, AgentStatus, AgentTask, CacheUsage, CacheUsageStatus, CompletionReason,
167    CycleRecord, CycleStatus, LLMResponse, Message, MessageRole, ModelCallOperation,
168    ModelCallRecord, ModelCallStatus, NoToolPolicy, SubAgentConfig, SubAgentConfigValidationError,
169    SubTaskOutcome, SubTaskRequest, TaskTokenUsage, TokenUsage, ToolArtifactRef, ToolCall,
170    ToolDirective, ToolExecutionResult, ToolResultCursor, ToolResultStatus, ToolTruncationReason,
171    UsageSource, INVALID_SUB_AGENT_MODEL_CODE, INVALID_SUB_AGENT_MODEL_MESSAGE,
172    INVALID_SUB_AGENT_SYSTEM_PROMPT_CODE, INVALID_SUB_AGENT_SYSTEM_PROMPT_MESSAGE,
173};
174pub use workspace::{
175    validate_portable_exclude_pattern, DiscoveryFilteredWorkspaceBackend, FileInfo,
176    LocalWorkspaceBackend, MemoryWorkspaceBackend, PortableRegexError, S3WorkspaceBackend,
177    S3WorkspaceConfig, WorkspaceBackend, INVALID_EXCLUDE_FILES_PATTERN_CODE,
178    INVALID_EXCLUDE_FILES_PATTERN_MESSAGE,
179};