agent_core/controller/
mod.rs

1//! LLM session controller and tool execution framework.
2
3mod error;
4mod llm_controller;
5/// Session management and context compaction.
6pub mod session;
7/// Stateless execution support.
8pub mod stateless;
9/// Tool execution and user interaction.
10pub mod tools;
11/// Core types for controller communication.
12pub mod types;
13/// Token usage tracking.
14pub mod usage;
15
16pub use error::ControllerError;
17pub use llm_controller::{EventFunc, LLMController, DEFAULT_CHANNEL_SIZE};
18pub use session::{
19    CompactResult, CompactionConfig, LLMProvider, LLMSession, LLMSessionConfig, LLMSessionManager,
20    SessionStatus, TokenUsage, ToolCompaction,
21};
22pub use stateless::{
23    RequestOptions, StatelessConfig, StatelessError, StatelessExecutor, StatelessResult,
24};
25pub use tools::{
26    Answer, AskForPermissionsTool, AskUserQuestionsRequest, AskUserQuestionsResponse,
27    AskUserQuestionsTool, DisplayConfig, DisplayResult, Executable, PendingPermissionInfo,
28    PendingQuestionInfo, PermissionCategory, PermissionError, PermissionGrant, PermissionRegistry,
29    PermissionRequest, PermissionResponse, PermissionScope, Question, ResultContentType,
30    ToolBatchResult, ToolContext, ToolDefinition, ToolExecutor, ToolRegistry, ToolRequest,
31    ToolResult, ToolResultStatus, ToolType, UserInteractionError, UserInteractionRegistry,
32    ValidationError, ValidationErrorCode, ValidationErrorDetail, LLMTool, WebSearchTool,
33    ASK_FOR_PERMISSIONS_TOOL_DESCRIPTION, ASK_FOR_PERMISSIONS_TOOL_NAME,
34    ASK_FOR_PERMISSIONS_TOOL_SCHEMA, ASK_USER_QUESTIONS_TOOL_DESCRIPTION,
35    ASK_USER_QUESTIONS_TOOL_NAME, ASK_USER_QUESTIONS_TOOL_SCHEMA, WEB_SEARCH_TOOL_DESCRIPTION,
36    WEB_SEARCH_TOOL_NAME, WEB_SEARCH_TOOL_SCHEMA,
37};
38pub use types::{
39    ContentBlock, ControlCmd, ControllerEvent, ControllerInputPayload, FromLLMPayload, InputType,
40    LLMRequestType, LLMResponseType, Message, MessageRole, ToLLMPayload, TurnCounter, TurnId,
41};
42pub use usage::{TokenMeter, TokenUsageTracker};