73 lines
2.3 KiB
Rust
73 lines
2.3 KiB
Rust
|
|
//! Pre-built capability packages for VAPORA agents.
|
||
|
|
//!
|
||
|
|
//! A capability package bundles everything needed to deploy a domain-optimized
|
||
|
|
//! agent without manual configuration: system prompt, MCP tool list, LLM model
|
||
|
|
//! preferences, and task-type classification hints.
|
||
|
|
//!
|
||
|
|
//! # Quick Start
|
||
|
|
//!
|
||
|
|
//! ```rust
|
||
|
|
//! use vapora_capabilities::CapabilityRegistry;
|
||
|
|
//!
|
||
|
|
//! // 1. Create the registry with all built-ins
|
||
|
|
//! let registry = CapabilityRegistry::with_built_ins();
|
||
|
|
//!
|
||
|
|
//! // 2. Activate a capability → produces an AgentDefinition
|
||
|
|
//! let def = registry.activate("code-reviewer").unwrap();
|
||
|
|
//!
|
||
|
|
//! // 3. Use the definition to instantiate an AgentMetadata in the coordinator
|
||
|
|
//! assert_eq!(def.role, "code_reviewer");
|
||
|
|
//! assert!(def.system_prompt.is_some());
|
||
|
|
//! ```
|
||
|
|
//!
|
||
|
|
//! # Built-in Capabilities
|
||
|
|
//!
|
||
|
|
//! | ID | Role | Purpose |
|
||
|
|
//! |----|------|---------|
|
||
|
|
//! | `code-reviewer` | `code_reviewer` | Security and correctness-focused code review |
|
||
|
|
//! | `doc-generator` | `documenter` | Technical documentation generation |
|
||
|
|
//! | `pr-monitor` | `monitor` | Pull request health and merge readiness |
|
||
|
|
//!
|
||
|
|
//! # Customization via TOML
|
||
|
|
//!
|
||
|
|
//! Override built-in settings or add custom capabilities through a TOML file:
|
||
|
|
//!
|
||
|
|
//! ```toml
|
||
|
|
//! [[override]]
|
||
|
|
//! id = "code-reviewer"
|
||
|
|
//! preferred_model = "claude-sonnet-4-6"
|
||
|
|
//!
|
||
|
|
//! [[custom]]
|
||
|
|
//! id = "db-optimizer"
|
||
|
|
//! display_name = "Database Optimizer"
|
||
|
|
//! description = "Analyzes and optimizes SQL queries"
|
||
|
|
//! agent_role = "db_optimizer"
|
||
|
|
//! task_types = ["db_optimization"]
|
||
|
|
//! system_prompt = "You are a database expert..."
|
||
|
|
//! mcp_tools = ["file_read", "code_search"]
|
||
|
|
//! preferred_provider = "claude"
|
||
|
|
//! preferred_model = "claude-sonnet-4-6"
|
||
|
|
//! max_tokens = 4096
|
||
|
|
//! temperature = 0.2
|
||
|
|
//! priority = 65
|
||
|
|
//! parallelizable = true
|
||
|
|
//! ```
|
||
|
|
//!
|
||
|
|
//! Then apply via [`CapabilityLoader`]:
|
||
|
|
//!
|
||
|
|
//! ```rust,no_run
|
||
|
|
//! use vapora_capabilities::{CapabilityRegistry, CapabilityLoader};
|
||
|
|
//!
|
||
|
|
//! let registry = CapabilityRegistry::with_built_ins();
|
||
|
|
//! CapabilityLoader::load_and_apply("config/capabilities.toml", ®istry).unwrap();
|
||
|
|
//! ```
|
||
|
|
|
||
|
|
pub mod built_in;
|
||
|
|
pub mod capability;
|
||
|
|
pub mod loader;
|
||
|
|
pub mod registry;
|
||
|
|
|
||
|
|
pub use capability::{Capability, CapabilitySpec, CustomCapability};
|
||
|
|
pub use loader::{CapabilityConfig, CapabilityLoader, CapabilityOverride, LoaderError};
|
||
|
|
pub use registry::{CapabilityError, CapabilityRegistry};
|