Skip to main content

agent_teams/
lib.rs

1//! # agent-teams
2//!
3//! A generic Rust Agent Teams framework replicating the Claude Code Agent Teams
4//! architecture (lead, teammates, task list, mailbox), with pluggable backends
5//! for **Claude Code** (via `cc-sdk`) and **Codex** (via JSON-RPC 2.0 subprocess).
6
7#![warn(clippy::all)]
8
9pub mod error;
10pub mod models;
11pub mod util;
12
13pub mod team;
14pub mod task;
15pub mod messaging;
16
17pub mod consensus;
18pub mod memory;
19
20pub mod backend;
21pub mod orchestrator;
22
23#[cfg(feature = "dashboard")]
24pub mod dashboard;
25
26#[cfg(feature = "checkpoint")]
27pub mod checkpoint;
28
29#[cfg(feature = "tui")]
30pub mod tui;
31
32pub use error::{Error, Result};
33pub use backend::{AgentBackend, AgentOutput, AgentOutputStream, AgentSession, BackendType, SpawnConfig, SpawnConfigBuilder};
34pub use backend::delegation::{CliDelegation, CliTool};
35pub use models::{CreateTaskRequest, InboxMessage, SessionState, TaskFile, TaskFilter, TaskStatus, TaskUpdate, TeamConfig};
36pub use models::{TokenUsage, ToolCallRecord, CostSummary, AgentTokenUsage};
37pub use consensus::{AgentResponse, ConsensusRequest, ConsensusResult, ConsensusStrategy};
38pub use memory::{ConversationMemory, MemoryConfig, MemoryManager, Role, TurnRecord};
39pub use orchestrator::TeamOrchestrator;
40pub use task::DependencyGraph;
41
42/// Convenience re-exports for common usage patterns.
43///
44/// ```rust
45/// use agent_teams::prelude::*;
46/// ```
47pub mod prelude {
48    pub use crate::backend::claude_code::ClaudeCodeBackend;
49    pub use crate::backend::codex::CodexBackend;
50    pub use crate::backend::gemini::GeminiCliBackend;
51    pub use crate::backend::router::{BackendRouter, CapabilityRouter, ChainRouter, KeywordRouter, SmartRouter, PromptComplexity};
52    pub use crate::backend::delegation::{CliDelegation, CliTool};
53    pub use crate::backend::{
54        AgentBackend, AgentOutput, AgentOutputStream, AgentSession, BackendType, SpawnConfig,
55        SpawnConfigBuilder,
56    };
57    pub use crate::error::{Error, Result};
58    pub use crate::models::{
59        CreateTaskRequest, InboxMessage, SessionState, TaskFile, TaskFilter, TaskStatus, TaskUpdate, TeamConfig,
60    };
61    pub use crate::consensus::{AgentResponse, ConsensusRequest, ConsensusResult, ConsensusStrategy};
62    pub use crate::memory::{ConversationMemory, MemoryConfig, MemoryManager};
63    pub use crate::orchestrator::TeamOrchestrator;
64    pub use crate::task::DependencyGraph;
65
66    pub use crate::models::token::{TokenUsage, ToolCallRecord, CostSummary, AgentTokenUsage, estimate_cost};
67
68    #[cfg(feature = "checkpoint")]
69    pub use crate::checkpoint::{CheckpointCollector, CheckpointStore, CheckpointQuery, CheckpointFilter, CheckpointDiff, AutoCheckpointTrigger};
70    #[cfg(feature = "checkpoint")]
71    pub use crate::models::checkpoint::{Checkpoint, CheckpointSession, CheckpointFile, FileRole};
72}