@anthropic-ai/claude-agent-sdk 0.3.245 → 0.3.247

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,53 +1,51 @@
1
1
  {
2
- "version": "2.1.245",
3
- "commit": "28b7e8c41235a9e2fcb24248e60c4cc2d29c853a",
4
- "buildDate": "2026-08-25T04:08:50Z",
2
+ "version": "2.1.247",
3
+ "commit": "89c726188daf6407b6b57bf67d312f2958e5b9f2",
4
+ "buildDate": "2026-08-26T06:08:58Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude",
8
- "checksum": "9f7c2260251765a18d0b35198669dacc1912f6e8129a3b01f6b58d93365ff1f1",
9
- "size": 376109392
8
+ "checksum": "5086b9b64d8bb842e1f599cdd3767ab08c6b2266e462fcc5686ae4b019cca8f7",
9
+ "size": 233073008
10
10
  },
11
11
  "darwin-x64": {
12
12
  "binary": "claude",
13
- "checksum": "de044bb543e826352f31587a74356e1b2dae94dc1b9c960a362d9f07df96c2a7",
14
- "size": 385137136
13
+ "checksum": "162e65d7bf8735dbcdc75b0122dbb126d5704a00e682bbdfc413749188a20cfd",
14
+ "size": 241972656
15
15
  },
16
16
  "linux-arm64": {
17
17
  "binary": "claude",
18
- "checksum": "d0da299303d710a7cc5cdece9629958f5128ce1a727e15463c651ed5cf385c7f",
19
- "size": 389077224
18
+ "checksum": "a68bb633f85e4a0e73465952ea624cf18992c3fa4db615feeb942ffad57d082a",
19
+ "size": 249617856
20
20
  },
21
21
  "linux-x64": {
22
22
  "binary": "claude",
23
- "checksum": "16ad2b94deaf7b29abed966d981c9991a47af0420f5be8ed4a3f83bea9f678bc",
24
- "size": 391948592
23
+ "checksum": "5fb321bf417ffc5cd4e3f36e7c9c7e029bf47aaa36d5621db979fcc5e6eabe15",
24
+ "size": 250162696
25
25
  },
26
26
  "linux-arm64-musl": {
27
27
  "binary": "claude",
28
- "checksum": "8707fbe629fdd9876d9c356baa833a697dac76cd9a7157088f667199b8492851",
29
- "size": 382222104
28
+ "checksum": "7c776ebf17adf53a1a6c844356e9713c0a40826b563df6fd670bce00c3f768f8",
29
+ "size": 242300472
30
30
  },
31
31
  "linux-x64-musl": {
32
32
  "binary": "claude",
33
- "checksum": "d25564bc5d84ec988a762cfe25fe51cb706b96eaec614f704ddbf653ab08ba00",
34
- "size": 386060256
33
+ "checksum": "8bb6b5b1c6c4f08f9c5047153425c32d5041180065537f3da78f6fadf42b40ee",
34
+ "size": 243924856
35
35
  },
36
36
  "win32-x64": {
37
37
  "binary": "claude.exe",
38
- "checksum": "d1649bf5261792fee7e1a1b63fdd2197082adec36ce9701aa0c1723bdcd2348a",
39
- "size": 384213664
38
+ "checksum": "00e5be0a8b69893cad9259a1e8b80d59be8f3eb367d4a16c19f91bcd279423b7",
39
+ "size": 253204128
40
40
  },
41
41
  "win32-arm64": {
42
42
  "binary": "claude.exe",
43
- "checksum": "9cff8169be24a8b3e59e89e58d9e3d37f3c17ca1b3a149e60666fe53c789d80a",
44
- "size": 372111520
43
+ "checksum": "a6b097f8cfb742f66cced452fc9260a6302637379813c06a4f4516aa2c4917f7",
44
+ "size": 244317344
45
45
  }
46
46
  },
47
47
  "sdkCompat": {
48
48
  "testedWrapperVersions": [
49
- "0.3.208",
50
- "0.3.209",
51
49
  "0.3.210",
52
50
  "0.3.211",
53
51
  "0.3.212",
package/manifest.zst.json CHANGED
@@ -1,61 +1,59 @@
1
1
  {
2
- "version": "2.1.245",
3
- "commit": "28b7e8c41235a9e2fcb24248e60c4cc2d29c853a",
4
- "buildDate": "2026-08-25T04:10:59Z",
2
+ "version": "2.1.247",
3
+ "commit": "89c726188daf6407b6b57bf67d312f2958e5b9f2",
4
+ "buildDate": "2026-08-26T06:10:18Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude.zst",
8
- "checksum": "2fcaad2a263142d718bef1802f096d0a6485678d24af373a2aba990375f330d9",
9
- "size": 76482671,
8
+ "checksum": "8ca071dbb165f818b1091d0756932aa7307d19a80c2db540b3e9c501c39bcf7a",
9
+ "size": 68851450,
10
10
  "bundle": {
11
- "checksum": "bc9a9b736151e143c43067e4b8a52a7d09ebe51da28c0531eb11545dfe816d45",
12
- "size": 76483812
11
+ "checksum": "5298653b09fe0f382fd79f8fbe5a48d474b6df563665b40b160153ab156cd35f",
12
+ "size": 68850320
13
13
  }
14
14
  },
15
15
  "darwin-x64": {
16
16
  "binary": "claude.zst",
17
- "checksum": "0cf787c9abba73569f1b20df7709703b48319c8b816f29cbdef6919670a7d8f0",
18
- "size": 80306963,
17
+ "checksum": "c739be8ab289e634bf8a8a2028a68284b32e4ac46e2ee4424227ef46133ee687",
18
+ "size": 73132830,
19
19
  "bundle": {
20
- "checksum": "d8ca0b4b84bcdc355c778ed14e353949b3688d8140f4eeae1029b13db4a4a188",
21
- "size": 80311603
20
+ "checksum": "f413c2596ffc2b7cb188b581e7e5105b34dbca7a7d5147c2621f344b9197d89e",
21
+ "size": 73136601
22
22
  }
23
23
  },
24
24
  "linux-arm64": {
25
25
  "binary": "claude.zst",
26
- "checksum": "01f6f7535d0d90322f60305ef748ecef8767eb662c31e5357b87481b8df5599c",
27
- "size": 83546630
26
+ "checksum": "8e0d209f53fbe56d6b3202015e2551195c98b3c1a945b4c0c0727a398df6c879",
27
+ "size": 78087034
28
28
  },
29
29
  "linux-x64": {
30
30
  "binary": "claude.zst",
31
- "checksum": "11fa8433b06d700f1555ebbac1f1b7b25cb48cd202bac1147be766340dca14dd",
32
- "size": 85457200
31
+ "checksum": "5bff56908157f2dde2bd0577d282da70e0be7f49284a6e89975aa1246505054c",
32
+ "size": 78728740
33
33
  },
34
34
  "linux-arm64-musl": {
35
35
  "binary": "claude.zst",
36
- "checksum": "533cc6a65a87f5fe458345fa6c31ff3197a3a5bb960cc4765667306049bab7e3",
37
- "size": 83134954
36
+ "checksum": "7c09aa7ac6e4361d4c5cc2f05a2f8a46d8338b1f8f8477674205f35aaeb755ea",
37
+ "size": 76536663
38
38
  },
39
39
  "linux-x64-musl": {
40
40
  "binary": "claude.zst",
41
- "checksum": "fe584dde417877d995638ccd181c145dc352ac3d1625b7fda331849d2104179e",
42
- "size": 84426135
41
+ "checksum": "55faf4b75c8d565be5912857ff8b3b20451d70cadcce427c332b51263ea64754",
42
+ "size": 77199333
43
43
  },
44
44
  "win32-x64": {
45
45
  "binary": "claude.exe.zst",
46
- "checksum": "752236e50aebdd764d869c8b5632b1aab87cce67a09baa473d663f78a2ffdffe",
47
- "size": 87024225
46
+ "checksum": "6762311bd9602259cf8e98bda35cb37f15b4c884e7032cf99a2c18984d02efb1",
47
+ "size": 81115442
48
48
  },
49
49
  "win32-arm64": {
50
50
  "binary": "claude.exe.zst",
51
- "checksum": "e81e7e1219fbef1695e5f1d1cee8fb603df10f6357c6ed1fa5fc22ea3e011405",
52
- "size": 83140027
51
+ "checksum": "6b3b4e4ac6bfdf2515cb6cb7d0bc2640c7375d6bd4c9a5500e8bfdd9c0db3ddd",
52
+ "size": 77905662
53
53
  }
54
54
  },
55
55
  "sdkCompat": {
56
56
  "testedWrapperVersions": [
57
- "0.3.208",
58
- "0.3.209",
59
57
  "0.3.210",
60
58
  "0.3.211",
61
59
  "0.3.212",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anthropic-ai/claude-agent-sdk",
3
- "version": "0.3.245",
3
+ "version": "0.3.247",
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.245",
61
- "@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.245",
62
- "@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.245",
63
- "@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.245",
64
- "@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.245",
65
- "@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.245",
66
- "@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.245",
67
- "@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.245"
60
+ "@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.247",
61
+ "@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.247",
62
+ "@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.247",
63
+ "@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.247",
64
+ "@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.247",
65
+ "@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.247",
66
+ "@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.247",
67
+ "@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.247"
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.245"
83
+ "claudeCodeVersion": "2.1.247"
84
84
  }
package/sdk-tools.d.ts CHANGED
@@ -103,22 +103,6 @@ export type ToolOutputSchemas =
103
103
  export type AgentOutput =
104
104
  | {
105
105
  agentId: string;
106
- /**
107
- * @internal Count of leading harness-authored content blocks (hand-back provenance bookkeeping; not a stable consumer field)
108
- */
109
- harnessNoteCount?: number;
110
- /**
111
- * @internal Count of trailing harness-authored content blocks (hand-back provenance bookkeeping; not a stable consumer field)
112
- */
113
- harnessTailCount?: number;
114
- /**
115
- * @internal Fingerprint binding the harness section counts to the exact content they were computed against; a hook rewrite invalidates the counts rather than misplacing rewritten bytes
116
- */
117
- harnessSectionHash?: string;
118
- /**
119
- * @internal The handoff review was skipped because the provenance frame covers this delivery (tengu_auto_mode_config.classifyHandoff: false); the tool_result mapper MUST compose the frame when set, regardless of a fresh flag read
120
- */
121
- handoffReviewSkipped?: boolean;
122
106
  agentType?: string;
123
107
  content: {
124
108
  type: "text";
@@ -3060,7 +3044,7 @@ export interface ProposeGoalInput {
3060
3044
  }
3061
3045
  export interface ArtifactInput {
3062
3046
  /**
3063
- * Omit (or 'publish') to publish file_path. 'list' enumerates artifacts — the user's own by default, see `scope`; only `limit` and `scope` may accompany it. 'read' returns the content of the published artifact at `url` (raw HTML for the user's own; an isolated summary, steered by the optional `prompt`, for one shared with them, though a page published in this session's own Slack channel can come back in full as untrusted content) — see **To read an existing artifact's content**. 'watch', 'unwatch', and 'status' manage live-update subscriptions that notify a session when an artifact is republished elsewhere, and those aren't available in this session: 'watch' only reports that — no republish notification reaches this session — and 'status' lists this session's artifact watches (pass `url` to check one). 'upload_asset' adds one local media, PDF, or font file to an existing artifact — pass `url` and `file_path`. 'list_assets' lists the files in an artifact's asset store (pass `url`; `after` continues a listing), 'read_asset' saves one of them to a local file named by its id (pass `url` and `asset_id`, optionally `out_dir`), and 'delete_asset' permanently removes one (pass `url` and `asset_id`). See **Artifact assets** above.
3047
+ * Omit (or 'publish') to publish file_path. 'list' enumerates artifacts — the user's own by default, see `scope`; only `limit` and `scope` may accompany it. 'read' returns the content of the published artifact at `url` (raw HTML for the user's own; an isolated summary, steered by the optional `prompt`, for one shared with them, though a page published in this session's own Slack channel can come back in full as untrusted content) — see **To read an existing artifact's content**. 'watch', 'unwatch', and 'status' manage live-update subscriptions that notify a session when an artifact is republished elsewhere, and those aren't available in this session: 'watch' only reports that — no republish notification reaches this session — and 'status' lists this session's artifact watches (pass `url` to check one). 'upload_asset' adds one local media, PDF, font, or text file to an existing artifact — pass `url` and `file_path`. 'list_assets' lists the files in an artifact's asset store (pass `url`; `after` continues a listing), 'read_asset' saves one of them to a local file named by its id (pass `url` and `asset_id`, optionally `out_dir`), and 'delete_asset' permanently removes one (pass `url` and `asset_id`). See **Artifact assets** above.
3064
3048
  */
3065
3049
  action?:
3066
3050
  | "publish"
@@ -3074,7 +3058,7 @@ export interface ArtifactInput {
3074
3058
  | "read_asset"
3075
3059
  | "delete_asset";
3076
3060
  /**
3077
- * Path to the .html file to render. Required to publish (the default action). Use a short, distinctive basename — it is the last-resort title when the HTML has no <title> and no `title` parameter is given. For 'upload_asset', the local image, video, PDF, or font file to upload.
3061
+ * Path to the .html file to render. Required to publish (the default action). Use a short, distinctive basename — it is the last-resort title when the HTML has no <title> and no `title` parameter is given. For 'upload_asset', the local image, video, PDF, font, or text (CSV, Markdown, JSON, plain text) file to upload.
3078
3062
  */
3079
3063
  file_path?: string;
3080
3064
  /**
@@ -3237,7 +3221,7 @@ export interface BashOutput {
3237
3221
  */
3238
3222
  ghRateLimitHint?: string;
3239
3223
  /**
3240
- * @internal Structured classification of git/gh operations detected in this command (commit/push/merge/rebase/PR). Client-facing — lets clients render git activity without re-parsing stdout; not surfaced to the model.
3224
+ * Structured classification of git/gh operations detected in this command (commit/push/merge/rebase/PR). Client-facing — lets clients render git activity without re-parsing stdout; not surfaced to the model.
3241
3225
  */
3242
3226
  gitOperation?: {
3243
3227
  commit?: {
@@ -3358,7 +3342,7 @@ export interface FileWriteOutput {
3358
3342
  */
3359
3343
  content: string;
3360
3344
  /**
3361
- * Diff patch showing the changes
3345
+ * Diff patch showing the changes (empty when nothing changed, the diff timed out, or — with originalFile null on an update — the previous content was too large to diff)
3362
3346
  */
3363
3347
  structuredPatch: {
3364
3348
  oldStart: number;
@@ -3368,7 +3352,7 @@ export interface FileWriteOutput {
3368
3352
  lines: string[];
3369
3353
  }[];
3370
3354
  /**
3371
- * The original file content before the write (null for new files)
3355
+ * The original file content before the write (null for new files, or when the previous content was too large to include)
3372
3356
  */
3373
3357
  originalFile: string | null;
3374
3358
  gitDiff?: {
package/sdk.d.ts CHANGED
@@ -1302,6 +1302,10 @@ export declare type ModelUsage = {
1302
1302
  * API provider that served this model (e.g. 'firstParty', 'bedrock', 'vertex', 'foundry', 'anthropicAws', 'mantle', 'gateway').
1303
1303
  */
1304
1304
  provider?: string;
1305
+ /**
1306
+ * Which price table the most recent request for this model was priced at: Claude Code's built-in list prices ('list'), the organization's managed-settings modelPricing rates or multiplier ('managed'), or neither ('unknown' — no pricing row and no built-in price matched the model ID, so costUSD is a guess at the default model's rate). Overwritten per request like canonicalModel, so a consumer that differences the cumulative costUSD per turn gets that turn's basis. Absent until this process has priced a request for the model (e.g. right after --resume) and on builds that predate the field; treat as 'list'.
1307
+ */
1308
+ costBasis?: 'list' | 'managed' | 'unknown';
1305
1309
  };
1306
1310
 
1307
1311
  export declare type NonNullableUsage = {
@@ -1623,6 +1627,26 @@ export declare type Options = {
1623
1627
  * explicit declaration overrides).
1624
1628
  */
1625
1629
  supportedDialogKinds?: string[];
1630
+ /**
1631
+ * Declares that this consumer renders a per-task stop control wired to
1632
+ * the `stop_task` control request, so the user can stop an individual
1633
+ * background task.
1634
+ *
1635
+ * When declared, an interrupt on an open-input (interactive
1636
+ * stream-json) session spares running background agents/workflows —
1637
+ * Stop only aborts the current turn, and tasks are stopped one at a
1638
+ * time through the consumer's own affordance. Closed-input exception:
1639
+ * on a one-shot run (the string `prompt` form and `-p`, which close
1640
+ * stdin), hold-back tasks are still killed when the held result is
1641
+ * released, regardless of this declaration — with stdin closed, a
1642
+ * `stop_task` control could never be delivered, so the fail-closed
1643
+ * kill stands. The CLI also fails closed on absence: without the
1644
+ * declaration, an interrupt kills background tasks, because a spared
1645
+ * runaway task would otherwise be unstoppable from this consumer short
1646
+ * of ending the session. First-attached-client
1647
+ * wins on multi-client sessions; later initializes do not change it.
1648
+ */
1649
+ perTaskStopAffordance?: boolean;
1626
1650
  /**
1627
1651
  * When false, disables session persistence to disk. Sessions will not be
1628
1652
  * saved to ~/.claude/projects/ and cannot be resumed later. Useful for
@@ -3070,6 +3094,10 @@ export declare type SDKAssistantMessage = {
3070
3094
  uuid: UUID;
3071
3095
  session_id: string;
3072
3096
  request_id?: string;
3097
+ /**
3098
+ * Client uuid of the user message that triggered this turn (submitMessage options.uuid), stamped on the turn's FIRST reply frame only — the first assistant message in complete-message mode; with --include-partial-messages the stamp normally rides the first non-ping stream event instead (see SDKPartialAssistantMessage), and a turn that produces no stream events still stamps its first assistant message — so a consumer can bind the reply to the send it answers without waiting for the result. Wrapper-level sibling — never inside `message.content` — so it is not replayed to the model. Absent on every later frame of the turn, on subagent frames (parent_tool_use_id set), on synthetic/scheduled (meta) turns, on turns without a client uuid, and from older producers.
3099
+ */
3100
+ user_message_uuid?: string;
3073
3101
  /**
3074
3102
  * This turn continued the preceding truncated assistant turn inside its trailing signed thinking block (max-output-tokens recovery). Its thinking signatures are cumulative over that preceding thinking-only turn, so a history replayed through the bridge must carry this flag back for the normalizer to keep the run's prefix on the wire. Wrapper-level sibling — never inside `message.content` — so it is not replayed to the model.
3075
3103
  */
@@ -3126,7 +3154,7 @@ export declare type SDKAuthStatusMessage = {
3126
3154
  };
3127
3155
 
3128
3156
  /**
3129
- * The full set of live background tasks, emitted whenever membership changes (start, completion, kill, a foreground agent being backgrounded). A level signal, unlike the task_started/task_notification edge bookends: consumers that only need 'is background work running' should replace their set with each payload rather than pairing edges, so a missed bookend cannot wedge a stale running indicator. Ordering relative to the bookends for the same transition is unspecified (in practice the level precedes them) and the payload carries ids only, so do not correlate it with the edge stream. The level is per-process: nothing is emitted at startup, so consumers must reset to the empty set whenever the session's CLI process (re)starts and let the next membership change repopulate it. A host that re-initializes an already-running process (a repeated `initialize` control request, e.g. after reconnecting) is sent a snapshot of the current set right behind the success response to that request, even when it is empty, so it need not wait for a change; CLIs that predate this send nothing there.
3157
+ * The full set of live background tasks, emitted whenever membership changes (start, completion, kill, a foreground agent being backgrounded) or an entry's `ambient` flag flips. A level signal, unlike the task_started/task_notification edge bookends: consumers that only need 'is background work running' should replace their set with each payload rather than pairing edges, so a missed bookend cannot wedge a stale running indicator. Ordering relative to the bookends for the same transition is unspecified (in practice the level precedes them) and the payload carries ids only, so do not correlate it with the edge stream. The level is per-process: nothing is emitted at startup, so consumers must reset to the empty set whenever the session's CLI process (re)starts and let the next membership change repopulate it. A host that re-initializes an already-running process (a repeated `initialize` control request, e.g. after reconnecting) is sent a snapshot of the current set right behind the success response to that request, even when it is empty, so it need not wait for a change; CLIs that predate this send nothing there.
3130
3158
  */
3131
3159
  export declare type SDKBackgroundTasksChangedMessage = {
3132
3160
  type: 'system';
@@ -3138,6 +3166,10 @@ export declare type SDKBackgroundTasksChangedMessage = {
3138
3166
  task_id: string;
3139
3167
  task_type: string;
3140
3168
  description: string;
3169
+ /**
3170
+ * True for housekeeping tasks the CLI does not surface as user work (every skip_transcript task, plus auto-started live-update watchers); hosts should exclude them from activity indicators.
3171
+ */
3172
+ ambient?: boolean;
3141
3173
  }[];
3142
3174
  uuid: UUID;
3143
3175
  session_id: string;
@@ -3726,6 +3758,10 @@ declare type SDKControlInitializeRequest = {
3726
3758
  * Dialog kinds (request_user_dialog `dialog_kind` values) this consumer's onUserDialog can actually render. The CLI treats ABSENCE as 'cannot display' and fails closed: without the kind declared here, a dialog-gated flow degrades to its no-dialog behavior (for 'refusal_fallback_prompt', the classic refusal error) instead of parking a dialog the consumer may mishandle. First-attached-client-wins on multi-client sessions; later initializes do not change it.
3727
3759
  */
3728
3760
  supportedDialogKinds?: string[];
3761
+ /**
3762
+ * Declares that this consumer renders a per-task stop control wired to the `stop_task` control request, so the user can stop an individual background task. When declared, an interrupt on an open-input (interactive stream-json) session spares running background agents/workflows (Stop only aborts the turn). Closed-input exception: a one-shot run (string prompt / -p closes stdin) still kills hold-back tasks at the held-result release regardless of the declaration — with stdin closed, a stop_task control could never be delivered, so the fail-closed kill stands. ABSENCE also fails closed: the interrupt kills background tasks, since the user would otherwise have no way to stop a runaway one. First-attached-client-wins on multi-client sessions; later initializes do not change it.
3763
+ */
3764
+ perTaskStopAffordance?: boolean;
3729
3765
 
3730
3766
  };
3731
3767
 
@@ -4491,6 +4527,10 @@ export declare type SDKPartialAssistantMessage = {
4491
4527
  uuid: UUID;
4492
4528
  session_id: string;
4493
4529
  ttft_ms?: number;
4530
+ /**
4531
+ * Client uuid of the user message that triggered this turn (submitMessage options.uuid), stamped on the turn's FIRST non-ping stream event only (the frame that triggers the turn's initial ack) so a consumer can bind the reply stream to the send it answers without waiting for the result. Absent on every later stream event of the turn, on synthetic/scheduled (meta) turns, on turns without a client uuid, and from older producers.
4532
+ */
4533
+ user_message_uuid?: string;
4494
4534
  };
4495
4535
 
4496
4536
  export declare type SDKPermissionDenial = {
@@ -4631,6 +4671,10 @@ export declare type SDKResultError = {
4631
4671
  */
4632
4672
  queued_turn_count?: number;
4633
4673
  errors: string[];
4674
+ /**
4675
+ * Client uuid of the user message that triggered this turn (submitMessage options.uuid), echoed back so a consumer can link this error result to the send it answers — the same join key the success variant echoes, carried alone (error turns have no request_sent_wall_ms to report). A delivery-failure result from the remote-session client echoes the failed send's queue key, which is client-minted when the host sent no uuid of its own. Absent on synthetic/scheduled (meta) turns, on turns without a client uuid, on session-scoped failures with no single triggering send (a crashed worker's zeroed result), and from older producers.
4676
+ */
4677
+ user_message_uuid?: string;
4634
4678
  terminal_reason?: TerminalReason;
4635
4679
  fast_mode_state?: FastModeState;
4636
4680
  fast_mode_disabled_reason?: FastModeDisabledReason;
@@ -4837,6 +4881,7 @@ export declare type SDKSystemMessage = {
4837
4881
 
4838
4882
 
4839
4883
 
4884
+
4840
4885
  uuid: UUID;
4841
4886
  session_id: string;
4842
4887
  };
@@ -4855,6 +4900,10 @@ export declare type SDKTaskNotificationMessage = {
4855
4900
  duration_ms: number;
4856
4901
  };
4857
4902
  skip_transcript?: boolean;
4903
+ /**
4904
+ * True for housekeeping tasks the CLI does not surface as user work (every skip_transcript task, plus auto-started live-update watchers); hosts should exclude them from activity indicators.
4905
+ */
4906
+ ambient?: boolean;
4858
4907
  uuid: UUID;
4859
4908
  session_id: string;
4860
4909
  };
@@ -4909,6 +4958,10 @@ export declare type SDKTaskStartedMessage = {
4909
4958
  * Ambient/housekeeping task. Consumers should hide this from the inline transcript; it may still appear in a tasks panel.
4910
4959
  */
4911
4960
  skip_transcript?: boolean;
4961
+ /**
4962
+ * True for housekeeping tasks the CLI does not surface as user work (every skip_transcript task, plus auto-started live-update watchers); hosts should exclude them from activity indicators.
4963
+ */
4964
+ ambient?: boolean;
4912
4965
  uuid: UUID;
4913
4966
  session_id: string;
4914
4967
  };
@@ -5404,6 +5457,10 @@ export declare interface Settings {
5404
5457
  * Set to false to turn off syncing of the skills you have enabled on claude.ai. In your user settings (or managed settings): nothing more is downloaded, previously synced skills (~/.claude/skills/synced) can no longer be run, are hidden from every session started afterwards, and are moved to ~/.claude/skills/.trash at the next launch (deleted after cleanupPeriodDays; re-downloaded, not restored, if you re-enable). In .claude/settings.local.json or --settings: downloads stop and synced skills are blocked and hidden for sessions in that workspace or invocation only (nothing is moved). Not read from project settings (.claude/settings.json). Only false is honored — the feature is enabled server-side for your account, so setting true does not turn it on early. While it is on, synced skills are available in every session, re-synced every 10 minutes, and removed when you disable them on claude.ai. Only applies when signed in with your Claude account.
5405
5458
  */
5406
5459
  syncClaudeAiSkills?: boolean;
5460
+ /**
5461
+ * Set to false to turn off syncing of the plugins you have enabled on claude.ai. In your user settings (or managed settings): nothing more is downloaded, previously synced plugins (~/.claude/plugins/synced) are hidden from every session started afterwards and moved to ~/.claude/plugins/.trash at the next launch (deleted after cleanupPeriodDays; re-downloaded, not restored, if you re-enable). In .claude/settings.local.json or --settings: downloads stop and synced plugins are hidden for sessions in that workspace or invocation only (nothing is moved). Not read from project settings (.claude/settings.json). Only false is honored — the feature is enabled server-side for your account, so setting true does not turn it on early. While it is on, synced plugins load in every session like plugins you installed yourself (a plugin you installed with the same name takes precedence), are re-synced at each launch, and are removed when you disable them on claude.ai. Only applies when signed in with your Claude account.
5462
+ */
5463
+ syncClaudeAiPlugins?: boolean;
5407
5464
  /**
5408
5465
  * Per-skill description character cap in the skill listing sent to Claude (default: 1536). Descriptions longer than this are truncated. Raise to opt in to higher per-turn context cost.
5409
5466
  */
@@ -5527,7 +5584,7 @@ export declare interface Settings {
5527
5584
  replaceBuiltInOptions?: boolean;
5528
5585
  };
5529
5586
  /**
5530
- * Price usage at your organization's contracted rates instead of list price. Affects every spend figure Claude Code reports — /cost, the status line, the SDK total_cost_usd, --max-budget-usd, and the OpenTelemetry cost metric and events — which remain USD estimates, not an invoice (the per-Mtok price labels in /model stay at list). "overrides" maps a model ID to its USD-per-million-token rates (input, output, cacheRead, cacheWrite — all four required, each 0 to 10000; cacheWrite prices both 5-minute and 1-hour cache writes). A matching row is charged exactly as written; fast-mode and US-data-residency surcharges are not added on top. A key Claude Code itself uses for a built-in model — its ID such as "claude-sonnet-4-6", or its first-party, Bedrock (any or no region prefix), Vertex or Foundry ID — covers every dated and provider form of that model; any other key — a gateway model alias, or a spelling Claude Code does not itself use — matches that model ID only (case-insensitive), and such an exact match wins over a built-in row. On Bedrock an application inference profile is matched by its backing model. An invalid row or multiplier is reported and skipped; the rest still apply. "multiplier" in (0, 1] scales every computed cost, overridden or not (0.85 = 85% of the price). Only honored from managed settings (server-managed, MDM / OS policy, or managed-settings.json); ignored in user, project, local and --settings sources.
5587
+ * Price usage at your organization's contracted rates instead of list price. Affects every spend figure Claude Code reports — /cost, the status line, the SDK total_cost_usd, --max-budget-usd, and the OpenTelemetry cost metric and events — which remain USD estimates, not an invoice (the per-Mtok price labels in /model stay at list). "overrides" maps a model ID to its USD-per-million-token rates (input, output, cacheRead, cacheWrite — all four required, each 0 to 10000; cacheWrite prices both 5-minute and 1-hour cache writes). A matching row is charged exactly as written; fast-mode and US-data-residency surcharges are not added on top. A key Claude Code itself uses for a built-in model — its ID such as "claude-sonnet-4-6", or its first-party, Bedrock (any or no region prefix), Vertex or Foundry ID — covers every dated and provider form of that model; any other key — a gateway model alias, or a spelling Claude Code does not itself use — matches that model ID only (case-insensitive), and such an exact match wins over a built-in row. On Bedrock an application inference profile is matched by its backing model. An invalid row or multiplier is reported and skipped; the rest still apply. "multiplier" in (0, 1] scales every computed cost, overridden or not (0.85 = 85% of the price). Only honored from managed settings (server-managed, MDM / OS policy, or managed-settings.json), or — when none of those sets it — when supplied by a host application that manages the model provider; ignored in user, project, local and --settings sources.
5531
5588
  */
5532
5589
  modelPricing?: {
5533
5590
  multiplier?: number;
@@ -7425,11 +7482,22 @@ export declare interface Settings {
7425
7482
  verbs: string[];
7426
7483
  };
7427
7484
  /**
7428
- * Override spinner tips. tips: array of tip strings. excludeDefault: if true, only show custom tips (default: false).
7485
+ * Add your organization's own tips to the spinner tip rotation. tips: strings or {id, text, cooldownSessions?, priority?} objects; tipsFile: a JSON file of the same; label: prefix shown before your tips; excludeDefault: if true, only show your tips (default: false).
7429
7486
  */
7430
7487
  spinnerTipsOverride?: {
7431
7488
  excludeDefault?: boolean;
7432
- tips: string[];
7489
+ tips?: (string | {
7490
+ [k: string]: unknown;
7491
+ })[];
7492
+ /**
7493
+ * Absolute or ~/ local path to a JSON file holding an array of tips (same shapes as `tips`); honored from user, --settings and on-disk managed settings only. Read once per CLI process (restart to pick up edits).
7494
+ */
7495
+ tipsFile?: string;
7496
+ /**
7497
+ * Prefix shown before your tips in the spinner (default "Tip")
7498
+ */
7499
+ label?: string;
7500
+ [k: string]: unknown;
7433
7501
  };
7434
7502
  /**
7435
7503
  * Whether to disable syntax highlighting in diffs