1#![warn(missing_docs)]
33#![warn(rustdoc::missing_crate_level_docs)]
34
35pub mod cli_download;
37mod client;
38mod client_working;
41mod errors;
42mod interactive;
43mod internal_query;
44mod message_parser;
45pub mod model_recommendation;
46mod optimized_client;
47mod perf_utils;
48mod query;
49mod sdk_mcp;
50pub mod token_tracker;
51pub mod transport;
52mod types;
53
54pub use client::ClaudeSDKClient;
56pub use client_working::ClaudeSDKClientWorking;
59pub use errors::{Result, SdkError};
60pub use interactive::InteractiveClient;
61pub use internal_query::Query;
62pub use query::query;
63pub use interactive::InteractiveClient as SimpleInteractiveClient;
65pub use model_recommendation::ModelRecommendation;
66pub use optimized_client::{ClientMode, OptimizedClient};
67pub use perf_utils::{MessageBatcher, PerformanceMetrics, RetryConfig};
68pub use token_tracker::{BudgetLimit, BudgetManager, BudgetStatus, TokenUsageTracker};
69pub type ClaudeSDKClientDefault = InteractiveClient;
71pub use types::{
72 AssistantContent, AssistantMessage, ClaudeCodeOptions, ContentBlock, ContentValue,
73 ControlProtocolFormat, ControlRequest, ControlResponse, McpServerConfig, Message,
74 PermissionMode, ResultMessage, SystemMessage, TextContent, ThinkingContent,
75 ToolResultContent, ToolUseContent, UserContent, UserMessage,
76 PermissionBehavior, PermissionResult, PermissionResultAllow, PermissionResultDeny,
78 PermissionRuleValue, PermissionUpdate, PermissionUpdateDestination, PermissionUpdateType,
79 ToolPermissionContext, CanUseTool,
80 HookCallback, HookContext, HookMatcher,
82 BaseHookInput, HookInput, PreToolUseHookInput, PostToolUseHookInput,
84 PostToolUseFailureHookInput, UserPromptSubmitHookInput, StopHookInput,
85 SubagentStopHookInput, PreCompactHookInput,
86 NotificationHookInput, SubagentStartHookInput, PermissionRequestHookInput,
87 HookJSONOutput, AsyncHookJSONOutput, SyncHookJSONOutput,
89 HookSpecificOutput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput,
90 PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput,
91 SessionStartHookSpecificOutput, NotificationHookSpecificOutput,
92 SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput,
93 SDKControlInitializeRequest, SDKControlInterruptRequest, SDKControlMcpMessageRequest,
95 SDKControlPermissionRequest, SDKControlRequest, SDKControlSetPermissionModeRequest,
96 SDKHookCallbackRequest, SDKControlRewindFilesRequest,
97 SettingSource, AgentDefinition, SystemPrompt,
99 ToolsConfig, ToolsPreset, SdkBeta,
101 SandboxSettings, SandboxNetworkConfig, SandboxIgnoreViolations,
102 SdkPluginConfig,
103};
104
105pub type ClaudeAgentOptions = ClaudeCodeOptions;
108pub type ClaudeAgentOptionsBuilder = ClaudeCodeOptionsBuilder;
110
111pub use types::ClaudeCodeOptionsBuilder;
113
114pub use transport::SubprocessTransport;
116
117pub use sdk_mcp::{
119 SdkMcpServer, SdkMcpServerBuilder, ToolDefinition, ToolHandler, ToolInputSchema,
120 ToolResult, create_simple_tool,
121 ToolResultContent as SdkToolResultContent,
122};
123
124pub mod prelude {
126 pub use crate::{
127 ClaudeCodeOptions, ClaudeSDKClient, ClaudeSDKClientWorking, Message, PermissionMode,
128 Result, SdkError, query,
129 };
130}