1#![warn(missing_docs)]
33#![warn(rustdoc::missing_crate_level_docs)]
34
35mod client;
36mod client_working;
39mod errors;
40mod interactive;
41mod internal_query;
42mod message_parser;
43pub mod model_recommendation;
44mod optimized_client;
45mod perf_utils;
46mod query;
47mod sdk_mcp;
48pub mod token_tracker;
49pub mod transport;
50mod types;
51
52pub use client::ClaudeSDKClient;
54pub use client_working::ClaudeSDKClientWorking;
57pub use errors::{Result, SdkError};
58pub use interactive::InteractiveClient;
59pub use internal_query::Query;
60pub use query::query;
61pub use interactive::InteractiveClient as SimpleInteractiveClient;
63pub use model_recommendation::ModelRecommendation;
64pub use optimized_client::{ClientMode, OptimizedClient};
65pub use perf_utils::{MessageBatcher, PerformanceMetrics, RetryConfig};
66pub use token_tracker::{BudgetLimit, BudgetManager, BudgetStatus, TokenUsageTracker};
67
68pub type ClaudeSDKClientDefault = InteractiveClient;
70pub use types::{
71 AssistantContent, AssistantMessage, ClaudeCodeOptions, ContentBlock, ContentValue,
72 ControlProtocolFormat, ControlRequest, ControlResponse, McpServerConfig, Message,
73 PermissionMode, ResultMessage, SystemMessage, TextContent, ThinkingContent,
74 ToolResultContent, ToolUseContent, UserContent, UserMessage,
75 PermissionBehavior, PermissionResult, PermissionResultAllow, PermissionResultDeny,
77 PermissionRuleValue, PermissionUpdate, PermissionUpdateDestination, PermissionUpdateType,
78 ToolPermissionContext, CanUseTool, HookCallback, HookContext, HookMatcher,
79 SDKControlInitializeRequest, SDKControlInterruptRequest, SDKControlMcpMessageRequest,
81 SDKControlPermissionRequest, SDKControlRequest, SDKControlSetPermissionModeRequest,
82 SDKHookCallbackRequest,
83 SettingSource, AgentDefinition, SystemPrompt,
85};
86
87pub type ClaudeAgentOptions = ClaudeCodeOptions;
90pub type ClaudeAgentOptionsBuilder = ClaudeCodeOptionsBuilder;
92
93pub use types::ClaudeCodeOptionsBuilder;
95
96pub use sdk_mcp::{
98 SdkMcpServer, SdkMcpServerBuilder, ToolDefinition, ToolHandler, ToolInputSchema,
99 ToolResult, create_simple_tool,
100 ToolResultContent as SdkToolResultContent,
101};
102
103pub mod prelude {
105 pub use crate::{
106 ClaudeCodeOptions, ClaudeSDKClient, ClaudeSDKClientWorking, Message, PermissionMode,
107 Result, SdkError, query,
108 };
109}