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

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,52 +1,51 @@
1
1
  {
2
- "version": "2.1.245",
3
- "commit": "28b7e8c41235a9e2fcb24248e60c4cc2d29c853a",
4
- "buildDate": "2026-08-25T04:08:50Z",
2
+ "version": "2.1.246",
3
+ "commit": "1ba9d2211ae14e591bd1d60451c217c51f415e86",
4
+ "buildDate": "2026-08-25T18:46:33Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude",
8
- "checksum": "9f7c2260251765a18d0b35198669dacc1912f6e8129a3b01f6b58d93365ff1f1",
9
- "size": 376109392
8
+ "checksum": "7b09f01cb76a38e0e3a7c47c5d698d382162a5ff26538fc778683770caf9218b",
9
+ "size": 230824016
10
10
  },
11
11
  "darwin-x64": {
12
12
  "binary": "claude",
13
- "checksum": "de044bb543e826352f31587a74356e1b2dae94dc1b9c960a362d9f07df96c2a7",
14
- "size": 385137136
13
+ "checksum": "336625850986371487de7ece776d583f36cc3b3bc7178fcfbde3656d010289fb",
14
+ "size": 239710512
15
15
  },
16
16
  "linux-arm64": {
17
17
  "binary": "claude",
18
- "checksum": "d0da299303d710a7cc5cdece9629958f5128ce1a727e15463c651ed5cf385c7f",
19
- "size": 389077224
18
+ "checksum": "f98296e6e61c507589d1a973b262976b734700ec4e055cb64afdbf6d9a337db7",
19
+ "size": 247389632
20
20
  },
21
21
  "linux-x64": {
22
22
  "binary": "claude",
23
- "checksum": "16ad2b94deaf7b29abed966d981c9991a47af0420f5be8ed4a3f83bea9f678bc",
24
- "size": 391948592
23
+ "checksum": "1a0a662dc1bb938eaec38545abce9a4a69113d7d7f7c5e1a553ea276617b906a",
24
+ "size": 247905800
25
25
  },
26
26
  "linux-arm64-musl": {
27
27
  "binary": "claude",
28
- "checksum": "8707fbe629fdd9876d9c356baa833a697dac76cd9a7157088f667199b8492851",
29
- "size": 382222104
28
+ "checksum": "8f7d77a91b95dbeda31393463b2ac7d2b490c577486829b732ce1ac41a747034",
29
+ "size": 240072248
30
30
  },
31
31
  "linux-x64-musl": {
32
32
  "binary": "claude",
33
- "checksum": "d25564bc5d84ec988a762cfe25fe51cb706b96eaec614f704ddbf653ab08ba00",
34
- "size": 386060256
33
+ "checksum": "81de46c50d987b99d2a1b4f3b11f3acf8c6deb57bef2a41f8e770837ddcf52fb",
34
+ "size": 241667960
35
35
  },
36
36
  "win32-x64": {
37
37
  "binary": "claude.exe",
38
- "checksum": "d1649bf5261792fee7e1a1b63fdd2197082adec36ce9701aa0c1723bdcd2348a",
39
- "size": 384213664
38
+ "checksum": "9f07f1ecaf26231fc2fac489e7c5214140d38fd14764938a2c8c46f31931d204",
39
+ "size": 250948768
40
40
  },
41
41
  "win32-arm64": {
42
42
  "binary": "claude.exe",
43
- "checksum": "9cff8169be24a8b3e59e89e58d9e3d37f3c17ca1b3a149e60666fe53c789d80a",
44
- "size": 372111520
43
+ "checksum": "911036439b49e81c5801092764e803207fc56b4e690afadb743f51220c2f8201",
44
+ "size": 242062496
45
45
  }
46
46
  },
47
47
  "sdkCompat": {
48
48
  "testedWrapperVersions": [
49
- "0.3.208",
50
49
  "0.3.209",
51
50
  "0.3.210",
52
51
  "0.3.211",
package/manifest.zst.json CHANGED
@@ -1,60 +1,59 @@
1
1
  {
2
- "version": "2.1.245",
3
- "commit": "28b7e8c41235a9e2fcb24248e60c4cc2d29c853a",
4
- "buildDate": "2026-08-25T04:10:59Z",
2
+ "version": "2.1.246",
3
+ "commit": "1ba9d2211ae14e591bd1d60451c217c51f415e86",
4
+ "buildDate": "2026-08-25T18:47:52Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude.zst",
8
- "checksum": "2fcaad2a263142d718bef1802f096d0a6485678d24af373a2aba990375f330d9",
9
- "size": 76482671,
8
+ "checksum": "1978b0b0167e7c077ae2536ed757a4dc22226540e3390bbc0884dc2ed3b9a0e3",
9
+ "size": 68186320,
10
10
  "bundle": {
11
- "checksum": "bc9a9b736151e143c43067e4b8a52a7d09ebe51da28c0531eb11545dfe816d45",
12
- "size": 76483812
11
+ "checksum": "beec443ec1fc0f6989e5ddcf25b032cdccceb8ca76e86b4ce90808ce88aacc89",
12
+ "size": 68190259
13
13
  }
14
14
  },
15
15
  "darwin-x64": {
16
16
  "binary": "claude.zst",
17
- "checksum": "0cf787c9abba73569f1b20df7709703b48319c8b816f29cbdef6919670a7d8f0",
18
- "size": 80306963,
17
+ "checksum": "b6269818f05c61f86029a018c39ed0903a5d69ad0eed6c0f05df7a79dd10c6ae",
18
+ "size": 72456477,
19
19
  "bundle": {
20
- "checksum": "d8ca0b4b84bcdc355c778ed14e353949b3688d8140f4eeae1029b13db4a4a188",
21
- "size": 80311603
20
+ "checksum": "0f2691f9212e25422ed694d2eb6890030f27d1574b46af7d92d8b239127d3cba",
21
+ "size": 72465121
22
22
  }
23
23
  },
24
24
  "linux-arm64": {
25
25
  "binary": "claude.zst",
26
- "checksum": "01f6f7535d0d90322f60305ef748ecef8767eb662c31e5357b87481b8df5599c",
27
- "size": 83546630
26
+ "checksum": "68915f3c07ad0090466282d580df4f4a11b339cee26888ed25f9446bbbef5c91",
27
+ "size": 77461718
28
28
  },
29
29
  "linux-x64": {
30
30
  "binary": "claude.zst",
31
- "checksum": "11fa8433b06d700f1555ebbac1f1b7b25cb48cd202bac1147be766340dca14dd",
32
- "size": 85457200
31
+ "checksum": "7fb5cc4ea9eb02c777a4d6363907957253fec6ee79617d145a142fbcc7e8c438",
32
+ "size": 78105392
33
33
  },
34
34
  "linux-arm64-musl": {
35
35
  "binary": "claude.zst",
36
- "checksum": "533cc6a65a87f5fe458345fa6c31ff3197a3a5bb960cc4765667306049bab7e3",
37
- "size": 83134954
36
+ "checksum": "74583317118d09d3a263593b18420e7c67cd49844f59cc6b403377b2bf27bbe6",
37
+ "size": 75912733
38
38
  },
39
39
  "linux-x64-musl": {
40
40
  "binary": "claude.zst",
41
- "checksum": "fe584dde417877d995638ccd181c145dc352ac3d1625b7fda331849d2104179e",
42
- "size": 84426135
41
+ "checksum": "8527572efb30d0e23a84f0871cc61d586f21400fcd3ca9e82f30c754bf6dfa10",
42
+ "size": 76577839
43
43
  },
44
44
  "win32-x64": {
45
45
  "binary": "claude.exe.zst",
46
- "checksum": "752236e50aebdd764d869c8b5632b1aab87cce67a09baa473d663f78a2ffdffe",
47
- "size": 87024225
46
+ "checksum": "4b49b5f1c4227009a57886d94f41fa887dafe0eaa4cb36252aed3954da663418",
47
+ "size": 80499903
48
48
  },
49
49
  "win32-arm64": {
50
50
  "binary": "claude.exe.zst",
51
- "checksum": "e81e7e1219fbef1695e5f1d1cee8fb603df10f6357c6ed1fa5fc22ea3e011405",
52
- "size": 83140027
51
+ "checksum": "d01182540877177cdf600be238069a11479f31b2fb4f76b736108b38e0e1ccd0",
52
+ "size": 77290190
53
53
  }
54
54
  },
55
55
  "sdkCompat": {
56
56
  "testedWrapperVersions": [
57
- "0.3.208",
58
57
  "0.3.209",
59
58
  "0.3.210",
60
59
  "0.3.211",
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.246",
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.246",
61
+ "@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.246",
62
+ "@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.246",
63
+ "@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.246",
64
+ "@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.246",
65
+ "@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.246",
66
+ "@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.246",
67
+ "@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.246"
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.246"
84
84
  }
package/sdk-tools.d.ts CHANGED
@@ -3060,7 +3060,7 @@ export interface ProposeGoalInput {
3060
3060
  }
3061
3061
  export interface ArtifactInput {
3062
3062
  /**
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.
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, 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
3064
  */
3065
3065
  action?:
3066
3066
  | "publish"
@@ -3074,7 +3074,7 @@ export interface ArtifactInput {
3074
3074
  | "read_asset"
3075
3075
  | "delete_asset";
3076
3076
  /**
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.
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, font, or text (CSV, Markdown, JSON, plain text) file to upload.
3078
3078
  */
3079
3079
  file_path?: string;
3080
3080
  /**
@@ -3358,7 +3358,7 @@ export interface FileWriteOutput {
3358
3358
  */
3359
3359
  content: string;
3360
3360
  /**
3361
- * Diff patch showing the changes
3361
+ * 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
3362
  */
3363
3363
  structuredPatch: {
3364
3364
  oldStart: number;
@@ -3368,7 +3368,7 @@ export interface FileWriteOutput {
3368
3368
  lines: string[];
3369
3369
  }[];
3370
3370
  /**
3371
- * The original file content before the write (null for new files)
3371
+ * The original file content before the write (null for new files, or when the previous content was too large to include)
3372
3372
  */
3373
3373
  originalFile: string | null;
3374
3374
  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
  */
@@ -3726,6 +3754,10 @@ declare type SDKControlInitializeRequest = {
3726
3754
  * 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
3755
  */
3728
3756
  supportedDialogKinds?: string[];
3757
+ /**
3758
+ * 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.
3759
+ */
3760
+ perTaskStopAffordance?: boolean;
3729
3761
 
3730
3762
  };
3731
3763
 
@@ -4491,6 +4523,10 @@ export declare type SDKPartialAssistantMessage = {
4491
4523
  uuid: UUID;
4492
4524
  session_id: string;
4493
4525
  ttft_ms?: number;
4526
+ /**
4527
+ * 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.
4528
+ */
4529
+ user_message_uuid?: string;
4494
4530
  };
4495
4531
 
4496
4532
  export declare type SDKPermissionDenial = {
@@ -4631,6 +4667,10 @@ export declare type SDKResultError = {
4631
4667
  */
4632
4668
  queued_turn_count?: number;
4633
4669
  errors: string[];
4670
+ /**
4671
+ * 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.
4672
+ */
4673
+ user_message_uuid?: string;
4634
4674
  terminal_reason?: TerminalReason;
4635
4675
  fast_mode_state?: FastModeState;
4636
4676
  fast_mode_disabled_reason?: FastModeDisabledReason;
@@ -5404,6 +5444,10 @@ export declare interface Settings {
5404
5444
  * 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
5445
  */
5406
5446
  syncClaudeAiSkills?: boolean;
5447
+ /**
5448
+ * 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.
5449
+ */
5450
+ syncClaudeAiPlugins?: boolean;
5407
5451
  /**
5408
5452
  * 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
5453
  */
@@ -5527,7 +5571,7 @@ export declare interface Settings {
5527
5571
  replaceBuiltInOptions?: boolean;
5528
5572
  };
5529
5573
  /**
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.
5574
+ * 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
5575
  */
5532
5576
  modelPricing?: {
5533
5577
  multiplier?: number;