73 lines
2.3 KiB
Rust
Raw Normal View History

//! 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", &registry).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};