1pub mod budget;
40pub mod config;
41pub mod error;
42pub mod event;
43pub mod exec;
44pub mod plugin;
45pub mod plugins;
46pub mod protocol;
47pub mod reasoning;
48pub mod run;
49pub mod stream;
50pub mod thinking_filter;
51pub mod tokens;
52pub mod tool;
53pub mod tool_identity;
54pub mod tool_result_budget;
55pub mod trajectory;
56pub mod types;
57
58pub use budget::TokenBudget;
59pub use config::{
60 AgentBuilder, LoopConfig, MaxTokensRecovery, PluginNames, TokenScaling,
61 DEFAULT_GRACE_ITERATIONS,
62};
63pub use error::{LoopError, StreamError, ToolError, ToolValidationError};
64pub use event::ChannelSink;
65pub use event::{AgentEvent, EventSink, ProviderRequestSummary};
66pub use plugin::PluginCapabilities;
67pub use plugin::{
68 AfterToolCall, AfterToolDecision, BeforeToolCall, BeforeToolDecision, ContextTransform,
69 EventObserver, FollowUpSource, Plugin, SteeringSource, TransformContext,
70};
71pub use plugins::GracefulTurnLimit;
72pub use protocol::{
73 DefaultProtocolPolicy, HiddenToolContext, HiddenToolError, PlainTextRecoveryContext,
74 ProtocolPolicy, DEFAULT_PLAIN_TEXT_RECOVERY_PROMPT,
75};
76pub use reasoning::{
77 audit_replay, OpenRouterReasoningCodec, ReasoningCodec, ReasoningFormat, ReasoningItem,
78 ReplayAudit, ReplayContract, ReplayViolation,
79};
80pub use run::{run, run_continue, LoopOutcome, RunResult};
81pub use stream::{
82 AssistantStreamChunk, ReasoningEffort, StreamEvent, StreamFn, StreamRequest, StreamResponse,
83};
84pub use thinking_filter::{strip_thinking_tags, ThinkingTagStreamFilter};
85pub use tokens::{CharHeuristicEstimator, TokenEstimator, CHAR_HEURISTIC};
86pub use tool::{
87 arg_parse_error_value, detect_arg_parse_error, AgentTool, ExecutionMode, ToolCall,
88 ToolHistoryPolicy, ToolRegistry, ToolResult, ToolUpdateSink, TypedAgentTool,
89 ARG_PARSE_ERROR_MARKER, ARG_PARSE_RAW_MARKER,
90};
91pub use tool_identity::{
92 extract_args_key, extract_operation_key, extract_target, ArgsKeyFn, TargetExtractor, TargetFn,
93 ToolIdentityPolicy,
94};
95pub use tool_result_budget::{ToolResultBudget, DEFAULT_PER_TOOL_CHARS};
96pub use trajectory::{
97 InMemoryTrajectorySink, TrajectoryError, TrajectoryPayload, TrajectoryRecord,
98 TrajectoryRecorder, TrajectorySink, TRAJECTORY_SCHEMA_VERSION,
99};
100pub use types::{
101 AgentContext, AgentMessage, AssistantBlock, AssistantContent, ImageContent,
102 ReasoningDetailsContent, RunIdentity, StopReason, TextContent, ToolResultBlock,
103 ToolResultContent, UserBlock, UserContent,
104};