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 UserPromptSubmitHookInput, StopHookInput, SubagentStopHookInput, PreCompactHookInput,
85 HookJSONOutput, AsyncHookJSONOutput, SyncHookJSONOutput,
87 HookSpecificOutput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput,
88 UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput,
89 SDKControlInitializeRequest, SDKControlInterruptRequest, SDKControlMcpMessageRequest,
91 SDKControlPermissionRequest, SDKControlRequest, SDKControlSetPermissionModeRequest,
92 SDKHookCallbackRequest, SDKControlRewindFilesRequest,
93 SettingSource, AgentDefinition, SystemPrompt,
95 ToolsConfig, ToolsPreset, SdkBeta,
97 SandboxSettings, SandboxNetworkConfig, SandboxIgnoreViolations,
98 SdkPluginConfig,
99};
100
101pub type ClaudeAgentOptions = ClaudeCodeOptions;
104pub type ClaudeAgentOptionsBuilder = ClaudeCodeOptionsBuilder;
106
107pub use types::ClaudeCodeOptionsBuilder;
109
110pub use transport::SubprocessTransport;
112
113pub use sdk_mcp::{
115 SdkMcpServer, SdkMcpServerBuilder, ToolDefinition, ToolHandler, ToolInputSchema,
116 ToolResult, create_simple_tool,
117 ToolResultContent as SdkToolResultContent,
118};
119
120pub mod prelude {
122 pub use crate::{
123 ClaudeCodeOptions, ClaudeSDKClient, ClaudeSDKClientWorking, Message, PermissionMode,
124 Result, SdkError, query,
125 };
126}