@github/copilot-sdk 1.0.29-preview.0 → 1.0.29-preview.10

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.
@@ -130,7 +130,7 @@ export type AuthEnumerateQuery = {
130
130
  */
131
131
  /** @experimental */
132
132
  export type LoginProviderKind =
133
- /** OAuth github.com sign-in via the browser (web loopback + PKCE). */
133
+ /** OAuth github.com sign-in, in the browser (web loopback + PKCE) or by device code — see the login method. */
134
134
  "githubDotCom"
135
135
  /** A GitHub Enterprise Cloud account — a GitHub account on a non-github.com host, e.g. *.ghe.com; the host is supplied interactively through the neutral input-required step. */
136
136
  | "proxima"
@@ -438,6 +438,18 @@ export type AuthEnumerateValue = {
438
438
  */
439
439
  kind: "loginAccounts";
440
440
  };
441
+ /**
442
+ * How an interactive GitHub login is authorized.
443
+ *
444
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
445
+ * via the `definition` "AuthLoginMethod".
446
+ */
447
+ /** @experimental */
448
+ export type AuthLoginMethod =
449
+ /** Browser authorization with a loopback callback; the flow surfaces an `open-url` step. */
450
+ "web"
451
+ /** OAuth device authorization; the flow surfaces a `device-code` step with a one-time code, for terminals whose browser cannot reach a loopback callback. */
452
+ | "device-code";
441
453
  /**
442
454
  * How an interactive provider login should choose its base identity.
443
455
  *
@@ -451,7 +463,7 @@ export type AuthLoginMode =
451
463
  /** Explicitly ask the provider to present its account-selection UI instead of serving from a retained identity. */
452
464
  | "selectAccount";
453
465
  /**
454
- * One step in an interactive login flow. The consumer acts on the step and calls advance to proceed. Browser-open is encoded as two distinct steps by design: `open-url` is CONSUMER-driven (the provider surfaces the authorize URL and the consumer opens it — github.com/GHEC web), while `needs-interaction` is PROVIDER-driven (the provider opens the browser or broker UI itself and does not surface a URL — Entra).
466
+ * One step in an interactive login flow. The consumer acts on the step and calls advance to proceed. Browser-open is encoded as two distinct steps by design: `open-url` is CONSUMER-driven (the provider surfaces the authorize URL and the consumer opens it — github.com/GHEC web), while `needs-interaction` is PROVIDER-driven (the provider opens the browser or broker UI itself and does not surface a URL — Entra). A device-code flow surfaces its one-time code as `device-code`; the consumer shows the code, may open the verification URI, and calls advance, which resolves once the user has authorized the device.
455
467
  *
456
468
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
457
469
  * via the `definition` "AuthLoginStep".
@@ -503,6 +515,27 @@ export type AuthLoginStep = {
503
515
  * Login flow step variant discriminator.
504
516
  */
505
517
  kind: "error";
518
+ } | {
519
+ /**
520
+ * One-time code the user enters at the verification URI.
521
+ */
522
+ userCode: string;
523
+ /**
524
+ * Page where the user enters the one-time code (consumer-driven browser-open).
525
+ */
526
+ verificationUri: string;
527
+ /**
528
+ * Seconds until the one-time code expires, measured from when this step was produced. Consumers can show a countdown or pick their own timeout instead of blocking until the provider rejects the code.
529
+ */
530
+ expiresIn: number;
531
+ /**
532
+ * Minimum seconds between authorization polls required by the provider. The runtime performs the polling itself for the duration of the single `advance` call, so this is informational (for example to drive a progress indicator); repeating `advance` is rejected as already advancing.
533
+ */
534
+ interval: number;
535
+ /**
536
+ * Login flow step variant discriminator.
537
+ */
538
+ kind: "device-code";
506
539
  };
507
540
  /**
508
541
  * Disposition of a login attempt, including pending user decisions.
@@ -1081,6 +1114,8 @@ export type CatalogCapability =
1081
1114
  | "catalog-search-credential-required"
1082
1115
  /** Captures the exact existing native session, account, host and connection for authenticated catalogue search, selection and planning. Requires catalog-search-credential-required; does not grant installation or create a session. */
1083
1116
  | "catalog-search-session-bound"
1117
+ /** Understands initial-page official-product recommendations for a full task and product with fixed pageSize 10. Requires session-bound, credential-required catalogue support. No anonymous retry, broad-search fallback or continuation. Authentication uses the selected GitHub.com user credential; successful capability negotiation does not establish service acceptance. */
1118
+ | "catalog-recommend"
1084
1119
  /** Understands effect-free preparation, exact human-confirmed apply and owned removal for fully resolved personal remote MCP choices without supplied inputs or configured secrets. Advertised only when the real producer and lower owned admission are linked; requires original connection and bound session authority for new work. */
1085
1120
  | "mcp-confirmed-remote-installation"
1086
1121
  /** Extends mcp-confirmed-remote-installation to declared non-secret header and URL values and receipt-owned header secrets for personal remote MCP choices. Requires mcp-confirmed-remote-installation and bound session authority. Secret values are written only to the reviewed backend after confirmation and are never returned; package and stdio choices remain unsupported. Advertised only when owned secret effects and owned secret activation are linked. */
@@ -1211,6 +1246,8 @@ export type CatalogInvalidRequestField =
1211
1246
  "policySessionId"
1212
1247
  /** The search query was empty or longer than permitted. */
1213
1248
  | "query"
1249
+ /** The requested recommendation product was missing, blank or longer than permitted. */
1250
+ | "product"
1214
1251
  /** The requested result count fell outside its permitted range. */
1215
1252
  | "limit"
1216
1253
  /** The requested candidate kinds were empty or contained a duplicate. */
@@ -1714,7 +1751,7 @@ export type CatalogSearchTotalCountRelation =
1714
1751
  /** No exact/full-query or lower-bound guarantee is available. */
1715
1752
  "unknown";
1716
1753
  /**
1717
- * Outcome of a catalog.search call: either bounded inert candidates, or one typed refusal. Never a partial success.
1754
+ * Outcome of catalog.search or catalog.recommend: either bounded inert candidates, or one typed refusal. Never a partial success.
1718
1755
  *
1719
1756
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
1720
1757
  * via the `definition` "CatalogSearchResult".
@@ -5701,6 +5738,18 @@ export type SessionLimitPredictionUnavailableReason =
5701
5738
  */
5702
5739
  /** @experimental */
5703
5740
  export type SessionListEntry = LocalSessionMetadataValue | RemoteSessionMetadataValue;
5741
+ /**
5742
+ * Peer boundary evaluated in the process hosting the native session.
5743
+ *
5744
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5745
+ * via the `definition` "SessionManagementScope".
5746
+ */
5747
+ /** @experimental */
5748
+ export type SessionManagementScope =
5749
+ /** Eligible local peers sharing the resolved configuration directory. */
5750
+ "all"
5751
+ /** Only peers hosted in this native runtime process. */
5752
+ | "in-process";
5704
5753
  /**
5705
5754
  * Public-facing workspace metadata for this session, or null if the session has no associated workspace. Excludes runtime-internal fields (GitHub IDs, summary count, internal flags).
5706
5755
  *
@@ -5874,7 +5923,7 @@ export type SessionsOpenProgressStep =
5874
5923
  "load-session"
5875
5924
  /** Validating that the local repository matches the remote session's repository. */
5876
5925
  | "validate-repo"
5877
- /** Checking the local working tree for uncommitted changes that would block the handoff. */
5926
+ /** Checking the local working tree for uncommitted changes, which stay in place and are carried onto the checked-out branch. */
5878
5927
  | "check-changes"
5879
5928
  /** Checking out the branch associated with the remote session in the local working tree. */
5880
5929
  | "checkout-branch"
@@ -8232,6 +8281,10 @@ export interface AgentGetCurrentResult {
8232
8281
  */
8233
8282
  /** @experimental */
8234
8283
  export interface AgentInfo {
8284
+ /**
8285
+ * Opaque identity of the plugin owning this agent. Matches plugins.list().plugins[].id on the same runtime host. Compare the complete value without parsing it. Omitted for non-plugin agents.
8286
+ */
8287
+ pluginId?: string;
8235
8288
  /**
8236
8289
  * Name of the agent. Use `id` as the stable selection identifier.
8237
8290
  */
@@ -8716,7 +8769,7 @@ export interface AgentsDiscoverRequest {
8716
8769
  */
8717
8770
  agentDirectories?: string[];
8718
8771
  /**
8719
- * Optional list of project directory paths to scan for project-scoped agents. When omitted or empty, only user/plugin/remote-independent agents are returned (no project scan).
8772
+ * Optional list of project directory paths to scan for project-scoped agents. When omitted or empty, no project is scanned: user-level and globally enabled plugin agents are still returned, but agents of a plugin enabled only in a repository's settings are not.
8720
8773
  */
8721
8774
  projectPaths?: string[];
8722
8775
  /**
@@ -8955,6 +9008,10 @@ export interface AuthLoginBeginRequest {
8955
9008
  * The provider kind to sign in with.
8956
9009
  */
8957
9010
  kind: LoginProviderKind;
9011
+ /**
9012
+ * How to authorize: `web` (default) or `device-code`. Device code is offered for `githubDotCom` and `proxima`; `proxima` still asks for its host through `input-required` first.
9013
+ */
9014
+ method?: AuthLoginMethod;
8958
9015
  /**
8959
9016
  * Neutral identity-selection intent. Omitted is equivalent to default.
8960
9017
  */
@@ -9170,6 +9227,19 @@ export interface AutopilotObjectiveState {
9170
9227
  */
9171
9228
  creditLimit?: AutopilotObjectiveCreditLimit;
9172
9229
  }
9230
+ /**
9231
+ * Client-resolved preference for retaining autopilot mode after objective completion or pause.
9232
+ *
9233
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
9234
+ * via the `definition` "AutopilotObjectiveSetStayInAutopilotRequest".
9235
+ */
9236
+ /** @experimental */
9237
+ export interface AutopilotObjectiveSetStayInAutopilotRequest {
9238
+ /**
9239
+ * Whether an objective's requested return to interactive mode is suppressed.
9240
+ */
9241
+ value: boolean;
9242
+ }
9173
9243
  /** @experimental */
9174
9244
  export interface AutopilotOptions {
9175
9245
  /**
@@ -10264,6 +10334,23 @@ export interface CanvasProviderUnregisterRequest {
10264
10334
  */
10265
10335
  connectionId: string;
10266
10336
  }
10337
+ /**
10338
+ * Closes a canvas through its original owned or attached session namespace.
10339
+ *
10340
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
10341
+ * via the `definition` "CanvasSourceCloseRequest".
10342
+ */
10343
+ /** @experimental */
10344
+ export interface CanvasSourceCloseRequest {
10345
+ /**
10346
+ * Open canvas instance identifier
10347
+ */
10348
+ instanceId: string;
10349
+ /**
10350
+ * Exact authenticated local attachment identifier. Omit for the SDK connection's owned session.
10351
+ */
10352
+ attachId?: number | null;
10353
+ }
10267
10354
  /**
10268
10355
  * Options scoped to the built-in CAPI (Copilot API) provider.
10269
10356
  *
@@ -11484,6 +11571,31 @@ export interface CatalogPolicyRejectedError {
11484
11571
  */
11485
11572
  message: string;
11486
11573
  }
11574
+ /**
11575
+ * Initial-page official-product recommendations for a complete task. The runtime fixes recommendationPolicy to official-product and pageSize to 10; callers cannot override the policy, request pagination or fall back to search.
11576
+ *
11577
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
11578
+ * via the `definition` "CatalogRecommendRequest".
11579
+ */
11580
+ /** @experimental */
11581
+ export interface CatalogRecommendRequest {
11582
+ /**
11583
+ * Required contract, including catalog-recommend, catalog-search-session-bound and catalog-search-credential-required.
11584
+ */
11585
+ contract: CatalogClientContract;
11586
+ /**
11587
+ * Existing attached local session whose account, host and connection own the candidate references. Never creates or resumes a session.
11588
+ */
11589
+ policySessionId: string;
11590
+ /**
11591
+ * Full original task, including action, account, output and host requirements. Forwarded without trimming or rewriting and excluded from telemetry.
11592
+ */
11593
+ query: string;
11594
+ /**
11595
+ * Requested product. Agent Finder resolves aliases and applies its versioned official-product approvals before limiting results.
11596
+ */
11597
+ product: string;
11598
+ }
11487
11599
  /**
11488
11600
  * A computed Skill install plan. Nothing has been applied.
11489
11601
  *
@@ -13756,6 +13868,10 @@ export interface DiscoveredExtension {
13756
13868
  */
13757
13869
  /** @experimental */
13758
13870
  export interface DiscoveredExtensionPlugin {
13871
+ /**
13872
+ * Opaque identity of the owning plugin. Matches plugins.list().plugins[].id on the same runtime host. Compare the complete value without parsing it. May be absent on older runtimes.
13873
+ */
13874
+ id?: string;
13759
13875
  /**
13760
13876
  * Installed plugin name
13761
13877
  */
@@ -13840,6 +13956,14 @@ export interface DiscoveredHook {
13840
13956
  * Durable content hash used by hook enablement. Identical actions may intentionally share this key. Omitted when changing the user's disabled-hooks setting cannot change the action's current server-discovered state, including managed-policy hooks, session-start prompt actions, actions suppressed by disable-all settings, and projectless plugin actions that require project-directory expansion.
13841
13957
  */
13842
13958
  disableKey?: string;
13959
+ /**
13960
+ * File URI of the document defining this action on the selected runtime host, not the command or script it executes. Inline hooks point to their containing settings document or plugin manifest. Omitted for sources without a backing file, such as registry policy.
13961
+ */
13962
+ definitionFileUri?: string;
13963
+ /**
13964
+ * Opaque identity of the plugin owning this action. Matches plugins.list().plugins[].id and MCP effectiveSource.plugin.id on the same runtime host. Compare the complete value without parsing it. Omitted for non-plugin hooks.
13965
+ */
13966
+ pluginId?: string;
13843
13967
  }
13844
13968
  /**
13845
13969
  * MCP server discovered by `mcp.discover`, with config source, optional plugin source, transport type, and enabled state.
@@ -15065,6 +15189,40 @@ export interface FolderTrustCheckResult {
15065
15189
  */
15066
15190
  trusted: boolean;
15067
15191
  }
15192
+ /**
15193
+ * A pre-resolved address for a GitHub request.
15194
+ *
15195
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
15196
+ * via the `definition` "GitHubFetchPinnedAddress".
15197
+ */
15198
+ /** @experimental */
15199
+ export interface GitHubFetchPinnedAddress {
15200
+ /**
15201
+ * Address the network transport must use.
15202
+ */
15203
+ address: string;
15204
+ }
15205
+ /**
15206
+ * Proxy environment for one authenticated GitHub request.
15207
+ *
15208
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
15209
+ * via the `definition` "GitHubFetchProxyEnvironment".
15210
+ */
15211
+ /** @experimental */
15212
+ export interface GitHubFetchProxyEnvironment {
15213
+ /**
15214
+ * Proxy for HTTP requests.
15215
+ */
15216
+ httpProxy?: string;
15217
+ /**
15218
+ * Proxy for HTTPS requests.
15219
+ */
15220
+ httpsProxy?: string;
15221
+ /**
15222
+ * Hosts that bypass the proxy.
15223
+ */
15224
+ noProxy?: string;
15225
+ }
15068
15226
  /**
15069
15227
  * Owner, name, and host of a GitHub repository, as resolved from a git remote URL.
15070
15228
  *
@@ -15708,6 +15866,39 @@ export interface HistorySkippedFileRestore {
15708
15866
  */
15709
15867
  reason: HistoryFileRestoreSkipReason;
15710
15868
  }
15869
+ /**
15870
+ * Compaction settings for this session. Each call replaces the previous settings: an omitted field returns to its default. Settings live in memory until the session ends; re-apply them after resuming a session in a new process.
15871
+ *
15872
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
15873
+ * via the `definition` "HistorySetCompactionConfigRequest".
15874
+ */
15875
+ /** @experimental */
15876
+ export interface HistorySetCompactionConfigRequest {
15877
+ /**
15878
+ * Model that summarizes this session's conversation when it compacts,
15879
+ * instead of the session's own model. Applies only when both are Copilot
15880
+ * models the session may use; for a BYOK or provider session, or a model
15881
+ * the session's catalog or allowed-model policy rejects, compaction
15882
+ * summarizes on the session's model. Takes precedence over any runtime
15883
+ * experiment that picks a compaction model. Blank values are ignored.
15884
+ */
15885
+ model?: string;
15886
+ /**
15887
+ * Summarization instruction sent as the final user message of a
15888
+ * compaction request, replacing the built-in prompt entirely; the caller
15889
+ * owns the summary's format. `/compact` focus instructions and a note that
15890
+ * tools are unavailable are appended to it. Blank values are ignored.
15891
+ */
15892
+ prompt?: string;
15893
+ /**
15894
+ * Reasoning effort for compaction requests: one of `none`, `minimal`,
15895
+ * `low`, `medium`, `high`, `xhigh` or `max`. Applies when the model that
15896
+ * summarizes supports it; otherwise the request keeps its usual effort.
15897
+ * Takes precedence over any runtime experiment that adjusts compaction
15898
+ * reasoning effort. Any other value is rejected.
15899
+ */
15900
+ reasoningEffort?: string;
15901
+ }
15711
15902
  /**
15712
15903
  * Markdown summary of the conversation context (empty when not available).
15713
15904
  *
@@ -16960,6 +17151,10 @@ export interface InstalledPluginInfo {
16960
17151
  * Whether the plugin is currently enabled for new sessions
16961
17152
  */
16962
17153
  enabled: boolean;
17154
+ /**
17155
+ * Absolute local directory containing this plugin's installed content, including disabled installations. Absent when the runtime has no resolved content directory. This is the plugin root, not its marketplace directory; clients must not forward it back as an additional plugin.
17156
+ */
17157
+ rootPath?: string;
16963
17158
  /**
16964
17159
  * 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".
16965
17160
  */
@@ -16992,6 +17187,10 @@ export interface InstalledPluginInfo {
16992
17187
  * HTTPS URL of the plugin's icon on raw.githubusercontent.com, retained from the catalogue entry it was installed from. Untrusted external content: load it without credentials. Present only for a direct install pinned to one GitHub commit whose catalogue entry had an icon.
16993
17188
  */
16994
17189
  iconUrl?: string;
17190
+ /**
17191
+ * Opaque plugin identity in this runtime's inventory. Matches MCP effectiveSource.plugin.id for the same plugin. Stable across enablement changes, updates and restarts while the installation source is unchanged; not a cross-host identifier or a mutation argument. Compare the complete value without parsing it. May be absent on older runtimes.
17192
+ */
17193
+ id?: string;
16995
17194
  }
16996
17195
  /**
16997
17196
  * The GitHub repository and commit an installed plugin is pinned to.
@@ -17115,6 +17314,10 @@ export interface InstructionsGetSourcesResult {
17115
17314
  */
17116
17315
  /** @experimental */
17117
17316
  export interface InstructionSource {
17317
+ /**
17318
+ * Opaque identity of the plugin owning this instruction source. Matches plugins.list().plugins[].id on the same runtime host. Compare the complete value without parsing it. Omitted for non-plugin sources.
17319
+ */
17320
+ pluginId?: string;
17118
17321
  /**
17119
17322
  * Unique identifier for this source (used for toggling)
17120
17323
  */
@@ -17503,7 +17706,7 @@ export interface LocalSessionMetadataValue {
17503
17706
  */
17504
17707
  name?: string;
17505
17708
  /**
17506
- * Runtime client name that created/last resumed this session
17709
+ * Runtime client name that created this session
17507
17710
  */
17508
17711
  clientName?: string;
17509
17712
  /**
@@ -17522,6 +17725,10 @@ export interface LocalSessionMetadataValue {
17522
17725
  * GitHub task ID, when this local session is bound to one. Only present for local sessions exported to remote control.
17523
17726
  */
17524
17727
  mcTaskId?: string;
17728
+ /**
17729
+ * Runtime client name that most recently ran this session: the client that created it, or a client that resumed it and then ran it. Resuming a session only to observe it does not change this. Omitted when unknown, such as for sessions persisted before this field existed.
17730
+ */
17731
+ lastClientName?: string;
17525
17732
  }
17526
17733
  /**
17527
17734
  * Pre-resolved working-directory context for session startup.
@@ -17740,6 +17947,43 @@ export interface ManagedPluginRetryEntry {
17740
17947
  */
17741
17948
  error?: string;
17742
17949
  }
17950
+ /**
17951
+ * An opted-in local session, reported by its live owner.
17952
+ *
17953
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
17954
+ * via the `definition` "ManagedSessionInfo".
17955
+ */
17956
+ /** @experimental */
17957
+ export interface ManagedSessionInfo {
17958
+ /**
17959
+ * Live peer's session identifier.
17960
+ */
17961
+ sessionId: string;
17962
+ /**
17963
+ * Human-readable peer name.
17964
+ */
17965
+ name: string;
17966
+ /**
17967
+ * Peer's current working directory.
17968
+ */
17969
+ cwd: string;
17970
+ /**
17971
+ * Peer's local session-state directory containing events.jsonl, when known.
17972
+ */
17973
+ sessionStatePath?: string;
17974
+ /**
17975
+ * Either idle or busy. A busy session may still accept messages.
17976
+ */
17977
+ state: string;
17978
+ /**
17979
+ * Peer's selected model, when known.
17980
+ */
17981
+ model?: string;
17982
+ /**
17983
+ * The session that created this root through session management, if any.
17984
+ */
17985
+ parentSessionId?: string;
17986
+ }
17743
17987
  /**
17744
17988
  * Lock state and provenance of one managed setting.
17745
17989
  *
@@ -18123,6 +18367,10 @@ export interface MarketplaceInfo {
18123
18367
  * Whether the managed marketplace currently resolved into the runtime marketplace registry. Set to false when the desired managed entry is retained for governance visibility after loading or reconciliation failed.
18124
18368
  */
18125
18369
  available?: boolean;
18370
+ /**
18371
+ * True when the signed-in account's GitHub Team provides this marketplace and no user, repository, or default entry of the same name exists. Team marketplaces are not persisted, so they cannot be removed.
18372
+ */
18373
+ team?: boolean;
18126
18374
  }
18127
18375
  /**
18128
18376
  * All registered marketplaces, including built-in defaults.
@@ -18269,6 +18517,12 @@ export interface McpAppsCallToolRequest {
18269
18517
  arguments?: {
18270
18518
  [k: string]: JsonValue | undefined;
18271
18519
  };
18520
+ /**
18521
+ * MCP tools/call request metadata, forwarded separately from tool arguments. Host-owned progress tokens and protocol metadata take precedence.
18522
+ */
18523
+ _meta?: {
18524
+ [k: string]: JsonValue | undefined;
18525
+ };
18272
18526
  /**
18273
18527
  * **Required.** Server whose ui:// view issued the request. Per SEP-1865 ('callable by the app from this server only'), the call is rejected when this differs from `serverName`, and rejected outright when missing.
18274
18528
  */
@@ -23901,6 +24155,24 @@ export interface PermissionRulesSet {
23901
24155
  */
23902
24156
  denied: PermissionRule[];
23903
24157
  }
24158
+ /**
24159
+ * Available permission modes, derived from current session policy.
24160
+ *
24161
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
24162
+ * via the `definition` "PermissionsCapabilities".
24163
+ */
24164
+ /** @experimental */
24165
+ export interface PermissionsCapabilities {
24166
+ /**
24167
+ * Whether LLM-assisted approval is enabled for this session.
24168
+ */
24169
+ assistedApproval: boolean;
24170
+ /**
24171
+ * Whether managed policy currently permits unconditional approval.
24172
+ * Stays true while managed policy is still resolving.
24173
+ */
24174
+ bypassPermissions: boolean;
24175
+ }
23904
24176
  /**
23905
24177
  * No parameters.
23906
24178
  *
@@ -24048,7 +24320,7 @@ export interface PermissionsConfigureParams {
24048
24320
  */
24049
24321
  authenticatedAuthority?: AuthenticatedAuthorityUpdate;
24050
24322
  /**
24051
- * Declares whether this connection's registered permission handler applies non-human host policy to the tools this connection registered. When true, unattended Assisted Autopilot sends permission requests for those tools to the handler before runtime Assisted Approval or unattended fallback can settle them. All other requests, including shell commands, file access, URLs, and tools registered by other connections or extensions, keep runtime settlement. Managed policy and other runtime enforcement still take precedence. Only the session's owning non-extension connection may set this field. The declaration ends when that connection detaches or the session is resumed, so hosts must reapply it after resume. Omit to leave unchanged; false clears it. Without a declaration, registered handlers are not consulted during unattended Assisted Autopilot. Remote sessions are not supported.
24323
+ * Declares whether this connection's registered permission handler applies non-human host policy to the tools and canvases this connection registered. When true, unattended Assisted Autopilot sends permission requests for those tools, and `open_canvas` and `invoke_canvas_action` requests whose target canvas this connection registered, to the handler before runtime Assisted Approval or unattended fallback can settle them. All other requests, including shell commands, file access, URLs, and tools or canvases registered by other connections or extensions, keep runtime settlement. Managed policy and other runtime enforcement still take precedence. Only the session's owning non-extension connection may set this field. The declaration ends when that connection detaches or the session is resumed, so hosts must reapply it after resume. Omit to leave unchanged; false clears it. Without a declaration, registered handlers are not consulted during unattended Assisted Autopilot. Remote sessions are not supported.
24052
24324
  */
24053
24325
  hostPolicyPermissionHandler?: boolean;
24054
24326
  }
@@ -24602,6 +24874,10 @@ export interface Plugin {
24602
24874
  * Opaque stable identity for a direct plugin source.
24603
24875
  */
24604
24876
  directSourceId?: string;
24877
+ /**
24878
+ * Absolute local directory containing this plugin's resolved content, including disabled installations. Absent when no content directory is resolved. This is the plugin root, not its marketplace directory; clients must not forward it back as an additional plugin.
24879
+ */
24880
+ rootPath?: string;
24605
24881
  /**
24606
24882
  * Absolute marketplace directory for a live plugin.
24607
24883
  */
@@ -24622,6 +24898,10 @@ export interface Plugin {
24622
24898
  * Whether this managed desired plugin has an installed or live record.
24623
24899
  */
24624
24900
  installed?: boolean;
24901
+ /**
24902
+ * Opaque plugin identity in this runtime's inventory. Matches global inventory id and MCP effectiveSource.plugin.id for the same plugin. Stable across enablement changes, updates and restarts while the source is unchanged. Session-only plugin identities are scoped to their session; not a cross-host identifier or a mutation argument. Compare the complete value without parsing it. May be absent on older runtimes.
24903
+ */
24904
+ id?: string;
24625
24905
  }
24626
24906
  /**
24627
24907
  * Applies exactly one retained verified Agent Plugin installation plan.
@@ -24709,6 +24989,10 @@ export interface PluginInstallResult {
24709
24989
  * Set when the install path is deprecated (e.g. direct repo / URL / local installs). Callers should surface this to end users.
24710
24990
  */
24711
24991
  deprecationWarning?: string;
24992
+ /**
24993
+ * Report-and-ignore warnings raised while reading the plugin's manifest, such as a field the manifest's schema does not define and the loader therefore ignored. Callers should surface these to end users: a plugin whose skills sit behind an ignored field otherwise installs, lists, and contributes nothing, with no signal to its author. Absent when the manifest raised none.
24994
+ */
24995
+ warnings?: string[];
24712
24996
  }
24713
24997
  /**
24714
24998
  * Plugins installed for the session, with their enabled state and version metadata.
@@ -24781,7 +25065,7 @@ export interface PluginsBuiltinSetRequest {
24781
25065
  /** @experimental */
24782
25066
  export interface PluginsDisableRequest {
24783
25067
  /**
24784
- * Plugin names or "plugin@marketplace" specs to disable. Unknown names are ignored. Non-marketplace direct installs cannot be disabled via this API; uninstall them instead. Plugin-owned MCP servers are stopped in active sessions immediately; other plugin contributions remain available until each session reloads plugins.
25068
+ * Plugin names, "plugin@marketplace" specs, or opaque directSourceId values from inventory to disable. Use directSourceId to distinguish same-named direct installations. Unknown targets and session-only plugin-directory mounts are ignored. Direct-install decisions persist on the installation record. Plugin-owned MCP servers are stopped in active sessions immediately; other plugin contributions remain available until each session reloads plugins.
24785
25069
  */
24786
25070
  names: string[];
24787
25071
  /**
@@ -24798,7 +25082,7 @@ export interface PluginsDisableRequest {
24798
25082
  /** @experimental */
24799
25083
  export interface PluginsEnableRequest {
24800
25084
  /**
24801
- * Plugin names or "plugin@marketplace" specs to enable. Unknown names are ignored. Non-marketplace direct installs are always enabled and cannot be toggled via this API.
25085
+ * Plugin names, "plugin@marketplace" specs, or opaque directSourceId values from inventory to enable. Use directSourceId to distinguish same-named direct installations. Unknown targets and session-only plugin-directory mounts are ignored. Direct-install decisions persist on the installation record; active sessions must reload plugins to load newly enabled contributions.
24802
25086
  */
24803
25087
  names: string[];
24804
25088
  /**
@@ -25286,6 +25570,19 @@ export interface ProviderSessionToken {
25286
25570
  */
25287
25571
  expiresAt?: string;
25288
25572
  }
25573
+ /**
25574
+ * Credential-free provider configuration status for the selected model.
25575
+ *
25576
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
25577
+ * via the `definition` "ProviderStatus".
25578
+ */
25579
+ /** @experimental */
25580
+ export interface ProviderStatus {
25581
+ /**
25582
+ * Whether the selected model uses a custom provider instead of requiring GitHub authentication.
25583
+ */
25584
+ hasCustomProvider: boolean;
25585
+ }
25289
25586
  /**
25290
25587
  * Authoritative BYOK provider and model registry snapshot to apply atomically to the session.
25291
25588
  *
@@ -27905,6 +28202,10 @@ export interface ServerInstructionSourceList {
27905
28202
  */
27906
28203
  /** @experimental */
27907
28204
  export interface ServerSkill {
28205
+ /**
28206
+ * Opaque identity of the plugin owning this skill. Matches plugins.list().plugins[].id on the same runtime host. Compare the complete value without parsing it. Omitted for non-plugin skills.
28207
+ */
28208
+ pluginId?: string;
27908
28209
  /**
27909
28210
  * Unique identifier for the skill
27910
28211
  */
@@ -29063,6 +29364,282 @@ export interface SessionManagedSettings {
29063
29364
  */
29064
29365
  permissions?: SessionManagedPermissions;
29065
29366
  }
29367
+ /**
29368
+ * Closes one live opted-in descendant without deleting its saved history or closing its children.
29369
+ *
29370
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29371
+ * via the `definition` "SessionManagementCloseRequest".
29372
+ */
29373
+ /** @experimental */
29374
+ export interface SessionManagementCloseRequest {
29375
+ /**
29376
+ * Live created descendant whose owning host should close it.
29377
+ */
29378
+ targetSessionId: string;
29379
+ }
29380
+ /**
29381
+ * Completion of the existing non-deleting close lifecycle.
29382
+ *
29383
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29384
+ * via the `definition` "SessionManagementCloseResult".
29385
+ */
29386
+ /** @experimental */
29387
+ export interface SessionManagementCloseResult {
29388
+ /**
29389
+ * True after the owning host has completed the existing session-close lifecycle.
29390
+ */
29391
+ closed: boolean;
29392
+ }
29393
+ /**
29394
+ * Updates the session's live policy without changing persistent host settings.
29395
+ *
29396
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29397
+ * via the `definition` "SessionManagementConfigureRequest".
29398
+ */
29399
+ /** @experimental */
29400
+ export interface SessionManagementConfigureRequest {
29401
+ /**
29402
+ * Expected workspace for host activation. Required when enabling an interactive CLI session.
29403
+ */
29404
+ cwd?: string;
29405
+ /**
29406
+ * Enabling resets all session management operations to enabled, then applies overrides.
29407
+ */
29408
+ enabled?: boolean;
29409
+ /**
29410
+ * Peer boundary. Preserved when the master switch changes.
29411
+ */
29412
+ scope?: SessionManagementScope;
29413
+ /**
29414
+ * Individual tool overrides, applied after the master switch.
29415
+ */
29416
+ tools?: SessionManagementToolOverrides;
29417
+ /**
29418
+ * Bind creation to this SDK connection's sessionManagement.create callback.
29419
+ */
29420
+ hasCreateHandler?: boolean;
29421
+ }
29422
+ /**
29423
+ * Per-operation overrides for an enabled session management policy.
29424
+ *
29425
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29426
+ * via the `definition` "SessionManagementToolOverrides".
29427
+ */
29428
+ /** @experimental */
29429
+ export interface SessionManagementToolOverrides {
29430
+ /**
29431
+ * Allow discovering eligible peer sessions.
29432
+ */
29433
+ list?: boolean;
29434
+ /**
29435
+ * Allow requesting an independent session from the owning host.
29436
+ */
29437
+ create?: boolean;
29438
+ /**
29439
+ * Allow delivering peer text to another eligible session.
29440
+ */
29441
+ message?: boolean;
29442
+ /**
29443
+ * Allow closing this session's live created descendants.
29444
+ */
29445
+ close?: boolean;
29446
+ }
29447
+ /**
29448
+ * Host callback. The host owns workspace records, UI, approval routing and cleanup.
29449
+ *
29450
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29451
+ * via the `definition` "SessionManagementCreateHostRequest".
29452
+ */
29453
+ /** @experimental */
29454
+ export interface SessionManagementCreateHostRequest {
29455
+ /**
29456
+ * Target session identifier
29457
+ */
29458
+ sessionId: string;
29459
+ /**
29460
+ * The originating session; the host must not escalate its permissions.
29461
+ */
29462
+ parentSessionId: string;
29463
+ /**
29464
+ * Runtime-allocated identity. The host must create a fresh session with this exact ID.
29465
+ */
29466
+ newSessionId: string;
29467
+ /**
29468
+ * The new session must use this workspace and configuration directory.
29469
+ */
29470
+ cwd: string;
29471
+ /**
29472
+ * Parent's resolved configuration directory, which the host must preserve.
29473
+ */
29474
+ configDir: string;
29475
+ /**
29476
+ * Must not be broadened by the creating host.
29477
+ */
29478
+ permissionMode: PermissionMode;
29479
+ /**
29480
+ * Effective model to apply when creating the child.
29481
+ */
29482
+ model?: string;
29483
+ /**
29484
+ * Provider owning the effective model, when specified.
29485
+ */
29486
+ providerId?: string;
29487
+ /**
29488
+ * Effective reasoning effort, when specified.
29489
+ */
29490
+ reasoningEffort?: string;
29491
+ /**
29492
+ * Effective model-supported context tier, when specified.
29493
+ */
29494
+ contextTier?: ContextTier;
29495
+ /**
29496
+ * The host must preserve the parent's current model restrictions.
29497
+ */
29498
+ allowedModels?: string[];
29499
+ /**
29500
+ * Optional short name supplied for the independent session.
29501
+ */
29502
+ name?: string;
29503
+ }
29504
+ /**
29505
+ * Requests a separate session. Omitted launch options inherit the caller's current configuration.
29506
+ *
29507
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29508
+ * via the `definition` "SessionManagementCreateRequest".
29509
+ */
29510
+ /** @experimental */
29511
+ export interface SessionManagementCreateRequest {
29512
+ /**
29513
+ * Initial task, delivered as peer text after successful creation.
29514
+ */
29515
+ prompt: string;
29516
+ /**
29517
+ * Optional short name for the independent session.
29518
+ */
29519
+ name?: string;
29520
+ /**
29521
+ * Absolute working directory. Defaults to the parent's current directory.
29522
+ */
29523
+ cwd?: string;
29524
+ /**
29525
+ * Optional model override; omission uses the parent's current model.
29526
+ */
29527
+ model?: string;
29528
+ /**
29529
+ * Optional effort supported by the selected model.
29530
+ */
29531
+ reasoningEffort?: string;
29532
+ /**
29533
+ * Uses the selected model's supported default or long-context tier, not an arbitrary token count.
29534
+ */
29535
+ contextTier?: ContextTier;
29536
+ }
29537
+ /**
29538
+ * Identifies a session owned and supervised by the creating host.
29539
+ *
29540
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29541
+ * via the `definition` "SessionManagementCreateResult".
29542
+ */
29543
+ /** @experimental */
29544
+ export interface SessionManagementCreateResult {
29545
+ /**
29546
+ * Runtime-allocated identifier of the newly created session.
29547
+ */
29548
+ sessionId: string;
29549
+ }
29550
+ /**
29551
+ * Lists opted-in local peers. The caller is omitted.
29552
+ *
29553
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29554
+ * via the `definition` "SessionManagementListRequest".
29555
+ */
29556
+ /** @experimental */
29557
+ export interface SessionManagementListRequest {
29558
+ /**
29559
+ * Optional exact working-directory filter.
29560
+ */
29561
+ cwd?: string;
29562
+ }
29563
+ /**
29564
+ * Eligible live peers reported by their owning runtimes.
29565
+ *
29566
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29567
+ * via the `definition` "SessionManagementListResult".
29568
+ */
29569
+ /** @experimental */
29570
+ export interface SessionManagementListResult {
29571
+ /**
29572
+ * Matching peers, excluding the caller.
29573
+ */
29574
+ sessions: ManagedSessionInfo[];
29575
+ }
29576
+ /**
29577
+ * Sends peer text, never human approval, to another opted-in session.
29578
+ *
29579
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29580
+ * via the `definition` "SessionManagementMessageRequest".
29581
+ */
29582
+ /** @experimental */
29583
+ export interface SessionManagementMessageRequest {
29584
+ /**
29585
+ * Eligible live peer that should receive the message.
29586
+ */
29587
+ targetSessionId: string;
29588
+ /**
29589
+ * Nonempty UTF-8 text, at most 16 KiB.
29590
+ */
29591
+ message: string;
29592
+ }
29593
+ /**
29594
+ * Acceptance is not a completed turn or a reply.
29595
+ *
29596
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29597
+ * via the `definition` "SessionManagementMessageResult".
29598
+ */
29599
+ /** @experimental */
29600
+ export interface SessionManagementMessageResult {
29601
+ /**
29602
+ * True when the destination has accepted the peer message.
29603
+ */
29604
+ accepted: boolean;
29605
+ /**
29606
+ * Destination title captured by the receiving runtime at message admission.
29607
+ */
29608
+ targetSessionName?: string;
29609
+ }
29610
+ /**
29611
+ * Opt-in policy for local session management.
29612
+ *
29613
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
29614
+ * via the `definition` "SessionManagementPolicy".
29615
+ */
29616
+ /** @experimental */
29617
+ export interface SessionManagementPolicy {
29618
+ /**
29619
+ * Master switch. Off by default.
29620
+ */
29621
+ enabled: boolean;
29622
+ /**
29623
+ * Discovery and direct access boundary. Defaults to all eligible local peers.
29624
+ */
29625
+ scope: SessionManagementScope;
29626
+ /**
29627
+ * Allow listing opted-in sessions in this configuration directory.
29628
+ */
29629
+ list: boolean;
29630
+ /**
29631
+ * Allow requesting a new session from the owning host.
29632
+ */
29633
+ create: boolean;
29634
+ /**
29635
+ * Allow sending a peer message to another opted-in session.
29636
+ */
29637
+ message: boolean;
29638
+ /**
29639
+ * Allow closing sessions created by this session or its descendants. On by default.
29640
+ */
29641
+ close: boolean;
29642
+ }
29066
29643
  /**
29067
29644
  * Records which IDE the host is connected to, or clears it.
29068
29645
  *
@@ -29938,7 +30515,7 @@ export interface SessionsOpenProgress {
29938
30515
  /** @experimental */
29939
30516
  export interface SessionPluginsDisableRequest {
29940
30517
  /**
29941
- * Plugin names or "plugin@marketplace" specs to disable. Unknown names are ignored. Non-marketplace direct installs cannot be disabled via this API; uninstall them instead. Plugin-owned MCP servers are stopped in active sessions immediately; other plugin contributions remain available until each session reloads plugins.
30518
+ * Plugin names, "plugin@marketplace" specs, or opaque directSourceId values from inventory to disable. Use directSourceId to distinguish same-named direct installations. This persists user-level enablement, not a session-only override. Unknown targets and session-only plugin-directory mounts are ignored. Plugin-owned MCP servers are stopped in active sessions immediately; other plugin contributions remain available until each session reloads plugins.
29942
30519
  */
29943
30520
  names: string[];
29944
30521
  }
@@ -29951,7 +30528,7 @@ export interface SessionPluginsDisableRequest {
29951
30528
  /** @experimental */
29952
30529
  export interface SessionPluginsEnableRequest {
29953
30530
  /**
29954
- * Plugin names or "plugin@marketplace" specs to enable. Unknown names are ignored. Non-marketplace direct installs are always enabled and cannot be toggled via this API.
30531
+ * Plugin names, "plugin@marketplace" specs, or opaque directSourceId values from inventory to enable. Use directSourceId to distinguish same-named direct installations. This persists user-level enablement, not a session-only override. Unknown targets and session-only plugin-directory mounts are ignored; active sessions must reload plugins to load newly enabled contributions.
29955
30532
  */
29956
30533
  names: string[];
29957
30534
  }
@@ -31659,6 +32236,10 @@ export interface ShutdownRequest {
31659
32236
  */
31660
32237
  /** @experimental */
31661
32238
  export interface Skill {
32239
+ /**
32240
+ * Opaque identity of the plugin owning this skill. Matches plugins.list().plugins[].id on the same runtime host. Compare the complete value without parsing it. Omitted for non-plugin skills.
32241
+ */
32242
+ pluginId?: string;
31662
32243
  /**
31663
32244
  * Unique identifier for the skill
31664
32245
  */
@@ -36548,7 +37129,7 @@ export interface WorkspacesStatFileResult {
36548
37129
  /** @experimental */
36549
37130
  export interface WorkspacesTruncateSummariesRequest {
36550
37131
  /**
36551
- * Number of newest summaries to keep.
37132
+ * Highest checkpoint number to keep. Checkpoints 1 through keepCount (the oldest) are kept and every later checkpoint is deleted; 0 deletes all.
36552
37133
  */
36553
37134
  keepCount: number;
36554
37135
  }
@@ -38445,9 +39026,17 @@ export declare function createServerRpc(connection: MessageConnection): {
38445
39026
  *
38446
39027
  * @param params A bounded catalog search. Both the query length and the result count are capped by the schema so a caller cannot request an unbounded scan.
38447
39028
  *
38448
- * @returns Outcome of a catalog.search call: either bounded inert candidates, or one typed refusal. Never a partial success.
39029
+ * @returns Outcome of catalog.search or catalog.recommend: either bounded inert candidates, or one typed refusal. Never a partial success.
38449
39030
  */
38450
39031
  search: (params: CatalogSearchRequest) => Promise<CatalogSearchResult>;
39032
+ /**
39033
+ * Requests the initial page of at most ten official-product recommendations for a complete task and product, bound to an existing attached local session. Requires catalog-recommend, catalog-search-session-bound and catalog-search-credential-required. Uses the selected GitHub.com user credential on the fixed Agent Finder recommendations route; successful capability negotiation does not establish service acceptance. Returns the existing inert catalog candidates and retained install references with the typed catalog refusal union. No anonymous retry, unfiltered search fallback or continuation is performed. Server-owned product approvals establish provenance, not task suitability. Read-only: nothing is installed, configured or persisted.
39034
+ *
39035
+ * @param params Initial-page official-product recommendations for a complete task. The runtime fixes recommendationPolicy to official-product and pageSize to 10; callers cannot override the policy, request pagination or fall back to search.
39036
+ *
39037
+ * @returns Outcome of catalog.search or catalog.recommend: either bounded inert candidates, or one typed refusal. Never a partial success.
39038
+ */
39039
+ recommend: (params: CatalogRecommendRequest) => Promise<CatalogSearchResult>;
38451
39040
  /**
38452
39041
  * Retrieves one saved feed by its opaque ID, optionally filtered by trust tier. Requires catalog-feeds and catalog-search-credential-required, and uses the same authority, credential policy, optional session binding and candidate projection as catalog.search, so available entries are the same inert candidates, with the same installability, handles and display metadata, and install through the same confirmed flows. Entries keep the feed's order; an entry the runtime cannot present is returned as unavailable with a reason rather than failing the feed. No anonymous retry. Read-only: nothing is installed, configured, or persisted.
38453
39042
  *
@@ -38805,6 +39394,49 @@ export declare function createServerRpc(connection: MessageConnection): {
38805
39394
  };
38806
39395
  /** Create typed session-scoped RPC methods. */
38807
39396
  export declare function createSessionRpc(connection: MessageConnection, sessionId: string): {
39397
+ /** @experimental */
39398
+ management: {
39399
+ /**
39400
+ * Updates opt-in session management policy live. Enabling the master enables all tools before applying individual overrides. Opt-in is scoped to the session's configuration directory.
39401
+ *
39402
+ * @param params Updates the session's live policy without changing persistent host settings.
39403
+ *
39404
+ * @returns Opt-in policy for local session management.
39405
+ */
39406
+ configure: (params: SessionManagementConfigureRequest) => Promise<SessionManagementPolicy>;
39407
+ /**
39408
+ * Lists other live, opted-in sessions in the same configuration directory. Requires the list tool to be enabled.
39409
+ *
39410
+ * @param params Lists opted-in local peers. The caller is omitted.
39411
+ *
39412
+ * @returns Eligible live peers reported by their owning runtimes.
39413
+ */
39414
+ list: (params: SessionManagementListRequest) => Promise<SessionManagementListResult>;
39415
+ /**
39416
+ * Injects peer text into an opted-in session. Wakes an idle agent and safely queues delivery to a busy agent. Acceptance does not imply an answer or completed task.
39417
+ *
39418
+ * @param params Sends peer text, never human approval, to another opted-in session.
39419
+ *
39420
+ * @returns Acceptance is not a completed turn or a reply.
39421
+ */
39422
+ message: (params: SessionManagementMessageRequest) => Promise<SessionManagementMessageResult>;
39423
+ /**
39424
+ * Asks the owning host to create and supervise a separate session, preserving permissions and model restrictions. Omitted model, reasoning effort, context tier and cwd inherit the caller's current values; explicit overrides use normal model validation and workspace trust. Records durable creation lineage before delivering the initial task as peer text. Returns the new session ID, not task completion. Requires the create tool and a host creation handler.
39425
+ *
39426
+ * @param params Requests a separate session. Omitted launch options inherit the caller's current configuration.
39427
+ *
39428
+ * @returns Identifies a session owned and supervised by the creating host.
39429
+ */
39430
+ create: (params: SessionManagementCreateRequest) => Promise<SessionManagementCreateResult>;
39431
+ /**
39432
+ * Closes a live opted-in session created by the caller or one of its descendants, preserving saved history and leaving descendants open. Requires the close capability to be enabled. Self, ancestors, siblings and unrelated sessions cannot be closed.
39433
+ *
39434
+ * @param params Closes one live opted-in descendant without deleting its saved history or closing its children.
39435
+ *
39436
+ * @returns Completion of the existing non-deleting close lifecycle.
39437
+ */
39438
+ close: (params: SessionManagementCloseRequest) => Promise<SessionManagementCloseResult>;
39439
+ };
38808
39440
  /** @experimental */
38809
39441
  providers: {
38810
39442
  /**
@@ -38988,7 +39620,7 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
38988
39620
  /** @experimental */
38989
39621
  login: {
38990
39622
  /**
38991
- * Begin an interactive login flow for a provider kind (dispatch is kind-only) and return its opaque flow id and first step.
39623
+ * Begin an interactive login flow for a provider kind, optionally selecting how to authorize (`method`: `web` by default, or `device-code`), and return its opaque flow id and first step.
38992
39624
  *
38993
39625
  * @param params Begin an interactive login flow for a provider kind, optionally reusing a cached base identity or explicitly requesting provider account selection.
38994
39626
  *
@@ -39000,7 +39632,7 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
39000
39632
  *
39001
39633
  * @param params Advance an in-flight login flow, optionally fulfilling an input-required step.
39002
39634
  *
39003
- * @returns One step in an interactive login flow. The consumer acts on the step and calls advance to proceed. Browser-open is encoded as two distinct steps by design: `open-url` is CONSUMER-driven (the provider surfaces the authorize URL and the consumer opens it — github.com/GHEC web), while `needs-interaction` is PROVIDER-driven (the provider opens the browser or broker UI itself and does not surface a URL — Entra).
39635
+ * @returns One step in an interactive login flow. The consumer acts on the step and calls advance to proceed. Browser-open is encoded as two distinct steps by design: `open-url` is CONSUMER-driven (the provider surfaces the authorize URL and the consumer opens it — github.com/GHEC web), while `needs-interaction` is PROVIDER-driven (the provider opens the browser or broker UI itself and does not surface a URL — Entra). A device-code flow surfaces its one-time code as `device-code`; the consumer shows the code, may open the verification URI, and calls advance, which resolves once the user has authorized the device.
39004
39636
  */
39005
39637
  advance: (params: AuthLoginAdvanceRequest) => Promise<AuthLoginStep>;
39006
39638
  /**
@@ -39443,6 +40075,12 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
39443
40075
  * @returns Canonical runtime state for the session's current autopilot objective.
39444
40076
  */
39445
40077
  getState: () => Promise<AutopilotObjectiveGetStateResult>;
40078
+ /**
40079
+ * Sets whether completing or pausing this session's objective preserves autopilot mode. This in-memory preference defaults to true and must be reapplied when attaching a client.
40080
+ *
40081
+ * @param params Client-resolved preference for retaining autopilot mode after objective completion or pause.
40082
+ */
40083
+ setStayInAutopilot: (params: AutopilotObjectiveSetStayInAutopilotRequest) => Promise<void>;
39446
40084
  };
39447
40085
  /** @experimental */
39448
40086
  completions: {
@@ -40182,6 +40820,12 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
40182
40820
  * @returns The selectable model entries and selection ids synthesized for the synchronized BYOK models.
40183
40821
  */
40184
40822
  sync: (params: ProviderSyncRequest) => Promise<ProviderSyncResult>;
40823
+ /**
40824
+ * Returns credential-free provider configuration status for the selected model. This does not validate provider credentials or contact the provider.
40825
+ *
40826
+ * @returns Credential-free provider configuration status for the selected model.
40827
+ */
40828
+ getStatus: () => Promise<ProviderStatus>;
40185
40829
  /**
40186
40830
  * Withdraws named host-managed models from the session's BYOK registry, leaving every other entry untouched. The scoped counterpart to `provider.sync`: a snapshot can only describe entries the caller knows about, so using it to remove one model silently withdraws rows registered by another source, such as a plugin calling `provider.add` at runtime. Naming what to remove leaves unrelated entries alone. Selection ids that are not registered are ignored, so withdrawal is idempotent. A provider is removed only when one of the withdrawn models was the last entry referencing it; a provider that simply has no models, which is the normal state while its rows are supplied by catalog discovery, is left in place.
40187
40831
  *
@@ -40522,6 +41166,12 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
40522
41166
  * @returns Current permission mode.
40523
41167
  */
40524
41168
  getMode: () => Promise<PermissionsGetModeResult>;
41169
+ /**
41170
+ * Returns the approval modes currently available under the session's feature and managed permission policy. This read does not change permissions; mutations must still check their authoritative result because policy may change.
41171
+ *
41172
+ * @returns Available permission modes, derived from current session policy.
41173
+ */
41174
+ getCapabilities: () => Promise<PermissionsCapabilities>;
40525
41175
  /**
40526
41176
  * Adds or removes session-scoped or location-scoped permission rules.
40527
41177
  *
@@ -40842,6 +41492,12 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
40842
41492
  * @returns Indicates whether an in-progress background compaction was cancelled.
40843
41493
  */
40844
41494
  cancelBackgroundCompaction: () => Promise<HistoryCancelBackgroundCompactionResult>;
41495
+ /**
41496
+ * Replaces this local session's compaction settings: the model, prompt and reasoning effort its automatic and manual compactions use. Each call replaces all three: an omitted field returns to its default. Settings are held in memory only, so re-apply them after resuming the session in a new process. A change applies to compactions that start afterwards, except that automatic compactions keep the model the running turn already chose for them until that turn ends; a compaction already in progress may still pick up a new reasoning effort. Rejects on a remote session.
41497
+ *
41498
+ * @param params Compaction settings for this session. Each call replaces the previous settings: an omitted field returns to its default. Settings live in memory until the session ends; re-apply them after resuming a session in a new process.
41499
+ */
41500
+ setCompactionConfig: (params: HistorySetCompactionConfigRequest) => Promise<void>;
40845
41501
  /**
40846
41502
  * Aborts any in-progress manual compaction on a local session.
40847
41503
  *