Skip to main content

agent_air_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::{DEFAULT_CHANNEL_SIZE, LLMController};
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    ASK_FOR_PERMISSIONS_TOOL_DESCRIPTION, ASK_FOR_PERMISSIONS_TOOL_NAME,
27    ASK_FOR_PERMISSIONS_TOOL_SCHEMA, ASK_USER_QUESTIONS_TOOL_DESCRIPTION,
28    ASK_USER_QUESTIONS_TOOL_NAME, ASK_USER_QUESTIONS_TOOL_SCHEMA, Answer, AskForPermissionsTool,
29    AskUserQuestionsRequest, AskUserQuestionsResponse, AskUserQuestionsTool, BASH_TOOL_DESCRIPTION,
30    BASH_TOOL_NAME, BASH_TOOL_SCHEMA, BashTool, DisplayConfig, DisplayResult,
31    EDIT_FILE_TOOL_DESCRIPTION, EDIT_FILE_TOOL_NAME, EDIT_FILE_TOOL_SCHEMA, EditFileTool,
32    Executable, GLOB_TOOL_DESCRIPTION, GLOB_TOOL_NAME, GLOB_TOOL_SCHEMA, GREP_TOOL_DESCRIPTION,
33    GREP_TOOL_NAME, GREP_TOOL_SCHEMA, GlobTool, GrepOutputMode, GrepTool,
34    LIST_PLANS_TOOL_DESCRIPTION, LIST_PLANS_TOOL_NAME, LIST_PLANS_TOOL_SCHEMA,
35    LIST_SKILLS_TOOL_DESCRIPTION, LIST_SKILLS_TOOL_NAME, LIST_SKILLS_TOOL_SCHEMA, LLMTool,
36    LS_TOOL_DESCRIPTION, LS_TOOL_NAME, LS_TOOL_SCHEMA, ListPlansTool, ListSkillsTool, LsTool,
37    MARKDOWN_PLAN_TOOL_DESCRIPTION, MARKDOWN_PLAN_TOOL_NAME, MARKDOWN_PLAN_TOOL_SCHEMA,
38    MULTI_EDIT_TOOL_DESCRIPTION, MULTI_EDIT_TOOL_NAME, MULTI_EDIT_TOOL_SCHEMA, MarkdownPlanTool,
39    MultiEditTool, PendingPermissionInfo, PendingQuestionInfo, PermissionError,
40    PermissionPanelResponse, PermissionRegistry, PlanStore, Question, READ_FILE_TOOL_DESCRIPTION,
41    READ_FILE_TOOL_NAME, READ_FILE_TOOL_SCHEMA, READ_PLAN_TOOL_DESCRIPTION, READ_PLAN_TOOL_NAME,
42    READ_PLAN_TOOL_SCHEMA, ReadFileTool, ReadPlanTool, ResultContentType, ToolBatchResult,
43    ToolContext, ToolDefinition, ToolExecutor, ToolRegistry, ToolRequest, ToolResult,
44    ToolResultStatus, ToolType, UPDATE_PLAN_STEP_TOOL_DESCRIPTION, UPDATE_PLAN_STEP_TOOL_NAME,
45    UPDATE_PLAN_STEP_TOOL_SCHEMA, UpdatePlanStepTool, UserInteractionError,
46    UserInteractionRegistry, ValidationError, ValidationErrorCode, ValidationErrorDetail,
47    WEB_SEARCH_TOOL_DESCRIPTION, WEB_SEARCH_TOOL_NAME, WEB_SEARCH_TOOL_SCHEMA,
48    WRITE_FILE_TOOL_DESCRIPTION, WRITE_FILE_TOOL_NAME, WRITE_FILE_TOOL_SCHEMA, WebSearchTool,
49    WriteFileTool,
50};
51// Re-export new permission types
52pub use crate::permissions::{Grant, GrantTarget, PermissionLevel, PermissionRequest};
53pub use types::{
54    ContentBlock, ControlCmd, ControllerEvent, ControllerInputPayload, FromLLMPayload, InputType,
55    LLMRequestType, LLMResponseType, Message, MessageRole, ToLLMPayload, TurnCounter, TurnId,
56};
57pub use usage::{TokenMeter, TokenUsageTracker};