@github/copilot-sdk-win32-x64 1.0.17-preview.5 → 1.0.17-preview.7

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.
@@ -1044,6 +1044,82 @@
1044
1044
  "description": "Canonical locations where custom agents can be created so the runtime will recognize them."
1045
1045
  },
1046
1046
  "stability": "experimental"
1047
+ },
1048
+ "getBuiltins": {
1049
+ "rpcMethod": "agents.getBuiltins",
1050
+ "description": "Lists the agents this runtime ships, by name. A consumer separating shipped agents from ones the user or a plugin authored should compare against these names rather than against `AgentInfo.source`: an authored agent may carry the `builtin` source while not being one of these, and the runtime treats the two as separate questions. `disableableNames` is the subset a user may turn off, which a client needs to decide whether to offer a toggle. `yamlBasedNames` is the subset backed by a shipped YAML definition, which a client needs before asking the runtime to load one.",
1051
+ "params": null,
1052
+ "result": {
1053
+ "$ref": "#/definitions/AgentsGetBuiltinsResult",
1054
+ "description": "The agents this runtime ships, named so a consumer can tell them apart from authored ones.",
1055
+ "visibility": "internal"
1056
+ },
1057
+ "stability": "experimental",
1058
+ "visibility": "internal"
1059
+ },
1060
+ "getAvailableBuiltins": {
1061
+ "rpcMethod": "agents.getAvailableBuiltins",
1062
+ "description": "Lists the shipped agents a client should offer right now, filtered by the feature flags it passes. `getBuiltins` names every agent the runtime knows about; some of those are gated, so a client rendering a picker wants this narrower list together with the description to show beside each name.",
1063
+ "params": {
1064
+ "$ref": "#/definitions/AgentsGetAvailableBuiltinsRequest",
1065
+ "description": "The feature flags to evaluate shipped agents against.",
1066
+ "visibility": "internal"
1067
+ },
1068
+ "result": {
1069
+ "$ref": "#/definitions/AgentsGetAvailableBuiltinsResult",
1070
+ "description": "The shipped agents available under the requested flags.",
1071
+ "visibility": "internal"
1072
+ },
1073
+ "stability": "experimental",
1074
+ "visibility": "internal"
1075
+ },
1076
+ "getBuiltinDefinition": {
1077
+ "rpcMethod": "agents.getBuiltinDefinition",
1078
+ "description": "Loads one shipped agent's YAML definition, for a client that needs what the agent declares rather than only its name. `getBuiltins` reports which names have a definition to load: a name outside its `yamlBasedNames` is special-cased in code and has none. The definition crosses as its own JSON rather than as contract-typed fields, because the runtime parses it with the agent schema's tolerant shape and re-typing it here would drop the keys that shape accepts and this one does not. The projected `__nativeCustomAgent` view the runtime derives is included, so a caller reading the declared model and a caller rendering the agent see the same definition.",
1079
+ "params": {
1080
+ "$ref": "#/definitions/AgentsGetBuiltinDefinitionRequest",
1081
+ "description": "The shipped agent whose definition to load.",
1082
+ "visibility": "internal"
1083
+ },
1084
+ "result": {
1085
+ "$ref": "#/definitions/AgentsGetBuiltinDefinitionResult",
1086
+ "description": "One shipped agent's definition.",
1087
+ "visibility": "internal"
1088
+ },
1089
+ "stability": "experimental",
1090
+ "visibility": "internal"
1091
+ },
1092
+ "getBuiltinListingDefinition": {
1093
+ "rpcMethod": "agents.getBuiltinListingDefinition",
1094
+ "description": "Projects one shipped agent the way a picker lists it, reading only the metadata at the head of the definition file and stopping before the prompt body. `getBuiltinDefinition` answers the whole definition instead, so a client listing every shipped agent should prefer this one: the cost of a listing grows with the number of agents, and the prompt body is the part a listing never shows. The two also differ in shape. This returns the projected custom agent on its own, whereas `getBuiltinDefinition` returns the authored definition with that projection nested under `__nativeCustomAgent`.",
1095
+ "params": {
1096
+ "$ref": "#/definitions/AgentsGetBuiltinListingDefinitionRequest",
1097
+ "description": "The shipped agent whose listing entry to load.",
1098
+ "visibility": "internal"
1099
+ },
1100
+ "result": {
1101
+ "$ref": "#/definitions/AgentsGetBuiltinListingDefinitionResult",
1102
+ "description": "One shipped agent, projected for a listing.",
1103
+ "visibility": "internal"
1104
+ },
1105
+ "stability": "experimental",
1106
+ "visibility": "internal"
1107
+ },
1108
+ "customAgentInitialModelDecision": {
1109
+ "rpcMethod": "agents.customAgentInitialModelDecision",
1110
+ "description": "Resolves the model a custom agent asks for against the models actually available, and answers both the model to switch to and the warning a user should see when the agent's preference cannot be met. A custom agent may name several acceptable models in preference order, so the decision is a match rather than a lookup, and an agent whose preference is unavailable is a normal outcome that produces a warning rather than an error. A host must call this rather than pick the first available name itself, because the preference order and the wording of the warning are what keep one installation's agent selection the same as another's.",
1111
+ "params": {
1112
+ "$ref": "#/definitions/AgentsCustomAgentInitialModelDecisionParams",
1113
+ "description": "The models a custom agent asks for, and the models actually available.",
1114
+ "visibility": "internal"
1115
+ },
1116
+ "result": {
1117
+ "$ref": "#/definitions/AgentsCustomAgentInitialModelDecisionResult",
1118
+ "description": "The model to switch to, and the warning to show when the agent's preference could not be met.",
1119
+ "visibility": "internal"
1120
+ },
1121
+ "stability": "experimental",
1122
+ "visibility": "internal"
1047
1123
  }
1048
1124
  },
1049
1125
  "instructions": {
@@ -1122,6 +1198,119 @@
1122
1198
  }
1123
1199
  }
1124
1200
  },
1201
+ "gitHubRepository": {
1202
+ "atPath": {
1203
+ "rpcMethod": "gitHubRepository.atPath",
1204
+ "description": "Resolves the GitHub repository that owns a working-tree path by reading the selected git remote configured for it, preferring `origin`. Returns a null `repository` when the path is inside a git working tree but that selected remote does not resolve to a GitHub host. Fails when the path is not inside a git working tree at all, so a caller can tell 'not a repository' apart from 'a repository with no GitHub remote'.",
1205
+ "params": {
1206
+ "$ref": "#/definitions/GitHubRepositoryAtPathRequest",
1207
+ "description": "Working-tree path whose owning GitHub repository should be resolved.",
1208
+ "visibility": "internal"
1209
+ },
1210
+ "result": {
1211
+ "$ref": "#/definitions/GitHubRepositoryAtPathResult",
1212
+ "description": "The GitHub repository that owns the requested path, when the selected remote (`origin`, else the first) is on a GitHub host.",
1213
+ "visibility": "internal"
1214
+ },
1215
+ "stability": "experimental",
1216
+ "visibility": "internal"
1217
+ }
1218
+ },
1219
+ "gitHubOwners": {
1220
+ "nextRequestId": {
1221
+ "rpcMethod": "gitHubOwners.nextRequestId",
1222
+ "description": "Registers a cancellable owner listing and returns its request id. Separate from `gitHubOwners.list` so the id exists before the listing starts: a caller that abandons the listing the moment it begins would otherwise have nothing to name in `gitHubOwners.cancel`. The id serves one listing only. Long-abandoned unused ids can be released by later allocations.",
1223
+ "params": null,
1224
+ "result": {
1225
+ "$ref": "#/definitions/GitHubOwnersRequestIdResult",
1226
+ "description": "A freshly registered request id. Registering it before the listing starts is what lets a cancel that races the request still find the owner listing slot. The id serves one listing only. Long-abandoned unused ids can be released by later allocations.",
1227
+ "visibility": "internal"
1228
+ },
1229
+ "stability": "experimental",
1230
+ "visibility": "internal"
1231
+ },
1232
+ "list": {
1233
+ "rpcMethod": "gitHubOwners.list",
1234
+ "description": "Lists the logins the authenticated user may act as — their own account first, then the organizations they belong to — by asking the GitHub API under the supplied credential. No credential travels in the request: `authInfo` selects one the runtime already holds, and the runtime resolves the token and the GitHub host from it. A failure the caller should render arrives as `message`; one it should raise arrives as `throwError`.",
1235
+ "params": {
1236
+ "$ref": "#/definitions/GitHubOwnersListRequest",
1237
+ "description": "Credential to list owners under, and the request id that makes the listing cancellable.",
1238
+ "visibility": "internal"
1239
+ },
1240
+ "result": {
1241
+ "$ref": "#/definitions/GitHubOwnersListResult",
1242
+ "description": "Outcome of an owner listing. Exactly one of `owners` and `message` is present, except that `throwError` reports a failure the caller is expected to raise rather than render.",
1243
+ "visibility": "internal"
1244
+ },
1245
+ "stability": "experimental",
1246
+ "visibility": "internal"
1247
+ },
1248
+ "cancel": {
1249
+ "rpcMethod": "gitHubOwners.cancel",
1250
+ "description": "Abandons an owner listing started with the given request id. Answers `canceled: true` while a listing with that id is running. Answers `canceled: false` when the id was never registered, was registered but not used, was released after being abandoned, or its listing has ended. Canceling an unused id releases it, and a later `list` with that id is refused. The cancel acts only on owner listings and never reaches another request of the host.",
1251
+ "params": {
1252
+ "$ref": "#/definitions/GitHubOwnersCancelRequest",
1253
+ "description": "The owner listing to abandon.",
1254
+ "visibility": "internal"
1255
+ },
1256
+ "result": {
1257
+ "$ref": "#/definitions/GitHubOwnersCancelResult",
1258
+ "description": "Whether the id named a running owner listing.",
1259
+ "visibility": "internal"
1260
+ },
1261
+ "stability": "experimental",
1262
+ "visibility": "internal"
1263
+ }
1264
+ },
1265
+ "git": {
1266
+ "currentBranchRemote": {
1267
+ "rpcMethod": "git.currentBranchRemote",
1268
+ "description": "Reads the remote that the branch checked out in a working tree tracks, as `branch.<name>.remote` configures it. Reports `origin` rather than failing whenever there is no tracking configuration to read — on a detached HEAD, on a branch with no upstream, or when git itself fails — because a caller asking which remote to talk to needs an answer it can act on, not an error. Marked internal because it exists to carry a CLI call site off the napi boundary onto the SDK contract; it is migration plumbing, not a surface consumers are meant to depend on.",
1269
+ "params": {
1270
+ "$ref": "#/definitions/GitCwdRequest",
1271
+ "description": "Working-tree path a git query applies to.",
1272
+ "visibility": "internal"
1273
+ },
1274
+ "result": {
1275
+ "$ref": "#/definitions/GitCurrentBranchRemoteResult",
1276
+ "description": "The remote the checked-out branch tracks.",
1277
+ "visibility": "internal"
1278
+ },
1279
+ "stability": "experimental",
1280
+ "visibility": "internal"
1281
+ },
1282
+ "workingDirectoryContext": {
1283
+ "rpcMethod": "git.workingDirectoryContext",
1284
+ "description": "Collects the repository context of a working directory in one call: working tree root, repository identifier and host, current branch, and the HEAD and base commits. Every repository field is omitted when the path is not inside a git working tree, and the requested path is echoed back as `cwd`. The answer is the same `SessionWorkingDirectoryContext` that `session.metadata.recordContextChange` accepts, so a caller polling for a context change can forward the result unchanged. Marked internal because it exists to carry a CLI call site off the napi boundary onto the SDK contract; it is migration plumbing, not a surface consumers are meant to depend on. It can become public once an SDK consumer needs to derive session context from a directory itself.",
1285
+ "params": {
1286
+ "$ref": "#/definitions/GitCwdRequest",
1287
+ "description": "Working-tree path a git query applies to.",
1288
+ "visibility": "internal"
1289
+ },
1290
+ "result": {
1291
+ "$ref": "#/definitions/SessionWorkingDirectoryContext",
1292
+ "description": "Updated working directory and git context. Emitted as the new payload of `session.context_changed`."
1293
+ },
1294
+ "stability": "experimental",
1295
+ "visibility": "internal"
1296
+ },
1297
+ "reposFromRemotes": {
1298
+ "rpcMethod": "git.reposFromRemotes",
1299
+ "description": "Lists the GitHub repositories a working tree's remotes point at, one entry per distinct repository, so a caller can resolve a base and head repository without parsing remote URLs itself. When several remotes name the same repository, only the first is listed, and the entry keeps that remote name. Remotes pointing at no GitHub host are left out, so an empty list means the tree reaches GitHub through no remote. Failing to read the remotes is reported as an error rather than as an empty list, because the two mean different things to a caller. Marked internal because it exists to carry a CLI call site off the napi boundary onto the SDK contract; it is migration plumbing, not a surface consumers are meant to depend on.",
1300
+ "params": {
1301
+ "$ref": "#/definitions/GitReposFromRemotesRequest",
1302
+ "description": "Git working tree whose GitHub remotes should be listed.",
1303
+ "visibility": "internal"
1304
+ },
1305
+ "result": {
1306
+ "$ref": "#/definitions/GitReposFromRemotesResult",
1307
+ "description": "The GitHub repositories a working tree's remotes point at.",
1308
+ "visibility": "internal"
1309
+ },
1310
+ "stability": "experimental",
1311
+ "visibility": "internal"
1312
+ }
1313
+ },
1125
1314
  "managedSettings": {
1126
1315
  "read": {
1127
1316
  "rpcMethod": "managedSettings.read",
@@ -1544,6 +1733,48 @@
1544
1733
  },
1545
1734
  "stability": "experimental"
1546
1735
  },
1736
+ "createWorkspace": {
1737
+ "rpcMethod": "sessions.createWorkspace",
1738
+ "description": "Creates the workspace record for a session that has not been opened yet. A host that hands a session off to another application — writing the record and then launching that application against the session ID — needs the record on disk before any session exists to carry it, which the session-scoped workspace methods cannot do. Replaces any existing record and resets the checkpoint index. When writing to the local filesystem, a stored `fork_count` survives on disk. Returns the record it built, so a surviving stored `fork_count` can differ from the answer.",
1739
+ "params": {
1740
+ "$ref": "#/definitions/SessionsCreateWorkspaceRequest",
1741
+ "description": "Identity, state location and starting context for a workspace record."
1742
+ },
1743
+ "result": {
1744
+ "$ref": "#/definitions/SessionsCreateWorkspaceResult",
1745
+ "description": "The workspace record that was written."
1746
+ },
1747
+ "stability": "experimental",
1748
+ "visibility": "internal"
1749
+ },
1750
+ "loadWorkspace": {
1751
+ "rpcMethod": "sessions.loadWorkspace",
1752
+ "description": "Reads a session's workspace record straight from disk, without opening the session. Resuming by session ID has to know where the session lives before it can connect, so the lookup cannot come from the session-scoped workspace methods, which resolve their location from a live session's context. Returns no record when the file is absent.",
1753
+ "params": {
1754
+ "$ref": "#/definitions/SessionsLoadWorkspaceRequest",
1755
+ "description": "Where the session's state lives, as a root directory and the session ID under it."
1756
+ },
1757
+ "result": {
1758
+ "$ref": "#/definitions/SessionsLoadWorkspaceResult",
1759
+ "description": "The workspace record on disk, omitted when the session has none."
1760
+ },
1761
+ "stability": "experimental",
1762
+ "visibility": "internal"
1763
+ },
1764
+ "updateWorkspaceFields": {
1765
+ "rpcMethod": "sessions.updateWorkspaceFields",
1766
+ "description": "Merges fields into a session's workspace record on disk, creating the record when it is absent. The counterpart to `sessions.loadWorkspace`, for the same before-the-session-exists case. It preserves stored workspace-schema fields the request does not supply, does not preserve stored keys outside the workspace schema, and never replaces a stored `fork_count`.",
1767
+ "params": {
1768
+ "$ref": "#/definitions/SessionsUpdateWorkspaceFieldsRequest",
1769
+ "description": "Where the session's state lives, plus workspace-schema fields to merge into its workspace record. Stored keys outside the schema are not preserved, and a stored `fork_count` is never replaced."
1770
+ },
1771
+ "result": {
1772
+ "$ref": "#/definitions/SessionsUpdateWorkspaceFieldsResult",
1773
+ "description": "The merge completed. The record carries the supplied workspace-schema fields, but a stored `fork_count` stays."
1774
+ },
1775
+ "stability": "experimental",
1776
+ "visibility": "internal"
1777
+ },
1547
1778
  "reloadPluginHooks": {
1548
1779
  "rpcMethod": "sessions.reloadPluginHooks",
1549
1780
  "description": "Reloads user, plugin, and (optionally) repo hooks on the active session.",
@@ -1688,6 +1919,54 @@
1688
1919
  },
1689
1920
  "stability": "experimental"
1690
1921
  }
1922
+ },
1923
+ "connectors": {
1924
+ "getCapabilities": {
1925
+ "rpcMethod": "connectors.getCapabilities",
1926
+ "description": "Returns feature availability.",
1927
+ "params": null,
1928
+ "result": {
1929
+ "$ref": "#/definitions/ConnectorDiscoveryCapabilities",
1930
+ "description": "Feature availability."
1931
+ },
1932
+ "stability": "experimental"
1933
+ },
1934
+ "getAccounts": {
1935
+ "rpcMethod": "connectors.getAccounts",
1936
+ "description": "Returns eligible accounts.",
1937
+ "params": null,
1938
+ "result": {
1939
+ "$ref": "#/definitions/ConnectorDiscoveryAccountList",
1940
+ "description": "Eligible accounts."
1941
+ },
1942
+ "stability": "experimental"
1943
+ },
1944
+ "list": {
1945
+ "rpcMethod": "connectors.list",
1946
+ "description": "Lists entries for the selected account.",
1947
+ "params": {
1948
+ "$ref": "#/definitions/ConnectorDiscoveryAccountRequest",
1949
+ "description": "Selected account."
1950
+ },
1951
+ "result": {
1952
+ "$ref": "#/definitions/ConnectorDiscoveryCatalogResult",
1953
+ "description": "Entries for the selected account."
1954
+ },
1955
+ "stability": "experimental"
1956
+ },
1957
+ "refresh": {
1958
+ "rpcMethod": "connectors.refresh",
1959
+ "description": "Refreshes entries for the selected account.",
1960
+ "params": {
1961
+ "$ref": "#/definitions/ConnectorDiscoveryAccountRequest",
1962
+ "description": "Selected account."
1963
+ },
1964
+ "result": {
1965
+ "$ref": "#/definitions/ConnectorDiscoveryCatalogResult",
1966
+ "description": "Entries for the selected account."
1967
+ },
1968
+ "stability": "experimental"
1969
+ }
1691
1970
  }
1692
1971
  },
1693
1972
  "session": {
@@ -5822,6 +6101,43 @@
5822
6101
  }
5823
6102
  },
5824
6103
  "mcp": {
6104
+ "setConnectedIdeInfo": {
6105
+ "rpcMethod": "session.mcp.setConnectedIdeInfo",
6106
+ "description": "Records the IDE the host is connected to, so the agent's system prompt can name it and its workspace folder. Null or an omitted `ide` clears the recorded value, which is how a host reports that it is disconnected; there is no separate clear method. Both `ideName` and `workspaceFolder` are required together, because half a state cannot be attributed to a project.",
6107
+ "params": {
6108
+ "type": "object",
6109
+ "properties": {
6110
+ "sessionId": {
6111
+ "type": "string",
6112
+ "description": "Target session identifier"
6113
+ },
6114
+ "ide": {
6115
+ "anyOf": [
6116
+ {
6117
+ "$ref": "#/definitions/SessionConnectedIdeInfo",
6118
+ "description": "The IDE a host is connected to, as reported to the session."
6119
+ },
6120
+ {
6121
+ "type": "null"
6122
+ }
6123
+ ],
6124
+ "description": "The connected IDE. Null or omitted clears the recorded IDE, which is how a host reports that it is disconnected."
6125
+ }
6126
+ },
6127
+ "required": [
6128
+ "sessionId"
6129
+ ],
6130
+ "additionalProperties": false,
6131
+ "description": "Records which IDE the host is connected to, or clears it.",
6132
+ "title": "SessionMcpSetConnectedIdeInfoParams",
6133
+ "stability": "experimental"
6134
+ },
6135
+ "result": {
6136
+ "type": "null"
6137
+ },
6138
+ "stability": "experimental",
6139
+ "visibility": "internal"
6140
+ },
5825
6141
  "list": {
5826
6142
  "rpcMethod": "session.mcp.list",
5827
6143
  "description": "Lists materialized MCP servers and their connection status. Cache misses may start and wait for MCP servers.",
@@ -12757,7 +13073,7 @@
12757
13073
  },
12758
13074
  "result": {
12759
13075
  "$ref": "#/definitions/SkillProviderReadResult",
12760
- "description": "Complete text-only SKILL.md content returned by an SDK session's skill provider. Related files and assets are not supported.",
13076
+ "description": "Text-only SKILL.md content returned by an SDK session's skill provider. YAML frontmatter is optional: fields it omits come from the catalog descriptor, fields it declares must match the descriptor, and `allowed-tools` is read only from frontmatter. Related files and assets are not supported.",
12761
13077
  "visibility": "internal"
12762
13078
  },
12763
13079
  "stability": "experimental",
@@ -14951,6 +15267,48 @@
14951
15267
  "description": "Custom agents available to the session after reloading definitions from disk.",
14952
15268
  "title": "AgentReloadResult"
14953
15269
  },
15270
+ "AgentsCustomAgentInitialModelDecisionParams": {
15271
+ "type": "object",
15272
+ "properties": {
15273
+ "agentModelsJson": {
15274
+ "type": "string",
15275
+ "description": "The agent's declared `model:` entry, serialized. A single name or an ordered list of acceptable names."
15276
+ },
15277
+ "availableModelsJson": {
15278
+ "type": "string",
15279
+ "description": "The models available to this session, serialized in the shape the model list carries."
15280
+ }
15281
+ },
15282
+ "required": [
15283
+ "agentModelsJson",
15284
+ "availableModelsJson"
15285
+ ],
15286
+ "additionalProperties": false,
15287
+ "description": "The models a custom agent asks for, and the models actually available.",
15288
+ "title": "AgentsCustomAgentInitialModelDecisionParams",
15289
+ "visibility": "internal"
15290
+ },
15291
+ "AgentsCustomAgentInitialModelDecisionResult": {
15292
+ "type": "object",
15293
+ "properties": {
15294
+ "targetModel": {
15295
+ "type": "string",
15296
+ "description": "The first available model that matches the agent's preferences. Absent when none of the requested models is available."
15297
+ },
15298
+ "reasoningEffort": {
15299
+ "type": "string",
15300
+ "description": "The reasoning effort attached to the selected model preference. Absent when that preference does not specify an effort."
15301
+ },
15302
+ "warning": {
15303
+ "type": "string",
15304
+ "description": "What to tell the user about an unmet preference. Absent when the preference was met. A warning with no `targetModel` means the agent's models are all unavailable."
15305
+ }
15306
+ },
15307
+ "additionalProperties": false,
15308
+ "description": "The model to switch to, and the warning to show when the agent's preference could not be met.",
15309
+ "title": "AgentsCustomAgentInitialModelDecisionResult",
15310
+ "visibility": "internal"
15311
+ },
14954
15312
  "AgentsDiscoverRequest": {
14955
15313
  "type": "object",
14956
15314
  "properties": {
@@ -15022,6 +15380,172 @@
15022
15380
  "title": "AgentSetPromptRequest",
15023
15381
  "stability": "experimental"
15024
15382
  },
15383
+ "AgentsGetAvailableBuiltinsRequest": {
15384
+ "type": "object",
15385
+ "properties": {
15386
+ "featureFlags": {
15387
+ "anyOf": [
15388
+ {
15389
+ "type": "object",
15390
+ "properties": {},
15391
+ "additionalProperties": true
15392
+ },
15393
+ {
15394
+ "type": "null"
15395
+ }
15396
+ ],
15397
+ "description": "Feature flag values keyed by name, evaluated with the runtime's truthiness rules. Omit or pass null for no flags."
15398
+ },
15399
+ "overrides": {
15400
+ "anyOf": [
15401
+ {
15402
+ "type": "object",
15403
+ "properties": {},
15404
+ "additionalProperties": true
15405
+ },
15406
+ {
15407
+ "type": "null"
15408
+ }
15409
+ ],
15410
+ "description": "Flag overrides keyed by name. A null entry uses the corresponding base flag; false explicitly disables it. Omit or pass null for no overrides."
15411
+ },
15412
+ "context": {
15413
+ "anyOf": [
15414
+ {
15415
+ "type": "string"
15416
+ },
15417
+ {
15418
+ "type": "null"
15419
+ }
15420
+ ],
15421
+ "description": "The surface asking, which gates agents that only apply to one client. Omit or pass null to apply no client filter."
15422
+ }
15423
+ },
15424
+ "additionalProperties": false,
15425
+ "description": "The feature flags to evaluate shipped agents against.",
15426
+ "title": "AgentsGetAvailableBuiltinsRequest",
15427
+ "visibility": "internal"
15428
+ },
15429
+ "AgentsGetAvailableBuiltinsResult": {
15430
+ "type": "object",
15431
+ "properties": {
15432
+ "agents": {
15433
+ "type": "array",
15434
+ "items": {
15435
+ "$ref": "#/definitions/BuiltinAgentSummary",
15436
+ "description": "A shipped agent, named and described.",
15437
+ "visibility": "internal"
15438
+ },
15439
+ "description": "Available shipped agents, in the runtime's own order."
15440
+ }
15441
+ },
15442
+ "required": [
15443
+ "agents"
15444
+ ],
15445
+ "additionalProperties": false,
15446
+ "description": "The shipped agents available under the requested flags.",
15447
+ "title": "AgentsGetAvailableBuiltinsResult",
15448
+ "visibility": "internal"
15449
+ },
15450
+ "AgentsGetBuiltinDefinitionRequest": {
15451
+ "type": "object",
15452
+ "properties": {
15453
+ "name": {
15454
+ "type": "string",
15455
+ "description": "The agent name, which must be one of `getBuiltins`'s `yamlBasedNames`. A name outside that list is special-cased in code and has no definition, and is reported as an error rather than as an empty definition."
15456
+ }
15457
+ },
15458
+ "required": [
15459
+ "name"
15460
+ ],
15461
+ "additionalProperties": false,
15462
+ "description": "The shipped agent whose definition to load.",
15463
+ "title": "AgentsGetBuiltinDefinitionRequest",
15464
+ "visibility": "internal"
15465
+ },
15466
+ "AgentsGetBuiltinDefinitionResult": {
15467
+ "type": "object",
15468
+ "properties": {
15469
+ "definitionJson": {
15470
+ "type": "string",
15471
+ "description": "The agent's definition, serialized as JSON. It carries the authored keys plus the runtime's projected `__nativeCustomAgent` view of the same agent. It is a string rather than an object because the runtime parses it with the agent schema's tolerant shape, which accepts keys this contract does not name."
15472
+ }
15473
+ },
15474
+ "required": [
15475
+ "definitionJson"
15476
+ ],
15477
+ "additionalProperties": false,
15478
+ "description": "One shipped agent's definition.",
15479
+ "title": "AgentsGetBuiltinDefinitionResult",
15480
+ "visibility": "internal"
15481
+ },
15482
+ "AgentsGetBuiltinListingDefinitionRequest": {
15483
+ "type": "object",
15484
+ "properties": {
15485
+ "name": {
15486
+ "type": "string",
15487
+ "description": "The agent name, taken from `getAvailableBuiltins`. Unlike `getBuiltinDefinition`, the agent that `getBuiltins` reports as special-cased rather than YAML-based is answered here too, from its in-code definition."
15488
+ }
15489
+ },
15490
+ "required": [
15491
+ "name"
15492
+ ],
15493
+ "additionalProperties": false,
15494
+ "description": "The shipped agent whose listing entry to load.",
15495
+ "title": "AgentsGetBuiltinListingDefinitionRequest",
15496
+ "visibility": "internal"
15497
+ },
15498
+ "AgentsGetBuiltinListingDefinitionResult": {
15499
+ "type": "object",
15500
+ "properties": {
15501
+ "definitionJson": {
15502
+ "type": "string",
15503
+ "description": "The agent projected as a custom agent, serialized as JSON. It is a string rather than an object for the same reason as `getBuiltinDefinition`: the runtime parses the underlying definition with the agent schema's tolerant shape, which accepts keys this contract does not name."
15504
+ }
15505
+ },
15506
+ "required": [
15507
+ "definitionJson"
15508
+ ],
15509
+ "additionalProperties": false,
15510
+ "description": "One shipped agent, projected for a listing.",
15511
+ "title": "AgentsGetBuiltinListingDefinitionResult",
15512
+ "visibility": "internal"
15513
+ },
15514
+ "AgentsGetBuiltinsResult": {
15515
+ "type": "object",
15516
+ "properties": {
15517
+ "names": {
15518
+ "type": "array",
15519
+ "items": {
15520
+ "type": "string"
15521
+ },
15522
+ "description": "Every agent name this runtime ships."
15523
+ },
15524
+ "disableableNames": {
15525
+ "type": "array",
15526
+ "items": {
15527
+ "type": "string"
15528
+ },
15529
+ "description": "The subset of `names` a user is allowed to turn off. A shipped agent outside this list is always active and a client should not offer a toggle for it."
15530
+ },
15531
+ "yamlBasedNames": {
15532
+ "type": "array",
15533
+ "items": {
15534
+ "type": "string"
15535
+ },
15536
+ "description": "The subset of `names` defined by a shipped YAML definition. The remainder are special-cased in code and have no definition to load."
15537
+ }
15538
+ },
15539
+ "required": [
15540
+ "names",
15541
+ "disableableNames",
15542
+ "yamlBasedNames"
15543
+ ],
15544
+ "additionalProperties": false,
15545
+ "description": "The agents this runtime ships, named so a consumer can tell them apart from authored ones.",
15546
+ "title": "AgentsGetBuiltinsResult",
15547
+ "visibility": "internal"
15548
+ },
15025
15549
  "AgentsGetDiscoveryPathsRequest": {
15026
15550
  "type": "object",
15027
15551
  "properties": {
@@ -16729,6 +17253,27 @@
16729
17253
  "fast": "Integrator-only preset that optimizes for latency."
16730
17254
  }
16731
17255
  },
17256
+ "BuiltinAgentSummary": {
17257
+ "type": "object",
17258
+ "properties": {
17259
+ "name": {
17260
+ "type": "string",
17261
+ "description": "The agent name, as it appears in `getBuiltins`."
17262
+ },
17263
+ "description": {
17264
+ "type": "string",
17265
+ "description": "One-line description of what the agent does."
17266
+ }
17267
+ },
17268
+ "required": [
17269
+ "name",
17270
+ "description"
17271
+ ],
17272
+ "additionalProperties": false,
17273
+ "description": "A shipped agent, named and described.",
17274
+ "title": "BuiltinAgentSummary",
17275
+ "visibility": "internal"
17276
+ },
16732
17277
  "BuiltInModelCatalog": {
16733
17278
  "type": "object",
16734
17279
  "properties": {
@@ -20552,6 +21097,226 @@
20552
21097
  "title": "ConnectorDisconnectResult",
20553
21098
  "stability": "experimental"
20554
21099
  },
21100
+ "ConnectorDiscoveryAccount": {
21101
+ "type": "object",
21102
+ "properties": {
21103
+ "accountId": {
21104
+ "type": "string",
21105
+ "description": "Opaque account ID."
21106
+ },
21107
+ "authInfo": {
21108
+ "$ref": "#/definitions/ConnectorDiscoveryAuthInfo",
21109
+ "description": "Account metadata."
21110
+ }
21111
+ },
21112
+ "required": [
21113
+ "accountId",
21114
+ "authInfo"
21115
+ ],
21116
+ "additionalProperties": false,
21117
+ "description": "Eligible account.",
21118
+ "title": "ConnectorDiscoveryAccount",
21119
+ "stability": "experimental"
21120
+ },
21121
+ "ConnectorDiscoveryAccountList": {
21122
+ "type": "object",
21123
+ "properties": {
21124
+ "availability": {
21125
+ "$ref": "#/definitions/ConnectorDiscoveryAvailability",
21126
+ "description": "Availability."
21127
+ },
21128
+ "accounts": {
21129
+ "type": "array",
21130
+ "items": {
21131
+ "$ref": "#/definitions/ConnectorDiscoveryAccount",
21132
+ "description": "Eligible account."
21133
+ },
21134
+ "description": "Eligible accounts."
21135
+ }
21136
+ },
21137
+ "required": [
21138
+ "availability",
21139
+ "accounts"
21140
+ ],
21141
+ "additionalProperties": false,
21142
+ "description": "Eligible accounts.",
21143
+ "title": "ConnectorDiscoveryAccountList",
21144
+ "stability": "experimental"
21145
+ },
21146
+ "ConnectorDiscoveryAccountRequest": {
21147
+ "type": "object",
21148
+ "properties": {
21149
+ "accountId": {
21150
+ "type": "string",
21151
+ "minLength": 1,
21152
+ "maxLength": 2048,
21153
+ "pattern": "^\\S+$",
21154
+ "description": "Opaque account ID."
21155
+ }
21156
+ },
21157
+ "required": [
21158
+ "accountId"
21159
+ ],
21160
+ "additionalProperties": false,
21161
+ "description": "Selected account.",
21162
+ "title": "ConnectorDiscoveryAccountRequest",
21163
+ "stability": "experimental"
21164
+ },
21165
+ "ConnectorDiscoveryAuthInfo": {
21166
+ "type": "object",
21167
+ "properties": {
21168
+ "type": {
21169
+ "$ref": "#/definitions/AuthInfoType",
21170
+ "description": "Authentication type."
21171
+ },
21172
+ "host": {
21173
+ "type": "string",
21174
+ "description": "Host."
21175
+ },
21176
+ "login": {
21177
+ "type": "string",
21178
+ "description": "Login."
21179
+ }
21180
+ },
21181
+ "required": [
21182
+ "type",
21183
+ "host",
21184
+ "login"
21185
+ ],
21186
+ "additionalProperties": false,
21187
+ "description": "Account metadata.",
21188
+ "title": "ConnectorDiscoveryAuthInfo",
21189
+ "stability": "experimental"
21190
+ },
21191
+ "ConnectorDiscoveryAvailability": {
21192
+ "type": "string",
21193
+ "enum": [
21194
+ "enabled",
21195
+ "disabled",
21196
+ "unavailable"
21197
+ ],
21198
+ "description": "Availability.",
21199
+ "title": "ConnectorDiscoveryAvailability",
21200
+ "x-enumDescriptions": {
21201
+ "enabled": "Enabled.",
21202
+ "disabled": "Disabled.",
21203
+ "unavailable": "Unavailable."
21204
+ },
21205
+ "stability": "experimental"
21206
+ },
21207
+ "ConnectorDiscoveryCapabilities": {
21208
+ "type": "object",
21209
+ "properties": {
21210
+ "apiVersion": {
21211
+ "type": "integer",
21212
+ "minimum": 0,
21213
+ "description": "API version."
21214
+ },
21215
+ "availability": {
21216
+ "$ref": "#/definitions/ConnectorDiscoveryAvailability",
21217
+ "description": "Availability."
21218
+ },
21219
+ "opaqueAccountSelection": {
21220
+ "type": "boolean",
21221
+ "description": "Whether accounts are selected by opaque ID."
21222
+ },
21223
+ "conditionalCache": {
21224
+ "type": "boolean",
21225
+ "description": "Whether results are cached."
21226
+ }
21227
+ },
21228
+ "required": [
21229
+ "apiVersion",
21230
+ "availability",
21231
+ "opaqueAccountSelection",
21232
+ "conditionalCache"
21233
+ ],
21234
+ "additionalProperties": false,
21235
+ "description": "Feature availability.",
21236
+ "title": "ConnectorDiscoveryCapabilities",
21237
+ "stability": "experimental"
21238
+ },
21239
+ "ConnectorDiscoveryCatalogEntry": {
21240
+ "type": "object",
21241
+ "properties": {
21242
+ "name": {
21243
+ "type": "string",
21244
+ "description": "Name."
21245
+ },
21246
+ "displayName": {
21247
+ "type": "string",
21248
+ "description": "Display name."
21249
+ },
21250
+ "description": {
21251
+ "type": "string",
21252
+ "description": "Description."
21253
+ },
21254
+ "logo": {
21255
+ "type": "string",
21256
+ "description": "Logo."
21257
+ },
21258
+ "tier": {
21259
+ "type": "string",
21260
+ "description": "Tier."
21261
+ },
21262
+ "releaseTag": {
21263
+ "type": "string",
21264
+ "description": "Release tag."
21265
+ },
21266
+ "status": {
21267
+ "$ref": "#/definitions/ConnectorCatalogStatus",
21268
+ "description": "Status."
21269
+ }
21270
+ },
21271
+ "required": [
21272
+ "name",
21273
+ "displayName",
21274
+ "status"
21275
+ ],
21276
+ "additionalProperties": false,
21277
+ "description": "Entry.",
21278
+ "title": "ConnectorDiscoveryCatalogEntry",
21279
+ "stability": "experimental"
21280
+ },
21281
+ "ConnectorDiscoveryCatalogResult": {
21282
+ "type": "object",
21283
+ "properties": {
21284
+ "accountId": {
21285
+ "type": "string",
21286
+ "description": "Opaque account ID."
21287
+ },
21288
+ "revision": {
21289
+ "type": "integer",
21290
+ "minimum": 0,
21291
+ "maximum": 9007199254740991,
21292
+ "description": "Revision."
21293
+ },
21294
+ "refreshedAtMs": {
21295
+ "type": "integer",
21296
+ "minimum": 0,
21297
+ "maximum": 9007199254740991,
21298
+ "description": "Refresh time in Unix epoch milliseconds."
21299
+ },
21300
+ "connectors": {
21301
+ "type": "array",
21302
+ "items": {
21303
+ "$ref": "#/definitions/ConnectorDiscoveryCatalogEntry",
21304
+ "description": "Entry."
21305
+ },
21306
+ "description": "Entries."
21307
+ }
21308
+ },
21309
+ "required": [
21310
+ "accountId",
21311
+ "revision",
21312
+ "refreshedAtMs",
21313
+ "connectors"
21314
+ ],
21315
+ "additionalProperties": false,
21316
+ "description": "Entries for the selected account.",
21317
+ "title": "ConnectorDiscoveryCatalogResult",
21318
+ "stability": "experimental"
21319
+ },
20555
21320
  "ConnectorMcpStatus": {
20556
21321
  "type": "string",
20557
21322
  "enum": [
@@ -23811,6 +24576,40 @@
23811
24576
  "description": "Authentication-info input variant for GitHub CLI credentials, carrying host, login, and the `gh auth token` value.",
23812
24577
  "title": "GhCliAuthInfo"
23813
24578
  },
24579
+ "GitCurrentBranchRemoteResult": {
24580
+ "type": "object",
24581
+ "properties": {
24582
+ "remote": {
24583
+ "type": "string",
24584
+ "minLength": 1,
24585
+ "description": "Name of the tracked remote. Reports `origin` whenever the working tree has no tracking configuration to read, including on a detached HEAD, so this is never null and never empty."
24586
+ }
24587
+ },
24588
+ "required": [
24589
+ "remote"
24590
+ ],
24591
+ "additionalProperties": false,
24592
+ "description": "The remote the checked-out branch tracks.",
24593
+ "title": "GitCurrentBranchRemoteResult",
24594
+ "visibility": "internal"
24595
+ },
24596
+ "GitCwdRequest": {
24597
+ "type": "object",
24598
+ "properties": {
24599
+ "cwd": {
24600
+ "type": "string",
24601
+ "minLength": 1,
24602
+ "description": "Absolute path to a directory inside the git working tree to query."
24603
+ }
24604
+ },
24605
+ "required": [
24606
+ "cwd"
24607
+ ],
24608
+ "additionalProperties": false,
24609
+ "description": "Working-tree path a git query applies to.",
24610
+ "title": "GitCwdRequest",
24611
+ "visibility": "internal"
24612
+ },
23814
24613
  "GitHubEnvironment": {
23815
24614
  "type": "object",
23816
24615
  "properties": {
@@ -23866,6 +24665,134 @@
23866
24665
  ],
23867
24666
  "description": "Safe discovery information. Host-side relay bootstrap credentials are never included."
23868
24667
  },
24668
+ "GitHubOwnerOption": {
24669
+ "type": "object",
24670
+ "properties": {
24671
+ "login": {
24672
+ "type": "string",
24673
+ "description": "The owner's GitHub login."
24674
+ },
24675
+ "type": {
24676
+ "type": "string",
24677
+ "description": "Which kind of owner this is. The authenticated user's own account is always reported as `user`."
24678
+ }
24679
+ },
24680
+ "required": [
24681
+ "login",
24682
+ "type"
24683
+ ],
24684
+ "additionalProperties": false,
24685
+ "description": "A GitHub login the authenticated user may act as: their own account, or an organization they belong to.",
24686
+ "title": "GitHubOwnerOption",
24687
+ "visibility": "internal"
24688
+ },
24689
+ "GitHubOwnersCancelRequest": {
24690
+ "type": "object",
24691
+ "properties": {
24692
+ "requestId": {
24693
+ "type": "integer",
24694
+ "minimum": 0,
24695
+ "description": "Request id the listing was started with."
24696
+ }
24697
+ },
24698
+ "required": [
24699
+ "requestId"
24700
+ ],
24701
+ "additionalProperties": false,
24702
+ "description": "The owner listing to abandon.",
24703
+ "title": "GitHubOwnersCancelRequest",
24704
+ "visibility": "internal",
24705
+ "stability": "experimental"
24706
+ },
24707
+ "GitHubOwnersCancelResult": {
24708
+ "type": "object",
24709
+ "properties": {
24710
+ "canceled": {
24711
+ "type": "boolean",
24712
+ "description": "True when a listing with the id was running and the cancel stopped it. False when the id was never registered, was registered but unused, was released after being abandoned, or its listing had ended. An unused id is released and cannot start a later listing."
24713
+ }
24714
+ },
24715
+ "required": [
24716
+ "canceled"
24717
+ ],
24718
+ "additionalProperties": false,
24719
+ "description": "Whether the id named a running owner listing.",
24720
+ "title": "GitHubOwnersCancelResult",
24721
+ "visibility": "internal",
24722
+ "stability": "experimental"
24723
+ },
24724
+ "GitHubOwnersListRequest": {
24725
+ "type": "object",
24726
+ "properties": {
24727
+ "requestId": {
24728
+ "type": "integer",
24729
+ "minimum": 0,
24730
+ "description": "Request id from `gitHubOwners.nextRequestId`. An id that was never registered, canceled before use, released after being abandoned, or already used is refused rather than silently running uncancellable."
24731
+ },
24732
+ "authInfo": {
24733
+ "description": "The credential the listing runs under, carried opaquely because its shape is the host's own and the runtime only resolves a token and a GitHub host from it. No credential travels: this selects one the runtime already holds.",
24734
+ "x-opaque-json": true
24735
+ }
24736
+ },
24737
+ "required": [
24738
+ "requestId",
24739
+ "authInfo"
24740
+ ],
24741
+ "additionalProperties": false,
24742
+ "description": "Credential to list owners under, and the request id that makes the listing cancellable.",
24743
+ "title": "GitHubOwnersListRequest",
24744
+ "visibility": "internal",
24745
+ "stability": "experimental"
24746
+ },
24747
+ "GitHubOwnersListResult": {
24748
+ "type": "object",
24749
+ "properties": {
24750
+ "owners": {
24751
+ "type": "array",
24752
+ "items": {
24753
+ "$ref": "#/definitions/GitHubOwnerOption",
24754
+ "description": "A GitHub login the authenticated user may act as: their own account, or an organization they belong to.",
24755
+ "visibility": "internal"
24756
+ },
24757
+ "description": "The owners, on success: the authenticated user first, then the organizations they belong to."
24758
+ },
24759
+ "message": {
24760
+ "type": "string",
24761
+ "description": "Why no owners could be listed, phrased for a user. Present when the listing failed in a way the caller should render rather than raise."
24762
+ },
24763
+ "warning": {
24764
+ "type": "string",
24765
+ "description": "A line the caller should log. Present only alongside `message`, and only for failures worth recording."
24766
+ },
24767
+ "throwError": {
24768
+ "type": "string",
24769
+ "description": "A malformed request or an unreadable credential, which the caller raises instead of rendering. Kept a field rather than a dispatch error so it stays distinct from `message`, which the caller renders."
24770
+ }
24771
+ },
24772
+ "additionalProperties": false,
24773
+ "description": "Outcome of an owner listing. Exactly one of `owners` and `message` is present, except that `throwError` reports a failure the caller is expected to raise rather than render.",
24774
+ "title": "GitHubOwnersListResult",
24775
+ "visibility": "internal",
24776
+ "stability": "experimental"
24777
+ },
24778
+ "GitHubOwnersRequestIdResult": {
24779
+ "type": "object",
24780
+ "properties": {
24781
+ "requestId": {
24782
+ "type": "integer",
24783
+ "minimum": 0,
24784
+ "description": "Request id to pass to `gitHubOwners.list` and, to abandon it, `gitHubOwners.cancel`."
24785
+ }
24786
+ },
24787
+ "required": [
24788
+ "requestId"
24789
+ ],
24790
+ "additionalProperties": false,
24791
+ "description": "A freshly registered request id. Registering it before the listing starts is what lets a cancel that races the request still find the owner listing slot. The id serves one listing only. Long-abandoned unused ids can be released by later allocations.",
24792
+ "title": "GitHubOwnersRequestIdResult",
24793
+ "visibility": "internal",
24794
+ "stability": "experimental"
24795
+ },
23869
24796
  "GitHubRepoRef": {
23870
24797
  "type": "object",
23871
24798
  "properties": {
@@ -23891,6 +24818,70 @@
23891
24818
  "description": "Pointer to a GitHub repository.",
23892
24819
  "title": "GitHubRepoRef"
23893
24820
  },
24821
+ "GitHubRepositoryAtPathRequest": {
24822
+ "type": "object",
24823
+ "properties": {
24824
+ "path": {
24825
+ "type": "string",
24826
+ "minLength": 1,
24827
+ "description": "Absolute path to a directory inside the git working tree to resolve."
24828
+ }
24829
+ },
24830
+ "required": [
24831
+ "path"
24832
+ ],
24833
+ "additionalProperties": false,
24834
+ "description": "Working-tree path whose owning GitHub repository should be resolved.",
24835
+ "title": "GitHubRepositoryAtPathRequest",
24836
+ "visibility": "internal"
24837
+ },
24838
+ "GitHubRepositoryAtPathResult": {
24839
+ "type": "object",
24840
+ "properties": {
24841
+ "repository": {
24842
+ "anyOf": [
24843
+ {
24844
+ "$ref": "#/definitions/GitHubRepositoryIdentity",
24845
+ "description": "Owner, name, and host of a GitHub repository, as resolved from a git remote URL."
24846
+ },
24847
+ {
24848
+ "type": "null"
24849
+ }
24850
+ ],
24851
+ "default": null,
24852
+ "description": "Resolved repository identity, or null when the selected remote resolves to no GitHub host."
24853
+ }
24854
+ },
24855
+ "additionalProperties": false,
24856
+ "description": "The GitHub repository that owns the requested path, when the selected remote (`origin`, else the first) is on a GitHub host.",
24857
+ "title": "GitHubRepositoryAtPathResult",
24858
+ "visibility": "internal"
24859
+ },
24860
+ "GitHubRepositoryIdentity": {
24861
+ "type": "object",
24862
+ "properties": {
24863
+ "owner": {
24864
+ "type": "string",
24865
+ "description": "Repository owner login (user or organization)."
24866
+ },
24867
+ "name": {
24868
+ "type": "string",
24869
+ "description": "Repository name, without the owner prefix or the `.git` suffix."
24870
+ },
24871
+ "host": {
24872
+ "type": "string",
24873
+ "description": "Host the remote points at, for example `github.com` or a GitHub Enterprise hostname."
24874
+ }
24875
+ },
24876
+ "required": [
24877
+ "owner",
24878
+ "name",
24879
+ "host"
24880
+ ],
24881
+ "additionalProperties": false,
24882
+ "description": "Owner, name, and host of a GitHub repository, as resolved from a git remote URL.",
24883
+ "title": "GitHubRepositoryIdentity"
24884
+ },
23894
24885
  "GitHubTelemetryClientInfo": {
23895
24886
  "type": "object",
23896
24887
  "properties": {
@@ -24135,6 +25126,75 @@
24135
25126
  "title": "GitHubTokenAcquireResult",
24136
25127
  "stability": "experimental"
24137
25128
  },
25129
+ "GitRemoteRepository": {
25130
+ "type": "object",
25131
+ "properties": {
25132
+ "owner": {
25133
+ "type": "string",
25134
+ "description": "Account or organization owning the repository."
25135
+ },
25136
+ "name": {
25137
+ "type": "string",
25138
+ "description": "Repository name, without the owner."
25139
+ },
25140
+ "host": {
25141
+ "type": "string",
25142
+ "description": "GitHub host serving the repository, which is not `github.com` for a GitHub Enterprise remote."
25143
+ },
25144
+ "remoteName": {
25145
+ "type": "string",
25146
+ "description": "Name of the first remote that produced this distinct repository entry, such as `origin` or `upstream`."
25147
+ }
25148
+ },
25149
+ "required": [
25150
+ "owner",
25151
+ "name",
25152
+ "host",
25153
+ "remoteName"
25154
+ ],
25155
+ "additionalProperties": false,
25156
+ "description": "A GitHub repository one of a working tree's remotes points at.",
25157
+ "title": "GitRemoteRepository",
25158
+ "visibility": "internal"
25159
+ },
25160
+ "GitReposFromRemotesRequest": {
25161
+ "type": "object",
25162
+ "properties": {
25163
+ "gitRoot": {
25164
+ "type": "string",
25165
+ "minLength": 1,
25166
+ "description": "Absolute path to the root of the git working tree."
25167
+ }
25168
+ },
25169
+ "required": [
25170
+ "gitRoot"
25171
+ ],
25172
+ "additionalProperties": false,
25173
+ "description": "Git working tree whose GitHub remotes should be listed.",
25174
+ "title": "GitReposFromRemotesRequest",
25175
+ "visibility": "internal"
25176
+ },
25177
+ "GitReposFromRemotesResult": {
25178
+ "type": "object",
25179
+ "properties": {
25180
+ "repositories": {
25181
+ "type": "array",
25182
+ "items": {
25183
+ "$ref": "#/definitions/GitRemoteRepository",
25184
+ "description": "A GitHub repository one of a working tree's remotes points at.",
25185
+ "visibility": "internal"
25186
+ },
25187
+ "description": "One entry per distinct GitHub repository, in the order git reports the first remote for each repository. Empty when no remote points at a GitHub host, which a caller should read as `not connected to GitHub`. Failing to read the remotes is an error, not an empty list."
25188
+ }
25189
+ },
25190
+ "required": [
25191
+ "repositories"
25192
+ ],
25193
+ "additionalProperties": false,
25194
+ "description": "The GitHub repositories a working tree's remotes point at.",
25195
+ "title": "GitReposFromRemotesResult",
25196
+ "visibility": "internal"
25197
+ },
24138
25198
  "HandlePendingToolCallRequest": {
24139
25199
  "type": "object",
24140
25200
  "properties": {
@@ -42997,6 +44057,27 @@
42997
44057
  "description": "A single host-driven completion. Accepting an item replaces `[rangeStart, rangeEnd)` (UTF-16 code units) in the composer with `insertText`; when the range is absent, the active token around the cursor is replaced.",
42998
44058
  "title": "SessionCompletionItem"
42999
44059
  },
44060
+ "SessionConnectedIdeInfo": {
44061
+ "type": "object",
44062
+ "properties": {
44063
+ "ideName": {
44064
+ "type": "string",
44065
+ "description": "Display name of the connected IDE, for example `VS Code`."
44066
+ },
44067
+ "workspaceFolder": {
44068
+ "type": "string",
44069
+ "description": "Absolute path of the workspace folder the IDE has open."
44070
+ }
44071
+ },
44072
+ "required": [
44073
+ "ideName",
44074
+ "workspaceFolder"
44075
+ ],
44076
+ "additionalProperties": false,
44077
+ "description": "The IDE a host is connected to, as reported to the session.",
44078
+ "title": "SessionConnectedIdeInfo",
44079
+ "stability": "experimental"
44080
+ },
43000
44081
  "SessionContext": {
43001
44082
  "type": "object",
43002
44083
  "properties": {
@@ -44586,6 +45667,27 @@
44586
45667
  "description": "Managed settings an SDK host may inject at session startup. Only permissions are accepted in this initial contract.",
44587
45668
  "title": "SessionManagedSettings"
44588
45669
  },
45670
+ "SessionMcpSetConnectedIdeInfoParams": {
45671
+ "type": "object",
45672
+ "properties": {
45673
+ "ide": {
45674
+ "anyOf": [
45675
+ {
45676
+ "$ref": "#/definitions/SessionConnectedIdeInfo",
45677
+ "description": "The IDE a host is connected to, as reported to the session."
45678
+ },
45679
+ {
45680
+ "type": "null"
45681
+ }
45682
+ ],
45683
+ "description": "The connected IDE. Null or omitted clears the recorded IDE, which is how a host reports that it is disconnected."
45684
+ }
45685
+ },
45686
+ "additionalProperties": false,
45687
+ "description": "Records which IDE the host is connected to, or clears it.",
45688
+ "title": "SessionMcpSetConnectedIdeInfoParams",
45689
+ "stability": "experimental"
45690
+ },
44589
45691
  "SessionMetadataSnapshot": {
44590
45692
  "type": "object",
44591
45693
  "properties": {
@@ -45638,6 +46740,54 @@
45638
46740
  "description": "Closes a session: emits shutdown, flushes pending events to disk, releases the in-use lock, disposes the active session. Idempotent: succeeds even if the session is not currently active.",
45639
46741
  "title": "SessionsCloseResult"
45640
46742
  },
46743
+ "SessionsCreateWorkspaceRequest": {
46744
+ "type": "object",
46745
+ "properties": {
46746
+ "sessionId": {
46747
+ "type": "string",
46748
+ "description": "Session ID the workspace record belongs to"
46749
+ },
46750
+ "sessionStatePath": {
46751
+ "type": "string",
46752
+ "description": "Directory the session's state is written under when no session filesystem provider is configured. Ignored when a provider is configured; the provider's session state path is used instead."
46753
+ },
46754
+ "convention": {
46755
+ "type": "string",
46756
+ "description": "`windows` (any letter case) selects Windows path rules. Any other value selects POSIX path rules."
46757
+ },
46758
+ "context": {
46759
+ "$ref": "#/definitions/SessionWorkingDirectoryContextWithClient",
46760
+ "description": "Starting working-directory context. The record keeps `cwd`, `gitRoot`, `repository`, `hostType`, `branch`, and `clientName`. Other fields, including `repositoryHost`, `headCommit`, and `baseCommit`, are ignored. `hostType` must be `github` or `ado`."
46761
+ },
46762
+ "name": {
46763
+ "type": "string",
46764
+ "description": "User-supplied display name for the workspace"
46765
+ }
46766
+ },
46767
+ "required": [
46768
+ "sessionId",
46769
+ "sessionStatePath",
46770
+ "convention"
46771
+ ],
46772
+ "additionalProperties": false,
46773
+ "description": "Identity, state location and starting context for a workspace record.",
46774
+ "title": "SessionsCreateWorkspaceRequest"
46775
+ },
46776
+ "SessionsCreateWorkspaceResult": {
46777
+ "type": "object",
46778
+ "properties": {
46779
+ "workspaceJson": {
46780
+ "type": "string",
46781
+ "description": "The created workspace record, as JSON"
46782
+ }
46783
+ },
46784
+ "required": [
46785
+ "workspaceJson"
46786
+ ],
46787
+ "additionalProperties": false,
46788
+ "description": "The workspace record that was written.",
46789
+ "title": "SessionsCreateWorkspaceResult"
46790
+ },
45641
46791
  "SessionsDeleteRequest": {
45642
46792
  "type": "object",
45643
46793
  "properties": {
@@ -46389,6 +47539,38 @@
46389
47539
  "description": "Active session ID whose deferred repo-level hooks should be loaded.",
46390
47540
  "title": "SessionsLoadDeferredRepoHooksRequest"
46391
47541
  },
47542
+ "SessionsLoadWorkspaceRequest": {
47543
+ "type": "object",
47544
+ "properties": {
47545
+ "sessionsHome": {
47546
+ "type": "string",
47547
+ "description": "Root directory every session's state directory sits under"
47548
+ },
47549
+ "sessionId": {
47550
+ "type": "string",
47551
+ "description": "Session ID naming the state directory under the sessions home. Rejected when it is absolute or contains a parent component, so it cannot escape the sessions home."
47552
+ }
47553
+ },
47554
+ "required": [
47555
+ "sessionsHome",
47556
+ "sessionId"
47557
+ ],
47558
+ "additionalProperties": false,
47559
+ "description": "Where the session's state lives, as a root directory and the session ID under it.",
47560
+ "title": "SessionsLoadWorkspaceRequest"
47561
+ },
47562
+ "SessionsLoadWorkspaceResult": {
47563
+ "type": "object",
47564
+ "properties": {
47565
+ "workspaceJson": {
47566
+ "type": "string",
47567
+ "description": "The workspace record, as JSON. Omitted when the record does not exist."
47568
+ }
47569
+ },
47570
+ "additionalProperties": false,
47571
+ "description": "The workspace record on disk, omitted when the session has none.",
47572
+ "title": "SessionsLoadWorkspaceResult"
47573
+ },
46392
47574
  "SessionsOpenAttach": {
46393
47575
  "type": "object",
46394
47576
  "properties": {
@@ -46934,6 +48116,38 @@
46934
48116
  "description": "Parameters for atomically rebinding the remote-control singleton.",
46935
48117
  "title": "SessionsTransferRemoteControlRequest"
46936
48118
  },
48119
+ "SessionsUpdateWorkspaceFieldsRequest": {
48120
+ "type": "object",
48121
+ "properties": {
48122
+ "sessionsHome": {
48123
+ "type": "string",
48124
+ "description": "Root directory every session's state directory sits under"
48125
+ },
48126
+ "sessionId": {
48127
+ "type": "string",
48128
+ "description": "Session ID naming the state directory under the sessions home. Rejected when it is absolute or contains a parent component, so it cannot escape the sessions home."
48129
+ },
48130
+ "fieldsJson": {
48131
+ "type": "string",
48132
+ "description": "Workspace-schema fields to merge into the record, as a JSON object. Fields the object omits keep their stored values, except stored keys outside the schema are not preserved and a stored `fork_count` is never replaced."
48133
+ }
48134
+ },
48135
+ "required": [
48136
+ "sessionsHome",
48137
+ "sessionId",
48138
+ "fieldsJson"
48139
+ ],
48140
+ "additionalProperties": false,
48141
+ "description": "Where the session's state lives, plus workspace-schema fields to merge into its workspace record. Stored keys outside the schema are not preserved, and a stored `fork_count` is never replaced.",
48142
+ "title": "SessionsUpdateWorkspaceFieldsRequest"
48143
+ },
48144
+ "SessionsUpdateWorkspaceFieldsResult": {
48145
+ "type": "object",
48146
+ "properties": {},
48147
+ "additionalProperties": false,
48148
+ "description": "The merge completed. The record carries the supplied workspace-schema fields, but a stored `fork_count` stays.",
48149
+ "title": "SessionsUpdateWorkspaceFieldsResult"
48150
+ },
46937
48151
  "SessionTelemetryEngagement": {
46938
48152
  "type": "object",
46939
48153
  "properties": {
@@ -47355,6 +48569,53 @@
47355
48569
  "ado": "The working directory repository is hosted on Azure DevOps."
47356
48570
  }
47357
48571
  },
48572
+ "SessionWorkingDirectoryContextWithClient": {
48573
+ "type": "object",
48574
+ "properties": {
48575
+ "cwd": {
48576
+ "type": "string",
48577
+ "description": "Current working directory path"
48578
+ },
48579
+ "gitRoot": {
48580
+ "type": "string",
48581
+ "description": "Root directory of the git repository"
48582
+ },
48583
+ "repository": {
48584
+ "type": "string",
48585
+ "description": "Repository identifier derived from the git remote URL"
48586
+ },
48587
+ "hostType": {
48588
+ "type": "string",
48589
+ "description": "Hosting platform type of the repository"
48590
+ },
48591
+ "branch": {
48592
+ "type": "string",
48593
+ "description": "Current git branch name"
48594
+ },
48595
+ "repositoryHost": {
48596
+ "type": "string",
48597
+ "description": "Raw host string from the git remote URL"
48598
+ },
48599
+ "headCommit": {
48600
+ "type": "string",
48601
+ "description": "Head commit of the current git branch"
48602
+ },
48603
+ "baseCommit": {
48604
+ "type": "string",
48605
+ "description": "Merge-base commit SHA"
48606
+ },
48607
+ "clientName": {
48608
+ "type": "string",
48609
+ "description": "Name of the client that created the session"
48610
+ }
48611
+ },
48612
+ "required": [
48613
+ "cwd"
48614
+ ],
48615
+ "additionalProperties": false,
48616
+ "description": "A working-directory context together with the client that produced it.",
48617
+ "title": "SessionWorkingDirectoryContextWithClient"
48618
+ },
47358
48619
  "SettableAuthInfo": {
47359
48620
  "anyOf": [
47360
48621
  {
@@ -49013,7 +50274,7 @@
49013
50274
  "description"
49014
50275
  ],
49015
50276
  "additionalProperties": false,
49016
- "description": "Catalog-only metadata for one SDK-provided skill. The complete SKILL.md is fetched separately and lazily.",
50277
+ "description": "Authoritative catalog metadata for one SDK-provided skill. The skill's SKILL.md text is fetched separately and lazily.",
49017
50278
  "title": "SkillProviderDescriptor"
49018
50279
  },
49019
50280
  "SkillProviderListResult": {
@@ -49023,7 +50284,7 @@
49023
50284
  "type": "array",
49024
50285
  "items": {
49025
50286
  "$ref": "#/definitions/SkillProviderDescriptor",
49026
- "description": "Catalog-only metadata for one SDK-provided skill. The complete SKILL.md is fetched separately and lazily."
50287
+ "description": "Authoritative catalog metadata for one SDK-provided skill. The skill's SKILL.md text is fetched separately and lazily."
49027
50288
  },
49028
50289
  "maxItems": 1024,
49029
50290
  "description": "Skill descriptors in provider order. Invocation names must be unique under case-insensitive comparison."
@@ -49058,15 +50319,18 @@
49058
50319
  "type": "object",
49059
50320
  "properties": {
49060
50321
  "markdown": {
49061
- "type": "string",
49062
- "description": "Complete SKILL.md text. The runtime enforces a 1 MiB UTF-8 byte limit."
50322
+ "type": [
50323
+ "string",
50324
+ "null"
50325
+ ],
50326
+ "description": "SKILL.md text, with or without YAML frontmatter, or null when the provider has no skill with the requested name. The runtime enforces a 1 MiB UTF-8 byte limit."
49063
50327
  }
49064
50328
  },
49065
50329
  "required": [
49066
50330
  "markdown"
49067
50331
  ],
49068
50332
  "additionalProperties": false,
49069
- "description": "Complete text-only SKILL.md content returned by an SDK session's skill provider. Related files and assets are not supported.",
50333
+ "description": "Text-only SKILL.md content returned by an SDK session's skill provider. YAML frontmatter is optional: fields it omits come from the catalog descriptor, fields it declares must match the descriptor, and `allowed-tools` is read only from frontmatter. Related files and assets are not supported.",
49070
50334
  "title": "SkillProviderReadResult",
49071
50335
  "visibility": "internal"
49072
50336
  },