1#![warn(missing_docs)]
33#![warn(rustdoc::missing_crate_level_docs)]
34
35pub mod cli_download;
37mod client;
38mod client_working;
39mod errors;
40mod interactive;
41mod internal_query;
42mod message_parser;
43pub mod model_recommendation;
44mod optimized_client;
45pub mod sessions;
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;
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 sessions::{SessionInfo, SessionMessage, list_sessions, get_session_messages, rename_session, tag_session, delete_session, fork_session};
66pub use perf_utils::{MessageBatcher, PerformanceMetrics, RetryConfig};
67pub use token_tracker::{BudgetLimit, BudgetManager, BudgetStatus, TokenUsageTracker};
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,
79 HookCallback, HookContext, HookMatcher,
81 BaseHookInput, HookInput, PreToolUseHookInput, PostToolUseHookInput,
83 PostToolUseFailureHookInput, UserPromptSubmitHookInput, StopHookInput,
84 SubagentStopHookInput, PreCompactHookInput,
85 NotificationHookInput, SubagentStartHookInput, PermissionRequestHookInput,
86 HookJSONOutput, AsyncHookJSONOutput, SyncHookJSONOutput,
88 HookSpecificOutput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput,
89 PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput,
90 SessionStartHookSpecificOutput, NotificationHookSpecificOutput,
91 SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput,
92 SDKControlInitializeRequest, SDKControlInterruptRequest, SDKControlMcpMessageRequest,
94 SDKControlPermissionRequest, SDKControlRequest, SDKControlSetPermissionModeRequest,
95 SDKHookCallbackRequest, SDKControlRewindFilesRequest,
96 SDKControlGetContextUsageRequest, SDKControlStopTaskRequest,
97 SDKControlMcpStatusRequest, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest,
98 SettingSource, AgentDefinition, SystemPrompt,
100 TaskUsage, TaskStatus, TaskStartedMessage, TaskProgressMessage, TaskNotificationMessage,
102 ToolsConfig, ToolsPreset, SdkBeta,
104 Effort, RateLimitStatus, RateLimitType, RateLimitInfo, AssistantMessageError,
106 McpConnectionStatus, McpToolAnnotations, McpToolInfo, McpServerInfo, McpServerStatus,
107 ThinkingConfig,
108 SandboxSettings, SandboxNetworkConfig, SandboxIgnoreViolations,
109 SdkPluginConfig,
110 ContextUsageResponse, ContextUsageCategory, ApiUsage,
112 TaskBudget, ForkSessionResult,
113};
114
115pub type ClaudeAgentOptions = ClaudeCodeOptions;
118pub type ClaudeAgentOptionsBuilder = ClaudeCodeOptionsBuilder;
120
121pub use types::ClaudeCodeOptionsBuilder;
123
124pub use transport::SubprocessTransport;
126#[cfg(feature = "websocket")]
127pub use transport::websocket::{WebSocketTransport, WebSocketConfig};
128
129pub use sdk_mcp::{
131 SdkMcpServer, SdkMcpServerBuilder, ToolDefinition, ToolHandler, ToolInputSchema,
132 ToolResult, create_simple_tool,
133 ToolResultContent as SdkToolResultContent,
134};
135
136pub mod prelude {
138 pub use crate::{
139 ClaudeCodeOptions, ClaudeSDKClient, ClaudeSDKClientWorking, Message, PermissionMode,
140 Result, SdkError, query,
141 };
142}