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};
67pub type ClaudeSDKClientDefault = InteractiveClient;
69pub use types::{
70 AssistantContent, AssistantMessage, ClaudeCodeOptions, ContentBlock, ContentValue,
71 ControlProtocolFormat, ControlRequest, ControlResponse, McpServerConfig, Message,
72 PermissionMode, ResultMessage, SystemMessage, TextContent, ThinkingContent,
73 ToolResultContent, ToolUseContent, UserContent, UserMessage,
74 PermissionBehavior, PermissionResult, PermissionResultAllow, PermissionResultDeny,
76 PermissionRuleValue, PermissionUpdate, PermissionUpdateDestination, PermissionUpdateType,
77 ToolPermissionContext, CanUseTool,
78 HookCallback, HookContext, HookMatcher,
80 BaseHookInput, HookInput, PreToolUseHookInput, PostToolUseHookInput,
82 UserPromptSubmitHookInput, StopHookInput, SubagentStopHookInput, PreCompactHookInput,
83 HookJSONOutput, AsyncHookJSONOutput, SyncHookJSONOutput,
85 HookSpecificOutput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput,
86 UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput,
87 SDKControlInitializeRequest, SDKControlInterruptRequest, SDKControlMcpMessageRequest,
89 SDKControlPermissionRequest, SDKControlRequest, SDKControlSetPermissionModeRequest,
90 SDKHookCallbackRequest,
91 SettingSource, AgentDefinition, SystemPrompt,
93};
94
95pub type ClaudeAgentOptions = ClaudeCodeOptions;
98pub type ClaudeAgentOptionsBuilder = ClaudeCodeOptionsBuilder;
100
101pub use types::ClaudeCodeOptionsBuilder;
103
104pub use transport::SubprocessTransport;
106
107pub use sdk_mcp::{
109 SdkMcpServer, SdkMcpServerBuilder, ToolDefinition, ToolHandler, ToolInputSchema,
110 ToolResult, create_simple_tool,
111 ToolResultContent as SdkToolResultContent,
112};
113
114pub mod prelude {
116 pub use crate::{
117 ClaudeCodeOptions, ClaudeSDKClient, ClaudeSDKClientWorking, Message, PermissionMode,
118 Result, SdkError, query,
119 };
120}