1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//! Core agent functionality for Bamboo.
//!
//! This module provides the essential components for building and running AI agents,
//! including conversation management, tool execution, memory systems, and budget controls.
//!
//! # Architecture
//!
//! The core module is organized into several key subsystems:
//!
//! - **agent**: Agent implementation and event handling
//! - **budget**: Token budget management and limits
//! - **composition**: Agent composition and orchestration
//! - **memory**: External memory and conversation summarization
//! - **storage**: Persistent storage backends (JSONL, etc.)
//! - **task**: Task list management for task tracking
//! - **tools**: Tool execution framework and types
//!
//! # Key Types
//!
//! - Agent: Main agent implementation (see agent submodule)
//! - [`Session`]: Conversation session management
//! - [`Message`]: Message representation with roles and content
//! - [`ToolExecutor`]: Tool execution trait and implementation
//! - [`Storage`]: Storage trait for persistence
//! - [`ExternalMemory`]: Memory management system
//!
//! # Example
//!
//! ```no_run
//! use bamboo_agent::agent::{Session, Message, Role};
//!
//! // Create a new session
//! let session = Session::new("session-id", "gpt-4o-mini");
//!
//! // Add a message
//! let message = Message::user("Hello!");
//! assert_eq!(message.role, Role::User);
//! ```
//!
//! # Re-exports
//!
//! This module re-exports commonly used types for convenience:
//!
//! - Event types: [`AgentEvent`], [`TokenUsage`], [`TokenBudgetUsage`]
//! - Conversation types: [`ConversationSummary`], [`Message`], [`MessageContent`], [`Role`], [`Session`]
//! - Tool types: [`ToolCall`], [`ToolResult`], [`ToolExecutor`], [`ToolError`]
//! - Storage types: [`Storage`], [`JsonlStorage`]
//! - Memory types: [`ExternalMemory`], [`format_summary_as_note`]
//! - Task types: [`TaskList`], [`TaskItem`], [`TaskItemStatus`]
/// Persistent storage backends
pub use ;
pub use ;
pub use AgentError;
pub use create_budget_for_model;
pub use ;
pub use ;
pub use ;
pub use ;