chasm_cli/agency/
mod.rs

1// Copyright (c) 2024-2026 Nervosys LLC
2// SPDX-License-Identifier: Apache-2.0
3//! Agent Development Kit (Agency) - Rust Implementation
4//!
5//! A Rust-native framework for building, orchestrating, and deploying AI agents.
6//! Inspired by multi-agent patterns but built from scratch for performance and control.
7//!
8//! ## Key Features
9
10#![allow(dead_code, unused_imports)]
11//!
12//! - **Code-First Development**: Define agents and tools in Rust for type safety and performance
13//! - **Modular Architecture**: Compose agents into hierarchies (sequential, parallel, loop)
14//! - **Tool Ecosystem**: Built-in tools + custom function registration
15//! - **Multi-Model Support**: Works with any LLM provider (Gemini, OpenAI, Anthropic, local)
16//! - **Session Management**: Persistent conversation state with SQLite backend
17//! - **Streaming Support**: Real-time response streaming via SSE
18//!
19//! ## Example
20//!
21//! ```rust,ignore
22//! use csm::Agency::{Agent, AgentBuilder, Tool, Runtime};
23//!
24//! let search_agent = AgentBuilder::new("researcher")
25//!     .model("gemini-2.5-flash")
26//!     .instruction("You are a helpful research assistant.")
27//!     .tool(Tool::web_search())
28//!     .build();
29//!
30//! let runtime = Runtime::new();
31//! let result = runtime.run(&search_agent, "What is quantum computing?").await?;
32//! ```
33
34pub mod agent;
35pub mod error;
36pub mod executor;
37pub mod memory;
38pub mod modality;
39pub mod models;
40pub mod orchestrator;
41pub mod proactive;
42pub mod remote;
43pub mod runtime;
44pub mod session;
45pub mod tools;
46
47// Re-export main types
48pub use agent::{Agent, AgentBuilder, AgentConfig, AgentRole, AgentStatus};
49pub use error::AgencyError;
50pub use executor::{ExecutionContext, ExecutionResult, Executor};
51pub use memory::{
52    AgentCache, CacheEntry, ChunkingConfig, ChunkingStrategy, ContextSegment, ContextSegmentType,
53    ContextWindow, Document, DocumentChunk, DocumentType, Embedding, EmbeddingModel,
54    EmbeddingProvider, KnowledgeBase, MemoryConfig, MemoryEntry, MemoryError, MemoryManager,
55    MemorySource, MemoryStats, MemoryType, SearchResult, SimilarityMetric, VectorStore,
56    VectorStoreConfig, VectorStoreStats,
57};
58pub use modality::{
59    vla_models, vlm_models, ActionCommand, ActionParameters, ActionType, AudioContent, AudioData,
60    BoundingBoxRegion, ContentPart, ImageContent, ImageData, ImageDetail, ImageFormat, Modality,
61    ModalityCapabilities, ModelCategory, MultimodalMessage, MultimodalModel, SensorData,
62    SensorType, SensorValues, VideoContent, VideoData, Waypoint,
63};
64pub use models::{AgencyEvent, AgencyMessage, EventType, ToolCall, ToolResult};
65pub use orchestrator::{OrchestrationType, Orchestrator, Pipeline, Swarm};
66pub use proactive::{
67    business_agent_config, household_agent_config, ActionRisk, ActionStatus, DetectedProblem,
68    PermissionLevel, ProactiveAction, ProactiveAgentConfig, ProactiveMonitor, ProblemCategory,
69    ProblemSeverity, ProblemStatus,
70};
71pub use remote::{
72    generate_node_id, generate_task_id, ArtifactType, GpuInfo, HardwareInfo, LogLevel,
73    MonitorStats, NodeId, NodeStatus, RemoteAgentClient, RemoteEvent, RemoteMonitor,
74    RemoteMonitorConfig, RemoteMonitorError, RemoteNode, RemoteTask, RemoteTaskBuilder,
75    RemoteTaskId, RemoteTaskStatus, ResourceUsage, TaskArtifact, TaskLogEntry, TaskMetrics,
76    TaskPriority, TaskResult,
77};
78pub use runtime::{Runtime, RuntimeConfig};
79pub use session::{Session, SessionManager, SessionState};
80pub use tools::{BuiltinTools, Tool, ToolBuilder, ToolRegistry};