@anthropic-ai/claude-agent-sdk 0.3.218 → 0.3.220

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,47 +1,47 @@
1
1
  {
2
- "version": "2.1.218",
3
- "commit": "bce61b433bc397ce68686368abd12f545b0a013a",
4
- "buildDate": "2026-07-22T18:42:19Z",
2
+ "version": "2.1.220",
3
+ "commit": "4073f59596e272f39393db4f96abc5f4b10eff21",
4
+ "buildDate": "2026-07-24T22:28:51Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude",
8
- "checksum": "71abaff59312c9a9b6a1d818365048b42e4e95cc521a823660eded3e0880d9b7",
9
- "size": 255069680
8
+ "checksum": "8addc857f3fe64d5a0368af9ee50321b50afb4a6918ba3ef018ab84f5dbbe081",
9
+ "size": 256908272
10
10
  },
11
11
  "darwin-x64": {
12
12
  "binary": "claude",
13
- "checksum": "9862b74a083e8a4ed572f99cbd4895185e0dd5a0a601affb0fb8e43d8d1f40e6",
14
- "size": 264548368
13
+ "checksum": "dca7be0aa7d3d924836d440e0c6d8e3d47ef3c8e61fa5809b54b9017170ce2f3",
14
+ "size": 266397712
15
15
  },
16
16
  "linux-arm64": {
17
17
  "binary": "claude",
18
- "checksum": "295fd30481bd03b38450fdec2a6e25bb6472c2074f04b0c4a566cd5988f230bf",
19
- "size": 269990816
18
+ "checksum": "159e4a51d796f3bf14677577100f7efb845611b1ceaf0c30cbd8d4650d942185",
19
+ "size": 271825824
20
20
  },
21
21
  "linux-x64": {
22
22
  "binary": "claude",
23
- "checksum": "e12071751a9336b8af1012c103358ff04ac18f9aaff4a738cff7ba5cdfaf63f2",
24
- "size": 273177584
23
+ "checksum": "674f61f20ff306f3100cf9200e4c36c4b70278b5bef2884549819b942a89c863",
24
+ "size": 275012592
25
25
  },
26
26
  "linux-arm64-musl": {
27
27
  "binary": "claude",
28
- "checksum": "efcaae48f8f537a0e9a47b4317a5f8c184706c99ddd8ca0a9a21391e2a766ef8",
29
- "size": 263239016
28
+ "checksum": "5eb2697a1500c1b8736e53fd696392196dc6758cf1d470c64d8d2a2fd1629eeb",
29
+ "size": 265074024
30
30
  },
31
31
  "linux-x64-musl": {
32
32
  "binary": "claude",
33
- "checksum": "62986293277153f5db97404cf7e3e96de136f02c28f79ccd5c7bc99766224db4",
34
- "size": 267801168
33
+ "checksum": "f1c20514a3571cdf9982e25c490042d740ed7cfed3f00c64ba92dc7ec47c3c5b",
34
+ "size": 269636176
35
35
  },
36
36
  "win32-x64": {
37
37
  "binary": "claude.exe",
38
- "checksum": "81fcf59bb7abb558aedc6f2361f4723b3d757d28e799962d88b18b4520df66ca",
39
- "size": 263931552
38
+ "checksum": "af5bf1f1b2aadffc768eccd787084c6fdf9ba81624cbe96c1c6d9ac1a1550231",
39
+ "size": 265720480
40
40
  },
41
41
  "win32-arm64": {
42
42
  "binary": "claude.exe",
43
- "checksum": "a7959fd87feb9557d56f4e5752f7ed1ddf405f3bea91b2571bf93af636efd193",
44
- "size": 258307232
43
+ "checksum": "07343ace8a2e9ba87eed716e9c0261ce4bda8954c316695e4cb26fd0605de13c",
44
+ "size": 260095648
45
45
  }
46
46
  },
47
47
  "sdkCompat": {
@@ -64,11 +64,13 @@
64
64
  "0.3.202",
65
65
  "0.3.204",
66
66
  "0.3.205",
67
+ "0.3.206",
67
68
  "0.3.207",
68
69
  "0.3.208",
69
70
  "0.3.209",
70
71
  "0.3.215",
71
- "0.3.217"
72
+ "0.3.217",
73
+ "0.3.218"
72
74
  ],
73
75
  "harnessSchema": 1
74
76
  }
package/manifest.zst.json CHANGED
@@ -1,55 +1,55 @@
1
1
  {
2
- "version": "2.1.218",
3
- "commit": "bce61b433bc397ce68686368abd12f545b0a013a",
4
- "buildDate": "2026-07-22T18:44:19Z",
2
+ "version": "2.1.220",
3
+ "commit": "4073f59596e272f39393db4f96abc5f4b10eff21",
4
+ "buildDate": "2026-07-24T22:30:51Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude.zst",
8
- "checksum": "e573c71d81c54347ebcbd6d7988f3798601e3150ea69e3beaa6252cd944fb0de",
9
- "size": 52109964,
8
+ "checksum": "bc30c97e9736447fba8bd2eac6a317d4aaadf269b09f20fcc4ef53dc649b21d6",
9
+ "size": 52528564,
10
10
  "bundle": {
11
- "checksum": "6521f8d9d917c4d7dc12318585721bdb60211c9fc1ca11bfc131af0ff420a853",
12
- "size": 52131305
11
+ "checksum": "1ae58974156f01fcd6e4590e4dcb18740fcf98ba70f3f6f833038081ea6bc0af",
12
+ "size": 52533430
13
13
  }
14
14
  },
15
15
  "darwin-x64": {
16
16
  "binary": "claude.zst",
17
- "checksum": "4566d7bc48fbceea9436d09d311c19bbd00c9a8328202c785c06cced00d0a4cf",
18
- "size": 56653254,
17
+ "checksum": "1017a8bdd8c02ce5df79ab0181110292bb6c3b48ae468a9fb6a3cac48c41951a",
18
+ "size": 57135309,
19
19
  "bundle": {
20
- "checksum": "9d627f5e45c3a9698824c284155dbf2aebb3da3bb0ecc35c198192d98c7eac90",
21
- "size": 56657735
20
+ "checksum": "ade9f5eebf5394766ada73d3c244d099140ca8c7a2e9ef244b1c4a22217e2b57",
21
+ "size": 57139607
22
22
  }
23
23
  },
24
24
  "linux-arm64": {
25
25
  "binary": "claude.zst",
26
- "checksum": "c3c149749fbe54d452f09865791450aad6f38350c73c1fcabcfc0b1f8705b5e9",
27
- "size": 60992519
26
+ "checksum": "d663d771947513311a3af5de6e73f993688a7ff3357ea5b6f86726f2be65ae67",
27
+ "size": 61240539
28
28
  },
29
29
  "linux-x64": {
30
30
  "binary": "claude.zst",
31
- "checksum": "c9ae380f8787831bdd0659fe6022fb9dfa51c41a551673497c56b14c86f9b1cd",
32
- "size": 62289374
31
+ "checksum": "ec2d84d88ae9f5e3c9e0ab21f8092f9df3c8d0c599a551dd91cddce23993e55e",
32
+ "size": 62556070
33
33
  },
34
34
  "linux-arm64-musl": {
35
35
  "binary": "claude.zst",
36
- "checksum": "1a1d5499fcdeddd2fc92bc3d0091003b60987293a770e9a7f9595a418f6c99d1",
37
- "size": 59660082
36
+ "checksum": "a38ac99e050fc217485196fdee0fee4aaf5212d6c90e59508c1a966d4b97e914",
37
+ "size": 59906737
38
38
  },
39
39
  "linux-x64-musl": {
40
40
  "binary": "claude.zst",
41
- "checksum": "30a1e4f61f193dfaf50b65155fe815bb0c732429d1ca3f7ada511f6e51e1a972",
42
- "size": 61061435
41
+ "checksum": "27356dcc27e7ee42a70d8c3134a4b4ffdbabdcc879e035d7f387449e383a08f2",
42
+ "size": 61358054
43
43
  },
44
44
  "win32-x64": {
45
45
  "binary": "claude.exe.zst",
46
- "checksum": "fde8d0b1b194d72c49e08f04e03645ade5aa8cbf443644ef81d45a3f3b49c2b4",
47
- "size": 62715087
46
+ "checksum": "8999275ddf501363a28692f9ef5267cfdc10ca54873e21c007de0107d1fac526",
47
+ "size": 62943531
48
48
  },
49
49
  "win32-arm64": {
50
50
  "binary": "claude.exe.zst",
51
- "checksum": "02db299bd7109f40c3ad9cbaab8e02563802e4563eaa33e6065a1468c88819b3",
52
- "size": 60749318
51
+ "checksum": "a1a2e4e30e91c4c1d2a676a6b5ec68b8987d1b00211c694215f19f5818999d8d",
52
+ "size": 60936226
53
53
  }
54
54
  },
55
55
  "sdkCompat": {
@@ -72,11 +72,13 @@
72
72
  "0.3.202",
73
73
  "0.3.204",
74
74
  "0.3.205",
75
+ "0.3.206",
75
76
  "0.3.207",
76
77
  "0.3.208",
77
78
  "0.3.209",
78
79
  "0.3.215",
79
- "0.3.217"
80
+ "0.3.217",
81
+ "0.3.218"
80
82
  ],
81
83
  "harnessSchema": 1
82
84
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anthropic-ai/claude-agent-sdk",
3
- "version": "0.3.218",
3
+ "version": "0.3.220",
4
4
  "main": "sdk.mjs",
5
5
  "types": "sdk.d.ts",
6
6
  "exports": {
@@ -57,14 +57,14 @@
57
57
  "zod": "^4.0.0"
58
58
  },
59
59
  "optionalDependencies": {
60
- "@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.218",
61
- "@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.218",
62
- "@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.218",
63
- "@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.218",
64
- "@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.218",
65
- "@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.218",
66
- "@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.218",
67
- "@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.218"
60
+ "@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.220",
61
+ "@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.220",
62
+ "@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.220",
63
+ "@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.220",
64
+ "@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.220",
65
+ "@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.220",
66
+ "@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.220",
67
+ "@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.220"
68
68
  },
69
69
  "files": [
70
70
  "sdk.mjs",
@@ -80,5 +80,5 @@
80
80
  "manifest.json",
81
81
  "manifest.zst.json"
82
82
  ],
83
- "claudeCodeVersion": "2.1.218"
83
+ "claudeCodeVersion": "2.1.220"
84
84
  }
package/sdk.d.ts CHANGED
@@ -328,11 +328,13 @@ declare namespace coreTypes {
328
328
  ConfigScope,
329
329
  CwdChangedHookInput,
330
330
  CwdChangedHookSpecificOutput,
331
+ DirectoryAddedHookInput,
331
332
  ElicitationHookInput,
332
333
  ElicitationHookSpecificOutput,
333
334
  ElicitationResultHookInput,
334
335
  ElicitationResultHookSpecificOutput,
335
336
  ExitReason,
337
+ FastModeDisabledReason,
336
338
  FastModeState,
337
339
  FileChangedHookInput,
338
340
  FileChangedHookSpecificOutput,
@@ -527,6 +529,18 @@ export declare type CwdChangedHookSpecificOutput = {
527
529
  */
528
530
  export declare function deleteSession(_sessionId: string, _options?: SessionMutationOptions): Promise<void>;
529
531
 
532
+ export declare type DirectoryAddedHookInput = BaseHookInput & {
533
+ hook_event_name: 'DirectoryAdded';
534
+ /**
535
+ * Absolute path of the directory that was added.
536
+ */
537
+ directory: string;
538
+ /**
539
+ * How the directory was added: "slash_command" for /add-dir, "register_repo_root" for the SDK control_request.
540
+ */
541
+ source: 'slash_command' | 'register_repo_root';
542
+ };
543
+
530
544
  /**
531
545
  * Effort level for controlling how much thinking/reasoning Claude applies.
532
546
  *
@@ -615,6 +629,11 @@ export declare const EXIT_REASONS: readonly ["clear", "resume", "logout", "promp
615
629
 
616
630
  export declare type ExitReason = 'clear' | 'resume' | 'logout' | 'prompt_input_exit' | 'other' | 'bypass_permissions_disabled';
617
631
 
632
+ /**
633
+ * Why fast mode can't serve right now. Absent when nothing blocks it (a request may still choose standard speed). A paused-after-rate-limit run is not here; it rides fast_mode_state as 'cooldown'.
634
+ */
635
+ export declare type FastModeDisabledReason = 'free' | 'preference' | 'extra_usage_disabled' | 'network_error' | 'unknown' | 'not_first_party' | 'disabled_by_env' | 'model_not_allowed' | 'sdk_opt_in_required' | 'pending';
636
+
618
637
  /**
619
638
  * Fast mode state: off, in cooldown after rate limit, or actively enabled.
620
639
  */
@@ -794,7 +813,7 @@ export declare type GetSubagentMessagesOptions = {
794
813
  sessionStore?: SessionStore;
795
814
  };
796
815
 
797
- export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "PostToolUseFailure", "PostToolBatch", "Notification", "UserPromptSubmit", "UserPromptExpansion", "SessionStart", "SessionEnd", "Stop", "StopFailure", "SubagentStart", "SubagentStop", "PreCompact", "PostCompact", "PermissionRequest", "PermissionDenied", "Setup", "TeammateIdle", "TaskCreated", "TaskCompleted", "Elicitation", "ElicitationResult", "ConfigChange", "WorktreeCreate", "WorktreeRemove", "InstructionsLoaded", "CwdChanged", "FileChanged", "MessageDisplay"];
816
+ export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "PostToolUseFailure", "PostToolBatch", "Notification", "UserPromptSubmit", "UserPromptExpansion", "SessionStart", "SessionEnd", "Stop", "StopFailure", "SubagentStart", "SubagentStop", "PreCompact", "PostCompact", "PermissionRequest", "PermissionDenied", "Setup", "TeammateIdle", "TaskCreated", "TaskCompleted", "Elicitation", "ElicitationResult", "ConfigChange", "WorktreeCreate", "WorktreeRemove", "InstructionsLoaded", "CwdChanged", "FileChanged", "DirectoryAdded", "MessageDisplay"];
798
817
 
799
818
  /**
800
819
  * Hook callback function for responding to events during execution.
@@ -813,9 +832,9 @@ export declare interface HookCallbackMatcher {
813
832
  timeout?: number;
814
833
  }
815
834
 
816
- export declare type HookEvent = 'PreToolUse' | 'PostToolUse' | 'PostToolUseFailure' | 'PostToolBatch' | 'Notification' | 'UserPromptSubmit' | 'UserPromptExpansion' | 'SessionStart' | 'SessionEnd' | 'Stop' | 'StopFailure' | 'SubagentStart' | 'SubagentStop' | 'PreCompact' | 'PostCompact' | 'PermissionRequest' | 'PermissionDenied' | 'Setup' | 'TeammateIdle' | 'TaskCreated' | 'TaskCompleted' | 'Elicitation' | 'ElicitationResult' | 'ConfigChange' | 'WorktreeCreate' | 'WorktreeRemove' | 'InstructionsLoaded' | 'CwdChanged' | 'FileChanged' | 'MessageDisplay';
835
+ export declare type HookEvent = 'PreToolUse' | 'PostToolUse' | 'PostToolUseFailure' | 'PostToolBatch' | 'Notification' | 'UserPromptSubmit' | 'UserPromptExpansion' | 'SessionStart' | 'SessionEnd' | 'Stop' | 'StopFailure' | 'SubagentStart' | 'SubagentStop' | 'PreCompact' | 'PostCompact' | 'PermissionRequest' | 'PermissionDenied' | 'Setup' | 'TeammateIdle' | 'TaskCreated' | 'TaskCompleted' | 'Elicitation' | 'ElicitationResult' | 'ConfigChange' | 'WorktreeCreate' | 'WorktreeRemove' | 'InstructionsLoaded' | 'CwdChanged' | 'FileChanged' | 'DirectoryAdded' | 'MessageDisplay';
817
836
 
818
- export declare type HookInput = PreToolUseHookInput | PostToolUseHookInput | PostToolUseFailureHookInput | PostToolBatchHookInput | PermissionDeniedHookInput | NotificationHookInput | UserPromptSubmitHookInput | UserPromptExpansionHookInput | SessionStartHookInput | SessionEndHookInput | StopHookInput | StopFailureHookInput | SubagentStartHookInput | SubagentStopHookInput | PreCompactHookInput | PostCompactHookInput | PermissionRequestHookInput | SetupHookInput | TeammateIdleHookInput | TaskCreatedHookInput | TaskCompletedHookInput | ElicitationHookInput | ElicitationResultHookInput | ConfigChangeHookInput | InstructionsLoadedHookInput | WorktreeCreateHookInput | WorktreeRemoveHookInput | CwdChangedHookInput | FileChangedHookInput | MessageDisplayHookInput;
837
+ export declare type HookInput = PreToolUseHookInput | PostToolUseHookInput | PostToolUseFailureHookInput | PostToolBatchHookInput | PermissionDeniedHookInput | NotificationHookInput | UserPromptSubmitHookInput | UserPromptExpansionHookInput | SessionStartHookInput | SessionEndHookInput | StopHookInput | StopFailureHookInput | SubagentStartHookInput | SubagentStopHookInput | PreCompactHookInput | PostCompactHookInput | PermissionRequestHookInput | SetupHookInput | TeammateIdleHookInput | TaskCreatedHookInput | TaskCompletedHookInput | ElicitationHookInput | ElicitationResultHookInput | ConfigChangeHookInput | InstructionsLoadedHookInput | WorktreeCreateHookInput | WorktreeRemoveHookInput | CwdChangedHookInput | FileChangedHookInput | DirectoryAddedHookInput | MessageDisplayHookInput;
819
838
 
820
839
  export declare type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;
821
840
 
@@ -2725,6 +2744,7 @@ export declare type SandboxNetworkConfig = NonNullable<z.infer<ReturnType<typeof
2725
2744
  declare const SandboxNetworkConfigSchema: () => z.ZodOptional<z.ZodObject<{
2726
2745
  allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
2727
2746
  deniedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
2747
+ strictAllowlist: z.ZodOptional<z.ZodBoolean>;
2728
2748
  allowManagedDomainsOnly: z.ZodOptional<z.ZodBoolean>;
2729
2749
  allowUnixSockets: z.ZodOptional<z.ZodArray<z.ZodString>>;
2730
2750
  allowAllUnixSockets: z.ZodOptional<z.ZodBoolean>;
@@ -2751,6 +2771,7 @@ declare const SandboxSettingsSchema: () => z.ZodObject<{
2751
2771
  network: z.ZodOptional<z.ZodObject<{
2752
2772
  allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
2753
2773
  deniedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
2774
+ strictAllowlist: z.ZodOptional<z.ZodBoolean>;
2754
2775
  allowManagedDomainsOnly: z.ZodOptional<z.ZodBoolean>;
2755
2776
  allowUnixSockets: z.ZodOptional<z.ZodArray<z.ZodString>>;
2756
2777
  allowAllUnixSockets: z.ZodOptional<z.ZodBoolean>;
@@ -3439,6 +3460,7 @@ export declare type SDKControlInitializeResponse = {
3439
3460
 
3440
3461
 
3441
3462
  fast_mode_state?: coreTypes.FastModeState;
3463
+ fast_mode_disabled_reason?: coreTypes.FastModeDisabledReason;
3442
3464
 
3443
3465
 
3444
3466
 
@@ -3451,6 +3473,10 @@ export declare type SDKControlInitializeResponse = {
3451
3473
  declare type SDKControlInterruptRequest = {
3452
3474
  subtype: 'interrupt';
3453
3475
 
3476
+ /**
3477
+ * When true, the interrupt also cancels every uuid-stamped main-thread command still in the queue or already dequeued for the imminent turn but not yet reachable by the abort (the first-command prewait window) — the same set the response would otherwise list under `still_queued`. Each is closed with a terminal 'cancelled' lifecycle and listed on the response's `cancelled` field. `still_queued` is always empty. (The isFoldInFlight guard cancel_async_message uses does not apply here: this request also aborts the running turn, so a fold-in-flight uuid is never delivered and is swept with the rest. A fold-in-flight uuid's queued_command attachment may already appear in the aborted turn's transcript if the abort landed after the fold's attachment yield — pre-existing leave-queued semantics; it never runs as its own turn.) Uuid-less commands (task notifications) still in the queue are also dequeued but cannot be listed; a uuid-less command already in the prewait window is unreachable by either leg and still runs. When false or absent, queued commands survive the interrupt and are listed under `still_queued` — the interrupt_receipt_v1 contract is unchanged. A Stop-means-stop-everything client (a remote UI's Stop button) sets this true so one round-trip halts the session; a wrapper that wants per-uuid control leaves it false and follows up with cancel_async_message. Advertised by the `interrupt_cancel_queued_v1` capability on system/init; older CLIs ignore the field and behave as if false.
3478
+ */
3479
+ cancel_queued?: boolean;
3454
3480
  };
3455
3481
 
3456
3482
  /**
@@ -3458,9 +3484,13 @@ declare type SDKControlInterruptRequest = {
3458
3484
  */
3459
3485
  export declare type SDKControlInterruptResponse = {
3460
3486
  /**
3461
- * Uuids of async user messages that survive this interrupt: commands still in the queue, plus any batch already dequeued for the imminent turn but not yet reachable by the abort. These WILL run unless cancelled first. Cancellation granularity: uuids still in the queue are individually cancellable via cancel_async_message; once a batch is dequeued and coalesced into one turn, cancelling a NON-representative member uuid is a no-op (its content still runs), while cancelling the batch-representative uuid drops the WHOLE coalesced batch — in both cases the cancel response reports cancelled:false because the message was no longer in the queue. Coverage caveats: only uuid-STAMPED messages appear (a message enqueued without a uuid still runs but is never listed, so [] does not mean "nothing will run"); only main-thread messages are listed (subagent-addressed messages are out of scope); and the list may include internally-enqueued uuids the client never sent (cron triggers, auto-resume continuations) — ignore unknown uuids rather than treating them as an error. Ordering: on a clean interrupt this receipt is written before the interrupted turn result; a turn that crashes during interrupt handling emits its error result on a direct-write path that may precede the receipt. Snapshot is taken synchronously with abort processing — probing the queue after the interrupted result instead always loses the race against the drain loop, which starts the next queued turn immediately.
3487
+ * Uuids of async user messages that survive this interrupt: commands still in the queue, plus any batch already dequeued for the imminent turn but not yet reachable by the abort. These WILL run unless cancelled first (or unless the request set cancel_queued:true, in which case this list is always empty — every uuid-stamped survivor is removed, emitted a terminal `cancelled` synchronously, and listed under `cancelled` instead). Cancellation granularity: uuids still in the queue are individually cancellable via cancel_async_message; once a batch is dequeued and coalesced into one turn, cancelling a NON-representative member uuid is a no-op (its content still runs), while cancelling the batch-representative uuid drops the WHOLE coalesced batch — in both cases the cancel response reports cancelled:false because the message was no longer in the queue. Coverage caveats: only uuid-STAMPED messages appear (a message enqueued without a uuid still runs but is never listed, so [] does not mean "nothing will run"); only main-thread messages are listed (subagent-addressed messages are out of scope); and the list may include internally-enqueued uuids the client never sent (cron triggers, auto-resume continuations) — ignore unknown uuids rather than treating them as an error. Ordering: on a clean interrupt this receipt is written before the interrupted turn result; a turn that crashes during interrupt handling emits its error result on a direct-write path that may precede the receipt. Snapshot is taken synchronously with abort processing — probing the queue after the interrupted result instead always loses the race against the drain loop, which starts the next queued turn immediately.
3462
3488
  */
3463
3489
  still_queued: string[];
3490
+ /**
3491
+ * Present only when the request set cancel_queued:true — uuids of main-thread commands cancelled by this interrupt: every survivor that would otherwise have appeared under `still_queued`, including any uuid that was mid-fold at the interrupt instant (this request also aborts, so the fold never delivers it). Each listed uuid has been removed (queue-resident) or marked cancel-pending (the first-command prewait window, closed by the drain loop's backstop) and emits a terminal 'cancelled' lifecycle synchronously at the first such interrupt (a repeat interrupt over the same parked batch re-lists the uuid idempotently without re-emitting); none will run. Same coverage caveats as `still_queued` (uuid-stamped main-thread only; internally-enqueued uuids may appear). Advertised by the `interrupt_cancel_queued_v1` capability.
3492
+ */
3493
+ cancelled?: string[];
3464
3494
  };
3465
3495
 
3466
3496
  /**
@@ -3632,7 +3662,7 @@ export declare type SDKControlReadFileResponse = {
3632
3662
  };
3633
3663
 
3634
3664
  /**
3635
- * Add a directory as a working-directory root and optionally reload CLAUDE.md, skills, and plugins. The directory must resolve to a subdirectory of cwd.
3665
+ * Add a directory as a working-directory root and optionally reload CLAUDE.md, skills, and plugins. The directory must resolve to a strict subdirectory of cwd, or of a directory passed at launch via --add-dir / the SDK additionalDirectories option. A directory that is already a registered working directory (including a duplicate of an earlier request) is denied with an error; the registration pipeline and DirectoryAdded hooks do not re-run.
3636
3666
  */
3637
3667
  declare type SDKControlRegisterRepoRootRequest = {
3638
3668
  subtype: 'register_repo_root';
@@ -4251,6 +4281,7 @@ export declare type SDKResultError = {
4251
4281
  errors: string[];
4252
4282
  terminal_reason?: TerminalReason;
4253
4283
  fast_mode_state?: FastModeState;
4284
+ fast_mode_disabled_reason?: FastModeDisabledReason;
4254
4285
  origin?: SDKMessageOrigin;
4255
4286
  uuid: UUID;
4256
4287
  session_id: string;
@@ -4284,6 +4315,7 @@ export declare type SDKResultSuccess = {
4284
4315
  deferred_tool_use?: SDKDeferredToolUse;
4285
4316
  terminal_reason?: TerminalReason;
4286
4317
  fast_mode_state?: FastModeState;
4318
+ fast_mode_disabled_reason?: FastModeDisabledReason;
4287
4319
  origin?: SDKMessageOrigin;
4288
4320
  uuid: UUID;
4289
4321
  session_id: string;
@@ -4409,9 +4441,11 @@ export declare type SDKSystemMessage = {
4409
4441
  }[];
4410
4442
 
4411
4443
 
4444
+
4412
4445
  fast_mode_state?: FastModeState;
4446
+ fast_mode_disabled_reason?: FastModeDisabledReason;
4413
4447
  /**
4414
- * Protocol capabilities this CLI supports, so SDK consumers can feature-detect instead of version-sniffing. Open set — ignore unknown values; check each capability for exactly the behavior you use. 'interrupt_receipt_v1' = the interrupt control_response success payload carries still_queued (uuids of async user messages that survive the interrupt). Absent on older CLIs.
4448
+ * Protocol capabilities this CLI supports, so SDK consumers can feature-detect instead of version-sniffing. Open set — ignore unknown values; check each capability for exactly the behavior you use. 'interrupt_receipt_v1' = the interrupt control_response success payload carries still_queued (uuids of async user messages that survive the interrupt). 'interrupt_cancel_queued_v1' = the interrupt control_request honors cancel_queued:true (queued and pending-dispatch commands are cancelled alongside the abort, listed on the response's cancelled field; still_queued is always empty — including any uuid that was mid-fold at the interrupt instant, since this request also aborts and the fold never delivers it). Absent on older CLIs.
4415
4449
  */
4416
4450
  capabilities?: string[];
4417
4451
 
@@ -5358,6 +5392,10 @@ export declare interface Settings {
5358
5392
  * Enable or disable the Workflows feature for this user. Unset = default by plan once the feature is available.
5359
5393
  */
5360
5394
  enableWorkflows?: boolean;
5395
+ /**
5396
+ * Advisory size guideline for the dynamic workflows Claude writes: "small" aims for fewer than 5 agents, "medium" (the default) fewer than 15, "large" fewer than 50, and "unrestricted" sends no guideline. A value here — including from managed settings — takes precedence over the "Dynamic workflow size" choice in /config, and that /config row is hidden while a settings file provides the key. This is a guideline, not an enforced limit.
5397
+ */
5398
+ workflowSizeGuideline?: 'unrestricted' | 'small' | 'medium' | 'large';
5361
5399
  /**
5362
5400
  * Enable the "ultracode" keyword trigger: including the keyword in a prompt opts that turn into the Workflow tool. Set to false to disable the trigger. Default: true.
5363
5401
  */
@@ -6112,6 +6150,10 @@ export declare interface Settings {
6112
6150
  * Domains that are always blocked, even if matched by allowedDomains. Supports the same wildcard syntax as allowedDomains. Merged from all settings sources regardless of allowManagedDomainsOnly.
6113
6151
  */
6114
6152
  deniedDomains?: string[];
6153
+ /**
6154
+ * When true, the sandbox runtime deterministically denies hosts not in allowedDomains instead of prompting. Enforced for sandboxed commands only — in-process tools such as WebFetch are not gated by this setting. Only honored from user, managed/policy, or CLI (--settings) settings — project settings (.claude/settings.json and .claude/settings.local.json) are ignored.
6155
+ */
6156
+ strictAllowlist?: boolean;
6115
6157
  /**
6116
6158
  * When true (and set in managed settings), only allowedDomains and WebFetch(domain:...) allow rules from managed settings are respected. User, project, local, and flag settings domains are ignored. Denied domains are still respected from all sources.
6117
6159
  */
@@ -6499,9 +6541,12 @@ export declare interface Settings {
6499
6541
  * Automatically compact conversation when context fills
6500
6542
  */
6501
6543
  autoCompactEnabled?: boolean;
6502
-
6503
6544
  /**
6504
- * When safety measures flag a message, automatically switch to a different model to keep chatting. When off, your session will pause instead.
6545
+ * Precompute the compaction summary in the background before it is needed. Only applies when auto-compact is on.
6546
+ */
6547
+ precomputeCompactionEnabled?: boolean;
6548
+ /**
6549
+ * When safeguards flag a message, automatically switch to a different model to keep chatting. When off, your session will pause instead.
6505
6550
  */
6506
6551
  switchModelsOnFlag?: boolean;
6507
6552
  /**