@github/copilot-sdk-linuxmusl-x64 1.0.14-preview.1 → 1.0.14

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.
@@ -1144,25 +1144,9 @@
1144
1144
  },
1145
1145
  "stability": "experimental"
1146
1146
  },
1147
- "registerExtensionToolsOnSession": {
1148
- "rpcMethod": "sessions.registerExtensionToolsOnSession",
1149
- "description": "Registers extension-provided tools on the given session, gated by an optional `enabled` callback. Returns an opaque unsubscribe function the caller must invoke to deregister the tools when the extension is torn down. Marked internal because `loader`, `enabled`, and the returned `unsubscribe` are in-process handles that cannot cross the JSON-RPC boundary. Disappears once extension discovery / launch / tool registration are owned by the runtime: SDK consumers will pass pure config (search paths, disabled ids) via `SessionOptions` and the runtime will resolve, launch, register, and tear down extensions itself.",
1150
- "params": {
1151
- "$ref": "#/definitions/RegisterExtensionToolsParams",
1152
- "description": "Params to attach an extension loader's tools to a session.",
1153
- "visibility": "internal"
1154
- },
1155
- "result": {
1156
- "$ref": "#/definitions/RegisterExtensionToolsResult",
1157
- "description": "Handle for releasing the extension tool registration.",
1158
- "visibility": "internal"
1159
- },
1160
- "stability": "experimental",
1161
- "visibility": "internal"
1162
- },
1163
1147
  "configureSessionExtensions": {
1164
1148
  "rpcMethod": "sessions.configureSessionExtensions",
1165
- "description": "Attaches (or detaches) an in-process ExtensionController delegate for the given session, used by shared-API surfaces that need to query or modify the session's extension state. Pass `controller: undefined` to detach. Marked internal because the controller is an in-process object that cannot cross the JSON-RPC boundary. Disappears alongside `registerExtensionToolsOnSession`: once the runtime owns extension management, the public surface exposes list/enable/disable/reload as dedicated RPCs served by the runtime.",
1149
+ "description": "Attaches (or detaches) an in-process ExtensionController delegate for the given session in a local host adapter. Pass `controller: undefined` to detach. Internal because the controller cannot cross the JSON-RPC boundary; the runtime manages its own session extension service.",
1166
1150
  "params": {
1167
1151
  "$ref": "#/definitions/ConfigureSessionExtensionsParams",
1168
1152
  "description": "Params to attach or detach an in-process ExtensionController delegate.",
@@ -1273,6 +1257,10 @@
1273
1257
  },
1274
1258
  "description": "Custom HTTP headers to include in outbound model requests for this turn. Merged with session-level provider headers; per-turn headers augment and overwrite session-level headers with the same key."
1275
1259
  },
1260
+ "responseFormat": {
1261
+ "$ref": "#/definitions/ResponseFormat",
1262
+ "description": "Provider-native output format for this turn, including all tool-call iterations. Not inherited by later turns or subagents. Ordinary steering inherits the active format; specifying responseFormat with mode: immediate is an error, even while idle. Returned assistant content remains text; the runtime does not parse or validate it. Unsupported models or schemas produce provider errors."
1263
+ },
1276
1264
  "traceparent": {
1277
1265
  "type": "string",
1278
1266
  "description": "W3C Trace Context traceparent header for distributed tracing of this agent turn"
@@ -1317,7 +1305,7 @@
1317
1305
  "$ref": "#/definitions/SendMessageItem",
1318
1306
  "description": "A single user message to append to the session as part of a `session.sendMessages` turn"
1319
1307
  },
1320
- "description": "The user messages to append to the conversation, in order. May be empty, in which case a single turn runs over the existing history with no new user message."
1308
+ "description": "The user messages to append to the conversation, in order, before running one agent loop. When the batch starts a run, its final message is the primary initiating message; earlier messages provide context, not separate runs or replies. May be empty, in which case a single turn runs over the existing history with no new user message or originatingMessageId."
1321
1309
  },
1322
1310
  "mode": {
1323
1311
  "$ref": "#/definitions/SendMode",
@@ -1338,6 +1326,10 @@
1338
1326
  },
1339
1327
  "description": "Custom HTTP headers to include in outbound model requests for this turn. Merged with session-level provider headers; per-turn headers augment and overwrite session-level headers with the same key."
1340
1328
  },
1329
+ "responseFormat": {
1330
+ "$ref": "#/definitions/ResponseFormat",
1331
+ "description": "Provider-native output format for the whole turn, including an empty message batch and all tool-call iterations. Not inherited by later turns or subagents. Ordinary steering inherits the active format; specifying responseFormat with mode: immediate is an error, even while idle. Returned assistant content remains text; the runtime does not parse or validate it. Unsupported models or schemas produce provider errors."
1332
+ },
1341
1333
  "traceparent": {
1342
1334
  "type": "string",
1343
1335
  "description": "W3C Trace Context traceparent header for distributed tracing of this agent turn"
@@ -1561,6 +1553,10 @@
1561
1553
  "reason": {
1562
1554
  "type": "string",
1563
1555
  "description": "Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'."
1556
+ },
1557
+ "detachSessionEndHooks": {
1558
+ "type": "boolean",
1559
+ "description": "Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec instead of awaiting them under the short shared shutdown budget. Set this when the host process keeps running after the session closes (for example the CLI's /clear), so a slow hook neither blocks the close nor is aborted. Hooks still detached when the process later exits are terminated with it. Defaults to false."
1564
1560
  }
1565
1561
  },
1566
1562
  "required": [
@@ -1867,7 +1863,7 @@
1867
1863
  "debug": {
1868
1864
  "collectLogs": {
1869
1865
  "rpcMethod": "session.debug.collectLogs",
1870
- "description": "Collects a redacted session debug log bundle into a local archive or staging directory. The runtime includes session-owned logs by default and accepts caller-provided diagnostic entries so host applications can add their own files without changing this API shape.",
1866
+ "description": "Collects a session debug log bundle into a local archive or staging directory. Logs are redacted by default; redaction can be configured per caller-provided diagnostic entry. The runtime includes session-owned logs by default and accepts caller-provided diagnostic entries so host applications can add their own files without changing this API shape.",
1871
1867
  "params": {
1872
1868
  "type": "object",
1873
1869
  "properties": {
@@ -1877,7 +1873,7 @@
1877
1873
  },
1878
1874
  "destination": {
1879
1875
  "$ref": "#/definitions/DebugCollectLogsDestination",
1880
- "description": "Where the redacted bundle should be written. Use `archive` to produce a .tgz, or `directory` to stage redacted files for caller-managed upload/post-processing."
1876
+ "description": "Where the bundle should be written. Use `archive` to produce a .tgz, or `directory` to stage files for caller-managed upload/post-processing."
1881
1877
  },
1882
1878
  "include": {
1883
1879
  "$ref": "#/definitions/DebugCollectLogsInclude",
@@ -1897,13 +1893,13 @@
1897
1893
  "destination"
1898
1894
  ],
1899
1895
  "additionalProperties": false,
1900
- "description": "Options for collecting a redacted session debug bundle.",
1896
+ "description": "Options for collecting a session debug bundle with configurable redaction.",
1901
1897
  "title": "DebugCollectLogsRequest",
1902
1898
  "stability": "experimental"
1903
1899
  },
1904
1900
  "result": {
1905
1901
  "$ref": "#/definitions/DebugCollectLogsResult",
1906
- "description": "Result of collecting a redacted debug bundle."
1902
+ "description": "Result of collecting a session debug bundle."
1907
1903
  },
1908
1904
  "stability": "experimental"
1909
1905
  }
@@ -3492,7 +3488,7 @@
3492
3488
  },
3493
3489
  "path": {
3494
3490
  "type": "string",
3495
- "description": "Relative path within the workspace files directory"
3491
+ "description": "Slash-separated relative path within the workspace files directory"
3496
3492
  }
3497
3493
  },
3498
3494
  "required": [
@@ -3522,7 +3518,7 @@
3522
3518
  },
3523
3519
  "path": {
3524
3520
  "type": "string",
3525
- "description": "Relative path within the workspace files directory"
3521
+ "description": "Slash-separated relative path within the workspace files directory"
3526
3522
  },
3527
3523
  "content": {
3528
3524
  "type": "string",
@@ -3544,6 +3540,140 @@
3544
3540
  },
3545
3541
  "stability": "experimental"
3546
3542
  },
3543
+ "statFile": {
3544
+ "rpcMethod": "session.workspaces.statFile",
3545
+ "description": "Returns metadata for a file or directory in the session workspace files directory.",
3546
+ "params": {
3547
+ "type": "object",
3548
+ "properties": {
3549
+ "sessionId": {
3550
+ "type": "string",
3551
+ "description": "Target session identifier"
3552
+ },
3553
+ "path": {
3554
+ "type": "string",
3555
+ "description": "Slash-separated relative path within the workspace files directory"
3556
+ }
3557
+ },
3558
+ "required": [
3559
+ "sessionId",
3560
+ "path"
3561
+ ],
3562
+ "additionalProperties": false,
3563
+ "description": "Relative path of the workspace file or directory to inspect.",
3564
+ "title": "WorkspacesStatFileRequest",
3565
+ "stability": "experimental"
3566
+ },
3567
+ "result": {
3568
+ "$ref": "#/definitions/WorkspacesStatFileResult",
3569
+ "description": "Filesystem metadata for a path in the session workspace files directory."
3570
+ },
3571
+ "stability": "experimental"
3572
+ },
3573
+ "createDirectory": {
3574
+ "rpcMethod": "session.workspaces.createDirectory",
3575
+ "description": "Creates a directory in the session workspace files directory.",
3576
+ "params": {
3577
+ "type": "object",
3578
+ "properties": {
3579
+ "sessionId": {
3580
+ "type": "string",
3581
+ "description": "Target session identifier"
3582
+ },
3583
+ "path": {
3584
+ "type": "string",
3585
+ "description": "Slash-separated relative path within the workspace files directory"
3586
+ },
3587
+ "recursive": {
3588
+ "type": "boolean",
3589
+ "description": "Whether to create missing parent directories. Defaults to false."
3590
+ }
3591
+ },
3592
+ "required": [
3593
+ "sessionId",
3594
+ "path"
3595
+ ],
3596
+ "additionalProperties": false,
3597
+ "description": "Directory to create within the session workspace files directory.",
3598
+ "title": "WorkspacesCreateDirectoryRequest",
3599
+ "stability": "experimental"
3600
+ },
3601
+ "result": {
3602
+ "type": "null"
3603
+ },
3604
+ "stability": "experimental"
3605
+ },
3606
+ "removePath": {
3607
+ "rpcMethod": "session.workspaces.removePath",
3608
+ "description": "Removes a file or directory from the session workspace files directory.",
3609
+ "params": {
3610
+ "type": "object",
3611
+ "properties": {
3612
+ "sessionId": {
3613
+ "type": "string",
3614
+ "description": "Target session identifier"
3615
+ },
3616
+ "path": {
3617
+ "type": "string",
3618
+ "description": "Slash-separated relative path within the workspace files directory"
3619
+ },
3620
+ "recursive": {
3621
+ "type": "boolean",
3622
+ "description": "Whether to remove directory contents recursively. Defaults to false."
3623
+ },
3624
+ "force": {
3625
+ "type": "boolean",
3626
+ "description": "Whether a missing path should be treated as success. Defaults to false."
3627
+ }
3628
+ },
3629
+ "required": [
3630
+ "sessionId",
3631
+ "path"
3632
+ ],
3633
+ "additionalProperties": false,
3634
+ "description": "File or directory to remove from the session workspace files directory.",
3635
+ "title": "WorkspacesRemovePathRequest",
3636
+ "stability": "experimental"
3637
+ },
3638
+ "result": {
3639
+ "type": "null"
3640
+ },
3641
+ "stability": "experimental"
3642
+ },
3643
+ "renamePath": {
3644
+ "rpcMethod": "session.workspaces.renamePath",
3645
+ "description": "Renames a file or directory within the session workspace files directory.",
3646
+ "params": {
3647
+ "type": "object",
3648
+ "properties": {
3649
+ "sessionId": {
3650
+ "type": "string",
3651
+ "description": "Target session identifier"
3652
+ },
3653
+ "source": {
3654
+ "type": "string",
3655
+ "description": "Slash-separated source path relative to the workspace files directory"
3656
+ },
3657
+ "destination": {
3658
+ "type": "string",
3659
+ "description": "Slash-separated destination path relative to the workspace files directory"
3660
+ }
3661
+ },
3662
+ "required": [
3663
+ "sessionId",
3664
+ "source",
3665
+ "destination"
3666
+ ],
3667
+ "additionalProperties": false,
3668
+ "description": "Source and destination paths for a rename within the session workspace files directory.",
3669
+ "title": "WorkspacesRenamePathRequest",
3670
+ "stability": "experimental"
3671
+ },
3672
+ "result": {
3673
+ "type": "null"
3674
+ },
3675
+ "stability": "experimental"
3676
+ },
3547
3677
  "listCheckpoints": {
3548
3678
  "rpcMethod": "session.workspaces.listCheckpoints",
3549
3679
  "description": "Lists workspace checkpoints in chronological order.",
@@ -11469,14 +11599,16 @@
11469
11599
  "enum": [
11470
11600
  "unsupported",
11471
11601
  "optional",
11472
- "required"
11602
+ "required",
11603
+ "adaptive_only"
11473
11604
  ],
11474
11605
  "description": "Resolved Anthropic adaptive-thinking capability for a model.",
11475
11606
  "title": "AdaptiveThinkingSupport",
11476
11607
  "x-enumDescriptions": {
11477
11608
  "unsupported": "The model does not accept thinking.type='adaptive'",
11478
11609
  "optional": "The model accepts adaptive thinking but also accepts thinking.type='enabled'",
11479
- "required": "The model only accepts adaptive thinking and rejects thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8)"
11610
+ "required": "The model defaults to adaptive thinking and rejects thinking.type='enabled' with HTTP 400, but still accepts thinking.type='disabled' (e.g. opus-4.7/4.8/5, sonnet-5)",
11611
+ "adaptive_only": "The model accepts only thinking.type='adaptive'; 'enabled', 'disabled', and an omitted thinking block all fail with HTTP 400 (e.g. fable, mythos)"
11480
11612
  }
11481
11613
  },
11482
11614
  "AgentDiscoveryPath": {
@@ -16840,7 +16972,7 @@
16840
16972
  "sizeBytes"
16841
16973
  ],
16842
16974
  "additionalProperties": false,
16843
- "description": "A file included in the redacted debug bundle.",
16975
+ "description": "A file included in the session debug bundle.",
16844
16976
  "title": "DebugCollectLogsCollectedEntry"
16845
16977
  },
16846
16978
  "DebugCollectLogsDestination": {
@@ -16873,7 +17005,7 @@
16873
17005
  "properties": {
16874
17006
  "outputDirectory": {
16875
17007
  "type": "string",
16876
- "description": "Directory where redacted files should be staged. The directory is created if needed."
17008
+ "description": "Directory where files should be staged. The directory is created if needed."
16877
17009
  },
16878
17010
  "kind": {
16879
17011
  "type": "string",
@@ -16888,7 +17020,7 @@
16888
17020
  "additionalProperties": false
16889
17021
  }
16890
17022
  ],
16891
- "description": "Destination for the redacted debug bundle.",
17023
+ "description": "Destination for the session debug bundle.",
16892
17024
  "title": "DebugCollectLogsDestination"
16893
17025
  },
16894
17026
  "DebugCollectLogsEntry": {
@@ -16908,7 +17040,7 @@
16908
17040
  },
16909
17041
  "redaction": {
16910
17042
  "$ref": "#/definitions/DebugCollectLogsRedaction",
16911
- "description": "How text content from this entry should be redacted. Defaults to plain-text."
17043
+ "description": "How text content from this entry should be redacted. Defaults to plain-text. With none, no redaction is applied; the caller must ensure any necessary redaction is performed before this call."
16912
17044
  },
16913
17045
  "required": {
16914
17046
  "type": "boolean",
@@ -16978,13 +17110,15 @@
16978
17110
  "type": "string",
16979
17111
  "enum": [
16980
17112
  "plain-text",
16981
- "events-jsonl"
17113
+ "events-jsonl",
17114
+ "none"
16982
17115
  ],
16983
17116
  "description": "How a collected debug entry should be redacted before being staged.",
16984
17117
  "title": "DebugCollectLogsRedaction",
16985
17118
  "x-enumDescriptions": {
16986
17119
  "plain-text": "Redact the file as plain UTF-8 log text.",
16987
- "events-jsonl": "Redact each non-empty line as a session event JSON object, falling back to plain-text redaction for malformed lines."
17120
+ "events-jsonl": "Redact each non-empty line as a session event JSON object, falling back to plain-text redaction for malformed lines.",
17121
+ "none": "No redaction is applied. The caller must ensure any necessary redaction is performed before this call."
16988
17122
  }
16989
17123
  },
16990
17124
  "DebugCollectLogsRequest": {
@@ -16992,7 +17126,7 @@
16992
17126
  "properties": {
16993
17127
  "destination": {
16994
17128
  "$ref": "#/definitions/DebugCollectLogsDestination",
16995
- "description": "Where the redacted bundle should be written. Use `archive` to produce a .tgz, or `directory` to stage redacted files for caller-managed upload/post-processing."
17129
+ "description": "Where the bundle should be written. Use `archive` to produce a .tgz, or `directory` to stage files for caller-managed upload/post-processing."
16996
17130
  },
16997
17131
  "include": {
16998
17132
  "$ref": "#/definitions/DebugCollectLogsInclude",
@@ -17011,7 +17145,7 @@
17011
17145
  "destination"
17012
17146
  ],
17013
17147
  "additionalProperties": false,
17014
- "description": "Options for collecting a redacted session debug bundle.",
17148
+ "description": "Options for collecting a session debug bundle with configurable redaction.",
17015
17149
  "title": "DebugCollectLogsRequest",
17016
17150
  "stability": "experimental"
17017
17151
  },
@@ -17030,9 +17164,9 @@
17030
17164
  "type": "array",
17031
17165
  "items": {
17032
17166
  "$ref": "#/definitions/DebugCollectLogsCollectedEntry",
17033
- "description": "A file included in the redacted debug bundle."
17167
+ "description": "A file included in the session debug bundle."
17034
17168
  },
17035
- "description": "Files included in the redacted bundle."
17169
+ "description": "Files included in the bundle."
17036
17170
  },
17037
17171
  "skippedEntries": {
17038
17172
  "type": "array",
@@ -17049,7 +17183,7 @@
17049
17183
  "entries"
17050
17184
  ],
17051
17185
  "additionalProperties": false,
17052
- "description": "Result of collecting a redacted debug bundle.",
17186
+ "description": "Result of collecting a session debug bundle.",
17053
17187
  "title": "DebugCollectLogsResult"
17054
17188
  },
17055
17189
  "DebugCollectLogsResultKind": {
@@ -17062,7 +17196,7 @@
17062
17196
  "title": "DebugCollectLogsResultKind",
17063
17197
  "x-enumDescriptions": {
17064
17198
  "archive": "A .tgz archive was written.",
17065
- "directory": "A directory containing redacted files was written."
17199
+ "directory": "A directory containing the collected files was written."
17066
17200
  }
17067
17201
  },
17068
17202
  "DebugCollectLogsSkippedEntry": {
@@ -21361,6 +21495,10 @@
21361
21495
  "installedFrom": {
21362
21496
  "type": "string",
21363
21497
  "description": "Absolute path of the marketplace directory a live plugin was resolved from. Present only on live, never-persisted records — a plugin belonging to a directory/local marketplace, which is loaded from its real directory on every pass instead of a copy under the installed-plugins cache. Its presence is what marks a listed plugin as live: such a plugin is always present on disk, so `enabled` is its only meaningful state and it is never \"not installed\"."
21498
+ },
21499
+ "source": {
21500
+ "type": "string",
21501
+ "description": "Runtime-reported plugin provenance. Currently set to \"builtin\" only for plugins registered through the trusted host built-in boundary; absent for installed, marketplace, direct, and live plugins."
21364
21502
  }
21365
21503
  },
21366
21504
  "required": [
@@ -21754,6 +21892,34 @@
21754
21892
  "description": "Result of interrupting the main agent turn.",
21755
21893
  "title": "InterruptMainTurnResult"
21756
21894
  },
21895
+ "JsonSchemaResponseFormat": {
21896
+ "type": "object",
21897
+ "properties": {
21898
+ "name": {
21899
+ "type": "string",
21900
+ "description": "Name of the output schema, subject to the provider's naming restrictions."
21901
+ },
21902
+ "schema": {
21903
+ "description": "JSON Schema passed unchanged to the inference provider. Schemas larger than 32 MiB when JSON-encoded are rejected before admission, using the runtime's existing request-size ceiling. This is not a guarantee that the entire model request fits. Supported keywords and schema restrictions are determined by the provider.",
21904
+ "x-opaque-json": true
21905
+ },
21906
+ "description": {
21907
+ "type": "string",
21908
+ "description": "Optional description passed to OpenAI providers."
21909
+ },
21910
+ "strict": {
21911
+ "type": "boolean",
21912
+ "description": "Optional strict enforcement setting for OpenAI providers. Omitted uses the provider default. Anthropic always enforces its supported schema subset."
21913
+ }
21914
+ },
21915
+ "required": [
21916
+ "name",
21917
+ "schema"
21918
+ ],
21919
+ "additionalProperties": false,
21920
+ "description": "A JSON Schema output contract. OpenAI receives the name, description, schema and strict setting; Anthropic receives the schema in output_config.format and always uses its native strict enforcement.",
21921
+ "title": "JsonSchemaResponseFormat"
21922
+ },
21757
21923
  "LlmInferenceHeaders": {
21758
21924
  "type": "object",
21759
21925
  "additionalProperties": {
@@ -22140,6 +22306,45 @@
22140
22306
  "title": "LspInitializeRequest",
22141
22307
  "stability": "experimental"
22142
22308
  },
22309
+ "ManagedMcpServerConfig": {
22310
+ "type": "object",
22311
+ "properties": {
22312
+ "displayName": {
22313
+ "type": "string",
22314
+ "description": "Human-readable catalog display name."
22315
+ },
22316
+ "url": {
22317
+ "type": "string",
22318
+ "format": "uri",
22319
+ "description": "Hosted MCP streamable HTTP endpoint."
22320
+ },
22321
+ "tools": {
22322
+ "type": "array",
22323
+ "items": {
22324
+ "type": "string"
22325
+ },
22326
+ "description": "Tools to include. Defaults to all tools when omitted."
22327
+ },
22328
+ "timeout": {
22329
+ "type": "integer",
22330
+ "exclusiveMinimum": 0,
22331
+ "format": "duration",
22332
+ "description": "Timeout in milliseconds for tool discovery and tool calls."
22333
+ },
22334
+ "headersRefreshTtlMs": {
22335
+ "type": "integer",
22336
+ "minimum": 0,
22337
+ "description": "Maximum dynamic-header cache lifetime in milliseconds."
22338
+ }
22339
+ },
22340
+ "required": [
22341
+ "displayName",
22342
+ "url"
22343
+ ],
22344
+ "additionalProperties": false,
22345
+ "description": "Non-secret host-managed HTTP MCP server configuration. The containing map key is the stable managed identity; credentials are supplied dynamically by the host.",
22346
+ "title": "ManagedMcpServerConfig"
22347
+ },
22143
22348
  "ManagedSettingsReadResult": {
22144
22349
  "type": "object",
22145
22350
  "properties": {
@@ -23196,6 +23401,11 @@
23196
23401
  },
23197
23402
  "description": "Headers to overlay onto the MCP request. Dynamic headers override static config headers but do not replace SDK-managed request headers."
23198
23403
  },
23404
+ "ttlMs": {
23405
+ "type": "integer",
23406
+ "minimum": 0,
23407
+ "description": "Optional lifetime in milliseconds for these returned headers. The runtime clamps its configured cache lifetime to this value."
23408
+ },
23199
23409
  "kind": {
23200
23410
  "type": "string",
23201
23411
  "const": "headers",
@@ -23219,6 +23429,24 @@
23219
23429
  "required": [
23220
23430
  "kind"
23221
23431
  ]
23432
+ },
23433
+ {
23434
+ "type": "object",
23435
+ "properties": {
23436
+ "message": {
23437
+ "type": "string",
23438
+ "description": "Host credential broker failure, denial, or revocation reason."
23439
+ },
23440
+ "kind": {
23441
+ "type": "string",
23442
+ "const": "error",
23443
+ "description": "Headers-refresh response variant discriminator."
23444
+ }
23445
+ },
23446
+ "required": [
23447
+ "kind",
23448
+ "message"
23449
+ ]
23222
23450
  }
23223
23451
  ],
23224
23452
  "description": "Host response: supply dynamic headers or decline this refresh.",
@@ -25224,7 +25452,7 @@
25224
25452
  },
25225
25453
  "source": {
25226
25454
  "$ref": "#/definitions/McpServerSource",
25227
- "description": "Configuration source: user, workspace, plugin, or builtin"
25455
+ "description": "Configuration source: user, workspace, plugin, builtin, or managed"
25228
25456
  },
25229
25457
  "sourcePlugin": {
25230
25458
  "type": "string",
@@ -25234,6 +25462,10 @@
25234
25462
  "type": "string",
25235
25463
  "description": "Plugin version that provided this server, when source is plugin."
25236
25464
  },
25465
+ "displayName": {
25466
+ "type": "string",
25467
+ "description": "Human-readable display name supplied by a managed server catalog."
25468
+ },
25237
25469
  "error": {
25238
25470
  "type": "string",
25239
25471
  "description": "Error message if the server failed to connect"
@@ -25937,15 +26169,17 @@
25937
26169
  "user",
25938
26170
  "workspace",
25939
26171
  "plugin",
25940
- "builtin"
26172
+ "builtin",
26173
+ "managed"
25941
26174
  ],
25942
- "description": "Configuration source: user, workspace, plugin, or builtin",
26175
+ "description": "Configuration source: user, workspace, plugin, builtin, or managed",
25943
26176
  "title": "McpServerSource",
25944
26177
  "x-enumDescriptions": {
25945
26178
  "user": "Server configured in the user's global MCP configuration.",
25946
26179
  "workspace": "Server configured by the current workspace.",
25947
26180
  "plugin": "Server contributed by an installed plugin.",
25948
- "builtin": "Server bundled with the runtime."
26181
+ "builtin": "Server bundled with the runtime.",
26182
+ "managed": "Server supplied by a trusted host-managed catalog."
25949
26183
  }
25950
26184
  },
25951
26185
  "McpServerStatus": {
@@ -27031,7 +27265,7 @@
27031
27265
  },
27032
27266
  "adaptive_thinking": {
27033
27267
  "$ref": "#/definitions/AdaptiveThinkingSupport",
27034
- "description": "Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8)."
27268
+ "description": "Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos)."
27035
27269
  }
27036
27270
  },
27037
27271
  "additionalProperties": false,
@@ -27051,7 +27285,7 @@
27051
27285
  },
27052
27286
  "adaptive_thinking": {
27053
27287
  "$ref": "#/definitions/AdaptiveThinkingSupport",
27054
- "description": "Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8)."
27288
+ "description": "Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos)."
27055
27289
  }
27056
27290
  },
27057
27291
  "additionalProperties": false,
@@ -29351,6 +29585,7 @@
29351
29585
  "slash_command",
29352
29586
  "autopilot_confirmation",
29353
29587
  "user_setting",
29588
+ "organization_targeting",
29354
29589
  "rpc"
29355
29590
  ],
29356
29591
  "description": "Optional source for permission-mode telemetry. Defaults to `rpc` when omitted for SDK callers.",
@@ -29360,6 +29595,7 @@
29360
29595
  "slash_command": "The mode was set by a slash command.",
29361
29596
  "autopilot_confirmation": "The mode was set by confirming autopilot behavior.",
29362
29597
  "user_setting": "The mode was set at startup by the `defaultPermissionMode` user setting.",
29598
+ "organization_targeting": "The mode was set at startup by authenticated organization targeting.",
29363
29599
  "rpc": "The mode was set through an RPC caller."
29364
29600
  },
29365
29601
  "stability": "experimental"
@@ -31028,6 +31264,18 @@
31028
31264
  "description": "Result of updating a single plugin.",
31029
31265
  "title": "PluginUpdateResult"
31030
31266
  },
31267
+ "ProtocolAppendMode": {
31268
+ "type": "string",
31269
+ "enum": [
31270
+ "append"
31271
+ ]
31272
+ },
31273
+ "ProtocolCustomizeMode": {
31274
+ "type": "string",
31275
+ "enum": [
31276
+ "customize"
31277
+ ]
31278
+ },
31031
31279
  "ProtocolExternalToolDefer": {
31032
31280
  "type": "string",
31033
31281
  "enum": [
@@ -31097,6 +31345,162 @@
31097
31345
  "title": "ProtocolExternalToolDefinition",
31098
31346
  "stability": "experimental"
31099
31347
  },
31348
+ "ProtocolMarkerSectionOverride": {
31349
+ "anyOf": [
31350
+ {
31351
+ "type": "object",
31352
+ "properties": {
31353
+ "action": {
31354
+ "type": "string",
31355
+ "const": "transform",
31356
+ "description": "Section override action discriminator."
31357
+ }
31358
+ },
31359
+ "required": [
31360
+ "action"
31361
+ ],
31362
+ "additionalProperties": false
31363
+ },
31364
+ {
31365
+ "type": "object",
31366
+ "properties": {
31367
+ "action": {
31368
+ "type": "string",
31369
+ "const": "preserve",
31370
+ "description": "Section override action discriminator."
31371
+ }
31372
+ },
31373
+ "required": [
31374
+ "action"
31375
+ ],
31376
+ "additionalProperties": false
31377
+ }
31378
+ ]
31379
+ },
31380
+ "ProtocolReplaceMode": {
31381
+ "type": "string",
31382
+ "enum": [
31383
+ "replace"
31384
+ ]
31385
+ },
31386
+ "ProtocolSectionOverride": {
31387
+ "anyOf": [
31388
+ {
31389
+ "$ref": "#/definitions/ProtocolStaticSectionOverride"
31390
+ },
31391
+ {
31392
+ "$ref": "#/definitions/ProtocolMarkerSectionOverride"
31393
+ }
31394
+ ]
31395
+ },
31396
+ "ProtocolStaticSectionAction": {
31397
+ "type": "string",
31398
+ "enum": [
31399
+ "replace",
31400
+ "remove",
31401
+ "append",
31402
+ "prepend"
31403
+ ],
31404
+ "x-enumDescriptions": {
31405
+ "replace": "Replace the section content.",
31406
+ "remove": "Remove the section content.",
31407
+ "append": "Append content to the section.",
31408
+ "prepend": "Prepend content to the section."
31409
+ }
31410
+ },
31411
+ "ProtocolStaticSectionOverride": {
31412
+ "type": "object",
31413
+ "properties": {
31414
+ "action": {
31415
+ "$ref": "#/definitions/ProtocolStaticSectionAction",
31416
+ "description": "Declarative operation applied to the section."
31417
+ },
31418
+ "content": {
31419
+ "type": "string",
31420
+ "description": "Optional content used by replace, append, and prepend operations."
31421
+ }
31422
+ },
31423
+ "required": [
31424
+ "action"
31425
+ ],
31426
+ "additionalProperties": false
31427
+ },
31428
+ "ProtocolSystemMessageAppendConfig": {
31429
+ "type": "object",
31430
+ "properties": {
31431
+ "mode": {
31432
+ "$ref": "#/definitions/ProtocolAppendMode",
31433
+ "description": "Append-mode discriminator. Omission also selects append mode."
31434
+ },
31435
+ "content": {
31436
+ "type": "string",
31437
+ "description": "Text appended to the standard system prompt."
31438
+ }
31439
+ },
31440
+ "additionalProperties": false
31441
+ },
31442
+ "ProtocolSystemMessageConfig": {
31443
+ "anyOf": [
31444
+ {
31445
+ "$ref": "#/definitions/ProtocolSystemMessageAppendConfig"
31446
+ },
31447
+ {
31448
+ "$ref": "#/definitions/ProtocolSystemMessageReplaceConfig"
31449
+ },
31450
+ {
31451
+ "$ref": "#/definitions/ProtocolSystemMessageCustomizeConfig"
31452
+ }
31453
+ ]
31454
+ },
31455
+ "ProtocolSystemMessageCustomizeConfig": {
31456
+ "type": "object",
31457
+ "properties": {
31458
+ "mode": {
31459
+ "$ref": "#/definitions/ProtocolCustomizeMode",
31460
+ "description": "Customize-mode discriminator."
31461
+ },
31462
+ "sections": {
31463
+ "type": "object",
31464
+ "additionalProperties": {
31465
+ "$ref": "#/definitions/ProtocolSectionOverride"
31466
+ },
31467
+ "description": "Named standard-prompt section overrides."
31468
+ },
31469
+ "content": {
31470
+ "type": "string",
31471
+ "description": "Text appended after the customized sections."
31472
+ }
31473
+ },
31474
+ "required": [
31475
+ "mode"
31476
+ ],
31477
+ "additionalProperties": false
31478
+ },
31479
+ "ProtocolSystemMessageReplaceConfig": {
31480
+ "type": "object",
31481
+ "properties": {
31482
+ "mode": {
31483
+ "$ref": "#/definitions/ProtocolReplaceMode",
31484
+ "description": "Replace-mode discriminator."
31485
+ },
31486
+ "content": {
31487
+ "type": "string",
31488
+ "description": "Complete replacement system-message text."
31489
+ },
31490
+ "contentBlocks": {
31491
+ "type": "array",
31492
+ "items": {
31493
+ "$ref": "#/definitions/SystemMessageBlock"
31494
+ },
31495
+ "description": "Optional structured blocks corresponding to the replacement content."
31496
+ }
31497
+ },
31498
+ "required": [
31499
+ "mode",
31500
+ "content"
31501
+ ],
31502
+ "additionalProperties": false
31503
+ },
31100
31504
  "ProviderAddRequest": {
31101
31505
  "type": "object",
31102
31506
  "properties": {
@@ -31417,6 +31821,10 @@
31417
31821
  "capabilities": {
31418
31822
  "$ref": "#/definitions/ModelCapabilitiesOverride",
31419
31823
  "description": "Optional capability overrides (vision, tool_calls, reasoning, etc.)."
31824
+ },
31825
+ "systemMessage": {
31826
+ "$ref": "#/definitions/ProtocolSystemMessageConfig",
31827
+ "description": "System-message configuration used when the runtime builds the standard prompt for this provider-qualified model, including general-purpose subagents. It uses the same object hierarchy as session-level systemMessage configuration, except transform actions are rejected because the current callback protocol is not model-scoped. When present, it overrides the session-wide configuration on those prompt paths. Selected custom-agent and specialized-subagent prompts remain authoritative."
31420
31828
  }
31421
31829
  },
31422
31830
  "required": [
@@ -32853,49 +33261,6 @@
32853
33261
  "description": "Opaque handle representing an event-type interest registration.",
32854
33262
  "title": "RegisterEventInterestResult"
32855
33263
  },
32856
- "RegisterExtensionToolsParams": {
32857
- "type": "object",
32858
- "properties": {
32859
- "sessionId": {
32860
- "type": "string",
32861
- "description": "Session to register extension tools on."
32862
- },
32863
- "loader": {
32864
- "description": "In-process ExtensionLoader handle used only by the CLI and excluded from the public SDK surface.",
32865
- "visibility": "internal",
32866
- "x-opaque-in-process": true
32867
- },
32868
- "options": {
32869
- "$ref": "#/definitions/SessionsRegisterExtensionToolsOnSessionOptions",
32870
- "description": "Optional registration options."
32871
- }
32872
- },
32873
- "required": [
32874
- "sessionId",
32875
- "loader"
32876
- ],
32877
- "additionalProperties": false,
32878
- "description": "Params to attach an extension loader's tools to a session.",
32879
- "title": "RegisterExtensionToolsParams",
32880
- "visibility": "internal"
32881
- },
32882
- "RegisterExtensionToolsResult": {
32883
- "type": "object",
32884
- "properties": {
32885
- "unsubscribe": {
32886
- "description": "In-process unsubscribe function used only by the CLI.",
32887
- "visibility": "internal",
32888
- "x-opaque-in-process": true
32889
- }
32890
- },
32891
- "required": [
32892
- "unsubscribe"
32893
- ],
32894
- "additionalProperties": false,
32895
- "description": "Handle for releasing the extension tool registration.",
32896
- "title": "RegisterExtensionToolsResult",
32897
- "visibility": "internal"
32898
- },
32899
33264
  "ReleaseEventInterestParams": {
32900
33265
  "type": "object",
32901
33266
  "properties": {
@@ -33423,6 +33788,31 @@
33423
33788
  "description": "Repository context for the remote session.",
33424
33789
  "title": "RemoteSessionRepository"
33425
33790
  },
33791
+ "ResponseFormat": {
33792
+ "anyOf": [
33793
+ {
33794
+ "type": "object",
33795
+ "properties": {
33796
+ "jsonSchema": {
33797
+ "$ref": "#/definitions/JsonSchemaResponseFormat",
33798
+ "description": "JSON Schema and provider options for the turn's output."
33799
+ },
33800
+ "type": {
33801
+ "type": "string",
33802
+ "const": "json_schema",
33803
+ "description": "Output format discriminator. Currently only json_schema is supported."
33804
+ }
33805
+ },
33806
+ "required": [
33807
+ "type",
33808
+ "jsonSchema"
33809
+ ],
33810
+ "additionalProperties": false
33811
+ }
33812
+ ],
33813
+ "description": "Provider-native structured output format. JSON Schema is forwarded without rewriting or validating the schema or the generated output.",
33814
+ "title": "ResponseFormat"
33815
+ },
33426
33816
  "RunOptions": {
33427
33817
  "type": "object",
33428
33818
  "properties": {
@@ -33626,6 +34016,20 @@
33626
34016
  "SandboxConfigUserPolicyNetwork": {
33627
34017
  "type": "object",
33628
34018
  "properties": {
34019
+ "allowedHosts": {
34020
+ "type": "array",
34021
+ "items": {
34022
+ "type": "string"
34023
+ },
34024
+ "description": "Hosts allowed through the built-in sandbox proxy. A non-empty list denies unmatched hosts; an absent or empty list allows all hosts not blocked. Supports exact hostnames, IP addresses, and *.example.com for strict subdomains. Host rules do not override the outbound or local-network toggles."
34025
+ },
34026
+ "blockedHosts": {
34027
+ "type": "array",
34028
+ "items": {
34029
+ "type": "string"
34030
+ },
34031
+ "description": "Hosts denied by the built-in sandbox proxy. Deny rules take precedence over allowedHosts. A domain also denies all its subdomains. IP addresses match exactly; *.example.com matches strict subdomains, and * denies every host."
34032
+ },
33629
34033
  "allowOutbound": {
33630
34034
  "type": "boolean",
33631
34035
  "description": "Whether outbound network traffic is allowed at all."
@@ -33636,7 +34040,7 @@
33636
34040
  },
33637
34041
  "proxy": {
33638
34042
  "$ref": "#/definitions/SandboxConfigUserPolicyNetworkProxy",
33639
- "description": "HTTP proxy for sandboxed process traffic. Linux restricts egress to the proxy endpoint, requires that endpoint to be reachable over IPv4 (the [::] dual-stack wildcard is accepted and routed through the IPv4 gateway), and does not support proxy credentials. macOS relies on applications honoring proxy environment variables. Windows also configures a per-AppContainer WinHTTP proxy, but enforcement depends on the application's networking stack. Configure supported credentials in the separate `username` and `password` fields. A credential-free http:// loopback URL uses the localhost proxy form, while an https:// or authenticated loopback URL uses the URL form."
34043
+ "description": "HTTP(S) proxy for sandboxed traffic. With host rules, this is the built-in local proxy's upstream; credentials stay in the runtime, and Linux and macOS restrict the child to the local listener. Without host rules, Linux restricts egress to this endpoint but rejects credentials, and macOS proxying is cooperative. Windows enforcement depends on the application's networking stack. Configure credentials in the separate username/password fields. The transient local listener URL is never persisted."
33640
34044
  }
33641
34045
  },
33642
34046
  "additionalProperties": false,
@@ -33742,6 +34146,19 @@
33742
34146
  "description": "Managed sandbox enforcement state for a session.",
33743
34147
  "title": "SandboxEnforcementStatus"
33744
34148
  },
34149
+ "SandboxSessionChange": {
34150
+ "type": "string",
34151
+ "enum": [
34152
+ "disabled",
34153
+ "restored"
34154
+ ],
34155
+ "description": "A session-scoped sandbox transition applied while handling a slash command",
34156
+ "title": "SandboxSessionChange",
34157
+ "x-enumDescriptions": {
34158
+ "disabled": "The sandbox is off for the rest of this session; nothing was persisted and a new session starts from managed policy.",
34159
+ "restored": "A previous session-scoped opt-out was cleared and the sandbox is enforced again."
34160
+ }
34161
+ },
33745
34162
  "ScheduleAddAtRequest": {
33746
34163
  "type": "object",
33747
34164
  "properties": {
@@ -34139,7 +34556,7 @@
34139
34556
  "$ref": "#/definitions/SendMessageItem",
34140
34557
  "description": "A single user message to append to the session as part of a `session.sendMessages` turn"
34141
34558
  },
34142
- "description": "The user messages to append to the conversation, in order. May be empty, in which case a single turn runs over the existing history with no new user message."
34559
+ "description": "The user messages to append to the conversation, in order, before running one agent loop. When the batch starts a run, its final message is the primary initiating message; earlier messages provide context, not separate runs or replies. May be empty, in which case a single turn runs over the existing history with no new user message or originatingMessageId."
34143
34560
  },
34144
34561
  "mode": {
34145
34562
  "$ref": "#/definitions/SendMode",
@@ -34160,6 +34577,10 @@
34160
34577
  },
34161
34578
  "description": "Custom HTTP headers to include in outbound model requests for this turn. Merged with session-level provider headers; per-turn headers augment and overwrite session-level headers with the same key."
34162
34579
  },
34580
+ "responseFormat": {
34581
+ "$ref": "#/definitions/ResponseFormat",
34582
+ "description": "Provider-native output format for the whole turn, including an empty message batch and all tool-call iterations. Not inherited by later turns or subagents. Ordinary steering inherits the active format; specifying responseFormat with mode: immediate is an error, even while idle. Returned assistant content remains text; the runtime does not parse or validate it. Unsupported models or schemas produce provider errors."
34583
+ },
34163
34584
  "traceparent": {
34164
34585
  "type": "string",
34165
34586
  "description": "W3C Trace Context traceparent header for distributed tracing of this agent turn"
@@ -34189,7 +34610,7 @@
34189
34610
  "items": {
34190
34611
  "type": "string"
34191
34612
  },
34192
- "description": "Unique identifiers assigned to the messages, one per provided message in order. Empty when no messages were provided."
34613
+ "description": "Unique identifiers assigned to the messages, one per provided message in order. For a batch that starts a run, assistant messages use the final ID as originatingMessageId throughout that run, including tool iterations and stop-hook corrections. Immediate steering does not replace the active run's origin. Empty when no messages were provided; that run has no originatingMessageId."
34193
34614
  }
34194
34615
  },
34195
34616
  "required": [
@@ -34264,6 +34685,10 @@
34264
34685
  },
34265
34686
  "description": "Custom HTTP headers to include in outbound model requests for this turn. Merged with session-level provider headers; per-turn headers augment and overwrite session-level headers with the same key."
34266
34687
  },
34688
+ "responseFormat": {
34689
+ "$ref": "#/definitions/ResponseFormat",
34690
+ "description": "Provider-native output format for this turn, including all tool-call iterations. Not inherited by later turns or subagents. Ordinary steering inherits the active format; specifying responseFormat with mode: immediate is an error, even while idle. Returned assistant content remains text; the runtime does not parse or validate it. Unsupported models or schemas produce provider errors."
34691
+ },
34267
34692
  "traceparent": {
34268
34693
  "type": "string",
34269
34694
  "description": "W3C Trace Context traceparent header for distributed tracing of this agent turn"
@@ -36392,7 +36817,7 @@
36392
36817
  },
36393
36818
  "enableManagedSettings": {
36394
36819
  "type": "boolean",
36395
- "description": "Opt-in: self-fetch and enforce enterprise managed settings at session bootstrap."
36820
+ "description": "Opt-in: self-fetch and enforce enterprise managed settings, including managed hook policies, at session bootstrap."
36396
36821
  },
36397
36822
  "managedSettings": {
36398
36823
  "$ref": "#/definitions/SessionManagedSettings",
@@ -36550,6 +36975,15 @@
36550
36975
  },
36551
36976
  "description": "MCP server names disabled for this session. Disabled servers are not started or authenticated on create or cold resume."
36552
36977
  },
36978
+ "managedMcpServers": {
36979
+ "type": "object",
36980
+ "additionalProperties": {
36981
+ "$ref": "#/definitions/ManagedMcpServerConfig",
36982
+ "description": "Non-secret host-managed HTTP MCP server configuration. The containing map key is the stable managed identity; credentials are supplied dynamically by the host."
36983
+ },
36984
+ "description": "Non-secret host-managed HTTP MCP servers keyed by stable managed identity. Managed provenance is runtime-established from this separate field and credentials are supplied through dynamic-header refresh.",
36985
+ "stability": "experimental"
36986
+ },
36553
36987
  "allowAllMcpServerInstructions": {
36554
36988
  "type": "boolean",
36555
36989
  "description": "Whether to include instructions from every MCP server in the system prompt instead of only allowlisted servers."
@@ -38270,19 +38704,6 @@
38270
38704
  "description": "Pagination options for reading an inactive or active local session's persisted event journal.",
38271
38705
  "title": "SessionsReadPersistedEventsRequest"
38272
38706
  },
38273
- "SessionsRegisterExtensionToolsOnSessionOptions": {
38274
- "type": "object",
38275
- "properties": {
38276
- "enabled": {
38277
- "description": "In-process `() => boolean` gating callback used only by the CLI.",
38278
- "visibility": "internal",
38279
- "x-opaque-in-process": true
38280
- }
38281
- },
38282
- "additionalProperties": false,
38283
- "description": "Optional registration options.",
38284
- "title": "SessionsRegisterExtensionToolsOnSessionOptions"
38285
- },
38286
38707
  "SessionsReleaseLockRequest": {
38287
38708
  "type": "object",
38288
38709
  "properties": {
@@ -39166,6 +39587,10 @@
39166
39587
  "reason": {
39167
39588
  "type": "string",
39168
39589
  "description": "Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'."
39590
+ },
39591
+ "detachSessionEndHooks": {
39592
+ "type": "boolean",
39593
+ "description": "Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec instead of awaiting them under the short shared shutdown budget. Set this when the host process keeps running after the session closes (for example the CLI's /clear), so a slow hook neither blocks the close nor is aborted. Hooks still detached when the process later exits are terminated with it. Defaults to false."
39169
39594
  }
39170
39595
  },
39171
39596
  "additionalProperties": false,
@@ -40100,6 +40525,10 @@
40100
40525
  "runtimeSettingsChanged": {
40101
40526
  "type": "boolean",
40102
40527
  "description": "True when the invocation mutated user runtime settings; consumers caching settings should refresh"
40528
+ },
40529
+ "sandboxSessionChange": {
40530
+ "$ref": "#/definitions/SandboxSessionChange",
40531
+ "description": "Present when the invocation changed the sandbox for this session only. Nothing was persisted, so consumers must mirror the change onto the live session rather than reloading settings, and must not treat it as a settings change."
40103
40532
  }
40104
40533
  },
40105
40534
  "required": [
@@ -40222,6 +40651,23 @@
40222
40651
  "long_context": "Pin the subagent to the long-context tier when supported."
40223
40652
  }
40224
40653
  },
40654
+ "SystemMessageBlock": {
40655
+ "type": "object",
40656
+ "properties": {
40657
+ "content": {
40658
+ "type": "string",
40659
+ "description": "Text content for this system-message block."
40660
+ },
40661
+ "isStatic": {
40662
+ "type": "boolean",
40663
+ "description": "Whether the block is static and may be cached independently of dynamic prompt content."
40664
+ }
40665
+ },
40666
+ "required": [
40667
+ "content"
40668
+ ],
40669
+ "additionalProperties": false
40670
+ },
40225
40671
  "TaskAgentInfo": {
40226
40672
  "type": "object",
40227
40673
  "properties": {
@@ -43908,12 +44354,32 @@
43908
44354
  "description": "Workspace checkpoint metadata with assigned number, human-readable title, and checkpoint filename.",
43909
44355
  "title": "WorkspacesCheckpoints"
43910
44356
  },
44357
+ "WorkspacesCreateDirectoryRequest": {
44358
+ "type": "object",
44359
+ "properties": {
44360
+ "path": {
44361
+ "type": "string",
44362
+ "description": "Slash-separated relative path within the workspace files directory"
44363
+ },
44364
+ "recursive": {
44365
+ "type": "boolean",
44366
+ "description": "Whether to create missing parent directories. Defaults to false."
44367
+ }
44368
+ },
44369
+ "required": [
44370
+ "path"
44371
+ ],
44372
+ "additionalProperties": false,
44373
+ "description": "Directory to create within the session workspace files directory.",
44374
+ "title": "WorkspacesCreateDirectoryRequest",
44375
+ "stability": "experimental"
44376
+ },
43911
44377
  "WorkspacesCreateFileRequest": {
43912
44378
  "type": "object",
43913
44379
  "properties": {
43914
44380
  "path": {
43915
44381
  "type": "string",
43916
- "description": "Relative path within the workspace files directory"
44382
+ "description": "Slash-separated relative path within the workspace files directory"
43917
44383
  },
43918
44384
  "content": {
43919
44385
  "type": "string",
@@ -44110,7 +44576,7 @@
44110
44576
  "items": {
44111
44577
  "type": "string"
44112
44578
  },
44113
- "description": "Relative file paths in the workspace files directory"
44579
+ "description": "Slash-separated relative file paths in the workspace files directory"
44114
44580
  }
44115
44581
  },
44116
44582
  "required": [
@@ -44179,7 +44645,7 @@
44179
44645
  "properties": {
44180
44646
  "path": {
44181
44647
  "type": "string",
44182
- "description": "Relative path within the workspace files directory"
44648
+ "description": "Slash-separated relative path within the workspace files directory"
44183
44649
  }
44184
44650
  },
44185
44651
  "required": [
@@ -44205,6 +44671,51 @@
44205
44671
  "description": "Contents of the requested workspace file as a UTF-8 string.",
44206
44672
  "title": "WorkspacesReadFileResult"
44207
44673
  },
44674
+ "WorkspacesRemovePathRequest": {
44675
+ "type": "object",
44676
+ "properties": {
44677
+ "path": {
44678
+ "type": "string",
44679
+ "description": "Slash-separated relative path within the workspace files directory"
44680
+ },
44681
+ "recursive": {
44682
+ "type": "boolean",
44683
+ "description": "Whether to remove directory contents recursively. Defaults to false."
44684
+ },
44685
+ "force": {
44686
+ "type": "boolean",
44687
+ "description": "Whether a missing path should be treated as success. Defaults to false."
44688
+ }
44689
+ },
44690
+ "required": [
44691
+ "path"
44692
+ ],
44693
+ "additionalProperties": false,
44694
+ "description": "File or directory to remove from the session workspace files directory.",
44695
+ "title": "WorkspacesRemovePathRequest",
44696
+ "stability": "experimental"
44697
+ },
44698
+ "WorkspacesRenamePathRequest": {
44699
+ "type": "object",
44700
+ "properties": {
44701
+ "source": {
44702
+ "type": "string",
44703
+ "description": "Slash-separated source path relative to the workspace files directory"
44704
+ },
44705
+ "destination": {
44706
+ "type": "string",
44707
+ "description": "Slash-separated destination path relative to the workspace files directory"
44708
+ }
44709
+ },
44710
+ "required": [
44711
+ "source",
44712
+ "destination"
44713
+ ],
44714
+ "additionalProperties": false,
44715
+ "description": "Source and destination paths for a rename within the session workspace files directory.",
44716
+ "title": "WorkspacesRenamePathRequest",
44717
+ "stability": "experimental"
44718
+ },
44208
44719
  "WorkspacesSaveLargePasteRequest": {
44209
44720
  "type": "object",
44210
44721
  "properties": {
@@ -44264,6 +44775,57 @@
44264
44775
  "description": "Descriptor for the saved paste file, or null when the workspace is unavailable.",
44265
44776
  "title": "WorkspacesSaveLargePasteResult"
44266
44777
  },
44778
+ "WorkspacesStatFileRequest": {
44779
+ "type": "object",
44780
+ "properties": {
44781
+ "path": {
44782
+ "type": "string",
44783
+ "description": "Slash-separated relative path within the workspace files directory"
44784
+ }
44785
+ },
44786
+ "required": [
44787
+ "path"
44788
+ ],
44789
+ "additionalProperties": false,
44790
+ "description": "Relative path of the workspace file or directory to inspect.",
44791
+ "title": "WorkspacesStatFileRequest",
44792
+ "stability": "experimental"
44793
+ },
44794
+ "WorkspacesStatFileResult": {
44795
+ "type": "object",
44796
+ "properties": {
44797
+ "isFile": {
44798
+ "type": "boolean",
44799
+ "description": "Whether the path identifies a regular file"
44800
+ },
44801
+ "isDirectory": {
44802
+ "type": "boolean",
44803
+ "description": "Whether the path identifies a directory"
44804
+ },
44805
+ "size": {
44806
+ "type": "number",
44807
+ "description": "Size in bytes"
44808
+ },
44809
+ "mtimeMs": {
44810
+ "type": "number",
44811
+ "description": "Last modification time in Unix epoch milliseconds"
44812
+ },
44813
+ "birthtimeMs": {
44814
+ "type": "number",
44815
+ "description": "Creation time in Unix epoch milliseconds"
44816
+ }
44817
+ },
44818
+ "required": [
44819
+ "isFile",
44820
+ "isDirectory",
44821
+ "size",
44822
+ "mtimeMs",
44823
+ "birthtimeMs"
44824
+ ],
44825
+ "additionalProperties": false,
44826
+ "description": "Filesystem metadata for a path in the session workspace files directory.",
44827
+ "title": "WorkspacesStatFileResult"
44828
+ },
44267
44829
  "WorkspacesTruncateSummariesRequest": {
44268
44830
  "type": "object",
44269
44831
  "properties": {