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