Skip to main content

agent_core_runtime/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::{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, BashTool, DisplayConfig, DisplayResult, EditFileTool, Executable,
28    GlobTool, GrepTool, GrepOutputMode, LsTool, MultiEditTool, PendingPermissionInfo,
29    PendingQuestionInfo, PermissionError, PermissionPanelResponse, PermissionRegistry, Question,
30    ReadFileTool, ResultContentType, ToolBatchResult, ToolContext, ToolDefinition, ToolExecutor,
31    ToolRegistry, ToolRequest, ToolResult, ToolResultStatus, ToolType, UserInteractionError,
32    UserInteractionRegistry, ValidationError, ValidationErrorCode, ValidationErrorDetail, LLMTool,
33    WebSearchTool, WriteFileTool, ASK_FOR_PERMISSIONS_TOOL_DESCRIPTION,
34    ASK_FOR_PERMISSIONS_TOOL_NAME, ASK_FOR_PERMISSIONS_TOOL_SCHEMA,
35    ASK_USER_QUESTIONS_TOOL_DESCRIPTION, ASK_USER_QUESTIONS_TOOL_NAME,
36    ASK_USER_QUESTIONS_TOOL_SCHEMA, BASH_TOOL_DESCRIPTION, BASH_TOOL_NAME, BASH_TOOL_SCHEMA,
37    EDIT_FILE_TOOL_DESCRIPTION, EDIT_FILE_TOOL_NAME, EDIT_FILE_TOOL_SCHEMA, GLOB_TOOL_DESCRIPTION,
38    GLOB_TOOL_NAME, GLOB_TOOL_SCHEMA, GREP_TOOL_DESCRIPTION, GREP_TOOL_NAME, GREP_TOOL_SCHEMA,
39    LS_TOOL_DESCRIPTION, LS_TOOL_NAME, LS_TOOL_SCHEMA, MULTI_EDIT_TOOL_DESCRIPTION,
40    MULTI_EDIT_TOOL_NAME, MULTI_EDIT_TOOL_SCHEMA, READ_FILE_TOOL_DESCRIPTION, READ_FILE_TOOL_NAME,
41    READ_FILE_TOOL_SCHEMA, WEB_SEARCH_TOOL_DESCRIPTION, WEB_SEARCH_TOOL_NAME,
42    WEB_SEARCH_TOOL_SCHEMA, WRITE_FILE_TOOL_DESCRIPTION, WRITE_FILE_TOOL_NAME,
43    WRITE_FILE_TOOL_SCHEMA,
44};
45// Re-export new permission types
46pub use crate::permissions::{Grant, GrantTarget, PermissionLevel, PermissionRequest};
47pub use types::{
48    ContentBlock, ControlCmd, ControllerEvent, ControllerInputPayload, FromLLMPayload, InputType,
49    LLMRequestType, LLMResponseType, Message, MessageRole, ToLLMPayload, TurnCounter, TurnId,
50};
51pub use usage::{TokenMeter, TokenUsageTracker};