ricecoder_domain_agents/lib.rs
1//! Domain-Specific Agents for RiceCoder
2//!
3//! This crate provides a framework for specialized agents that focus on specific domains
4//! (frontend, backend, DevOps, etc.) with domain-specific knowledge bases and capabilities.
5//!
6//! # Architecture
7//!
8//! The framework consists of:
9//! - **Domain Agents**: Specialized agents for specific domains (Frontend, Backend, DevOps)
10//! - **Knowledge Base**: Domain-specific knowledge entries and best practices
11//! - **Registry**: Central registry for discovering and managing domain agents
12//! - **Models**: Data structures for domains, agents, and knowledge
13//!
14//! # Example
15//!
16//! ```ignore
17//! use ricecoder_domain_agents::{DomainAgentRegistryManager, DomainAgentInput};
18//! use std::collections::HashMap;
19//!
20//! #[tokio::main]
21//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
22//! // Create registry with default agents
23//! let registry = DomainAgentRegistryManager::with_defaults();
24//!
25//! // Execute frontend agent
26//! let input = DomainAgentInput {
27//! domain: "frontend".to_string(),
28//! task: "Design a React component".to_string(),
29//! context: "User profile component".to_string(),
30//! parameters: HashMap::new(),
31//! };
32//!
33//! let output = registry.execute_agent("frontend", input).await?;
34//! println!("Response: {}", output.response);
35//!
36//! Ok(())
37//! }
38//! ```
39
40#![warn(missing_docs)]
41
42pub mod domain_agents;
43pub mod error;
44pub mod knowledge_base;
45pub mod models;
46pub mod registry;
47
48pub use domain_agents::{
49 BackendAgent, DevOpsAgent, DomainAgent, DomainAgentInput, DomainAgentOutput, FrontendAgent,
50};
51pub use error::{DomainAgentError, Result};
52pub use knowledge_base::KnowledgeBaseManager;
53pub use models::{
54 Domain, DomainAgentConfig, DomainAgentMetadata, DomainAgentRegistry, KnowledgeBase,
55 KnowledgeEntry,
56};
57pub use registry::DomainAgentRegistryManager;