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