@anthropic-ai/claude-agent-sdk 0.2.108 → 0.2.110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/manifest.json CHANGED
@@ -1,46 +1,46 @@
1
1
  {
2
- "version": "2.1.108",
3
- "buildDate": "2026-04-14T17:24:14Z",
2
+ "version": "2.1.110",
3
+ "buildDate": "2026-04-15T19:43:17Z",
4
4
  "platforms": {
5
5
  "darwin-arm64": {
6
6
  "binary": "claude",
7
- "checksum": "8d66163313976b0045b829e37eb3fcccb10ce6fd7e04a6db85d2c3915ff8aaec",
8
- "size": 201725936
7
+ "checksum": "f45cb1b0765f9fc592d36d7153f6c1ff0ecfc3ae9cbc997eaff2b0cd25bff9f6",
8
+ "size": 202932416
9
9
  },
10
10
  "darwin-x64": {
11
11
  "binary": "claude",
12
- "checksum": "9e19adaae3709ce5917d8bf2faa669f560459bf240a2054de4e5e89babd0546a",
13
- "size": 203207552
12
+ "checksum": "d4896277920c253c2bda5e0ae02a3e39486fa203603c2b25cc236533d68518fd",
13
+ "size": 204376928
14
14
  },
15
15
  "linux-arm64": {
16
16
  "binary": "claude",
17
- "checksum": "7bef1f7dcf64a221fc66571a176ca6206088bec48613a46cb4fa6328169c0bd1",
18
- "size": 234097216
17
+ "checksum": "ff5bf0372d1700cfb4d232021c6e0d417205c16392492da0fabc6b509eeee92a",
18
+ "size": 235145792
19
19
  },
20
20
  "linux-x64": {
21
21
  "binary": "claude",
22
- "checksum": "1f641676eb086ceafd76a5f51ffb260b948fa1f6d77991d8cd6e480267dfff37",
23
- "size": 233777792
22
+ "checksum": "7ecdde57b002d5927e704dcbce04eaafb923644d315259ba2e6ac6f0712163a4",
23
+ "size": 234871424
24
24
  },
25
25
  "linux-arm64-musl": {
26
26
  "binary": "claude",
27
- "checksum": "400758c8de78ad7df94a31011a227e6518ee3bda2a70e73e6860b14250f7de83",
28
- "size": 227150272
27
+ "checksum": "d6878d6c32668ffda513218fe2775f6bdfb718575139ac8e6731b6b4cd485d8a",
28
+ "size": 227805632
29
29
  },
30
30
  "linux-x64-musl": {
31
31
  "binary": "claude",
32
- "checksum": "02c6aa80ef659404cbb00847fb04c1fda10482ed79cccee1be8d5c88f504685e",
33
- "size": 228092352
32
+ "checksum": "aaaf37cc68acd7a83351f5e788d6a5cede0654b05c6b616ae0c9b6fbacbc1b78",
33
+ "size": 229120448
34
34
  },
35
35
  "win32-x64": {
36
36
  "binary": "claude.exe",
37
- "checksum": "a375ca41d9d44720d8ecde46fc69285ee7919b496b9a81bbe29b14615d345a1b",
38
- "size": 243360416
37
+ "checksum": "6d267d4bc70b98436d4e55c0c3a6cd310b2e97bb42d215abb646093fce9ea3bd",
38
+ "size": 244445344
39
39
  },
40
40
  "win32-arm64": {
41
41
  "binary": "claude.exe",
42
- "checksum": "b3a1830564168224279e579456a5c43ae65f0bc243bb9f59e45dfb4437f7853e",
43
- "size": 240060576
42
+ "checksum": "e1d4914eead2dddb36e84c15bc1dc9655ae92f0b43a1c7964a7c99900b515bf8",
43
+ "size": 241153696
44
44
  }
45
45
  }
46
46
  }
package/manifest.zst.json CHANGED
@@ -1,54 +1,54 @@
1
1
  {
2
- "version": "2.1.108",
3
- "buildDate": "2026-04-14T17:30:45Z",
2
+ "version": "2.1.110",
3
+ "buildDate": "2026-04-15T19:50:40Z",
4
4
  "platforms": {
5
5
  "darwin-arm64": {
6
6
  "binary": "claude.zst",
7
- "checksum": "7c28a732de86eda4c577f9053d294576627b4d450d2f53d5b84f55c72ed44e5a",
8
- "size": 41741470,
7
+ "checksum": "1fb5c689fdaa40b678a3795d309526ab23b84b2b2b38f205f8d7a9d2222aad01",
8
+ "size": 41942064,
9
9
  "bundle": {
10
- "checksum": "2baf55e9593699e31d8b3dfcaaf79540d2973d0d75d2f009f0ee3a27b64df178",
11
- "size": 41745569
10
+ "checksum": "06aadef14bbdbc13ed357be8448c5df15abeb1dbc111596eeea818d3b2f8e32d",
11
+ "size": 41946957
12
12
  }
13
13
  },
14
14
  "darwin-x64": {
15
15
  "binary": "claude.zst",
16
- "checksum": "f81eb88ea743b767300ba50693d6e088696c4bdba65f0657de065037429de5d6",
17
- "size": 43402062,
16
+ "checksum": "de6801c997babd684378831681e0a06e57b4e746efeb68210f5358aeb6920b72",
17
+ "size": 43628781,
18
18
  "bundle": {
19
- "checksum": "fa1b342ad58091df1af0ca021096766f2c3f6c5fb4b72b80767ae6d9693f3865",
20
- "size": 43400123
19
+ "checksum": "b401f944c23c9d6ba3c4133fe778d7df39957ef326431cac95bae3a1341b50f1",
20
+ "size": 43630090
21
21
  }
22
22
  },
23
23
  "linux-arm64": {
24
24
  "binary": "claude.zst",
25
- "checksum": "f5eff301bf4740feccc162d1a168eb0490a18b50c2914b32444d346604ea1432",
26
- "size": 51393944
25
+ "checksum": "cfbd59fc6711d25288500de133a9147e4fc748da0825109a60ab6af3d2c073f8",
26
+ "size": 51585905
27
27
  },
28
28
  "linux-x64": {
29
29
  "binary": "claude.zst",
30
- "checksum": "63454052ee86e841666d9d372f4283311de90937baf1dae2d174d24d0571abf7",
31
- "size": 51942081
30
+ "checksum": "d0da2a150be75b11f00a7ddc2af9060655f31a9b9b8eb4a8fa0a9d987c8d8285",
31
+ "size": 52158838
32
32
  },
33
33
  "linux-arm64-musl": {
34
34
  "binary": "claude.zst",
35
- "checksum": "d295f68888392b826605dcc78b2bf953566909303afb640e50a2bcc33301bb00",
36
- "size": 50065331
35
+ "checksum": "603a19ed0ac655df3a45152e9a1747551a49012162728df7ff4dba7fc2f6cedd",
36
+ "size": 50205097
37
37
  },
38
38
  "linux-x64-musl": {
39
39
  "binary": "claude.zst",
40
- "checksum": "a641a1373b2fb31feba1dcc6b6e38716f49d45d47a74350b59bd754b3afbd96a",
41
- "size": 50646447
40
+ "checksum": "e09082eb2677bfbd953754f402e8d737c2e2df106fc2aee4c6dc0a9c9540e795",
41
+ "size": 50842631
42
42
  },
43
43
  "win32-x64": {
44
44
  "binary": "claude.exe.zst",
45
- "checksum": "0a6edc13e088db9751a800f489bacd979a3d3000b26215a561d40b48fe4c001b",
46
- "size": 53617894
45
+ "checksum": "ed38429823c7751ff385d6cc6ff5ae7bce9a60238d3422f75f2a32963120c9de",
46
+ "size": 53814271
47
47
  },
48
48
  "win32-arm64": {
49
49
  "binary": "claude.exe.zst",
50
- "checksum": "e4b21e60b101608f87a36d11dc9b24e33f6fff1fd07d967e4e11bd5a7fdbbaff",
51
- "size": 51777108
50
+ "checksum": "392a074eca73534b056e3303665d93e1955ac688fdd621a7115b3864526460ad",
51
+ "size": 51977170
52
52
  }
53
53
  }
54
54
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anthropic-ai/claude-agent-sdk",
3
- "version": "0.2.108",
3
+ "version": "0.2.110",
4
4
  "main": "sdk.mjs",
5
5
  "types": "sdk.d.ts",
6
6
  "exports": {
@@ -90,5 +90,5 @@
90
90
  "vendor/ripgrep/",
91
91
  "vendor/audio-capture/"
92
92
  ],
93
- "claudeCodeVersion": "2.1.108"
93
+ "claudeCodeVersion": "2.1.110"
94
94
  }
package/sdk-tools.d.ts CHANGED
@@ -2346,6 +2346,10 @@ export interface FileWriteOutput {
2346
2346
  */
2347
2347
  repository?: string | null;
2348
2348
  };
2349
+ /**
2350
+ * True when the user edited the proposed content in the permission dialog before accepting
2351
+ */
2352
+ userModified?: boolean;
2349
2353
  }
2350
2354
  export interface GlobOutput {
2351
2355
  /**
package/sdk.d.ts CHANGED
@@ -270,6 +270,7 @@ declare namespace coreTypes {
270
270
  NonNullableUsage,
271
271
  HOOK_EVENTS,
272
272
  EXIT_REASONS,
273
+ SYSTEM_PROMPT_DYNAMIC_BOUNDARY,
273
274
  AccountInfo,
274
275
  AgentDefinition,
275
276
  AgentInfo,
@@ -347,6 +348,7 @@ declare namespace coreTypes {
347
348
  SDKHookStartedMessage,
348
349
  SDKLocalCommandOutputMessage,
349
350
  SDKMemoryRecallMessage,
351
+ SDKMessageOrigin,
350
352
  SDKMessage,
351
353
  SDKNotificationMessage,
352
354
  SDKPartialAssistantMessage,
@@ -1433,6 +1435,11 @@ export declare type Options = {
1433
1435
  /**
1434
1436
  * System prompt configuration.
1435
1437
  * - `string` - Use a custom system prompt
1438
+ * - `string[]` - Use a custom system prompt as an array of blocks; include
1439
+ * `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` as a standalone element to mark the
1440
+ * split between the static (globally-cacheable) prefix and the dynamic
1441
+ * (session-specific) suffix. Blocks before the marker are eligible for
1442
+ * cross-session prompt caching; blocks after it are not.
1436
1443
  * - `{ type: 'preset', preset: 'claude_code' }` - Use Claude Code's default system prompt
1437
1444
  * - `{ type: 'preset', preset: 'claude_code', append: '...' }` - Use default prompt with appended instructions
1438
1445
  * - `{ type: 'preset', preset: 'claude_code', excludeDynamicSections: true }` -
@@ -1454,6 +1461,16 @@ export declare type Options = {
1454
1461
  * systemPrompt: 'You are a helpful coding assistant.'
1455
1462
  * ```
1456
1463
  *
1464
+ * @example Custom prompt with cache boundary
1465
+ * ```typescript
1466
+ * import { SYSTEM_PROMPT_DYNAMIC_BOUNDARY } from '@anthropic-ai/claude-code'
1467
+ * systemPrompt: [
1468
+ * staticInstructions,
1469
+ * SYSTEM_PROMPT_DYNAMIC_BOUNDARY,
1470
+ * sessionContext,
1471
+ * ]
1472
+ * ```
1473
+ *
1457
1474
  * @example Default with additions
1458
1475
  * ```typescript
1459
1476
  * systemPrompt: {
@@ -1472,7 +1489,7 @@ export declare type Options = {
1472
1489
  * }
1473
1490
  * ```
1474
1491
  */
1475
- systemPrompt?: string | {
1492
+ systemPrompt?: string | string[] | {
1476
1493
  type: 'preset';
1477
1494
  preset: 'claude_code';
1478
1495
  append?: string;
@@ -2206,7 +2223,7 @@ declare type SDKControlInitializeRequest = {
2206
2223
  hooks?: Partial<Record<coreTypes.HookEvent, SDKHookCallbackMatcher[]>>;
2207
2224
  sdkMcpServers?: string[];
2208
2225
  jsonSchema?: Record<string, unknown>;
2209
- systemPrompt?: string;
2226
+ systemPrompt?: string[];
2210
2227
  appendSystemPrompt?: string;
2211
2228
  /**
2212
2229
  * When true, omit per-user dynamic sections (working directory, auto-memory path) from the cached system prompt and re-inject them as the first user message. Lets cross-user prompt caching hit on a static system prompt prefix. Tradeoff: the model sees this context slightly later in the prompt, so steering on the working directory and memory location is marginally less authoritative. Has no effect when a custom (non-preset) system prompt is in use.
@@ -2321,13 +2338,21 @@ export declare type SDKControlReloadPluginsResponse = {
2321
2338
  error_count: number;
2322
2339
  };
2323
2340
 
2341
+ /**
2342
+ * Sets the user-facing title for the current session.
2343
+ */
2344
+ declare type SDKControlRenameSessionRequest = {
2345
+ subtype: 'rename_session';
2346
+ title: string;
2347
+ };
2348
+
2324
2349
  export declare type SDKControlRequest = {
2325
2350
  type: 'control_request';
2326
2351
  request_id: string;
2327
2352
  request: SDKControlRequestInner;
2328
2353
  };
2329
2354
 
2330
- declare type SDKControlRequestInner = SDKControlInterruptRequest | SDKControlPermissionRequest | SDKControlInitializeRequest | SDKControlSetPermissionModeRequest | SDKControlSetModelRequest | SDKControlSetMaxThinkingTokensRequest | SDKControlMcpStatusRequest | SDKControlGetContextUsageRequest | SDKHookCallbackRequest | SDKControlMcpMessageRequest | SDKControlRewindFilesRequest | SDKControlCancelAsyncMessageRequest | SDKControlSeedReadStateRequest | SDKControlMcpSetServersRequest | SDKControlReloadPluginsRequest | SDKControlMcpReconnectRequest | SDKControlMcpToggleRequest | SDKControlChannelEnableRequest | SDKControlEndSessionRequest | SDKControlMcpAuthenticateRequest | SDKControlMcpClearAuthRequest | SDKControlMcpOAuthCallbackUrlRequest | SDKControlClaudeAuthenticateRequest | SDKControlClaudeOAuthCallbackRequest | SDKControlClaudeOAuthWaitForCompletionRequest | SDKControlRemoteControlRequest | SDKControlGenerateSessionTitleRequest | SDKControlSideQuestionRequest | SDKControlOAuthTokenRefreshRequest | SDKControlStopTaskRequest | SDKControlApplyFlagSettingsRequest | SDKControlGetSettingsRequest | SDKControlElicitationRequest | SDKControlRequestUserDialogRequest;
2355
+ declare type SDKControlRequestInner = SDKControlInterruptRequest | SDKControlPermissionRequest | SDKControlInitializeRequest | SDKControlSetPermissionModeRequest | SDKControlSetModelRequest | SDKControlSetMaxThinkingTokensRequest | SDKControlRenameSessionRequest | SDKControlMcpStatusRequest | SDKControlGetContextUsageRequest | SDKHookCallbackRequest | SDKControlMcpMessageRequest | SDKControlRewindFilesRequest | SDKControlCancelAsyncMessageRequest | SDKControlSeedReadStateRequest | SDKControlMcpSetServersRequest | SDKControlReloadPluginsRequest | SDKControlMcpReconnectRequest | SDKControlMcpToggleRequest | SDKControlChannelEnableRequest | SDKControlEndSessionRequest | SDKControlMcpAuthenticateRequest | SDKControlMcpClearAuthRequest | SDKControlMcpOAuthCallbackUrlRequest | SDKControlClaudeAuthenticateRequest | SDKControlClaudeOAuthCallbackRequest | SDKControlClaudeOAuthWaitForCompletionRequest | SDKControlRemoteControlRequest | SDKControlGenerateSessionTitleRequest | SDKControlSideQuestionRequest | SDKControlOAuthTokenRefreshRequest | SDKControlStopTaskRequest | SDKControlApplyFlagSettingsRequest | SDKControlGetSettingsRequest | SDKControlElicitationRequest | SDKControlRequestUserDialogRequest;
2331
2356
 
2332
2357
  /**
2333
2358
  * Requests the SDK consumer to render a tool-driven blocking dialog and return the user choice. Used by tools that previously rendered Ink JSX via setToolJSX with an onDone callback.
@@ -2554,6 +2579,24 @@ export declare type SDKMemoryRecallMessage = {
2554
2579
 
2555
2580
  export declare type SDKMessage = SDKAssistantMessage | SDKUserMessage | SDKUserMessageReplay | SDKResultMessage | SDKSystemMessage | SDKPartialAssistantMessage | SDKCompactBoundaryMessage | SDKStatusMessage | SDKAPIRetryMessage | SDKLocalCommandOutputMessage | SDKHookStartedMessage | SDKHookProgressMessage | SDKHookResponseMessage | SDKPluginInstallMessage | SDKToolProgressMessage | SDKAuthStatusMessage | SDKTaskNotificationMessage | SDKTaskStartedMessage | SDKTaskUpdatedMessage | SDKTaskProgressMessage | SDKSessionStateChangedMessage | SDKNotificationMessage | SDKFilesPersistedEvent | SDKToolUseSummaryMessage | SDKMemoryRecallMessage | SDKRateLimitEvent | SDKElicitationCompleteMessage | SDKPromptSuggestionMessage;
2556
2581
 
2582
+ /**
2583
+ * Provenance of a user-role message (peer session, team lead, channel). Absent or `human` means keyboard input from the user.
2584
+ */
2585
+ export declare type SDKMessageOrigin = {
2586
+ kind: 'human';
2587
+ } | {
2588
+ kind: 'channel';
2589
+ server: string;
2590
+ } | {
2591
+ kind: 'peer';
2592
+ from: string;
2593
+ name?: string;
2594
+ } | {
2595
+ kind: 'task-notification';
2596
+ } | {
2597
+ kind: 'coordinator';
2598
+ };
2599
+
2557
2600
  /**
2558
2601
  * Loop-side text notification. Mirrors the interactive REPL notification queue (key/priority/timeout). JSX notifications are not emitted on this channel.
2559
2602
  */
@@ -2676,6 +2719,7 @@ export declare type SDKResultSuccess = {
2676
2719
  duration_ms: number;
2677
2720
  duration_api_ms: number;
2678
2721
  is_error: boolean;
2722
+ api_error_status?: number | null;
2679
2723
  num_turns: number;
2680
2724
  result: string;
2681
2725
  stop_reason: string | null;
@@ -2784,6 +2828,21 @@ export declare type SDKSessionOptions = {
2784
2828
  env?: {
2785
2829
  [envVar: string]: string | undefined;
2786
2830
  };
2831
+ /**
2832
+ * Working directory for the Claude Code process. Defaults to the current
2833
+ * process's working directory.
2834
+ */
2835
+ cwd?: string;
2836
+ /**
2837
+ * Which settings sources to load (CLAUDE.md, `.claude/settings.json`).
2838
+ * Defaults to `[]` — no project/user settings are loaded unless specified.
2839
+ */
2840
+ settingSources?: SettingSource[];
2841
+ /**
2842
+ * Must be set to `true` when using `permissionMode: 'bypassPermissions'`.
2843
+ * This is a safety measure to ensure intentional bypassing of permissions.
2844
+ */
2845
+ allowDangerouslySkipPermissions?: boolean;
2787
2846
  /**
2788
2847
  * List of tool names that are auto-allowed without prompting for permission.
2789
2848
  * These tools will execute automatically without asking the user for approval.
@@ -2807,6 +2866,7 @@ export declare type SDKSessionOptions = {
2807
2866
  * Permission mode for the session.
2808
2867
  * - `'default'` - Standard permission behavior, prompts for dangerous operations
2809
2868
  * - `'acceptEdits'` - Auto-accept file edit operations
2869
+ * - `'bypassPermissions'` - Bypass all permission checks (requires `allowDangerouslySkipPermissions`)
2810
2870
  * - `'plan'` - Planning mode, no execution of tools
2811
2871
  * - `'dontAsk'` - Don't prompt for permissions, deny if not pre-approved
2812
2872
  */
@@ -2988,6 +3048,11 @@ export declare type SDKUserMessage = {
2988
3048
  isSynthetic?: boolean;
2989
3049
  tool_use_result?: unknown;
2990
3050
  priority?: 'now' | 'next' | 'later';
3051
+ origin?: SDKMessageOrigin;
3052
+ /**
3053
+ * When false, the message is appended to the transcript without triggering an assistant turn. It will be merged into the next user message that does query.
3054
+ */
3055
+ shouldQuery?: boolean;
2991
3056
  /**
2992
3057
  * ISO timestamp when the message was created on the originating process. Older emitters omit it; consumers should fall back to receive time.
2993
3058
  */
@@ -3003,6 +3068,11 @@ export declare type SDKUserMessageReplay = {
3003
3068
  isSynthetic?: boolean;
3004
3069
  tool_use_result?: unknown;
3005
3070
  priority?: 'now' | 'next' | 'later';
3071
+ origin?: SDKMessageOrigin;
3072
+ /**
3073
+ * When false, the message is appended to the transcript without triggering an assistant turn. It will be merged into the next user message that does query.
3074
+ */
3075
+ shouldQuery?: boolean;
3006
3076
  /**
3007
3077
  * ISO timestamp when the message was created on the originating process. Older emitters omit it; consumers should fall back to receive time.
3008
3078
  */
@@ -4268,6 +4338,10 @@ export declare interface Settings {
4268
4338
  * Custom directory for plan files, relative to project root. If not set, defaults to ~/.claude/plans/
4269
4339
  */
4270
4340
  plansDirectory?: string;
4341
+ /**
4342
+ * Terminal UI renderer. "fullscreen" uses the flicker-free alt-screen renderer with virtualized scrollback (equivalent to CLAUDE_CODE_NO_FLICKER=1). "default" uses the classic main-screen renderer.
4343
+ */
4344
+ tui?: 'default' | 'fullscreen';
4271
4345
 
4272
4346
  /**
4273
4347
  * Teams/Enterprise opt-in for channel notifications (MCP servers with the claude/channel capability pushing inbound messages). Default off. Set true to allow; users then select servers via --channels.
@@ -4498,6 +4572,16 @@ export declare type SyncHookJSONOutput = {
4498
4572
  hookSpecificOutput?: PreToolUseHookSpecificOutput | UserPromptSubmitHookSpecificOutput | SessionStartHookSpecificOutput | SetupHookSpecificOutput | SubagentStartHookSpecificOutput | PostToolUseHookSpecificOutput | PostToolUseFailureHookSpecificOutput | PermissionDeniedHookSpecificOutput | NotificationHookSpecificOutput | PermissionRequestHookSpecificOutput | ElicitationHookSpecificOutput | ElicitationResultHookSpecificOutput | CwdChangedHookSpecificOutput | FileChangedHookSpecificOutput | WorktreeCreateHookSpecificOutput;
4499
4573
  };
4500
4574
 
4575
+ /**
4576
+ * Marker string that splits a custom `systemPrompt` into a static prefix
4577
+ * (eligible for cross-session prompt caching) and a dynamic suffix
4578
+ * (session-specific, not globally cached). Include this literal as a
4579
+ * standalone element of a `string[]` `systemPrompt` to opt in; blocks
4580
+ * before it get global cache scope, blocks after do not. See
4581
+ * `splitSysPromptPrefix` in `src/utils/api.ts`.
4582
+ */
4583
+ export declare const SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__";
4584
+
4501
4585
  /**
4502
4586
  * Tag a session. Pass null to clear the tag.
4503
4587
  * @param sessionId - UUID of the session